<!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>[207521] trunk/Source/WebCore</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/207521">207521</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2016-10-18 22:25:06 -0700 (Tue, 18 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move internal testing classes from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=163553

Reviewed by Ryosuke Niwa.

* bindings/js/JSDOMBinding.h: Added toJSArray. Also exported a function that
is now needed in the testing library.
* bindings/scripts/CodeGeneratorJS.pm:
(NativeToJSValue): Added code to handle the jsArray case with an exception.

* css/parser/CSSPropertyParser.cpp: Fix #if to make code compile when
CSS_SCROLL_SNAP is not enabled.

* dom/Element.cpp:
(WebCore::Element::createShadowRoot): Changed return type to a raw pointer.
There is no reason it needs to be a RefPtr.
* dom/Element.h: Updated for above change.

* svg/SVGPathStringBuilder.h: Exported class and made more public so it can
be used in test code.

* svg/SVGPathUtilities.cpp:
(WebCore::pathIteratorForBuildingString): Deleted. Needed only for test code,
so moved into there.
(WebCore::buildStringFromPath): Deleted. Ditto.
* svg/SVGPathUtilities.h: Removed buildStringFromPath.

* testing/InternalSettings.cpp: Simplified the guard macro and used the all
capitals style that our style guide prescribes for non-function-like macros.
(WebCore::InternalSettings::create): Moved here, no longer inline Use m_page.
(WebCore::InternalSettings::resetToConsistentState): Updated since settings
returns a reference.
(WebCore::InternalSettings::settings): Changed to return a reference and
assert that m_page is not null; functions all check m_page for null first.
(WebCore::InternalSettings::setTouchEventEmulationEnabled): Updated to use
ExceptionOr, do an m_page check, and use settings that returns a reference.
(WebCore::InternalSettings::setStandardFontFamily): Ditto.
(WebCore::InternalSettings::setSerifFontFamily): Ditto.
(WebCore::InternalSettings::setSansSerifFontFamily): Ditto.
(WebCore::InternalSettings::setFixedFontFamily): Ditto.
(WebCore::InternalSettings::setCursiveFontFamily): Ditto.
(WebCore::InternalSettings::setFantasyFontFamily): Ditto.
(WebCore::InternalSettings::setPictographFontFamily): Ditto.
(WebCore::InternalSettings::setTextAutosizingEnabled): Ditto.
(WebCore::InternalSettings::setTextAutosizingWindowSizeOverride): Ditto.
(WebCore::InternalSettings::setMediaTypeOverride): Ditto.
(WebCore::InternalSettings::setCanStartMedia): Ditto.
(WebCore::InternalSettings::setAllowsAirPlayForMediaPlayback): Ditto.
(WebCore::InternalSettings::setEditingBehavior): Ditto.
(WebCore::InternalSettings::setShouldDisplayTrackKind): Ditto.
(WebCore::InternalSettings::shouldDisplayTrackKind): Ditto.
(WebCore::InternalSettings::setStorageBlockingPolicy): Ditto.
(WebCore::InternalSettings::setPreferMIMETypeForImages): Ditto.
(WebCore::InternalSettings::setImagesEnabled): Ditto.
(WebCore::InternalSettings::setPDFImageCachingPolicy): Ditto.
(WebCore::InternalSettings::setMinimumTimerInterval): Ditto.
(WebCore::InternalSettings::setDefaultVideoPosterURL): Ditto.
(WebCore::InternalSettings::setForcePendingWebGLPolicy): Ditto.
(WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls): Ditto.
(WebCore::InternalSettings::setUseLegacyBackgroundSizeShorthandBehavior): Ditto.
(WebCore::InternalSettings::setAutoscrollForDragAndDropEnabled): Ditto.
(WebCore::InternalSettings::setFontFallbackPrefersPictographs): Ditto.
(WebCore::InternalSettings::setWebFontsAlwaysFallBack): Ditto.
(WebCore::InternalSettings::setQuickTimePluginReplacementEnabled): Ditto.
(WebCore::InternalSettings::setYouTubeFlashPluginReplacementEnabled): Ditto.
(WebCore::InternalSettings::setBackgroundShouldExtendBeyondPage): Ditto.
(WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy): Ditto.
(WebCore::InternalSettings::setScrollingTreeIncludesFrames): Ditto.
(WebCore::InternalSettings::setAllowsInlineMediaPlayback): Ditto.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackAfterFullscreen): Ditto.
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute): Ditto.
(WebCore::InternalSettings::setIndexedDBWorkersEnabled): Ditto.
(WebCore::InternalSettings::userInterfaceDirectionPolicy): Ditto.
(WebCore::InternalSettings::setUserInterfaceDirectionPolicy): Ditto.
(WebCore::InternalSettings::systemLayoutDirection): Ditto.
(WebCore::InternalSettings::setSystemLayoutDirection): Ditto.
(WebCore::InternalSettings::variationFontsEnabled): Ditto.
(WebCore::InternalSettings::setVariationFontsEnabled): Ditto.
(WebCore::InternalSettings::forcedPrefersReducedMotionValue): Ditto.
(WebCore::InternalSettings::setForcedPrefersReducedMotionValue): Ditto.
* testing/InternalSettings.h: Updated for above changes. Also moved Backup to make
it private instead of public.
* testing/InternalSettings.idl: Use non-legacy execption. Also removed unneeded
exception for setIndexedDBWorkersEnabled.

