Use #pragma once in WebCore
[WebKit-https.git] / Source / WebCore / ChangeLog
index b0b8124..79dd32f 100644 (file)
+2016-11-13  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Use #pragma once in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=164686
+
+        Reviewed by Michael Catanzaro.
+
+        * css/*.h:
+        * plugins/*.h:
+        * rendering/*.h:
+        * style/*.h:
+        * svg/*.h:
+        * testing/*.h:
+
+2016-11-12  Dan Bernstein  <mitz@apple.com>
+
+        Tried to fix the iOS build after r208666.
+
+        * platform/SuddenTermination.h:
+
+2016-11-12  Simon Fraser  <simon.fraser@apple.com>
+
+        Add a way to get the UI-side scrolling tree as text via UIScriptController
+        https://bugs.webkit.org/show_bug.cgi?id=164697
+
+        Reviewed by Zalan Bujtas.
+
+        Add dumping to ScrollingTreeNode and subclasses (previously, we could only dump
+        the scrolling state tree). This re-uses the flags used for state tree dumping.
+
+        NodeIDs are not dumped by default because they can depend on earlier tests.
+
+        Test: scrollingcoordinator/ios/ui-scrolling-tree.html
+
+        * page/scrolling/ScrollingStateNode.h:
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::scrollingTreeAsText):
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::dumpProperties):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeNode.cpp:
+        (WebCore::ScrollingTreeNode::dumpProperties):
+        (WebCore::ScrollingTreeNode::dump):
+        * page/scrolling/ScrollingTreeNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::dumpProperties):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+        * page/scrolling/mac/ScrollingTreeFixedNode.h:
+        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
+        (WebCore::ScrollingTreeFixedNode::dumpProperties):
+        * page/scrolling/mac/ScrollingTreeStickyNode.h:
+        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
+        (WebCore::ScrollingTreeStickyNode::dumpProperties):
+
+2016-11-12  Darin Adler  <darin@apple.com>
+
+        Remove some use of ExceptionCode in MediaStream
+        https://bugs.webkit.org/show_bug.cgi?id=164690
+
+        Reviewed by Sam Weinig.
+
+        * Modules/mediastream/MediaDevices.cpp:
+        (WebCore::MediaDevices::MediaDevices): Take a Document&.
+        (WebCore::MediaDevices::create): Ditto.
+        (WebCore::MediaDevices::~MediaDevices): Deleted.
+        (WebCore::MediaDevices::getUserMedia): Check document for null and
+        pass a reference to UserMediaRequest::start. Removed unused ExceptionCode
+        argument to UserMediaRequest::start, since the only exception was for
+        a null document.
+        (WebCore::MediaDevices::enumerateDevices): Check document for null and
+        pass a reference to MediaDevicesRequest::create. Removed exception
+        handling entirely because MediaDevicesRequest::create was not ever
+        raising an exception before.
+        * Modules/mediastream/MediaDevices.h: Updated for above changes.
+        * Modules/mediastream/MediaDevices.idl: Removed MayThrowException from
+        enumerateDevices, because it never throws an exception.
+
+        * Modules/mediastream/MediaDevicesRequest.cpp:
+        (WebCore::MediaDevicesRequest::MediaDevicesRequest): Take a Document&.
+        Removed unused ExceptionCode& argument.
+        (WebCore::MediaDevicesRequest::create): Ditto.
+        * Modules/mediastream/MediaDevicesRequest.h: Updated for above changes.
+
+        * Modules/mediastream/NavigatorMediaDevices.cpp:
+        (WebCore::NavigatorMediaDevices::mediaDevices): Pass a reference.
+
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::start): Use ExceptionOr.
+        (WebCore::UserMediaRequest::UserMediaRequest): Take a Document& and
+        a UserMediaController&.
+        * Modules/mediastream/UserMediaRequest.h: Updated for above changes.
+
+2016-11-12  Simon Fraser  <simon.fraser@apple.com>
+
+        [iOS WK2] Share some code with Mac for post-async-scroll state reconciliation
+        https://bugs.webkit.org/show_bug.cgi?id=164694
+
+        Reviewed by Zalan Bujtas.
+
+        When an async scroll notifications get back to the main thread in
+        AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(), we call 
+        syncViewportConstrainedLayerPositions() to poke the new layer positions on the
+        GraphicsLayers to match the changes made on the scrolling thread.
+
+        However, this was not done on iOS, which will be problematic for a future patch
+        where we require GraphicsLayer positions and the current fixedPositionViewport rect
+        to have been computed when in a consistent state.
+
+        Fix by factoring some code into reconcileScrollingState(), which is called on iOS/WK2
+        from WebPage::updateVisibleContentRects() rather than setting the FrameView's scroll offset
+        directly.
+
+        Test: scrollingcoordinator/ios/sync-layer-positions-after-scroll.html
+
+        * page/WheelEventDeltaFilter.cpp:
+        (WebCore::WheelEventDeltaFilter::filteredDelta):
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
+        (WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
+        (WebCore::AsyncScrollingCoordinator::syncViewportConstrainedLayerPositions):
+        (WebCore::AsyncScrollingCoordinator::syncChildPositions): Deleted.
+        * page/scrolling/AsyncScrollingCoordinator.h:
+        * page/scrolling/ScrollingCoordinator.h:
+        (WebCore::ScrollingCoordinator::reconcileScrollingState):
+        (WebCore::ScrollingCoordinator::syncViewportConstrainedLayerPositions):
+        (WebCore::ScrollingCoordinator::syncChildPositions): Deleted.
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition):
+        * platform/Logging.h:
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::setScrollOffset):
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::adjustTileCoverageRect):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
+
+2016-11-12  Zalan Bujtas  <zalan@apple.com>
+
+        RenderObject::flowThreadState should follow containing block instead of parent.
+        https://bugs.webkit.org/show_bug.cgi?id=164629
+
+        Reviewed by Simon Fraser.
+
+        Currently every descendant of a region/multicolumn container is considered to be part of the
+        flowthread including out-of-flow renderers. They all have the InsideFlowThread flag set.
+        However since out-of-flow renderers are not really part of the flowthread layout context,
+        whenever the layout code actually checks for their flowthread containers, we return nullptr and
+        try to handle this seemingly defective state gracefully (that is, flag indicates "inside the flow thread" state,
+        but there's no flow tread container).
+        This patch fixes this confused state by setting the RenderObject::flowThreadState flag based on
+        the containing block's state instead of the parent's.
+
+        Not testable, since we seem to manage out-of-flow elements just fine even
+        when they have the InsideFlowThread flag set. 
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::styleDidChange):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::setStyle):
+        (WebCore::RenderElement::adjustFlowThreadStateIncludingDescendants): This is an iterative DFS pre-order traversal so
+        we set the flow state first on containers.
+        * rendering/RenderElement.h:
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::computedFlowThreadState):
+        (WebCore::RenderObject::initializeFlowThreadStateOnInsertion):
+        * rendering/RenderObject.h:
+
+2016-11-12  Ryosuke Niwa  <rniwa@webkit.org>
+
+        document.currentScript should be null when running a script inside a shadow tree
+        https://bugs.webkit.org/show_bug.cgi?id=164693
+
+        Reviewed by Yusuke Suzuki.
+
+        Fixed the bug that we were returning the old or outer script element in document.currentScript
+        while executing a script element inside a shadow tree. Return null instead.
+
+        New behavior matches the latest HTML5 specification:
+        https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block
+        where it says for the classic script type, "if the script element's root is not a shadow root, then set
+        the script element's node document's currentScript attribute to the script element. Otherwise, set it to null."
+
+        No new tests. imported/w3c/web-platform-tests/shadow-dom/Document-prototype-currentScript.html covers it.
+
+        * dom/CurrentScriptIncrementer.h:
+        (WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer): Push nullptr when the script element
+        is inside a shadow tree.
+        (WebCore::CurrentScriptIncrementer::~CurrentScriptIncrementer): Changed to use an early exit.
+        * dom/Document.cpp:
+        (WebCore::Document::pushCurrentScript): Removed the assertion since the argument can now be nullptr.
+
+2016-11-12  Darin Adler  <darin@apple.com>
+
+        Remove a few assorted uses of ExceptionCode
+        https://bugs.webkit.org/show_bug.cgi?id=164683
+
+        Reviewed by Chris Dumez.
+
+        * Modules/applepay/PaymentContact.h: Removed include of ExceptionCode.h.
+        Also tidied up the constructor and destructor.
+
+        * Modules/indexeddb/IDBFactory.h: Removed typedef of ExceptionCode.
+        * Modules/indexeddb/IDBKeyRange.h: Ditto.
+
+        * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
+        (WebCore::getObjectParameter): Removed local ExceptionCode variable that
+        was always 0.
+        (WebCore::JSWebGLRenderingContextBase::getAttachedShaders): Ditto.
+        (WebCore::dataFunctionf): Ditto.
+        (WebCore::dataFunctioni): Ditto.
+        (WebCore::dataFunctionMatrix): Ditto.
+        * dom/ContainerNode.cpp:
+        (WebCore::ContainerNode::cloneChildNodes): Ditto.
+
+        * dom/Document.h: Removed typedef of ExceptionCode.
+        * dom/TreeWalker.h: Ditto.
+        * editing/markup.h: Ditto.
+        * html/ImageData.h: Ditto.
+        * html/InputType.h: Ditto.
+        * html/canvas/CanvasRenderingContext2D.h: Ditto.
+        * html/canvas/WebGLDebugShaders.h: Ditto.
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::setTimeout): Fixed typo where this was using
+        ExceptionCode instead of Exception. The code would return an integer
+        instead of an exception in this case. I could not produce a test that
+        exercises this code path; I suspect it is an unreachable error condition.
+        (WebCore::DOMWindow::setInterval): Ditto.
+
+        * replay/MemoizedDOMResult.h: Changed typedef of ExceptionCode into
+        a using statement. Not sure what the longer term fix is.
+
+        * xml/parser/XMLDocumentParserLibxml2.cpp:
+        (WebCore::PendingCallbacks::appendStartElementNSCallback): Renamed to use
+        WebKit-style "numXXX" rather than "nb_xxx".
+        (WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback):
+        Ditto.
+        (WebCore::handleNamespaceAttributes): Ditto. Replaced ExceptionCode out
+        argument with a boolean return value.
+        (WebCore::handleElementAttributes): Ditto.
+        (WebCore::XMLDocumentParser::startElementNs): Ditto. Updated for changes
+        to the handle functions above.
+        (WebCore::startElementNsHandler): More of the same.
+        (WebCore::attributesStartElementNsHandler): Ditto.
+
+2016-11-11  Darin Adler  <darin@apple.com>
+
+        Remove LegacyException support from bindings script
+        https://bugs.webkit.org/show_bug.cgi?id=164516
+
+        Reviewed by Youenn Fablet.
+
+        Besides removing LegacyException support from the bindings script, this patch
+        also removes most uses of ExceptionCodePlaceholder.h. Also, some call sites of
+        createElement were using ASSERT_NO_EXCEPTION on an argument that was not even an
+        ExceptionCode&, so to fix that, this changes most call sites to use specific create
+        functions for specific element classes, rather than using Document::createElement.
+
+        * Modules/mediasource/SourceBuffer.cpp: Removed include of
+        ExceptionCodePlaceholder.h.
+        * Modules/mediastream/MediaStreamTrack.cpp: Ditto.
+        * Modules/websockets/WebSocketChannel.cpp: Ditto.
+        * bindings/js/JSBlobCustom.cpp: Ditto.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateImplementation): Removed support for GetterMayThrowLegacyException,
+        SetterMayThrowLegacyException, and MayThrowLegacyException.
+        (GenerateParametersCheck): Ditto.
+        (GenerateImplementationFunctionCall): Ditto.
+        (GenerateConstructorDefinition): Ditto.
+
+        * bindings/scripts/IDLAttributes.txt: Removed ConstructorMayThrowLegacyException,
+        GetterMayThrowLegacyException, MayThrowLegacyException, and SetterMayThrowLegacyException.
+
+        * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
+        * bindings/scripts/test/JS/JSTestDOMJIT.cpp:
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        Updated exepected results.
+
+        * bindings/scripts/test/TestImplements.idl: Use non-legacy exceptions.
+        * bindings/scripts/test/TestInterface.idl: Ditto.
+        * bindings/scripts/test/TestNamedConstructor.idl: Ditto.
+        * bindings/scripts/test/TestObj.idl: Ditto.
+        * bindings/scripts/test/TestSupplemental.idl: Ditto.
+        * bindings/scripts/test/TestTypedefs.idl: Ditto.
+
+        * dom/ContainerNode.h: Removed include of ExceptionCodePlaceholder.h.
+        * editing/AlternativeTextController.cpp: Ditto.
+        * editing/AppendNodeCommand.cpp: Ditto.
+
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::moveParagraphs): Use specific create function
+        instead of Document::createElement.
+
+        * editing/DeleteFromTextNodeCommand.cpp: Removed include of
+        ExceptionCodePlaceholder.h.
+        * editing/Editor.cpp: Ditto.
+        * editing/EditorCommand.cpp: Ditto.
+        * editing/FormatBlockCommand.cpp: Ditto.
+
+        * editing/IndentOutdentCommand.cpp:
+        (WebCore::IndentOutdentCommand::tryIndentingAsListItem): Use specific create
+        function instead of Document::createElement.
+
+        * editing/InsertListCommand.cpp: Removed include of ExceptionCodePlaceholder.h.
+        * editing/InsertNodeBeforeCommand.cpp: Ditto.
+        * editing/RemoveNodeCommand.cpp: Ditto.
+        * editing/ReplaceSelectionCommand.cpp: Ditto.
+        * editing/TextIterator.cpp: Ditto.
+        * editing/WrapContentsInDummySpanCommand.cpp: Ditto.
+
+        * editing/cocoa/EditorCocoa.mm:
+        (WebCore::Editor::styleForSelectionStart): Use specific create function instead
+        of Document::createElement.
+        * editing/htmlediting.cpp:
+        (WebCore::createTabSpanElement): Ditto.
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::WebContentReader::readURL): Ditto.
+        * editing/mac/EditorMac.mm:
+        (WebCore::Editor::WebContentReader::readURL): Ditto.
+
+        * editing/markup.cpp: Removed include of ExceptionCodePlaceholder.h.
+
+        * html/FTPDirectoryDocument.cpp:
+        (WebCore::FTPDirectoryDocumentParser::appendEntry): Use specific create function
+        instead of Document::createElement.
+        (WebCore::FTPDirectoryDocumentParser::createTDForFilename): Ditto.
+        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): Ditto.
+        (WebCore::FTPDirectoryDocumentParser::createBasicDocument): Ditto.
+
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::create): Added overload that just takes a Document.
+        * html/HTMLEmbedElement.h: Updated for above.
+
+        * html/HTMLMediaElement.cpp: Removed include of ExceptionCodePlaceholder.h.
+
+        * html/HTMLMetaElement.cpp:
+        (WebCore::HTMLMetaElement::create): Added overload that just takes a Document.
+        * html/HTMLMetaElement.h: Updated for above.
+
+        * html/HTMLOutputElement.cpp: Removed include of ExceptionCodePlaceholder.h.
+
+        * html/HTMLSelectElement.cpp: Ditto.
+        (WebCore::HTMLSelectElement::setLength): Use specific create function
+        instead of Document::createElement.
+
+        * html/HTMLSourceElement.cpp:
+        (WebCore::HTMLSourceElement::create): Added overload that just takes a Document.
+        * html/HTMLSourceElement.h: Updated for above.
+
+        * html/HTMLStyleElement.cpp:
+        (WebCore::HTMLStyleElement::HTMLStyleElement): Moved data member initialization
+        to class definition.
+        (WebCore::HTMLStyleElement::create): Added overload that just takes a Document.
+        * html/HTMLStyleElement.h: Updated for above. Also made finishParsingChildren public.
+
+        * html/HTMLTableElement.cpp: Removed include of ExceptionCodePlaceholder.h.
+        * html/HTMLTextAreaElement.cpp: Ditto.
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::create): Added overload that just takes a Document.
+        * html/HTMLVideoElement.h: Updated for above.
+
+        * html/ImageDocument.cpp:
+        (WebCore::ImageDocument::createDocumentStructure): Use specific create function
+        instead of Document::createElement.
+
+        * html/InputType.cpp: Removed include of ExceptionCodePlaceholder.h.
+
+        * html/MediaDocument.cpp:
+        (WebCore::MediaDocumentParser::createDocumentStructure): Use specific create
+        function instead of Document::createElement.
+        (WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure): Ditto.
+
+        * html/RangeInputType.cpp: Removed include of ExceptionCodePlaceholder.h.
+
+        * html/RubyElement.cpp:
+        (WebCore::RubyElement::create): Added overload that just takes a Document.
+        * html/RubyElement.h: Updated for above.
+
+        * html/RubyTextElement.cpp:
+        (WebCore::RubyTextElement::create): Added overload that just takes a Document.
+        * html/RubyTextElement.h: Updated for above.
+
+        * html/ValidationMessage.cpp: Removed include of ExceptionCodePlaceholder.h.
+        * html/canvas/CanvasRenderingContext2D.cpp: Ditto.
+        * html/shadow/MediaControlElementTypes.cpp: Ditto.
+
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
+        Use specific create function instead of Document::createElement.
+
+        * html/shadow/MediaControls.cpp: Removed include of ExceptionCodePlaceholder.h.
+        * html/shadow/MediaControlsApple.cpp: Ditto.
+        * html/track/InbandDataTextTrack.cpp: Ditto.
+        * html/track/InbandGenericTextTrack.cpp: Ditto.
+        * html/track/InbandTextTrack.cpp: Ditto.
+        * html/track/VTTRegion.cpp: Ditto.
+
+        * html/track/WebVTTElement.cpp:
+        (WebCore::WebVTTElement::createEquivalentHTMLElement): Use specific create
+        function instead of Document::createElement.
+        * inspector/InspectorCSSAgent.cpp:
+        (WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Ditto.
+
+        * page/ContextMenuController.cpp: Removed include of ExceptionCodePlaceholder.h.
+        * page/DOMWindow.cpp: Ditto.
+        * page/DragController.cpp: Ditto.
+        * page/EventHandler.cpp: Ditto.
+        * page/Page.cpp: Ditto.
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: Ditto.
+        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: Ditto.
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: Ditto.
+        * platform/mac/PasteboardMac.mm: Ditto.
+        * platform/mac/WebVideoFullscreenHUDWindowController.mm: Ditto.
+        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp: Ditto.
+        * platform/mock/mediasource/MockMediaSourcePrivate.cpp: Ditto.
+        * rendering/RenderNamedFlowThread.cpp: Ditto.
+        * rendering/RenderThemeEfl.cpp: Ditto.
+        * rendering/RenderThemeMac.mm: Ditto.
+        * rendering/style/SVGRenderStyle.h: Ditto.
+        * svg/SVGTRefElement.cpp: Ditto.
+
+        * xml/XMLErrors.cpp:
+        (WebCore::XMLErrors::XMLErrors): Take a reference and initialize data member
+        in class definition.
+        (WebCore::createXHTMLParserErrorHeader): Take a reference, and mostly use
+        specific create functions instead of createElement.
+        (WebCore::XMLErrors::insertErrorMessageBlock): Ditto.
+        * xml/XMLErrors.h: Updated for above.
+
+        * xml/XMLTreeViewer.cpp: Removed include of ExceptionCodePlaceholder.h.
+
+        * xml/parser/XMLDocumentParser.cpp:
+        (WebCore::XMLDocumentParser::handleError): Pass a reference.
+
+        * xml/parser/XMLDocumentParserLibxml2.cpp: Removed include of
+        ExceptionCodePlaceholder.h.
+
+2016-11-12  Dan Bernstein  <mitz@apple.com>
+
+        Clean up a couple of macOS *SPI headers
+        https://bugs.webkit.org/show_bug.cgi?id=164687
+
+        Reviewed by Sam Weinig.
+
+        * platform/spi/cocoa/NSTouchBarSPI.h: Replaced hardcoded strings with global declarations.
+        * platform/spi/mac/NSSpellCheckerSPI.h: Addressed FIXME by importing private header, and removed declarations
+          that already appear in the SDK.
+
+2016-11-12  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        The main content heuristic should be robust when handling large media elements
+        https://bugs.webkit.org/show_bug.cgi?id=164676
+        <rdar://problem/29211503>
+
+        Reviewed by Eric Carlson.
+
+        Handles integer overflow gracefully when performing the main content check for very large media elements. If the
+        heuristic comes across such an element, it will now bail early and reject the video as main content. Also adds a
+        new API test: VideoControlsManager.VideoControlsManagerPageWithEnormousVideo.
+
+        * html/MediaElementSession.cpp:
+        (WebCore::isElementRectMostlyInMainFrame):
+
+2016-11-12  Chris Dumez  <cdumez@apple.com>
+
+        Speed up setting attributes of input elements of type 'text'
+        https://bugs.webkit.org/show_bug.cgi?id=164674
+
+        Reviewed by Ryosuke Niwa.
+
+        Speed up setting attributes of input elements of type 'text' by calling
+        updateInnerTextValue() only when needed. It was previously called
+        whenever an attribute was set, no matter it could impact its text value
+        or not.
+
+        No new tests, no Web-exposed behavior change.
+
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::parseAttribute):
+        * html/InputType.cpp:
+        (WebCore::InputType::attributeChanged):
+        * html/InputType.h:
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::attributeChanged):
+        * html/TextFieldInputType.h:
+
+2016-11-12  Dan Bernstein  <mitz@apple.com>
+
+        Tried to fix the 32-bit build.
+
+        * platform/mac/WebPlaybackControlsManager.mm:
+
+2016-11-12  Dan Bernstein  <mitz@apple.com>
+
+        Tried to fix the 32-bit build.
+
+        * platform/mac/WebPlaybackControlsManager.h:
+
+2016-11-12  Dan Bernstein  <mitz@apple.com>
+
+        Tried to fix the build.
+
+        * platform/mac/WebPlaybackControlsManager.h: Declared conformance to
+          AVFunctionBarPlaybackControlsControlling, which is expected in WebKit::WebViewImpl.
+          Added ivar.
+        * platform/mac/WebPlaybackControlsManager.mm:
+          Synthesize seekToTime property needed for AVFunctionBarPlaybackControlsControlling
+          conformance.
+        (-[WebPlaybackControlsManager isSeeking]): Implement this
+          AVFunctionBarPlaybackControlsControlling method.
+        (-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): Ditto.
+
+2016-11-12  Dan Bernstein  <mitz@apple.com>
+
+        Tried to fix the build.
+
+        * platform/spi/cocoa/NSTouchBarSPI.h: Removed duplicate @interface declarations.
+
+2016-11-12  Frederic Wang  <fwang@igalia.com>
+
+        Ensure MathML render tree are clean by the end of FrameView::layout().
+        https://bugs.webkit.org/show_bug.cgi?id=162824
+
+        Reviewed by Darin Adler.
+
+        clearNeedsLayout is not called during the layout of invalid MathML markup. We introduce a new
+        helper function to perform proper layout of such markup and we now call it from the various
+        MathML layoutBlock functions. Additionally, we ensure that the preferred width is dirty after
+        computation in RenderMathMLScripts::computePreferredLogicalWidths.
+
+        Test: mathml/invalid-markup.html
+
+        * rendering/mathml/RenderMathMLBlock.cpp:
+        (WebCore::RenderMathMLBlock::layoutInvalidMarkup): Helper function to layout invalid markup.
+        * rendering/mathml/RenderMathMLBlock.h: Declare layoutInvalidMarkup.
+        * rendering/mathml/RenderMathMLFraction.cpp:
+        (WebCore::RenderMathMLFraction::layoutBlock): Call layoutInvalidMarkup.
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::layoutBlock): Ditto.
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Set the preferred width dirty
+        after computation to avoid that it is computed again and again.
+        (WebCore::RenderMathMLScripts::layoutBlock): Call layoutInvalidMarkup.
+        * rendering/mathml/RenderMathMLUnderOver.cpp:
+        (WebCore::RenderMathMLUnderOver::layoutBlock): Ditto.
+
+2016-11-12  Frederic Wang  <fwang@igalia.com>
+
+        Remove RenderMathMLOperator::shouldAllowStretching
+        https://bugs.webkit.org/show_bug.cgi?id=164313
+
+        Reviewed by Darin Adler.
+
+        RenderMathMLOperator::shouldAllowStretching is an old function from early implementations of
+        MathML. Its name is now confusing since it also includes non-stretchy large operators.
+        Moreover, it is not really useful and is actually only used by two functions: useMathOperator
+        and updateMathOperator. The former is almost equivalent and is used as a replacement of
+        shouldAllowStretching everywhere else. We rewrite the two remaining calls with the finer
+        test functions isStretchy() and isLargeOperatorInDisplayStyle().
+
+        No new tests, behavior unchanged.
+
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::updateMathOperator): Reorder the conditionals to avoid the
+        use of RenderMathMLOperator::shouldAllowStretching and match useMathOperator.
+        (WebCore::RenderMathMLOperator::useMathOperator): Rewrite shouldAllowStretching() using
+        isStretchy() and isLargeOperatorInDisplayStyle().
+        (WebCore::RenderMathMLOperator::shouldAllowStretching): Deleted.
+        * rendering/mathml/RenderMathMLOperator.h: Remove declaration of shouldAllowStretching.
+
+2016-11-12  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Use #pragma once in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=164373
+
+        Reviewed by Darin Adler.
+
+        * Modules/*.h:
+        * crypto/*.h:
+        * cssjit/*.h:
+        * editing/*.h:
+        * fileapi/*.h:
+        * history/*.h:
+        * loader/*.h:
+        * mathml/*.h:
+        * page/*.h:
+        * replay/*.h:
+        * storage/*.h:
+        * xml/*.h:
+
+        * editing/FrameSelection.cpp:
+        * loader/ResourceLoadStatisticsStore.cpp:
+        Remove unused LOG and DEBUG defines.
+
+2016-11-12  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Follow-up: fix the OpenSource build on Mac after r208642
+        https://bugs.webkit.org/show_bug.cgi?id=164677
+
+        Reviewed by Ryosuke Niwa.
+
+        The playbackControlsController property should also be `assign`.
+
+        * platform/spi/cocoa/AVKitSPI.h:
+
+2016-11-11  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        SPI imports in AVKitSPI.h should be guarded by USE(APPLE_INTERNAL_SDK)
+        https://bugs.webkit.org/show_bug.cgi?id=164672
+
+        Reviewed by Dan Bernstein.
+
+        Fixes the OpenSource build when ENABLE(WEB_PLAYBACK_CONTROLS_MANAGER) is on.
+
+        * platform/spi/cocoa/AVKitSPI.h: Add USE(APPLE_INTERNAL_SDK) guards around AVKit function bar SPI headers.
+        Additionally, define AVFunctionBarPlaybackControlsProvider in the case where AVKit SPI is unavailable.
+
+2016-11-11  Ryosuke Niwa  <rniwa@webkit.org>
+
+        event.composedPath() does not include window
+        https://bugs.webkit.org/show_bug.cgi?id=164609
+        <rdar://problem/29210383>
+
+        Reviewed by Antti Koivisto.
+
+        Fixed the bug by including WindowContext be a part of the regular EventPath. This also simplifies
+        dispatchEventInDOM which used to had a special logic for dispatching an event on the window.
+
+        Also fixed a bug in EventDispatcher::dispatchEvent that event.target would be nullptr when an event was
+        dispatched inside a disconnected shadow tree or prevented from propagating to the document tree.
+        Preserve the final target by simply saving event.target() prior to invoking the default event handler instead.
+
+        Test: fast/shadow-dom/event-path-with-window.html
+
+        * dom/EventDispatcher.cpp:
+        (WebCore::WindowEventContext): Deleted. Moved to EventPath.cpp.
+        (WebCore::dispatchEventInDOM): Removed the code for WindowContext. The generic event dispatching logic
+        will do the same work now.
+        (WebCore::EventDispatcher::dispatchEvent): Restore the original target instead of using that of WindowContext.
+        * dom/EventPath.cpp:
+        (WebCore::WindowEventContext): Moved from EventDispatcher.cpp. Also made it a subclass of EventContext.
+        (WebCore::WindowEventContext::handleLocalEvents): Added.
+        (WebCore::EventPath::EventPath): When the parent's nullptr, check if the current node is Document. If it is,
+        follow https://dom.spec.whatwg.org/#interface-document where it says:
+        "A document’s get the parent algorithm, given an event, returns null if event’s type attribute value is 'load'
+         or document does not have a browsing context, and the document’s associated Window object otherwise."
+        (WebCore::EventPath::setRelatedTarget): Skip over WindowContext.
+        (WebCore::EventPath::retargetTouch): Ditto.
+        (WebCore::EventPath::computePathUnclosedToTarget): When the target is DOMWindow, use its document as the target.
+        Also, include any event target that is not a node in the event path.
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Support all the correct blend modes
+        https://bugs.webkit.org/show_bug.cgi?id=164669
+
+        Reviewed by Dean Jackson.
+
+        * css/parser/CSSParserFastPaths.cpp:
+        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+
+2016-11-11  Alex Christensen  <achristensen@webkit.org>
+
+        Use SecurityOriginData as keys in StorageManager
+        https://bugs.webkit.org/show_bug.cgi?id=159834
+        <rdar://problem/27346948>
+
+        Reviewed by Brady Eidson.
+
+        No change in behavior.
+
+        * page/SecurityOriginData.h:
+        (WebCore::SecurityOriginData::SecurityOriginData):
+        (WebCore::SecurityOriginData::isEmpty):
+        (WebCore::SecurityOriginData::isHashTableDeletedValue):
+        (WebCore::SecurityOriginDataHashTraits::isEmptyValue):
+        (WebCore::SecurityOriginDataHash::hash):
+        (WebCore::SecurityOriginDataHash::equal):
+        Add some hash functions so a SecurityOriginData can be used as a key in a HashMap.
+
+2016-11-11  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Hovering over a slotted Text node clears hover state
+        https://bugs.webkit.org/show_bug.cgi?id=164002
+        <rdar://problem/29040471>
+
+        Reviewed by Simon Fraser.
+
+        The bug was caused by HitTestResult::innerElement returning the parent element of a Text node without
+        taking the shadow root or slots into account. For hit testing, we always want to use the "flat tree"
+        or "composed tree" (imprecisely but close enough in this case).
+
+        Fixed the bug by making HitTestResult::innerElement use parentNodeInComposedTree. Also renamed it to
+        HitTestResult::targetElement to be consistent with HitTestResult::targetNode.
+
+        Tests: fast/shadow-dom/activate-over-slotted-content.html
+               fast/shadow-dom/hover-over-slotted-content.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::prepareMouseEvent):
+        * html/MediaElementSession.cpp:
+        (WebCore::isMainContentForPurposesOfAutoplay):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::eventMayStartDrag):
+        (WebCore::EventHandler::hitTestResultAtPoint):
+        (WebCore::EventHandler::handleWheelEvent):
+        (WebCore::EventHandler::sendContextMenuEventForKey):
+        (WebCore::EventHandler::hoverTimerFired):
+        (WebCore::EventHandler::handleDrag):
+        (WebCore::EventHandler::handleTouchEvent):
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::targetElement): Renamed from innerElement.
+        Now finds the parent element in the composed tree.
+        * rendering/HitTestResult.h:
+        (WebCore::HitTestResult::innerNode):
+
+2016-11-11  Brent Fulgham  <bfulgham@apple.com>
+
+        Unreviewed build fix after r208628
+
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::CloneDeserializer::readTerminal): Cast pointer arithmetic to
+        uint32_t to avoid warning.
+
+2016-11-11  Brent Fulgham  <bfulgham@apple.com>
+
+        Neutered ArrayBuffers are not properly serialized
+        https://bugs.webkit.org/show_bug.cgi?id=164647
+        <rdar://problem/29213490>
+
+        Reviewed by David Kilzer.
+
+        Correct binding logic to handle ImageBuffers being deserialized from neutered ArrayBuffers.
+
+        Test: fast/canvas/neutered-imagedata.html
+
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::CloneDeserializer::readTerminal):
+
+2016-11-11  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [WK2] autocorrect and autocapitalize attributes do not work in contenteditable elements
+        https://bugs.webkit.org/show_bug.cgi?id=164538
+        <rdar://problem/8418711>
+
+        Reviewed by Ryosuke Niwa.
+
+        Adds autocorrect and autocapitalize getters and setters to HTMLElements. These check the `autocorrect` and
+        `autocapitalize` attributes and return whether or not the element supports autocorrect, and the
+        autocapitalization type, respectively. By default, autocorrection is enabled and autocapitalization is enabled
+        on the sentence level for elements. Also refactors/renames WebAutocapitalizeType so that in WebCore, we deal
+        solely with AutocapitalizeTypes and WebKit1 converts from AutocapitalizeType to WebAutocapitalizeType as needed
+        for UIKit.
+
+        Tests: fast/events/ios/contenteditable-autocapitalize.html
+               fast/events/ios/contenteditable-autocorrect.html
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * html/Autocapitalize.cpp:
+        (WebCore::autocapitalizeTypeForAttributeValue):
+        (WebCore::stringForAutocapitalizeType):
+        * html/Autocapitalize.h:
+        * html/AutocapitalizeTypes.h: Renamed from Source/WebCore/html/WebAutocapitalize.h.
+
+        Move WebAutocapitalizeType into AutocapitalizeTypes.h as simply AutocapitalizeType.
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::autocapitalize):
+        (WebCore::HTMLElement::autocapitalizeType):
+        (WebCore::HTMLElement::setAutocapitalize):
+        (WebCore::HTMLElement::shouldAutocorrect):
+        (WebCore::HTMLElement::setAutocorrect):
+        * html/HTMLElement.h:
+        (WebCore::HTMLElement::autocorrect):
+        * html/HTMLElement.idl:
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::shouldAutocorrect):
+        (WebCore::HTMLFormControlElement::autocapitalizeType):
+        (WebCore::HTMLFormControlElement::autocorrect): Deleted.
+        (WebCore::HTMLFormControlElement::setAutocorrect): Deleted.
+        (WebCore::HTMLFormControlElement::autocapitalize): Deleted.
+        (WebCore::HTMLFormControlElement::setAutocapitalize): Deleted.
+
+        Fold autocorrect/autocapitalize member functions into HTMLElement and remove element-specific code in
+        HTML(FormControl|Form)Element.cpp.
+
+        * html/HTMLFormControlElement.h:
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::shouldAutocorrect):
+        (WebCore::HTMLFormElement::autocorrect): Deleted.
+        (WebCore::HTMLFormElement::setAutocorrect): Deleted.
+        (WebCore::HTMLFormElement::autocapitalizeType): Deleted.
+        (WebCore::HTMLFormElement::autocapitalize): Deleted.
+        (WebCore::HTMLFormElement::setAutocapitalize): Deleted.
+        * html/HTMLFormElement.h:
+        * html/HTMLFormElement.idl:
+        * html/HTMLInputElement.idl:
+        * html/HTMLTextAreaElement.idl:
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Add support for paths as basic shapes.
+        https://bugs.webkit.org/show_bug.cgi?id=164661
+
+        Reviewed by Dean Jackson.
+
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeBasicShapePath):
+        (WebCore::consumeBasicShape):
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Support margin-box in shape parsing.
+        https://bugs.webkit.org/show_bug.cgi?id=164658
+
+        Reviewed by Sam Weinig.
+
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeBasicShapeOrBox):
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Add support for -webkit-mask-source-type
+        https://bugs.webkit.org/show_bug.cgi?id=164657
+
+        Reviewed by Dean Jackson.
+
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeWebkitMaskSourceType):
+        (WebCore::consumeBackgroundComponent):
+        (WebCore::CSSPropertyParser::parseSingleValue):
+
+2016-11-11  Antti Koivisto  <antti@apple.com>
+
+        Updating class name doesn't update the slotted content's style
+        https://bugs.webkit.org/show_bug.cgi?id=164577
+        <rdar://problem/29205873>
+
+        Reviewed by Ryosuke Niwa.
+
+        Test: fast/shadow-dom/css-scoping-slotted-invalidation.html
+
+        Teach style invalidation code for attribute/class/id mutations about slotted rules.
+
+        * dom/ShadowRoot.cpp:
+        (WebCore::assignedShadowRootsIfSlotted):
+
+            Helper to find all assigned shadow roots (there may be more than one if slots are assigned to slots).
+
+        * dom/ShadowRoot.h:
+        * style/AttributeChangeInvalidation.cpp:
+        (WebCore::Style::mayBeAffectedByAttributeChange):
+        (WebCore::Style::mayBeAffectedByHostRules):
+        (WebCore::Style::mayBeAffectedBySlottedRules):
+        (WebCore::Style::AttributeChangeInvalidation::invalidateStyle):
+        (WebCore::Style::mayBeAffectedByHostStyle): Deleted.
+        * style/ClassChangeInvalidation.cpp:
+        (WebCore::Style::mayBeAffectedByHostRules):
+        (WebCore::Style::mayBeAffectedBySlottedRules):
+        (WebCore::Style::ClassChangeInvalidation::invalidateStyle):
+        (WebCore::Style::mayBeAffectedByHostStyle): Deleted.
+        * style/ClassChangeInvalidation.h:
+        * style/IdChangeInvalidation.cpp:
+        (WebCore::Style::mayBeAffectedByHostRules):
+        (WebCore::Style::mayBeAffectedBySlottedRules):
+        (WebCore::Style::IdChangeInvalidation::invalidateStyle):
+        (WebCore::Style::mayBeAffectedByHostStyle): Deleted.
+        * style/StyleSharingResolver.cpp:
+        (WebCore::Style::SharingResolver::canShareStyleWithElement):
+
+            Fix a bug in style sharing where we were checking wrong element for host rules.
+            Tested by the included test too (the last empty div).
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Support the spring animation timing function
+        https://bugs.webkit.org/show_bug.cgi?id=164654
+
+        Reviewed by Dean Jackson.
+
+        * css/CSSValueKeywords.in:
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeSpringFunction):
+        (WebCore::consumeAnimationTimingFunction):
+        (WebCore::consumeAnimationValue):
+
+2016-11-11  Chris Dumez  <cdumez@apple.com>
+
+        WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
+        https://bugs.webkit.org/show_bug.cgi?id=164644
+
+        Reviewed by Brady Eidson.
+
+        WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
+        as per:
+        - https://heycam.github.io/webidl/#es-attributes
+
+        This is because WorkerGlobalScope is not marked as [Global] or [PrimaryGlobal] in
+        the IDL:
+        - https://html.spec.whatwg.org/multipage/workers.html#the-workerglobalscope-common-interface
+
+        DedicatedWorkerGlobalScope is the one that is marked as [Global] and that should
+        have its attributes on the instance:
+        - https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-dedicatedworkerglobalscope-interface
+
+        We were getting this mostly right, except for runtime-enabled attributes / operations
+        which would end up on the instance instead of the prototype. This patch adds support
+        for [PrimaryGlobal] / [Global] IDL extended attributes which determine the location
+        of properties. It also improves support for runtime-enabled properties so that they
+        can now be on either the instance or the prototype, exactly as if they were not
+        runtimed-enabled.
+
+        This gives us 100% pass rate on:
+        - http://w3c-test.org/IndexedDB/interfaces.worker.html
+
+        No new tests, updated existing test.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (IsGlobalOrPrimaryGlobalInterface):
+        (InterfaceRequiresAttributesOnInstance):
+        (AttributeShouldBeOnInstance):
+        (OperationShouldBeOnInstance):
+        (GenerateHeader):
+        (GeneratePropertiesHashTable):
+        (GenerateImplementation):
+        * bindings/scripts/IDLAttributes.txt:
+        * bindings/scripts/test/JS/JSInterfaceName.cpp:
+        (WebCore::JSInterfaceName::finishCreation):
+        * bindings/scripts/test/JS/JSInterfaceName.h:
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        (WebCore::JSTestActiveDOMObject::finishCreation):
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
+        * bindings/scripts/test/JS/JSTestCEReactions.cpp:
+        (WebCore::JSTestCEReactions::finishCreation):
+        * bindings/scripts/test/JS/JSTestCEReactions.h:
+        * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
+        (WebCore::JSTestCEReactionsStringifier::finishCreation):
+        * bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
+        * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
+        (WebCore::JSTestClassWithJSBuiltinConstructor::finishCreation):
+        * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
+        * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
+        (WebCore::JSTestCustomConstructorWithNoInterfaceObject::finishCreation):
+        * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+        (WebCore::JSTestCustomNamedGetter::finishCreation):
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
+        * bindings/scripts/test/JS/JSTestDOMJIT.cpp:
+        (WebCore::JSTestDOMJIT::finishCreation):
+        * bindings/scripts/test/JS/JSTestDOMJIT.h:
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+        (WebCore::JSTestEventConstructor::finishCreation):
+        * bindings/scripts/test/JS/JSTestEventConstructor.h:
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        (WebCore::JSTestEventTarget::finishCreation):
+        * bindings/scripts/test/JS/JSTestEventTarget.h:
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        (WebCore::JSTestException::finishCreation):
+        * bindings/scripts/test/JS/JSTestException.h:
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        (WebCore::JSTestGenerateIsReachable::finishCreation):
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
+        * bindings/scripts/test/JS/JSTestGlobalObject.cpp:
+        (WebCore::JSTestGlobalObject::finishCreation):
+        * bindings/scripts/test/JS/JSTestGlobalObject.h:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        (WebCore::JSTestInterface::finishCreation):
+        * bindings/scripts/test/JS/JSTestInterface.h:
+        * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
+        (WebCore::JSTestInterfaceLeadingUnderscore::finishCreation):
+        * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
+        * bindings/scripts/test/JS/JSTestIterable.cpp:
+        (WebCore::JSTestIterable::finishCreation):
+        * bindings/scripts/test/JS/JSTestIterable.h:
+        * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
+        (WebCore::JSTestJSBuiltinConstructor::finishCreation):
+        * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+        (WebCore::JSTestMediaQueryListListener::finishCreation):
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        (WebCore::JSTestNamedConstructor::finishCreation):
+        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
+        * bindings/scripts/test/JS/JSTestNode.cpp:
+        (WebCore::JSTestNode::finishCreation):
+        * bindings/scripts/test/JS/JSTestNode.h:
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        (WebCore::JSTestNondeterministic::finishCreation):
+        * bindings/scripts/test/JS/JSTestNondeterministic.h:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::JSTestObj::finishCreation):
+        * bindings/scripts/test/JS/JSTestObj.h:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        (WebCore::JSTestOverloadedConstructors::finishCreation):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
+        (WebCore::JSTestOverloadedConstructorsWithSequence::finishCreation):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
+        * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
+        (WebCore::JSTestOverrideBuiltins::finishCreation):
+        * bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
+        * bindings/scripts/test/JS/JSTestSerialization.cpp:
+        (WebCore::JSTestSerialization::finishCreation):
+        * bindings/scripts/test/JS/JSTestSerialization.h:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        (WebCore::JSTestSerializedScriptValueInterface::finishCreation):
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::JSTestTypedefs::finishCreation):
+        * bindings/scripts/test/JS/JSTestTypedefs.h:
+        * bindings/scripts/test/TestGlobalObject.idl:
+        * page/DOMWindow.idl:
+        * workers/DedicatedWorkerGlobalScope.idl:
+
+2016-11-11  Antti Koivisto  <antti@apple.com>
+
+        Shadow DOM: Toggling class in `.class ::slotted(*)` does not trigger style recalc
+        https://bugs.webkit.org/show_bug.cgi?id=160864
+
+        Reviewed by Ryosuke Niwa.
+
+        Also fix similar issue with ::host
+
+        Test: fast/shadow-dom/css-scoping-host-and-slotted-context-invalidation.html
+
+        * css/StyleInvalidationAnalysis.cpp:
+        (WebCore::StyleInvalidationAnalysis::invalidateIfNeeded):
+
+            If we have ::slotted rules and encounter a <slot>, invalidate the slotted host children.
+
+        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
+
+            Invalidate the shadow host if we have ::host rules.
+
+        * css/StyleInvalidationAnalysis.h:
+        * dom/InlineStyleSheetOwner.cpp:
+        (WebCore::InlineStyleSheetOwner::createSheet):
+
+            Fix a bug where it was possible to mutate stylesheets in the inline stylesheet cache.
+            The included test covers this.
+
+        * style/StyleScope.cpp:
+        (WebCore::Style::Scope::updateActiveStyleSheets):
+
+            Handle the full invalidation case.
+
+2016-11-11  Brady Eidson  <beidson@apple.com>
+
+        IndexedDB 2.0: "close pending flag" and firing blocked events all need fixing.
+        https://bugs.webkit.org/show_bug.cgi?id=164641
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Covered by at least 3 existing tests).
+
+        * Modules/indexeddb/IDBDatabase.cpp:
+        (WebCore::IDBDatabase::close):
+        (WebCore::IDBDatabase::maybeCloseInServer):
+
+        * Modules/indexeddb/client/IDBConnectionProxy.cpp:
+        (WebCore::IDBClient::IDBConnectionProxy::databaseConnectionPendingClose):
+        * Modules/indexeddb/client/IDBConnectionProxy.h:
+
+        * Modules/indexeddb/client/IDBConnectionToServer.cpp:
+        (WebCore::IDBClient::IDBConnectionToServer::databaseConnectionPendingClose):
+        * Modules/indexeddb/client/IDBConnectionToServer.h:
+        * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
+
+        * Modules/indexeddb/server/IDBServer.cpp:
+        (WebCore::IDBServer::IDBServer::databaseConnectionPendingClose):
+        * Modules/indexeddb/server/IDBServer.h:
+
+        * Modules/indexeddb/server/ServerOpenDBRequest.cpp:
+        (WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
+        (WebCore::IDBServer::ServerOpenDBRequest::notifyRequestBlocked): Deleted.
+        * Modules/indexeddb/server/ServerOpenDBRequest.h:
+        (WebCore::IDBServer::ServerOpenDBRequest::hasNotifiedBlocked): Deleted.
+
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabase::allConnectionsAreClosedOrClosing):
+        (WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange):
+        (WebCore::IDBServer::UniqueIDBDatabase::notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent):
+        * Modules/indexeddb/server/UniqueIDBDatabase.h:
+
+        * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionPendingCloseFromClient):
+        (WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
+        (WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionIsClosing):
+        * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
+
+        * Modules/indexeddb/shared/InProcessIDBServer.cpp:
+        (WebCore::InProcessIDBServer::databaseConnectionPendingClose):
+        * Modules/indexeddb/shared/InProcessIDBServer.h:
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Fix time unit parsing
+        https://bugs.webkit.org/show_bug.cgi?id=164649
+
+        Reviewed by Dean Jackson.
+        
+        Make sure that a unitless value gets changed to milliseconds properly.
+
+        * css/parser/CSSPropertyParserHelpers.cpp:
+        (WebCore::CSSPropertyParserHelpers::consumeTime):
+
+2016-11-11  Keith Rollin  <krollin@apple.com>
+
+        Reduce number of platformMemoryUsage calls
+        https://bugs.webkit.org/show_bug.cgi?id=164375
+
+        Reviewed by Andreas Kling.
+
+        platformMemoryUsage was being called all the time while logging the
+        results of various memory-purging operations. This logging is
+        subordinate to the needs of performance and so can be removed.
+        Behavior is now as follows:
+
+        - If memory-pressure relief logging is enabled, logging includes
+        memory usage information. On Cocoa, this logging is disabled by
+        default but can be enabled by setting LogMemoryJetsamDetails in
+        `defaults`.
+        - Otherwise, if release-logging is enabled (as it is on Cocoa),
+        abbreviated memory pressure relief logging is performed: the logging
+        lines are printed but without any memory usage information.
+        - Otherwise, no logging is performed.
+
+        No new tests -- no tests for logging.
+
+        * platform/MemoryPressureHandler.cpp:
+        (WebCore::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
+        * platform/MemoryPressureHandler.h:
+        (WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
+        (WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
+
+2016-11-11  Eric Carlson  <eric.carlson@apple.com>
+
+        [MediaStream] defer resolution of getUserMedia promise made in a background tab
+        https://bugs.webkit.org/show_bug.cgi?id=164643
+        <rdar://problem/29048317>
+
+        Reviewed by Brady Eidson.
+
+        Test: fast/mediastream/get-user-media-background-tab.html
+
+        Do not start producing data when the document does not allow media
+        to start playing. Instead, register with the document for a callback 
+        when playback is allowed and start then.
+        * Modules/mediastream/MediaStream.cpp:
+        (WebCore::MediaStream::~MediaStream):
+        (WebCore::MediaStream::mediaCanStart):
+        (WebCore::MediaStream::startProducingData):
+        (WebCore::MediaStream::stopProducingData):
+        (WebCore::MediaStream::pageMutedStateDidChange):
+        * Modules/mediastream/MediaStream.h:
+
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::mediaCanStart): Deal with API change.
+        * Modules/webaudio/AudioContext.h:
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaCanStart): Ditto.
+        * html/HTMLMediaElement.h:
+        * page/MediaCanStartListener.h:
+
+        * page/Page.cpp:
+        (WebCore::Page::takeAnyMediaCanStartListener): Return the listener and document.
+        (WebCore::Page::setCanStartMedia): Pass the document to the listener.
+        * page/Page.h:
+
+2016-11-11  Zalan Bujtas  <zalan@apple.com>
+
+        RenderFlowThread's containing block cache should be invalidated before calling styleDidChange.
+        https://bugs.webkit.org/show_bug.cgi?id=164646
+
+        Reviewed by Simon Fraser.
+
+        We have to invalidate the containing block cache for RenderFlowThreads soon after the containing block context
+        changes. Invalidating it in RenderBlock::styleDidChange is too late since we might run some code in some
+        of the subclasses that use this stale containing block cache.  
+
+        No known behaviour change.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::styleDidChange): This change could trigger double invalidation.
+        However running this code twice shouldn't impact performance greatly.
+        (WebCore::RenderBlock::resetFlowThreadContainingBlockAndChildInfoIncludingDescendants):
+        (WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
+        * rendering/RenderBlock.h:
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::setStyle): We don't need to call the invalidation from initializeStyle(), since
+        we don't yet have cache at that point.
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::splitInlines):
+
+2016-11-11  Darin Adler  <darin@apple.com>
+
+        Move Node from ExceptionCode to ExceptionOr
+        https://bugs.webkit.org/show_bug.cgi?id=164515
+
+        Reviewed by Sam Weinig.
+
+        * bindings/js/JSHTMLSelectElementCustom.cpp:
+        (WebCore::selectElementIndexSetter): Call remove instead of removeByIndex.
+        Was renamed now that there is no conflict.
+
+        * bindings/js/JSNodeCustom.cpp:
+        (WebCore::JSNode::insertBefore): Use ExceptionOr.
+        (WebCore::JSNode::replaceChild): Ditto.
+        (WebCore::JSNode::removeChild): Ditto.
+        (WebCore::JSNode::appendChild): Ditto.
+
+        * dom/Attr.cpp:
+        (WebCore::Attr::Attr): Take a reference.
+        (WebCore::Attr::create): Ditto.
+        (WebCore::Attr::createTextChild): Use a Ref.
+        (WebCore::Attr::setPrefix): Use ExceptionOr.
+        (WebCore::Attr::setNodeValue): Ditto.
+        (WebCore::Attr::attachToElement): Take a reference.
+        * dom/Attr.h: Updated for above. Also made setPrefix private.
+
+        * dom/CharacterData.cpp:
+        (WebCore::CharacterData::setNodeValue): Use ExceptionOr.
+        * dom/CharacterData.h: Updated for the above.
+
+        * dom/ContainerNode.cpp:
+        (WebCore::collectChildrenAndRemoveFromOldParent): Use ExceptionOr.
+        (WebCore::checkAcceptChild): Ditto.
+        (WebCore::checkAcceptChildGuaranteedNodeTypes): Ditto.
+        (WebCore::ContainerNode::ensurePreInsertionValidity): Ditto.
+        (WebCore::checkPreReplacementValidity): Ditto.
+        (WebCore::ContainerNode::insertBefore): Ditto.
+        (WebCore::ContainerNode::replaceChild): Ditto.
+        (WebCore::ContainerNode::removeChild): Ditto.
+        (WebCore::ContainerNode::appendChild): Ditto.
+        (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): Ditto.
+        (WebCore::ContainerNode::cloneChildNodes): Ditto.
+        (WebCore::ContainerNode::append): Ditto.
+        (WebCore::ContainerNode::prepend): Ditto.
+        * dom/ContainerNode.h: Updated for above changes.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setTitle): Removed unneeded ASSERT_NO_EXCEPTION.
+        (WebCore::Document::setBodyOrFrameset): Removed unneeded ignored
+        exception code.
+
+        * dom/Element.cpp:
+        (WebCore::Element::setPrefix): Use ExceptionOr.
+        (WebCore::Element::setAttributeNode): Updated for changes to Attr.
+        (WebCore::Element::setAttributeNodeNS): Ditto.
+        (WebCore::Element::setOuterHTML): Use ExceptionOr.
+        (WebCore::Element::ensureAttr): Updated for changes to Attr.
+        (WebCore::Element::insertAdjacent): Use ExceptionOr.
+        * dom/Element.h: Updated for above.
+
+        * dom/Node.cpp:
+        (WebCore::Node::setNodeValue): Use ExceptionOr.
+        (WebCore::Node::insertBefore): Ditto.
+        (WebCore::Node::replaceChild): Ditto.
+        (WebCore::Node::removeChild): Ditto.
+        (WebCore::Node::appendChild): Ditto.
+        (WebCore::Node::convertNodesOrStringsIntoNode): Ditto.
+        (WebCore::Node::before): Ditto.
+        (WebCore::Node::after): Ditto.
+        (WebCore::Node::replaceWith): Ditto.
+        (WebCore::Node::remove): Ditto.
+        (WebCore::Node::cloneNodeForBindings): Ditto.
+        (WebCore::Node::setPrefix): Ditto.
+        (WebCore::Node::checkSetPrefix): Ditto.
+        (WebCore::Node::setTextContent): Ditto.
+        * dom/Node.h: Updated for above.
+        * dom/Node.idl: Use non-legacy exceptions.
+
+        * dom/Range.cpp:
+        (WebCore::Range::processContents): Use ExceptionOr.
+        (WebCore::processContentsBetweenOffsets): Ditto.
+        (WebCore::processNodes): Ditto.
+        (WebCore::processAncestorsAndTheirSiblings): Ditto.
+        (WebCore::Range::insertNode): Ditto.
+        (WebCore::Range::surroundContents): Ditto.
+
+        * dom/Text.cpp:
+        (WebCore::Text::splitText): Use ExceptionOr.
+        (WebCore::Text::replaceWholeText): Removed unneeded IGNORE_EXCEPTION.
+
+        * editing/AppendNodeCommand.cpp:
+        (WebCore::AppendNodeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto.
+
+        * editing/EditorCommand.cpp:
+        (WebCore::executeInsertNode): Use ExceptionOr.
+
+        * editing/InsertNodeBeforeCommand.cpp:
+        (WebCore::InsertNodeBeforeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
+        * editing/MergeIdenticalElementsCommand.cpp:
+        (WebCore::MergeIdenticalElementsCommand::doApply): Ditto.
+        (WebCore::MergeIdenticalElementsCommand::doUnapply): Use ExceptionOr.
+
+        * editing/RemoveNodeCommand.cpp:
+        (WebCore::RemoveNodeCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
+        * editing/ReplaceNodeWithSpanCommand.cpp:
+        (WebCore::swapInNodePreservingAttributesAndChildren): Removed unneeded
+        ASSERT_NO_EXCEPTION.
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplacementFragment::removeNode): Ditto.
+        (WebCore::ReplacementFragment::insertNodeBefore): Ditto.
+        (WebCore::ReplacementFragment::insertFragmentForTestRendering): Ditto.
+        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment): Ditto.
+        (WebCore::ReplaceSelectionCommand::insertAsListItems): Ditto.
+
+        * editing/SplitElementCommand.cpp:
+        (WebCore::SplitElementCommand::executeApply): Use ExceptionOr.
+        (WebCore::SplitElementCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
+
+        * editing/SplitTextNodeCommand.cpp:
+        (WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Use ExceptionOr.
+
+        * editing/WrapContentsInDummySpanCommand.cpp:
+        (WebCore::WrapContentsInDummySpanCommand::executeApply): Removed unneeded
+        IGNORE_EXCEPTION.
+        (WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.
+
+        * editing/cocoa/EditorCocoa.mm:
+        (WebCore::Editor::styleForSelectionStart): Removed unneeded ASSERT_NO_EXCEPTION
+        and IGNORE_EXCEPTION.
+        * editing/htmlediting.cpp:
+        (WebCore::createTabSpanElement): Ditto.
+        * editing/markup.cpp:
+        (WebCore::fillContainerFromString): Ditto.
+        (WebCore::createFragmentFromText): Ditto.
+        (WebCore::removeElementFromFragmentPreservingChildren): Ditto.
+        (WebCore::replaceChildrenWithFragment): Use ExceptionOr.
+        (WebCore::replaceChildrenWithText): Ditto.
+
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::WebContentReader::addFragment): Removed unneeded exception
+        ignoring code.
+        (WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
+        (WebCore::Editor::setTextAsChildOfElement): Ditto.
+
+        * html/ColorInputType.cpp:
+        (WebCore::ColorInputType::createShadowSubtree): Removed unneeded
+        ASSERT_NO_EXCEPTION.
+
+        * html/FTPDirectoryDocument.cpp:
+        (WebCore::FTPDirectoryDocumentParser::appendEntry): Removed unneeded
+        IGNORE_EXCEPTION.
+        (WebCore::FTPDirectoryDocumentParser::createTDForFilename): Ditto.
+        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): Ditto.
+        (WebCore::FTPDirectoryDocumentParser::createBasicDocument): Ditto.
+        * html/FileInputType.cpp:
+        (WebCore::FileInputType::createShadowSubtree): Ditto.
+
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::setText): Removed unneeded ASSERT_NO_EXCEPTION.
+        * html/HTMLDetailsElement.cpp:
+        (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): Ditto.
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::textToFragment): Use ExceptionOr.
+        (WebCore::HTMLElement::setOuterText): Ditto.
+
+        * html/HTMLKeygenElement.cpp:
+        (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed unneeded
+        ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::createMediaControls): Ditto.
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): Ditto.
+        * html/HTMLOptionElement.cpp:
+        (WebCore::HTMLOptionElement::createForJSConstructor): Use ExceptionOr.
+        (WebCore::HTMLOptionElement::setText): Removed unneeded
+        ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+
+        * html/HTMLOptionsCollection.cpp:
+        (WebCore::HTMLOptionsCollection::remove): Call remove, not removeByIndex,
+        since we were able to change the name.
+
+        * html/HTMLOutputElement.cpp:
+        (WebCore::HTMLOutputElement::setTextContentInternal): Removed unneeded
+        ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot): Ditto.
+        * html/HTMLScriptElement.cpp:
+        (WebCore::HTMLScriptElement::setText): Ditto.
+
+        * html/HTMLSelectElement.cpp:
+        (WebCore::HTMLSelectElement::add): Use ExceptionOr.
+        (WebCore::HTMLSelectElement::remove): Renamed from removeByIndex since
+        there is no conflict with remove any more.
+        (WebCore::HTMLSelectElement::setOption): Call remove.
+        * html/HTMLSelectElement.h: Updated for above.
+        * html/HTMLSelectElement.idl: Got rid of ImplementedAs=removeByIndex.
+
+        * html/HTMLSummaryElement.cpp:
+        (WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot): Removed unneeded
+        ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+        * html/HTMLTableElement.cpp:
+        (WebCore::HTMLTableElement::HTMLTableElement): Initialize data members in
+        class definition instead of here.
+        (WebCore::HTMLTableElement::caption): Simplified using childrenOfType.
+        (WebCore::HTMLTableElement::setCaption): Use ExceptionOr.
+        (WebCore::HTMLTableElement::setTHead): Ditto.
+        (WebCore::HTMLTableElement::setTFoot): Ditto.
+        (WebCore::HTMLTableElement::deleteTFoot): Removed unneeded ASSERT_NO_EXCEPTION
+        and IGNORE_EXCEPTION.
+        (WebCore::HTMLTableElement::createTBody): Ditto.
+        (WebCore::HTMLTableElement::deleteCaption): Ditto.
+        (WebCore::HTMLTableElement::insertRow): Use ExceptionOr.
+        * html/HTMLTableElement.h: Updated for above.
+
+        * html/HTMLTableRowElement.cpp:
+        (WebCore::HTMLTableRowElement::insertCell): Use ExceptionOr.
+        (WebCore::HTMLTableRowElement::deleteCell): Ditto.
+        * html/HTMLTableSectionElement.cpp:
+        (WebCore::HTMLTableSectionElement::insertRow): Ditto.
+        (WebCore::HTMLTableSectionElement::deleteRow): Ditto.
+
+        * html/HTMLTextAreaElement.cpp:
+        (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Removed unneeded
+        ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+        (WebCore::HTMLTextAreaElement::setDefaultValue): Ditto.
+        (WebCore::HTMLTextAreaElement::updatePlaceholderText): Ditto.
+        * html/HTMLTextFormControlElement.cpp:
+        (WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.
+        * html/HTMLTitleElement.cpp:
+        (WebCore::HTMLTitleElement::setText): Ditto.
+        * html/MediaDocument.cpp:
+        (WebCore::MediaDocumentParser::createDocumentStructure): Ditto.
+        (WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure): Ditto.
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::createShadowSubtree): Ditto.
+        * html/SearchInputType.cpp:
+        (WebCore::SearchInputType::createShadowSubtree): Ditto.
+        * html/TextFieldInputType.cpp:
+        (WebCore::TextFieldInputType::createShadowSubtree): Ditto.
+        (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
+        (WebCore::TextFieldInputType::createContainer): Ditto.
+        (WebCore::TextFieldInputType::createAutoFillButton): Ditto.
+        * html/ValidationMessage.cpp:
+        (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Ditto.
+        (WebCore::ValidationMessage::buildBubbleTree): Ditto.
+        (WebCore::ValidationMessage::deleteBubbleTree): Ditto.
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.
+        * html/shadow/MediaControls.cpp:
+        (WebCore::MediaControls::createTextTrackDisplay): Ditto.
+
+        * html/shadow/MediaControlsApple.cpp:
+        (WebCore::MediaControlsApple::MediaControlsApple): Initialize data members
+        in class definition instead of here.
+        (WebCore::MediaControlsApple::tryCreateControls): Use ExceptionOr.
+        * html/shadow/MediaControlsApple.h: Updated for above.
+
+        * html/track/VTTCue.cpp:
+        (WebCore::VTTCue::copyWebVTTNodeToDOMTree): Removed unneeded ASSERT_NO_EXCEPTION
+        and IGNORE_EXCEPTION.
+        (WebCore::VTTCue::getDisplayTree): Ditto.
+        * html/track/VTTRegion.cpp:
+        (WebCore::VTTRegion::appendTextTrackCueBox): Ditto.
+
+        * inspector/DOMEditor.cpp: Use ExceptionOr in action classes.
+        (WebCore::DOMEditor::DOMEditor): Take a reference.
+        (WebCore::DOMEditor::insertBefore): Use ExceptionOr.
+        (WebCore::DOMEditor::removeChild): Ditto.
+        (WebCore::DOMEditor::setAttribute): Ditto.
+        (WebCore::DOMEditor::removeAttribute): Ditto.
+        (WebCore::DOMEditor::setOuterHTML): Ditto.
+        (WebCore::DOMEditor::replaceWholeText): Ditto.
+        (WebCore::DOMEditor::replaceChild): Ditto.
+        (WebCore::DOMEditor::setNodeValue): Ditto.
+        (WebCore::populateErrorString): Ditto.
+        * inspector/DOMEditor.h: Updated for above changes.
+
+        * inspector/DOMPatchSupport.cpp:
+        (WebCore::DOMPatchSupport::patchDocument): Updated to use references,
+        to use ExceptionOr, and to use a struct without a constructor for Digest.
+        (WebCore::DOMPatchSupport::DOMPatchSupport): Ditto.
+        (WebCore::DOMPatchSupport::patchNode): Ditto.
+        (WebCore::DOMPatchSupport::innerPatchNode): Ditto.
+        (WebCore::DOMPatchSupport::diff): Ditto.
+        (WebCore::DOMPatchSupport::innerPatchChildren): Ditto.
+        (WebCore::DOMPatchSupport::createDigest): Ditto.
+        (WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed): Ditto.
+        (WebCore::DOMPatchSupport::removeChildAndMoveToNew): Ditto.
+        (WebCore::DOMPatchSupport::markNodeAsUsed): Ditto.
+        * inspector/DOMPatchSupport.h: Updated for above.
+
+        * inspector/InspectorCSSAgent.cpp: Use ExceptionOr in the action classes.
+        (WebCore::InspectorCSSAgent::getStyleSheetText): Use ExceptionOr.
+        (WebCore::InspectorCSSAgent::setStyleSheetText): Ditto.
+        (WebCore::InspectorCSSAgent::setStyleText): Ditto.
+        (WebCore::InspectorCSSAgent::setRuleSelector): Ditto.
+        (WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Ditto.
+        (WebCore::InspectorCSSAgent::addRule): Ditto.
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): Ditto.
+        (WebCore::InspectorDOMAgent::setAttributeValue): Ditto.
+        (WebCore::InspectorDOMAgent::setAttributesAsText): Ditto.
+        (WebCore::InspectorDOMAgent::removeAttribute): Ditto.
+        (WebCore::InspectorDOMAgent::setOuterHTML): Ditto.
+        (WebCore::InspectorDOMAgent::setNodeValue): Ditto.
+        (WebCore::InspectorDOMAgent::undo): Ditto.
+        (WebCore::InspectorDOMAgent::redo): Ditto.
+
+        * inspector/InspectorHistory.cpp:
+        (WebCore::InspectorHistory::Action::Action): Moved to header.
+        (WebCore::InspectorHistory::Action::~Action): Ditto.
+        (WebCore::InspectorHistory::Action::toString): Ditto.
+        (WebCore::InspectorHistory::Action::isUndoableStateMark): Ditto.
+        (WebCore::InspectorHistory::Action::mergeId): Ditto.
+        (WebCore::InspectorHistory::Action::merge): Ditto.
+        (WebCore::InspectorHistory::InspectorHistory): Deleted.
+        (WebCore::InspectorHistory::~InspectorHistory): Deleted.
+        (WebCore::InspectorHistory::perform): Updated exception handling.
+        (WebCore::InspectorHistory::markUndoableState): Ditto.
+        (WebCore::InspectorHistory::undo): Ditto.
+        (WebCore::InspectorHistory::redo): Ditto.
+        * inspector/InspectorHistory.h: Updated for above.
+
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::setDocumentContent): Use reference.
+
+        * inspector/InspectorStyleSheet.cpp:
+        (WebCore::InspectorStyle::text): Use ExceptionOr and renamed from
+        getText since this now has a return value.
+        (WebCore::InspectorStyle::populateAllProperties): Updated for above.
+        (WebCore::InspectorStyle::setText): Use ExceptionOr.
+        (WebCore::InspectorStyleSheet::setText): Ditto.
+        (WebCore::InspectorStyleSheet::ruleSelector): Ditto.
+        (WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
+        (WebCore::InspectorStyleSheet::addRule): Ditto.
+        (WebCore::InspectorStyleSheet::deleteRule): Ditto.
+        (WebCore::InspectorStyleSheet::buildObjectForStyleSheet): Ditto.
+        (WebCore::InspectorStyleSheet::buildObjectForStyle): Ditto.
+        (WebCore::InspectorStyleSheet::setStyleText): Ditto.
+        (WebCore::InspectorStyleSheet::text): Use ExceptionOr and renamed.
+        (WebCore::InspectorStyleSheet::checkPageStyleSheet): Deleted.
+        Just wrote this code inline in each place this was called since it's
+        just a single null check.
+        (WebCore::InspectorStyleSheetForInlineStyle::text): Use ExceptionOr
+        and renamed.
+        (WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Ditto.
+        (WebCore::InspectorStyle::getText): Deleted.
+        * inspector/InspectorStyleSheet.h: Updated for above changes.
+
+        * page/DragController.cpp:
+        (WebCore::documentFragmentFromDragData): Removed unneeded
+        ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
+        * page/ios/FrameIOS.mm:
+        (WebCore::Frame::initWithSimpleHTMLDocument): Ditto.
+        * svg/SVGTRefElement.cpp:
+        (WebCore::SVGTRefElement::updateReferencedText): Ditto.
+        (WebCore::SVGTRefElement::detachTarget): Ditto.
+        * xml/XMLTreeViewer.cpp:
+        (WebCore::XMLTreeViewer::transformDocumentToTreeView): Ditto.
+
+2016-11-10  Jiewen Tan  <jiewen_tan@apple.com>
+
+        Rename CryptoKeyUsage to CryptoKeyUsageBitmap and CryptoKey::Usage to CryptoKeyUsage
+        https://bugs.webkit.org/show_bug.cgi?id=164624
+        <rdar://problem/29210140>
+
+        Reviewed by Brent Fulgham.
+
+        This patch allows IDLType CryptoKeyUsage to be shared among different IDLs, i.e. CryptoKey.idl,
+        SubtleCrypto.idl and JsonWebKey.idl such that it can simplify the customized binding codes.
+
+        Covered by existing tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSCryptoKeySerializationJWK.cpp:
+        * bindings/js/JSCryptoKeySerializationJWK.h:
+        * bindings/js/JSSubtleCryptoCustom.cpp:
+        (WebCore::toCryptoKeyUsageBitmap):
+        (WebCore::cryptoKeyUsageBitmapFromJSValue):
+        (WebCore::toKeyData):
+        (WebCore::jsSubtleCryptoFunctionGenerateKeyPromise):
+        (WebCore::jsSubtleCryptoFunctionImportKeyPromise):
+        (WebCore::cryptoKeyUsageFromString): Deleted.
+        (WebCore::cryptoKeyUsagesFromJSValue): Deleted.
+        * bindings/js/JSWebKitSubtleCryptoCustom.cpp:
+        * bindings/js/SerializedScriptValue.cpp:
+        * crypto/CryptoAlgorithm.cpp:
+        * crypto/CryptoAlgorithm.h:
+        * crypto/CryptoKey.cpp:
+        * crypto/CryptoKey.h:
+        * crypto/CryptoKey.idl:
+        * crypto/CryptoKeySerialization.h:
+        * crypto/CryptoKeyUsage.h:
+        * crypto/CryptoKeyUsage.idl: Added.
+        * crypto/gnutls/CryptoKeyRSAGnuTLS.cpp:
+        * crypto/JsonWebKey.h:
+        * crypto/JsonWebKey.idl:
+        * crypto/SubtleCrypto.idl:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.h:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        * crypto/algorithms/CryptoAlgorithmHMAC.h:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
+        * crypto/keys/CryptoKeyAES.cpp:
+        * crypto/keys/CryptoKeyAES.h:
+        * crypto/keys/CryptoKeyHMAC.cpp:
+        * crypto/keys/CryptoKeyHMAC.h:
+        * crypto/keys/CryptoKeyRSA.cpp:
+        * crypto/keys/CryptoKeyRSA.h:
+        * crypto/keys/CryptoKeySerializationRaw.cpp:
+        * crypto/keys/CryptoKeySerializationRaw.h:
+        * crypto/mac/CryptoKeyRSAMac.cpp:
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Fix basic shape parsing
+        https://bugs.webkit.org/show_bug.cgi?id=164645
+
+        Reviewed by Dean Jackson.
+
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeBasicShape):
+
+2016-11-11  Zalan Bujtas  <zalan@apple.com>
+
+        RenderFlowThread::removeLineRegionInfo shouldn't call HashMap::contains before HashMap::remove
+        https://bugs.webkit.org/show_bug.cgi?id=164639
+
+        Reviewed by Simon Fraser.
+
+        Also instead of asserting that the incoming renderer is not nullptr, we could just pass a reference in. 
+
+        No change in functionality.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
+        (WebCore::canComputeRegionRangeForBox):
+        (WebCore::RenderBlock::computeRegionRangeForBoxChild):
+        (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
+        (WebCore::RenderBlock::updateRegionRangeForBoxChild):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::hasRegionRangeInFlowThread):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::removeFromRenderFlowThreadIncludingDescendants):
+        * rendering/RenderFlowThread.cpp:
+        (WebCore::RenderFlowThread::removeFlowChildInfo):
+        (WebCore::RenderFlowThread::validateRegions):
+        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
+        (WebCore::RenderFlowThread::removeLineRegionInfo):
+        (WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
+        (WebCore::RenderFlowThread::setRegionRangeForBox):
+        (WebCore::RenderFlowThread::hasCachedRegionRangeForBox):
+        (WebCore::RenderFlowThread::computedRegionRangeForBox):
+        (WebCore::RenderFlowThread::checkLinesConsistency):
+        * rendering/RenderFlowThread.h:
+        * rendering/RenderMultiColumnFlowThread.cpp:
+        (WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
+        * rendering/RenderMultiColumnFlowThread.h:
+        * rendering/RenderNamedFlowFragment.cpp:
+        (WebCore::RenderNamedFlowFragment::clearObjectStyleInRegion):
+        * rendering/RenderNamedFlowFragment.h:
+        * rendering/RenderNamedFlowThread.cpp:
+        (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
+        (WebCore::RenderNamedFlowThread::removeFlowChildInfo):
+        * rendering/RenderNamedFlowThread.h:
+        * rendering/RenderRegion.cpp:
+        (WebCore::RenderRegion::removeRenderBoxRegionInfo):
+        * rendering/RenderRegion.h:
+
+2016-11-11  Megan Gardner  <megan_gardner@apple.com>
+
+        [Cocoa] Support wide gamut for Drag Image UI
+        https://bugs.webkit.org/show_bug.cgi?id=164490
+
+        Reviewed by Tim Horton.
+
+        Fixed an error in the support define for wide gamut on Mac.
+
+        The testing infrastructure to test this does not exist, and will be landing in another patch.
+
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::extendedSRGBColorSpaceRef):
+
+2016-11-11  Beth Dakin  <bdakin@apple.com>
+
+        Get touch bar code building for open source builds
+        https://bugs.webkit.org/show_bug.cgi?id=164610
+
+        Reviewed by Wenson Hsieh.
+
+        * config.h:
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Fix SVG markers and colors
+        https://bugs.webkit.org/show_bug.cgi?id=164640
+
+        Reviewed by Dean Jackson.
+
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertSVGColor):
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::CSSPropertyParser::parseShorthand):
+
+2016-11-10  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Composition state should be cleared when changing focus to a non-editable element
+        https://bugs.webkit.org/show_bug.cgi?id=164595
+        <rdar://problem/26412551>
+
+        Reviewed by Enrica Casucci.
+
+        When canceling or confirming a composition, always ensure that the composition node and composition underlines
+        being tracked are reset, even when there is no current selection. This prevents us from getting into a bad state
+        where focus has already changed from an element with a pending composition to a different element and the
+        composition is canceled, but the Editor still maintains its composition node.
+
+        Test: editing/input/focus-change-with-marked-text.html
+
+        * editing/Editor.cpp:
+        (WebCore::Editor::setComposition):
+
+2016-11-11  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Support -webkit-svg-shadow
+        https://bugs.webkit.org/show_bug.cgi?id=164637
+
+        Reviewed by Zalan Bujtas.
+
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::CSSPropertyParser::parseSingleValue):
+
 2016-11-11  Alejandro G. Castro  <alex@igalia.com>
 
         [WebRTC][OpenWebRTC] Implement device permissions handling solution for owr backend in the UI process