Fix miscellaneous build warnings
[WebKit-https.git] / Source / WebCore / ChangeLog
index c2f7c68..d6f7a00 100644 (file)
+2019-06-04  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Fix miscellaneous build warnings
+        https://bugs.webkit.org/show_bug.cgi?id=198544
+
+        Reviewed by Don Olmstead.
+
+        Carefully silence -Wsign-compare warnings.
+
+        * contentextensions/DFABytecodeCompiler.cpp:
+        (WebCore::ContentExtensions::DFABytecodeCompiler::compile):
+        * inspector/InspectorCanvas.cpp:
+        (WebCore::InspectorCanvas::indexForData):
+        * xml/XSLStyleSheetLibxslt.cpp:
+        (WebCore::XSLStyleSheet::parseString):
+
+2019-06-04  Keith Rollin  <krollin@apple.com>
+
+        Fix 64-bit vs 32-bit mismatch in ISOFairPlayStreamingPsshBox.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=198539
+        <rdar://problem/51410358>
+
+        Reviewed by Alex Christensen.
+
+        Both ISOFairPlayStreamingKeyAssetIdBox and
+        ISOFairPlayStreamingKeyContextBox have Vector<> data members. The
+        parse() members of these classes call Vector<>::resize() on these
+        members. In both cases, the type of the parameter passed is a
+        uint64_t. However, resize() takes a size_t. On some platforms, size_t
+        is a 32-bit value, leading to a compile-time type mismatch error. Fix
+        this by changing the type of the value passed to parse() into a
+        size_t.
+
+        No new tests -- no new functionality.
+
+        * platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp:
+        (WebCore::ISOFairPlayStreamingKeyAssetIdBox::parse):
+        (WebCore::ISOFairPlayStreamingKeyContextBox::parse):
+
+2019-06-04  Keith Rollin  <krollin@apple.com>
+
+        Fix 64-bit vs 32-bit mismatch in TileController.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=198540
+        <rdar://problem/51410851>
+
+        Reviewed by Alex Christensen.
+
+        TileController::blankPixelCountForTiles calculates its result as a
+        uint64_t, but returns it as an unsigned. The former is a 64-bit value,
+        while the latter can be a 32-bit value on some platforms. This
+        mismatch can lead to a compile-time error. Fix this by explicitly
+        casting the 64-bit value to an "unsigned".
+
+        No new tests -- no new functionality.
+
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::blankPixelCountForTiles):
+
+2019-06-04  Chris Dumez  <cdumez@apple.com>
+
+        Crash when calling XMLHttpRequest.setRequestHeader() in a worker
+        https://bugs.webkit.org/show_bug.cgi?id=198534
+        <rdar://problem/51393912>
+
+        Reviewed by Alex Christensen.
+
+        Make sure the script execution context is a Document because calling document()
+        to get the settings.
+
+        Test: fast/workers/worker-xhr-setRequestHeader.html
+
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::setRequestHeader):
+
+2019-06-04  Antti Koivisto  <antti@apple.com>
+
+        Sticky positioning is jumpy in many overflow cases
+        https://bugs.webkit.org/show_bug.cgi?id=198532
+        <rdar://problem/51400532>
+
+        Reviewed by Simon Fraser.
+
+        Tests: scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-1.html
+               scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-2.html
+               scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-1.html
+               scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-2.html
+               scrollingcoordinator/ios/sticky-overflow-stacking-context-no-stick.html
+               scrollingcoordinator/ios/sticky-overflow-stacking-context-stick.html
+
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::notifyRelatedNodesAfterScrollPositionChange):
+        (WebCore::ScrollingTree::notifyRelatedNodesRecursive):
+
+        Simplify for relatedNodeScrollPositionDidChange removal.
+
+        * page/scrolling/ScrollingTree.h:
+        * page/scrolling/ScrollingTreeNode.cpp:
+        (WebCore::ScrollingTreeNode::relatedNodeScrollPositionDidChange): Deleted.
+        * page/scrolling/ScrollingTreeNode.h:
+        * page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
+        (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
+        * page/scrolling/cocoa/ScrollingTreePositionedNode.h:
+        * page/scrolling/cocoa/ScrollingTreePositionedNode.mm:
+        (WebCore::ScrollingTreePositionedNode::scrollOffsetSinceLastCommit const):
+
+        Factor into a function.
+
+        (WebCore::ScrollingTreePositionedNode::applyLayerPositions):
+        (WebCore::ScrollingTreePositionedNode::relatedNodeScrollPositionDidChange): Deleted.
+
+        We can't bail out based on changed node as that makes us compute different positions based on what the change root is.
+        Since all relatedNodeScrollPositionDidChange functions now always simply call applyLayerPositions we can remove the whole thing.
+
+        * page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
+        (WebCore::ScrollingTreeStickyNode::applyLayerPositions):
+
+        Implement taking into account that the containing scroller may not be our ancestor.
+
+2019-06-04  Takashi Komori  <Takashi.Komori@sony.com>
+
+        [WinCairo] Implement cpu and memory measuring functions.
+        https://bugs.webkit.org/show_bug.cgi?id=198466
+
+        Reviewed by Don Olmstead.
+
+        Tests: inspector/memory/tracking.html
+               inspector/cpu-profiler/tracking.html
+
+        * PlatformWinCairo.cmake:
+        * page/ResourceUsageThread.h:
+        * page/win/ResourceUsageOverlayWin.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp.
+        (WebCore::ResourceUsageOverlay::platformInitialize):
+        (WebCore::ResourceUsageOverlay::platformDestroy):
+        * page/win/ResourceUsageThreadWin.cpp: Added.
+        (WebCore::ResourceUsageThread::platformSaveStateBeforeStarting):
+        (WebCore::fileTimeToUint64):
+        (WebCore::getCurrentCpuTime):
+        (WebCore::cpuUsage):
+        (WebCore::memoryUsage):
+        (WebCore::ResourceUsageThread::platformCollectCPUData):
+        (WebCore::ResourceUsageThread::platformCollectMemoryData):
+
+2019-06-04  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events] Only allow pointer capture if the pointer is in the active buttons state
+        https://bugs.webkit.org/show_bug.cgi?id=198479
+
+        Reviewed by Dean Jackson.
+
+        The Pointer Events specification says that pointer capture can only be engaged provided the pointer is
+        in the active buttons state, which means that it has dispatched a "pointerdown" event more recently than
+        it has a "pointerup" event.
+
+        This is tested by web-platform-tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html.
+
+        That test showed a few issues that this patch addresses. First, we would update the pointerIsPressed state to
+        "true" only after a "pointerdown" event had been dispatched. This is incorrect since setPointerCapture() can,
+        and is likely to, be called during handling of a "pointerdown" event. So we now call pointerEventWillBeDispatched()
+        prior to dispatching a PointerEvent with a mouse type, which we only did previously for a PointerEvent with a
+        touch or pen type. If the event is "pointerdown", we set "pointerIsPressed" to true on the CapturingData object
+        matching the given pointer, and to false if the event is "pointerup".
+
+        Finally, we must also ensure that "pointerIsPressed" is set to true when creating CapturingData for a PointerEvent
+        with a touch or pen type since these types of pointer events implictly set capture.
+
+        * page/PointerCaptureController.cpp:
+        (WebCore::PointerCaptureController::setPointerCapture):
+        (WebCore::PointerCaptureController::dispatchEvent):
+        (WebCore::PointerCaptureController::pointerEventWillBeDispatched):
+        (WebCore::PointerCaptureController::pointerEventWasDispatched):
+
+2019-06-04  Keith Rollin  <krollin@apple.com>
+
+        Fix 32-bit/64-bit mismatch in PointerCaptureController::elementWasRemoved
+        https://bugs.webkit.org/show_bug.cgi?id=198501
+        <rdar://problem/51370464>
+
+        Reviewed by Chris Dumez.
+
+        keyAndValue.key is assigned to pointerId. KeyAndValue.key is a
+        int64_t, whereas pointerId is a PointerID, aka int32_t. This mismatch
+        is normally just a warning, but breaks builds where warnings are
+        treated as errors.
+
+        This issue is not encountered in most builds because the warning is
+        disabled in the majority of build configurations. But there are some
+        where the warning is not disabled, and so those builds break.
+
+        Address this conversion error/warning by explicitly casting
+        keyAndValue.key to a PointerID (and adding a debug check to make sure
+        the cast is OK).
+
+        No new tests -- no new functionality.
+
+        * page/PointerCaptureController.cpp:
+        (WebCore::PointerCaptureController::elementWasRemoved):
+
+2019-06-02  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events] Expose navigator.maxTouchPoints
+        https://bugs.webkit.org/show_bug.cgi?id=198468
+        <rdar://problem/51273029>
+
+        Reviewed by Chris Dumez.
+
+        Expose the navigator.maxTouchPoints property when Pointer Events are enabled both at compile-time and run-time.
+        We return a canned value for this on iOS touch-enabled devices that matches the number of simultaneous touches
+        supported by the system, which is 5. In fact, iPad support more simultaneous touches, but it doesn't seem worthy
+        to expose this level of granularity due to fingerprinting practices. In practice, what really matters is returning
+        0, 1 or more than 1 for this value to identify multi-touch support.
+
+        Test: js/dom/navigator-maxtouchpoints.html
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/NavigatorMaxTouchPoints.idl: Added.
+        * page/Navigator.idl:
+        * page/Navigator.h:
+        (WebCore::Navigator::maxTouchPoints const):
+
+2019-06-04  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Decouple float placement and line shrinking
+        https://bugs.webkit.org/show_bug.cgi?id=198528
+        <rdar://problem/51397638>
+
+        Reviewed by Antti Koivisto.
+
+        In LineLayout::placeInlineItems() float handling should be only about shrinking the current line, the actual
+        float placement should happen later when we construct the the display boxes/runs. It enables the preferred width
+        computation to call placeInlineItems() to gather line widths without accidentally mutating the layout context. 
+
+        * layout/inlineformatting/InlineFormattingContext.h:
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::handleFloat const): Deleted.
+        * layout/inlineformatting/InlineItem.h:
+
+2019-06-04  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Add hard line break handling to LineBreaker
+        https://bugs.webkit.org/show_bug.cgi?id=198503
+        <rdar://problem/51373482>
+
+        Reviewed by Antti Koivisto.
+
+        LineBreaker should simply return BreakingContext::Keep with the breaking opportunity of yes.
+
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
+        * layout/inlineformatting/InlineLineBreaker.cpp:
+        (WebCore::Layout::LineBreaker::breakingContext):
+        (WebCore::Layout::LineBreaker::wordBreakingBehavior const):
+        (WebCore::Layout::LineBreaker::isAtBreakingOpportunity):
+        * layout/inlineformatting/InlineLineBreaker.h:
+
+2019-06-04  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Remove InlineItem::width
+        https://bugs.webkit.org/show_bug.cgi?id=198502
+        <rdar://problem/51371744>
+
+        Reviewed by Antti Koivisto.
+
+        InlineItems are supposd to work across subsequent layouts (and in preferred width computation as well) so they should
+        not hold on to layout information (run width). This would not work with split runs either.
+
+        * layout/inlineformatting/InlineFormattingContext.h:
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::UncommittedContent::runs):
+        (WebCore::Layout::UncommittedContent::isEmpty const):
+        (WebCore::Layout::UncommittedContent::size const):
+        (WebCore::Layout::UncommittedContent::add):
+        (WebCore::Layout::UncommittedContent::reset):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
+        (): Deleted.
+        (WebCore::Layout::InlineFormattingContext::LineLayout::commitInlineItemToLine const): Deleted.
+        * layout/inlineformatting/InlineItem.h:
+        (WebCore::Layout::InlineItem::style const):
+        (): Deleted.
+        (WebCore::Layout::InlineItem::setWidth): Deleted.
+        (WebCore::Layout::InlineItem::width const): Deleted.
+
+2019-06-04  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Move run width measuring out of LineBreaker
+        https://bugs.webkit.org/show_bug.cgi?id=198491
+        <rdar://problem/51363554>
+
+        Reviewed by Antti Koivisto.
+
+        LineBreaker should not need to deal with measuring runs.
+        This is also in preparation for removing InlineItem::width().
+
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::inlineItemWidth):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const):
+        * layout/inlineformatting/InlineLineBreaker.cpp:
+        (WebCore::Layout::LineBreaker::breakingContext):
+        (WebCore::Layout::LineBreaker::LineBreaker): Deleted.
+        (WebCore::Layout::LineBreaker::runWidth const): Deleted.
+        (WebCore::Layout::LineBreaker::textWidth const): Deleted.
+        * layout/inlineformatting/InlineLineBreaker.h:
+
+2019-06-04  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Remove redundant InlineItem::width() calls.
+        https://bugs.webkit.org/show_bug.cgi?id=198489
+        <rdar://problem/51360390>
+
+        Reviewed by Antti Koivisto.
+
+        This is in preparation for removing InlineItem::width().
+
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::handleFloat const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::commitInlineItemToLine const):
+        * layout/inlineformatting/InlineLine.cpp:
+        (WebCore::Layout::Line::appendNonBreakableSpace):
+        (WebCore::Layout::Line::appendInlineContainerStart):
+        (WebCore::Layout::Line::appendInlineContainerEnd):
+        * layout/inlineformatting/InlineLine.h:
+
+2019-06-04  Antoine Quint  <graouts@apple.com>
+
+        The "mouseenter" and "pointerenter" events are fired from the bottom up
+        https://bugs.webkit.org/show_bug.cgi?id=198036
+        <rdar://problem/50940350>
+
+        Reviewed by Darin Adler.
+
+        Ensure "mouseenter" and "pointerenter" events are dispatched from the bottom up to match the UI Events spec
+        at https://w3c.github.io/uievents/#events-mouseevent-event-order. We also fix the issue where "pointerevent"
+        and "pointerleave" events were dispatched as bubbling events on iOS which is not correct and was caught by the
+        new iOS test.
+        Tests: pointerevents/ios/enter-leave-order.html
+               pointerevents/mouse/enter-leave-order.html
+
+        * dom/ios/PointerEventIOS.cpp:
+        (WebCore::typeCanBubble):
+        (WebCore::PointerEvent::PointerEvent):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::updateMouseEventTargetNode):
+        * page/PointerCaptureController.cpp:
+        (WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):
+
+2019-06-04  Cathie Chen  <cathiechen@igalia.com>
+
+        JS wrapper of target in ResizeObserverEntry/ResizeObserver shouldn't get collected ahead
+        https://bugs.webkit.org/show_bug.cgi?id=197457
+
+        Reviewed by Ryosuke Niwa.
+
+        Add JSCustomMarkFunction to make sure JS wrappers wouldn't be collected when JSResizeObserverEntry live.
+
+        For ResizeObserver, if targets are removed, it will get fired for the last time. We also need to keep these JS
+        wrappers live. So add these targets to a GCReachableRef list once they're observed.
+
+        Add element-leak.html to test the targets with `entry.target.myEntry = entry` could be released properly.
+
+        Tests: resize-observer/element-leak.html
+               resize-observer/resize-observer-entry-keeps-js-wrapper-of-target-alive.html
+               resize-observer/resize-observer-keeps-js-wrapper-of-target-alive.html
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSResizeObserverEntryCustom.cpp: Added.
+        (WebCore::JSResizeObserverEntry::visitAdditionalChildren):
+        * page/ResizeObserver.cpp:
+        (WebCore::ResizeObserver::observe):
+        (WebCore::ResizeObserver::removeAllTargets):
+        (WebCore::ResizeObserver::removeObservation):
+        (WebCore::ResizeObserver::stop):
+        * page/ResizeObserver.h:
+        * page/ResizeObserverEntry.idl:
+
+2019-06-03  Andy Estes  <aestes@apple.com>
+
+        [Apple Pay] Disable script injection when canMakePayment APIs are called and return true
+        https://bugs.webkit.org/show_bug.cgi?id=198448
+        <rdar://problem/51323694>
+
+        Reviewed by Alex Christensen.
+
+        Previously, only an active Apple Pay session would disable script injection in restricted
+        WKWebViews. However, this can result in websites rendering non-functional Apple Pay buttons
+        due to the race between the hosting app calling -evaluateJavaScript:completionHandler: and
+        the website calling canMakePayment APIs to determine whether to draw a button.
+
+        This patch makes it so that, if a website calls ApplePaySession's canMakePayments or
+        canMakePaymentsWithActiveCard, or PaymentRequest's canMakePayment, in a web view that has no
+        injected scripts, and those calls return true, future script injections from the hosting app
+        will be blocked.
+
+        Also, this patch removes the restrictions on the openPaymentSetup, supportsVersion, and
+        validatedPaymentNetwork APIs, since those APIs do not reveal transaction information and are
+        not used to determine whether to draw buttons.
+
+        Added new API tests.
+
+        * Modules/applepay/PaymentCoordinator.cpp:
+        (WebCore::PaymentCoordinator::supportsVersion const):
+        (WebCore::PaymentCoordinator::canMakePayments):
+        (WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard):
+        (WebCore::PaymentCoordinator::openPaymentSetup):
+        (WebCore::PaymentCoordinator::beginPaymentSession):
+        (WebCore::PaymentCoordinator::validatedPaymentNetwork const):
+        (WebCore::PaymentCoordinator::setApplePayIsActiveIfAllowed const):
+        (WebCore::PaymentCoordinator::shouldAllowUserAgentScripts const):
+        (WebCore::PaymentCoordinator::shouldAllowApplePay const): Deleted.
+        * Modules/applepay/PaymentCoordinator.h:
+        * dom/Document.cpp:
+        (WebCore::Document::isApplePayActive const):
+        (WebCore::Document::setApplePayIsActive):
+        (WebCore::Document::hasStartedApplePaySession const): Deleted.
+        (WebCore::Document::setHasStartedApplePaySession): Deleted.
+        * dom/Document.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setApplePayIsActive):
+        (WebCore::Internals::setHasStartedApplePaySession): Deleted.
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-06-03  Robin Morisset  <rmorisset@apple.com>
+
+        [WHLSL] Parsing and lexing the standard library is slow
+        https://bugs.webkit.org/show_bug.cgi?id=192890
+        <rdar://problem/50746335>
+
+        Reviewed by Myles Maxfield.
+
+        The main idea is to avoid backtracking by instead peeking at the next token (and occasionally at the one after that).
+        This implies a few things:
+        - We can replace the stack of tokens by a trivial ring buffer of size 2 (holding the next token and the one after, or WTF::nullopt if we are at the end of the file).
+        - We now have "completeFooExpression" functions, to avoid having to reparse the prefix of some expression, if we find half-way through what it is.
+
+        I also fixed the following parser bug:
+        - https://bugs.webkit.org/show_bug.cgi?id=198305 [WHLSL] Multiple variables with initializers in a declaration statement crashes the compiler
+            which was due to a mistake I made in the grammar
+
+        Finally I added two new macros: CONSUME_TYPE and PARSE to eliminate about 500 lines of error propagation boilerplate.
+
+        There are still lots of ways of improving the parser and lexer, such as:
+        - finishing the conversion of tokens in the lexer, not bothering with allocating string views
+        - make two special tokens Invalid and EOF, to remove the overhead of Optional
+        - make peekTypes and consumeTypes use templates to avoid constructing a Vector and calling find on it.
+        - Turn the entire lexer into a proper automata, not going through the same characters again and again (this is certainly the largest win by far)
+        - Remove the last few pieces of backtracking from the parser.
+
+        The current patch is already enough to make parsing the full standard library (something like 85k lines) approximately 260ms.
+        This is still longer than I would like, but nowhere near the bottleneck any longer because of some other parts of the compiler.
+
+        * Modules/webgpu/WHLSL/WHLSLLexer.h:
+        (WebCore::WHLSL::Lexer::Lexer):
+        (WebCore::WHLSL::Lexer::consumeToken):
+        (WebCore::WHLSL::Lexer::peek):
+        (WebCore::WHLSL::Lexer::peekFurther):
+        (WebCore::WHLSL::Lexer::state const):
+        (WebCore::WHLSL::Lexer::setState):
+        (WebCore::WHLSL::Lexer::unconsumeToken): Deleted.
+        * Modules/webgpu/WHLSL/WHLSLParser.cpp:
+        (WebCore::WHLSL::Parser::parse):
+        (WebCore::WHLSL::Parser::peek):
+        (WebCore::WHLSL::Parser::peekTypes):
+        (WebCore::WHLSL::Parser::tryType):
+        (WebCore::WHLSL::Parser::tryTypes):
+        (WebCore::WHLSL::Parser::consumeTypes):
+        (WebCore::WHLSL::Parser::parseConstantExpression):
+        (WebCore::WHLSL::Parser::parseTypeArgument):
+        (WebCore::WHLSL::Parser::parseTypeArguments):
+        (WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
+        (WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
+        (WebCore::WHLSL::Parser::parseType):
+        (WebCore::WHLSL::Parser::parseTypeDefinition):
+        (WebCore::WHLSL::Parser::parseResourceSemantic):
+        (WebCore::WHLSL::Parser::parseSpecializationConstantSemantic):
+        (WebCore::WHLSL::Parser::parseStageInOutSemantic):
+        (WebCore::WHLSL::Parser::parseSemantic):
+        (WebCore::WHLSL::Parser::parseQualifiers):
+        (WebCore::WHLSL::Parser::parseStructureElement):
+        (WebCore::WHLSL::Parser::parseStructureDefinition):
+        (WebCore::WHLSL::Parser::parseEnumerationDefinition):
+        (WebCore::WHLSL::Parser::parseEnumerationMember):
+        (WebCore::WHLSL::Parser::parseNativeTypeDeclaration):
+        (WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
+        (WebCore::WHLSL::Parser::parseAttributeBlock):
+        (WebCore::WHLSL::Parser::parseParameter):
+        (WebCore::WHLSL::Parser::parseParameters):
+        (WebCore::WHLSL::Parser::parseFunctionDefinition):
+        (WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseVertexFragmentFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseNativeFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseBlock):
+        (WebCore::WHLSL::Parser::parseBlockBody):
+        (WebCore::WHLSL::Parser::parseIfStatement):
+        (WebCore::WHLSL::Parser::parseSwitchStatement):
+        (WebCore::WHLSL::Parser::parseSwitchCase):
+        (WebCore::WHLSL::Parser::parseForLoop):
+        (WebCore::WHLSL::Parser::parseWhileLoop):
+        (WebCore::WHLSL::Parser::parseDoWhileLoop):
+        (WebCore::WHLSL::Parser::parseVariableDeclaration):
+        (WebCore::WHLSL::Parser::parseVariableDeclarations):
+        (WebCore::WHLSL::Parser::parseStatement):
+        (WebCore::WHLSL::Parser::parseEffectfulExpression):
+        (WebCore::WHLSL::Parser::parseEffectfulAssignment):
+        (WebCore::WHLSL::Parser::parseExpression):
+        (WebCore::WHLSL::Parser::parseTernaryConditional):
+        (WebCore::WHLSL::Parser::completeTernaryConditional):
+        (WebCore::WHLSL::Parser::parseAssignment):
+        (WebCore::WHLSL::Parser::completeAssignment):
+        (WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
+        (WebCore::WHLSL::Parser::parsePossibleLogicalBinaryOperation):
+        (WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation):
+        (WebCore::WHLSL::Parser::parsePossibleRelationalBinaryOperation):
+        (WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation):
+        (WebCore::WHLSL::Parser::parsePossibleShift):
+        (WebCore::WHLSL::Parser::completePossibleShift):
+        (WebCore::WHLSL::Parser::parsePossibleAdd):
+        (WebCore::WHLSL::Parser::completePossibleAdd):
+        (WebCore::WHLSL::Parser::parsePossibleMultiply):
+        (WebCore::WHLSL::Parser::completePossibleMultiply):
+        (WebCore::WHLSL::Parser::parsePossiblePrefix):
+        (WebCore::WHLSL::Parser::parsePossibleSuffix):
+        (WebCore::WHLSL::Parser::parseCallExpression):
+        (WebCore::WHLSL::Parser::parseTerm):
+        (WebCore::WHLSL::Parser::parseAddressSpaceType): Deleted.
+        (WebCore::WHLSL::Parser::parseNonAddressSpaceType): Deleted.
+        (WebCore::WHLSL::Parser::parseEntryPointFunctionDeclaration): Deleted.
+        (WebCore::WHLSL::Parser::parseEffectfulPrefix): Deleted.
+        (WebCore::WHLSL::Parser::parseEffectfulSuffix): Deleted.
+        * Modules/webgpu/WHLSL/WHLSLParser.h:
+        (WebCore::WHLSL::Parser::Error::dump const):
+
+2019-06-03  Youenn Fablet  <youenn@apple.com>
+
+        Allow resizing of camera video feeds to very small resolutions
+        https://bugs.webkit.org/show_bug.cgi?id=198421
+
+        Reviewed by Alex Christensen.
+
+        Before the patch, the minimum capture resolution was set to 120.
+        Since this is a bit arbitrary and there are some use cases for lower resolution,
+        We now allow down to 1x1 resolution.
+
+        Test: fast/mediastream/getUserMedia-video-rescaling.html
+
+        * platform/mediastream/RealtimeVideoSource.cpp:
+        (WebCore::RealtimeVideoSource::updateCapabilities):
+        Allow 1x1 when computing min/max resolutions.
+        (WebCore::RealtimeVideoSource::bestSupportedSizeAndFrameRate):
+        In case width and height are provided, we pick the closest preset that matches and resize accordingly.
+        If width or height is provided, we pick the closest preset tat matches and applies its aspect ratio.
+
+2019-06-03  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Implement an internal switch to turn idempotent text autosizing and viewport rules off
+        https://bugs.webkit.org/show_bug.cgi?id=198460
+        <rdar://problem/51324526>
+
+        Reviewed by Tim Horton.
+
+        Add a new WebCore setting for viewport shrink-to-fit-content heuristics; additionally, tweak the existing
+        idempotent text autosizing setting to default to false (this is overridden by preferences at the WebKit layer).
+
+        * page/Settings.yaml:
+
+2019-06-03  Rob Buis  <rbuis@igalia.com>
+
+        Implement imagesrcset and imagesizes attributes on link rel=preload
+        https://bugs.webkit.org/show_bug.cgi?id=192950
+
+        Reviewed by Youenn Fablet.
+
+        Implement imagesrcset and imagesizes attributes for both Link header
+        and link element.
+
+        Tests: imported/w3c/web-platform-tests/preload/dynamic-adding-preload-imagesrcset.html
+               imported/w3c/web-platform-tests/preload/link-header-preload-imagesrcset.html
+               imported/w3c/web-platform-tests/preload/link-header-preload-nonce.html
+               imported/w3c/web-platform-tests/preload/link-header-preload.html
+               imported/w3c/web-platform-tests/preload/onload-event.html
+               imported/w3c/web-platform-tests/preload/preload-with-type.html
+
+        * html/HTMLAttributeNames.in:
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * html/HTMLLinkElement.idl:
+        * loader/LinkHeader.cpp:
+        (WebCore::paramterNameFromString):
+        (WebCore::LinkHeader::setValue):
+        (WebCore::LinkHeader::LinkHeader):
+        * loader/LinkHeader.h:
+        (WebCore::LinkHeader::imageSrcSet const):
+        (WebCore::LinkHeader::imageSizes const):
+        (WebCore::LinkHeader::isViewportDependent const):
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::loadLinksFromHeader):
+        (WebCore::LinkLoader::preloadIfNeeded):
+        (WebCore::LinkLoader::loadLink):
+        * loader/LinkLoader.h:
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::linkPreloadResponsiveImagesEnabled const):
+        (WebCore::RuntimeEnabledFeatures::setLinkPreloadResponsiveImagesEnabled):
+
+2019-06-02  Andy Estes  <aestes@apple.com>
+
+        Memory-cached main resources continue to load after the client decides a content policy of PolicyAction::Download
+        https://bugs.webkit.org/show_bug.cgi?id=198469
+        <rdar://problem/50512713>
+
+        Reviewed by Youenn Fablet.
+
+        When a document is loaded from the memory cache it does not have a main resource loader, but
+        DocumentLoader::continueAfterContentPolicy relies on being able to call
+        ResourceLoader::didFail on the main resource loader to cancel the provisional navigation
+        when the client decides a content policy of PolicyAction::Download.
+
+        This means that memory-cached main resources continue to load even after WebKit has started
+        to download the main resource. The expected behavior is for the provisional navigation to
+        fail once the download starts, like what happens when there is a main resource loader.
+
+        This patch teaches DocumentLoader::continueAfterContentPolicy to call
+        stopLoadingForPolicyChange() in the case of a null main resource loader. This will dispatch
+        didFailProvisionalNavigation and remove the DocumentLoader as a client of its
+        CachedRawResource to prevent it from delivering any cached data.
+
+        Added a new API test.
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::continueAfterContentPolicy):
+
+2019-06-03  Timothy Hatcher  <timothy@apple.com>
+
+        Tweak the text and underline color for data detected text.
+        https://bugs.webkit.org/show_bug.cgi?id=198487
+        rdar://problem/50667125
+
+        Reviewed by Devin Rousso.
+
+        Tests: Color.RGBToHSL API tests
+
+        * editing/cocoa/DataDetection.mm:
+        (WebCore::DataDetection::detectContentInRange): Use currentcolor so semantic text colors work.
+        Force the lightness of the underline color to the middle, and multiply the alpha by 38%,
+        so the color will appear on light and dark backgrounds, since only one color can be specified.
+        * platform/graphics/Color.cpp:
+        (WebCore::Color::getHSL const): Return hue in [0...6) range to easily round-trip with makeRGBAFromHSLA().
+
+2019-06-03  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WebKit::JavaScriptCore target
+        https://bugs.webkit.org/show_bug.cgi?id=198403
+
+        Reviewed by Konstantin Tokarev.
+
+        Use the WebKit::JavaScriptCore target.
+
+        * CMakeLists.txt:
+
+2019-06-03  Zan Dobersek  <zdobersek@igalia.com>
+
+        [Nicosia] Disable async scrolling until implemented
+        https://bugs.webkit.org/show_bug.cgi?id=198476
+        <rdar://problem/51351478>
+
+        Unreviewed follow-up to r246033.
+
+        * page/scrolling/ScrollingCoordinator.cpp:
+        Expand the PLATFORM(IOS) guard to IOS_FAMILY.
+
+2019-06-03  Darin Adler  <darin@apple.com>
+
+        Finish cleanup of String::number for floating point
+        https://bugs.webkit.org/show_bug.cgi?id=198471
+
+        Reviewed by Yusuke Suzuki.
+
+        * css/CSSCursorImageValue.cpp:
+        (WebCore::CSSCursorImageValue::customCSSText const): Use makeString instead
+        of StringBuilder since it is more terse and possibly more efficient as well.
+        * css/DOMMatrixReadOnly.cpp:
+        (WebCore::DOMMatrixReadOnly::toString const): Ditto.
+        * css/WebKitCSSMatrix.cpp:
+        (WebCore::WebKitCSSMatrix::toString const): Ditto.
+
+        * html/parser/HTMLParserIdioms.cpp:
+        (WebCore::serializeForNumberType): Use String::number instead of
+        String::numberToStringECMAScript since that is now the default.
+        * html/shadow/MediaControlElementTypes.cpp:
+        (WebCore::MediaControlVolumeSliderElement::setVolume): Ditto.
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlTimelineElement::setPosition): Ditto.
+        * platform/Decimal.cpp:
+        (WebCore::Decimal::fromDouble): Ditto.
+
+        * rendering/RenderListMarker.cpp:
+        (WebCore::toRoman): Return a String instead of taking a StringBuilder argument.
+        Use LetterCase enum instead of bool for the uppercase vs. lowercase argument, to
+        be less mysterious at call sites. Use unsigned for string lengths since that's
+        what WTF::String uses.
+        (WebCore::toAlphabeticOrNumeric): Ditto. Also updated since SequenceType is now
+        an enum class.
+        (WebCore::toSymbolic): Use String::createUninitialized instead of StringBuilder.
+        Return a String instead of taking a StringBuilder argument. Straighten out the
+        algorithm so it's easier to understand.
+        (WebCore::toAlphabetic): Updated since SequenceType is now an enum class.
+        (WebCore::toNumeric): Ditto.
+        (WebCore::toHebrew): Return a String instead of taking a StringBuilder argument.
+        Use unsigned for string lengths since that's what WTF::String uses.
+        (WebCore::toArmenianUnder10000): Use unsigned and the LetterCase enum class.
+        (WebCore::toArmenian): Return a String instead of taking a StringBuilder argument.
+        Also use unsigned for string lengths since that's what WTF::String uses.
+        (WebCore::toGeorgian): Ditto.
+        (WebCore::toCJKIdeographic): Ditto.
+        (WebCore::listMarkerSuffix): Tweaked a comment.
+        (WebCore::listMarkerText): Use String return values instead of StringBuilder.
+        (WebCore::RenderListMarker::paint): Use String::createUninitialized instead of
+        StringBuilder since it's a bit more efficient. Use makeString instead of turning
+        single characters into strings since that's more efficient.
+
+        * svg/SVGPathUtilities.cpp:
+        (WebCore::buildStringFromPath): Use appendNumber instead of appendShortestFormNumber
+        since that is now the default.
+
+2019-06-03  Zan Dobersek  <zdobersek@igalia.com>
+
+        [Nicosia] Disable async scrolling until implemented
+        https://bugs.webkit.org/show_bug.cgi?id=198476
+
+        Reviewed by Antti Koivisto.
+
+        Build ScrollingCoordinator::create() method on iOS or whenever
+        ASYNC_SCROLLING is not enabled.
+
+        Additionally, the USE(COORDINATED_GRAPHICS) build guards are removed
+        throughout the async scrolling classes as they aren't required now
+        and shouldn't be in the future.
+
+        * page/scrolling/ScrollingCoordinator.cpp:
+        * page/scrolling/ScrollingStateFixedNode.cpp:
+        * page/scrolling/ScrollingStateFixedNode.h:
+        * page/scrolling/ScrollingStateFrameHostingNode.cpp:
+        * page/scrolling/ScrollingStateFrameHostingNode.h:
+        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
+        * page/scrolling/ScrollingStateFrameScrollingNode.h:
+        * page/scrolling/ScrollingStateNode.cpp:
+        * page/scrolling/ScrollingStateNode.h:
+        * page/scrolling/ScrollingStateOverflowScrollingNode.cpp:
+        * page/scrolling/ScrollingStateOverflowScrollingNode.h:
+        * page/scrolling/ScrollingStatePositionedNode.cpp:
+        * page/scrolling/ScrollingStatePositionedNode.h:
+        * page/scrolling/ScrollingStateScrollingNode.cpp:
+        * page/scrolling/ScrollingStateScrollingNode.h:
+        * page/scrolling/ScrollingStateStickyNode.cpp:
+        * page/scrolling/ScrollingStateStickyNode.h:
+        * page/scrolling/ScrollingStateTree.cpp:
+        * page/scrolling/ScrollingStateTree.h:
+
+2019-06-03  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events] Check that capturing data managed by the PointerCaptureController gets cleared upon navigation
+        https://bugs.webkit.org/show_bug.cgi?id=198191
+
+        Unreviewed post-commit review feedback suggested by Darin Adler.
+
+        * page/PointerCaptureController.cpp:
+        (WebCore::PointerCaptureController::reset):
+
+2019-06-01  Simon Fraser  <simon.fraser@apple.com>
+
+        [Async overflow scroll] Flashing content when scrolling async overflow with a negative z-index child
+        https://bugs.webkit.org/show_bug.cgi?id=198458
+
+        Reviewed by Dean Jackson.
+
+        Set the GraphicsLayerPaintOverflowContents phase on the foreground layer in a composited overflow scroller,
+        which prevents clipping to the visible region, fixing scrolling flashes.
+
+        Tested by compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updatePaintingPhases):
+
+2019-06-01  Simon Fraser  <simon.fraser@apple.com>
+
+        Async overflow scroll on iOS paints slowly if it has a negative z-index child
+        https://bugs.webkit.org/show_bug.cgi?id=196508
+        rdar://problem/49532709
+
+        Reviewed by Dean Jackson.
+        
+        If a RenderLayerBacking had a foreground layer and a scrolled contents layer, every geometry
+        update would change the size and offsetFromRenderer of the foreground layer between two
+        states, triggering repaint.
+
+        Fix by updating the fore- and background-layers last (nothing elese has dependencies
+        on their geometry), and using GraphicsLayer::DontSetNeedsDisplay as we do for the
+        scrolled contents layer.
+        
+        The test also revealed a bug where the shapeMaskLayer would get incorrect geometry when scrollbars
+        were visible, because it would be squished by setting the wrong bounds, so fix that.
+
+        Test: compositing/repaint/scroller-with-foreground-layer-repaints.html
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::updateClippingStrategy):
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateGeometry):
+
+2019-06-01  Simon Fraser  <simon.fraser@apple.com>
+
+        Non-composited negative z-order children should not trigger creation of a foreground layer
+        https://bugs.webkit.org/show_bug.cgi?id=198455
+
+        Reviewed by Sam Weinig.
+
+        The existing code triggered creation of a foreground layer on RenderLayerBacking when
+        the negative z-order list was non-empty. This isn't necessary; we can paint the negative
+        z-order children just fine.
+
+        We only need a foreground layer when the negative z-order layers are composited or
+        have composited descendants.
+
+        This will reduce backing store memory use in some cases.
+
+        Test: compositing/layer-creation/composited-negative-z-subtree.html
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
+        (WebCore::RenderLayerCompositor::needsContentsCompositingLayer const):
+
+2019-06-01  Andy Estes  <aestes@apple.com>
+
+        [Apple Pay] Every PaymentCoordinator client should explicitly decide whether they support unrestricted Apple Pay
+        https://bugs.webkit.org/show_bug.cgi?id=198449
+        <rdar://problem/51038583>
+
+        Reviewed by Wenson Hsieh.
+
+        Rather than having a default return value of true for
+        PaymentCoordinatorClient::supportsUnrestrictedApplePay, make it pure virtual to force each
+        subclass to implement an override and explicitly choose an appropriate return value.
+
+        The only two clients that did not explicitly override were the empty client and
+        WebKitLegacy's client, and Apple Pay was never enabled in those clients, so there is no
+        change in behavior.
+
+        * Modules/applepay/PaymentCoordinatorClient.h:
+        (WebCore::PaymentCoordinatorClient::isAlwaysOnLoggingAllowed const):
+        (WebCore::PaymentCoordinatorClient::supportsUnrestrictedApplePay const): Deleted.
+        * loader/EmptyClients.cpp:
+
+2019-05-31  Youenn Fablet  <youenn@apple.com>
+
+        Add an option to mute audio capture automatically when page is not visible
+        https://bugs.webkit.org/show_bug.cgi?id=198307
+
+        Reviewed by Eric Carlson.
+
+        Reuse video capture mechanism for audio capture.
+        In case document gets in the background, interrupt the audio track if the audio factory requires it.
+        CoreAudioCaptureSourceIOS requires the audio source be interrupted if the app has not the right background mode.
+        It also allows interrupting the audio capture based on a runtime flag.
+
+        Add a runtime flag to control this.
+        Internals API is used to set it for test purposes, off by default.
+        For regular cases, the runtime flag is set through web preferences.
+
+        Test: platform/ios/mediastream/audio-muted-in-background-tab.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::notifyMediaCaptureOfVisibilityChanged):
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::interruptAudioOnPageVisibilityChangeEnabled const):
+        (WebCore::RuntimeEnabledFeatures::setInterruptAudioOnPageVisibilityChangeEnabled):
+        * platform/mediastream/RealtimeMediaSourceCenter.cpp:
+        (WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
+        (WebCore::RealtimeMediaSourceCenter::initializeShouldInterruptAudioOnPageVisibilityChange):
+        (WebCore::RealtimeMediaSourceCenter::setCapturePageState):
+        (WebCore::RealtimeMediaSourceCenter::visibilityDidChange):
+        * platform/mediastream/RealtimeMediaSourceCenter.h:
+        (WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):
+        * platform/mediastream/RealtimeMediaSourceFactory.h:
+        (WebCore::AudioCaptureFactory::setAudioCapturePageState):
+        (WebCore::VideoCaptureFactory::setVideoCapturePageState):
+        * platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
+        * platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
+        (WebCore::CoreAudioCaptureSourceFactory::setAudioCapturePageState):
+        (WebCore::CoreAudioCaptureSourceFactoryIOS::shouldInterruptAudioOnPageVisibilityChange):
+        * platform/mediastream/mac/CoreAudioCaptureSource.h:
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+        (WebCore::RealtimeMediaSourceCenter::initializeShouldInterruptAudioOnPageVisibilityChange):
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+        (WebCore::Internals::setShouldInterruptAudioOnPageVisibilityChange):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-05-31  Geoffrey Garen  <ggaren@apple.com>
+
+        Some WeakPtr typedef cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=198431
+
+        Reviewed by Chris Dumez.
+
+        Use "using" instead of "typedef", since using is preferred in C++ for
+        better compatibility with templates.
+
+        * Modules/indexeddb/shared/InProcessIDBServer.h:
+        * html/HTMLMediaElement.h:
+        * platform/ScrollView.h:
+
+2019-05-31  Andres Gonzalez  <andresg_22@apple.com>
+
+        Inserting a newline in contenteditable causes two characters to be added instead of one
+        https://bugs.webkit.org/show_bug.cgi?id=197894
+        <rdar://problems/49700998>
+
+        Reviewed by Chris Fleizach.
+
+        No new test is necessary since this is a comment change.
+
+        Removed radar reference from code.
+
+        * editing/Editing.cpp:
+        (WebCore::visiblePositionForIndexUsingCharacterIterator):
+
+2019-05-31  Tim Horton  <timothy_horton@apple.com>
+
+        Optionally respect device management restrictions when loading from the network
+        https://bugs.webkit.org/show_bug.cgi?id=198318
+        <rdar://problem/44263806>
+
+        Reviewed by Alex Christensen.
+
+        * en.lproj/Localizable.strings:
+
+2019-05-31  Simon Fraser  <simon.fraser@apple.com>
+
+        Move code that sets compositing paint phases into a single function
+        https://bugs.webkit.org/show_bug.cgi?id=198420
+
+        Reviewed by Zalan Bujtas.
+
+        To compute the correct paint phases for the various GraphicsLayers in a RenderLayerBacking,
+        we have to know which set of layers we've created (m_scrollContainerLayer, m_foregroundLayer etc).
+        So move the code that sets phases into a single function which is called when that
+        set of layers changes.
+
+        The test dumps paint phases for a stacking-context-composited scroller with a negative z-index child.
+
+        Also have GraphicsLayer::setPaintingPhase() trigger the necessary repaint when the paint phase changes.
+
+        Test: compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html
+
+        * platform/graphics/GraphicsLayer.cpp:
+        (WebCore::GraphicsLayer::setPaintingPhase):
+        * platform/graphics/GraphicsLayer.h:
+        (WebCore::GraphicsLayer::setPaintingPhase): Deleted.
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateConfiguration):
+        (WebCore::RenderLayerBacking::updateForegroundLayer):
+        (WebCore::RenderLayerBacking::updateBackgroundLayer):
+        (WebCore::RenderLayerBacking::updateMaskingLayer):
+        (WebCore::RenderLayerBacking::updateScrollingLayers):
+        (WebCore::RenderLayerBacking::updatePaintingPhases):
+        (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer const): Deleted.
+        * rendering/RenderLayerBacking.h:
+
+2019-05-31  Saam Barati  <sbarati@apple.com>
+
+        [WHLSL] Make sure we properly emit code for "&*x"
+        https://bugs.webkit.org/show_bug.cgi?id=198198
+
+        Reviewed by Myles C. Maxfield.
+
+        I ran into this when trying to test zero-filling code, so let's just fix it.
+        The issue is that the property resolver ends up emitting code that looks like
+        "&*x". The semantics of this are such that it should result in just x.
+        However, we emitted Metal code in such a way where we'd end up with a pointer
+        to a temporary value. To fix this, DereferenceExpression will emit code that results
+        in a reference type. Then, MakePointerExpression will correctly return the
+        pointer backing that reference type.
+        
+        Because of this, we also no longer need to pattern match the lhs of assignment
+        expressions since we will now be assigning to a reference type.
+
+        Test: webgpu/whlsl-store-to-property-updates-properly.html
+
+        * Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
+        (WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
+
+2019-05-31  Simon Fraser  <simon.fraser@apple.com>
+
+        [Async overflow scrolling] Flashes of missing layer backing store when scrolling an overflow
+        https://bugs.webkit.org/show_bug.cgi?id=198363
+
+        Reviewed by Tim Horton.
+
+        When the contents of an overflow:scroll did not use a tiled backing layer, GraphicsLayerCA::adjustCoverageRect()
+        would do no coverage rect expansion for scrolling, which meant that backing store attachment for
+        descendant layers would just use the visible rect from their scrolling ancestor which made it easy
+        to scroll into view a layer whose backing store was not yet attached.
+        
+        Since this only affects non-tiled layers, re-use the generic TileController::adjustTileCoverageRect()
+        code by moving it down to GraphicsLayer, and call it for a scrolled contents layer which does not
+        have tiled backing.
+        
+        Tested by fast/scrolling/ios/reconcile-layer-position-recursive.html
+
+        * platform/graphics/GraphicsLayer.cpp:
+        (WebCore::GraphicsLayer::adjustCoverageRectForMovement):
+        * platform/graphics/GraphicsLayer.h:
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::adjustCoverageRect const):
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::adjustTileCoverageRect):
+
+2019-05-31  Geoffrey Garen  <ggaren@apple.com>
+
+        Some WeakPtr cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=198390
+
+        Reviewed by Chris Dumez.
+
+        * Modules/indexeddb/shared/InProcessIDBServer.cpp:
+        (WebCore::storageQuotaManagerGetter): Dereference the weak pointer
+        directly instead of using a weak pointer to guard a raw pointer. It's
+        safer and more idiomatic to use weak pointers directly.
+
+        * Modules/indexeddb/shared/InProcessIDBServer.h: Use our base clase
+        weakPtrFactory() definition instead of writing our own. Declare
+        WeakValueType so we can dereference the weak pointer we create (above).
+
+2019-05-31  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] InlineFormattingContext::LineLayout::processInlineItemsForLine should create and destroy Line.
+        https://bugs.webkit.org/show_bug.cgi?id=198419
+        <rdar://problem/51300837>
+
+        Reviewed by Antti Koivisto.
+
+        This is in preparation for using "createInlineRunsForLine" logic when computing preferred width.
+        1. Line object is now constructed and destroyed in processInlineItemsForLine (caller does not need to know about Line).
+        2. processInlineItemsForLine returns a Line::Content instance.
+
+        * layout/inlineformatting/InlineFormattingContext.h:
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput):
+        (WebCore::Layout::constructLine):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::processInlineItemsForLine const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::createLine const): Deleted.
+        (WebCore::Layout::InlineFormattingContext::LineLayout::createInlineRunsForLine const): Deleted.
+        (WebCore::Layout::InlineFormattingContext::LineLayout::processInlineRuns const): Deleted.
+
+2019-05-31  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WebKit::WTF target
+        https://bugs.webkit.org/show_bug.cgi?id=198400
+
+        Reviewed by Konstantin Tokarev.
+
+        Use the WebKit::WTF target.
+
+        * PlatformWin.cmake:
+
+2019-05-31  Joonghun Park  <jh718.park@samsung.com>
+
+        Always min-width should win over max-width.
+        https://bugs.webkit.org/show_bug.cgi?id=198032
+
+        Reviewed by Darin Adler.
+
+        In the spec, https://www.w3.org/TR/CSS21/visudet.html#min-max-widths,
+        the following algorithm describes how the two properties influence
+        the used value of the 'width' property.
+
+        1. The tentative used width is calculated (without 'min-width' and 'max-width')
+        following the rules under "Calculating widths and margins" above.
+        2. If the tentative used width is greater than 'max-width',
+        the rules above are applied again, but this time using the computed value of 'max-width'
+        as the computed value for 'width'.
+        3. If the resulting width is smaller than 'min-width', the rules above are applied again,
+        but this time using the value of 'min-width' as the computed value for 'width'.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::computePreferredLogicalWidths):
+
+2019-05-31  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r245946.
+
+        Breaks the watchOS build.
+
+        Reverted changeset:
+
+        "Add an option to mute audio capture automatically when page
+        is not visible"
+        https://bugs.webkit.org/show_bug.cgi?id=198307
+        https://trac.webkit.org/changeset/245946
+
+2019-05-31  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC[IFC] Do not reuse the same Line object.
+        https://bugs.webkit.org/show_bug.cgi?id=198366
+        <rdar://problem/51250279>
+
+        Reviewed by Antti Koivisto.
+
+        This is in preparation for constructing Line inside createInlineRunsForLine and return Line::Content. 
+
+        * layout/inlineformatting/InlineFormattingContext.h:
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::createLine const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::processInlineRuns const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::initializeLine const): Deleted.
+        * layout/inlineformatting/InlineLine.cpp:
+        (WebCore::Layout::Line::Line):
+        (WebCore::Layout::m_lineLogicalWidth):
+        (WebCore::Layout::Line::close):
+        (WebCore::Layout::Line::moveLogicalLeft):
+        (WebCore::Layout::Line::appendNonBreakableSpace):
+        (WebCore::Layout::Line::appendTextContent):
+        (WebCore::Layout::Line::appendNonReplacedInlineBox):
+        (WebCore::Layout::Line::appendHardLineBreak):
+        (WebCore::Layout::Line::reset): Deleted.
+        * layout/inlineformatting/InlineLine.h:
+        (WebCore::Layout::Line::hasContent const):
+
+2019-05-31  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Move final runs to a dedicated class (Line::Content)
+        https://bugs.webkit.org/show_bug.cgi?id=198360
+        <rdar://problem/51247717>
+
+        Reviewed by Antti Koivisto.
+
+        It decouples the line and the final line content. So when we process the runs after closing the line,
+        LineContent should be able to answer all the content and geometry related questions.
+        This is also in preparation for
+        transfering the ownership of the line content when calling Line::close(). 
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::processInlineRuns const):
+        * layout/inlineformatting/InlineLine.cpp:
+        (WebCore::Layout::Line::Content::isVisuallyEmpty const):
+        (WebCore::Layout::Line::Content::Run::Run):
+        (WebCore::Layout::Line::reset):
+        (WebCore::Layout::Line::close):
+        (WebCore::Layout::Line::moveLogicalLeft):
+        (WebCore::Layout::Line::appendNonBreakableSpace):
+        (WebCore::Layout::Line::appendTextContent):
+        (WebCore::Layout::Line::appendNonReplacedInlineBox):
+        (WebCore::Layout::Line::appendHardLineBreak):
+        (WebCore::Layout::Line::LineItem::LineItem): Deleted.
+        (WebCore::Layout::Line::hasContent const): Deleted.
+        * layout/inlineformatting/InlineLine.h:
+        (WebCore::Layout::Line::Content::runs const):
+        (WebCore::Layout::Line::Content::isEmpty const):
+        (WebCore::Layout::Line::Content::logicalTop const):
+        (WebCore::Layout::Line::Content::logicalLeft const):
+        (WebCore::Layout::Line::Content::logicalRight const):
+        (WebCore::Layout::Line::Content::logicalBottom const):
+        (WebCore::Layout::Line::Content::logicalWidth const):
+        (WebCore::Layout::Line::Content::logicalHeight const):
+        (WebCore::Layout::Line::Content::setLogicalRect):
+        (WebCore::Layout::Line::Content::runs):
+        (WebCore::Layout::Line::hasContent const):
+        (WebCore::Layout::Line::availableWidth const):
+        (WebCore::Layout::Line::contentLogicalRight const):
+        (WebCore::Layout::Line::logicalTop const):
+        (WebCore::Layout::Line::logicalBottom const):
+        (WebCore::Layout::Line::logicalLeft const):
+        (WebCore::Layout::Line::logicalRight const):
+        (WebCore::Layout::Line::logicalWidth const):
+        (WebCore::Layout::Line::logicalHeight const):
+        (WebCore::Layout::Line::contentLogicalWidth const):
+        * page/FrameViewLayoutContext.cpp:
+        (WebCore::layoutUsingFormattingContext):
+
+2019-05-31  Joonghun Park  <jh718.park@samsung.com>
+
+        Unreviewed. Fix typo of |ComputedStyleExtractor::valueForPropertyInStyle|
+        to follow camel case function naming style.
+
+        No behavioral changes.
+
+        * animation/KeyframeEffect.cpp:
+        (WebCore::KeyframeEffect::getKeyframes):
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
+        (WebCore::ComputedStyleExtractor::valueForPropertyinStyle): Deleted.
+        * css/CSSComputedStyleDeclaration.h:
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::changedCustomPaintWatchedProperty):
+
+2019-05-31  Ali Juma  <ajuma@chromium.org>
+
+        REGRESSION (r245396): Page load time performance regression
+        https://bugs.webkit.org/show_bug.cgi?id=198382
+
+        Reviewed by Simon Fraser.
+
+        Delay the scheduling of a rendering update by 500ms when a new
+        IntersectionObserver target is added during page load. This addresses
+        a page load time regression from r245396, which immediately scheduled a
+        rendering update when a target is added. Note that even with this change,
+        if anything else triggers a rendering update before the 500ms delay expires,
+        intersection observations will be updated during that rendering update.
+
+        Covered by intersection-observer/initial-observation.html 
+
+        * dom/Document.cpp:
+        (WebCore::Document::updateIntersectionObservations):
+        (WebCore::Document::scheduleInitialIntersectionObservationUpdate):
+        * dom/Document.h:
+        * page/IntersectionObserver.cpp:
+        (WebCore::IntersectionObserver::observe):
+
+2019-05-30  Zan Dobersek  <zdobersek@igalia.com>
+
+        Unreviewed. Suppress -Wunused-variable warnings for the unused static
+        mousePointerID variable by making it a constexpr.
+
+        * platform/PointerID.h:
+
+2019-05-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Use an OptionSet<> for GraphicsLayerPaintingPhase
+        https://bugs.webkit.org/show_bug.cgi?id=198404
+
+        Reviewed by Tim Horton.
+
+        Replace GraphicsLayerPaintingPhase with OptionSet<GraphicsLayerPaintingPhase>.
+
+        No behavior change.
+
+        * page/PageOverlayController.cpp:
+        (WebCore::PageOverlayController::setPageOverlayNeedsDisplay):
+        (WebCore::PageOverlayController::paintContents):
+        (WebCore::PageOverlayController::notifyFlushRequired):
+        * page/PageOverlayController.h:
+        * page/linux/ResourceUsageOverlayLinux.cpp:
+        * page/mac/ServicesOverlayController.h:
+        * page/mac/ServicesOverlayController.mm:
+        (WebCore::ServicesOverlayController::Highlight::paintContents):
+        * platform/graphics/GraphicsLayer.cpp:
+        (WebCore::GraphicsLayer::dumpProperties const):
+        * platform/graphics/GraphicsLayer.h:
+        (WebCore::GraphicsLayer::paintingPhase const):
+        (WebCore::GraphicsLayer::setPaintingPhase):
+        * platform/graphics/GraphicsLayerClient.h:
+        (WebCore::GraphicsLayerClient::paintContents):
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateForegroundLayer):
+        (WebCore::RenderLayerBacking::updateBackgroundLayer):
+        (WebCore::RenderLayerBacking::updateMaskingLayer):
+        (WebCore::RenderLayerBacking::updateChildClippingStrategy):
+        (WebCore::RenderLayerBacking::updateScrollingLayers):
+        (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer const):
+        (WebCore::RenderLayerBacking::paintIntoLayer):
+        (WebCore::RenderLayerBacking::paintContents):
+        * rendering/RenderLayerBacking.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::paintContents):
+        * rendering/RenderLayerCompositor.h:
+
+2019-05-30  Youenn Fablet  <youenn@apple.com>
+
+        Fix AVVideoCaptureSource::setFrameRateWithPreset logging
+        https://bugs.webkit.org/show_bug.cgi?id=198392
+
+        Reviewed by Eric Carlson.
+
+        Move logging from setFrameRateWithPreset to setSessionSizeAndFrameRate which does the actual job.
+        This ensures to not log in case of preset being null.
+        No change of behavior.
+
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::setFrameRateWithPreset):
+        (WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
+
+2019-05-30  Jer Noble  <jer.noble@apple.com>
+
+        Video playback in Safari should continue when CarPlay is plugged in
+        https://bugs.webkit.org/show_bug.cgi?id=198345
+        <rdar://problem/45505750>
+
+        Reviewed by Eric Carlson.
+
+        Test: media/video-isplayingtoautomotiveheadunit.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        (WebCore::PlatformMediaSessionManager::setIsPlayingToAutomotiveHeadUnit):
+        * platform/audio/PlatformMediaSessionManager.h:
+        (WebCore::PlatformMediaSessionManager::isPlayingToAutomotiveHeadUnit const):
+        * platform/audio/ios/MediaSessionManagerIOS.h:
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
+        (WebCore::MediaSessionManageriOS::carPlayServerDied):
+        (WebCore::MediaSessionManageriOS::updateCarPlayIsConnected):
+        (-[WebMediaSessionHelper initWithCallback:]):
+        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
+        (-[WebMediaSessionHelper interruption:]):
+        (-[WebMediaSessionHelper applicationWillEnterForeground:]):
+        (-[WebMediaSessionHelper applicationDidBecomeActive:]):
+        (-[WebMediaSessionHelper applicationWillResignActive:]):
+        (-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]):
+        (-[WebMediaSessionHelper applicationDidEnterBackground:]):
+        (-[WebMediaSessionHelper carPlayServerDied:]):
+        (-[WebMediaSessionHelper carPlayIsConnectedDidChange:]):
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+        (WebCore::Internals::setIsPlayingToAutomotiveHeadUnit):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-05-30  Youenn Fablet  <youenn@apple.com>
+
+        Add an option to mute audio capture automatically when page is not visible
+        https://bugs.webkit.org/show_bug.cgi?id=198307
+
+        Reviewed by Eric Carlson.
+
+        Reuse video capture mechanism for audio capture.
+        In case document gets in the background, interrupt the audio track if the audio factory requires it.
+        CoreAudioCaptureSourceIOS requires the audio source be interrupted if the app has not the right background mode.
+        It also allows interrupting the audio capture based on a runtime flag.
+
+        Add a runtime flag to control this.
+        Internals API is used to set it for test purposes, off by default.
+        For regular cases, the runtime flag is set through web preferences.
+
+        Test: platform/ios/mediastream/audio-muted-in-background-tab.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::notifyMediaCaptureOfVisibilityChanged):
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::interruptAudioOnPageVisibilityChangeEnabled const):
+        (WebCore::RuntimeEnabledFeatures::setInterruptAudioOnPageVisibilityChangeEnabled):
+        * platform/mediastream/RealtimeMediaSourceCenter.cpp:
+        (WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
+        (WebCore::RealtimeMediaSourceCenter::initializeShouldInterruptAudioOnPageVisibilityChange):
+        (WebCore::RealtimeMediaSourceCenter::setCapturePageState):
+        (WebCore::RealtimeMediaSourceCenter::visibilityDidChange):
+        * platform/mediastream/RealtimeMediaSourceCenter.h:
+        (WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):
+        * platform/mediastream/RealtimeMediaSourceFactory.h:
+        (WebCore::AudioCaptureFactory::setAudioCapturePageState):
+        (WebCore::VideoCaptureFactory::setVideoCapturePageState):
+        * platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
+        * platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
+        (WebCore::CoreAudioCaptureSourceFactory::setAudioCapturePageState):
+        (WebCore::CoreAudioCaptureSourceFactoryIOS::shouldInterruptAudioOnPageVisibilityChange):
+        * platform/mediastream/mac/CoreAudioCaptureSource.h:
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+        (WebCore::RealtimeMediaSourceCenter::initializeShouldInterruptAudioOnPageVisibilityChange):
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+        (WebCore::Internals::setShouldInterruptAudioOnPageVisibilityChange):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-05-30  Saam Barati  <sbarati@apple.com>
+
+        [WHLSL] Enforce variable lifetimes
+        https://bugs.webkit.org/show_bug.cgi?id=195794
+        <rdar://problem/50746293>
+
+        Reviewed by Myles C. Maxfield.
+
+        In WHLSL, each variable has global lifetime. So returning a pointer to a
+        local variable is a legitimate and well specified thing to do. Each local
+        variable has a unique place in memory. So, for example:
+        
+        ```
+        thread int* ptr() { int local; return &local; }
+        thread int* ptrPtr() { return ptr(); }
+        ```
+        
+        In the above program, ptr() must always return the same value
+        as ptrPtr(). So, the following would print "42":
+        ```
+        thread int* p = ptrPtr();
+        *ptr() = 42;
+        print(*p);
+        ```
+        
+        To implement these semantics, this patch introduces a new pass which does the
+        following transformations:
+        - It notes every variable whose address is taken in the program.
+        - Each such variable gets defined as a field in a struct.
+        - Each function which is an entry point defines this struct.
+        - Each non entry point takes a pointer to this struct as its final parameter.
+        - Each call to a non-native function is rewritten to pass a pointer to the
+          struct as the last call argument.
+        - Each variable reference to "x", where "x" ends up in the struct, is
+          modified to instead be "struct->x". We store to "struct->x" after declaring
+          "x". If "x" is a function parameter, we store to "struct->x" as the first
+          thing we do in the function body.
+
+        Tests: webgpu/whlsl-ensure-proper-variable-lifetime-2.html
+               webgpu/whlsl-ensure-proper-variable-lifetime-3.html
+               webgpu/whlsl-ensure-proper-variable-lifetime.html
+               webgpu/whlsl-return-local-variable.html
+
+        * Modules/webgpu/WHLSL/AST/WHLSLAST.h:
+        * Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
+        (WebCore::WHLSL::AST::Expression::Expression):
+        (WebCore::WHLSL::AST::Expression::isGlobalVariableReference const):
+        (WebCore::WHLSL::AST::Expression::origin const): Deleted.
+        * Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:
+        (WebCore::WHLSL::AST::FunctionDeclaration::origin):
+        * Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h: Added.
+        (WebCore::WHLSL::AST::GlobalVariableReference::GlobalVariableReference):
+        (WebCore::WHLSL::AST::GlobalVariableReference::structField):
+        (WebCore::WHLSL::AST::GlobalVariableReference::base):
+        * Modules/webgpu/WHLSL/AST/WHLSLStatement.h:
+        (WebCore::WHLSL::AST::Statement::Statement):
+        (WebCore::WHLSL::AST::Statement::isStatementList const):
+        (WebCore::WHLSL::AST::Statement::isWhileLoop const):
+        * Modules/webgpu/WHLSL/AST/WHLSLStatementList.h: Added.
+        (WebCore::WHLSL::AST::StatementList::StatementList):
+        (WebCore::WHLSL::AST::StatementList::statements):
+        * Modules/webgpu/WHLSL/AST/WHLSLValue.h:
+        (WebCore::WHLSL::AST::Value::Value):
+        (WebCore::WHLSL::AST::Value::origin const):
+        * Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
+        (WebCore::WHLSL::AST::VariableDeclaration::VariableDeclaration):
+        (WebCore::WHLSL::AST::VariableDeclaration::takeInitializer):
+        (WebCore::WHLSL::AST::VariableDeclaration::origin const): Deleted.
+        * Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:
+        (WebCore::WHLSL::AST::VariableReference::wrap):
+        * Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
+        (WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
+        * Modules/webgpu/WHLSL/WHLSLASTDumper.cpp:
+        (WebCore::WHLSL::ASTDumper::visit):
+        * Modules/webgpu/WHLSL/WHLSLASTDumper.h:
+        (WebCore::WHLSL::dumpASTNode):
+        (WebCore::WHLSL::dumpAST):
+        (WebCore::WHLSL::toString): Deleted.
+        * Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
+        (WebCore::WHLSL::prepareShared):
+        * Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp: Added.
+        (WebCore::WHLSL::EscapedVariableCollector::takeEscapedVariables):
+        (WebCore::WHLSL::anonymousToken):
+        (WebCore::WHLSL::PreserveLifetimes::PreserveLifetimes):
+        (WebCore::WHLSL::PreserveLifetimes::makeStructVariableReference):
+        (WebCore::WHLSL::preserveVariableLifetimes):
+        * Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.h: Added.
+        * Modules/webgpu/WHLSL/WHLSLVisitor.cpp:
+        (WebCore::WHLSL::Visitor::visit):
+        * Modules/webgpu/WHLSL/WHLSLVisitor.h:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+
+2019-05-30  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r245890, 245887.
+
+        Breaks internal builds.
+
+        Reverted changeset:
+        "Video playback in Safari should continue when CarPlay is plugged in"
+        https://bugs.webkit.org/show_bug.cgi?id=198345
+        https://trac.webkit.org/changeset/245887/webkit
+
+2019-05-30  Dean Jackson  <dino@apple.com>
+
+        Media documents on iPad are too wide in split screen
+        https://bugs.webkit.org/show_bug.cgi?id=198405
+        <rdar://problem/50974548>
+
+        Reviewed by Tim Horton.
+
+        Media documents on iPad had a minimum width of 700px. This
+        was fine in full-screen, but didn't work when then window
+        was smaller, such as split screen or a link preview.
+
+        Tests: media/modern-media-controls/media-documents/media-document-video-ipad-sizing.html
+               media/modern-media-controls/media-documents/media-document-video-iphone-sizing.html
+
+        * Modules/modern-media-controls/controls/media-document.css: Add a media query to
+        detect small windows.
+        * Modules/modern-media-controls/media/media-document-controller.js:
+
+2019-05-30  Andres Gonzalez  <andresg_22@apple.com>
+
+        Inserting a newline in contenteditable causes two characters to be added instead of one
+        https://bugs.webkit.org/show_bug.cgi?id=197894
+        <rdar://problem/49700998>
+
+        Reviewed by Wenson Hsieh and Chris Fleizach.
+
+        There were two issues with inserting a newline character at the end of 
+        a line that caused problems for accessibility:
+        - the first '\n' inserted after text would result in two line breaks 
+        inserted instead of one. createFragmentFromText in markup.cpp was 
+        splitting the string "\n" into two empty strings and creating a <div> 
+        and a <br> respectively. Then the emission code would emit a '\n' for 
+        the empty div and another for the <br>.
+        - the second problem is a consequence of <rdar://problem/5192593> and 
+        the workaround is the change in editing.cpp in the function
+        visiblePositionForIndexUsingCharacterIterator, similar to what is done
+        in VisibleUnits.cpp for nextBoundary.
+        The rest of the changes in this patch are accessibility changes to 
+        execute the layout tests.
+
+        Tests: accessibility/ios-simulator/set-selected-text-range-after-newline.html
+               accessibility/set-selected-text-range-after-newline.html
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::setSelectedTextRange):
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper stringForRange:]):
+        (-[WebAccessibilityObjectWrapper _accessibilitySelectedTextRange]):
+        (-[WebAccessibilityObjectWrapper accessibilityReplaceRange:withText:]):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+        * editing/Editing.cpp:
+        (WebCore::visiblePositionForIndexUsingCharacterIterator):
+        * editing/markup.cpp:
+        (WebCore::createFragmentFromText):
+
+2019-05-30  Justin Fan  <justin_fan@apple.com>
+
+        [Web GPU] Vertex Buffers/Input State API updates
+        https://bugs.webkit.org/show_bug.cgi?id=194258
+        <rdar://problem/47806127>
+
+        Reviewed by Myles C. Maxfield.
+
+        The vertex buffer attributes model for GPURenderPipelines in the WebGPU API has been updated.
+        Update our implementation to match.
+
+        No new tests. Existing tests updated to match new behavior.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Modules/webgpu/GPUVertexAttributeDescriptor.idl:
+        * Modules/webgpu/GPUVertexBufferDescriptor.idl: Renamed from Source/WebCore/Modules/webgpu/GPUInputStateDescriptor.idl.
+        * Modules/webgpu/GPUVertexInputDescriptor.idl:
+        * Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/graphics/gpu/GPURenderPipelineDescriptor.h:
+        * platform/graphics/gpu/GPUVertexAttributeDescriptor.h:
+        * platform/graphics/gpu/GPUVertexBufferDescriptor.h: Renamed from Source/WebCore/platform/graphics/gpu/GPUInputStateDescriptor.h.
+        * platform/graphics/gpu/GPUVertexInputDescriptor.h:
+        * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
+        (WebCore::trySetVertexInput): Added. Populate Metal and WHLSL pipeline descriptors with vertex attribute metadata.
+        (WebCore::trySetColorStates): Added. Populate Metal and WHLSL pipeline descriptors with color attachment metadata.
+        (WebCore::convertLayout): Moved.
+        (WebCore::trySetMetalFunctions): Moved.
+        (WebCore::trySetFunctions): Added. WHLSL compilation to Metal SL happens here, then MSL functions are set on pipeline descriptor.
+        (WebCore::convertRenderPipelineDescriptor): Repurposed. Convert a GPURenderPipelineDescriptor to Metal and WHLSL versions.
+        (WebCore::tryCreateMtlRenderPipelineState):
+        (WebCore::GPURenderPipeline::tryCreate):
+        (WebCore::trySetMetalFunctionsForPipelineDescriptor): Deleted.
+        (WebCore::trySetWHLSLFunctionsForPipelineDescriptor): Deleted.
+        (WebCore::trySetFunctionsForPipelineDescriptor): Deleted.
+        (WebCore::trySetInputStateForPipelineDescriptor): Deleted.
+        (WebCore::setColorStatesForColorAttachmentArray): Deleted.
+
+2019-05-30  Zalan Bujtas  <zalan@apple.com>
+
+        [iOS] Do not linkify telephone numbers inside <a> elements.
+        https://bugs.webkit.org/show_bug.cgi?id=198378
+
+        Reviewed by Chris Dumez.
+
+        Phone number linkifying mutates the DOM in a potentially unexpected way triggering different kinds of failures with JS, CSS selectors etc.
+        This patch tightens the linkifying rule so that content inside an <a> element won't get linkified even when the <a> has no valid href attribute.
+
+        Test: fast/dom/linkify-phone-numbers.html
+
+        * html/parser/HTMLTreeBuilder.cpp:
+        (WebCore::disallowTelephoneNumberParsing):
+
+2019-05-30  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r245883.
+
+        Caused 6 webgpu/ layout test failures.
+
+        Reverted changeset:
+
+        "[WHLSL] Parsing and lexing the standard library is slow"
+        https://bugs.webkit.org/show_bug.cgi?id=192890
+        https://trac.webkit.org/changeset/245883
+
+2019-05-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Move some HistoricalVelocityData code into the cpp file
+        https://bugs.webkit.org/show_bug.cgi?id=198353
+
+        Reviewed by Tim Horton.
+        
+        Now that we have VelocityData.cpp put the non-trivial HistoricalVelocityData::velocityForNewData()
+        into it. append() can become a lambda function.
+
+        * platform/graphics/VelocityData.cpp:
+        (WebCore::HistoricalVelocityData::velocityForNewData):
+        * platform/graphics/VelocityData.h:
+        (WebCore::HistoricalVelocityData::velocityForNewData): Deleted.
+        (WebCore::HistoricalVelocityData::append): Deleted.
+
+2019-05-30  Truitt Savell  <tsavell@apple.com>
+
+        Fix the iOS build after r245887
+        https://bugs.webkit.org/show_bug.cgi?id=198345
+
+        Unreviewed build fix.
+
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (WebCore::MediaSessionManageriOS::updateCarPlayIsConnected):
+
+2019-05-30  Jer Noble  <jer.noble@apple.com>
+
+        ASSERTION FAILED: m_scriptExecutionContext under WebCore::AudioContext::isPlayingAudioDidChange()
+        https://bugs.webkit.org/show_bug.cgi?id=181597
+        <rdar://problem/36474088>
+
+        Reviewed by Eric Carlson.
+
+        Because document() is usually null-checked before using (and we can add null-checks where missing),
+        there's no good reason to debug-assert that m_scriptExecutionContext is non-null before downcast<>ing
+        to Document*.
+
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::constructCommon):
+        (WebCore::AudioContext::stop):
+        (WebCore::AudioContext::document const):
+        (WebCore::AudioContext::visibilityStateChanged):
+        (WebCore::AudioContext::willBeginPlayback):
+        (WebCore::AudioContext::willPausePlayback):
+        (WebCore::AudioContext::pageMutedStateDidChange):
+
+2019-05-30  Jer Noble  <jer.noble@apple.com>
+
+        Video playback in Safari should continue when CarPlay is plugged in
+        https://bugs.webkit.org/show_bug.cgi?id=198345
+        <rdar://problem/45505750>
+
+        Reviewed by Eric Carlson.
+
+        Test: media/video-isplayingtoautomotiveheadunit.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        (WebCore::PlatformMediaSessionManager::setIsPlayingToAutomotiveHeadUnit):
+        * platform/audio/PlatformMediaSessionManager.h:
+        (WebCore::PlatformMediaSessionManager::isPlayingToAutomotiveHeadUnit const):
+        * platform/audio/ios/MediaSessionManagerIOS.h:
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
+        (WebCore::MediaSessionManageriOS::carPlayServerDied):
+        (WebCore::MediaSessionManageriOS::updateCarPlayIsConnected):
+        (-[WebMediaSessionHelper initWithCallback:]):
+        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
+        (-[WebMediaSessionHelper interruption:]):
+        (-[WebMediaSessionHelper applicationWillEnterForeground:]):
+        (-[WebMediaSessionHelper applicationDidBecomeActive:]):
+        (-[WebMediaSessionHelper applicationWillResignActive:]):
+        (-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]):
+        (-[WebMediaSessionHelper applicationDidEnterBackground:]):
+        (-[WebMediaSessionHelper carPlayServerDied:]):
+        (-[WebMediaSessionHelper carPlayIsConnectedDidChange:]):
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+        (WebCore::Internals::setIsPlayingToAutomotiveHeadUnit):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2019-05-29  Robin Morisset  <rmorisset@apple.com>
+
+        [WHLSL] Parsing and lexing the standard library is slow
+        https://bugs.webkit.org/show_bug.cgi?id=192890
+        <rdar://problem/50746335>
+
+        Reviewed by Myles Maxfield.
+
+        The main idea is to avoid backtracking by instead peeking at the next token (and occasionally at the one after that).
+        This implies a few things:
+        - We can replace the stack of tokens by a trivial ring buffer of size 2 (holding the next token and the one after, or WTF::nullopt if we are at the end of the file).
+        - We now have "completeFooExpression" functions, to avoid having to reparse the prefix of some expression, if we find half-way through what it is.
+
+        I also fixed the following parser bug:
+        - https://bugs.webkit.org/show_bug.cgi?id=198305 [WHLSL] Multiple variables with initializers in a declaration statement crashes the compiler
+            which was due to a mistake I made in the grammar
+
+        Finally I added two new macros: CONSUME_TYPE and PARSE to eliminate about 500 lines of error propagation boilerplate.
+
+        There are still lots of ways of improving the parser and lexer, such as:
+        - finishing the conversion of tokens in the lexer, not bothering with allocating string views
+        - make two special tokens Invalid and EOF, to remove the overhead of Optional
+        - make peekTypes and consumeTypes use templates to avoid constructing a Vector and calling find on it.
+        - Turn the entire lexer into a proper automata, not going through the same characters again and again (this is certainly the largest win by far)
+        - Remove the last few pieces of backtracking from the parser.
+
+        The current patch is already enough to make parsing the full standard library (something like 85k lines) approximately 260ms.
+        This is still longer than I would like, but nowhere near the bottleneck any longer because of some other parts of the compiler.
+
+        * Modules/webgpu/WHLSL/WHLSLLexer.h:
+        (WebCore::WHLSL::Lexer::Lexer):
+        (WebCore::WHLSL::Lexer::consumeToken):
+        (WebCore::WHLSL::Lexer::peek):
+        (WebCore::WHLSL::Lexer::peekFurther):
+        (WebCore::WHLSL::Lexer::state const):
+        (WebCore::WHLSL::Lexer::setState):
+        (WebCore::WHLSL::Lexer::unconsumeToken): Deleted.
+        * Modules/webgpu/WHLSL/WHLSLParser.cpp:
+        (WebCore::WHLSL::Parser::parse):
+        (WebCore::WHLSL::Parser::peek):
+        (WebCore::WHLSL::Parser::peekTypes):
+        (WebCore::WHLSL::Parser::tryType):
+        (WebCore::WHLSL::Parser::tryTypes):
+        (WebCore::WHLSL::Parser::consumeTypes):
+        (WebCore::WHLSL::Parser::parseConstantExpression):
+        (WebCore::WHLSL::Parser::parseTypeArgument):
+        (WebCore::WHLSL::Parser::parseTypeArguments):
+        (WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
+        (WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
+        (WebCore::WHLSL::Parser::parseType):
+        (WebCore::WHLSL::Parser::parseTypeDefinition):
+        (WebCore::WHLSL::Parser::parseResourceSemantic):
+        (WebCore::WHLSL::Parser::parseSpecializationConstantSemantic):
+        (WebCore::WHLSL::Parser::parseStageInOutSemantic):
+        (WebCore::WHLSL::Parser::parseSemantic):
+        (WebCore::WHLSL::Parser::parseQualifiers):
+        (WebCore::WHLSL::Parser::parseStructureElement):
+        (WebCore::WHLSL::Parser::parseStructureDefinition):
+        (WebCore::WHLSL::Parser::parseEnumerationDefinition):
+        (WebCore::WHLSL::Parser::parseEnumerationMember):
+        (WebCore::WHLSL::Parser::parseNativeTypeDeclaration):
+        (WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
+        (WebCore::WHLSL::Parser::parseAttributeBlock):
+        (WebCore::WHLSL::Parser::parseParameter):
+        (WebCore::WHLSL::Parser::parseParameters):
+        (WebCore::WHLSL::Parser::parseFunctionDefinition):
+        (WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseVertexFragmentFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseNativeFunctionDeclaration):
+        (WebCore::WHLSL::Parser::parseBlock):
+        (WebCore::WHLSL::Parser::parseBlockBody):
+        (WebCore::WHLSL::Parser::parseIfStatement):
+        (WebCore::WHLSL::Parser::parseSwitchStatement):
+        (WebCore::WHLSL::Parser::parseSwitchCase):
+        (WebCore::WHLSL::Parser::parseForLoop):
+        (WebCore::WHLSL::Parser::parseWhileLoop):
+        (WebCore::WHLSL::Parser::parseDoWhileLoop):
+        (WebCore::WHLSL::Parser::parseVariableDeclaration):
+        (WebCore::WHLSL::Parser::parseVariableDeclarations):
+        (WebCore::WHLSL::Parser::parseStatement):
+        (WebCore::WHLSL::Parser::parseEffectfulExpression):
+        (WebCore::WHLSL::Parser::parseEffectfulAssignment):
+        (WebCore::WHLSL::Parser::parseExpression):
+        (WebCore::WHLSL::Parser::parseTernaryConditional):
+        (WebCore::WHLSL::Parser::completeTernaryConditional):
+        (WebCore::WHLSL::Parser::parseAssignment):
+        (WebCore::WHLSL::Parser::completeAssignment):
+        (WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
+        (WebCore::WHLSL::Parser::parsePossibleLogicalBinaryOperation):
+        (WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation):
+        (WebCore::WHLSL::Parser::parsePossibleRelationalBinaryOperation):
+        (WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation):
+        (WebCore::WHLSL::Parser::parsePossibleShift):
+        (WebCore::WHLSL::Parser::completePossibleShift):
+        (WebCore::WHLSL::Parser::parsePossibleAdd):
+        (WebCore::WHLSL::Parser::completePossibleAdd):
+        (WebCore::WHLSL::Parser::parsePossibleMultiply):
+        (WebCore::WHLSL::Parser::completePossibleMultiply):
+        (WebCore::WHLSL::Parser::parsePossiblePrefix):
+        (WebCore::WHLSL::Parser::parsePossibleSuffix):
+        (WebCore::WHLSL::Parser::parseCallExpression):
+        (WebCore::WHLSL::Parser::parseTerm):
+        (WebCore::WHLSL::Parser::parseAddressSpaceType): Deleted.
+        (WebCore::WHLSL::Parser::parseNonAddressSpaceType): Deleted.
+        (WebCore::WHLSL::Parser::parseEntryPointFunctionDeclaration): Deleted.
+        (WebCore::WHLSL::Parser::parseEffectfulPrefix): Deleted.
+        (WebCore::WHLSL::Parser::parseEffectfulSuffix): Deleted.
+        * Modules/webgpu/WHLSL/WHLSLParser.h:
+        (WebCore::WHLSL::Parser::Error::dump const):
+
+2019-05-29  Jiewen Tan  <jiewen_tan@apple.com>
+
+        Unreviewed, update WebAuthN to "Supported In Preview"
+
+        * features.json:
+
+2019-05-29  Don Olmstead  <don.olmstead@sony.com>
+
+        Remove ENABLE definitions from WebKit config files
+        https://bugs.webkit.org/show_bug.cgi?id=197858
+
+        Reviewed by Simon Fraser.
+
+        Sync FeatureDefines.xcconfig.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2019-05-29  Youenn Fablet  <youenn@apple.com>
+
+        Reestablish WebSWClientConnection in case of network process crash
+        https://bugs.webkit.org/show_bug.cgi?id=198333
+
+        Reviewed by Alex Christensen.
+
+        Refactor DocumentLoader to no longer take a ref to the SWClientConnection.
+        Instead, store the sessionID and get the SWClientConnection from it.
+        Remove unused code from ServiceWorkerContainer.
+
+        Test: http/wpt/service-workers/service-worker-networkprocess-crash.html
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::registerTemporaryServiceWorkerClient):
+        (WebCore::DocumentLoader::unregisterTemporaryServiceWorkerClient):
+        * loader/DocumentLoader.h:
+        * workers/service/ServiceWorkerContainer.cpp:
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerJobClient.h:
+
+2019-05-29  David Kilzer  <ddkilzer@apple.com>
+
+        IndexedDatabase Server thread in com.apple.WebKit.Networking process leaks objects into an autoreleasePool that's never cleared
+        <https://webkit.org/b/198346>
+        <rdar://problem/50895658>
+
+        Reviewed by Brent Fulgham.
+
+        * Modules/indexeddb/server/IDBServer.cpp:
+        (WebCore::IDBServer::IDBServer::IDBServer):
+        - Pass AutodrainedPoolForRunLoop::Use when creating
+          CrossThreadTaskHandler to fix the bug.
+
+2019-05-29  Geoffrey Garen  <ggaren@apple.com>
+
+        WeakPtr breaks vtables when upcasting to base classes
+        https://bugs.webkit.org/show_bug.cgi?id=188799
+
+        Reviewed by Youenn Fablet.
+
+        * Modules/encryptedmedia/MediaKeySession.cpp:
+        (WebCore::MediaKeySession::MediaKeySession):
+        * Modules/encryptedmedia/MediaKeySession.h: Adopted modern WeakPtr APIs.
+        Removed redundant WeakPtrFactory.
+
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::existingWrapper):
+        * css/CSSFontFace.h: Moved functions out of line to avoid #include
+        explosion for .get().
+
+        * dom/ContainerNode.h:
+        * dom/Document.h:
+        * dom/Element.h: Moved CanMakeWeakPtr to ContainerNode because all
+        subclasses except for DocumentFragment were already so, and we have
+        code that uses WeakPtr<ContainerNode>, which, now that WeakPtr is
+        type-safe, is awkward to do when ContainerNode isn't CanMakeWeakPtr.
+
+        * dom/FullscreenManager.cpp:
+        (WebCore::FullscreenManager::fullscreenRenderer const):
+        * dom/FullscreenManager.h:
+        (WebCore::FullscreenManager::fullscreenRenderer const): Deleted.
+        * html/FormAssociatedElement.cpp:
+        (WebCore::FormAssociatedElement::form const):
+        * html/FormAssociatedElement.h:
+        (WebCore::FormAssociatedElement::form const): Deleted. Moved functions
+        out of line to avoid #include explosion for .get().
+
+        * html/HTMLMediaElement.h: It takes an extra using declaration
+        to disambiguate multiple CanMakeWeakPtr base classes now.
+
+        * loader/MediaResourceLoader.cpp:
+        (WebCore::MediaResourceLoader::requestResource): Removed redundant .get().
+
+        * page/DOMWindowProperty.cpp:
+        (WebCore::DOMWindowProperty::window const):
+        * page/DOMWindowProperty.h:
+        (WebCore::DOMWindowProperty::window const): Deleted.
+        * page/FrameViewLayoutContext.cpp:
+        (WebCore::FrameViewLayoutContext::subtreeLayoutRoot const):
+        * page/FrameViewLayoutContext.h:
+        (WebCore::FrameViewLayoutContext::subtreeLayoutRoot const): Deleted.
+        * page/UndoItem.cpp:
+        (WebCore::UndoItem::undoManager const):
+        * page/UndoItem.h:
+        (WebCore::UndoItem::undoManager const): Deleted. Moved functions out of
+        line to avoid #include explosion for .get().
+
+        * platform/ScrollView.h: It takes an extra using declaration
+        to disambiguate multiple CanMakeWeakPtr base classes now.
+
+        * platform/Widget.cpp:
+        (WebCore::Widget::parent const):
+        * platform/Widget.h:
+        (WebCore::Widget::parent const): Deleted. Moved functions out of line to avoid #include
+        explosion for .get().
+
+        * platform/encryptedmedia/CDMInstanceSession.h: Made
+        CDMInstanceSessionClient CanMakeWeakPtr because we use WeakPtr<CDMInstanceSessionClient>.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+        CanMakeWeakPtr is inherited now.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmSession const): Deleted.
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr): Deleted.
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::CMTimebaseEffectiveRateChangedCallback):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmSession const):
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+        (WebCore::SourceBufferPrivateAVFObjC::setCDMSession):
+        (WebCore::SourceBufferPrivateAVFObjC::flushVideo):
+        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
+        (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
+        (WebCore::SourceBufferPrivateAVFObjC::setVideoLayer):
+        (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Modernized WeakPtr API usage.
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::multiColumnFlowSlowCase const):
+        * rendering/RenderBlockFlow.h:
+        (WebCore::RenderBlockFlow::multiColumnFlow const):
+        * rendering/RenderMultiColumnFlow.cpp:
+        (WebCore::RenderMultiColumnFlow::findColumnSpannerPlaceholder const):
+        * rendering/RenderMultiColumnFlow.h:
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::header const):
+        (WebCore::RenderTable::footer const):
+        (WebCore::RenderTable::firstBody const):
+        (WebCore::RenderTable::topSection const):
+        * rendering/RenderTable.h:
+        (WebCore::RenderTable::header const): Deleted.
+        (WebCore::RenderTable::footer const): Deleted.
+        (WebCore::RenderTable::firstBody const): Deleted.
+        (WebCore::RenderTable::topSection const): Deleted. Moved functions out
+        of line to avoid #include explosion for .get().
+
+2019-05-29  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events] toElement and fromElement should be null
+        https://bugs.webkit.org/show_bug.cgi?id=198338
+
+        Reviewed by Dean Jackson.
+
+        * dom/MouseEvent.h:
+        * dom/PointerEvent.h:
+
+2019-05-29  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r245857.
+
+        Breaks internal builds.
+
+        Reverted changeset:
+
+        "WeakPtr breaks vtables when upcasting to base classes"
+        https://bugs.webkit.org/show_bug.cgi?id=188799
+        https://trac.webkit.org/changeset/245857
+
+2019-05-29  Keith Rollin  <krollin@apple.com>
+
+        Fix builds that don't use makeWindowFromView
+        https://bugs.webkit.org/show_bug.cgi?id=198342
+        <rdar://problem/51228563>
+
+        Reviewed by Wenson Hsieh.
+
+        In some configurations, VideoFullscreenInterfaceAVKit.mm declares but
+        does not use makeWindowFromView. Fix by conditionalizing the the
+        declaration on the same symbol as point where it's used.
+
+        No new tests -- no new functionality.
+
+        * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+
+2019-05-28  Geoffrey Garen  <ggaren@apple.com>
+
+        WeakPtr breaks vtables when upcasting to base classes
+        https://bugs.webkit.org/show_bug.cgi?id=188799
+
+        Reviewed by Youenn Fablet.
+
+        * Modules/encryptedmedia/MediaKeySession.cpp:
+        (WebCore::MediaKeySession::MediaKeySession):
+        * Modules/encryptedmedia/MediaKeySession.h: Adopted modern WeakPtr APIs.
+        Removed redundant WeakPtrFactory.
+
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::existingWrapper):
+        * css/CSSFontFace.h: Moved functions out of line to avoid #include
+        explosion for .get().
+
+        * dom/ContainerNode.h:
+        * dom/Document.h:
+        * dom/Element.h: Moved CanMakeWeakPtr to ContainerNode because all
+        subclasses except for DocumentFragment were already so, and we have
+        code that uses WeakPtr<ContainerNode>, which, now that WeakPtr is
+        type-safe, is awkward to do when ContainerNode isn't CanMakeWeakPtr.
+
+        * dom/FullscreenManager.cpp:
+        (WebCore::FullscreenManager::fullscreenRenderer const):
+        * dom/FullscreenManager.h:
+        (WebCore::FullscreenManager::fullscreenRenderer const): Deleted.
+        * html/FormAssociatedElement.cpp:
+        (WebCore::FormAssociatedElement::form const):
+        * html/FormAssociatedElement.h:
+        (WebCore::FormAssociatedElement::form const): Deleted. Moved functions
+        out of line to avoid #include explosion for .get().
+
+        * html/HTMLMediaElement.h: It takes an extra using declaration
+        to disambiguate multiple CanMakeWeakPtr base classes now.
+
+        * loader/MediaResourceLoader.cpp:
+        (WebCore::MediaResourceLoader::requestResource): Removed redundant .get().
+
+        * page/DOMWindowProperty.cpp:
+        (WebCore::DOMWindowProperty::window const):
+        * page/DOMWindowProperty.h:
+        (WebCore::DOMWindowProperty::window const): Deleted.
+        * page/FrameViewLayoutContext.cpp:
+        (WebCore::FrameViewLayoutContext::subtreeLayoutRoot const):
+        * page/FrameViewLayoutContext.h:
+        (WebCore::FrameViewLayoutContext::subtreeLayoutRoot const): Deleted.
+        * page/UndoItem.cpp:
+        (WebCore::UndoItem::undoManager const):
+        * page/UndoItem.h:
+        (WebCore::UndoItem::undoManager const): Deleted. Moved functions out of
+        line to avoid #include explosion for .get().
+
+        * platform/ScrollView.h: It takes an extra using declaration
+        to disambiguate multiple CanMakeWeakPtr base classes now.
+
+        * platform/Widget.cpp:
+        (WebCore::Widget::parent const):
+        * platform/Widget.h:
+        (WebCore::Widget::parent const): Deleted. Moved functions out of line to avoid #include
+        explosion for .get().
+
+        * platform/encryptedmedia/CDMInstanceSession.h: Made
+        CDMInstanceSessionClient CanMakeWeakPtr because we use WeakPtr<CDMInstanceSessionClient>.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+        CanMakeWeakPtr is inherited now.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmSession const): Deleted.
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr): Deleted.
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::CMTimebaseEffectiveRateChangedCallback):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmSession const):
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+        (WebCore::SourceBufferPrivateAVFObjC::setCDMSession):
+        (WebCore::SourceBufferPrivateAVFObjC::flushVideo):
+        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
+        (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
+        (WebCore::SourceBufferPrivateAVFObjC::setVideoLayer):
+        (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Modernized WeakPtr API usage.
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::multiColumnFlowSlowCase const):
+        * rendering/RenderBlockFlow.h:
+        (WebCore::RenderBlockFlow::multiColumnFlow const):
+        * rendering/RenderMultiColumnFlow.cpp:
+        (WebCore::RenderMultiColumnFlow::findColumnSpannerPlaceholder const):
+        * rendering/RenderMultiColumnFlow.h:
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::header const):
+        (WebCore::RenderTable::footer const):
+        (WebCore::RenderTable::firstBody const):
+        (WebCore::RenderTable::topSection const):
+        * rendering/RenderTable.h:
+        (WebCore::RenderTable::header const): Deleted.
+        (WebCore::RenderTable::footer const): Deleted.
+        (WebCore::RenderTable::firstBody const): Deleted.
+        (WebCore::RenderTable::topSection const): Deleted. Moved functions out
+        of line to avoid #include explosion for .get().
+
+2019-05-29  Antti Koivisto  <antti@apple.com>
+
+        Scrolling node ordering wrong when a layer has both positioning and fixed/sticky node
+        https://bugs.webkit.org/show_bug.cgi?id=198329
+
+        Reviewed by Darin Adler.
+
+        Test: scrollingcoordinator/scrolling-tree/sticky-in-overflow.html
+
+        With sticky positioning in non-stacking context overflow you currently get structure like
+
+        FrameScrollingNode
+          OverflowScrollingNode
+          StickyNode
+            PositionedNode
+
+        where StickyNode and PositionedNode reference the same layer. Sticky doesn't get applied at all when the overflow moves.
+
+        This patch reverses the order of sticky and positioned. It doesn't fix sticky positioning during scrolling yet,
+        but it does make it less jumpy. It is a prerequisite for the full fix.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateScrollCoordinationForLayer):
+
+2019-05-29  Ludovico de Nittis  <ludovico.denittis@collabora.com>
+
+        Prepend KEY_ to the last key alias in PlatformEventKeyboardGtk
+        https://bugs.webkit.org/show_bug.cgi?id=198331
+
+        Reviewed by Michael Catanzaro.
+
+        No behavior change.
+
+        With the commit
+        https://bugs.webkit.org/show_bug.cgi?id=198326
+        A gdk key slipped away from the renaming.
+
+        * platform/gtk/PlatformKeyboardEventGtk.cpp:
+        (WebCore::modifiersForGdkKeyEvent):
+
+2019-05-29  Zalan Bujtas  <zalan@apple.com>
+
+        [LFC][IFC] Move Line class to a dedicated file
+        https://bugs.webkit.org/show_bug.cgi?id=198332
+        <rdar://problem/51221403>
+
+        Reviewed by Antti Koivisto.
+
+        An upcoming refactoring requires the Line class to be in a .h.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * layout/displaytree/DisplayRun.h:
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::initializeLine const):
+        (WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const):
+        (WebCore::Layout::halfLeadingMetrics): Deleted.
+        (WebCore::Layout::Line::availableWidth const): Deleted.
+        (WebCore::Layout::Line::contentLogicalRight const): Deleted.
+        (WebCore::Layout::Line::contentLogicalWidth const): Deleted.
+        (WebCore::Layout::Line::logicalTop const): Deleted.
+        (WebCore::Layout::Line::logicalLeft const): Deleted.
+        (WebCore::Layout::Line::logicalRight const): Deleted.
+        (WebCore::Layout::Line::logicalBottom const): Deleted.
+        (WebCore::Layout::Line::logicalWidth const): Deleted.
+        (WebCore::Layout::Line::logicalHeight const): Deleted.
+        (WebCore::Layout::Line::LineItem::LineItem): Deleted.
+        (WebCore::Layout::Line::Line): Deleted.
+        (WebCore::Layout::Line::reset): Deleted.
+        (WebCore::Layout::Line::close): Deleted.
+        (WebCore::Layout::Line::removeTrailingTrimmableContent): Deleted.
+        (WebCore::Layout::Line::moveLogicalLeft): Deleted.
+        (WebCore::Layout::Line::moveLogicalRight): Deleted.
+        (WebCore::Layout::isTrimmableContent): Deleted.
+        (WebCore::Layout::Line::trailingTrimmableWidth const): Deleted.
+        (WebCore::Layout::Line::hasContent const): Deleted.
+        (WebCore::Layout::Line::appendNonBreakableSpace): Deleted.
+        (WebCore::Layout::Line::appendInlineContainerStart): Deleted.
+        (WebCore::Layout::Line::appendInlineContainerEnd): Deleted.
+        (WebCore::Layout::Line::appendTextContent): Deleted.
+        (WebCore::Layout::Line::appendNonReplacedInlineBox): Deleted.
+        (WebCore::Layout::Line::appendReplacedInlineBox): Deleted.
+        (WebCore::Layout::Line::appendHardLineBreak): Deleted.
+        * layout/inlineformatting/InlineTextItem.h:
+        * layout/inlineformatting/text/TextUtil.cpp:
+        (WebCore::Layout::TextUtil::isTrimmableContent):
+        * layout/inlineformatting/text/TextUtil.h:
+
+2019-05-29  Ludovico de Nittis  <ludovico.denittis@collabora.com>
+
+        PlatformEventKeyboardGtk still uses old key aliases
+        https://bugs.webkit.org/show_bug.cgi?id=198326
+
+        Reviewed by Carlos Garcia Campos.
+
+        No behavior change.
+
+        Use the new key names convention prepending "KEY_".
+
+        * platform/gtk/PlatformKeyboardEventGtk.cpp:
+        (WebCore::PlatformKeyboardEvent::keyIdentifierForGdkKeyCode):
+        (WebCore::PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode):
+        (WebCore::PlatformKeyboardEvent::singleCharacterString):
+        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
+
+2019-05-28  Yacine Bandou  <yacine.bandou@softathome.com>
+
+        [MSE][GStreamer] update the readyState correctly in MediaPlayerPrivateGStreamerMSE
+        https://bugs.webkit.org/show_bug.cgi?id=197834
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        The buffering state and the m_downloadFinished boolean aren't supported in the MSE case.
+        When the readyState is already "HaveEnoughData", we don't want to revert it to "HaveFutureData",
+        or else the MediaPlayer would send a "canplay" event instead of a "canplaythrough".
+
+        Test: media/media-source/media-source-canplaythrough-event.html
+
+        * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
+
+2019-05-28  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [WinCairo] ASSERTION FAILED: !m_preparingToPlay in MediaPlayerPrivateMediaFoundation::prepareToPlay
+        https://bugs.webkit.org/show_bug.cgi?id=190747
+
+        Reviewed by Alex Christensen.
+
+        HTMLMediaElement::prepareToPlay had a assertion ensuring that it
+        was not called twice. However, it was called twice. The first from
+        HTMLMediaElement::load, the second from
+        MediaPlayerPrivateMediaFoundation::onTopologySet.
+
+        prepareToPlay started loading. And, loading should be started
+        after onTopologySet is called back.
+
+        Covered by existing tests.
+
+        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
+        (WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet): Moved code from prepareToPlay.
+        (WebCore::MediaPlayerPrivateMediaFoundation::prepareToPlay): Deleted and moved the code to onTopologySet.
+        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h: Removed prepareToPlay declaration.
+
+2019-05-28  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [WinCairo][MediaFoundation] Assertion failure in MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample
+        https://bugs.webkit.org/show_bug.cgi?id=198290
+
+        Reviewed by Per Arne Vollan.
+
+        Covered by existing tests.
+
+        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
+        (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
+        Call clear() of m_memSurface before assigning new value.
+
+2019-05-28  Saam Barati  <sbarati@apple.com>
+
+        [WHLSL] Type of dereference is the type of the thing we point to, not a pointer to that type
+        https://bugs.webkit.org/show_bug.cgi?id=198321
+
+        Reviewed by Myles C. Maxfield.
+
+        Consider this program:
+        ```
+        thread int* x;
+        *x = 42
+        ```
+        
+        In the Checker, we were saying the type of "*x" was "int*" instead of "int".
+
+        Test: webgpu/whlsl-dereference-pointer-should-type-check.html
+
+        * Modules/webgpu/WHLSL/WHLSLChecker.cpp:
+        (WebCore::WHLSL::Checker::visit):
+
+2019-05-28  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] Respect NSItemProvider's registered types when dropping files that are loaded in-place
+        https://bugs.webkit.org/show_bug.cgi?id=198315
+        <rdar://problem/51183762>
+
+        Reviewed by Tim Horton.
+
+        Currently, logic in PasteboardIOS.mm and WebContentReaderCocoa.mm attempts to deduce the content type from the
+        file path when dropping attachments on iOS. Instead, we should be plumbing the content type through to the
+        reader.
+
+        Test: WKAttachmentTestsIOS.InsertDroppedImageWithNonImageFileExtension
+
+        * editing/WebContentReader.h:
+        * editing/cocoa/WebContentReaderCocoa.mm:
+        (WebCore::typeForAttachmentElement):
+
+        Add a helper method to determine which type to use in attachment elements. This makes the paste
+        (attachmentForData) and drop (attachmentForFilePaths) behave the same way, with respect to the type attribute
+        used to represent the attachment.
+
+        (WebCore::attachmentForFilePath):
+
+        Use the content type, if specified; otherwise, fall back to deducing it from the file path.
+
+        (WebCore::attachmentForData):
+        (WebCore::WebContentReader::readFilePath):
+        * platform/Pasteboard.h:
+        (WebCore::PasteboardWebContentReader::readFilePath):
+
+        Pass the highest fidelity representation's content type to the web content reader.
+
+        * platform/ios/PasteboardIOS.mm:
+        (WebCore::Pasteboard::readRespectingUTIFidelities):
+
+2019-05-28  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Move idempotent text autosizing to StyleTreeResolver
+        https://bugs.webkit.org/show_bug.cgi?id=197808
+        <rdar://problem/50283983>
+
+        Reviewed by Antti Koivisto.
+
+        This patch migrates the idempotent text autosizing code to live inside style resolution. This is almost
+        the same as the algorithm that uses the result of layout to calculate autosizing, but this version only
+        operates on style (and thus doesn't require double layouts). Because it is being run in an environment
+        with less information, autosizing is occurring in more places, so the curves have been adjusted to make
+        autosizing not boost as much as the previous implementation did. The new algorithm is modelled after
+        text-decorations-in-effect. I've claimed 4 of the unused bits in RenderStyle to contain the state of the
+        autosizing algorithm. StyleResolver::adjustRenderStyle() is where the algorithm is implemented:
+        - Look at the inherited bits
+        - Interogate the element's RenderStyle
+        - Compute new bits for the element, and set them in its RenderStyle
+        - Based on the newly computed bits, determine whether we should increase the text size
+        - If so, determine how much using the specified font size, and apply the result to the computed font size
+
+        This works because StyleBuilderCustom::applyInheritFontSize() inherits from the specified font size, not
+        the computed font size.
+
+        This patch also will disable autosizing using the other methods (so there aren't two methods of autosizing
+        fighting each other) and will honor text-size-adjust:none. However, it won't honor text-size-adjust:100%.
+        If content says text-size-adjust:100%, we will disregard it and take this code path.
+
+        Tests: fast/text-autosizing/ios/idempotentmode/css-exposure.html
+               fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-skip.html
+               fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-identity.html
+               fast/text-autosizing/ios/idempotentmode/idempotent-autosizing.html
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
+        * css/CSSProperties.json:
+        * css/StyleBuilderCustom.h:
+        (WebCore::computeBaseSpecifiedFontSize):
+        (WebCore::computeLineHeightMultiplierDueToFontSize):
+        * css/StyleResolver.cpp:
+        (WebCore::idempotentTextSize):
+        (WebCore::hasTextChildren):
+        (WebCore::StyleResolver::adjustRenderStyle):
+        (WebCore::StyleResolver::checkForTextSizeAdjust):
+        * page/FrameViewLayoutContext.cpp:
+        (WebCore::FrameViewLayoutContext::applyTextSizingIfNeeded):
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::adjustComputedFontSizes):
+        (WebCore::idempotentTextSize): Deleted.
+        * rendering/RenderBlockFlow.h:
+        * rendering/RenderElement.cpp:
+        (WebCore::includeNonFixedHeight):
+        (WebCore::RenderElement::adjustComputedFontSizesOnBlocks):
+        (WebCore::RenderElement::resetTextAutosizing):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::RenderStyle):
+        (WebCore::RenderStyle::autosizeStatus const):
+        (WebCore::RenderStyle::setAutosizeStatus):
+        * rendering/style/RenderStyle.h:
+        * rendering/style/TextSizeAdjustment.cpp: Added.
+        (WebCore::AutosizeStatus::AutosizeStatus):
+        (WebCore::AutosizeStatus::contains const):
+        (WebCore::AutosizeStatus::modifiedStatus const):
+        (WebCore::AutosizeStatus::shouldSkipSubtree const):
+        * rendering/style/TextSizeAdjustment.h:
+
+2019-05-28  Simon Fraser  <simon.fraser@apple.com>
+
+        Use scroll-velocity-based tile coverage for overflow:scroll
+        https://bugs.webkit.org/show_bug.cgi?id=198294
+        rdar://problem/48942184
+
+        Reviewed by Tim Horton.
+
+        Start using a velocity-based tile coverage computation on layers with Type::ScrolledContents,
+        which is the content layers for overflow:scroll when they get big enough to get tiled.
+
+        Move legacy macOS coverage code into adjustTileCoverageForDesktopPageScrolling() because
+        I don't want to change its behavior in this patch. Use TileController::adjustTileCoverageRectForScrolling()
+        for iOS and macOS overflow scrolling. Since only iOS page scrolling gets velocity data from the UI
+        process, compute velocity in TileController using the visible rect top-left.
+        
+        For overflow scroll, we have to plumb horizontal and vertical coverage in from
+        RenderLayerBacking.
+
+        Tests: tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage.html
+               tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage.html
+               tiled-drawing/scrolling/overflow/overflow-tile-coverage.html
+
+        * platform/graphics/TiledBacking.h:
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::adjustCoverageRect const):
+        * platform/graphics/ca/PlatformCALayer.h:
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::setVelocity):
+        (WebCore::TileController::adjustTileCoverageRect):
+        (WebCore::TileController::adjustTileCoverageForDesktopPageScrolling const):
+        (WebCore::TileController::adjustTileCoverageWithScrollingVelocity const):
+        (WebCore::TileController::adjustTileCoverageRectForScrolling):
+        (WebCore::expandRectWithinRect): Deleted.
+        (WebCore::TileController::adjustTileCoverageRect const): Deleted.
+        (WebCore::TileController::adjustTileCoverageRectForScrolling const): Deleted.
+        * platform/graphics/ca/TileController.h:
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::computePageTiledBackingCoverage):
+        (WebCore::computeOverflowTiledBackingCoverage):
+        (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
+        (WebCore::RenderLayerBacking::updateGeometry):
+
+2019-05-28  Shawn Roberts  <sroberts@apple.com>
+
+        Unreviewed, rolling out r245475.
+
+        Newly imported test is flaky. Features need flags.
+
+        Reverted changeset:
+
+        "Implement imagesrcset and imagesizes attributes on link
+        rel=preload"
+        https://bugs.webkit.org/show_bug.cgi?id=192950
+        https://trac.webkit.org/changeset/245475
+
 2019-05-28  Brent Fulgham  <bfulgham@apple.com>
 
         Protect frames during style and layout changes