Use #pragma once in WebCore
[WebKit-https.git] / Source / WebCore / ChangeLog
index 5875482..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
+        https://bugs.webkit.org/show_bug.cgi?id=164010
+
+        Reviewed by Philippe Normand.
+
+        Move the capture of the sources for the OWR backend to the
+        WebProcess. In the UI we continue checking if the user allows
+        access to the audio and video capture. When device handling is
+        added in the future we will need some persistent ID and API to
+        pass from the UI process to the Web process.
+
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
+        (WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
+        Add the proper audio and video sources to allow the UI message to
+        be properly rendered. We are adding the specific devices, even
+        though the dialog just asks for general audio and video. There was
+        already a FIXME about improving this.
+        (WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): We are
+        capturing the devices here when the allowed message arrived from
+        the UI process. We store the completion handler to use it later
+        when the aync owr API finishes capture devices process.
+        (WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable): We
+        now call the completion handler in this callback called when the
+        owr library finishes the capture of the devices. Now this happens
+        in the WebProcess for OWR port.
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
+        Add an attribute to store the completion handler.
+
+2016-11-11  Manuel Rego Casasnovas  <rego@igalia.com>
+
+        [css-grid] ASSERTION FAILED: !m_gridIsDirty in WebCore::RenderGrid::gridRowCount
+        https://bugs.webkit.org/show_bug.cgi?id=163450
+
+        Reviewed by Darin Adler.
+
+        The issue is that in the test case a simplifiedLayout() is performed.
+        So in RenderGrid::layoutBlock() we early return and the grid is not populated,
+        so the m_gridIsDirty flag is not cleared when we try to check the size of the grid
+        in RenderGrid::layoutPositionedObject().
+
+        We should avoid to do a simplified layout if we have to layout
+        some positioned grid items and the grid is dirty.
+
+        The problem was not only the ASSERT, but the current behavior was wrong too.
+        As we didn't do a proper layout of the grid container, the positioned item
+        won't be placed on the expected position. Added tests verifying this.
+
+        Tests: fast/css-grid-layout/grid-positioned-item-dynamic-change.html
+               fast/css-grid-layout/grid-simplified-layout-positioned.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::canPerformSimplifiedLayout): Check if we can perform or not
+        a simplified layout.
+        (WebCore::RenderBlock::simplifiedLayout): Extract initial check
+        into canPerformSimplifiedLayout().
+        * rendering/RenderBlock.h: Add new header for canPerformSimplifiedLayout().
+        * rendering/RenderGrid.cpp: Implement our own version of canPerformSimplifiedLayout()
+        to verify that the grid is not dirty if we have to layout some positioned items.
+        (WebCore::RenderGrid::canPerformSimplifiedLayout):
+        * rendering/RenderGrid.h: Add canPerformSimplifiedLayout() header.
+
+2016-11-11  Antoine Quint  <graouts@apple.com>
+
+        [Modern Media Controls] Media Controller: media tracks control support
+        https://bugs.webkit.org/show_bug.cgi?id=164618
+        <rdar://problem/27989483>
+
+        Reviewed by Dean Jackson.
+
+        We introduce the TracksSupport class to only enable the media tracks button
+        in the media controls when text tracks and/or multiple audio tracks are available.
+
+        Tests: media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html
+               media/modern-media-controls/tracks-support/tracks-support-no-tracks.html
+               media/modern-media-controls/tracks-support/tracks-support-text-tracks.html
+
+        * Modules/modern-media-controls/js-files:
+        * Modules/modern-media-controls/media/media-controller.js:
+        (MediaController.prototype._updateControlsIfNeeded):
+        * Modules/modern-media-controls/media/tracks-support.js: Added.
+        (TracksSupport):
+        (TracksSupport.prototype.destroy):
+        (TracksSupport.prototype.get control):
+        (TracksSupport.prototype.get mediaEvents):
+        (TracksSupport.prototype.buttonWasClicked):
+        (TracksSupport.prototype.syncControl):
+        * WebCore.xcodeproj/project.pbxproj:
+
+2016-11-10  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [DOMJIT] DOMJIT accessor attribute in IDL should say like DOMJIT=Getter
+        https://bugs.webkit.org/show_bug.cgi?id=164632
+
+        Reviewed by Sam Weinig.
+
+        Currently, DOMJIT patchpoint is only allowed for getter in attributes.
+        To make it explicit, we use IDL attribute DOMJIT=Getter instead of
+        DOMJIT.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateHeader):
+        (GenerateImplementation):
+        * bindings/scripts/IDLAttributes.txt:
+        * bindings/scripts/test/TestDOMJIT.idl:
+        * dom/Document.idl:
+        * dom/Node.idl:
+
+2016-11-10  Sam Weinig  <sam@webkit.org>
+
+        [SVG] Start moving special casing of SVG out of the bindings - SVGPreserveAspectRatio
+        https://bugs.webkit.org/show_bug.cgi?id=164622
+
+        Reviewed by Darin Adler.
+
+        Part 2 of moving special casing of SVG out of the bindings.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        Add new files.
+
+        * bindings/scripts/CodeGenerator.pm:
+        (GenerateCompileTimeCheckForEnumsIfNeeded):
+        * bindings/scripts/IDLAttributes.txt:
+        Allow specifying a different scope for the constants to be declared in.
+        This allows us to have only one copy of the constants in the implementation
+        of SVGAngle/SVGAngleValue and SVGPreserveAspectRatio/SVGPreserveAspectRatioValue.
+
+        * loader/FrameLoader.cpp:
+        * rendering/svg/RenderSVGImage.h:
+        Remove unnecessary #include.
+
+        * svg/SVGAngle.h:
+        Remove redundant enum declaration.
+
+        * svg/SVGAngle.idl:
+        Specify a ConstantsScope of SVGAngleValue.
+
+        * rendering/svg/RenderSVGImage.cpp:
+        (WebCore::RenderSVGImage::updateImageViewport):
+        * svg/PatternAttributes.h:
+        (WebCore::PatternAttributes::preserveAspectRatio):
+        (WebCore::PatternAttributes::setPreserveAspectRatio):
+        * svg/SVGAnimatedPreserveAspectRatio.cpp:
+        (WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
+        (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
+        * svg/SVGAnimatedPreserveAspectRatio.h:
+        * svg/SVGAnimatedType.cpp:
+        (WebCore::SVGAnimatedType::createPreserveAspectRatio):
+        * svg/SVGAnimatedType.h:
+        (WebCore::SVGAnimatedType::preserveAspectRatio):
+        * svg/SVGFEImageElement.cpp:
+        (WebCore::SVGFEImageElement::parseAttribute):
+        * svg/SVGFitToViewBox.cpp:
+        (WebCore::SVGFitToViewBox::viewBoxToViewTransform):
+        * svg/SVGFitToViewBox.h:
+        (WebCore::SVGFitToViewBox::parseAttribute):
+        * svg/SVGImageElement.cpp:
+        (WebCore::SVGImageElement::parseAttribute):
+        * svg/SVGViewSpec.cpp:
+        (WebCore::SVGViewSpec::preserveAspectRatioString):
+        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
+        (WebCore::SVGViewSpec::reset):
+        (WebCore::SVGViewSpec::parseViewSpec):
+        * svg/SVGViewSpec.h:
+        * svg/graphics/SVGImage.cpp:
+        (WebCore::SVGImage::computeIntrinsicDimensions):
+        * svg/graphics/filters/SVGFEImage.cpp:
+        (WebCore::FEImage::FEImage):
+        (WebCore::FEImage::createWithImage):
+        (WebCore::FEImage::createWithIRIReference):
+        * svg/graphics/filters/SVGFEImage.h:
+        Replace SVGPreserveAspectRatio usage with SVGPreserveAspectRatioValue.
+
+        * svg/SVGPreserveAspectRatio.cpp: Removed.
+        * svg/SVGPreserveAspectRatio.h: Replaced.
+        * svg/SVGPreserveAspectRatio.idl:
+        * svg/SVGPreserveAspectRatioValue.cpp: Copied from Source/WebCore/svg/SVGPreserveAspectRatio.cpp.
+        * svg/SVGPreserveAspectRatioValue.h: Copied from Source/WebCore/svg/SVGPreserveAspectRatio.h.
+        Rename SVGPreserveAspectRatio to SVGPreserveAspectRatioValue and add a new SVGPreserveAspectRatio
+        that acts as the binding object. 
+
+2016-11-10  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [DOMJIT] Document#body should have DOMJIT patchpoint
+        https://bugs.webkit.org/show_bug.cgi?id=164627
+
+        Reviewed by Darin Adler.
+
+        This patch implements document.body accessor. To implement it, we need,
+
+        1. DOM traversing ability from ASM.
+        2. Checking HTMLElement.
+        3. Checking HTMLElement's localName.
+
+        The above features are already implemented in CSSJIT.
+        We extract some of utilities from CSSJIT to share them with DOMJIT.
+
+        Test: js/dom/domjit-accessor-document-body.html
+
+        * cssjit/SelectorCompiler.cpp:
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToNextAdjacentElement):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacentElement):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
+        (WebCore::SelectorCompiler::jumpIfElementIsNotEmpty):
+        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
+        (WebCore::SelectorCompiler::testIsElementFlagOnNode): Deleted.
+        (WebCore::SelectorCompiler::testIsHTMLFlagOnNode): Deleted.
+        * dom/Document.idl:
+        * dom/Element.h:
+        * dom/QualifiedName.h:
+        * domjit/DOMJITAbstractHeapRepository.yaml:
+        * domjit/DOMJITHelpers.h:
+        (WebCore::DOMJIT::branchTestIsElementFlagOnNode):
+        (WebCore::DOMJIT::branchTestIsHTMLFlagOnNode):
+        * domjit/JSDocumentDOMJIT.cpp:
+        (WebCore::DocumentBodyDOMJIT::checkDOM):
+        (WebCore::loadLocalName):
+        (WebCore::DocumentBodyDOMJIT::callDOMGetter):
+
+2016-11-10  John Wilander  <wilander@apple.com>
+
+        Remove unused parameter name to fix build error on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=163468
+
+        No review.
+
+        No new tests.
+
+        * platform/ios/PasteboardIOS.mm:
+        (WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
+            Removed parameter name 'pasteboardURL' in unimplemented function.
+
+2016-11-10  Chris Dumez  <cdumez@apple.com>
+
+        Speed up HTMLInputElement validation
+        https://bugs.webkit.org/show_bug.cgi?id=164603
+
+        Reviewed by Ryosuke Niwa.
+
+        Speed up HTMLInputElement validation by doing 1 virtual function call
+        instead of 9 and calling HTMLInputElement::value() only once per
+        validation instead of 9 times. Calling value() is expensive because
+        of sanitization.
+
+        No new tests, no Web-exposed behavior change.
+
+        * html/BaseCheckableInputType.cpp:
+        (WebCore::BaseCheckableInputType::fallbackValue):
+        * html/FormAssociatedElement.cpp:
+        (WebCore::FormAssociatedElement::isValid):
+        * html/FormAssociatedElement.h:
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::isValidFormControlElement):
+        (WebCore::HTMLFormControlElement::updateValidity):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::isValid):
+        (WebCore::HTMLInputElement::value):
+        * html/HTMLInputElement.h:
+        * html/TextFieldInputType.cpp:
+        (WebCore::limitLength):
+        * html/ValidityState.idl:
+
+2016-11-10  John Wilander  <wilander@apple.com>
+
+        Add link information to data transfer pasteboard for drag and drop links
+        https://bugs.webkit.org/show_bug.cgi?id=163468
+        <rdar://problem/20634630>
+
+        Reviewed by Brent Fulgham.
+
+        Test: editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html
+        This test ensures data transfers still work for types 'text' and 'url', i.e. that we don't
+        regress in-page use of the drag pasteboard.
+
+        * page/DragController.cpp:
+        (WebCore::DragController::startDrag):
+            Now adds trustworthy link information to the drag pasteboard.
+        * platform/Pasteboard.h:
+            New function declaration Pasteboard::writeTrustworthyWebURLsPboardType.
+        * platform/efl/PasteboardEfl.cpp:
+        (WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
+            Empty, i.e. not implemented.
+        * platform/gtk/PasteboardGtk.cpp:
+        (WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
+            Empty, i.e. not implemented.
+        * platform/ios/PasteboardIOS.mm:
+        (WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
+            Calls ASSERT_NOT_REACHED() to make sure we don't use this function before we have
+            decided on a trustrworthy URL pasteboard type on iOS. Currently not used since we
+            don't support drag & drop on iOS.
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
+            Writes the given URL to the WebURLsWithTitlesPboardType. This pasteboard type
+            serves as a trusted drop source.
+        * platform/win/PasteboardWin.cpp:
+        (WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
+            Empty, i.e. not implemented.
+
+2016-11-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        REGRESSION(r207182): [iOS] Crash because of passing freed CFDictionaryRef to CG when decoding a sub-sampled large image
+        https://bugs.webkit.org/show_bug.cgi?id=164617
+
+        Reviewed by Tim Horton.
+
+        This covered by the test fast/images/image-subsampling.html but it should
+        run with --guard-malloc --repeat-each=10 to show the bug or to verify the
+        fix.
+
+        imageSourceOptions() returns a non static RetainPtr<CFDictionaryRef> if
+        the subsamplingLevel is not zero. Because we are assigning the raw pointer
+        to a local variable in ImageDecoder::createFrameImageAtIndex(), CFRelease()
+        is called for the CFDictionaryRef immediately after this assignment. This
+        causes its memory to be freed in this case even before calling CG.
+
+        This bug does not happen if the subsamplingLevel is zero because we cache
+        the returned value in a static NeverDestroyed<RetainPtr<CFDictionaryRef> in
+        imageSourceOptions(). This cache prevents the CFDictionaryRef from being
+        freed in ImageDecoder::createFrameImageAtIndex() no matter where CFRelease()
+        is called.
+
+        The fix is hold the returned value in a RetainPtr<CFDictionaryRef>. This
+        will ensure the CFDictionaryRef raw pointer is valid till the end of
+        ImageDecoder::createFrameImageAtIndex().
+
+        * platform/graphics/cg/ImageDecoderCG.cpp:
+        (WebCore::ImageDecoder::createFrameImageAtIndex): Ensure the pointer is retained.
+
+2016-11-10  Brent Fulgham  <bfulgham@apple.com>
+
+        [Win][Direct2D] Add transparency layer support
+        https://bugs.webkit.org/show_bug.cgi?id=164614
+
+        Reviewed by Dean Jackson.
+
+        Provide a stackable implementation of transparency layers so that
+        multiple layers with opacity draw propery.
+
+        Tested by fast/layers/opacity-stacking.html and others.
+
+        * platform/graphics/win/GraphicsContextDirect2D.cpp:
+        (WebCore::GraphicsContext::platformContext): Remove unneeded assertion.
+        (WebCore::GraphicsContextPlatformPrivate::renderTarget): Return current context taking
+        into account the presence of transparency layers.
+        (WebCore::GraphicsContextPlatformPrivate::setAlpha): Added.
+        (WebCore::GraphicsContextPlatformPrivate::currentGlobalAlpha): Get current global
+        alpha for current layer.
+        (WebCore::GraphicsContext::colorWithGlobalAlpha): Compute proper color taking into
+        account the current layer.
+        (WebCore::drawWithShadowHelper): Helper function to share code.
+        (WebCore::GraphicsContext::drawWithShadow): Use new helper function.
+        (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer): Added.
+        (WebCore::GraphicsContext::beginPlatformTransparencyLayer): Call new implementation.
+        (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer): Added.
+        (WebCore::GraphicsContext::endPlatformTransparencyLayer): Call new implementation.
+        (WebCore::GraphicsContext::clearRect): Clear to transparent color.
+        (WebCore::GraphicsContext::setPlatformAlpha): Pass new alpha on to any active
+        transparency layer.
+        * platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:
+        (WebCore::GraphicsContextPlatformPrivate::renderTarget): Deleted.
+
+2016-11-10  Dean Jackson  <dino@apple.com>
+
+        Add CSS Color Level 4 to features.
+
+        * features.json:
+
+2016-11-10  Zalan Bujtas  <zalan@apple.com>
+
+        Move update image calls to RenderElement::styleDidChange.
+        https://bugs.webkit.org/show_bug.cgi?id=164623
+
+        Reviewed by Simon Fraser.
+
+        There should be no dependency on the image update between ::styleWillChange and ::styleDidChange.
+
+        Covered by existing tests.
+
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::initializeStyle):
+        (WebCore::RenderElement::setStyle):
+        (WebCore::RenderElement::styleDidChange):
+
+2016-11-10  Joseph Pecoraro  <pecoraro@apple.com>
+
+        After r207459 ASSERT in CachedResourceLoader under InspectorPageAgent::cachedResource
+        https://bugs.webkit.org/show_bug.cgi?id=164621
+
+        Reviewed by Youenn Fablet.
+
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::cachedResource):
+        CachedResourceLoader expects a sanitized URL.
+
+2016-11-10  Brady Eidson  <beidson@apple.com>
+
+        IndexedDB 2.0 Support the IDBDatabase.onclose event.
+        https://bugs.webkit.org/show_bug.cgi?id=164602
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Covered by existing tests).
+
+        * Modules/indexeddb/IDBDatabase.cpp:
+        (WebCore::IDBDatabase::connectionToServerLost): Fire "onclose" after "onerror"
+        * Modules/indexeddb/IDBDatabase.idl:
+
+2016-11-10  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Copied text would contain text inside CDATA sections and comments
+        https://bugs.webkit.org/show_bug.cgi?id=164578
+        <rdar://problem/19834542>
+
+        Reviewed by Darin Adler.
+
+        The bug was caused by HTMLConverter::_traverseNode always including the content of a Text node.
+        Since Comment and CDataSection nodes are also Text nodes, we need to exclude them.
+
+        In the long term, we should check the visibility of the text as done in MarkupAccumulator.
+
+        Test: editing/mac/attributed-string/comment-cdata-section.html
+
+        * editing/cocoa/HTMLConverter.mm:
+        (HTMLConverter::_traverseNode):
+
+2016-11-10  Eric Carlson  <eric.carlson@apple.com>
+
+        [MediaStream] apply constraints passed to getUserMedia()
+        https://bugs.webkit.org/show_bug.cgi?id=164561
+
+        Reviewed by Youenn Fablet.
+        <rdar://problem/29191384>
+
+        No new tests, updated existing tests.
+
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::allow): Pass constraints into createMediaStream instead of applying
+          them after the stream has been created.
+
+        * WebCore.xcodeproj/project.pbxproj: Remove MediaConstraintsMock.cpp/.h.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Remove a bogus assert.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): Drive-by fix: a stream
+          that is receiving media data is as ready as it will ever be so it's readyState should be
+          at HAVE_ENOUGH_DATA.
+
+        Simplify CaptureDeviceManager by removing all code for constraint validation because some
+        constraints can't be validated without a live capture device. Ports that are able to resolve
+        constraints without creating a live source can do so in a derived capture device class.
+        * platform/mediastream/CaptureDeviceManager.cpp:
+        (CaptureDeviceManager::bestSourcesForTypeAndConstraints): Return a list of UIDs, not a list
+          of live sources, because that is all the caller will use. This will allows ports to avoid
+          source creation in some cases.
+        (CaptureDeviceManager::sourceWithUID): Add parameters for new source constraints and invalid
+          constraint.
+        (CaptureDeviceManager::verifyConstraintsForMediaType): Deleted.
+        (CaptureDeviceManager::bestDeviceForFacingMode): Deleted.
+        (facingModeFromString): Deleted.
+        (CaptureDeviceManager::sessionSupportsConstraint): Deleted.
+        (CaptureDeviceManager::isSupportedFrameRate): Deleted.
+        * platform/mediastream/CaptureDeviceManager.h:
+        (WebCore::CaptureDeviceManager::defaultCaptureSession): Deleted.
+
+        * platform/mediastream/MediaConstraints.cpp:
+        (WebCore::FlattenedConstraint::find): New, make it possible to examine resolved constraints.
+        * platform/mediastream/MediaConstraints.h:
+        (WebCore::NumericConstraint::fitnessDistance): Reject invalid constraints.
+        (WebCore::NumericConstraint::valueForCapabilityRange): New, resolve a constraint for a 
+          capability range.
+        (WebCore::MediaTrackConstraintSetMap::width): Expose constraints held in the map.
+        (WebCore::MediaTrackConstraintSetMap::height):
+        (WebCore::MediaTrackConstraintSetMap::sampleRate):
+        (WebCore::MediaTrackConstraintSetMap::sampleSize):
+        (WebCore::MediaTrackConstraintSetMap::aspectRatio):
+        (WebCore::MediaTrackConstraintSetMap::frameRate):
+        (WebCore::MediaTrackConstraintSetMap::volume):
+        (WebCore::MediaTrackConstraintSetMap::echoCancellation):
+        (WebCore::MediaTrackConstraintSetMap::facingMode):
+        (WebCore::MediaTrackConstraintSetMap::deviceId):
+        (WebCore::MediaTrackConstraintSetMap::groupId):
+
+        Resolve and apply width, height, and frameRate all at once because the ability to support
+        one may depend on the value of another.
+        * platform/mediastream/RealtimeMediaSource.cpp:
+        (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): 
+        (WebCore::applyNumericConstraint): Move the guts of the logic into valueForCapabilityRange.
+        (WebCore::RealtimeMediaSource::applySizeAndFrameRate):
+        (WebCore::RealtimeMediaSource::selectSettings):
+        (WebCore::RealtimeMediaSource::supportsConstraints):
+        (WebCore::RealtimeMediaSource::applyConstraints): Support null success/failure lambdas.
+        * platform/mediastream/RealtimeMediaSource.h:
+
+        * platform/mediastream/RealtimeMediaSourceCenter.h:
+        * platform/mediastream/mac/AVAudioCaptureSource.h:
+        * platform/mediastream/mac/AVAudioCaptureSource.mm:
+        (WebCore::AVAudioCaptureSource::create): Add parameter for creation constraints.
+        (WebCore::AVAudioCaptureSource::AVAudioCaptureSource): Ditto.
+
+        Remove all constraint validation code, it is done by the audio and video capture sources. Add
+        support for stream creation constraints.
+        * platform/mediastream/mac/AVCaptureDeviceManager.h:
+        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
+        (WebCore::AVCaptureDeviceManager::captureDeviceList):
+        (WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints):
+        (WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints): Deleted.
+        (WebCore::AVCaptureDeviceManager::sourceWithUID): Deleted.
+        (WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType): Deleted.
+        (WebCore::AVCaptureDeviceManager::defaultCaptureSession): Deleted.
+        (WebCore::AVCaptureDeviceManager::sessionSupportsConstraint): Deleted.
+        (WebCore::AVCaptureDeviceManager::isSupportedFrameRate): Deleted.
+        (WebCore::AVCaptureDeviceManager::supportedConstraints): Deleted.
+
+        * platform/mediastream/mac/AVMediaCaptureSource.h:
+        (WebCore::AVMediaCaptureSource::constraints): Deleted.
+        * platform/mediastream/mac/AVMediaCaptureSource.mm:
+        (WebCore::AVMediaCaptureSource::AVMediaCaptureSource):
+        (WebCore::AVMediaCaptureSource::~AVMediaCaptureSource):
+        (WebCore::AVMediaCaptureSource::startProducingData):
+        (WebCore::AVMediaCaptureSource::stopProducingData):
+        (WebCore::AVMediaCaptureSource::beginConfiguration):
+        (WebCore::AVMediaCaptureSource::commitConfiguration):
+        (WebCore::AVMediaCaptureSource::capabilities):
+        (WebCore::AVMediaCaptureSource::setupSession):
+        (WebCore::AVMediaCaptureSource::reset):
+
+        Validate and apply constraints, support source creation constraints, initialize capabilities
+        and supported constraints by examining device capabilities.
+        * platform/mediastream/mac/AVVideoCaptureSource.h:
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::create):
+        (WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
+        (WebCore::updateSizeMinMax):
+        (WebCore::updateAspectRatioMinMax):
+        (WebCore::AVVideoCaptureSource::initializeCapabilities):
+        (WebCore::AVVideoCaptureSource::initializeSupportedConstraints):
+        (WebCore::AVVideoCaptureSource::applySize):
+        (WebCore::AVVideoCaptureSource::setPreset):
+        (WebCore::AVVideoCaptureSource::applyFrameRate):
+        (WebCore::AVVideoCaptureSource::applySizeAndFrameRate):
+        (WebCore::AVVideoCaptureSource::setupCaptureSession):
+        (WebCore::AVVideoCaptureSource::currentFrameCGImage):
+        (WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions):
+        (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate):
+
+        * platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
+        * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
+        (WebCore::MockRealtimeVideoSource::create): Apply creation constraints, return null if they
+          can not be applied successfully.
+        (WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac):
+        (WebCore::MockRealtimeVideoSource::createMuted):
+
+        Update RealtimeMediaSourceCenters for API changes.
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+        (WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):
+        (WebCore::RealtimeMediaSourceCenterMac::createMediaStream):
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
+        (WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
+        (WebCore::RealtimeMediaSourceCenterOwr::createMediaStream):
+        (WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable):
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
+
+        Mock media sources support constraint validation and application directly so "mock constraints"
+        are no longer necessary.
+        * platform/mock/MediaConstraintsMock.cpp: Removed.
+        * platform/mock/MediaConstraintsMock.h: Removed.
+        * platform/mock/MockRealtimeAudioSource.cpp:
+        (WebCore::MockRealtimeAudioSource::create):
+        (WebCore::MockRealtimeAudioSource::createMuted):
+        (WebCore::MockRealtimeAudioSource::updateSettings):
+        (WebCore::MockRealtimeAudioSource::initializeCapabilities):
+        (WebCore::MockRealtimeAudioSource::initializeSupportedConstraints):
+        * platform/mock/MockRealtimeAudioSource.h:
+        * platform/mock/MockRealtimeMediaSourceCenter.cpp:
+        (WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints):
+        (WebCore::MockRealtimeMediaSourceCenter::createMediaStream):
+        * platform/mock/MockRealtimeMediaSourceCenter.h:
+        * platform/mock/MockRealtimeVideoSource.cpp:
+        (WebCore::MockRealtimeVideoSource::create):
+        (WebCore::MockRealtimeVideoSource::createMuted):
+        * platform/mock/MockRealtimeVideoSource.h:
+        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
+
+2016-11-10  Alex Christensen  <achristensen@webkit.org>
+
+        Move SecurityOrigin::databaseIdentifier() to SecurityOriginData
+        https://bugs.webkit.org/show_bug.cgi?id=164573
+
+        Reviewed by Brady Eidson.
+
+        No change in behavior.
+
+        * Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
+        (WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):
+        * Modules/indexeddb/IDBDatabaseIdentifier.cpp:
+        (WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
+        * Modules/indexeddb/server/IDBServer.cpp:
+        (WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
+        * Modules/webdatabase/DatabaseTracker.cpp:
+        (WebCore::DatabaseTracker::hasEntryForOriginNoLock):
+        (WebCore::DatabaseTracker::hasEntryForDatabase):
+        (WebCore::DatabaseTracker::originPath):
+        (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
+        (WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
+        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
+        (WebCore::DatabaseTracker::setDatabaseDetails):
+        (WebCore::DatabaseTracker::originLockFor):
+        (WebCore::DatabaseTracker::deleteOriginLockFor):
+        (WebCore::DatabaseTracker::quotaForOriginNoLock):
+        (WebCore::DatabaseTracker::setQuota):
+        (WebCore::DatabaseTracker::addDatabase):
+        (WebCore::DatabaseTracker::deleteOrigin):
+        (WebCore::DatabaseTracker::deleteDatabase):
+        (WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
+        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
+        (WebCore::getDatabaseIdentifier):
+        * dom/Document.cpp:
+        (WebCore::Document::origin):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory):
+        * loader/appcache/ApplicationCacheStorage.cpp:
+        (WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
+        (WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
+        (WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
+        (WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
+        (WebCore::ApplicationCacheStorage::store):
+        (WebCore::ApplicationCacheStorage::ensureOriginRecord):
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::databaseIdentifier): Deleted.
+        * page/SecurityOrigin.h:
+        * page/SecurityOriginData.cpp:
+        (WebCore::SecurityOriginData::databaseIdentifier):
+        * page/SecurityOriginData.h:
+
+2016-11-10  Zalan Bujtas  <zalan@apple.com>
+
+        RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants should be on RenderBlock.
+        https://bugs.webkit.org/show_bug.cgi?id=164601
+
+        Reviewed by Simon Fraser.
+
+        FlowThread containing blocks are cached at RenderBlocks. It makes no sense to call the invalidate function on a RenderElement.
+        Move invalidateFlowThreadContainingBlockIncludingDescendants to RenderBlock.
+
+        No change in functionality.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
+        * rendering/RenderBlock.h:
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
+        * rendering/RenderElement.h:
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::splitInlines):
+
+2016-11-10  Brent Fulgham  <bfulgham@apple.com>
+
+        Local file restrictions should not block sessionStorage access.
+        https://bugs.webkit.org/show_bug.cgi?id=155609
+        <rdar://problem/25229461> 
+
+        Reviewed by Andy Estes.
+
+        Re-landing this fix that was lost when the localStorage change was rolled out.
+
+        Use of 'sessionStorage' is governed by SecurityOrigin with third party access
+        set to 'ShouldAllowFromThirdParty::AlwaysAllowFromThirdParty'. We should not
+        reject local files for this combination of arguments.
+
+        Tested by storage/domstorage/sessionstorage/blocked-file-access.html.
+
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::canAccessStorage): For the case of sessionStorage,
+        allow local file access.
+
+2016-11-10  Daniel Bates  <dabates@apple.com>
+
+        REGRESSION (r195004): Scripts and plugins blocked for subsequent loads in same WebContent
+        process after receiving HTTP 0.9 response
+        https://bugs.webkit.org/show_bug.cgi?id=164387
+        <rdar://problem/28987537>
+
+        Reviewed by Brent Fulgham.
+
+        Fixes an issue where the HTTP 0.9 sandbox persisted across subsequent loads in the same
+        WebContent process.
+
+        Currently when an HTTP 0.9 response is received for a request made to a default port
+        (e.g. 80) we apply a sandbox policy on the FrameLoader for the main resource that
+        disallows scripts and plugins. A FrameLoader may be re-used for navigations. Therefore,
+        the sandbox policy applied to one site may be applied to another site. Moreover the
+        sandbox policy was applied to the FrameLoader of the main resource regardless of whether
+        the HTTP response was for a subresource. Instead we should apply the sandbox on a per-
+        Document basis and only if we receive an HTTP 0.9 response for the document when the
+        corresponding HTTP request was made to a default port.
+
+        As a side benefit of this change, we emit exactly one console message to Web Inspector
+        when the HTTP 0.9 sandbox is applied to a document as opposed to three console messages.
+        Moreover, we only emit this console message when the document load is not blocked.
+
+        Test: http/tests/security/http-0.9/sandbox-should-not-persist-on-navigation.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::initSecurityContext): Disallow scripts and plugins if an HTTP 0.9
+        response was received for this document. Note that if this function is called for a
+        document associated with an HTTP 0.9 response then the corresponding HTTP request was
+        made to a default port. DocumentLoader::responseReceived() blocks the load for a document
+        with an HTTP 0.9 response corresponding to an HTTP request made to a non-default port.
+        This invariant is covered by the tests LayoutTests/http/tests/security/http-0.9/default-port-{plugin, script}-blocked.html.
+        (WebCore::Document::shouldEnforceHTTP0_9Sandbox): Added. Returns whether an HTTP 0.9 response
+        was received for this document.
+        * dom/Document.h:
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::responseReceived): Remove logic to apply sandbox policy to the
+        FrameLoader associated with the main resource. We will apply the sandbox during initialization
+        of the document.
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::didReceiveResponse): Ditto.
+        * loader/SubresourceLoader.cpp:
+        (WebCore::SubresourceLoader::didReceiveResponse): Ditto.
+
+2016-11-04  Jiewen Tan  <jiewen_tan@apple.com>
+
+        Update SubtleCrypto::importKey to match the latest spec
+        https://bugs.webkit.org/show_bug.cgi?id=164446
+        <rdar://problem/29123621>
+
+        Reviewed by Brent Fulgham.
+
+        This patch does following few things:
+        1. It updates the SubtleCrypto::importKey method to match the latest spec:
+           https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-importKey.
+           It also refers to the latest Editor's Draft at a certain degree:
+           https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-importKey.
+        2. It implements importKey operations of following algorithms: AES-CBC, AES-KW,
+           HMAC, RSAES-PKCS1-V1_5, RSASSA-PKCS1-V1_5, and RSA-OAEP.
+        3. It fixes some minor problems of SubtleCrypto::generateKey.
+        4. It addes move constructors for CryptoKeyAES, CryptoKeyHMAC, CryptoKeyRSA and
+           CryptoKeyDataRSAComponents.
+        5. It renames HmacKeyGenParams to HmacKeyParams to serve the purpose of both
+           HmacKeyGenParams and HmacImportParams which are essentially the same.
+        6. It enforces the key length in bits of CryptoKeyHMAC to be multiples of 8.
+        7. It also fixes the following bugs:
+           https://bugs.webkit.org/show_bug.cgi?id=126033,
+           https://bugs.webkit.org/show_bug.cgi?id=126034,
+           https://bugs.webkit.org/show_bug.cgi?id=151308.
+        P.S. We currently only support Raw and Jwk key format.
+
+        Tests: crypto/subtle/aes-cbc-import-jwk-key-length-128.html
+               crypto/subtle/aes-cbc-import-jwk-key-length-192.html
+               crypto/subtle/aes-cbc-import-jwk-key-length-256.html
+               crypto/subtle/aes-cbc-import-jwk-key-minimum.html
+               crypto/subtle/aes-cbc-import-jwk-key-non-extractable.html
+               crypto/subtle/aes-cbc-import-raw-key-length-128.html
+               crypto/subtle/aes-cbc-import-raw-key-length-192.html
+               crypto/subtle/aes-cbc-import-raw-key-length-256.html
+               crypto/subtle/aes-import-key-malformed-parameters.html
+               crypto/subtle/aes-kw-import-jwk-key-length-128.html
+               crypto/subtle/aes-kw-import-jwk-key-length-192.html
+               crypto/subtle/aes-kw-import-jwk-key-length-256.html
+               crypto/subtle/aes-kw-import-raw-key.html
+               crypto/subtle/generate-key-malformed-parameters.html
+               crypto/subtle/hmac-import-jwk-key-minimum.html
+               crypto/subtle/hmac-import-jwk-key-non-extractable.html
+               crypto/subtle/hmac-import-jwk-key-sha1.html
+               crypto/subtle/hmac-import-jwk-key-sha224.html
+               crypto/subtle/hmac-import-jwk-key-sha256.html
+               crypto/subtle/hmac-import-jwk-key-sha384.html
+               crypto/subtle/hmac-import-jwk-key-sha512.html
+               crypto/subtle/hmac-import-malformed-parameters.html
+               crypto/subtle/hmac-import-raw-key-customized-length.html
+               crypto/subtle/hmac-import-raw-key.html
+               crypto/subtle/import-key-malformed-parameters.html
+               crypto/subtle/rsa-import-key-malformed-parameters.html
+               crypto/subtle/rsa-oaep-import-jwk-private-key.html
+               crypto/subtle/rsa-oaep-import-jwk-public-key-sha1.html
+               crypto/subtle/rsa-oaep-import-jwk-public-key-sha224.html
+               crypto/subtle/rsa-oaep-import-jwk-public-key-sha256.html
+               crypto/subtle/rsa-oaep-import-jwk-public-key-sha384.html
+               crypto/subtle/rsa-oaep-import-jwk-public-key-sha512.html
+               crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-private-key.html
+               crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-leading-zero.html
+               crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-minimum.html
+               crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key-non-extractable.html
+               crypto/subtle/rsaes-pkcs1-v1_5-import-jwk-public-key.html
+               crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-private-key.html
+               crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha1.html
+               crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha224.html
+               crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha256.html
+               crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha384.html
+               crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-public-key-sha512.html
+               crypto/workers/subtle/aes-import-jwk-key.html
+               crypto/workers/subtle/aes-import-raw-key.html
+               crypto/workers/subtle/hmac-import-jwk-key.html
+               crypto/workers/subtle/hmac-import-raw-key.html
+               crypto/workers/subtle/rsa-import-jwk-private-key.html
+               crypto/workers/subtle/rsa-import-jwk-public-key.html
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformEfl.cmake:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSSubtleCryptoCustom.cpp:
+        (WebCore::normalizeCryptoAlgorithmParameters):
+        (WebCore::cryptoKeyUsageFromString):
+        (WebCore::cryptoKeyUsagesFromJSValue):
+        (WebCore::toKeyData):
+        (WebCore::jsSubtleCryptoFunctionGenerateKeyPromise):
+        (WebCore::jsSubtleCryptoFunctionImportKeyPromise):
+        (WebCore::JSSubtleCrypto::importKey):
+        * crypto/CryptoAlgorithm.cpp:
+        (WebCore::CryptoAlgorithm::importKey):
+        * crypto/CryptoAlgorithm.h:
+        * crypto/CryptoAlgorithmParameters.h:
+        * crypto/JsonWebKey.h: Added.
+        * crypto/JsonWebKey.idl: Added.
+        * crypto/RsaOtherPrimesInfo.h: Added.
+        * crypto/RsaOtherPrimesInfo.idl: Added.
+        * crypto/SubtleCrypto.h:
+        * crypto/SubtleCrypto.idl:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        (WebCore::CryptoAlgorithmAES_CBC::generateKey):
+        (WebCore::CryptoAlgorithmAES_CBC::importKey):
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        (WebCore::CryptoAlgorithmAES_KW::generateKey):
+        (WebCore::CryptoAlgorithmAES_KW::importKey):
+        * crypto/algorithms/CryptoAlgorithmAES_KW.h:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        (WebCore::CryptoAlgorithmHMAC::generateKey):
+        (WebCore::CryptoAlgorithmHMAC::importKey):
+        * crypto/algorithms/CryptoAlgorithmHMAC.h:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+        (WebCore::CryptoAlgorithmRSA_OAEP::importKey):
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
+        * crypto/keys/CryptoKeyAES.cpp:
+        (WebCore::CryptoKeyAES::CryptoKeyAES):
+        (WebCore::CryptoKeyAES::generate):
+        (WebCore::CryptoKeyAES::importRaw):
+        (WebCore::CryptoKeyAES::importJwk):
+        * crypto/keys/CryptoKeyAES.h:
+        * crypto/keys/CryptoKeyDataRSAComponents.cpp:
+        (WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents):
+        * crypto/keys/CryptoKeyDataRSAComponents.h:
+        * crypto/keys/CryptoKeyHMAC.cpp:
+        (WebCore::CryptoKeyHMAC::CryptoKeyHMAC):
+        (WebCore::CryptoKeyHMAC::generate):
+        (WebCore::CryptoKeyHMAC::importRaw):
+        (WebCore::CryptoKeyHMAC::importJwk):
+        (WebCore::CryptoKeyHMAC::buildAlgorithm):
+        * crypto/keys/CryptoKeyHMAC.h:
+        * crypto/keys/CryptoKeyRSA.cpp: Added.
+        (WebCore::CryptoKeyRSA::importJwk):
+        * crypto/keys/CryptoKeyRSA.h:
+        * crypto/parameters/CryptoAlgorithmHmacKeyParams.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h.
+        * crypto/parameters/CryptoAlgorithmRsaHashedImportParams.h: Added.
+        * crypto/parameters/HmacKeyParams.idl: Renamed from Source/WebCore/crypto/parameters/HmacKeyGenParams.idl.
+        * crypto/parameters/RsaHashedImportParams.idl: Added.
+
+2016-11-10  Brady Eidson  <beidson@apple.com>
+
+        IndexedDB 2.0: REGRESSION(r208467) Fix flaky crashes in IDB GC-related code.
+        https://bugs.webkit.org/show_bug.cgi?id=164596
+
+        Reviewed by Eric Carlson.
+
+        No new tests (Covered by existing tests).
+
+        We can't just WTFMove the pointers from the deleted-IDBObject maps...
+        We need to remove the entries, too.
+
+        * Modules/indexeddb/IDBObjectStore.cpp:
+        (WebCore::IDBObjectStore::rollbackForVersionChangeAbort):
+
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::internalAbort):
+
+2016-11-10  Youenn Fablet  <youennf@gmail.com>
+
+        MediaStreamTrack should use more Ref<> and less RefPtr<>
+        https://bugs.webkit.org/show_bug.cgi?id=164560
+
+        Reviewed by Eric Carlson.
+
+        No change of behavior.
+
+        Make MediaStreamTrack take a Ref<>& instead of a reference.
+        Using Ref<>&& instead of RefPtr<>&& in MediaStreamTrackPrivate.
+        Updating constness of some methods accordingly.
+
+        * Modules/mediastream/MediaEndpointPeerConnection.cpp:
+        (WebCore::MediaEndpointPeerConnection::createReceiver):
+        * Modules/mediastream/MediaStreamTrack.cpp:
+        (WebCore::MediaStreamTrack::create):
+        (WebCore::MediaStreamTrack::MediaStreamTrack):
+        (WebCore::MediaStreamTrack::clone):
+        * Modules/mediastream/MediaStreamTrack.h:
+        * Modules/webaudio/MediaStreamAudioSource.cpp:
+        (WebCore::MediaStreamAudioSource::capabilities):
+        (WebCore::MediaStreamAudioSource::settings):
+        * Modules/webaudio/MediaStreamAudioSource.h:
+        * platform/mediastream/MediaEndpoint.cpp:
+        * platform/mediastream/MediaStreamPrivate.cpp:
+        (WebCore::MediaStreamPrivate::create):
+        * platform/mediastream/MediaStreamTrackPrivate.cpp:
+        (WebCore::MediaStreamTrackPrivate::create):
+        (WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
+        (WebCore::MediaStreamTrackPrivate::clone):
+        * platform/mediastream/MediaStreamTrackPrivate.h:
+        (WebCore::MediaStreamTrackPrivate::setMuted):
+        (WebCore::MediaStreamTrackPrivate::source):
+        * platform/mediastream/RealtimeMediaSource.h:
+        * platform/mediastream/mac/AVMediaCaptureSource.h:
+        * platform/mediastream/mac/AVMediaCaptureSource.mm:
+        (WebCore::AVMediaCaptureSource::initializeSettings):
+        (WebCore::AVMediaCaptureSource::settings):
+        (WebCore::AVMediaCaptureSource::initializeCapabilities):
+        (WebCore::AVMediaCaptureSource::capabilities):
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
+        (WebCore::RealtimeMediaSourceOwr::capabilities):
+        (WebCore::RealtimeMediaSourceOwr::settings):
+        * platform/mock/MockRealtimeMediaSource.cpp:
+        (WebCore::MockRealtimeMediaSource::initializeCapabilities):
+        (WebCore::MockRealtimeMediaSource::capabilities):
+        (WebCore::MockRealtimeMediaSource::initializeSettings):
+        (WebCore::MockRealtimeMediaSource::settings):
+        * platform/mock/MockRealtimeMediaSource.h:
+
+2016-11-10  Per Arne Vollan  <pvollan@apple.com>
+
+        [Win32] Crash in layout tests.
+        https://bugs.webkit.org/show_bug.cgi?id=164411
+
+        Reviewed by Mark Lam.
+
+        Use the calling convention expected by the callers of the generated functions.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateImplementation):
+        * bindings/scripts/test/JS/JSTestDOMJIT.cpp:
+        (WebCore::unsafeJsTestDOMJITPrototypeFunctionGetAttribute):
+        (WebCore::unsafeJsTestDOMJITPrototypeFunctionItem):
+        (WebCore::unsafeJsTestDOMJITPrototypeFunctionHasAttribute):
+        (WebCore::unsafeJsTestDOMJITPrototypeFunctionGetElementById):
+        (WebCore::unsafeJsTestDOMJITPrototypeFunctionGetElementsByName):
+
+2016-11-10  Aaron Chu  <aaron_chu@apple.com>
+
+        Web Inspector: AXI: clarify button roles (e.g. toggle or popup button)
+        https://bugs.webkit.org/show_bug.cgi?id=130726
+        <rdar://problem/16420420>
+
+        Reviewed by Brian Burg.
+
+        Test: accessibility/ax-differentiate-button-types.html
+
+        Added special case logic to make sure PopUpButtonRole and ToggleButtonRole to user ButtonRole as role.
+        Added an "isPopUpButton" property to be exposed to the Inspector's use.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::computedRoleString):
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
+
+2016-11-10  Zan Dobersek  <zdobersek@igalia.com>
+
+        [EME] Add no-op Web-facing APIs
+        https://bugs.webkit.org/show_bug.cgi?id=164028
+
+        Reviewed by Jer Noble.
+
+        Add no-op implementation of the Web-facing APIs as defined in
+        the EME specification. This will be the basis for implementing
+        the various algorithms the same specification defines, and for
+        implementing the relevant platform abstractions.
+
+        Dictionaries and enumerations defined by the specification are
+        defined in separate headers, and not in the implementation files
+        for the class where they are used. This will ease their use
+        across different implementation files.
+
+        BufferSource now exposes the Variant object it holds. This is
+        needed to support the iterable property on the MediaKeyStatusMap
+        class.
+
+        CodeGeneratorJS is fixed to support JS-to-native conversion of
+        sequences of dictionaries.
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * Modules/encryptedmedia/MediaKeyMessageEvent.cpp: Added.
+        (WebCore::MediaKeyMessageEvent::MediaKeyMessageEvent):
+        (WebCore::MediaKeyMessageEvent::eventInterface):
+        * Modules/encryptedmedia/MediaKeyMessageEvent.h: Added.
+        * Modules/encryptedmedia/MediaKeyMessageEvent.idl: Added.
+        * Modules/encryptedmedia/MediaKeyMessageEventInit.h: Added.
+        (WebCore::MediaKeyMessageEventInit::MediaKeyMessageEventInit):
+        * Modules/encryptedmedia/MediaKeyMessageType.h: Added.
+        * Modules/encryptedmedia/MediaKeySession.cpp: Added.
+        (WebCore::MediaKeySession::create):
+        (WebCore::MediaKeySession::MediaKeySession):
+        (WebCore::MediaKeySession::sessionId):
+        (WebCore::MediaKeySession::expiration):
+        (WebCore::MediaKeySession::keyStatuses):
+        (WebCore::MediaKeySession::generateRequest):
+        (WebCore::MediaKeySession::load):
+        (WebCore::MediaKeySession::update):
+        (WebCore::MediaKeySession::close):
+        (WebCore::MediaKeySession::remove):
+        (WebCore::MediaKeySession::hasPendingActivity):
+        (WebCore::MediaKeySession::activeDOMObjectName):
+        (WebCore::MediaKeySession::canSuspendForDocumentSuspension):
+        (WebCore::MediaKeySession::stop):
+        * Modules/encryptedmedia/MediaKeySession.h: Added.
+        * Modules/encryptedmedia/MediaKeySession.idl: Added.
+        * Modules/encryptedmedia/MediaKeySessionType.h: Added.
+        * Modules/encryptedmedia/MediaKeyStatus.h: Added.
+        * Modules/encryptedmedia/MediaKeyStatusMap.cpp: Added.
+        (WebCore::MediaKeyStatusMap::size):
+        (WebCore::MediaKeyStatusMap::has):
+        (WebCore::MediaKeyStatusMap::get):
+        (WebCore::MediaKeyStatusMap::Iterator::Iterator):
+        (WebCore::MediaKeyStatusMap::Iterator::next):
+        * Modules/encryptedmedia/MediaKeyStatusMap.h: Added.
+        (WebCore::MediaKeyStatusMap::create):
+        (WebCore::MediaKeyStatusMap::createIterator):
+        * Modules/encryptedmedia/MediaKeyStatusMap.idl: Added.
+        * Modules/encryptedmedia/MediaKeySystemAccess.cpp: Added.
+        (WebCore::MediaKeySystemAccess::keySystem):
+        (WebCore::MediaKeySystemAccess::getConfiguration):
+        (WebCore::MediaKeySystemAccess::createMediaKeys):
+        * Modules/encryptedmedia/MediaKeySystemAccess.h: Added.
+        (WebCore::MediaKeySystemAccess::create):
+        * Modules/encryptedmedia/MediaKeySystemAccess.idl: Added.
+        * Modules/encryptedmedia/MediaKeySystemConfiguration.h: Added.
+        * Modules/encryptedmedia/MediaKeySystemConfiguration.idl: Added.
+        * Modules/encryptedmedia/MediaKeySystemMediaCapability.h: Added.
+        * Modules/encryptedmedia/MediaKeySystemMediaCapability.idl: Added.
+        * Modules/encryptedmedia/MediaKeys.cpp: Added.
+        (WebCore::MediaKeys::createSession):
+        (WebCore::MediaKeys::setServerCertificate):
+        * Modules/encryptedmedia/MediaKeys.h: Added.
+        (WebCore::MediaKeys::create):
+        * Modules/encryptedmedia/MediaKeys.idl: Added.
+        * Modules/encryptedmedia/MediaKeysRequirement.h: Added.
+        * Modules/encryptedmedia/NavigatorEME.cpp: Added.
+        (WebCore::NavigatorEME::requestMediaKeySystemAccess):
+        * Modules/encryptedmedia/NavigatorEME.h: Added.
+        * Modules/encryptedmedia/NavigatorEME.idl: Added.
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/BufferSource.h:
+        (WebCore::BufferSource::BufferSource):
+        (WebCore::BufferSource::variant):
+        * bindings/js/JSMediaKeySessionCustom.cpp: Added.
+        (WebCore::JSMediaKeySession::closed):
+        * bindings/js/JSMediaKeySystemAccessCustom.cpp: Added.
+        (WebCore::JSMediaKeySystemAccess::getConfiguration):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GetNativeVectorInnerType):
+        * dom/EventNames.h:
+        * dom/EventNames.in:
+        * dom/EventTargetFactory.in:
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaKeys):
+        (WebCore::HTMLMediaElement::setMediaKeys):
+        * html/HTMLMediaElement.h:
+        * html/HTMLMediaElement.idl:
+        * html/MediaEncryptedEvent.cpp: Added.
+        (WebCore::MediaEncryptedEvent::MediaEncryptedEvent):
+        (WebCore::MediaEncryptedEvent::eventInterface):
+        (WebCore::MediaEncryptedEvent::initDataType):
+        (WebCore::MediaEncryptedEvent::initData):
+        * html/MediaEncryptedEvent.h: Added.
+        * html/MediaEncryptedEvent.idl: Added.
+        * html/MediaEncryptedEventInit.h: Added.
+        (WebCore::MediaEncryptedEventInit::MediaEncryptedEventInit):
+
+2016-11-10  Antoine Quint  <graouts@apple.com>
+
+        [Modern Media Controls] Media Controller: update controls based on fullscreen playback on macOS
+        https://bugs.webkit.org/show_bug.cgi?id=164554
+        <rdar://problem/29183439>
+
+        Reviewed by Dean Jackson.
+
+        When toggling fullscreen on macOS, toggle between MacOSInlineMediaControls and MacOSFullscreenMediaControls.
+        To facilitate this, support objects are created and destroyed when changing the controls in order for the
+        right control objects to be hooked up to the media controller. A new destroy() method on MediaControllerSupport
+        subclasses can be overridden to remove event listeners added by support objects in their constructor.
+
+        Test: media/modern-media-controls/media-controller/media-controller-fullscreen-change.html
+
+        * Modules/modern-media-controls/media/fullscreen-support.js:
+        (FullscreenSupport.prototype.destroy):
+        * Modules/modern-media-controls/media/media-controller-support.js:
+        (MediaControllerSupport.prototype.destroy):
+        * Modules/modern-media-controls/media/media-controller.js:
+        (MediaController):
+        (MediaController.prototype.get layoutTraits):
+        (MediaController.prototype.handleEvent):
+        (MediaController.prototype._updateControlsIfNeeded):
+        (MediaController.prototype._controlsClass):
+
+2016-11-10  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [Linux] Memory values shown by memory pressure handler logger are not useful
+        https://bugs.webkit.org/show_bug.cgi?id=164589
+
+        Reviewed by Michael Catanzaro.
+
+        We are currently using the VmSize field from /proc/self/status which is the virtual memory size of the process
+        and doesn't normally change even when the memory pressure handler manages to release memory. So, most of the
+        time we see that there's no changes in memory usage in the logs.
+        We should use the actual memory used by the process, memory that the process can release and then it's relevant
+        for the memory pressure handler. Using other fields from /proc/self/status we could do something like VmRSS -
+        (RssFile + RssShme), but there's also /proc/self/statm that provides the same information in a single. The main
+        different is that statm provides both resident and shared memory directly, but in number of pages, so we need to
+        multiply by the size of the page.
+        This patch adds a method to parse /proc/self/statm in its given file, because I plan to use this for the linux
+        memory sampler that is incorrectly parsing /proc/self/statm.
+
+        * platform/Linux.cmake: Add new files to compilation.
+        * platform/linux/CurrentProcessMemoryStatus.cpp: Added.
+        (WebCore::systemPageSize): Return the page size.
+        (WebCore::currentProcessMemoryStatus): Parse /proc/self/statm and fill the given ProcessMemoryStatus.
+        * platform/linux/CurrentProcessMemoryStatus.h: Added.
+        * platform/linux/MemoryPressureHandlerLinux.cpp:
+        (WebCore::MemoryPressureHandler::processMemoryUsage(): Helper function to return the memory used by the process
+        in bytes.
+        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage): Use processMemoryUsage().
+
+2016-10-14  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        MemoryPressureHandler shouldn't know how to release WebCore memory
+        https://bugs.webkit.org/show_bug.cgi?id=160497
+
+        Reviewed by Michael Catanzaro.
+
+        All processes should set their own low memory handler, instead of leaving the web process using the default one
+        that needs to access APIs that are not in platform layer. This patch fixes all the layering violations in the
+        MemoryPressureHandler. Since the default implementation, that releases the WebCore memory, is shared by the
+        WebProcess in WebKit2 and WebKit1 ports, it has been moved to its own file to the WebCore layer.
+
+        * CMakeLists.txt: Add new files to compilation.
+        * PlatformMac.cmake: Ditto.
+        * WebCore.xcodeproj/project.pbxproj: Ditto.
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::commitProvisionalLoad): Use WebCore::jettisonExpensiveObjectsOnTopLevelNavigation().
+        * page/MemoryRelease.cpp: Added.
+        (WebCore::releaseNoncriticalMemory):
+        (WebCore::releaseCriticalMemory):
+        (WebCore::releaseMemory):
+        (WebCore::platformReleaseMemory):
+        (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):
+        (WebCore::registerMemoryReleaseNotifyCallbacks):
+        * page/MemoryRelease.h: Added.
+        * page/cocoa/MemoryReleaseCocoa.mm: Added.
+        (WebCore::platformReleaseMemory):
+        (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):
+        (WebCore::registerMemoryReleaseNotifyCallbacks):
+        * platform/MemoryPressureHandler.cpp:
+        (WebCore::MemoryPressureHandler::MemoryPressureHandler):
+        (WebCore::MemoryPressureHandler::beginSimulatedMemoryPressure):
+        (WebCore::MemoryPressureHandler::releaseMemory): Use the current handler if it has been set.
+        (WebCore::MemoryPressureHandler::platformReleaseMemory): Deleted.
+        * platform/MemoryPressureHandler.h:
+        (WebCore::MemoryPressureHandler::setLowMemoryHandler):
+        (WebCore::MemoryPressureHandler::m_releaseMemoryBlock):
+        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
+        (WebCore::MemoryPressureHandler::respondToMemoryPressure): Call releaseMemory() instead of using the handler directly.
+        (WebCore::MemoryPressureHandler::platformReleaseMemory): Deleted.
+        * platform/linux/MemoryPressureHandlerLinux.cpp:
+        * platform/win/MemoryPressureHandlerWin.cpp:
+        (WebCore::MemoryPressureHandler::respondToMemoryPressure): Call releaseMemory() instead of using the handler directly.
+
+2016-11-08  Sergio Villar Senin  <svillar@igalia.com>
+
+        [css-grid] Fix fr tracks sizing under min|max-size constraints
+        https://bugs.webkit.org/show_bug.cgi?id=150674
+
+        Reviewed by Darin Adler.
+
+        The min|max-sizes must be used to compute the flex fraction for indefinite free
+        spaces. According to the spec "If using this flex fraction would cause the grid to be
+        smaller than the grid container’s min-width/height (or larger than the grid container’s
+        max-width/height), then redo this step, treating the free space as definite and the
+        available grid space as equal to the grid container’s content box size when it’s sized to
+        its min-width/height (max-width/height)."
+
+        This only affects indefinite heights because during layout both definite sizes and any kind
+        of widths are properly constrained by min|max-width restrictions.
+
+        Tests: fast/css-grid-layout/flex-sizing-columns-min-max-width.html
+               fast/css-grid-layout/flex-sizing-rows-min-max-height.html
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
+        (WebCore::RenderGrid::computeFlexSizedTracksGrowth):
+        * rendering/RenderGrid.h:
+
+2016-11-10  Alejandro G. Castro  <alex@igalia.com>
+
+        [WebRTC] [OpenWebRTC] RTX default parameters broken after r207952
+        https://bugs.webkit.org/show_bug.cgi?id=164541
+
+        Reviewed by Philippe Normand.
+
+        Fixed typo in refactoring.
+
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+        (WebCore::MediaEndpointOwr::getDefaultVideoPayloads):
+
+2016-11-08  Philippe Normand  <pnormand@igalia.com>
+
+        [WebRTC] white-list turns urls from the RTCConfiguration
+        https://bugs.webkit.org/show_bug.cgi?id=164506
+
+        Reviewed by Alejandro G. Castro.
+
+        * Modules/mediastream/RTCConfiguration.cpp:
+        (WebCore::validateIceServerURL): Add the turns URL scheme to the
+        list of supported relay and signaling server protocols.
+
+2016-11-09  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: DebuggerManager.Event.Resumed introduces test flakiness
+        https://bugs.webkit.org/show_bug.cgi?id=161951
+        <rdar://problem/28295767>
+
+        Reviewed by Brian Burg.
+
+        Covered by existing tests that would ASSERT otherwise.
+
+        * inspector/InspectorClient.cpp:
+        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
+        When paused on an exception in the inspected page and evaluating
+        commands in the inspector frontend page (which evaluates JavaScript)
+        we ASSERT when entering the Global DOM VM with an existing exception.
+        This makes it so when we evaluate JavaScript in the frontend we
+        suspend / ignore the state of the VM for the inspected page, and
+        restore it when we return from the inspector.
+
+2016-11-09  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Associate Worker Resources with the Worker and not the Page
+        https://bugs.webkit.org/show_bug.cgi?id=164342
+        <rdar://problem/29075775>
+
+        Reviewed by Timothy Hatcher.
+
+        Test: inspector/worker/resources-in-worker.html
+
+        Provide a way to associate an initiator identifier with a ResourceRequest.
+        This will allow Web Inspector to identify who started particular resource
+        loads. This is important to associate Worker(...), importScript(...), and
+        XMLHttpRequest / Fetch loads with that specific Worker.
+
+        * platform/network/ResourceRequestBase.cpp:
+        (WebCore::ResourceRequestBase::setAsIsolatedCopy):
+        * platform/network/ResourceRequestBase.h:
+        (WebCore::ResourceRequestBase::initiatorIdentifier):
+        (WebCore::ResourceRequestBase::setInitiatorIdentifier):
+        Optional initiator identifier. Currently used only be Web Inspector.
+
+        * dom/ScriptExecutionContext.h:
+        (WebCore::ScriptExecutionContext::resourceRequestIdentifier):
+        Non-page execution contexts, like WorkerGlobalScope, should provide
+        a unique identifier that may be used to distinguish loads initiated
+        from within that context.
+
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::createRequest):
+        * Modules/fetch/FetchLoader.cpp:
+        (WebCore::FetchLoader::start):
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::FetchRequest::initializeWith):
+        XHR / Fetch loads should include the ScriptExecutionContext's
+        initiator identifier.
+
+        * workers/WorkerScriptLoader.cpp:
+        (WebCore::WorkerScriptLoader::WorkerScriptLoader):
+        (WebCore::WorkerScriptLoader::loadSynchronously):
+        (WebCore::WorkerScriptLoader::loadAsynchronously):
+        (WebCore::WorkerScriptLoader::createResourceRequest):
+        * workers/WorkerScriptLoader.h:
+        Provide a way to provide initiator identifier information for
+        Worker script loads. Currently this is `new Worker(...)` and
+        `importScripts(...)` resource loads.
+
+        * workers/Worker.cpp:
+        (WebCore::Worker::Worker):
+        (WebCore::Worker::create):
+        * workers/Worker.h:
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+        (WebCore::WorkerGlobalScope::importScripts):
+        * workers/WorkerGlobalScope.h:
+        Give Worker itself the unique identifier, because `new Worker(...)`
+        loads happen before the WorkerGlobalScript (ScriptExecutionContext)
+        is actually created, but we want to associate it with this Worker.
+
+        * workers/DedicatedWorkerGlobalScope.cpp:
+        (WebCore::DedicatedWorkerGlobalScope::create):
+        (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
+        * workers/DedicatedWorkerGlobalScope.h:
+        * workers/DedicatedWorkerThread.cpp:
+        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
+        (WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
+        * workers/DedicatedWorkerThread.h:
+        * workers/WorkerInspectorProxy.cpp:
+        (WebCore::WorkerInspectorProxy::WorkerInspectorProxy):
+        * workers/WorkerInspectorProxy.h:
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
+        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
+        (WebCore::WorkerThread::WorkerThread):
+        (WebCore::WorkerThread::workerThread):
+        * workers/WorkerThread.h:
+        Pass the MainThread's Worker identifier through to the WorkerGlobalScope
+        created on the WorkerThread. They should be the same identifier.
+
+        * inspector/InspectorNetworkAgent.cpp:
+        (WebCore::InspectorNetworkAgent::willSendRequest):
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
+        Pass the initiator identifier data to the frontend. This identifier is
+        equivalent to a "target identifier" in the frontend. Currently the only
+        non-Page targets are Workers.
+
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
+        When using the memory cache we create a new resource request. Be sure
+        to copy over useful inspector data, like the initiator identifier,
+        from the original request.
+
+        * platform/network/cf/ResourceRequestCFNet.cpp:
+        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
+        When rebuilding a ResourceRequest from NSURLRequest, copy over the
+        initiator identifier property that wouldn't otherwise have survived
+        the transition.
+
+2016-11-09  Brady Eidson  <beidson@apple.com>
+
+        IndexedDB 2.0: Clean up some exception ordering.
+        https://bugs.webkit.org/show_bug.cgi?id=164566
+
+        Reviewed by Alex Christensen.
+
+        No new tests (Covered by existing tests).
+
+        * Modules/indexeddb/IDBCursor.cpp:
+        (WebCore::IDBCursor::advance):
+        (WebCore::IDBCursor::continueFunction):
+
+        * Modules/indexeddb/IDBObjectStore.cpp:
+        (WebCore::IDBObjectStore::createIndex):
+
+2016-11-09  Alex Christensen  <achristensen@webkit.org>
+
+        Unreviewed, rolling out r208438.
+
+        crashes
+
+        Reverted changeset:
+
+        "[WK2][NETWORK_SESSION] Add support for downloading file
+        backed blobs"
+        https://bugs.webkit.org/show_bug.cgi?id=164458
+        http://trac.webkit.org/changeset/208438
+
+2016-11-09  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        Change the decoding for some animated images to be asynchronous
+        https://bugs.webkit.org/show_bug.cgi?id=161566
+
+        Reviewed by Simon Fraser.
+
+        Tests: fast/images/slower-animation-than-decoding-image.html
+               fast/images/slower-decoding-than-animation-image.html
+               fast/images/stopped-animation-deleted-image.html
+               
+        Request the next frame before firing the animation timer. The asynchronous
+        image decoding work queue notifies the BitmapImage when the frame finishes
+        decoding. If the timer fires before the frame is decoded, no repaint will
+        be requested. Only when the image frame is ready, the animation will be
+        advanced and the image will be repainted.
+
+        * loader/cache/CachedImage.cpp:
+        (WebCore::CachedImage::load): Cache the image settings in CachedImage.
+        (WebCore::CachedImage::createImage): No need to pass allowSubsampling to BitmapImage. It can be retrieved through Image::imageObserver().
+        (WebCore::CachedImage::changedInRect): Change the parameter to notifyObservers() to be a pointer.
+        * loader/cache/CachedImage.h: Cache the settings: allowSubsampling, allowAsyncImageDecoding and showDebugBackground through m_loader.
+        * platform/graphics/BitmapImage.cpp:
+        (WebCore::BitmapImage::dataChanged): Fix a logging message.
+        (WebCore::BitmapImage::draw): Store the current SubsamplingLevel to be used when requesting decoding the image of the next frame.
+        Draw a debug rectangle if the next frame is missed because it is being decoded and the setting showDebugBackground is on.
+        (WebCore::BitmapImage::startAnimation): Deleted. Moved to the header file.
+        (WebCore::BitmapImage::internalStartAnimation): Added. Request asynchronous image decoding for the next frame if required. Return the
+        result of starting the animation.
+        (WebCore::BitmapImage::advanceAnimation): Call internalAdvanceAnimation() if the frame image is not being decoded. If it is being decoded
+        and the setting showDebugBackground is on, force repaint so the debug rectangle is drawn.
+        (WebCore::BitmapImage::internalAdvanceAnimation): This is the old body of advanceAnimation().
+        (WebCore::BitmapImage::stopAnimation): Stop the asynchronous image decoding if it is started.
+        (WebCore::BitmapImage::newFrameNativeImageAvailableAtIndex): This function is called from the async image decoding work queue when finishing decoding a native image frame.
+        * platform/graphics/BitmapImage.h:
+        (WebCore::BitmapImage::startAnimation): Added. It is now calls internalStartAnimation().
+        * platform/graphics/Color.h: Define a constant for the yellow color.
+        * platform/graphics/ImageFrameCache.cpp:
+        (WebCore::ImageFrameCache::clearMetadata): Delete unreferenced member.
+        (WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex): Return true if the frame is requested for async decoding.
+        * platform/graphics/ImageFrameCache.h:
+        * platform/graphics/ImageObserver.h:  Add virtual functions for allowSubsampling, allowAsyncImageDecoding and showDebugBackground.
+        * platform/graphics/ImageSource.cpp:
+        (WebCore::ImageSource::maximumSubsamplingLevel): Move checking allowSubsampling() to the caller BitmapImage::draw().
+        * platform/graphics/ImageSource.h: Remove the setting allowSubsampling(); it can be retrieved from imageObserver().
+        (WebCore::ImageSource::setAllowSubsampling): Deleted.
+        * rendering/RenderImageResource.cpp:
+        (WebCore::RenderImageResource::shutdown): Stop the animation of an image when shutting down the resource.
+        * rendering/RenderImageResourceStyleImage.cpp:
+        (WebCore::RenderImageResourceStyleImage::shutdown): Ditto.
+        svg/graphics/SVGImageClients.h: Change the parameter to ImageObserver::changedInRect() to be a pointer.
+        (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
+        * testing/Internals.cpp:
+        (WebCore::Internals::setImageFrameDecodingDuration): Sets a fixed frame decoding duration for testing.
+        * testing/Internals.h:
+        * testing/Internals.idl: Adds an internal option for ImageFrameDecodingDuration.
+
+2016-11-04  Brent Fulgham  <bfulgham@apple.com>
+
+        Local HTML should be blocked from localStorage access unless "Disable Local File Restrictions" is checked
+        https://bugs.webkit.org/show_bug.cgi?id=155185
+        <rdar://problem/11101440>
+
+        Reviewed by Brady Eidson.
+
+        Add a new quirk for localStorage that defaults to 'on'. When active, this quirk says that
+        localStorage access should be granted, without needing to grant universal file access.
+
+        If the quirk is turned off, then localStorage is blocked unless the WebKit client explicitly
+        grants universal file access.
+
+        Tests: storage/domstorage/localstorage/blocked-file-access-permitted-by-quirk.html
+               storage/domstorage/localstorage/blocked-file-access.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::initSecurityContext): Set localStorage quirk mode based on settings.
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::SecurityOrigin): Use more C++11 initializers.
+        (WebCore::SecurityOrigin::canAccessStorage): If the origin is a local file, and we are NOT in
+        localStorage quirks mode, and we have not been granted universal file access, prevent access
+        to DOM localStorage.
+        (WebCore::SecurityOrigin::setNeedsLocalStorageQuirk): Added.
+        * page/SecurityOrigin.h:
+        (WebCore::SecurityOrigin::needsLocalStorageQuirk): Added.
+        * page/Settings.in:
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::WorkerGlobalScope): Make sure Workers know what the
+        localStorage quirks mode is set to.
+
+2016-11-09  Alex Christensen  <achristensen@webkit.org>
+
+        URLParser should not consider path of URLs with no host to start at the first slash after the colon
+        https://bugs.webkit.org/show_bug.cgi?id=164555
+
+        Reviewed by Tim Horton.
+
+        When we see a url that is only scheme:// we treated the // as the path.  Firefox did this with unrecognized schemes,
+        but based on https://github.com/whatwg/url/issues/148 they seem willing to change.  We had added similar behavior to
+        URL::parse, and I added this to URLParser in r206783 which this effectively reverts.
+
+        Covered by API and layout tests.
+
+        * platform/URLParser.cpp:
+        (WebCore::URLParser::parse):
+        Don't move m_userStart to m_pathStart back by two when we see an empty host.
+
+2016-11-09  Alex Christensen  <achristensen@webkit.org>
+
+        Simplify logic of SecurityOrigin::databaseIdentifier
+        https://bugs.webkit.org/show_bug.cgi?id=164565
+
+        Reviewed by Brady Eidson.
+
+        No change in behavior.
+
+        SecurityOrigins with the file scheme need a special database identifier to be backwards-compatible with existing storage.
+        Instead of determining whether this is a file SecurityOrigin at parsing time and only using that information when
+        making the database identifier, just determine whether we need this quirk when making the database identifier.
+        I'm planning to move this logic to SecurityOriginData in another patch.
+
+        * page/SecurityOrigin.cpp:
+        (WebCore::SecurityOrigin::SecurityOrigin):
+        (WebCore::SecurityOrigin::create):
+        (WebCore::SecurityOrigin::databaseIdentifier):
+        * page/SecurityOrigin.h:
+
+2016-11-09  Jaehun Lim  <ljaehun.lim@samsung.com>
+
+        Unreviewed, build fix after r208460
+
+        isValidColorString() was renamed isValidSimpleColorString().
+
+        * html/ColorInputType.cpp:
+        (WebCore::ColorInputType::suggestions):
+
+2016-11-09  Anders Carlsson  <andersca@apple.com>
+
+        Fix STP build.
+
+        * WebCorePrefix.h:
+
 2016-11-09  Simon Fraser  <simon.fraser@apple.com>
 
         Implement visual-viewport based position:fixed handling for Mac async scrolling