* testing/Internals.cpp: Marked InspectorStubFrontend final and made everything private.
(WebCore::Internals::setCanShowModalDialogOverride): Use ExceptionOr.
(WebCore::Internals::lastSpatialNavigationCandidateCount): Ditto.
(WebCore::Internals::animationsAreSuspended): Ditto.
(WebCore::Internals::suspendAnimations): Ditto.
(WebCore::Internals::resumeAnimations): Ditto.
(WebCore::Internals::pauseAnimationAtTimeOnElement): Ditto.
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement): Ditto.
(WebCore::Internals::pauseTransitionAtTimeOnElement): Ditto.
(WebCore::Internals::pauseTransitionAtTimeOnPseudoElement): Ditto.
(WebCore::Internals::elementRenderTreeAsText): Ditto.
(WebCore::Internals::ensureShadowRoot): Ditto.
(WebCore::Internals::createShadowRoot): Ditto.
(WebCore::Internals::shadowRootType): Ditto.
(WebCore::Internals::isTimerThrottled): Ditto.
(WebCore::Internals::formControlStateOfPreviousHistoryItem): Ditto.
(WebCore::Internals::setFormControlStateOfPreviousHistoryItem): Ditto.
(WebCore::Internals::absoluteCaretBounds): Ditto.
(WebCore::Internals::inspectorHighlightRects): Ditto.
(WebCore::Internals::inspectorHighlightObject): Ditto.
(WebCore::Internals::markerCountForNode): Ditto.
(WebCore::Internals::markerAt): Ditto.
(WebCore::Internals::markerRangeForNode): Ditto.
(WebCore::Internals::markerDescriptionForNode): Ditto.
(WebCore::Internals::dumpMarkerRects): Ditto.
(WebCore::Internals::setMarkedTextMatchesAreHighlighted): Ditto.
(WebCore::Internals::setScrollViewPosition): Ditto.
(WebCore::Internals::setViewBaseBackgroundColor): Ditto.
(WebCore::Internals::setPagination): Ditto.
(WebCore::Internals::setPaginationLineGridEnabled): Ditto.
(WebCore::Internals::configurationForViewport): Ditto.
(WebCore::Internals::wasLastChangeUserEdit): Ditto.
(WebCore::Internals::scrollElementToRect): Ditto.
(WebCore::Internals::autofillFieldName): Ditto.
(WebCore::Internals::paintControlTints): Ditto.
(WebCore::Internals::rangeForDictionaryLookupAtLocation): Ditto.
(WebCore::Internals::setDelegatesScrolling): Ditto.
(WebCore::Internals::lastSpellCheckRequestSequence): Ditto.
(WebCore::Internals::lastSpellCheckProcessedSequence): Ditto.
(WebCore::Internals::wheelEventHandlerCount): Ditto.
(WebCore::Internals::touchEventHandlerCount): Ditto.
(WebCore::Internals::nodesFromRect): Ditto.
(WebCore::Internals::setBatteryStatus): Ditto.
(WebCore::Internals::setDeviceProximity): Ditto.
(WebCore::Internals::hasSpellingMarker): Ditto.
(WebCore::Internals::hasAutocorrectedMarker): Ditto.
(WebCore::Internals::handleAcceptedCandidate): Ditto.
(WebCore::Internals::isOverwriteModeEnabled): Ditto.
(WebCore::Internals::toggleOverwriteModeEnabled): Ditto.
(WebCore::Internals::countMatchesForText): Ditto.
(WebCore::Internals::countFindMatches): Ditto.
(WebCore::Internals::setInspectorIsUnderTest): Ditto.
(WebCore::Internals::hasGrammarMarker): Ditto.
(WebCore::Internals::numberOfScrollableAreas): Ditto.
(WebCore::Internals::isPageBoxVisible): Ditto.
(WebCore::Internals::layerTreeAsText): Ditto.
(WebCore::Internals::repaintRectsAsText): Ditto.
(WebCore::Internals::scrollingStateTreeAsText): Ditto.
(WebCore::Internals::mainThreadScrollingReasons): Ditto.
(WebCore::Internals::nonFastScrollableRects): Ditto.
(WebCore::Internals::setElementUsesDisplayListDrawing): Ditto.
(WebCore::Internals::setElementTracksDisplayListReplay): Ditto.
(WebCore::Internals::displayListForElement): Ditto.
(WebCore::Internals::replayDisplayListForElement): Ditto.
(WebCore::Internals::garbageCollectDocumentResources): Ditto.
(WebCore::Internals::insertAuthorCSS): Ditto.
(WebCore::Internals::insertUserCSS): Ditto.
(WebCore::Internals::pageProperty): Ditto.
(WebCore::Internals::pageSizeAndMarginsInPixels): Ditto.
(WebCore::Internals::setPageScaleFactor): Ditto.
(WebCore::Internals::setPageZoomFactor): Ditto.
(WebCore::Internals::setTextZoomFactor): Ditto.
(WebCore::Internals::setUseFixedLayout): Ditto.
(WebCore::Internals::setFixedLayoutSize): Ditto.
(WebCore::Internals::setViewExposedRect): Ditto.
(WebCore::Internals::setHeaderHeight): Ditto.
(WebCore::Internals::setFooterHeight): Ditto.
(WebCore::Internals::setTopContentInset): Ditto.
(WebCore::Internals::setApplicationCacheOriginQuota): Ditto.
(WebCore::Internals::startTrackingRepaints): Ditto.
(WebCore::Internals::stopTrackingRepaints): Ditto.
(WebCore::Internals::startTrackingLayerFlushes): Ditto.
(WebCore::Internals::layerFlushCount): Ditto.
(WebCore::Internals::startTrackingStyleRecalcs): Ditto.
(WebCore::Internals::styleRecalcCount): Ditto.
(WebCore::Internals::startTrackingCompositingUpdates): Ditto.
(WebCore::Internals::compositingUpdateCount): Ditto.
(WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Ditto.
(WebCore::Internals::getCurrentCursorInfo): Ditto.
(WebCore::Internals::mediaElementHasCharacteristic): Ditto.
(WebCore::Internals::captionsStyleSheetOverride): Ditto.
(WebCore::Internals::setCaptionsStyleSheetOverride): Ditto.
(WebCore::Internals::setPrimaryAudioTrackLanguageOverride): Ditto.
(WebCore::Internals::setCaptionDisplayMode): Ditto.
(WebCore::Internals::selectionBounds): Ditto.
(WebCore::Internals::isVibrating): Ditto.
(WebCore::Internals::isPluginUnavailabilityIndicatorObscured): Ditto.
(WebCore::Internals::beginMediaSessionInterruption): Ditto.
(WebCore::Internals::setMediaSessionRestrictions): Ditto.
(WebCore::Internals::postRemoteControlCommand): Ditto.
(WebCore::Internals::setMockMediaPlaybackTargetPickerState): Ditto.
(WebCore::Internals::installMockPageOverlay): Ditto.
(WebCore::Internals::pageOverlayLayerTreeAsText): Ditto.
(WebCore::Internals::scrollSnapOffsets): Ditto.
(WebCore::Internals::pathStringWithShrinkWrappedRects): Moved the code that builds
the path string in here for now since it's only used for this testing.
(WebCore::Internals::resourceLoadStatisticsForOrigin): Take a const String&amp;.

* testing/Internals.h: Updated for above changes.
* testing/Internals.idl: Use non-legacy exceptions.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSDOMBindingh">trunk/Source/WebCore/bindings/js/JSDOMBinding.h</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSPropertyParsercpp">trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPathStringBuilderh">trunk/Source/WebCore/svg/SVGPathStringBuilder.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPathUtilitiescpp">trunk/Source/WebCore/svg/SVGPathUtilities.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGPathUtilitiesh">trunk/Source/WebCore/svg/SVGPathUtilities.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingscpp">trunk/Source/WebCore/testing/InternalSettings.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingsh">trunk/Source/WebCore/testing/InternalSettings.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalSettingsidl">trunk/Source/WebCore/testing/InternalSettings.idl</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsidl">trunk/Source/WebCore/testing/Internals.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/ChangeLog        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -1,3 +1,201 @@
</span><ins>+2016-10-18  Darin Adler  &lt;darin@apple.com&gt;
+
+        Move internal testing classes from ExceptionCode to Exception
+        https://bugs.webkit.org/show_bug.cgi?id=163553
+
+        Reviewed by Ryosuke Niwa.
+
+        * bindings/js/JSDOMBinding.h: Added toJSArray. Also exported a function that
+        is now needed in the testing library.
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (NativeToJSValue): Added code to handle the jsArray case with an exception.
+
+        * css/parser/CSSPropertyParser.cpp: Fix #if to make code compile when
+        CSS_SCROLL_SNAP is not enabled.
+
+        * dom/Element.cpp:
+        (WebCore::Element::createShadowRoot): Changed return type to a raw pointer.
+        There is no reason it needs to be a RefPtr.
+        * dom/Element.h: Updated for above change.
+
+        * svg/SVGPathStringBuilder.h: Exported class and made more public so it can
+        be used in test code.
+
+        * svg/SVGPathUtilities.cpp:
+        (WebCore::pathIteratorForBuildingString): Deleted. Needed only for test code,
+        so moved into there.
+        (WebCore::buildStringFromPath): Deleted. Ditto.
+        * svg/SVGPathUtilities.h: Removed buildStringFromPath.
+
+        * testing/InternalSettings.cpp: Simplified the guard macro and used the all
+        capitals style that our style guide prescribes for non-function-like macros.
+        (WebCore::InternalSettings::create): Moved here, no longer inline Use m_page.
+        (WebCore::InternalSettings::resetToConsistentState): Updated since settings
+        returns a reference.
+        (WebCore::InternalSettings::settings): Changed to return a reference and
+        assert that m_page is not null; functions all check m_page for null first.
+        (WebCore::InternalSettings::setTouchEventEmulationEnabled): Updated to use
+        ExceptionOr, do an m_page check, and use settings that returns a reference.
+        (WebCore::InternalSettings::setStandardFontFamily): Ditto.
+        (WebCore::InternalSettings::setSerifFontFamily): Ditto.
+        (WebCore::InternalSettings::setSansSerifFontFamily): Ditto.
+        (WebCore::InternalSettings::setFixedFontFamily): Ditto.
+        (WebCore::InternalSettings::setCursiveFontFamily): Ditto.
+        (WebCore::InternalSettings::setFantasyFontFamily): Ditto.
+        (WebCore::InternalSettings::setPictographFontFamily): Ditto.
+        (WebCore::InternalSettings::setTextAutosizingEnabled): Ditto.
+        (WebCore::InternalSettings::setTextAutosizingWindowSizeOverride): Ditto.
+        (WebCore::InternalSettings::setMediaTypeOverride): Ditto.
+        (WebCore::InternalSettings::setCanStartMedia): Ditto.
+        (WebCore::InternalSettings::setAllowsAirPlayForMediaPlayback): Ditto.
+        (WebCore::InternalSettings::setEditingBehavior): Ditto.
+        (WebCore::InternalSettings::setShouldDisplayTrackKind): Ditto.
+        (WebCore::InternalSettings::shouldDisplayTrackKind): Ditto.
+        (WebCore::InternalSettings::setStorageBlockingPolicy): Ditto.
+        (WebCore::InternalSettings::setPreferMIMETypeForImages): Ditto.
+        (WebCore::InternalSettings::setImagesEnabled): Ditto.
+        (WebCore::InternalSettings::setPDFImageCachingPolicy): Ditto.
+        (WebCore::InternalSettings::setMinimumTimerInterval): Ditto.
+        (WebCore::InternalSettings::setDefaultVideoPosterURL): Ditto.
+        (WebCore::InternalSettings::setForcePendingWebGLPolicy): Ditto.
+        (WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls): Ditto.
+        (WebCore::InternalSettings::setUseLegacyBackgroundSizeShorthandBehavior): Ditto.
+        (WebCore::InternalSettings::setAutoscrollForDragAndDropEnabled): Ditto.
+        (WebCore::InternalSettings::setFontFallbackPrefersPictographs): Ditto.
+        (WebCore::InternalSettings::setWebFontsAlwaysFallBack): Ditto.
+        (WebCore::InternalSettings::setQuickTimePluginReplacementEnabled): Ditto.
+        (WebCore::InternalSettings::setYouTubeFlashPluginReplacementEnabled): Ditto.
+        (WebCore::InternalSettings::setBackgroundShouldExtendBeyondPage): Ditto.
+        (WebCore::InternalSettings::setShouldConvertPositionStyleOnCopy): Ditto.
+        (WebCore::InternalSettings::setScrollingTreeIncludesFrames): Ditto.
+        (WebCore::InternalSettings::setAllowsInlineMediaPlayback): Ditto.
+        (WebCore::InternalSettings::setAllowsInlineMediaPlaybackAfterFullscreen): Ditto.
+        (WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute): Ditto.
+        (WebCore::InternalSettings::setIndexedDBWorkersEnabled): Ditto.
+        (WebCore::InternalSettings::userInterfaceDirectionPolicy): Ditto.
+        (WebCore::InternalSettings::setUserInterfaceDirectionPolicy): Ditto.
+        (WebCore::InternalSettings::systemLayoutDirection): Ditto.
+        (WebCore::InternalSettings::setSystemLayoutDirection): Ditto.
+        (WebCore::InternalSettings::variationFontsEnabled): Ditto.
+        (WebCore::InternalSettings::setVariationFontsEnabled): Ditto.
+        (WebCore::InternalSettings::forcedPrefersReducedMotionValue): Ditto.
+        (WebCore::InternalSettings::setForcedPrefersReducedMotionValue): Ditto.
+        * testing/InternalSettings.h: Updated for above changes. Also moved Backup to make
+        it private instead of public.
+        * testing/InternalSettings.idl: Use non-legacy execption. Also removed unneeded
+        exception for setIndexedDBWorkersEnabled.
+
+        * testing/Internals.cpp: Marked InspectorStubFrontend final and made everything private.
+        (WebCore::Internals::setCanShowModalDialogOverride): Use ExceptionOr.
+        (WebCore::Internals::lastSpatialNavigationCandidateCount): Ditto.
+        (WebCore::Internals::animationsAreSuspended): Ditto.
+        (WebCore::Internals::suspendAnimations): Ditto.
+        (WebCore::Internals::resumeAnimations): Ditto.
+        (WebCore::Internals::pauseAnimationAtTimeOnElement): Ditto.
+        (WebCore::Internals::pauseAnimationAtTimeOnPseudoElement): Ditto.
+        (WebCore::Internals::pauseTransitionAtTimeOnElement): Ditto.
+        (WebCore::Internals::pauseTransitionAtTimeOnPseudoElement): Ditto.
+        (WebCore::Internals::elementRenderTreeAsText): Ditto.
+        (WebCore::Internals::ensureShadowRoot): Ditto.
+        (WebCore::Internals::createShadowRoot): Ditto.
+        (WebCore::Internals::shadowRootType): Ditto.
+        (WebCore::Internals::isTimerThrottled): Ditto.
+        (WebCore::Internals::formControlStateOfPreviousHistoryItem): Ditto.
+        (WebCore::Internals::setFormControlStateOfPreviousHistoryItem): Ditto.
+        (WebCore::Internals::absoluteCaretBounds): Ditto.
+        (WebCore::Internals::inspectorHighlightRects): Ditto.
+        (WebCore::Internals::inspectorHighlightObject): Ditto.
+        (WebCore::Internals::markerCountForNode): Ditto.
+        (WebCore::Internals::markerAt): Ditto.
+        (WebCore::Internals::markerRangeForNode): Ditto.
+        (WebCore::Internals::markerDescriptionForNode): Ditto.
+        (WebCore::Internals::dumpMarkerRects): Ditto.
+        (WebCore::Internals::setMarkedTextMatchesAreHighlighted): Ditto.
+        (WebCore::Internals::setScrollViewPosition): Ditto.
+        (WebCore::Internals::setViewBaseBackgroundColor): Ditto.
+        (WebCore::Internals::setPagination): Ditto.
+        (WebCore::Internals::setPaginationLineGridEnabled): Ditto.
+        (WebCore::Internals::configurationForViewport): Ditto.
+        (WebCore::Internals::wasLastChangeUserEdit): Ditto.
+        (WebCore::Internals::scrollElementToRect): Ditto.
+        (WebCore::Internals::autofillFieldName): Ditto.
+        (WebCore::Internals::paintControlTints): Ditto.
+        (WebCore::Internals::rangeForDictionaryLookupAtLocation): Ditto.
+        (WebCore::Internals::setDelegatesScrolling): Ditto.
+        (WebCore::Internals::lastSpellCheckRequestSequence): Ditto.
+        (WebCore::Internals::lastSpellCheckProcessedSequence): Ditto.
+        (WebCore::Internals::wheelEventHandlerCount): Ditto.
+        (WebCore::Internals::touchEventHandlerCount): Ditto.
+        (WebCore::Internals::nodesFromRect): Ditto.
+        (WebCore::Internals::setBatteryStatus): Ditto.
+        (WebCore::Internals::setDeviceProximity): Ditto.
+        (WebCore::Internals::hasSpellingMarker): Ditto.
+        (WebCore::Internals::hasAutocorrectedMarker): Ditto.
+        (WebCore::Internals::handleAcceptedCandidate): Ditto.
+        (WebCore::Internals::isOverwriteModeEnabled): Ditto.
+        (WebCore::Internals::toggleOverwriteModeEnabled): Ditto.
+        (WebCore::Internals::countMatchesForText): Ditto.
+        (WebCore::Internals::countFindMatches): Ditto.
+        (WebCore::Internals::setInspectorIsUnderTest): Ditto.
+        (WebCore::Internals::hasGrammarMarker): Ditto.
+        (WebCore::Internals::numberOfScrollableAreas): Ditto.
+        (WebCore::Internals::isPageBoxVisible): Ditto.
+        (WebCore::Internals::layerTreeAsText): Ditto.
+        (WebCore::Internals::repaintRectsAsText): Ditto.
+        (WebCore::Internals::scrollingStateTreeAsText): Ditto.
+        (WebCore::Internals::mainThreadScrollingReasons): Ditto.
+        (WebCore::Internals::nonFastScrollableRects): Ditto.
+        (WebCore::Internals::setElementUsesDisplayListDrawing): Ditto.
+        (WebCore::Internals::setElementTracksDisplayListReplay): Ditto.
+        (WebCore::Internals::displayListForElement): Ditto.
+        (WebCore::Internals::replayDisplayListForElement): Ditto.
+        (WebCore::Internals::garbageCollectDocumentResources): Ditto.
+        (WebCore::Internals::insertAuthorCSS): Ditto.
+        (WebCore::Internals::insertUserCSS): Ditto.
+        (WebCore::Internals::pageProperty): Ditto.
+        (WebCore::Internals::pageSizeAndMarginsInPixels): Ditto.
+        (WebCore::Internals::setPageScaleFactor): Ditto.
+        (WebCore::Internals::setPageZoomFactor): Ditto.
+        (WebCore::Internals::setTextZoomFactor): Ditto.
+        (WebCore::Internals::setUseFixedLayout): Ditto.
+        (WebCore::Internals::setFixedLayoutSize): Ditto.
+        (WebCore::Internals::setViewExposedRect): Ditto.
+        (WebCore::Internals::setHeaderHeight): Ditto.
+        (WebCore::Internals::setFooterHeight): Ditto.
+        (WebCore::Internals::setTopContentInset): Ditto.
+        (WebCore::Internals::setApplicationCacheOriginQuota): Ditto.
+        (WebCore::Internals::startTrackingRepaints): Ditto.
+        (WebCore::Internals::stopTrackingRepaints): Ditto.
+        (WebCore::Internals::startTrackingLayerFlushes): Ditto.
+        (WebCore::Internals::layerFlushCount): Ditto.
+        (WebCore::Internals::startTrackingStyleRecalcs): Ditto.
+        (WebCore::Internals::styleRecalcCount): Ditto.
+        (WebCore::Internals::startTrackingCompositingUpdates): Ditto.
+        (WebCore::Internals::compositingUpdateCount): Ditto.
+        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Ditto.
+        (WebCore::Internals::getCurrentCursorInfo): Ditto.
+        (WebCore::Internals::mediaElementHasCharacteristic): Ditto.
+        (WebCore::Internals::captionsStyleSheetOverride): Ditto.
+        (WebCore::Internals::setCaptionsStyleSheetOverride): Ditto.
+        (WebCore::Internals::setPrimaryAudioTrackLanguageOverride): Ditto.
+        (WebCore::Internals::setCaptionDisplayMode): Ditto.
+        (WebCore::Internals::selectionBounds): Ditto.
+        (WebCore::Internals::isVibrating): Ditto.
+        (WebCore::Internals::isPluginUnavailabilityIndicatorObscured): Ditto.
+        (WebCore::Internals::beginMediaSessionInterruption): Ditto.
+        (WebCore::Internals::setMediaSessionRestrictions): Ditto.
+        (WebCore::Internals::postRemoteControlCommand): Ditto.
+        (WebCore::Internals::setMockMediaPlaybackTargetPickerState): Ditto.
+        (WebCore::Internals::installMockPageOverlay): Ditto.
+        (WebCore::Internals::pageOverlayLayerTreeAsText): Ditto.
+        (WebCore::Internals::scrollSnapOffsets): Ditto.
+        (WebCore::Internals::pathStringWithShrinkWrappedRects): Moved the code that builds
+        the path string in here for now since it's only used for this testing.
+        (WebCore::Internals::resourceLoadStatisticsForOrigin): Take a const String&amp;.
+
+        * testing/Internals.h: Updated for above changes.
+        * testing/Internals.idl: Use non-legacy exceptions.
+
</ins><span class="cx"> 2016-10-18  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Web IDL] Drop webkit-specific extended attributes that are no longer useful
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDOMBindingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx"> WEBCORE_EXPORT void setDOMException(JSC::ExecState*, ExceptionCode);
</span><span class="cx"> 
</span><span class="cx"> // Implementation details of the above.
</span><del>-void propagateExceptionSlowPath(JSC::ExecState&amp;, JSC::ThrowScope&amp;, Exception&amp;&amp;);
</del><ins>+WEBCORE_EXPORT void propagateExceptionSlowPath(JSC::ExecState&amp;, JSC::ThrowScope&amp;, Exception&amp;&amp;);
</ins><span class="cx"> WEBCORE_EXPORT void setDOMExceptionSlow(JSC::ExecState*, JSC::ThrowScope&amp;, ExceptionCode);
</span><span class="cx"> 
</span><span class="cx"> JSC::JSValue jsString(JSC::ExecState*, const URL&amp;); // empty if the URL is null
</span><span class="lines">@@ -412,6 +412,7 @@
</span><span class="cx"> // ExceptionOr handling.
</span><span class="cx"> void propagateException(JSC::ExecState&amp;, JSC::ThrowScope&amp;, ExceptionOr&lt;void&gt;&amp;&amp;);
</span><span class="cx"> template&lt;typename T&gt; JSC::JSValue toJS(JSC::ExecState&amp;, JSDOMGlobalObject&amp;, JSC::ThrowScope&amp;, ExceptionOr&lt;T&gt;&amp;&amp;);
</span><ins>+template&lt;typename T&gt; JSC::JSValue toJSArray(JSC::ExecState&amp;, JSDOMGlobalObject&amp;, JSC::ThrowScope&amp;, ExceptionOr&lt;T&gt;&amp;&amp;);
</ins><span class="cx"> JSC::JSValue toJSBoolean(JSC::ExecState&amp;, JSC::ThrowScope&amp;, ExceptionOr&lt;bool&gt;&amp;&amp;);
</span><span class="cx"> JSC::JSValue toJSDate(JSC::ExecState&amp;, JSC::ThrowScope&amp;, ExceptionOr&lt;double&gt;&amp;&amp;);
</span><span class="cx"> JSC::JSValue toJSNullableDate(JSC::ExecState&amp;, JSC::ThrowScope&amp;, ExceptionOr&lt;Optional&lt;double&gt;&gt;&amp;&amp;);
</span><span class="lines">@@ -929,6 +930,15 @@
</span><span class="cx">     return toJS(&amp;state, &amp;globalObject, value.releaseReturnValue());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+template&lt;typename T&gt; inline JSC::JSValue toJSArray(JSC::ExecState&amp; state, JSDOMGlobalObject&amp; globalObject, JSC::ThrowScope&amp; throwScope, ExceptionOr&lt;T&gt;&amp;&amp; value)
+{
+    if (UNLIKELY(value.hasException())) {
+        propagateException(state, throwScope, value.releaseException());
+        return { };
+    }
+    return jsArray(&amp;state, &amp;globalObject, value.releaseReturnValue());
+}
+
</ins><span class="cx"> inline JSC::JSValue toJSBoolean(JSC::ExecState&amp; state, JSC::ThrowScope&amp; throwScope, ExceptionOr&lt;bool&gt;&amp;&amp; value)
</span><span class="cx"> {
</span><span class="cx">     if (UNLIKELY(value.hasException())) {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -5253,8 +5253,10 @@
</span><span class="cx">     if ($codeGenerator-&gt;IsSequenceOrFrozenArrayType($type)) {
</span><span class="cx">         my $innerType = $codeGenerator-&gt;GetSequenceOrFrozenArrayInnerType($type);
</span><span class="cx">         AddToImplIncludes(&quot;JS${innerType}.h&quot;, $conditional) if $codeGenerator-&gt;IsRefPtrType($innerType);
</span><del>-        return &quot;jsArray($statePointer, $globalObject, $value)&quot; if $codeGenerator-&gt;IsSequenceType($type);
-        return &quot;jsFrozenArray($statePointer, $globalObject, $value)&quot; if $codeGenerator-&gt;IsFrozenArrayType($type);
</del><ins>+        my $isSequence = $codeGenerator-&gt;IsSequenceType($type);
+        return &quot;toJSArray($stateReference, *$globalObject, throwScope, $value)&quot; if $isSequence &amp;&amp; $mayThrowException;
+        return &quot;jsArray($statePointer, $globalObject, $value)&quot; if $isSequence;
+        return &quot;jsFrozenArray($statePointer, $globalObject, $value)&quot;;;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if ($type eq &quot;any&quot;) {
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSPropertyParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -1891,6 +1891,8 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+#if ENABLE(CSS_SCROLL_SNAP)
+
</ins><span class="cx"> static RefPtr&lt;CSSValueList&gt; consumePositionList(CSSParserTokenRange&amp; range, CSSParserMode cssParserMode)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;CSSValueList&gt; positions = CSSValueList::createCommaSeparated();
</span><span class="lines">@@ -1903,7 +1905,6 @@
</span><span class="cx">     return positions;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(CSS_SCROLL_SNAP)
</del><span class="cx"> static RefPtr&lt;CSSValue&gt; consumeScrollSnapCoordinate(CSSParserTokenRange&amp; range, CSSParserMode cssParserMode)
</span><span class="cx"> {
</span><span class="cx">     if (range.peek().id() == CSSValueNone)
</span><span class="lines">@@ -1926,6 +1927,7 @@
</span><span class="cx">     }
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> static RefPtr&lt;CSSValue&gt; consumeBorderRadiusCorner(CSSParserTokenRange&amp; range, CSSParserMode cssParserMode)
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -1800,10 +1800,10 @@
</span><span class="cx">     notifyChildNodeRemoved(*this, *oldRoot);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;ShadowRoot&gt; Element::createShadowRoot(ExceptionCode&amp; ec)
</del><ins>+ShadowRoot* Element::createShadowRoot(ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     if (alwaysCreateUserAgentShadowRoot())
</span><del>-        ensureUserAgentShadowRoot();
</del><ins>+        return &amp;ensureUserAgentShadowRoot();
</ins><span class="cx"> 
</span><span class="cx">     ec = HIERARCHY_REQUEST_ERR;
</span><span class="cx">     return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/dom/Element.h        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx">     virtual bool rendererIsNeeded(const RenderStyle&amp;);
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT ShadowRoot* shadowRoot() const;
</span><del>-    WEBCORE_EXPORT RefPtr&lt;ShadowRoot&gt; createShadowRoot(ExceptionCode&amp;);
</del><ins>+    WEBCORE_EXPORT ShadowRoot* createShadowRoot(ExceptionCode&amp;);
</ins><span class="cx"> 
</span><span class="cx">     enum class ShadowRootMode { Open, Closed };
</span><span class="cx">     struct ShadowRootInit {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPathStringBuilderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPathStringBuilder.h (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPathStringBuilder.h        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/svg/SVGPathStringBuilder.h        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -18,8 +18,7 @@
</span><span class="cx">  * Boston, MA 02110-1301, USA.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef SVGPathStringBuilder_h
-#define SVGPathStringBuilder_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;SVGPathConsumer.h&quot;
</span><span class="cx"> #include &lt;wtf/text/StringBuilder.h&gt;
</span><span class="lines">@@ -28,32 +27,30 @@
</span><span class="cx"> 
</span><span class="cx"> class SVGPathStringBuilder final : public SVGPathConsumer {
</span><span class="cx"> public:
</span><del>-    SVGPathStringBuilder();
-    ~SVGPathStringBuilder();
</del><ins>+    WEBCORE_EXPORT SVGPathStringBuilder();
+    WEBCORE_EXPORT virtual ~SVGPathStringBuilder();
</ins><span class="cx"> 
</span><del>-    String result();
</del><ins>+    WEBCORE_EXPORT String result();
</ins><span class="cx"> 
</span><del>-private:
-    void incrementPathSegmentCount() override;
-    bool continueConsuming() override;
</del><ins>+    void incrementPathSegmentCount() final;
+    bool continueConsuming() final;
</ins><span class="cx"> 
</span><span class="cx">     // Used in UnalteredParsing/NormalizedParsing modes.
</span><del>-    void moveTo(const FloatPoint&amp;, bool closed, PathCoordinateMode) override;
-    void lineTo(const FloatPoint&amp;, PathCoordinateMode) override;
-    void curveToCubic(const FloatPoint&amp;, const FloatPoint&amp;, const FloatPoint&amp;, PathCoordinateMode) override;
-    void closePath() override;
</del><ins>+    WEBCORE_EXPORT void moveTo(const FloatPoint&amp;, bool closed, PathCoordinateMode) final;
+    WEBCORE_EXPORT void lineTo(const FloatPoint&amp;, PathCoordinateMode) final;
+    WEBCORE_EXPORT void curveToCubic(const FloatPoint&amp;, const FloatPoint&amp;, const FloatPoint&amp;, PathCoordinateMode) final;
+    WEBCORE_EXPORT void closePath() final;
</ins><span class="cx"> 
</span><span class="cx">     // Only used in UnalteredParsing mode.
</span><del>-    void lineToHorizontal(float, PathCoordinateMode) override;
-    void lineToVertical(float, PathCoordinateMode) override;
-    void curveToCubicSmooth(const FloatPoint&amp;, const FloatPoint&amp;, PathCoordinateMode) override;
-    void curveToQuadratic(const FloatPoint&amp;, const FloatPoint&amp;, PathCoordinateMode) override;
-    void curveToQuadraticSmooth(const FloatPoint&amp;, PathCoordinateMode) override;
-    void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&amp;, PathCoordinateMode) override;
</del><ins>+    void lineToHorizontal(float, PathCoordinateMode) final;
+    void lineToVertical(float, PathCoordinateMode) final;
+    void curveToCubicSmooth(const FloatPoint&amp;, const FloatPoint&amp;, PathCoordinateMode) final;
+    WEBCORE_EXPORT void curveToQuadratic(const FloatPoint&amp;, const FloatPoint&amp;, PathCoordinateMode) final;
+    void curveToQuadraticSmooth(const FloatPoint&amp;, PathCoordinateMode) final;
+    void arcTo(float, float, float, bool largeArcFlag, bool sweepFlag, const FloatPoint&amp;, PathCoordinateMode) final;
</ins><span class="cx"> 
</span><ins>+private:
</ins><span class="cx">     StringBuilder m_stringBuilder;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // SVGPathStringBuilder_h
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPathUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPathUtilities.cpp (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPathUtilities.cpp        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/svg/SVGPathUtilities.cpp        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -207,43 +207,4 @@
</span><span class="cx">     return ok;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void pathIteratorForBuildingString(SVGPathConsumer&amp; consumer, const PathElement&amp; pathElement)
-{
-    switch (pathElement.type) {
-    case PathElementMoveToPoint:
-        consumer.moveTo(pathElement.points[0], false, AbsoluteCoordinates);
-        break;
-    case PathElementAddLineToPoint:
-        consumer.lineTo(pathElement.points[0], AbsoluteCoordinates);
-        break;
-    case PathElementAddQuadCurveToPoint:
-        consumer.curveToQuadratic(pathElement.points[0], pathElement.points[1], AbsoluteCoordinates);
-        break;
-    case PathElementAddCurveToPoint:
-        consumer.curveToCubic(pathElement.points[0], pathElement.points[1], pathElement.points[2], AbsoluteCoordinates);
-        break;
-    case PathElementCloseSubpath:
-        consumer.closePath();
-        break;
-
-    default:
-        ASSERT_NOT_REACHED();
-        break;
-    }
</del><span class="cx"> }
</span><del>-
-bool buildStringFromPath(const Path&amp; path, String&amp; string)
-{
-    // Ideally we would have a SVGPathPlatformPathSource, but it's not possible to manually iterate
-    // a path, only apply a function to all path elements at once.
-
-    SVGPathStringBuilder builder;
-    path.apply([&amp;builder](const PathElement&amp; pathElement) {
-        pathIteratorForBuildingString(builder, pathElement);
-    });
-    string = builder.result();
-
-    return true;
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoresvgSVGPathUtilitiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGPathUtilities.h (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGPathUtilities.h        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/svg/SVGPathUtilities.h        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -18,8 +18,7 @@
</span><span class="cx">  * Boston, MA 02110-1301, USA.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef SVGPathUtilities_h
-#define SVGPathUtilities_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;SVGPathConsumer.h&quot;
</span><span class="cx"> #include &quot;SVGPoint.h&quot;
</span><span class="lines">@@ -58,9 +57,4 @@
</span><span class="cx"> bool getTotalLengthOfSVGPathByteStream(const SVGPathByteStream&amp;, float&amp; totalLength);
</span><span class="cx"> bool getPointAtLengthOfSVGPathByteStream(const SVGPathByteStream&amp;, float length, SVGPoint&amp;);
</span><span class="cx"> 
</span><del>-// Path -&gt; String
-WEBCORE_EXPORT bool buildStringFromPath(const Path&amp;, String&amp;);
-
</del><span class="cx"> } // namespace WebCore
</span><del>-
-#endif // SVGPathUtilities_h
</del></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.cpp        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -45,24 +45,6 @@
</span><span class="cx"> #include &quot;ColorChooser.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#define InternalSettingsGuardForSettingsReturn(returnValue) \
-    if (!settings()) { \
-        ec = INVALID_ACCESS_ERR; \
-        return returnValue; \
-    }
-
-#define InternalSettingsGuardForSettings()  \
-    if (!settings()) { \
-        ec = INVALID_ACCESS_ERR; \
-        return; \
-    }
-
-#define InternalSettingsGuardForPage() \
-    if (!page()) { \
-        ec = INVALID_ACCESS_ERR; \
-        return; \
-    }
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> InternalSettings::Backup::Backup(Settings&amp; settings)
</span><span class="lines">@@ -225,8 +207,9 @@
</span><span class="cx">     return static_cast&lt;InternalSettingsWrapper*&gt;(Supplement&lt;Page&gt;::from(page, supplementName()))-&gt;internalSettings();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-InternalSettings::~InternalSettings()
</del><ins>+void InternalSettings::hostDestroyed()
</ins><span class="cx"> {
</span><ins>+    m_page = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InternalSettings::InternalSettings(Page* page)
</span><span class="lines">@@ -239,178 +222,206 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+Ref&lt;InternalSettings&gt; InternalSettings::create(Page* page)
+{
+    return adoptRef(*new InternalSettings(page));
+}
+
</ins><span class="cx"> void InternalSettings::resetToConsistentState()
</span><span class="cx"> {
</span><del>-    page()-&gt;setPageScaleFactor(1, { 0, 0 });
-    page()-&gt;mainFrame().setPageAndTextZoomFactors(1, 1);
-    page()-&gt;setCanStartMedia(true);
-    page()-&gt;settings().setForcePendingWebGLPolicy(false);
</del><ins>+    m_page-&gt;setPageScaleFactor(1, { 0, 0 });
+    m_page-&gt;mainFrame().setPageAndTextZoomFactors(1, 1);
+    m_page-&gt;setCanStartMedia(true);
+
+    settings().setForcePendingWebGLPolicy(false);
</ins><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><del>-    setAllowsAirPlayForMediaPlayback(false);
</del><ins>+    settings().setAllowsAirPlayForMediaPlayback(false);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    m_backup.restoreTo(*settings());
-    m_backup = Backup(*settings());
</del><ins>+    m_backup.restoreTo(settings());
+    m_backup = Backup { settings() };
</ins><span class="cx"> 
</span><span class="cx">     InternalSettingsGenerated::resetToConsistentState();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Settings* InternalSettings::settings() const
</del><ins>+Settings&amp; InternalSettings::settings() const
</ins><span class="cx"> {
</span><del>-    if (!page())
-        return 0;
-    return &amp;page()-&gt;settings();
</del><ins>+    ASSERT(m_page);
+    return m_page-&gt;settings();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setTouchEventEmulationEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setTouchEventEmulationEnabled(bool enabled)
</ins><span class="cx"> {
</span><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setTouchEventEmulationEnabled(enabled);
</del><ins>+    settings().setTouchEventEmulationEnabled(enabled);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><del>-    UNUSED_PARAM(ec);
</del><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setStandardFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setStandardFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_standardFontFamilies.add(code, settings()-&gt;standardFontFamily(code));
-    settings()-&gt;setStandardFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_standardFontFamilies.add(code, settings().standardFontFamily(code));
+    settings().setStandardFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setSerifFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setSerifFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_serifFontFamilies.add(code, settings()-&gt;serifFontFamily(code));
-    settings()-&gt;setSerifFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_serifFontFamilies.add(code, settings().serifFontFamily(code));
+    settings().setSerifFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setSansSerifFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setSansSerifFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_sansSerifFontFamilies.add(code, settings()-&gt;sansSerifFontFamily(code));
-    settings()-&gt;setSansSerifFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_sansSerifFontFamilies.add(code, settings().sansSerifFontFamily(code));
+    settings().setSansSerifFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setFixedFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setFixedFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_fixedFontFamilies.add(code, settings()-&gt;fixedFontFamily(code));
-    settings()-&gt;setFixedFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_fixedFontFamilies.add(code, settings().fixedFontFamily(code));
+    settings().setFixedFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setCursiveFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setCursiveFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_cursiveFontFamilies.add(code, settings()-&gt;cursiveFontFamily(code));
-    settings()-&gt;setCursiveFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_cursiveFontFamilies.add(code, settings().cursiveFontFamily(code));
+    settings().setCursiveFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setFantasyFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setFantasyFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_fantasyFontFamilies.add(code, settings()-&gt;fantasyFontFamily(code));
-    settings()-&gt;setFantasyFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_fantasyFontFamilies.add(code, settings().fantasyFontFamily(code));
+    settings().setFantasyFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setPictographFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setPictographFontFamily(const String&amp; family, const String&amp; script)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     UScriptCode code = scriptNameToCode(script);
</span><span class="cx">     if (code == USCRIPT_INVALID_CODE)
</span><del>-        return;
-    m_backup.m_pictographFontFamilies.add(code, settings()-&gt;pictographFontFamily(code));
-    settings()-&gt;setPictographFontFamily(family, code);
</del><ins>+        return { };
+    m_backup.m_pictographFontFamilies.add(code, settings().pictographFontFamily(code));
+    settings().setPictographFontFamily(family, code);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setTextAutosizingEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setTextAutosizingEnabled(bool enabled)
</ins><span class="cx"> {
</span><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setTextAutosizingEnabled(enabled);
</del><ins>+    settings().setTextAutosizingEnabled(enabled);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><del>-    UNUSED_PARAM(ec);
</del><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setTextAutosizingWindowSizeOverride(int width, int height, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setTextAutosizingWindowSizeOverride(int width, int height)
</ins><span class="cx"> {
</span><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(TEXT_AUTOSIZING)
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setTextAutosizingWindowSizeOverride(IntSize(width, height));
</del><ins>+    settings().setTextAutosizingWindowSizeOverride(IntSize(width, height));
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(width);
</span><span class="cx">     UNUSED_PARAM(height);
</span><del>-    UNUSED_PARAM(ec);
</del><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setMediaTypeOverride(const String&amp; mediaType, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setMediaTypeOverride(const String&amp; mediaType)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setMediaTypeOverride(mediaType);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setMediaTypeOverride(mediaType);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setCanStartMedia(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setCanStartMedia(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     m_page-&gt;setCanStartMedia(enabled);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setAllowsAirPlayForMediaPlayback(bool allows)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setAllowsAirPlayForMediaPlayback(bool allows)
</ins><span class="cx"> {
</span><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><del>-    m_page-&gt;settings().setAllowsAirPlayForMediaPlayback(allows);
</del><ins>+    settings().setAllowsAirPlayForMediaPlayback(allows);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(allows);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setEditingBehavior(const String&amp; editingBehavior, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setEditingBehavior(const String&amp; editingBehavior)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(editingBehavior, &quot;win&quot;))
</span><del>-        settings()-&gt;setEditingBehaviorType(EditingWindowsBehavior);
</del><ins>+        settings().setEditingBehaviorType(EditingWindowsBehavior);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(editingBehavior, &quot;mac&quot;))
</span><del>-        settings()-&gt;setEditingBehaviorType(EditingMacBehavior);
</del><ins>+        settings().setEditingBehaviorType(EditingMacBehavior);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(editingBehavior, &quot;unix&quot;))
</span><del>-        settings()-&gt;setEditingBehaviorType(EditingUnixBehavior);
</del><ins>+        settings().setEditingBehaviorType(EditingUnixBehavior);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(editingBehavior, &quot;ios&quot;))
</span><del>-        settings()-&gt;setEditingBehaviorType(EditingIOSBehavior);
</del><ins>+        settings().setEditingBehaviorType(EditingIOSBehavior);
</ins><span class="cx">     else
</span><del>-        ec = SYNTAX_ERR;
</del><ins>+        return Exception { SYNTAX_ERR };
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setShouldDisplayTrackKind(const String&amp; kind, bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setShouldDisplayTrackKind(const String&amp; kind, bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><del>-    if (!page())
-        return;
-
-    auto&amp; captionPreferences = page()-&gt;group().captionPreferences();
</del><ins>+    auto&amp; captionPreferences = m_page-&gt;group().captionPreferences();
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(kind, &quot;subtitles&quot;))
</span><span class="cx">         captionPreferences.setUserPrefersSubtitles(enabled);
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(kind, &quot;captions&quot;))
</span><span class="lines">@@ -418,22 +429,20 @@
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(kind, &quot;textdescriptions&quot;))
</span><span class="cx">         captionPreferences.setUserPrefersTextDescriptions(enabled);
</span><span class="cx">     else
</span><del>-        ec = SYNTAX_ERR;
</del><ins>+        return Exception { SYNTAX_ERR };
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(kind);
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InternalSettings::shouldDisplayTrackKind(const String&amp; kind, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; InternalSettings::shouldDisplayTrackKind(const String&amp; kind)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettingsReturn(false);
-
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><del>-    if (!page())
-        return false;
-
-    auto&amp; captionPreferences = page()-&gt;group().captionPreferences();
</del><ins>+    auto&amp; captionPreferences = m_page-&gt;group().captionPreferences();
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(kind, &quot;subtitles&quot;))
</span><span class="cx">         return captionPreferences.userPrefersSubtitles();
</span><span class="cx">     if (equalLettersIgnoringASCIICase(kind, &quot;captions&quot;))
</span><span class="lines">@@ -441,8 +450,7 @@
</span><span class="cx">     if (equalLettersIgnoringASCIICase(kind, &quot;textdescriptions&quot;))
</span><span class="cx">         return captionPreferences.userPrefersTextDescriptions();
</span><span class="cx"> 
</span><del>-    ec = SYNTAX_ERR;
-    return false;
</del><ins>+    return Exception { SYNTAX_ERR };
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(kind);
</span><span class="cx">     return false;
</span><span class="lines">@@ -449,18 +457,19 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setStorageBlockingPolicy(const String&amp; mode, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setStorageBlockingPolicy(const String&amp; mode)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     if (mode == &quot;AllowAll&quot;)
</span><del>-        settings()-&gt;setStorageBlockingPolicy(SecurityOrigin::AllowAllStorage);
</del><ins>+        settings().setStorageBlockingPolicy(SecurityOrigin::AllowAllStorage);
</ins><span class="cx">     else if (mode == &quot;BlockThirdParty&quot;)
</span><del>-        settings()-&gt;setStorageBlockingPolicy(SecurityOrigin::BlockThirdPartyStorage);
</del><ins>+        settings().setStorageBlockingPolicy(SecurityOrigin::BlockThirdPartyStorage);
</ins><span class="cx">     else if (mode == &quot;BlockAll&quot;)
</span><del>-        settings()-&gt;setStorageBlockingPolicy(SecurityOrigin::BlockAllStorage);
</del><ins>+        settings().setStorageBlockingPolicy(SecurityOrigin::BlockAllStorage);
</ins><span class="cx">     else
</span><del>-        ec = SYNTAX_ERR;
</del><ins>+        return Exception { SYNTAX_ERR };
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InternalSettings::setLangAttributeAwareFormControlUIEnabled(bool enabled)
</span><span class="lines">@@ -468,130 +477,168 @@
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setLangAttributeAwareFormControlUIEnabled(enabled);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setPreferMIMETypeForImages(bool preferMIMETypeForImages, ExceptionCode &amp;ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setPreferMIMETypeForImages(bool preferMIMETypeForImages)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setPreferMIMETypeForImages(preferMIMETypeForImages);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setPreferMIMETypeForImages(preferMIMETypeForImages);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setImagesEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setImagesEnabled(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setImagesEnabled(enabled);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setImagesEnabled(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setPDFImageCachingPolicy(const String&amp; policy, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setPDFImageCachingPolicy(const String&amp; policy)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(policy, &quot;disabled&quot;))
</span><del>-        settings()-&gt;setPdfImageCachingPolicy(PDFImageCachingDisabled);
</del><ins>+        settings().setPdfImageCachingPolicy(PDFImageCachingDisabled);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(policy, &quot;belowmemorylimit&quot;))
</span><del>-        settings()-&gt;setPdfImageCachingPolicy(PDFImageCachingBelowMemoryLimit);
</del><ins>+        settings().setPdfImageCachingPolicy(PDFImageCachingBelowMemoryLimit);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(policy, &quot;clipboundsonly&quot;))
</span><del>-        settings()-&gt;setPdfImageCachingPolicy(PDFImageCachingClipBoundsOnly);
</del><ins>+        settings().setPdfImageCachingPolicy(PDFImageCachingClipBoundsOnly);
</ins><span class="cx">     else if (equalLettersIgnoringASCIICase(policy, &quot;enabled&quot;))
</span><del>-        settings()-&gt;setPdfImageCachingPolicy(PDFImageCachingEnabled);
</del><ins>+        settings().setPdfImageCachingPolicy(PDFImageCachingEnabled);
</ins><span class="cx">     else
</span><del>-        ec = SYNTAX_ERR;
</del><ins>+        return Exception { SYNTAX_ERR };
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setMinimumTimerInterval(double intervalInSeconds, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setMinimumTimerInterval(double intervalInSeconds)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setMinimumDOMTimerInterval(std::chrono::milliseconds((std::chrono::milliseconds::rep)(intervalInSeconds * 1000)));
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setMinimumDOMTimerInterval(std::chrono::milliseconds((std::chrono::milliseconds::rep)(intervalInSeconds * 1000)));
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setDefaultVideoPosterURL(const String&amp; url, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setDefaultVideoPosterURL(const String&amp; url)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setDefaultVideoPosterURL(url);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setDefaultVideoPosterURL(url);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setForcePendingWebGLPolicy(bool forced, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setForcePendingWebGLPolicy(bool forced)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setForcePendingWebGLPolicy(forced);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setForcePendingWebGLPolicy(forced);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls(double time, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls(double time)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setTimeWithoutMouseMovementBeforeHidingControls(time);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setTimeWithoutMouseMovementBeforeHidingControls(time);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setUseLegacyBackgroundSizeShorthandBehavior(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setUseLegacyBackgroundSizeShorthandBehavior(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setUseLegacyBackgroundSizeShorthandBehavior(enabled);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setUseLegacyBackgroundSizeShorthandBehavior(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setAutoscrollForDragAndDropEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setAutoscrollForDragAndDropEnabled(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setAutoscrollForDragAndDropEnabled(enabled);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setAutoscrollForDragAndDropEnabled(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setFontFallbackPrefersPictographs(bool preferPictographs, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setFontFallbackPrefersPictographs(bool preferPictographs)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setFontFallbackPrefersPictographs(preferPictographs);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setFontFallbackPrefersPictographs(preferPictographs);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setWebFontsAlwaysFallBack(bool enable, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setWebFontsAlwaysFallBack(bool enable)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setWebFontsAlwaysFallBack(enable);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setWebFontsAlwaysFallBack(enable);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setQuickTimePluginReplacementEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setQuickTimePluginReplacementEnabled(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setQuickTimePluginReplacementEnabled(enabled);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setQuickTimePluginReplacementEnabled(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setYouTubeFlashPluginReplacementEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setYouTubeFlashPluginReplacementEnabled(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setYouTubeFlashPluginReplacementEnabled(enabled);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setYouTubeFlashPluginReplacementEnabled(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setBackgroundShouldExtendBeyondPage(bool hasExtendedBackground, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setBackgroundShouldExtendBeyondPage(bool hasExtendedBackground)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setBackgroundShouldExtendBeyondPage(hasExtendedBackground);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setBackgroundShouldExtendBeyondPage(hasExtendedBackground);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setShouldConvertPositionStyleOnCopy(bool convert, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setShouldConvertPositionStyleOnCopy(bool convert)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setShouldConvertPositionStyleOnCopy(convert);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setShouldConvertPositionStyleOnCopy(convert);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setScrollingTreeIncludesFrames(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setScrollingTreeIncludesFrames(bool enabled)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setScrollingTreeIncludesFrames(enabled);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setScrollingTreeIncludesFrames(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setAllowsInlineMediaPlayback(bool allows, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setAllowsInlineMediaPlayback(bool allows)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setAllowsInlineMediaPlayback(allows);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setAllowsInlineMediaPlayback(allows);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setAllowsInlineMediaPlaybackAfterFullscreen(bool allows, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setAllowsInlineMediaPlaybackAfterFullscreen(bool allows)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setAllowsInlineMediaPlaybackAfterFullscreen(allows);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setAllowsInlineMediaPlaybackAfterFullscreen(allows);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool requires, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool requires)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setInlineMediaPlaybackRequiresPlaysInlineAttribute(requires);
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    settings().setInlineMediaPlaybackRequiresPlaysInlineAttribute(requires);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setIndexedDBWorkersEnabled(bool enabled, ExceptionCode&amp;)
</del><ins>+void InternalSettings::setIndexedDBWorkersEnabled(bool enabled)
</ins><span class="cx"> {
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setIndexedDBWorkersEnabled(enabled);
</span><span class="lines">@@ -600,58 +647,62 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String InternalSettings::userInterfaceDirectionPolicy(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; InternalSettings::userInterfaceDirectionPolicy()
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettingsReturn(&quot;&quot;);
-    switch (settings()-&gt;userInterfaceDirectionPolicy()) {
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    switch (settings().userInterfaceDirectionPolicy()) {
</ins><span class="cx">     case UserInterfaceDirectionPolicy::Content:
</span><del>-        return ASCIILiteral(&quot;Content&quot;);
</del><ins>+        return String { ASCIILiteral { &quot;Content&quot; } };
</ins><span class="cx">     case UserInterfaceDirectionPolicy::System:
</span><del>-        return ASCIILiteral(&quot;View&quot;);
</del><ins>+        return String { ASCIILiteral { &quot;View&quot; } };
</ins><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return String();
</del><ins>+    return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setUserInterfaceDirectionPolicy(const String&amp; policy, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setUserInterfaceDirectionPolicy(const String&amp; policy)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(policy, &quot;content&quot;)) {
</span><del>-        settings()-&gt;setUserInterfaceDirectionPolicy(UserInterfaceDirectionPolicy::Content);
-        return;
</del><ins>+        settings().setUserInterfaceDirectionPolicy(UserInterfaceDirectionPolicy::Content);
+        return { };
</ins><span class="cx">     }
</span><span class="cx">     if (equalLettersIgnoringASCIICase(policy, &quot;view&quot;)) {
</span><del>-        settings()-&gt;setUserInterfaceDirectionPolicy(UserInterfaceDirectionPolicy::System);
-        return;
</del><ins>+        settings().setUserInterfaceDirectionPolicy(UserInterfaceDirectionPolicy::System);
+        return { };
</ins><span class="cx">     }
</span><del>-    ec = INVALID_ACCESS_ERR;
</del><ins>+    return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String InternalSettings::systemLayoutDirection(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; InternalSettings::systemLayoutDirection()
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettingsReturn(&quot;&quot;);
-    switch (settings()-&gt;systemLayoutDirection()) {
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
+    switch (settings().systemLayoutDirection()) {
</ins><span class="cx">     case LTR:
</span><del>-        return ASCIILiteral(&quot;LTR&quot;);
</del><ins>+        return String { ASCIILiteral { &quot;LTR&quot; } };
</ins><span class="cx">     case RTL:
</span><del>-        return ASCIILiteral(&quot;RTL&quot;);
</del><ins>+        return String { ASCIILiteral { &quot;RTL&quot; } };
</ins><span class="cx">     }
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><del>-    return String();
</del><ins>+    return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setSystemLayoutDirection(const String&amp; direction, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setSystemLayoutDirection(const String&amp; direction)
</ins><span class="cx"> {
</span><del>-    InternalSettingsGuardForSettings();
</del><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     if (equalLettersIgnoringASCIICase(direction, &quot;ltr&quot;)) {
</span><del>-        settings()-&gt;setSystemLayoutDirection(LTR);
-        return;
</del><ins>+        settings().setSystemLayoutDirection(LTR);
+        return { };
</ins><span class="cx">     }
</span><span class="cx">     if (equalLettersIgnoringASCIICase(direction, &quot;rtl&quot;)) {
</span><del>-        settings()-&gt;setSystemLayoutDirection(RTL);
-        return;
</del><ins>+        settings().setSystemLayoutDirection(RTL);
+        return { };
</ins><span class="cx">     }
</span><del>-    ec = INVALID_ACCESS_ERR;
</del><ins>+    return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InternalSettings::setAllowsAnySSLCertificate(bool allowsAnyCertificate)
</span><span class="lines">@@ -659,31 +710,32 @@
</span><span class="cx">     Settings::setAllowsAnySSLCertificate(allowsAnyCertificate);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool InternalSettings::variationFontsEnabled(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; InternalSettings::variationFontsEnabled()
</ins><span class="cx"> {
</span><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(VARIATION_FONTS)
</span><del>-    InternalSettingsGuardForSettingsReturn(true);
-    return settings()-&gt;variationFontsEnabled();
</del><ins>+    return settings().variationFontsEnabled();
</ins><span class="cx"> #else
</span><del>-    UNUSED_PARAM(ec);
</del><span class="cx">     return false;
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void InternalSettings::setVariationFontsEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; InternalSettings::setVariationFontsEnabled(bool enabled)
</ins><span class="cx"> {
</span><ins>+    if (!m_page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #if ENABLE(VARIATION_FONTS)
</span><del>-    InternalSettingsGuardForSettings();
-    settings()-&gt;setVariationFontsEnabled(enabled);
</del><ins>+    settings().setVariationFontsEnabled(enabled);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(enabled);
</span><del>-    UNUSED_PARAM(ec);
</del><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> InternalSettings::ForcedPrefersReducedMotionValue InternalSettings::forcedPrefersReducedMotionValue() const
</span><span class="cx"> {
</span><del>-    switch (settings()-&gt;forcedPrefersReducedMotionValue()) {
</del><ins>+    switch (settings().forcedPrefersReducedMotionValue()) {
</ins><span class="cx">     case Settings::ForcedPrefersReducedMotionValue::System:
</span><span class="cx">         return InternalSettings::ForcedPrefersReducedMotionValue::System;
</span><span class="cx">     case Settings::ForcedPrefersReducedMotionValue::On:
</span><span class="lines">@@ -700,17 +752,19 @@
</span><span class="cx"> {
</span><span class="cx">     switch (value) {
</span><span class="cx">     case InternalSettings::ForcedPrefersReducedMotionValue::System:
</span><del>-        settings()-&gt;setForcedPrefersReducedMotionValue(Settings::ForcedPrefersReducedMotionValue::System);
-        break;
</del><ins>+        settings().setForcedPrefersReducedMotionValue(Settings::ForcedPrefersReducedMotionValue::System);
+        return;
</ins><span class="cx">     case InternalSettings::ForcedPrefersReducedMotionValue::On:
</span><del>-        settings()-&gt;setForcedPrefersReducedMotionValue(Settings::ForcedPrefersReducedMotionValue::On);
-        break;
</del><ins>+        settings().setForcedPrefersReducedMotionValue(Settings::ForcedPrefersReducedMotionValue::On);
+        return;
</ins><span class="cx">     case InternalSettings::ForcedPrefersReducedMotionValue::Off:
</span><del>-        settings()-&gt;setForcedPrefersReducedMotionValue(Settings::ForcedPrefersReducedMotionValue::Off);
-        break;
</del><ins>+        settings().setForcedPrefersReducedMotionValue(Settings::ForcedPrefersReducedMotionValue::Off);
+        return;
</ins><span class="cx">     }
</span><ins>+
+    ASSERT_NOT_REACHED();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-// If you add to this list, make sure that you update the Backup class for test reproducability!
</del><ins>+// If you add to this class, make sure that you update the Backup class for test reproducability!
</ins><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.h (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.h        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/testing/InternalSettings.h        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include &lt;wtf/text/AtomicStringHash.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;EditingBehaviorTypes.h&quot;
</span><ins>+#include &quot;ExceptionOr.h&quot;
</ins><span class="cx"> #include &quot;FontGenericFamilies.h&quot;
</span><span class="cx"> #include &quot;IntSize.h&quot;
</span><span class="cx"> #include &quot;InternalSettingsGenerated.h&quot;
</span><span class="lines">@@ -39,15 +40,75 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-typedef int ExceptionCode;
-
-class Frame;
-class Document;
</del><span class="cx"> class Page;
</span><span class="cx"> class Settings;
</span><span class="cx"> 
</span><span class="cx"> class InternalSettings : public InternalSettingsGenerated {
</span><span class="cx"> public:
</span><ins>+    static Ref&lt;InternalSettings&gt; create(Page*);
+    static InternalSettings* from(Page*);
+    void hostDestroyed();
+    void resetToConsistentState();
+
+    ExceptionOr&lt;void&gt; setUsesOverlayScrollbars(bool);
+    ExceptionOr&lt;void&gt; setTouchEventEmulationEnabled(bool);
+    ExceptionOr&lt;void&gt; setStandardFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setSerifFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setSansSerifFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setFixedFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setCursiveFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setFantasyFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setPictographFontFamily(const String&amp; family, const String&amp; script);
+    ExceptionOr&lt;void&gt; setTextAutosizingEnabled(bool);
+    ExceptionOr&lt;void&gt; setTextAutosizingWindowSizeOverride(int width, int height);
+    ExceptionOr&lt;void&gt; setTextAutosizingFontScaleFactor(float);
+    ExceptionOr&lt;void&gt; setMediaTypeOverride(const String&amp;);
+    ExceptionOr&lt;void&gt; setCanStartMedia(bool);
+    ExceptionOr&lt;void&gt; setAllowsAirPlayForMediaPlayback(bool);
+    ExceptionOr&lt;void&gt; setEditingBehavior(const String&amp;);
+    ExceptionOr&lt;void&gt; setPreferMIMETypeForImages(bool);
+    ExceptionOr&lt;void&gt; setPDFImageCachingPolicy(const String&amp;);
+    ExceptionOr&lt;void&gt; setShouldDisplayTrackKind(const String&amp; kind, bool enabled);
+    ExceptionOr&lt;bool&gt; shouldDisplayTrackKind(const String&amp; kind);
+    ExceptionOr&lt;void&gt; setStorageBlockingPolicy(const String&amp;);
+    static void setLangAttributeAwareFormControlUIEnabled(bool);
+    ExceptionOr&lt;void&gt; setImagesEnabled(bool);
+    ExceptionOr&lt;void&gt; setMinimumTimerInterval(double intervalInSeconds);
+    ExceptionOr&lt;void&gt; setDefaultVideoPosterURL(const String&amp;);
+    ExceptionOr&lt;void&gt; setForcePendingWebGLPolicy(bool);
+    ExceptionOr&lt;void&gt; setTimeWithoutMouseMovementBeforeHidingControls(double);
+    ExceptionOr&lt;void&gt; setUseLegacyBackgroundSizeShorthandBehavior(bool);
+    ExceptionOr&lt;void&gt; setAutoscrollForDragAndDropEnabled(bool);
+    ExceptionOr&lt;void&gt; setFontFallbackPrefersPictographs(bool);
+    ExceptionOr&lt;void&gt; setWebFontsAlwaysFallBack(bool);
+    ExceptionOr&lt;void&gt; setQuickTimePluginReplacementEnabled(bool);
+    ExceptionOr&lt;void&gt; setYouTubeFlashPluginReplacementEnabled(bool);
+    ExceptionOr&lt;void&gt; setBackgroundShouldExtendBeyondPage(bool);
+    ExceptionOr&lt;void&gt; setShouldConvertPositionStyleOnCopy(bool);
+    ExceptionOr&lt;void&gt; setScrollingTreeIncludesFrames(bool);
+    ExceptionOr&lt;void&gt; setAllowsInlineMediaPlayback(bool);
+    ExceptionOr&lt;void&gt; setAllowsInlineMediaPlaybackAfterFullscreen(bool);
+    ExceptionOr&lt;void&gt; setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool);
+    static void setIndexedDBWorkersEnabled(bool);
+    ExceptionOr&lt;String&gt; userInterfaceDirectionPolicy();
+    ExceptionOr&lt;void&gt; setUserInterfaceDirectionPolicy(const String&amp;);
+    ExceptionOr&lt;String&gt; systemLayoutDirection();
+    ExceptionOr&lt;void&gt; setSystemLayoutDirection(const String&amp;);
+    ExceptionOr&lt;bool&gt; variationFontsEnabled();
+    ExceptionOr&lt;void&gt; setVariationFontsEnabled(bool);
+
+    enum class ForcedPrefersReducedMotionValue { System, On, Off };
+    ForcedPrefersReducedMotionValue forcedPrefersReducedMotionValue() const;
+    void setForcedPrefersReducedMotionValue(ForcedPrefersReducedMotionValue);
+
+    static void setAllowsAnySSLCertificate(bool);
+
+private:
+    explicit InternalSettings(Page*);
+
+    Settings&amp; settings() const;
+    static const char* supplementName();
+
</ins><span class="cx">     class Backup {
</span><span class="cx">     public:
</span><span class="cx">         explicit Backup(Settings&amp;);
</span><span class="lines">@@ -118,76 +179,6 @@
</span><span class="cx">         Settings::ForcedPrefersReducedMotionValue m_forcedPrefersReducedMotionValue;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    static Ref&lt;InternalSettings&gt; create(Page* page)
-    {
-        return adoptRef(*new InternalSettings(page));
-    }
-    static InternalSettings* from(Page*);
-    void hostDestroyed() { m_page = 0; }
-
-    virtual ~InternalSettings();
-    void resetToConsistentState();
-
-    void setUsesOverlayScrollbars(bool, ExceptionCode&amp;);
-    void setTouchEventEmulationEnabled(bool, ExceptionCode&amp;);
-    void setStandardFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setSerifFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setSansSerifFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setFixedFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setCursiveFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setFantasyFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setPictographFontFamily(const String&amp; family, const String&amp; script, ExceptionCode&amp;);
-    void setTextAutosizingEnabled(bool enabled, ExceptionCode&amp;);
-    void setTextAutosizingWindowSizeOverride(int width, int height, ExceptionCode&amp;);
-    void setTextAutosizingFontScaleFactor(float fontScaleFactor, ExceptionCode&amp;);
-    void setMediaTypeOverride(const String&amp; mediaType, ExceptionCode&amp;);
-    void setCanStartMedia(bool, ExceptionCode&amp;);
-    void setAllowsAirPlayForMediaPlayback(bool);
-    void setEditingBehavior(const String&amp;, ExceptionCode&amp;);
-    void setPreferMIMETypeForImages(bool, ExceptionCode&amp;);
-    void setPDFImageCachingPolicy(const String&amp;, ExceptionCode&amp;);
-    void setShouldDisplayTrackKind(const String&amp; kind, bool enabled, ExceptionCode&amp;);
-    bool shouldDisplayTrackKind(const String&amp; kind, ExceptionCode&amp;);
-    void setStorageBlockingPolicy(const String&amp;, ExceptionCode&amp;);
-    void setLangAttributeAwareFormControlUIEnabled(bool);
-    void setImagesEnabled(bool, ExceptionCode&amp;);
-    void setMinimumTimerInterval(double intervalInSeconds, ExceptionCode&amp;);
-    void setDefaultVideoPosterURL(const String&amp; url, ExceptionCode&amp;);
-    void setForcePendingWebGLPolicy(bool, ExceptionCode&amp;);
-    void setTimeWithoutMouseMovementBeforeHidingControls(double time, ExceptionCode&amp;);
-    void setUseLegacyBackgroundSizeShorthandBehavior(bool, ExceptionCode&amp;);
-    void setAutoscrollForDragAndDropEnabled(bool, ExceptionCode&amp;);
-    void setFontFallbackPrefersPictographs(bool, ExceptionCode&amp;);
-    void setWebFontsAlwaysFallBack(bool, ExceptionCode&amp;);
-    void setQuickTimePluginReplacementEnabled(bool, ExceptionCode&amp;);
-    void setYouTubeFlashPluginReplacementEnabled(bool, ExceptionCode&amp;);
-    void setBackgroundShouldExtendBeyondPage(bool, ExceptionCode&amp;);
-    void setShouldConvertPositionStyleOnCopy(bool, ExceptionCode&amp;);
-    void setScrollingTreeIncludesFrames(bool, ExceptionCode&amp;);
-    void setAllowsInlineMediaPlayback(bool, ExceptionCode&amp;);
-    void setAllowsInlineMediaPlaybackAfterFullscreen(bool, ExceptionCode&amp;);
-    void setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool, ExceptionCode&amp;);
-    void setIndexedDBWorkersEnabled(bool, ExceptionCode&amp;);
-    String userInterfaceDirectionPolicy(ExceptionCode&amp;);
-    void setUserInterfaceDirectionPolicy(const String&amp; policy, ExceptionCode&amp;);
-    String systemLayoutDirection(ExceptionCode&amp;);
-    void setSystemLayoutDirection(const String&amp; direction, ExceptionCode&amp;);
-    bool variationFontsEnabled(ExceptionCode&amp;);
-    void setVariationFontsEnabled(bool, ExceptionCode&amp;);
-
-    enum class ForcedPrefersReducedMotionValue { System, On, Off };
-    ForcedPrefersReducedMotionValue forcedPrefersReducedMotionValue() const;
-    void setForcedPrefersReducedMotionValue(ForcedPrefersReducedMotionValue);
-
-    static void setAllowsAnySSLCertificate(bool);
-
-private:
-    explicit InternalSettings(Page*);
-
-    Settings* settings() const;
-    Page* page() const { return m_page; }
-    static const char* supplementName();
-
</del><span class="cx">     Page* m_page;
</span><span class="cx">     Backup m_backup;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalSettingsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/InternalSettings.idl (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/InternalSettings.idl        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/testing/InternalSettings.idl        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -31,65 +31,65 @@
</span><span class="cx">     JSGenerateToJSObject,
</span><span class="cx">     ExportMacro=WEBCORE_TESTSUPPORT_EXPORT,
</span><span class="cx"> ] interface InternalSettings : InternalSettingsGenerated {
</span><del>-    [MayThrowLegacyException] void setTouchEventEmulationEnabled(boolean enabled);
</del><ins>+    [MayThrowException] void setTouchEventEmulationEnabled(boolean enabled);
</ins><span class="cx"> 
</span><span class="cx">     // Fonts, text
</span><del>-    [MayThrowLegacyException] void setStandardFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setSerifFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setSansSerifFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setFixedFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setCursiveFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setFantasyFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setPictographFontFamily(DOMString family, DOMString script);
-    [MayThrowLegacyException] void setFontFallbackPrefersPictographs(boolean preferPictographs);
-    [MayThrowLegacyException] void setWebFontsAlwaysFallBack(boolean enable);
</del><ins>+    [MayThrowException] void setStandardFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setSerifFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setSansSerifFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setFixedFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setCursiveFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setFantasyFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setPictographFontFamily(DOMString family, DOMString script);
+    [MayThrowException] void setFontFallbackPrefersPictographs(boolean preferPictographs);
+    [MayThrowException] void setWebFontsAlwaysFallBack(boolean enable);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setTextAutosizingEnabled(boolean enabled);
-    [MayThrowLegacyException] void setTextAutosizingWindowSizeOverride(long width, long height);
</del><ins>+    [MayThrowException] void setTextAutosizingEnabled(boolean enabled);
+    [MayThrowException] void setTextAutosizingWindowSizeOverride(long width, long height);
</ins><span class="cx"> 
</span><span class="cx">     // Media
</span><del>-    [MayThrowLegacyException] void setCanStartMedia(boolean enabled);
-    [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setShouldDisplayTrackKind(DOMString kind, boolean enabled);
-    [Conditional=VIDEO_TRACK, MayThrowLegacyException] boolean shouldDisplayTrackKind(DOMString trackKind);
-    [MayThrowLegacyException] void setDefaultVideoPosterURL(DOMString poster);
-    [MayThrowLegacyException] void setTimeWithoutMouseMovementBeforeHidingControls(unrestricted double time);
-    [MayThrowLegacyException] void setMediaTypeOverride(DOMString mediaTypeOverride);
</del><ins>+    [MayThrowException] void setCanStartMedia(boolean enabled);
+    [Conditional=VIDEO_TRACK, MayThrowException] void setShouldDisplayTrackKind(DOMString kind, boolean enabled);
+    [Conditional=VIDEO_TRACK, MayThrowException] boolean shouldDisplayTrackKind(DOMString trackKind);
+    [MayThrowException] void setDefaultVideoPosterURL(DOMString poster);
+    [MayThrowException] void setTimeWithoutMouseMovementBeforeHidingControls(unrestricted double time);
+    [MayThrowException] void setMediaTypeOverride(DOMString mediaTypeOverride);
</ins><span class="cx">     void setAllowsAirPlayForMediaPlayback(boolean available);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setForcePendingWebGLPolicy(boolean forced);
</del><ins>+    [MayThrowException] void setForcePendingWebGLPolicy(boolean forced);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setQuickTimePluginReplacementEnabled(boolean enabled);
-    [MayThrowLegacyException] void setYouTubeFlashPluginReplacementEnabled(boolean enabled);
</del><ins>+    [MayThrowException] void setQuickTimePluginReplacementEnabled(boolean enabled);
+    [MayThrowException] void setYouTubeFlashPluginReplacementEnabled(boolean enabled);
</ins><span class="cx"> 
</span><span class="cx">     // Editing, forms
</span><del>-    [MayThrowLegacyException] void setEditingBehavior(DOMString behavior);
-    [MayThrowLegacyException] void setShouldConvertPositionStyleOnCopy(boolean convertPosition);
</del><ins>+    [MayThrowException] void setEditingBehavior(DOMString behavior);
+    [MayThrowException] void setShouldConvertPositionStyleOnCopy(boolean convertPosition);
</ins><span class="cx">     void setLangAttributeAwareFormControlUIEnabled(boolean enabled);
</span><del>-    [MayThrowLegacyException] void setPreferMIMETypeForImages(boolean preferMimeTypeForImage);
</del><ins>+    [MayThrowException] void setPreferMIMETypeForImages(boolean preferMimeTypeForImage);
</ins><span class="cx"> 
</span><span class="cx">     // Other switches
</span><del>-    [MayThrowLegacyException] void setStorageBlockingPolicy(DOMString policy);
-    [MayThrowLegacyException] void setImagesEnabled(boolean enabled);
-    [MayThrowLegacyException] void setPDFImageCachingPolicy(DOMString policy);
-    [MayThrowLegacyException] void setUseLegacyBackgroundSizeShorthandBehavior(boolean enabled);
-    [MayThrowLegacyException] void setAutoscrollForDragAndDropEnabled(boolean enabled);
-    [MayThrowLegacyException] void setBackgroundShouldExtendBeyondPage(boolean hasExtendedBackground);
-    [MayThrowLegacyException] void setScrollingTreeIncludesFrames(boolean enabled);
</del><ins>+    [MayThrowException] void setStorageBlockingPolicy(DOMString policy);
+    [MayThrowException] void setImagesEnabled(boolean enabled);
+    [MayThrowException] void setPDFImageCachingPolicy(DOMString policy);
+    [MayThrowException] void setUseLegacyBackgroundSizeShorthandBehavior(boolean enabled);
+    [MayThrowException] void setAutoscrollForDragAndDropEnabled(boolean enabled);
+    [MayThrowException] void setBackgroundShouldExtendBeyondPage(boolean hasExtendedBackground);
+    [MayThrowException] void setScrollingTreeIncludesFrames(boolean enabled);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setMinimumTimerInterval(unrestricted double intervalInSeconds);
-    [MayThrowLegacyException] void setAllowsInlineMediaPlayback(boolean allows);
-    [MayThrowLegacyException] void setAllowsInlineMediaPlaybackAfterFullscreen(boolean allows);
-    [MayThrowLegacyException] void setInlineMediaPlaybackRequiresPlaysInlineAttribute(boolean requires);
</del><ins>+    [MayThrowException] void setMinimumTimerInterval(unrestricted double intervalInSeconds);
+    [MayThrowException] void setAllowsInlineMediaPlayback(boolean allows);
+    [MayThrowException] void setAllowsInlineMediaPlaybackAfterFullscreen(boolean allows);
+    [MayThrowException] void setInlineMediaPlaybackRequiresPlaysInlineAttribute(boolean requires);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setIndexedDBWorkersEnabled(boolean requires);
</del><ins>+    void setIndexedDBWorkersEnabled(boolean requires);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString userInterfaceDirectionPolicy();
-    [MayThrowLegacyException] void setUserInterfaceDirectionPolicy(DOMString policy);
-    [MayThrowLegacyException] DOMString systemLayoutDirection();
-    [MayThrowLegacyException] void setSystemLayoutDirection(DOMString direction);
</del><ins>+    [MayThrowException] DOMString userInterfaceDirectionPolicy();
+    [MayThrowException] void setUserInterfaceDirectionPolicy(DOMString policy);
+    [MayThrowException] DOMString systemLayoutDirection();
+    [MayThrowException] void setSystemLayoutDirection(DOMString direction);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] boolean variationFontsEnabled();
-    [MayThrowLegacyException] void setVariationFontsEnabled(boolean enabled);
</del><ins>+    [MayThrowException] boolean variationFontsEnabled();
+    [MayThrowException] void setVariationFontsEnabled(boolean enabled);
</ins><span class="cx"> 
</span><span class="cx">     attribute ForcedPrefersReducedMotionValue forcedPrefersReducedMotionValue;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -108,6 +108,7 @@
</span><span class="cx"> #include &quot;RenderedDocumentMarker.h&quot;
</span><span class="cx"> #include &quot;ResourceLoadObserver.h&quot;
</span><span class="cx"> #include &quot;RuntimeEnabledFeatures.h&quot;
</span><ins>+#include &quot;SVGPathStringBuilder.h&quot;
</ins><span class="cx"> #include &quot;SchemeRegistry.h&quot;
</span><span class="cx"> #include &quot;ScriptedAnimationController.h&quot;
</span><span class="cx"> #include &quot;ScrollingCoordinator.h&quot;
</span><span class="lines">@@ -232,28 +233,24 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-class InspectorStubFrontend : public InspectorFrontendClientLocal, public FrontendChannel {
</del><ins>+class InspectorStubFrontend final : public InspectorFrontendClientLocal, public FrontendChannel {
</ins><span class="cx"> public:
</span><span class="cx">     InspectorStubFrontend(Page&amp; inspectedPage, RefPtr&lt;DOMWindow&gt;&amp;&amp; frontendWindow);
</span><span class="cx">     virtual ~InspectorStubFrontend();
</span><span class="cx"> 
</span><del>-    // InspectorFrontendClient API
-    void attachWindow(DockSide) override { }
-    void detachWindow() override { }
-    void closeWindow() override;
-    void bringToFront() override { }
-    String localizedStringsURL() override { return String(); }
-    void inspectedURLChanged(const String&amp;) override { }
-protected:
-    void setAttachedWindowHeight(unsigned) override { }
-    void setAttachedWindowWidth(unsigned) override { }
</del><ins>+private:
+    void attachWindow(DockSide) final { }
+    void detachWindow() final { }
+    void closeWindow() final;
+    void bringToFront() final { }
+    String localizedStringsURL() final { return String(); }
+    void inspectedURLChanged(const String&amp;) final { }
+    void setAttachedWindowHeight(unsigned) final { }
+    void setAttachedWindowWidth(unsigned) final { }
</ins><span class="cx"> 
</span><del>-public:
-    // Inspector::FrontendChannel API
-    bool sendMessageToFrontend(const String&amp; message) override;
-    ConnectionType connectionType() const override { return ConnectionType::Local; }
</del><ins>+    bool sendMessageToFrontend(const String&amp; message) final;
+    ConnectionType connectionType() const final { return ConnectionType::Local; }
</ins><span class="cx"> 
</span><del>-private:
</del><span class="cx">     Page* frontendPage() const
</span><span class="cx">     {
</span><span class="cx">         if (!m_frontendWindow || !m_frontendWindow-&gt;document())
</span><span class="lines">@@ -586,14 +583,13 @@
</span><span class="cx">     frame()-&gt;loader().setOverrideCachePolicyForTesting(toResourceRequestCachePolicy(policy));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setCanShowModalDialogOverride(bool allow, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setCanShowModalDialogOverride(bool allow)
</ins><span class="cx"> {
</span><del>-    if (!contextDocument() || !contextDocument()-&gt;domWindow()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!contextDocument() || !contextDocument()-&gt;domWindow())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     contextDocument()-&gt;domWindow()-&gt;setCanShowModalDialogOverride(allow);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static ResourceLoadPriority toResourceLoadPriority(Internals::ResourceLoadPriority priority)
</span><span class="lines">@@ -671,12 +667,10 @@
</span><span class="cx">     return parentTreeScope ? &amp;parentTreeScope-&gt;rootNode() : nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::lastSpatialNavigationCandidateCount(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::lastSpatialNavigationCandidateCount() const
</ins><span class="cx"> {
</span><del>-    if (!contextDocument() || !contextDocument()-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return 0;
-    }
</del><ins>+    if (!contextDocument() || !contextDocument()-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return contextDocument()-&gt;page()-&gt;lastSpatialNavigationCandidateCount();
</span><span class="cx"> }
</span><span class="lines">@@ -686,110 +680,88 @@
</span><span class="cx">     return frame()-&gt;animation().numberOfActiveAnimations(frame()-&gt;document());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::animationsAreSuspended(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;bool&gt; Internals::animationsAreSuspended() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;frame()-&gt;animation().isSuspended();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::suspendAnimations(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;void&gt; Internals::suspendAnimations() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;frame()-&gt;animation().suspendAnimations();
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::resumeAnimations(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;void&gt; Internals::resumeAnimations() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;frame()-&gt;animation().resumeAnimations();
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::pauseAnimationAtTimeOnElement(const String&amp; animationName, double pauseTime, Element&amp; element, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::pauseAnimationAtTimeOnElement(const String&amp; animationName, double pauseTime, Element&amp; element)
</ins><span class="cx"> {
</span><del>-    if (pauseTime &lt; 0) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (pauseTime &lt; 0)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     return frame()-&gt;animation().pauseAnimationAtTime(element.renderer(), AtomicString(animationName), pauseTime);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::pauseAnimationAtTimeOnPseudoElement(const String&amp; animationName, double pauseTime, Element&amp; element, const String&amp; pseudoId, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::pauseAnimationAtTimeOnPseudoElement(const String&amp; animationName, double pauseTime, Element&amp; element, const String&amp; pseudoId)
</ins><span class="cx"> {
</span><del>-    if (pauseTime &lt; 0) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (pauseTime &lt; 0)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    if (pseudoId != &quot;before&quot; &amp;&amp; pseudoId != &quot;after&quot;) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (pseudoId != &quot;before&quot; &amp;&amp; pseudoId != &quot;after&quot;)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     PseudoElement* pseudoElement = pseudoId == &quot;before&quot; ? element.beforePseudoElement() : element.afterPseudoElement();
</span><del>-    if (!pseudoElement) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (!pseudoElement)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return frame()-&gt;animation().pauseAnimationAtTime(pseudoElement-&gt;renderer(), AtomicString(animationName), pauseTime);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::pauseTransitionAtTimeOnElement(const String&amp; propertyName, double pauseTime, Element&amp; element, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::pauseTransitionAtTimeOnElement(const String&amp; propertyName, double pauseTime, Element&amp; element)
</ins><span class="cx"> {
</span><del>-    if (pauseTime &lt; 0) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (pauseTime &lt; 0)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     return frame()-&gt;animation().pauseTransitionAtTime(element.renderer(), propertyName, pauseTime);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::pauseTransitionAtTimeOnPseudoElement(const String&amp; property, double pauseTime, Element&amp; element, const String&amp; pseudoId, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::pauseTransitionAtTimeOnPseudoElement(const String&amp; property, double pauseTime, Element&amp; element, const String&amp; pseudoId)
</ins><span class="cx"> {
</span><del>-    if (pauseTime &lt; 0) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (pauseTime &lt; 0)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    if (pseudoId != &quot;before&quot; &amp;&amp; pseudoId != &quot;after&quot;) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (pseudoId != &quot;before&quot; &amp;&amp; pseudoId != &quot;after&quot;)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     PseudoElement* pseudoElement = pseudoId == &quot;before&quot; ? element.beforePseudoElement() : element.afterPseudoElement();
</span><del>-    if (!pseudoElement) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (!pseudoElement)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return frame()-&gt;animation().pauseTransitionAtTime(pseudoElement-&gt;renderer(), property, pauseTime);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::elementRenderTreeAsText(Element&amp; element, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::elementRenderTreeAsText(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     element.document().updateStyleIfNeeded();
</span><span class="cx"> 
</span><span class="cx">     String representation = externalRepresentation(&amp;element);
</span><del>-    if (representation.isEmpty()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (representation.isEmpty())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    return representation;
</del><ins>+    return WTFMove(representation);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Internals::hasPausedImageAnimations(Element&amp; element)
</span><span class="lines">@@ -803,12 +775,16 @@
</span><span class="cx">     return CSSComputedStyleDeclaration::create(element, allowVisitedStyle);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* Internals::ensureShadowRoot(Element&amp; host, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Node*&gt; Internals::ensureShadowRoot(Element&amp; host)
</ins><span class="cx"> {
</span><span class="cx">     if (ShadowRoot* shadowRoot = host.shadowRoot())
</span><span class="cx">         return shadowRoot;
</span><span class="cx"> 
</span><del>-    return host.createShadowRoot(ec).get();
</del><ins>+    ExceptionCode ec = 0;
+    auto result = host.createShadowRoot(ec);
+    if (ec)
+        return Exception { ec };
+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Node* Internals::ensureUserAgentShadowRoot(Element&amp; host)
</span><span class="lines">@@ -816,9 +792,13 @@
</span><span class="cx">     return &amp;host.ensureUserAgentShadowRoot();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* Internals::createShadowRoot(Element&amp; host, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Node*&gt; Internals::createShadowRoot(Element&amp; host)
</ins><span class="cx"> {
</span><del>-    return host.createShadowRoot(ec).get();
</del><ins>+    ExceptionCode ec = 0;
+    auto result = host.createShadowRoot(ec);
+    if (ec)
+        return Exception { ec };
+    return result;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Node* Internals::shadowRoot(Element&amp; host)
</span><span class="lines">@@ -826,12 +806,10 @@
</span><span class="cx">     return host.shadowRoot();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::shadowRootType(const Node&amp; root, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::shadowRootType(const Node&amp; root) const
</ins><span class="cx"> {
</span><del>-    if (!is&lt;ShadowRoot&gt;(root)) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!is&lt;ShadowRoot&gt;(root))
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     switch (downcast&lt;ShadowRoot&gt;(root).mode()) {
</span><span class="cx">     case ShadowRoot::Mode::UserAgent:
</span><span class="lines">@@ -856,13 +834,11 @@
</span><span class="cx">     return element.setPseudo(id);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::isTimerThrottled(int timeoutId, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::isTimerThrottled(int timeoutId)
</ins><span class="cx"> {
</span><span class="cx">     DOMTimer* timer = scriptExecutionContext()-&gt;findTimeout(timeoutId);
</span><del>-    if (!timer) {
-        ec = NOT_FOUND_ERR;
-        return false;
-    }
</del><ins>+    if (!timer)
+        return Exception { NOT_FOUND_ERR };
</ins><span class="cx">     return timer-&gt;m_throttleState == DOMTimer::ShouldThrottle;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -901,28 +877,22 @@
</span><span class="cx">     element.selectColor(Color(colorValue));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Vector&lt;String&gt; Internals::formControlStateOfPreviousHistoryItem(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Vector&lt;String&gt;&gt; Internals::formControlStateOfPreviousHistoryItem()
</ins><span class="cx"> {
</span><span class="cx">     HistoryItem* mainItem = frame()-&gt;loader().history().previousItem();
</span><del>-    if (!mainItem) {
-        ec = INVALID_ACCESS_ERR;
-        return Vector&lt;String&gt;();
-    }
</del><ins>+    if (!mainItem)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     String uniqueName = frame()-&gt;tree().uniqueName();
</span><del>-    if (mainItem-&gt;target() != uniqueName &amp;&amp; !mainItem-&gt;childItemWithTarget(uniqueName)) {
-        ec = INVALID_ACCESS_ERR;
-        return Vector&lt;String&gt;();
-    }
-    return mainItem-&gt;target() == uniqueName ? mainItem-&gt;documentState() : mainItem-&gt;childItemWithTarget(uniqueName)-&gt;documentState();
</del><ins>+    if (mainItem-&gt;target() != uniqueName &amp;&amp; !mainItem-&gt;childItemWithTarget(uniqueName))
+        return Exception { INVALID_ACCESS_ERR };
+    return Vector&lt;String&gt; { mainItem-&gt;target() == uniqueName ? mainItem-&gt;documentState() : mainItem-&gt;childItemWithTarget(uniqueName)-&gt;documentState() };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setFormControlStateOfPreviousHistoryItem(const Vector&lt;String&gt;&amp; state, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setFormControlStateOfPreviousHistoryItem(const Vector&lt;String&gt;&amp; state)
</ins><span class="cx"> {
</span><span class="cx">     HistoryItem* mainItem = frame()-&gt;loader().history().previousItem();
</span><del>-    if (!mainItem) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!mainItem)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     String uniqueName = frame()-&gt;tree().uniqueName();
</span><span class="cx">     if (mainItem-&gt;target() == uniqueName)
</span><span class="cx">         mainItem-&gt;setDocumentState(state);
</span><span class="lines">@@ -929,10 +899,12 @@
</span><span class="cx">     else if (HistoryItem* subItem = mainItem-&gt;childItemWithTarget(uniqueName))
</span><span class="cx">         subItem-&gt;setDocumentState(state);
</span><span class="cx">     else
</span><del>-        ec = INVALID_ACCESS_ERR;
</del><ins>+        return Exception { INVALID_ACCESS_ERR };
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SPEECH_SYNTHESIS)
</span><ins>+
</ins><span class="cx"> void Internals::enableMockSpeechSynthesizer()
</span><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="lines">@@ -944,9 +916,11 @@
</span><span class="cx">     
</span><span class="cx">     synthesis-&gt;setPlatformSynthesizer(std::make_unique&lt;PlatformSpeechSynthesizerMock&gt;(synthesis));
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><ins>+
</ins><span class="cx"> void Internals::enableMockMediaEndpoint()
</span><span class="cx"> {
</span><span class="cx">     MediaEndpoint::create = MockMediaEndpoint::create;
</span><span class="lines">@@ -961,22 +935,23 @@
</span><span class="cx"> {
</span><span class="cx">     connection.emulatePlatformEvent(action);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><ins>+
</ins><span class="cx"> void Internals::setMockMediaCaptureDevicesEnabled(bool enabled)
</span><span class="cx"> {
</span><span class="cx">     WebCore::Settings::setMockCaptureDevicesEnabled(enabled);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-Ref&lt;ClientRect&gt; Internals::absoluteCaretBounds(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Ref&lt;ClientRect&gt;&gt; Internals::absoluteCaretBounds()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return ClientRect::create();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return ClientRect::create(document-&gt;frame()-&gt;selection().absoluteCaretBounds());
</span><span class="cx"> }
</span><span class="lines">@@ -990,13 +965,11 @@
</span><span class="cx">     return ClientRect::create(renderer-&gt;absoluteBoundingBoxRectIgnoringTransforms());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;ClientRectList&gt; Internals::inspectorHighlightRects(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Ref&lt;ClientRectList&gt;&gt; Internals::inspectorHighlightRects()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return ClientRectList::create();
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Highlight highlight;
</span><span class="cx">     document-&gt;page()-&gt;inspectorController().getHighlight(highlight, InspectorOverlay::CoordinateSystem::View);
</span><span class="lines">@@ -1003,38 +976,32 @@
</span><span class="cx">     return ClientRectList::create(highlight.quads);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::inspectorHighlightObject(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::inspectorHighlightObject()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;page()-&gt;inspectorController().buildObjectForHighlightedNodes()-&gt;toJSONString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::markerCountForNode(Node&amp; node, const String&amp; markerType, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::markerCountForNode(Node&amp; node, const String&amp; markerType)
</ins><span class="cx"> {
</span><span class="cx">     DocumentMarker::MarkerTypes markerTypes = 0;
</span><del>-    if (!markerTypesFrom(markerType, markerTypes)) {
-        ec = SYNTAX_ERR;
-        return 0;
-    }
</del><ins>+    if (!markerTypesFrom(markerType, markerTypes))
+        return Exception { SYNTAX_ERR };
</ins><span class="cx"> 
</span><span class="cx">     node.document().frame()-&gt;editor().updateEditorUINowIfScheduled();
</span><span class="cx">     return node.document().markers().markersFor(&amp;node, markerTypes).size();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RenderedDocumentMarker* Internals::markerAt(Node&amp; node, const String&amp; markerType, unsigned index, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;RenderedDocumentMarker*&gt; Internals::markerAt(Node&amp; node, const String&amp; markerType, unsigned index)
</ins><span class="cx"> {
</span><span class="cx">     node.document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="cx">     DocumentMarker::MarkerTypes markerTypes = 0;
</span><del>-    if (!markerTypesFrom(markerType, markerTypes)) {
-        ec = SYNTAX_ERR;
-        return nullptr;
-    }
</del><ins>+    if (!markerTypesFrom(markerType, markerTypes))
+        return Exception { SYNTAX_ERR };
</ins><span class="cx"> 
</span><span class="cx">     node.document().frame()-&gt;editor().updateEditorUINowIfScheduled();
</span><span class="cx"> 
</span><span class="lines">@@ -1044,29 +1011,33 @@
</span><span class="cx">     return markers[index];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Range&gt; Internals::markerRangeForNode(Node&amp; node, const String&amp; markerType, unsigned index, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;RefPtr&lt;Range&gt;&gt; Internals::markerRangeForNode(Node&amp; node, const String&amp; markerType, unsigned index)
</ins><span class="cx"> {
</span><del>-    RenderedDocumentMarker* marker = markerAt(node, markerType, index, ec);
</del><ins>+    auto result = markerAt(node, markerType, index);
+    if (result.hasException())
+        return result.releaseException();
+    auto marker = result.releaseReturnValue();
</ins><span class="cx">     if (!marker)
</span><span class="cx">         return nullptr;
</span><del>-    return Range::create(node.document(), &amp;node, marker-&gt;startOffset(), &amp;node, marker-&gt;endOffset());
</del><ins>+    return RefPtr&lt;Range&gt; { Range::create(node.document(), &amp;node, marker-&gt;startOffset(), &amp;node, marker-&gt;endOffset()) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::markerDescriptionForNode(Node&amp; node, const String&amp; markerType, unsigned index, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::markerDescriptionForNode(Node&amp; node, const String&amp; markerType, unsigned index)
</ins><span class="cx"> {
</span><del>-    RenderedDocumentMarker* marker = markerAt(node, markerType, index, ec);
</del><ins>+    auto result = markerAt(node, markerType, index);
+    if (result.hasException())
+        return result.releaseException();
+    auto marker = result.releaseReturnValue();
</ins><span class="cx">     if (!marker)
</span><span class="cx">         return String();
</span><del>-    return marker-&gt;description();
</del><ins>+    return String { marker-&gt;description() };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::dumpMarkerRects(const String&amp; markerTypeString, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::dumpMarkerRects(const String&amp; markerTypeString)
</ins><span class="cx"> {
</span><span class="cx">     DocumentMarker::MarkerType markerType;
</span><del>-    if (!markerTypeFrom(markerTypeString, markerType)) {
-        ec = SYNTAX_ERR;
-        return String();
-    }
</del><ins>+    if (!markerTypeFrom(markerTypeString, markerType))
+        return Exception { SYNTAX_ERR };
</ins><span class="cx"> 
</span><span class="cx">     contextDocument()-&gt;markers().updateRectsForInvalidatedMarkersOfType(markerType);
</span><span class="cx">     auto rects = contextDocument()-&gt;markers().renderedRectsForMarkers(markerType);
</span><span class="lines">@@ -1093,14 +1064,13 @@
</span><span class="cx">     range.ownerDocument().markers().addTextMatchMarker(&amp;range, isActive);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setMarkedTextMatchesAreHighlighted(bool flag, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setMarkedTextMatchesAreHighlighted(bool flag)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     document-&gt;frame()-&gt;editor().setMarkedTextMatchesAreHighlighted(flag);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::invalidateFontCache()
</span><span class="lines">@@ -1108,44 +1078,40 @@
</span><span class="cx">     FontCache::singleton().invalidate();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setScrollViewPosition(int x, int y, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setScrollViewPosition(int x, int y)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    bool constrainsScrollingToContentEdgeOldValue = frameView-&gt;constrainsScrollingToContentEdge();
-    bool scrollbarsSuppressedOldValue = frameView-&gt;scrollbarsSuppressed();
</del><ins>+    auto&amp; frameView = *document-&gt;view();
+    bool constrainsScrollingToContentEdgeOldValue = frameView.constrainsScrollingToContentEdge();
+    bool scrollbarsSuppressedOldValue = frameView.scrollbarsSuppressed();
</ins><span class="cx"> 
</span><del>-    frameView-&gt;setConstrainsScrollingToContentEdge(false);
-    frameView-&gt;setScrollbarsSuppressed(false);
-    frameView-&gt;setScrollOffsetFromInternals({ x, y });
-    frameView-&gt;setScrollbarsSuppressed(scrollbarsSuppressedOldValue);
-    frameView-&gt;setConstrainsScrollingToContentEdge(constrainsScrollingToContentEdgeOldValue);
</del><ins>+    frameView.setConstrainsScrollingToContentEdge(false);
+    frameView.setScrollbarsSuppressed(false);
+    frameView.setScrollOffsetFromInternals({ x, y });
+    frameView.setScrollbarsSuppressed(scrollbarsSuppressedOldValue);
+    frameView.setConstrainsScrollingToContentEdge(constrainsScrollingToContentEdgeOldValue);
+
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setViewBaseBackgroundColor(const String&amp; colorValue, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setViewBaseBackgroundColor(const String&amp; colorValue)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;view()-&gt;setBaseBackgroundColor(Color(colorValue));
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setPagination(const String&amp; mode, int gap, int pageLength, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setPagination(const String&amp; mode, int gap, int pageLength)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    Page* page = document-&gt;page();
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Pagination pagination;
</span><span class="cx">     if (mode == &quot;Unpaginated&quot;)
</span><span class="lines">@@ -1158,47 +1124,42 @@
</span><span class="cx">         pagination.mode = Pagination::TopToBottomPaginated;
</span><span class="cx">     else if (mode == &quot;BottomToTopPaginated&quot;)
</span><span class="cx">         pagination.mode = Pagination::BottomToTopPaginated;
</span><del>-    else {
-        ec = SYNTAX_ERR;
-        return;
-    }
</del><ins>+    else
+        return Exception { SYNTAX_ERR };
</ins><span class="cx"> 
</span><span class="cx">     pagination.gap = gap;
</span><span class="cx">     pagination.pageLength = pageLength;
</span><del>-    page-&gt;setPagination(pagination);
</del><ins>+    document-&gt;page()-&gt;setPagination(pagination);
+
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setPaginationLineGridEnabled(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setPaginationLineGridEnabled(bool enabled)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    Page* page = document-&gt;page();
-    page-&gt;setPaginationLineGridEnabled(enabled);
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
+    document-&gt;page()-&gt;setPaginationLineGridEnabled(enabled);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::configurationForViewport(float devicePixelRatio, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::configurationForViewport(float devicePixelRatio, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
-    Page* page = document-&gt;page();
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     const int defaultLayoutWidthForNonMobilePages = 980;
</span><span class="cx"> 
</span><del>-    ViewportArguments arguments = page-&gt;viewportArguments();
</del><ins>+    ViewportArguments arguments = document-&gt;page()-&gt;viewportArguments();
</ins><span class="cx">     ViewportAttributes attributes = computeViewportAttributes(arguments, defaultLayoutWidthForNonMobilePages, deviceWidth, deviceHeight, devicePixelRatio, IntSize(availableWidth, availableHeight));
</span><span class="cx">     restrictMinimumScaleFactorToViewportSize(attributes, IntSize(availableWidth, availableHeight), devicePixelRatio);
</span><span class="cx">     restrictScaleFactorToInitialScaleIfNotUserScalable(attributes);
</span><span class="cx"> 
</span><del>-    return &quot;viewport size &quot; + String::number(attributes.layoutSize.width()) + &quot;x&quot; + String::number(attributes.layoutSize.height()) + &quot; scale &quot; + String::number(attributes.initialScale) + &quot; with limits [&quot; + String::number(attributes.minimumScale) + &quot;, &quot; + String::number(attributes.maximumScale) + &quot;] and userScalable &quot; + (attributes.userScalable ? &quot;true&quot; : &quot;false&quot;);
</del><ins>+    return String { &quot;viewport size &quot; + String::number(attributes.layoutSize.width()) + &quot;x&quot; + String::number(attributes.layoutSize.height()) + &quot; scale &quot; + String::number(attributes.initialScale) + &quot; with limits [&quot; + String::number(attributes.minimumScale) + &quot;, &quot; + String::number(attributes.maximumScale) + &quot;] and userScalable &quot; + (attributes.userScalable ? &quot;true&quot; : &quot;false&quot;) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::wasLastChangeUserEdit(Element&amp; textField, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::wasLastChangeUserEdit(Element&amp; textField)
</ins><span class="cx"> {
</span><span class="cx">     if (is&lt;HTMLInputElement&gt;(textField))
</span><span class="cx">         return downcast&lt;HTMLInputElement&gt;(textField).lastChangeWasUserEdit();
</span><span class="lines">@@ -1206,8 +1167,7 @@
</span><span class="cx">     if (is&lt;HTMLTextAreaElement&gt;(textField))
</span><span class="cx">         return downcast&lt;HTMLTextAreaElement&gt;(textField).lastChangeWasUserEdit();
</span><span class="cx"> 
</span><del>-    ec = INVALID_NODE_TYPE_ERR;
-    return false;
</del><ins>+    return Exception { INVALID_NODE_TYPE_ERR };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Internals::elementShouldAutoComplete(HTMLInputElement&amp; element)
</span><span class="lines">@@ -1244,36 +1204,31 @@
</span><span class="cx">     element.setShowAutoFillButton(toAutoFillButtonType(type));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::scrollElementToRect(Element&amp; element, int x, int y, int w, int h, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::scrollElementToRect(Element&amp; element, int x, int y, int w, int h)
</ins><span class="cx"> {
</span><span class="cx">     FrameView* frameView = element.document().view();
</span><del>-    if (!frameView) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!frameView)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     frameView-&gt;scrollElementToRect(element, { x, y, w, h });
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::autofillFieldName(Element&amp; element, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::autofillFieldName(Element&amp; element)
</ins><span class="cx"> {
</span><del>-    if (!is&lt;HTMLFormControlElement&gt;(element)) {
-        ec = INVALID_NODE_TYPE_ERR;
-        return { };
-    }
</del><ins>+    if (!is&lt;HTMLFormControlElement&gt;(element))
+        return Exception { INVALID_NODE_TYPE_ERR };
</ins><span class="cx"> 
</span><del>-    return downcast&lt;HTMLFormControlElement&gt;(element).autofillData().fieldName;
</del><ins>+    return String { downcast&lt;HTMLFormControlElement&gt;(element).autofillData().fieldName };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::paintControlTints(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::paintControlTints()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;paintControlTints();
</del><ins>+    document-&gt;view()-&gt;paintControlTints();
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;Range&gt; Internals::rangeFromLocationAndLength(Element&amp; scope, int rangeLocation, int rangeLength)
</span><span class="lines">@@ -1307,14 +1262,12 @@
</span><span class="cx">     return TextIterator::subrange(&amp;range, rangeLocation, rangeLength);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Range&gt; Internals::rangeForDictionaryLookupAtLocation(int x, int y, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;RefPtr&lt;Range&gt;&gt; Internals::rangeForDictionaryLookupAtLocation(int x, int y)
</ins><span class="cx"> {
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return nullptr;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;updateLayoutIgnorePendingStylesheets();
</span><span class="cx">     
</span><span class="lines">@@ -1324,41 +1277,35 @@
</span><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(x);
</span><span class="cx">     UNUSED_PARAM(y);
</span><del>-    ec = INVALID_ACCESS_ERR;
-    return nullptr;
</del><ins>+    return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setDelegatesScrolling(bool enabled, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setDelegatesScrolling(bool enabled)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     // Delegate scrolling is valid only on mainframe's view.
</span><del>-    if (!document || !document-&gt;view() || !document-&gt;page() || &amp;document-&gt;page()-&gt;mainFrame() != document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view() || !document-&gt;page() || &amp;document-&gt;page()-&gt;mainFrame() != document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;view()-&gt;setDelegatesScrolling(enabled);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Internals::lastSpellCheckRequestSequence(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;int&gt; Internals::lastSpellCheckRequestSequence()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return -1;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;frame()-&gt;editor().spellChecker().lastRequestSequence();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int Internals::lastSpellCheckProcessedSequence(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;int&gt; Internals::lastSpellCheckProcessedSequence()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return -1;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;frame()-&gt;editor().spellChecker().lastProcessedSequence();
</span><span class="cx"> }
</span><span class="lines">@@ -1397,24 +1344,20 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::wheelEventHandlerCount(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::wheelEventHandlerCount()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return 0;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;wheelEventHandlerCount();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::touchEventHandlerCount(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::touchEventHandlerCount()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return 0;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;touchEventHandlerCount();
</span><span class="cx"> }
</span><span class="lines">@@ -1423,13 +1366,10 @@
</span><span class="cx"> // contextDocument(), with the exception of a few tests that pass a
</span><span class="cx"> // different document, and could just make the call through another Internals
</span><span class="cx"> // instance instead.
</span><del>-RefPtr&lt;NodeList&gt; Internals::nodesFromRect(Document&amp; document, int centerX, int centerY, unsigned topPadding, unsigned rightPadding,
-    unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, bool allowChildFrameContent, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;RefPtr&lt;NodeList&gt;&gt; Internals::nodesFromRect(Document&amp; document, int centerX, int centerY, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, bool allowChildFrameContent) const
</ins><span class="cx"> {
</span><del>-    if (!document.frame() || !document.frame()-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return nullptr;
-    }
</del><ins>+    if (!document.frame() || !document.frame()-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Frame* frame = document.frame();
</span><span class="cx">     FrameView* frameView = document.view();
</span><span class="lines">@@ -1475,7 +1415,7 @@
</span><span class="cx">             matches.uncheckedAppend(*node);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return StaticNodeList::create(WTFMove(matches));
</del><ins>+    return RefPtr&lt;NodeList&gt; { StaticNodeList::create(WTFMove(matches)) };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> class GetCallerCodeBlockFunctor {
</span><span class="lines">@@ -1559,13 +1499,11 @@
</span><span class="cx">     return result.toString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setBatteryStatus(const String&amp; eventType, bool charging, double chargingTime, double dischargingTime, double level, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setBatteryStatus(const String&amp; eventType, bool charging, double chargingTime, double dischargingTime, double level)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(BATTERY_STATUS)
</span><span class="cx">     BatteryController::from(document-&gt;page())-&gt;didChangeBatteryStatus(eventType, BatteryStatus::create(charging, chargingTime, dischargingTime, level));
</span><span class="lines">@@ -1576,24 +1514,23 @@
</span><span class="cx">     UNUSED_PARAM(dischargingTime);
</span><span class="cx">     UNUSED_PARAM(level);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setDeviceProximity(const String&amp; eventType, double value, double min, double max, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setDeviceProximity(const String&amp;, double value, double min, double max)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(PROXIMITY_EVENTS)
</span><span class="cx">     DeviceProximityController::from(document-&gt;page())-&gt;didChangeDeviceProximity(value, min, max);
</span><span class="cx"> #else
</span><del>-    UNUSED_PARAM(eventType);
</del><span class="cx">     UNUSED_PARAM(value);
</span><span class="cx">     UNUSED_PARAM(min);
</span><span class="cx">     UNUSED_PARAM(max);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::updateEditorUINowIfScheduled()
</span><span class="lines">@@ -1604,7 +1541,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::hasSpellingMarker(int from, int length, ExceptionCode&amp;)
</del><ins>+bool Internals::hasSpellingMarker(int from, int length)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1615,7 +1552,7 @@
</span><span class="cx">     return document-&gt;frame()-&gt;editor().selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-bool Internals::hasAutocorrectedMarker(int from, int length, ExceptionCode&amp;)
</del><ins>+bool Internals::hasAutocorrectedMarker(int from, int length)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1700,7 +1637,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::handleAcceptedCandidate(const String&amp; candidate, unsigned location, unsigned length, ExceptionCode&amp;)
</del><ins>+void Internals::handleAcceptedCandidate(const String&amp; candidate, unsigned location, unsigned length)
</ins><span class="cx"> {
</span><span class="cx">     if (!contextDocument() || !contextDocument()-&gt;frame())
</span><span class="cx">         return;
</span><span class="lines">@@ -1713,7 +1650,7 @@
</span><span class="cx">     contextDocument()-&gt;frame()-&gt;editor().handleAcceptedCandidate(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::isOverwriteModeEnabled(ExceptionCode&amp;)
</del><ins>+bool Internals::isOverwriteModeEnabled()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1722,7 +1659,7 @@
</span><span class="cx">     return document-&gt;frame()-&gt;editor().isOverwriteModeEnabled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::toggleOverwriteModeEnabled(ExceptionCode&amp;)
</del><ins>+void Internals::toggleOverwriteModeEnabled()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1731,7 +1668,7 @@
</span><span class="cx">     document-&gt;frame()-&gt;editor().toggleOverwriteModeEnabled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::countMatchesForText(const String&amp; text, unsigned findOptions, const String&amp; markMatches, ExceptionCode&amp;)
</del><ins>+unsigned Internals::countMatchesForText(const String&amp; text, unsigned findOptions, const String&amp; markMatches)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1741,7 +1678,7 @@
</span><span class="cx">     return document-&gt;frame()-&gt;editor().countMatchesForText(text, nullptr, findOptions, 1000, mark, nullptr);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::countFindMatches(const String&amp; text, unsigned findOptions, ExceptionCode&amp;)
</del><ins>+unsigned Internals::countFindMatches(const String&amp; text, unsigned findOptions)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;page())
</span><span class="lines">@@ -1778,18 +1715,17 @@
</span><span class="cx">     m_inspectorFrontend = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setInspectorIsUnderTest(bool isUnderTest, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setInspectorIsUnderTest(bool isUnderTest)
</ins><span class="cx"> {
</span><span class="cx">     Page* page = contextDocument()-&gt;frame()-&gt;page();
</span><del>-    if (!page) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!page)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     page-&gt;inspectorController().setIsUnderTest(isUnderTest);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::hasGrammarMarker(int from, int length, ExceptionCode&amp;)
</del><ins>+bool Internals::hasGrammarMarker(int from, int length)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1798,7 +1734,7 @@
</span><span class="cx">     return document-&gt;frame()-&gt;editor().selectionStartHasMarkerFor(DocumentMarker::Grammar, from, length);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::numberOfScrollableAreas(ExceptionCode&amp;)
</del><ins>+unsigned Internals::numberOfScrollableAreas()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="cx">     if (!document || !document-&gt;frame())
</span><span class="lines">@@ -1817,13 +1753,11 @@
</span><span class="cx">     return count;
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-bool Internals::isPageBoxVisible(int pageNumber, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::isPageBoxVisible(int pageNumber)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;isPageBoxVisible(pageNumber);
</span><span class="cx"> }
</span><span class="lines">@@ -1832,12 +1766,10 @@
</span><span class="cx"> // contextDocument(), with the exception of a few tests that pass a
</span><span class="cx"> // different document, and could just make the call through another Internals
</span><span class="cx"> // instance instead.
</span><del>-String Internals::layerTreeAsText(Document&amp; document, unsigned short flags, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::layerTreeAsText(Document&amp; document, unsigned short flags) const
</ins><span class="cx"> {
</span><del>-    if (!document.frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document.frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     LayerTreeFlags layerTreeFlags = 0;
</span><span class="cx">     if (flags &amp; LAYER_TREE_INCLUDES_VISIBLE_RECTS)
</span><span class="lines">@@ -1854,24 +1786,20 @@
</span><span class="cx">     return document.frame()-&gt;layerTreeAsText(layerTreeFlags);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::repaintRectsAsText(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::repaintRectsAsText() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;frame()-&gt;trackedRepaintRectsAsText();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::scrollingStateTreeAsText(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::scrollingStateTreeAsText() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Page* page = document-&gt;page();
</span><span class="cx">     if (!page)
</span><span class="lines">@@ -1880,13 +1808,11 @@
</span><span class="cx">     return page-&gt;scrollingStateTreeAsText();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::mainThreadScrollingReasons(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::mainThreadScrollingReasons() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Page* page = document-&gt;page();
</span><span class="cx">     if (!page)
</span><span class="lines">@@ -1895,97 +1821,77 @@
</span><span class="cx">     return page-&gt;synchronousScrollingReasonsAsText();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;ClientRectList&gt; Internals::nonFastScrollableRects(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;RefPtr&lt;ClientRectList&gt;&gt; Internals::nonFastScrollableRects() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return nullptr;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Page* page = document-&gt;page();
</span><span class="cx">     if (!page)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    return page-&gt;nonFastScrollableRects();
</del><ins>+    return RefPtr&lt;ClientRectList&gt; { page-&gt;nonFastScrollableRects() };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setElementUsesDisplayListDrawing(Element&amp; element, bool usesDisplayListDrawing, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setElementUsesDisplayListDrawing(Element&amp; element, bool usesDisplayListDrawing)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    if (!element.renderer()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!element.renderer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     if (is&lt;HTMLCanvasElement&gt;(element)) {
</span><span class="cx">         downcast&lt;HTMLCanvasElement&gt;(element).setUsesDisplayListDrawing(usesDisplayListDrawing);
</span><del>-        return;
</del><ins>+        return { };
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!element.renderer()-&gt;hasLayer()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!element.renderer()-&gt;hasLayer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx">     RenderLayer* layer = downcast&lt;RenderLayerModelObject&gt;(element.renderer())-&gt;layer();
</span><del>-    if (!layer-&gt;isComposited()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!layer-&gt;isComposited())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx">     layer-&gt;backing()-&gt;setUsesDisplayListDrawing(usesDisplayListDrawing);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setElementTracksDisplayListReplay(Element&amp; element, bool isTrackingReplay, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setElementTracksDisplayListReplay(Element&amp; element, bool isTrackingReplay)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    if (!element.renderer()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!element.renderer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     if (is&lt;HTMLCanvasElement&gt;(element)) {
</span><span class="cx">         downcast&lt;HTMLCanvasElement&gt;(element).setTracksDisplayListReplay(isTrackingReplay);
</span><del>-        return;
</del><ins>+        return { };
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!element.renderer()-&gt;hasLayer()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!element.renderer()-&gt;hasLayer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     RenderLayer* layer = downcast&lt;RenderLayerModelObject&gt;(element.renderer())-&gt;layer();
</span><del>-    if (!layer-&gt;isComposited()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!layer-&gt;isComposited())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx">     layer-&gt;backing()-&gt;setIsTrackingDisplayListReplay(isTrackingReplay);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::displayListForElement(Element&amp; element, unsigned short flags, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::displayListForElement(Element&amp; element, unsigned short flags)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    if (!element.renderer()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!element.renderer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     DisplayList::AsTextFlags displayListFlags = 0;
</span><span class="cx">     if (flags &amp; DISPLAY_LIST_INCLUDES_PLATFORM_OPERATIONS)
</span><span class="lines">@@ -1994,32 +1900,24 @@
</span><span class="cx">     if (is&lt;HTMLCanvasElement&gt;(element))
</span><span class="cx">         return downcast&lt;HTMLCanvasElement&gt;(element).displayListAsText(displayListFlags);
</span><span class="cx"> 
</span><del>-    if (!element.renderer()-&gt;hasLayer()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!element.renderer()-&gt;hasLayer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     RenderLayer* layer = downcast&lt;RenderLayerModelObject&gt;(element.renderer())-&gt;layer();
</span><del>-    if (!layer-&gt;isComposited()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!layer-&gt;isComposited())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return layer-&gt;backing()-&gt;displayListAsText(displayListFlags);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::replayDisplayListForElement(Element&amp; element, unsigned short flags, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::replayDisplayListForElement(Element&amp; element, unsigned short flags)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    if (!element.renderer()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!element.renderer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     DisplayList::AsTextFlags displayListFlags = 0;
</span><span class="cx">     if (flags &amp; DISPLAY_LIST_INCLUDES_PLATFORM_OPERATIONS)
</span><span class="lines">@@ -2028,28 +1926,23 @@
</span><span class="cx">     if (is&lt;HTMLCanvasElement&gt;(element))
</span><span class="cx">         return downcast&lt;HTMLCanvasElement&gt;(element).replayDisplayListAsText(displayListFlags);
</span><span class="cx"> 
</span><del>-    if (!element.renderer()-&gt;hasLayer()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!element.renderer()-&gt;hasLayer())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     RenderLayer* layer = downcast&lt;RenderLayerModelObject&gt;(element.renderer())-&gt;layer();
</span><del>-    if (!layer-&gt;isComposited()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!layer-&gt;isComposited())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return layer-&gt;backing()-&gt;replayDisplayListAsText(displayListFlags);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::garbageCollectDocumentResources(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;void&gt; Internals::garbageCollectDocumentResources() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     document-&gt;cachedResourceLoader().garbageCollectDocumentResources();
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Internals::isUnderMemoryPressure()
</span><span class="lines">@@ -2067,32 +1960,30 @@
</span><span class="cx">     MemoryPressureHandler::singleton().endSimulatedMemoryPressure();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::insertAuthorCSS(const String&amp; css, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;void&gt; Internals::insertAuthorCSS(const String&amp; css) const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     auto parsedSheet = StyleSheetContents::create(*document);
</span><span class="cx">     parsedSheet.get().setIsUserStyleSheet(false);
</span><span class="cx">     parsedSheet.get().parseString(css);
</span><span class="cx">     document-&gt;extensionStyleSheets().addAuthorStyleSheetForTesting(WTFMove(parsedSheet));
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::insertUserCSS(const String&amp; css, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;void&gt; Internals::insertUserCSS(const String&amp; css) const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     auto parsedSheet = StyleSheetContents::create(*document);
</span><span class="cx">     parsedSheet.get().setIsUserStyleSheet(true);
</span><span class="cx">     parsedSheet.get().parseString(css);
</span><span class="cx">     document-&gt;extensionStyleSheets().addUserStyleSheet(WTFMove(parsedSheet));
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String Internals::counterValue(Element&amp; element)
</span><span class="lines">@@ -2126,91 +2017,80 @@
</span><span class="cx">     return PrintContext::numberOfPages(*frame(), FloatSize(pageWidth, pageHeight));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::pageProperty(String propertyName, int pageNumber, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::pageProperty(const String&amp; propertyName, int pageNumber) const
</ins><span class="cx"> {
</span><del>-    if (!frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return PrintContext::pageProperty(frame(), propertyName.utf8().data(), pageNumber);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft, ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const
</ins><span class="cx"> {
</span><del>-    if (!frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return PrintContext::pageSizeAndMarginsInPixels(frame(), pageNumber, width, height, marginTop, marginRight, marginBottom, marginLeft);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setPageScaleFactor(float scaleFactor, int x, int y, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setPageScaleFactor(float scaleFactor, int x, int y)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    Page* page = document-&gt;page();
-    page-&gt;setPageScaleFactor(scaleFactor, IntPoint(x, y));
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
+
+    document-&gt;page()-&gt;setPageScaleFactor(scaleFactor, IntPoint(x, y));
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setPageZoomFactor(float zoomFactor, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setPageZoomFactor(float zoomFactor)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    Frame* frame = document-&gt;frame();
-    frame-&gt;setPageZoomFactor(zoomFactor);
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
+
+    document-&gt;frame()-&gt;setPageZoomFactor(zoomFactor);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setTextZoomFactor(float zoomFactor, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setTextZoomFactor(float zoomFactor)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    Frame* frame = document-&gt;frame();
-    frame-&gt;setTextZoomFactor(zoomFactor);
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
+
+    document-&gt;frame()-&gt;setTextZoomFactor(zoomFactor);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setUseFixedLayout(bool useFixedLayout, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setUseFixedLayout(bool useFixedLayout)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setUseFixedLayout(useFixedLayout);
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
+
+    document-&gt;view()-&gt;setUseFixedLayout(useFixedLayout);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setFixedLayoutSize(int width, int height, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setFixedLayoutSize(int width, int height)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setFixedLayoutSize(IntSize(width, height));
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
+
+    document-&gt;view()-&gt;setFixedLayoutSize(IntSize(width, height));
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setViewExposedRect(float x, float y, float width, float height, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setViewExposedRect(float x, float y, float width, float height)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setViewExposedRect(FloatRect(x, y, width, height));
</del><ins>+    document-&gt;view()-&gt;setViewExposedRect(FloatRect(x, y, width, height));
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::setHeaderHeight(float height)
</span><span class="lines">@@ -2219,8 +2099,7 @@
</span><span class="cx">     if (!document || !document-&gt;view())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setHeaderHeight(height);
</del><ins>+    document-&gt;view()-&gt;setHeaderHeight(height);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::setFooterHeight(float height)
</span><span class="lines">@@ -2229,21 +2108,20 @@
</span><span class="cx">     if (!document || !document-&gt;view())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setFooterHeight(height);
</del><ins>+    document-&gt;view()-&gt;setFooterHeight(height);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void Internals::setTopContentInset(float contentInset)
</span><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document)
</del><ins>+    if (!document || !document-&gt;page())
</ins><span class="cx">         return;
</span><del>-    
-    Page* page = document-&gt;page();
-    page-&gt;setTopContentInset(contentInset);
</del><ins>+
+    document-&gt;page()-&gt;setTopContentInset(contentInset);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(FULLSCREEN_API)
</span><ins>+
</ins><span class="cx"> void Internals::webkitWillEnterFullScreenForElement(Element&amp; element)
</span><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><span class="lines">@@ -2275,12 +2153,13 @@
</span><span class="cx">         return;
</span><span class="cx">     document-&gt;webkitDidExitFullScreenForElement(&amp;element);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void Internals::setApplicationCacheOriginQuota(unsigned long long quota)
</span><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document)
</del><ins>+    if (!document || !document-&gt;page())
</ins><span class="cx">         return;
</span><span class="cx">     document-&gt;page()-&gt;applicationCacheStorage().storeUpdatedQuotaForOrigin(document-&gt;securityOrigin(), quota);
</span><span class="cx"> }
</span><span class="lines">@@ -2316,69 +2195,60 @@
</span><span class="cx">     return FormController::getReferencedFilePaths(frame()-&gt;loader().history().currentItem()-&gt;documentState());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::startTrackingRepaints(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::startTrackingRepaints()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setTracksRepaints(true);
</del><ins>+    document-&gt;view()-&gt;setTracksRepaints(true);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::stopTrackingRepaints(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::stopTrackingRepaints()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;view()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;view())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><del>-    FrameView* frameView = document-&gt;view();
-    frameView-&gt;setTracksRepaints(false);
</del><ins>+    document-&gt;view()-&gt;setTracksRepaints(false);
+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::startTrackingLayerFlushes(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::startTrackingLayerFlushes()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;renderView()-&gt;compositor().startTrackingLayerFlushes();
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::layerFlushCount(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::layerFlushCount()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return 0;
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return document-&gt;renderView()-&gt;compositor().layerFlushCount();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::startTrackingStyleRecalcs(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::startTrackingStyleRecalcs()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
+
</ins><span class="cx">     document-&gt;startTrackingStyleRecalcs();
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::styleRecalcCount(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::styleRecalcCount()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document) {
-        ec = INVALID_ACCESS_ERR;
-        return 0;
-    }
</del><ins>+    if (!document)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx">     return document-&gt;styleRecalcCount();
</span><span class="cx"> }
</span><span class="lines">@@ -2391,29 +2261,26 @@
</span><span class="cx">     return document-&gt;lastStyleUpdateSizeForTesting();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::startTrackingCompositingUpdates(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::startTrackingCompositingUpdates()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;renderView()-&gt;compositor().startTrackingCompositingUpdates();
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-unsigned Internals::compositingUpdateCount(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;unsigned&gt; Internals::compositingUpdateCount()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;renderView()) {
-        ec = INVALID_ACCESS_ERR;
-        return 0;
-    }
</del><ins>+    if (!document || !document-&gt;renderView())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx">     return document-&gt;renderView()-&gt;compositor().compositingUpdateCount();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node* node, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node* node)
</ins><span class="cx"> {
</span><span class="cx">     Document* document;
</span><span class="cx">     if (!node)
</span><span class="lines">@@ -2422,12 +2289,11 @@
</span><span class="cx">         document = downcast&lt;Document&gt;(node);
</span><span class="cx">     else if (is&lt;HTMLIFrameElement&gt;(*node))
</span><span class="cx">         document = downcast&lt;HTMLIFrameElement&gt;(*node).contentDocument();
</span><del>-    else {
-        ec = TypeError;
-        return;
-    }
</del><ins>+    else
+        return Exception { TypeError };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;updateLayoutIgnorePendingStylesheets(Document::RunPostLayoutTasks::Synchronously);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned Internals::layoutCount() const
</span><span class="lines">@@ -2493,13 +2359,11 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-String Internals::getCurrentCursorInfo(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::getCurrentCursorInfo()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx">     Cursor cursor = document-&gt;frame()-&gt;eventHandler().currentMouseCursor();
</span><span class="lines">@@ -2527,7 +2391,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     return result.toString();
</span><span class="cx"> #else
</span><del>-    return &quot;FAIL: Cursor details not available on this platform.&quot;;
</del><ins>+    return String { &quot;FAIL: Cursor details not available on this platform.&quot; };
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2611,7 +2475,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Internals::mediaElementHasCharacteristic(HTMLMediaElement&amp; element, const String&amp; characteristic, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::mediaElementHasCharacteristic(HTMLMediaElement&amp; element, const String&amp; characteristic)
</ins><span class="cx"> {
</span><span class="cx">     if (equalLettersIgnoringASCIICase(characteristic, &quot;audible&quot;))
</span><span class="cx">         return element.hasAudio();
</span><span class="lines">@@ -2620,9 +2484,9 @@
</span><span class="cx">     if (equalLettersIgnoringASCIICase(characteristic, &quot;legible&quot;))
</span><span class="cx">         return element.hasClosedCaptions();
</span><span class="cx"> 
</span><del>-    ec = SYNTAX_ERR;
-    return false;
</del><ins>+    return Exception { SYNTAX_ERR };
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> bool Internals::isSelectPopupVisible(HTMLSelectElement&amp; element)
</span><span class="lines">@@ -2639,13 +2503,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::captionsStyleSheetOverride(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::captionsStyleSheetOverride()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return emptyString();
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     return document-&gt;page()-&gt;group().captionPreferences().captionsStyleSheetOverride();
</span><span class="lines">@@ -2654,13 +2516,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setCaptionsStyleSheetOverride(const String&amp; override, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setCaptionsStyleSheetOverride(const String&amp; override)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     document-&gt;page()-&gt;group().captionPreferences().setCaptionsStyleSheetOverride(override);
</span><span class="lines">@@ -2667,15 +2527,14 @@
</span><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(override);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setPrimaryAudioTrackLanguageOverride(const String&amp; language, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setPrimaryAudioTrackLanguageOverride(const String&amp; language)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     document-&gt;page()-&gt;group().captionPreferences().setPrimaryAudioTrackLanguageOverride(language);
</span><span class="lines">@@ -2682,15 +2541,14 @@
</span><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(language);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setCaptionDisplayMode(const String&amp; mode, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setCaptionDisplayMode(const String&amp; mode)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;page()) {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    if (!document || !document-&gt;page())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     auto&amp; captionPreferences = document-&gt;page()-&gt;group().captionPreferences();
</span><span class="lines">@@ -2704,13 +2562,15 @@
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(mode, &quot;manual&quot;))
</span><span class="cx">         captionPreferences.setCaptionDisplayMode(CaptionUserPreferences::Manual);
</span><span class="cx">     else
</span><del>-        ec = SYNTAX_ERR;
</del><ins>+        return Exception { SYNTAX_ERR };
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(mode);
</span><span class="cx"> #endif
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><ins>+
</ins><span class="cx"> Ref&lt;TimeRanges&gt; Internals::createTimeRanges(Float32Array&amp; startTimes, Float32Array&amp; endTimes)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(startTimes.length() == endTimes.length());
</span><span class="lines">@@ -2726,36 +2586,34 @@
</span><span class="cx"> {
</span><span class="cx">     return ranges.nearest(time);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-Ref&lt;ClientRect&gt; Internals::selectionBounds(ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Ref&lt;ClientRect&gt;&gt; Internals::selectionBounds()
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return ClientRect::create();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return ClientRect::create(document-&gt;frame()-&gt;selection().selectionBounds());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIBRATION)
</span><ins>+
</ins><span class="cx"> bool Internals::isVibrating()
</span><span class="cx"> {
</span><del>-    Page* page = contextDocument()-&gt;page();
-    ASSERT(page);
</del><ins>+    auto* document = contextDocument();
+    auto* page = document ? document-&gt;page() : nullptr;
+    return page &amp;&amp; Vibration::from(page)-&gt;isVibrating();
+}
</ins><span class="cx"> 
</span><del>-    return Vibration::from(page)-&gt;isVibrating();
-}
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-bool Internals::isPluginUnavailabilityIndicatorObscured(Element&amp; element, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;bool&gt; Internals::isPluginUnavailabilityIndicatorObscured(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     auto* renderer = element.renderer();
</span><del>-    if (!is&lt;RenderEmbeddedObject&gt;(renderer)) {
-        ec = INVALID_ACCESS_ERR;
-        return false;
-    }
</del><ins>+    if (!is&lt;RenderEmbeddedObject&gt;(renderer))
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return downcast&lt;RenderEmbeddedObject&gt;(*renderer).isReplacementObscured();
</span><span class="cx"> }
</span><span class="lines">@@ -2794,7 +2652,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx"> 
</span><del>-void Internals::beginMediaSessionInterruption(const String&amp; interruptionString, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::beginMediaSessionInterruption(const String&amp; interruptionString)
</ins><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::InterruptionType interruption = PlatformMediaSession::SystemInterruption;
</span><span class="cx"> 
</span><span class="lines">@@ -2806,12 +2664,11 @@
</span><span class="cx">         interruption = PlatformMediaSession::EnteringBackground;
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(interruptionString, &quot;suspendedunderlock&quot;))
</span><span class="cx">         interruption = PlatformMediaSession::SuspendedUnderLock;
</span><del>-    else {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    else
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().beginInterruption(interruption);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::endMediaSessionInterruption(const String&amp; flagsString)
</span><span class="lines">@@ -2834,7 +2691,7 @@
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().applicationWillEnterBackground();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setMediaSessionRestrictions(const String&amp; mediaTypeString, const String&amp; restrictionsString, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setMediaSessionRestrictions(const String&amp; mediaTypeString, const String&amp; restrictionsString)
</ins><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::MediaType mediaType = PlatformMediaSession::None;
</span><span class="cx">     if (equalLettersIgnoringASCIICase(mediaTypeString, &quot;video&quot;))
</span><span class="lines">@@ -2843,10 +2700,8 @@
</span><span class="cx">         mediaType = PlatformMediaSession::Audio;
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(mediaTypeString, &quot;webaudio&quot;))
</span><span class="cx">         mediaType = PlatformMediaSession::WebAudio;
</span><del>-    else {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    else
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     PlatformMediaSessionManager::SessionRestrictions restrictions = PlatformMediaSessionManager::sharedManager().restrictions(mediaType);
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().removeRestriction(mediaType, restrictions);
</span><span class="lines">@@ -2866,6 +2721,7 @@
</span><span class="cx">             restrictions |= PlatformMediaSessionManager::InterruptedPlaybackNotPermitted;
</span><span class="cx">     }
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().addRestriction(mediaType, restrictions);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::setMediaElementRestrictions(HTMLMediaElement&amp; element, const String&amp; restrictionsString)
</span><span class="lines">@@ -2910,7 +2766,7 @@
</span><span class="cx">     element.mediaSession().addBehaviorRestriction(restrictions);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::postRemoteControlCommand(const String&amp; commandString, float argument, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::postRemoteControlCommand(const String&amp; commandString, float argument)
</ins><span class="cx"> {
</span><span class="cx">     PlatformMediaSession::RemoteControlCommandType command;
</span><span class="cx">     PlatformMediaSession::RemoteCommandArgument parameter { argument };
</span><span class="lines">@@ -2933,12 +2789,11 @@
</span><span class="cx">         command = PlatformMediaSession::EndSeekingForwardCommand;
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(commandString, &quot;seektoplaybackposition&quot;))
</span><span class="cx">         command = PlatformMediaSession::SeekToPlaybackPositionCommand;
</span><del>-    else {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    else
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">     
</span><span class="cx">     PlatformMediaSessionManager::sharedManager().didReceiveRemoteControlCommand(command, &amp;parameter);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool Internals::elementIsBlockingDisplaySleep(HTMLMediaElement&amp; element) const
</span><span class="lines">@@ -3044,7 +2899,7 @@
</span><span class="cx">     page-&gt;setMockMediaPlaybackTargetPickerEnabled(enabled);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Internals::setMockMediaPlaybackTargetPickerState(const String&amp; deviceName, const String&amp; deviceState, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;void&gt; Internals::setMockMediaPlaybackTargetPickerState(const String&amp; deviceName, const String&amp; deviceState)
</ins><span class="cx"> {
</span><span class="cx">     Page* page = contextDocument()-&gt;frame()-&gt;page();
</span><span class="cx">     ASSERT(page);
</span><span class="lines">@@ -3057,34 +2912,29 @@
</span><span class="cx">         state = MediaPlaybackTargetContext::OutputDeviceUnavailable;
</span><span class="cx">     else if (equalLettersIgnoringASCIICase(deviceState, &quot;unknown&quot;))
</span><span class="cx">         state = MediaPlaybackTargetContext::Unknown;
</span><del>-    else {
-        ec = INVALID_ACCESS_ERR;
-        return;
-    }
</del><ins>+    else
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     page-&gt;setMockMediaPlaybackTargetPickerState(deviceName, state);
</span><ins>+    return { };
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-RefPtr&lt;MockPageOverlay&gt; Internals::installMockPageOverlay(PageOverlayType type, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;Ref&lt;MockPageOverlay&gt;&gt; Internals::installMockPageOverlay(PageOverlayType type)
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return nullptr;
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     return MockPageOverlayClient::singleton().installOverlay(document-&gt;frame()-&gt;mainFrame(), type == PageOverlayType::View ? PageOverlay::OverlayType::View : PageOverlay::OverlayType::Document);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::pageOverlayLayerTreeAsText(ExceptionCode&amp; ec) const
</del><ins>+ExceptionOr&lt;String&gt; Internals::pageOverlayLayerTreeAsText() const
</ins><span class="cx"> {
</span><span class="cx">     Document* document = contextDocument();
</span><del>-    if (!document || !document-&gt;frame()) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (!document || !document-&gt;frame())
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     document-&gt;updateLayout();
</span><span class="cx"> 
</span><span class="lines">@@ -3172,7 +3022,7 @@
</span><span class="cx">     builder.appendLiteral(&quot; }&quot;);
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-String Internals::scrollSnapOffsets(Element&amp; element, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::scrollSnapOffsets(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     if (!element.renderBox())
</span><span class="cx">         return String();
</span><span class="lines">@@ -3182,17 +3032,13 @@
</span><span class="cx">     
</span><span class="cx">     if (box.isBody()) {
</span><span class="cx">         FrameView* frameView = box.frame().mainFrame().view();
</span><del>-        if (!frameView || !frameView-&gt;isScrollable()) {
-            ec = INVALID_ACCESS_ERR;
-            return String();
-        }
</del><ins>+        if (!frameView || !frameView-&gt;isScrollable())
+            return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">         scrollableArea = frameView;
</span><span class="cx">         
</span><span class="cx">     } else {
</span><del>-        if (!box.canBeScrolledAndHasScrollableArea()) {
-            ec = INVALID_ACCESS_ERR;
-            return String();
-        }
</del><ins>+        if (!box.canBeScrolledAndHasScrollableArea())
+            return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx">         scrollableArea = box.layer();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -3224,31 +3070,37 @@
</span><span class="cx">     return testPreloadScannerViewportSupport(contextDocument());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String Internals::pathStringWithShrinkWrappedRects(Vector&lt;double&gt; rectComponents, double radius, ExceptionCode&amp; ec)
</del><ins>+ExceptionOr&lt;String&gt; Internals::pathStringWithShrinkWrappedRects(const Vector&lt;double&gt;&amp; rectComponents, double radius)
</ins><span class="cx"> {
</span><del>-    if (rectComponents.size() % 4) {
-        ec = INVALID_ACCESS_ERR;
-        return String();
-    }
</del><ins>+    if (rectComponents.size() % 4)
+        return Exception { INVALID_ACCESS_ERR };
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;FloatRect&gt; rects;
</span><del>-    while (!rectComponents.isEmpty()) {
-        double height = rectComponents.takeLast();
-        double width = rectComponents.takeLast();
-        double y = rectComponents.takeLast();
-        double x = rectComponents.takeLast();
</del><ins>+    for (unsigned i = 0; i &lt; rectComponents.size(); i += 4)
+        rects.append(FloatRect(rectComponents[i], rectComponents[i + 1], rectComponents[i + 2], rectComponents[i + 3]));
</ins><span class="cx"> 
</span><del>-        rects.append(FloatRect(x, y, width, height));
-    }
-
-    rects.reverse();
-
-    Path path = PathUtilities::pathWithShrinkWrappedRects(rects, radius);
-
-    String pathString;
-    buildStringFromPath(path, pathString);
-
-    return pathString;
</del><ins>+    SVGPathStringBuilder builder;
+    PathUtilities::pathWithShrinkWrappedRects(rects, radius).apply([&amp;builder](const PathElement&amp; element) {
+        switch (element.type) {
+        case PathElementMoveToPoint:
+            builder.moveTo(element.points[0], false, AbsoluteCoordinates);
+            return;
+        case PathElementAddLineToPoint:
+            builder.lineTo(element.points[0], AbsoluteCoordinates);
+            return;
+        case PathElementAddQuadCurveToPoint:
+            builder.curveToQuadratic(element.points[0], element.points[1], AbsoluteCoordinates);
+            return;
+        case PathElementAddCurveToPoint:
+            builder.curveToCubic(element.points[0], element.points[1], element.points[2], AbsoluteCoordinates);
+            return;
+        case PathElementCloseSubpath:
+            builder.closePath();
+            return;
+        }
+        ASSERT_NOT_REACHED();
+    });
+    return builder.result();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -3312,7 +3164,7 @@
</span><span class="cx"> 
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-String Internals::resourceLoadStatisticsForOrigin(String origin)
</del><ins>+String Internals::resourceLoadStatisticsForOrigin(const String&amp; origin)
</ins><span class="cx"> {
</span><span class="cx">     return ResourceLoadObserver::sharedObserver().statisticsForOrigin(origin);
</span><span class="cx"> }
</span><span class="lines">@@ -3335,13 +3187,16 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_GRID_LAYOUT)
</span><ins>+
</ins><span class="cx"> void Internals::setCSSGridLayoutEnabled(bool enable)
</span><span class="cx"> {
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setCSSGridLayoutEnabled(enable);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL2)
</span><ins>+
</ins><span class="cx"> bool Internals::webGL2Enabled() const
</span><span class="cx"> {
</span><span class="cx">     return RuntimeEnabledFeatures::sharedFeatures().webGL2Enabled();
</span><span class="lines">@@ -3351,6 +3206,7 @@
</span><span class="cx"> {
</span><span class="cx">     RuntimeEnabledFeatures::sharedFeatures().setWebGL2Enabled(enable);
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> void Internals::setResourceTimingSupport(bool enable)
</span><span class="lines">@@ -3385,10 +3241,12 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if !PLATFORM(COCOA)
</span><ins>+
</ins><span class="cx"> bool Internals::userPrefersReducedMotion() const
</span><span class="cx"> {
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/testing/Internals.h        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2012 Google Inc. All rights reserved.
</span><del>- * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CSSComputedStyleDeclaration.h&quot;
</span><span class="cx"> #include &quot;ContextDestructionObserver.h&quot;
</span><ins>+#include &quot;ExceptionOr.h&quot;
</ins><span class="cx"> #include &quot;PageConsoleClient.h&quot;
</span><span class="cx"> #include &lt;runtime/Float32Array.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -70,8 +71,6 @@
</span><span class="cx"> class TypeConversions;
</span><span class="cx"> class XMLHttpRequest;
</span><span class="cx"> 
</span><del>-typedef int ExceptionCode;
-
</del><span class="cx"> class Internals final : public RefCounted&lt;Internals&gt;, private ContextDestructionObserver {
</span><span class="cx"> public:
</span><span class="cx">     static Ref&lt;Internals&gt; create(Document&amp;);
</span><span class="lines">@@ -79,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx">     static void resetToConsistentState(Page&amp;);
</span><span class="cx"> 
</span><del>-    String elementRenderTreeAsText(Element&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; elementRenderTreeAsText(Element&amp;);
</ins><span class="cx">     bool hasPausedImageAnimations(Element&amp;);
</span><span class="cx"> 
</span><span class="cx">     String address(Node&amp;);
</span><span class="lines">@@ -94,7 +93,7 @@
</span><span class="cx">     bool isStyleSheetLoadingSubresources(HTMLLinkElement&amp;);
</span><span class="cx">     enum class CachePolicy { UseProtocolCachePolicy, ReloadIgnoringCacheData, ReturnCacheDataElseLoad, ReturnCacheDataDontLoad };
</span><span class="cx">     void setOverrideCachePolicy(CachePolicy);
</span><del>-    void setCanShowModalDialogOverride(bool allow, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setCanShowModalDialogOverride(bool allow);
</ins><span class="cx">     enum class ResourceLoadPriority { ResourceLoadPriorityVeryLow, ResourceLoadPriorityLow, ResourceLoadPriorityMedium, ResourceLoadPriorityHigh, ResourceLoadPriorityVeryHigh };
</span><span class="cx">     void setOverrideResourceLoadPriority(ResourceLoadPriority);
</span><span class="cx">     void setStrictRawResourceValidationPolicyDisabled(bool);
</span><span class="lines">@@ -110,33 +109,33 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CSSComputedStyleDeclaration&gt; computedStyleIncludingVisitedInfo(Element&amp;) const;
</span><span class="cx"> 
</span><del>-    Node* ensureShadowRoot(Element&amp; host, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;Node*&gt; ensureShadowRoot(Element&amp; host);
</ins><span class="cx">     Node* ensureUserAgentShadowRoot(Element&amp; host);
</span><del>-    Node* createShadowRoot(Element&amp; host, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;Node*&gt; createShadowRoot(Element&amp; host);
</ins><span class="cx">     Node* shadowRoot(Element&amp; host);
</span><del>-    String shadowRootType(const Node&amp;, ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;String&gt; shadowRootType(const Node&amp;) const;
</ins><span class="cx">     String shadowPseudoId(Element&amp;);
</span><span class="cx">     void setShadowPseudoId(Element&amp;, const String&amp;);
</span><span class="cx"> 
</span><span class="cx">     // DOMTimers throttling testing.
</span><del>-    bool isTimerThrottled(int timeoutId, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; isTimerThrottled(int timeoutId);
</ins><span class="cx">     bool isRequestAnimationFrameThrottled() const;
</span><span class="cx">     bool areTimersThrottled() const;
</span><span class="cx"> 
</span><span class="cx">     // Spatial Navigation testing.
</span><del>-    unsigned lastSpatialNavigationCandidateCount(ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;unsigned&gt; lastSpatialNavigationCandidateCount() const;
</ins><span class="cx"> 
</span><span class="cx">     // CSS Animation testing.
</span><span class="cx">     unsigned numberOfActiveAnimations() const;
</span><del>-    bool animationsAreSuspended(ExceptionCode&amp;) const;
-    void suspendAnimations(ExceptionCode&amp;) const;
-    void resumeAnimations(ExceptionCode&amp;) const;
-    bool pauseAnimationAtTimeOnElement(const String&amp; animationName, double pauseTime, Element&amp;, ExceptionCode&amp;);
-    bool pauseAnimationAtTimeOnPseudoElement(const String&amp; animationName, double pauseTime, Element&amp;, const String&amp; pseudoId, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; animationsAreSuspended() const;
+    ExceptionOr&lt;void&gt; suspendAnimations() const;
+    ExceptionOr&lt;void&gt; resumeAnimations() const;
+    ExceptionOr&lt;bool&gt; pauseAnimationAtTimeOnElement(const String&amp; animationName, double pauseTime, Element&amp;);
+    ExceptionOr&lt;bool&gt; pauseAnimationAtTimeOnPseudoElement(const String&amp; animationName, double pauseTime, Element&amp;, const String&amp; pseudoId);
</ins><span class="cx"> 
</span><span class="cx">     // CSS Transition testing.
</span><del>-    bool pauseTransitionAtTimeOnElement(const String&amp; propertyName, double pauseTime, Element&amp;, ExceptionCode&amp;);
-    bool pauseTransitionAtTimeOnPseudoElement(const String&amp; property, double pauseTime, Element&amp;, const String&amp; pseudoId, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; pauseTransitionAtTimeOnElement(const String&amp; propertyName, double pauseTime, Element&amp;);
+    ExceptionOr&lt;bool&gt; pauseTransitionAtTimeOnPseudoElement(const String&amp; property, double pauseTime, Element&amp;, const String&amp; pseudoId);
</ins><span class="cx"> 
</span><span class="cx">     Node* treeScopeRootNode(Node&amp;);
</span><span class="cx">     Node* parentTreeScope(Node&amp;);
</span><span class="lines">@@ -143,43 +142,43 @@
</span><span class="cx"> 
</span><span class="cx">     String visiblePlaceholder(Element&amp;);
</span><span class="cx">     void selectColorInColorChooser(HTMLInputElement&amp;, const String&amp; colorValue);
</span><del>-    Vector&lt;String&gt; formControlStateOfPreviousHistoryItem(ExceptionCode&amp;);
-    void setFormControlStateOfPreviousHistoryItem(const Vector&lt;String&gt;&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;Vector&lt;String&gt;&gt; formControlStateOfPreviousHistoryItem();
+    ExceptionOr&lt;void&gt; setFormControlStateOfPreviousHistoryItem(const Vector&lt;String&gt;&amp;);
</ins><span class="cx"> 
</span><del>-    Ref&lt;ClientRect&gt; absoluteCaretBounds(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;Ref&lt;ClientRect&gt;&gt; absoluteCaretBounds();
</ins><span class="cx"> 
</span><span class="cx">     Ref&lt;ClientRect&gt; boundingBox(Element&amp;);
</span><span class="cx"> 
</span><del>-    Ref&lt;ClientRectList&gt; inspectorHighlightRects(ExceptionCode&amp;);
-    String inspectorHighlightObject(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;Ref&lt;ClientRectList&gt;&gt; inspectorHighlightRects();
+    ExceptionOr&lt;String&gt; inspectorHighlightObject();
</ins><span class="cx"> 
</span><del>-    unsigned markerCountForNode(Node&amp;, const String&amp;, ExceptionCode&amp;);
-    RefPtr&lt;Range&gt; markerRangeForNode(Node&amp;, const String&amp; markerType, unsigned index, ExceptionCode&amp;);
-    String markerDescriptionForNode(Node&amp;, const String&amp; markerType, unsigned index, ExceptionCode&amp;);
-    String dumpMarkerRects(const String&amp; markerType, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;unsigned&gt; markerCountForNode(Node&amp;, const String&amp;);
+    ExceptionOr&lt;RefPtr&lt;Range&gt;&gt; markerRangeForNode(Node&amp;, const String&amp; markerType, unsigned index);
+    ExceptionOr&lt;String&gt; markerDescriptionForNode(Node&amp;, const String&amp; markerType, unsigned index);
+    ExceptionOr&lt;String&gt; dumpMarkerRects(const String&amp; markerType);
</ins><span class="cx">     void addTextMatchMarker(const Range&amp;, bool isActive);
</span><del>-    void setMarkedTextMatchesAreHighlighted(bool, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setMarkedTextMatchesAreHighlighted(bool);
</ins><span class="cx"> 
</span><span class="cx">     void invalidateFontCache();
</span><span class="cx"> 
</span><del>-    void setScrollViewPosition(int x, int y, ExceptionCode&amp;);
-    void setViewBaseBackgroundColor(const String&amp; colorValue, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setScrollViewPosition(int x, int y);
+    ExceptionOr&lt;void&gt; setViewBaseBackgroundColor(const String&amp; colorValue);
</ins><span class="cx"> 
</span><del>-    void setPagination(const String&amp; mode, int gap, int pageLength, ExceptionCode&amp;);
-    void setPaginationLineGridEnabled(bool, ExceptionCode&amp;);
-    String configurationForViewport(float devicePixelRatio, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setPagination(const String&amp; mode, int gap, int pageLength);
+    ExceptionOr&lt;void&gt; setPaginationLineGridEnabled(bool);
+    ExceptionOr&lt;String&gt; configurationForViewport(float devicePixelRatio, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight);
</ins><span class="cx"> 
</span><del>-    bool wasLastChangeUserEdit(Element&amp; textField, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; wasLastChangeUserEdit(Element&amp; textField);
</ins><span class="cx">     bool elementShouldAutoComplete(HTMLInputElement&amp;);
</span><span class="cx">     void setEditingValue(HTMLInputElement&amp;, const String&amp;);
</span><span class="cx">     void setAutofilled(HTMLInputElement&amp;, bool enabled);
</span><span class="cx">     enum class AutoFillButtonType { AutoFillButtonTypeNone, AutoFillButtonTypeContacts, AutoFillButtonTypeCredentials };
</span><span class="cx">     void setShowAutoFillButton(HTMLInputElement&amp;, AutoFillButtonType);
</span><del>-    void scrollElementToRect(Element&amp;, int x, int y, int w, int h, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; scrollElementToRect(Element&amp;, int x, int y, int w, int h);
</ins><span class="cx"> 
</span><del>-    String autofillFieldName(Element&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; autofillFieldName(Element&amp;);
</ins><span class="cx"> 
</span><del>-    void paintControlTints(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; paintControlTints();
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Range&gt; rangeFromLocationAndLength(Element&amp; scope, int rangeLocation, int rangeLength);
</span><span class="cx">     unsigned locationFromRange(Element&amp; scope, const Range&amp;);
</span><span class="lines">@@ -186,12 +185,12 @@
</span><span class="cx">     unsigned lengthFromRange(Element&amp; scope, const Range&amp;);
</span><span class="cx">     String rangeAsText(const Range&amp;);
</span><span class="cx">     RefPtr&lt;Range&gt; subrange(Range&amp;, int rangeLocation, int rangeLength);
</span><del>-    RefPtr&lt;Range&gt; rangeForDictionaryLookupAtLocation(int x, int y, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;RefPtr&lt;Range&gt;&gt; rangeForDictionaryLookupAtLocation(int x, int y);
</ins><span class="cx"> 
</span><del>-    void setDelegatesScrolling(bool enabled, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setDelegatesScrolling(bool enabled);
</ins><span class="cx"> 
</span><del>-    int lastSpellCheckRequestSequence(ExceptionCode&amp;);
-    int lastSpellCheckProcessedSequence(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;int&gt; lastSpellCheckRequestSequence();
+    ExceptionOr&lt;int&gt; lastSpellCheckProcessedSequence();
</ins><span class="cx"> 
</span><span class="cx">     Vector&lt;String&gt; userPreferredLanguages() const;
</span><span class="cx">     void setUserPreferredLanguages(const Vector&lt;String&gt;&amp;);
</span><span class="lines">@@ -199,19 +198,18 @@
</span><span class="cx">     Vector&lt;String&gt; userPreferredAudioCharacteristics() const;
</span><span class="cx">     void setUserPreferredAudioCharacteristic(const String&amp;);
</span><span class="cx"> 
</span><del>-    unsigned wheelEventHandlerCount(ExceptionCode&amp;);
-    unsigned touchEventHandlerCount(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;unsigned&gt; wheelEventHandlerCount();
+    ExceptionOr&lt;unsigned&gt; touchEventHandlerCount();
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;NodeList&gt; nodesFromRect(Document&amp;, int x, int y, unsigned topPadding, unsigned rightPadding,
-        unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, bool allowChildFrameContent, ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;RefPtr&lt;NodeList&gt;&gt; nodesFromRect(Document&amp;, int x, int y, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, bool allowChildFrameContent) const;
</ins><span class="cx"> 
</span><span class="cx">     String parserMetaData(JSC::JSValue = JSC::JSValue::JSUndefined);
</span><span class="cx"> 
</span><span class="cx">     void updateEditorUINowIfScheduled();
</span><span class="cx"> 
</span><del>-    bool hasSpellingMarker(int from, int length, ExceptionCode&amp;);
-    bool hasGrammarMarker(int from, int length, ExceptionCode&amp;);
-    bool hasAutocorrectedMarker(int from, int length, ExceptionCode&amp;);
</del><ins>+    bool hasSpellingMarker(int from, int length);
+    bool hasGrammarMarker(int from, int length);
+    bool hasAutocorrectedMarker(int from, int length);
</ins><span class="cx">     void setContinuousSpellCheckingEnabled(bool);
</span><span class="cx">     void setAutomaticQuoteSubstitutionEnabled(bool);
</span><span class="cx">     void setAutomaticLinkDetectionEnabled(bool);
</span><span class="lines">@@ -219,17 +217,17 @@
</span><span class="cx">     void setAutomaticTextReplacementEnabled(bool);
</span><span class="cx">     void setAutomaticSpellingCorrectionEnabled(bool);
</span><span class="cx"> 
</span><del>-    void handleAcceptedCandidate(const String&amp; candidate, unsigned location, unsigned length, ExceptionCode&amp;);
</del><ins>+    void handleAcceptedCandidate(const String&amp; candidate, unsigned location, unsigned length);
</ins><span class="cx"> 
</span><del>-    bool isOverwriteModeEnabled(ExceptionCode&amp;);
-    void toggleOverwriteModeEnabled(ExceptionCode&amp;);
</del><ins>+    bool isOverwriteModeEnabled();
+    void toggleOverwriteModeEnabled();
</ins><span class="cx"> 
</span><del>-    unsigned countMatchesForText(const String&amp;, unsigned findOptions, const String&amp; markMatches, ExceptionCode&amp;);
-    unsigned countFindMatches(const String&amp;, unsigned findOptions, ExceptionCode&amp;);
</del><ins>+    unsigned countMatchesForText(const String&amp;, unsigned findOptions, const String&amp; markMatches);
+    unsigned countFindMatches(const String&amp;, unsigned findOptions);
</ins><span class="cx"> 
</span><del>-    unsigned numberOfScrollableAreas(ExceptionCode&amp;);
</del><ins>+    unsigned numberOfScrollableAreas();
</ins><span class="cx"> 
</span><del>-    bool isPageBoxVisible(int pageNumber, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; isPageBoxVisible(int pageNumber);
</ins><span class="cx"> 
</span><span class="cx">     static const char* internalsId;
</span><span class="cx"> 
</span><span class="lines">@@ -236,10 +234,9 @@
</span><span class="cx">     InternalSettings* settings() const;
</span><span class="cx">     unsigned workerThreadCount() const;
</span><span class="cx"> 
</span><del>-    void setBatteryStatus(const String&amp; eventType, bool charging, double chargingTime, double dischargingTime, double level, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setBatteryStatus(const String&amp; eventType, bool charging, double chargingTime, double dischargingTime, double level);
+    ExceptionOr&lt;void&gt; setDeviceProximity(const String&amp; eventType, double value, double min, double max);
</ins><span class="cx"> 
</span><del>-    void setDeviceProximity(const String&amp; eventType, double value, double min, double max, ExceptionCode&amp;);
-
</del><span class="cx">     enum {
</span><span class="cx">         // Values need to be kept in sync with Internals.idl.
</span><span class="cx">         LAYER_TREE_INCLUDES_VISIBLE_RECTS = 1,
</span><span class="lines">@@ -248,31 +245,30 @@
</span><span class="cx">         LAYER_TREE_INCLUDES_PAINTING_PHASES = 8,
</span><span class="cx">         LAYER_TREE_INCLUDES_CONTENT_LAYERS = 16
</span><span class="cx">     };
</span><del>-    String layerTreeAsText(Document&amp;, unsigned short flags, ExceptionCode&amp;) const;
-    String repaintRectsAsText(ExceptionCode&amp;) const;
-    String scrollingStateTreeAsText(ExceptionCode&amp;) const;
-    String mainThreadScrollingReasons(ExceptionCode&amp;) const;
-    RefPtr&lt;ClientRectList&gt; nonFastScrollableRects(ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;String&gt; layerTreeAsText(Document&amp;, unsigned short flags) const;
+    ExceptionOr&lt;String&gt; repaintRectsAsText() const;
+    ExceptionOr&lt;String&gt; scrollingStateTreeAsText() const;
+    ExceptionOr&lt;String&gt; mainThreadScrollingReasons() const;
+    ExceptionOr&lt;RefPtr&lt;ClientRectList&gt;&gt; nonFastScrollableRects() const;
</ins><span class="cx"> 
</span><del>-    void setElementUsesDisplayListDrawing(Element&amp;, bool usesDisplayListDrawing, ExceptionCode&amp;);
-    void setElementTracksDisplayListReplay(Element&amp;, bool isTrackingReplay, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setElementUsesDisplayListDrawing(Element&amp;, bool usesDisplayListDrawing);
+    ExceptionOr&lt;void&gt; setElementTracksDisplayListReplay(Element&amp;, bool isTrackingReplay);
</ins><span class="cx"> 
</span><span class="cx">     enum {
</span><span class="cx">         // Values need to be kept in sync with Internals.idl.
</span><span class="cx">         DISPLAY_LIST_INCLUDES_PLATFORM_OPERATIONS = 1,
</span><span class="cx">     };
</span><del>-    String displayListForElement(Element&amp;, unsigned short flags, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; displayListForElement(Element&amp;, unsigned short flags);
+    ExceptionOr&lt;String&gt; replayDisplayListForElement(Element&amp;, unsigned short flags);
</ins><span class="cx"> 
</span><del>-    String replayDisplayListForElement(Element&amp;, unsigned short flags, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; garbageCollectDocumentResources() const;
</ins><span class="cx"> 
</span><del>-    void garbageCollectDocumentResources(ExceptionCode&amp;) const;
-
</del><span class="cx">     void beginSimulatedMemoryPressure();
</span><span class="cx">     void endSimulatedMemoryPressure();
</span><span class="cx">     bool isUnderMemoryPressure();
</span><span class="cx"> 
</span><del>-    void insertAuthorCSS(const String&amp;, ExceptionCode&amp;) const;
-    void insertUserCSS(const String&amp;, ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;void&gt; insertAuthorCSS(const String&amp;) const;
+    ExceptionOr&lt;void&gt; insertUserCSS(const String&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">     unsigned numberOfLiveNodes() const;
</span><span class="cx">     unsigned numberOfLiveDocuments() const;
</span><span class="lines">@@ -279,7 +275,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DOMWindow&gt; openDummyInspectorFrontend(const String&amp; url);
</span><span class="cx">     void closeDummyInspectorFrontend();
</span><del>-    void setInspectorIsUnderTest(bool isUnderTest, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setInspectorIsUnderTest(bool);
</ins><span class="cx"> 
</span><span class="cx">     String counterValue(Element&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -287,16 +283,16 @@
</span><span class="cx">     Vector&lt;String&gt; shortcutIconURLs() const;
</span><span class="cx"> 
</span><span class="cx">     int numberOfPages(float pageWidthInPixels = 800, float pageHeightInPixels = 600);
</span><del>-    String pageProperty(String, int, ExceptionCode&amp;) const;
-    String pageSizeAndMarginsInPixels(int, int, int, int, int, int, int, ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;String&gt; pageProperty(const String&amp; propertyName, int pageNumber) const;
+    ExceptionOr&lt;String&gt; pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const;
</ins><span class="cx"> 
</span><del>-    void setPageScaleFactor(float scaleFactor, int x, int y, ExceptionCode&amp;);
-    void setPageZoomFactor(float zoomFactor, ExceptionCode&amp;);
-    void setTextZoomFactor(float zoomFactor, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setPageScaleFactor(float scaleFactor, int x, int y);
+    ExceptionOr&lt;void&gt; setPageZoomFactor(float);
+    ExceptionOr&lt;void&gt; setTextZoomFactor(float);
</ins><span class="cx"> 
</span><del>-    void setUseFixedLayout(bool useFixedLayout, ExceptionCode&amp;);
-    void setFixedLayoutSize(int width, int height, ExceptionCode&amp;);
-    void setViewExposedRect(float left, float top, float width, float height, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setUseFixedLayout(bool);
+    ExceptionOr&lt;void&gt; setFixedLayoutSize(int width, int height);
+    ExceptionOr&lt;void&gt; setViewExposedRect(float left, float top, float width, float height);
</ins><span class="cx"> 
</span><span class="cx">     void setHeaderHeight(float);
</span><span class="cx">     void setFooterHeight(float);
</span><span class="lines">@@ -321,20 +317,20 @@
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;String&gt; getReferencedFilePaths() const;
</span><span class="cx"> 
</span><del>-    void startTrackingRepaints(ExceptionCode&amp;);
-    void stopTrackingRepaints(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; startTrackingRepaints();
+    ExceptionOr&lt;void&gt; stopTrackingRepaints();
</ins><span class="cx"> 
</span><del>-    void startTrackingLayerFlushes(ExceptionCode&amp;);
-    unsigned layerFlushCount(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; startTrackingLayerFlushes();
+    ExceptionOr&lt;unsigned&gt; layerFlushCount();
</ins><span class="cx">     
</span><del>-    void startTrackingStyleRecalcs(ExceptionCode&amp;);
-    unsigned styleRecalcCount(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; startTrackingStyleRecalcs();
+    ExceptionOr&lt;unsigned&gt; styleRecalcCount();
</ins><span class="cx">     unsigned lastStyleUpdateSize() const;
</span><span class="cx"> 
</span><del>-    void startTrackingCompositingUpdates(ExceptionCode&amp;);
-    unsigned compositingUpdateCount(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; startTrackingCompositingUpdates();
+    ExceptionOr&lt;unsigned&gt; compositingUpdateCount();
</ins><span class="cx"> 
</span><del>-    void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node*, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node*);
</ins><span class="cx">     unsigned layoutCount() const;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;ArrayBuffer&gt; serializeObject(PassRefPtr&lt;SerializedScriptValue&gt;) const;
</span><span class="lines">@@ -345,7 +341,7 @@
</span><span class="cx">     void setUsesOverlayScrollbars(bool);
</span><span class="cx">     void setUsesMockScrollAnimator(bool);
</span><span class="cx"> 
</span><del>-    String getCurrentCursorInfo(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; getCurrentCursorInfo();
</ins><span class="cx"> 
</span><span class="cx">     String markerTextForListItem(Element&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -377,15 +373,15 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx">     void simulateAudioInterruption(HTMLMediaElement&amp;);
</span><del>-    bool mediaElementHasCharacteristic(HTMLMediaElement&amp;, const String&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; mediaElementHasCharacteristic(HTMLMediaElement&amp;, const String&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool isSelectPopupVisible(HTMLSelectElement&amp;);
</span><span class="cx"> 
</span><del>-    String captionsStyleSheetOverride(ExceptionCode&amp;);
-    void setCaptionsStyleSheetOverride(const String&amp;, ExceptionCode&amp;);
-    void setPrimaryAudioTrackLanguageOverride(const String&amp;, ExceptionCode&amp;);
-    void setCaptionDisplayMode(const String&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; captionsStyleSheetOverride();
+    ExceptionOr&lt;void&gt; setCaptionsStyleSheetOverride(const String&amp;);
+    ExceptionOr&lt;void&gt; setPrimaryAudioTrackLanguageOverride(const String&amp;);
+    ExceptionOr&lt;void&gt; setCaptionDisplayMode(const String&amp;);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><span class="cx">     Ref&lt;TimeRanges&gt; createTimeRanges(Float32Array&amp; startTimes, Float32Array&amp; endTimes);
</span><span class="lines">@@ -392,13 +388,13 @@
</span><span class="cx">     double closestTimeToTimeRanges(double time, TimeRanges&amp;);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    Ref&lt;ClientRect&gt; selectionBounds(ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;Ref&lt;ClientRect&gt;&gt; selectionBounds();
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIBRATION)
</span><span class="cx">     bool isVibrating();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool isPluginUnavailabilityIndicatorObscured(Element&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;bool&gt; isPluginUnavailabilityIndicatorObscured(Element&amp;);
</ins><span class="cx">     bool isPluginSnapshotted(Element&amp;);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE)
</span><span class="lines">@@ -409,13 +405,13 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><del>-    void beginMediaSessionInterruption(const String&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; beginMediaSessionInterruption(const String&amp;);
</ins><span class="cx">     void endMediaSessionInterruption(const String&amp;);
</span><span class="cx">     void applicationDidEnterForeground() const;
</span><span class="cx">     void applicationWillEnterBackground() const;
</span><del>-    void setMediaSessionRestrictions(const String&amp; mediaType, const String&amp; restrictions, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setMediaSessionRestrictions(const String&amp; mediaType, const String&amp; restrictions);
</ins><span class="cx">     void setMediaElementRestrictions(HTMLMediaElement&amp;, const String&amp; restrictions);
</span><del>-    void postRemoteControlCommand(const String&amp;, float argument, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; postRemoteControlCommand(const String&amp;, float argument);
</ins><span class="cx">     bool elementIsBlockingDisplaySleep(HTMLMediaElement&amp;) const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -430,7 +426,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="cx">     void setMockMediaPlaybackTargetPickerEnabled(bool);
</span><del>-    void setMockMediaPlaybackTargetPickerState(const String&amp; deviceName, const String&amp; deviceState, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;void&gt; setMockMediaPlaybackTargetPickerState(const String&amp; deviceName, const String&amp; deviceState);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUDIO)
</span><span class="lines">@@ -441,8 +437,8 @@
</span><span class="cx">     void simulateSystemWake() const;
</span><span class="cx"> 
</span><span class="cx">     enum class PageOverlayType { View, Document };
</span><del>-    RefPtr&lt;MockPageOverlay&gt; installMockPageOverlay(PageOverlayType, ExceptionCode&amp;);
-    String pageOverlayLayerTreeAsText(ExceptionCode&amp;) const;
</del><ins>+    ExceptionOr&lt;Ref&lt;MockPageOverlay&gt;&gt; installMockPageOverlay(PageOverlayType);
+    ExceptionOr&lt;String&gt; pageOverlayLayerTreeAsText() const;
</ins><span class="cx"> 
</span><span class="cx">     void setPageMuted(bool);
</span><span class="cx">     bool isPagePlayingAudio();
</span><span class="lines">@@ -458,10 +454,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><del>-    String scrollSnapOffsets(Element&amp;, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; scrollSnapOffsets(Element&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    String pathStringWithShrinkWrappedRects(Vector&lt;double&gt; rectComponents, double radius, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;String&gt; pathStringWithShrinkWrappedRects(const Vector&lt;double&gt;&amp; rectComponents, double radius);
</ins><span class="cx"> 
</span><span class="cx">     String getCurrentMediaControlsStatusForElement(HTMLMediaElement&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -468,7 +464,7 @@
</span><span class="cx">     String userVisibleString(const DOMURL&amp;);
</span><span class="cx">     void setShowAllPlugins(bool);
</span><span class="cx"> 
</span><del>-    String resourceLoadStatisticsForOrigin(String origin);
</del><ins>+    String resourceLoadStatisticsForOrigin(const String&amp; origin);
</ins><span class="cx">     void setResourceLoadStatisticsEnabled(bool);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(READABLE_STREAM_API)
</span><span class="lines">@@ -503,7 +499,7 @@
</span><span class="cx">     Document* contextDocument() const;
</span><span class="cx">     Frame* frame() const;
</span><span class="cx"> 
</span><del>-    RenderedDocumentMarker* markerAt(Node&amp;, const String&amp; markerType, unsigned index, ExceptionCode&amp;);
</del><ins>+    ExceptionOr&lt;RenderedDocumentMarker*&gt; markerAt(Node&amp;, const String&amp; markerType, unsigned index);
</ins><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;InspectorStubFrontend&gt; m_inspectorFrontend;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.idl (207520 => 207521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.idl        2016-10-19 05:03:11 UTC (rev 207520)
+++ trunk/Source/WebCore/testing/Internals.idl        2016-10-19 05:25:06 UTC (rev 207521)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx">     // Animated image pausing testing.
</span><span class="cx">     boolean hasPausedImageAnimations(Element element);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString elementRenderTreeAsText(Element element);
</del><ins>+    [MayThrowException] DOMString elementRenderTreeAsText(Element element);
</ins><span class="cx">     boolean isPreloaded(DOMString url);
</span><span class="cx">     boolean isLoadingFromMemoryCache(DOMString url);
</span><span class="cx">     DOMString xhrResponseSource(XMLHttpRequest xhr);
</span><span class="lines">@@ -100,12 +100,12 @@
</span><span class="cx"> 
</span><span class="cx">     CSSStyleDeclaration computedStyleIncludingVisitedInfo(Element element);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] Node ensureShadowRoot(Element host);
</del><ins>+    [MayThrowException] Node ensureShadowRoot(Element host);
</ins><span class="cx">     Node ensureUserAgentShadowRoot(Element host);
</span><del>-    [MayThrowLegacyException] Node createShadowRoot(Element host);
</del><ins>+    [MayThrowException] Node createShadowRoot(Element host);
</ins><span class="cx">     Node shadowRoot(Element host);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString shadowRootType(Node root);
</del><ins>+    [MayThrowException] DOMString shadowRootType(Node root);
</ins><span class="cx">     DOMString shadowPseudoId(Element element);
</span><span class="cx">     void setShadowPseudoId(Element element, DOMString id);
</span><span class="cx">     Node treeScopeRootNode(Node node);
</span><span class="lines">@@ -112,63 +112,63 @@
</span><span class="cx">     Node parentTreeScope(Node node);
</span><span class="cx"> 
</span><span class="cx">     // Spatial Navigation testing
</span><del>-    [MayThrowLegacyException] unsigned long lastSpatialNavigationCandidateCount();
</del><ins>+    [MayThrowException] unsigned long lastSpatialNavigationCandidateCount();
</ins><span class="cx"> 
</span><span class="cx">     // CSS Animation testing.
</span><span class="cx">     unsigned long numberOfActiveAnimations();
</span><del>-    [MayThrowLegacyException] void suspendAnimations();
-    [MayThrowLegacyException] void resumeAnimations();
-    [MayThrowLegacyException] boolean animationsAreSuspended();
-    [MayThrowLegacyException] boolean pauseAnimationAtTimeOnElement(DOMString animationName, unrestricted double pauseTime, Element element);
-    [MayThrowLegacyException] boolean pauseAnimationAtTimeOnPseudoElement(DOMString animationName, unrestricted double pauseTime, Element element, DOMString pseudoId);
</del><ins>+    [MayThrowException] void suspendAnimations();
+    [MayThrowException] void resumeAnimations();
+    [MayThrowException] boolean animationsAreSuspended();
+    [MayThrowException] boolean pauseAnimationAtTimeOnElement(DOMString animationName, unrestricted double pauseTime, Element element);
+    [MayThrowException] boolean pauseAnimationAtTimeOnPseudoElement(DOMString animationName, unrestricted double pauseTime, Element element, DOMString pseudoId);
</ins><span class="cx"> 
</span><span class="cx">     // CSS Transition testing.
</span><del>-    [MayThrowLegacyException] boolean pauseTransitionAtTimeOnElement(DOMString propertyName, unrestricted double pauseTime, Element element);
-    [MayThrowLegacyException] boolean pauseTransitionAtTimeOnPseudoElement(DOMString property, unrestricted double pauseTime, Element element, DOMString pseudoId);
</del><ins>+    [MayThrowException] boolean pauseTransitionAtTimeOnElement(DOMString propertyName, unrestricted double pauseTime, Element element);
+    [MayThrowException] boolean pauseTransitionAtTimeOnPseudoElement(DOMString property, unrestricted double pauseTime, Element element, DOMString pseudoId);
</ins><span class="cx"> 
</span><span class="cx">     DOMString visiblePlaceholder(Element element);
</span><span class="cx">     void selectColorInColorChooser(HTMLInputElement element, DOMString colorValue);
</span><del>-    [MayThrowLegacyException] sequence&lt;DOMString&gt; formControlStateOfPreviousHistoryItem();
-    [MayThrowLegacyException] void setFormControlStateOfPreviousHistoryItem(sequence&lt;DOMString&gt; values);
</del><ins>+    [MayThrowException] sequence&lt;DOMString&gt; formControlStateOfPreviousHistoryItem();
+    [MayThrowException] void setFormControlStateOfPreviousHistoryItem(sequence&lt;DOMString&gt; values);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] ClientRect absoluteCaretBounds();
</del><ins>+    [MayThrowException] ClientRect absoluteCaretBounds();
</ins><span class="cx"> 
</span><span class="cx">     ClientRect boundingBox(Element element);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] ClientRectList inspectorHighlightRects();
-    [MayThrowLegacyException] DOMString inspectorHighlightObject();
</del><ins>+    [MayThrowException] ClientRectList inspectorHighlightRects();
+    [MayThrowException] DOMString inspectorHighlightObject();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] unsigned long markerCountForNode(Node node, DOMString markerType);
-    [MayThrowLegacyException] Range markerRangeForNode(Node node, DOMString markerType, unsigned long index);
-    [MayThrowLegacyException] DOMString markerDescriptionForNode(Node node, DOMString markerType, unsigned long index);
-    [MayThrowLegacyException] DOMString dumpMarkerRects(DOMString markerType);
</del><ins>+    [MayThrowException] unsigned long markerCountForNode(Node node, DOMString markerType);
+    [MayThrowException] Range markerRangeForNode(Node node, DOMString markerType, unsigned long index);
+    [MayThrowException] DOMString markerDescriptionForNode(Node node, DOMString markerType, unsigned long index);
+    [MayThrowException] DOMString dumpMarkerRects(DOMString markerType);
</ins><span class="cx">     void addTextMatchMarker(Range range, boolean isActive);
</span><del>-    [MayThrowLegacyException] void setMarkedTextMatchesAreHighlighted(boolean flag);
</del><ins>+    [MayThrowException] void setMarkedTextMatchesAreHighlighted(boolean flag);
</ins><span class="cx"> 
</span><span class="cx">     void invalidateFontCache();
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setScrollViewPosition(long x, long y);
</del><ins>+    [MayThrowException] void setScrollViewPosition(long x, long y);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setViewBaseBackgroundColor(DOMString colorValue);
</del><ins>+    [MayThrowException] void setViewBaseBackgroundColor(DOMString colorValue);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setPagination(DOMString mode, long gap, optional long pageLength = 0);
-    [MayThrowLegacyException] void setPaginationLineGridEnabled(boolean enabled);
</del><ins>+    [MayThrowException] void setPagination(DOMString mode, long gap, optional long pageLength = 0);
+    [MayThrowException] void setPaginationLineGridEnabled(boolean enabled);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString configurationForViewport(unrestricted float devicePixelRatio, long deviceWidth, long deviceHeight, long availableWidth, long availableHeight);
</del><ins>+    [MayThrowException] DOMString configurationForViewport(unrestricted float devicePixelRatio, long deviceWidth, long deviceHeight, long availableWidth, long availableHeight);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] boolean wasLastChangeUserEdit(Element textField);
</del><ins>+    [MayThrowException] boolean wasLastChangeUserEdit(Element textField);
</ins><span class="cx">     boolean elementShouldAutoComplete(HTMLInputElement inputElement);
</span><span class="cx">     void setEditingValue(HTMLInputElement inputElement, DOMString value);
</span><span class="cx">     void setAutofilled(HTMLInputElement inputElement, boolean enabled);
</span><span class="cx">     void setShowAutoFillButton(HTMLInputElement inputElement, AutoFillButtonType autoFillButtonType);
</span><del>-    [MayThrowLegacyException] unsigned long countMatchesForText(DOMString text, unsigned long findOptions, DOMString markMatches);
-    [MayThrowLegacyException] unsigned long countFindMatches(DOMString text, unsigned long findOptions);
</del><ins>+    unsigned long countMatchesForText(DOMString text, unsigned long findOptions, DOMString markMatches);
+    unsigned long countFindMatches(DOMString text, unsigned long findOptions);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString autofillFieldName(Element formControlElement);
</del><ins>+    [MayThrowException] DOMString autofillFieldName(Element formControlElement);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void paintControlTints();
</del><ins>+    [MayThrowException] void paintControlTints();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void scrollElementToRect(Element element, long x, long y, long w, long h);
</del><ins>+    [MayThrowException] void scrollElementToRect(Element element, long x, long y, long w, long h);
</ins><span class="cx"> 
</span><span class="cx">     Range rangeFromLocationAndLength(Element scope, long rangeLocation, long rangeLength);
</span><span class="cx">     unsigned long locationFromRange(Element scope, Range range);
</span><span class="lines">@@ -175,12 +175,12 @@
</span><span class="cx">     unsigned long lengthFromRange(Element scope, Range range);
</span><span class="cx">     DOMString rangeAsText(Range range);
</span><span class="cx">     Range subrange(Range range, long rangeLocation, long rangeLength);
</span><del>-    [MayThrowLegacyException] Range rangeForDictionaryLookupAtLocation(long x, long y);
</del><ins>+    [MayThrowException] Range rangeForDictionaryLookupAtLocation(long x, long y);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setDelegatesScrolling(boolean enabled);
</del><ins>+    [MayThrowException] void setDelegatesScrolling(boolean enabled);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] long lastSpellCheckRequestSequence();
-    [MayThrowLegacyException] long lastSpellCheckProcessedSequence();
</del><ins>+    [MayThrowException] long lastSpellCheckRequestSequence();
+    [MayThrowException] long lastSpellCheckProcessedSequence();
</ins><span class="cx"> 
</span><span class="cx">     sequence&lt;DOMString&gt; userPreferredLanguages();
</span><span class="cx">     void setUserPreferredLanguages(sequence&lt;DOMString&gt; languages);
</span><span class="lines">@@ -188,10 +188,10 @@
</span><span class="cx">     sequence&lt;DOMString&gt; userPreferredAudioCharacteristics();
</span><span class="cx">     void setUserPreferredAudioCharacteristic(DOMString characteristic);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] unsigned long wheelEventHandlerCount();
-    [MayThrowLegacyException] unsigned long touchEventHandlerCount();
</del><ins>+    [MayThrowException] unsigned long wheelEventHandlerCount();
+    [MayThrowException] unsigned long touchEventHandlerCount();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] NodeList nodesFromRect(Document document, long x, long y,
</del><ins>+    [MayThrowException] NodeList nodesFromRect(Document document, long x, long y,
</ins><span class="cx">         unsigned long topPadding, unsigned long rightPadding, unsigned long bottomPadding, unsigned long leftPadding,
</span><span class="cx">         boolean ignoreClipping, boolean allowShadowContent, boolean allowChildFrameContent);
</span><span class="cx"> 
</span><span class="lines">@@ -200,9 +200,9 @@
</span><span class="cx"> 
</span><span class="cx">     void updateEditorUINowIfScheduled();
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] boolean hasSpellingMarker(long from, long length);
-    [MayThrowLegacyException] boolean hasGrammarMarker(long from, long length);
-    [MayThrowLegacyException] boolean hasAutocorrectedMarker(long from, long length);
</del><ins>+    boolean hasSpellingMarker(long from, long length);
+    boolean hasGrammarMarker(long from, long length);
+    boolean hasAutocorrectedMarker(long from, long length);
</ins><span class="cx">     void setContinuousSpellCheckingEnabled(boolean enabled);
</span><span class="cx">     void setAutomaticQuoteSubstitutionEnabled(boolean enabled);
</span><span class="cx">     void setAutomaticLinkDetectionEnabled(boolean enabled);
</span><span class="lines">@@ -210,14 +210,14 @@
</span><span class="cx">     void setAutomaticTextReplacementEnabled(boolean enabled);
</span><span class="cx">     void setAutomaticSpellingCorrectionEnabled(boolean enabled);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void handleAcceptedCandidate(DOMString candidate, unsigned long location, unsigned long length);
</del><ins>+    void handleAcceptedCandidate(DOMString candidate, unsigned long location, unsigned long length);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] boolean isOverwriteModeEnabled();
-    [MayThrowLegacyException] void toggleOverwriteModeEnabled();
</del><ins>+    boolean isOverwriteModeEnabled();
+    void toggleOverwriteModeEnabled();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] unsigned long numberOfScrollableAreas();
</del><ins>+    unsigned long numberOfScrollableAreas();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] boolean isPageBoxVisible(long pageNumber);
</del><ins>+    [MayThrowException] boolean isPageBoxVisible(long pageNumber);
</ins><span class="cx"> 
</span><span class="cx">     unsigned long imageFrameIndex(HTMLImageElement element);
</span><span class="cx"> 
</span><span class="lines">@@ -230,29 +230,29 @@
</span><span class="cx">     const unsigned short LAYER_TREE_INCLUDES_REPAINT_RECTS = 4;
</span><span class="cx">     const unsigned short LAYER_TREE_INCLUDES_PAINTING_PHASES = 8;
</span><span class="cx">     const unsigned short LAYER_TREE_INCLUDES_CONTENT_LAYERS = 16;
</span><del>-    [MayThrowLegacyException] DOMString layerTreeAsText(Document document, optional unsigned short flags = 0);
</del><ins>+    [MayThrowException] DOMString layerTreeAsText(Document document, optional unsigned short flags = 0);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString scrollingStateTreeAsText();
-    [MayThrowLegacyException] DOMString mainThreadScrollingReasons(); // FIXME: rename to synchronousScrollingReasons().
-    [MayThrowLegacyException] ClientRectList nonFastScrollableRects();
</del><ins>+    [MayThrowException] DOMString scrollingStateTreeAsText();
+    [MayThrowException] DOMString mainThreadScrollingReasons(); // FIXME: rename to synchronousScrollingReasons().
+    [MayThrowException] ClientRectList nonFastScrollableRects();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString repaintRectsAsText();
</del><ins>+    [MayThrowException] DOMString repaintRectsAsText();
</ins><span class="cx"> 
</span><span class="cx">     // These throw if the element does not have a compositing layer.
</span><del>-    [MayThrowLegacyException] void setElementUsesDisplayListDrawing(Element element, boolean usesDisplayListDrawing);
-    [MayThrowLegacyException] void setElementTracksDisplayListReplay(Element element, boolean trackReplay);
</del><ins>+    [MayThrowException] void setElementUsesDisplayListDrawing(Element element, boolean usesDisplayListDrawing);
+    [MayThrowException] void setElementTracksDisplayListReplay(Element element, boolean trackReplay);
</ins><span class="cx"> 
</span><span class="cx">     // Flags for displayListForElement.
</span><span class="cx">     const unsigned short DISPLAY_LIST_INCLUDES_PLATFORM_OPERATIONS = 1;
</span><span class="cx">     // Returns the recorded display list.
</span><del>-    [MayThrowLegacyException] DOMString displayListForElement(Element element, optional unsigned short flags = 0);
</del><ins>+    [MayThrowException] DOMString displayListForElement(Element element, optional unsigned short flags = 0);
</ins><span class="cx">     // Returns the display list that was actually painted.
</span><del>-    [MayThrowLegacyException] DOMString replayDisplayListForElement(Element element, optional unsigned short flags = 0);
</del><ins>+    [MayThrowException] DOMString replayDisplayListForElement(Element element, optional unsigned short flags = 0);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void garbageCollectDocumentResources();
</del><ins>+    [MayThrowException] void garbageCollectDocumentResources();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void insertAuthorCSS(DOMString css);
-    [MayThrowLegacyException] void insertUserCSS(DOMString css);
</del><ins>+    [MayThrowException] void insertAuthorCSS(DOMString css);
+    [MayThrowException] void insertUserCSS(DOMString css);
</ins><span class="cx"> 
</span><span class="cx">     readonly attribute boolean isUnderMemoryPressure;
</span><span class="cx">     void beginSimulatedMemoryPressure();
</span><span class="lines">@@ -259,11 +259,11 @@
</span><span class="cx">     void endSimulatedMemoryPressure();
</span><span class="cx"> 
</span><span class="cx"> #if defined(ENABLE_BATTERY_STATUS) &amp;&amp; ENABLE_BATTERY_STATUS
</span><del>-    [MayThrowLegacyException] void setBatteryStatus(DOMString eventType, boolean charging, unrestricted double chargingTime, unrestricted double dischargingTime, unrestricted double level);
</del><ins>+    [MayThrowException] void setBatteryStatus(DOMString eventType, boolean charging, unrestricted double chargingTime, unrestricted double dischargingTime, unrestricted double level);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if defined(ENABLE_PROXIMITY_EVENTS) &amp;&amp; ENABLE_PROXIMITY_EVENTS
</span><del>-    [MayThrowLegacyException] void setDeviceProximity(DOMString eventType, unrestricted double value, unrestricted double min, unrestricted double max);
</del><ins>+    [MayThrowException] void setDeviceProximity(DOMString eventType, unrestricted double value, unrestricted double min, unrestricted double max);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     unsigned long numberOfLiveNodes();
</span><span class="lines">@@ -270,23 +270,23 @@
</span><span class="cx">     unsigned long numberOfLiveDocuments();
</span><span class="cx">     DOMWindow openDummyInspectorFrontend(DOMString url);
</span><span class="cx">     void closeDummyInspectorFrontend();
</span><del>-    [MayThrowLegacyException] void setInspectorIsUnderTest(boolean isUnderTest);
</del><ins>+    [MayThrowException] void setInspectorIsUnderTest(boolean isUnderTest);
</ins><span class="cx"> 
</span><span class="cx">     DOMString counterValue(Element element);
</span><span class="cx">     long pageNumber(Element element, optional unrestricted float pageWidth = 800, optional unrestricted float pageHeight = 600);
</span><span class="cx">     sequence&lt;DOMString&gt; shortcutIconURLs();
</span><span class="cx">     long numberOfPages(optional unrestricted double pageWidthInPixels = 800, optional unrestricted double pageHeightInPixels = 600);
</span><del>-    [MayThrowLegacyException] DOMString pageProperty(DOMString propertyName, long pageNumber);
-    [MayThrowLegacyException] DOMString pageSizeAndMarginsInPixels(long pageIndex, long width, long height, long marginTop, long marginRight, long marginBottom, long marginLeft);
</del><ins>+    [MayThrowException] DOMString pageProperty(DOMString propertyName, long pageNumber);
+    [MayThrowException] DOMString pageSizeAndMarginsInPixels(long pageIndex, long width, long height, long marginTop, long marginRight, long marginBottom, long marginLeft);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setPageScaleFactor(unrestricted float scaleFactor, long x, long y);
-    [MayThrowLegacyException] void setPageZoomFactor(unrestricted float zoomFactor);
-    [MayThrowLegacyException] void setTextZoomFactor(unrestricted float zoomFactor);
</del><ins>+    [MayThrowException] void setPageScaleFactor(unrestricted float scaleFactor, long x, long y);
+    [MayThrowException] void setPageZoomFactor(unrestricted float zoomFactor);
+    [MayThrowException] void setTextZoomFactor(unrestricted float zoomFactor);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setUseFixedLayout(boolean useFixedLayout);
-    [MayThrowLegacyException] void setFixedLayoutSize(long width, long height);
</del><ins>+    [MayThrowException] void setUseFixedLayout(boolean useFixedLayout);
+    [MayThrowException] void setFixedLayoutSize(long width, long height);
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setViewExposedRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
</del><ins>+    [MayThrowException] void setViewExposedRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
</ins><span class="cx"> 
</span><span class="cx">     void setHeaderHeight(unrestricted float height);
</span><span class="cx">     void setFooterHeight(unrestricted float height);
</span><span class="lines">@@ -313,34 +313,34 @@
</span><span class="cx"> 
</span><span class="cx">     // These functions both reset the tracked repaint rects. They are intended to be used in the following order:
</span><span class="cx">     //  startTrackingRepaints, repaintRectsAsText, stopTrackingRepaints.
</span><del>-    [MayThrowLegacyException] void startTrackingRepaints();
-    [MayThrowLegacyException] void stopTrackingRepaints();
</del><ins>+    [MayThrowException] void startTrackingRepaints();
+    [MayThrowException] void stopTrackingRepaints();
</ins><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void startTrackingLayerFlushes();
-    [MayThrowLegacyException] unsigned long layerFlushCount();
</del><ins>+    [MayThrowException] void startTrackingLayerFlushes();
+    [MayThrowException] unsigned long layerFlushCount();
</ins><span class="cx"> 
</span><span class="cx">     // Query if a timer is currently throttled, to debug timer throttling.
</span><del>-    [MayThrowLegacyException] boolean isTimerThrottled(long timerHandle);
</del><ins>+    [MayThrowException] boolean isTimerThrottled(long timerHandle);
</ins><span class="cx"> 
</span><span class="cx">     boolean isRequestAnimationFrameThrottled();
</span><span class="cx">     boolean areTimersThrottled();
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void startTrackingStyleRecalcs();
-    [MayThrowLegacyException] unsigned long styleRecalcCount();
</del><ins>+    [MayThrowException] void startTrackingStyleRecalcs();
+    [MayThrowException] unsigned long styleRecalcCount();
</ins><span class="cx">     readonly attribute unsigned long lastStyleUpdateSize;
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void startTrackingCompositingUpdates();
-    [MayThrowLegacyException] unsigned long compositingUpdateCount();
</del><ins>+    [MayThrowException] void startTrackingCompositingUpdates();
+    [MayThrowException] unsigned long compositingUpdateCount();
</ins><span class="cx"> 
</span><span class="cx">     // |node| should be Document, HTMLIFrameElement, or unspecified.
</span><span class="cx">     // If |node| is an HTMLIFrameElement, it assumes node.contentDocument is
</span><span class="cx">     // specified without security checks. Unspecified or null means this document.
</span><del>-    [MayThrowLegacyException] void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(optional Node? node = null);
</del><ins>+    [MayThrowException] void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(optional Node? node = null);
</ins><span class="cx"> 
</span><span class="cx">     readonly attribute unsigned long layoutCount;
</span><span class="cx"> 
</span><span class="cx">     // Returns a string with information about the mouse cursor used at the specified client location.
</span><del>-    [MayThrowLegacyException] DOMString getCurrentCursorInfo();
</del><ins>+    [MayThrowException] DOMString getCurrentCursorInfo();
</ins><span class="cx"> 
</span><span class="cx">     DOMString markerTextForListItem(Element element);
</span><span class="cx"> 
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx">     void enableAutoSizeMode(boolean enabled, long minimumWidth, long minimumHeight, long maximumWidth, long maximumHeight);
</span><span class="cx"> 
</span><span class="cx">     [Conditional=VIDEO] void simulateAudioInterruption(HTMLMediaElement element);
</span><del>-    [Conditional=VIDEO, MayThrowLegacyException] boolean mediaElementHasCharacteristic(HTMLMediaElement element, DOMString characteristic);
</del><ins>+    [Conditional=VIDEO, MayThrowException] boolean mediaElementHasCharacteristic(HTMLMediaElement element, DOMString characteristic);
</ins><span class="cx"> 
</span><span class="cx">     [Conditional=LEGACY_ENCRYPTED_MEDIA] void initializeMockCDM();
</span><span class="cx"> 
</span><span class="lines">@@ -367,10 +367,10 @@
</span><span class="cx"> 
</span><span class="cx">     DOMString getImageSourceURL(Element element);
</span><span class="cx"> 
</span><del>-    [Conditional=VIDEO_TRACK, MayThrowLegacyException] DOMString captionsStyleSheetOverride();
-    [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setCaptionsStyleSheetOverride(DOMString override);
-    [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setPrimaryAudioTrackLanguageOverride(DOMString language);
-    [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setCaptionDisplayMode(DOMString mode);
</del><ins>+    [Conditional=VIDEO_TRACK, MayThrowException] DOMString captionsStyleSheetOverride();
+    [Conditional=VIDEO_TRACK, MayThrowException] void setCaptionsStyleSheetOverride(DOMString override);
+    [Conditional=VIDEO_TRACK, MayThrowException] void setPrimaryAudioTrackLanguageOverride(DOMString language);
+    [Conditional=VIDEO_TRACK, MayThrowException] void setCaptionDisplayMode(DOMString mode);
</ins><span class="cx"> 
</span><span class="cx">     [Conditional=VIDEO] TimeRanges createTimeRanges(Float32Array startTimes, Float32Array
</span><span class="cx">      endTimes);
</span><span class="lines">@@ -382,10 +382,10 @@
</span><span class="cx">     boolean isVibrating();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] boolean isPluginUnavailabilityIndicatorObscured(Element element);
</del><ins>+    [MayThrowException] boolean isPluginUnavailabilityIndicatorObscured(Element element);
</ins><span class="cx">     boolean isPluginSnapshotted(Element element);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] ClientRect selectionBounds();
</del><ins>+    [MayThrowException] ClientRect selectionBounds();
</ins><span class="cx"> 
</span><span class="cx">     [Conditional=MEDIA_SOURCE] void initializeMockMediaSource();
</span><span class="cx">     [Conditional=MEDIA_SOURCE] sequence&lt;DOMString&gt; bufferedSamplesForTrackID(SourceBuffer buffer, DOMString trackID);
</span><span class="lines">@@ -392,7 +392,7 @@
</span><span class="cx">     [Conditional=MEDIA_SOURCE] sequence&lt;DOMString&gt; enqueuedSamplesForTrackID(SourceBuffer buffer, DOMString trackID);
</span><span class="cx">     [Conditional=MEDIA_SOURCE] void setShouldGenerateTimestamps(SourceBuffer buffer, boolean flag);
</span><span class="cx"> 
</span><del>-    [Conditional=VIDEO, MayThrowLegacyException] void beginMediaSessionInterruption(DOMString interruptionType);
</del><ins>+    [Conditional=VIDEO, MayThrowException] void beginMediaSessionInterruption(DOMString interruptionType);
</ins><span class="cx">     [Conditional=VIDEO] void endMediaSessionInterruption(DOMString flags);
</span><span class="cx">     [Conditional=MEDIA_SESSION] void sendMediaSessionStartOfInterruptionNotification(MediaSessionInterruptingCategory category);
</span><span class="cx">     [Conditional=MEDIA_SESSION] void sendMediaSessionEndOfInterruptionNotification(MediaSessionInterruptingCategory category);
</span><span class="lines">@@ -401,12 +401,12 @@
</span><span class="cx">     [Conditional=MEDIA_SESSION] void sendMediaControlEvent(MediaControlEvent event);
</span><span class="cx">     [Conditional=VIDEO] void applicationDidEnterForeground();
</span><span class="cx">     [Conditional=VIDEO] void applicationWillEnterBackground();
</span><del>-    [Conditional=VIDEO, MayThrowLegacyException] void setMediaSessionRestrictions(DOMString mediaType, DOMString restrictions);
</del><ins>+    [Conditional=VIDEO, MayThrowException] void setMediaSessionRestrictions(DOMString mediaType, DOMString restrictions);
</ins><span class="cx">     [Conditional=VIDEO] void setMediaElementRestrictions(HTMLMediaElement element, DOMString restrictions);
</span><span class="cx">     [Conditional=WEB_AUDIO] void setAudioContextRestrictions(AudioContext context, DOMString restrictions);
</span><del>-    [Conditional=VIDEO, MayThrowLegacyException] void postRemoteControlCommand(DOMString command, optional unrestricted float argument = 0);
</del><ins>+    [Conditional=VIDEO, MayThrowException] void postRemoteControlCommand(DOMString command, optional unrestricted float argument = 0);
</ins><span class="cx">     [Conditional=WIRELESS_PLAYBACK_TARGET] void setMockMediaPlaybackTargetPickerEnabled(boolean enabled);
</span><del>-    [Conditional=WIRELESS_PLAYBACK_TARGET, MayThrowLegacyException] void setMockMediaPlaybackTargetPickerState(DOMString deviceName, DOMString deviceState);
</del><ins>+    [Conditional=WIRELESS_PLAYBACK_TARGET, MayThrowException] void setMockMediaPlaybackTargetPickerState(DOMString deviceName, DOMString deviceState);
</ins><span class="cx">     [Conditional=MEDIA_STREAM] void setMockMediaCaptureDevicesEnabled(boolean enabled);
</span><span class="cx">     [Conditional=WEB_RTC] void emulateRTCPeerConnectionPlatformEvent(RTCPeerConnection connection, DOMString action);
</span><span class="cx"> 
</span><span class="lines">@@ -414,8 +414,8 @@
</span><span class="cx">     [Conditional=VIDEO] void simulateSystemWake();
</span><span class="cx">     [Conditional=VIDEO] boolean elementIsBlockingDisplaySleep(HTMLMediaElement element);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] MockPageOverlay installMockPageOverlay(PageOverlayType type);
-    [MayThrowLegacyException] DOMString pageOverlayLayerTreeAsText();
</del><ins>+    [MayThrowException] MockPageOverlay installMockPageOverlay(PageOverlayType type);
+    [MayThrowException] DOMString pageOverlayLayerTreeAsText();
</ins><span class="cx"> 
</span><span class="cx">     void setPageMuted(boolean muted);
</span><span class="cx">     boolean isPagePlayingAudio();
</span><span class="lines">@@ -429,10 +429,10 @@
</span><span class="cx">     [Conditional=CONTENT_FILTERING] readonly attribute MockContentFilterSettings mockContentFilterSettings;
</span><span class="cx"> 
</span><span class="cx"> #if defined(ENABLE_CSS_SCROLL_SNAP) &amp;&amp; ENABLE_CSS_SCROLL_SNAP
</span><del>-    [MayThrowLegacyException] DOMString scrollSnapOffsets(Element element);
</del><ins>+    [MayThrowException] DOMString scrollSnapOffsets(Element element);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] DOMString pathStringWithShrinkWrappedRects(sequence&lt;double&gt; rectComponents, double radius);
</del><ins>+    [MayThrowException] DOMString pathStringWithShrinkWrappedRects(sequence&lt;double&gt; rectComponents, double radius);
</ins><span class="cx"> 
</span><span class="cx">     [Conditional=VIDEO] DOMString getCurrentMediaControlsStatusForElement(HTMLMediaElement element);
</span><span class="cx"> 
</span><span class="lines">@@ -445,7 +445,7 @@
</span><span class="cx">     DOMString resourceLoadStatisticsForOrigin(DOMString domain);
</span><span class="cx">     void setResourceLoadStatisticsEnabled(boolean enable);
</span><span class="cx"> 
</span><del>-    [MayThrowLegacyException] void setCanShowModalDialogOverride(boolean allow);
</del><ins>+    [MayThrowException] void setCanShowModalDialogOverride(boolean allow);
</ins><span class="cx"> 
</span><span class="cx">     DOMString composedTreeAsText(Node parent);
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>