Implement CSS `display: flow-root` (modern clearfix)
[WebKit-https.git] / Source / WebCore / ChangeLog
index e074249..5714973 100644 (file)
+2019-05-17  Joonghun Park  <pjh0718@gmail.com>
+
+        Implement CSS `display: flow-root` (modern clearfix)
+        https://bugs.webkit.org/show_bug.cgi?id=165603
+
+        Reviewed by Zalan Bujtas.
+
+        This change follows https://drafts.csswg.org/css-display-3/#valdef-display-flow-root as below.
+
+        'display: flow-root' generates a block container box, and lays out its contents using flow layout.
+        It always establishes a new block formatting context for its contents.
+
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        * css/CSSValueKeywords.in:
+        * css/StyleResolver.cpp:
+        (WebCore::equivalentBlockDisplay):
+        * css/parser/CSSParserFastPaths.cpp:
+        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::createsNewFormattingContext const):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::createFor):
+        * rendering/style/RenderStyleConstants.h:
+
+2019-05-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Use builtin FindICU
+        https://bugs.webkit.org/show_bug.cgi?id=197934
+
+        Reviewed by Michael Catanzaro.
+
+        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.
+
+        * CMakeLists.txt:
+        * PlatformPlayStation.cmake:
+        * PlatformWPE.cmake:
+
+2019-05-17  Alex Christensen  <achristensen@webkit.org>
+
+        Enable legacy EME for iOS WKWebView
+        https://bugs.webkit.org/show_bug.cgi?id=197964
+        <rdar://problem/50625666>
+
+        Reviewed by Wenson Hsieh.
+
+        This was attempted unsuccessfully in r230169.
+        Verified manually that it works as desired.
+
+        * page/RuntimeEnabledFeatures.h:
+
+2019-05-17  Sihui Liu  <sihui_liu@apple.com>
+
+        ASSERTION FAILED: !m_backingStore in WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore(uint64_t)
+        https://bugs.webkit.org/show_bug.cgi?id=197741
+        <rdar://problem/50625006>
+
+        Reviewed by Youenn Fablet.
+
+        If an open request is made before a delete request, open task should be performed before delete task on the
+        database thread. After r242911, open request needs to wait decision of StorageQuotaManager before posting task
+        to database thread, while delete request needs not. This makes deletion happen before open.
+
+        We need to make sure tasks are in correct order by not starting next open or delete request when database is in 
+        the middle of open or deletion.
+
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
+        (WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
+
+2019-05-17  Antoine Quint  <graouts@apple.com>
+
+        Add a website policy to disable the legacy -webkit-overflow-scrolling:touch behavior
+        https://bugs.webkit.org/show_bug.cgi?id=197943
+        <rdar://problem/49078202>
+
+        Reviewed by Brent Fulgham.
+
+        Tests: fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html
+               platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html
+
+        * css/parser/CSSParserContext.cpp:
+        (WebCore::CSSParserContext::CSSParserContext):
+        * loader/DocumentLoader.h:
+        (WebCore::DocumentLoader::legacyOverflowScrollingTouchPolicy const):
+        (WebCore::DocumentLoader::setLegacyOverflowScrollingTouchPolicy):
+
+2019-05-17  Alex Christensen  <achristensen@webkit.org>
+
+        Add SPI to set a list of hosts to which to send custom header fields cross-origin
+        https://bugs.webkit.org/show_bug.cgi?id=197397
+
+        Reviewed by Geoff Garen.
+
+        In r223001 I added the ability to send custom headers, but with a restriction that they will not be sent except to the origin of the main document.
+        We need the ability to specify what origins to send these headers to even if they are not first party requests.
+        We get this information in a list of strings which are the hosts to send the headers to.  Some of the strings have an asterisk at the beginning,
+        indicating that the headers are to be sent to all subdomains.
+
+        I repurposed some ObjC SPI that was never adopted, but I keep testing the C API that was to verify no regression.
+        I also added some new API tests for the new behavior.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/CustomHeaderFields.cpp: Added.
+        (WebCore::CustomHeaderFields::thirdPartyDomainsMatch const):
+        * loader/CustomHeaderFields.h: Added.
+        (WebCore::CustomHeaderFields::encode const):
+        (WebCore::CustomHeaderFields::decode):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::setCustomHeaderFields): Deleted.
+        * loader/DocumentLoader.h:
+        (WebCore::DocumentLoader::setCustomHeaderFields):
+        (WebCore::DocumentLoader::customHeaderFields const):
+        (WebCore::DocumentLoader::customHeaderFields): Deleted.
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestResource):
+
+2019-05-17  Youenn Fablet  <youenn@apple.com>
+
+        Make AVVideoCaptureSource more robust to configuration failures
+        https://bugs.webkit.org/show_bug.cgi?id=197997
+        rdar://problem/50875662
+
+        Reviewed by Eric Carlson.
+
+        Covered by manual testing.
+
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
+        Make sure to commit configuration once calling beginConfiguration.
+        In case of error in setting frame rate, log the error but continue capturing.
+
+2019-05-17  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-delay-onload.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:
+
+2019-05-17  Keith Rollin  <krollin@apple.com>
+
+        Re-enable generate-xcfilelists
+        https://bugs.webkit.org/show_bug.cgi?id=197933
+        <rdar://problem/50831677>
+
+        Reviewed by Jonathan Bedard.
+
+        The following two tasks have been completed, and we can re-enable
+        generate-xcfilelists:
+
+        Bug 197619 <rdar://problem/50507392> Temporarily disable generate-xcfilelists (197619)
+        Bug 197622 <rdar://problem/50508222> Rewrite generate-xcfilelists in Python (197622)
+
+        No new tests -- no change in user-visible functionality.
+
+        * Scripts/check-xcfilelists.sh:
+
+2019-05-17  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Fix a typo in some user agent string logic
+        https://bugs.webkit.org/show_bug.cgi?id=197992
+        <rdar://problem/50895962>
+
+        Reviewed by Brent Fulgham.
+
+        Adjust the major version number for the desktop user agent string.
+
+        * platform/ios/UserAgentIOS.mm:
+        (WebCore::standardUserAgentWithApplicationName):
+
+2019-05-17  Simon Fraser  <simon.fraser@apple.com>
+
+        REGRESSION (r245170): gmail.com inbox table header flickers
+        https://bugs.webkit.org/show_bug.cgi?id=198005
+        <rdar://problem/50907718>
+
+        Reviewed by Antti Koivisto.
+
+        When a layer started as painting into shared backing, but then became independently
+        composited (e.g. by having to clip composited children), it wouldn't have the "overlap"
+        indirect compositing reason. This allowed requiresOwnBackingStore() to say that it
+        could paint into some ancestor, but this breaks overlap. So in this code path,
+        put IndirectCompositingReason::Overlap back on the layer which restores the previous
+        behavior.
+
+        Make some logging changes to help diagnose things like this.
+
+        Test: compositing/shared-backing/overlap-after-end-sharing.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::calculateClipRects const):
+        (WebCore::outputPaintOrderTreeLegend):
+        (WebCore::outputPaintOrderTreeRecursive):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::updateBacking):
+        (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
+        (WebCore::RenderLayerCompositor::reasonsForCompositing const):
+        (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
+        * rendering/RenderLayerCompositor.h:
+
+2019-05-17  Simon Fraser  <simon.fraser@apple.com>
+
+        REGRESSION (r245170): gmail.com header flickers when hovering over the animating buttons
+        https://bugs.webkit.org/show_bug.cgi?id=197975
+        <rdar://problem/50865946>
+
+        Reviewed by Antti Koivisto.
+
+        When computeCompositingRequirements() determined that a layer could paint into shared backing, it
+        pushed an overlap container. If that layer then converted to normal composting, we'd push a second
+        overlap container, which left the overlap map in a bad state for the rest of the compositing
+        traversal, causing layers to not get composited when necessary.
+
+        Test: compositing/shared-backing/overlap-after-shared-to-composited.html
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
+2019-05-17  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r245401.
+        https://bugs.webkit.org/show_bug.cgi?id=197990
+
+        Causing internal build failures (Requested by ShawnRoberts on
+        #webkit).
+
+        Reverted changeset:
+
+        "Add SPI to set a list of hosts to which to send custom header
+        fields cross-origin"
+        https://bugs.webkit.org/show_bug.cgi?id=197397
+        https://trac.webkit.org/changeset/245401
+
+2019-05-16  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        SVGElement should detach itself from all its properties before it is deleted
+        https://bugs.webkit.org/show_bug.cgi?id=197954
+
+        Reviewed by Simon Fraser.
+
+        Before deleting the SVGElement node, SVGElement::detachAllProperties()
+        needs to be called. This will make the properties be detached objects
+        which means no change will be committed unless these properties are
+        attached to another owner.
+
+        Test: svg/dom/svg-properties-detach-change.html
+
+        * dom/Node.cpp:
+        (WebCore::Node::removedLastRef):
+        * svg/SVGElement.h:
+        (WebCore::SVGElement::detachAllProperties):
+
+2019-05-17  Eric Carlson  <eric.carlson@apple.com>
+
+        Allow sequential playback of media files when initial playback started with a user gesture
+        https://bugs.webkit.org/show_bug.cgi?id=197959
+        <rdar://problem/50655207>
+
+        Reviewed by Youenn Fablet.
+
+        Test: media/playlist-inherits-user-gesture.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::processingUserGestureForMedia const): Return true if it is within
+        one second of the last HTMLMediaElement 'ended' event.
+        * dom/Document.h:
+        (WebCore::Document::mediaFinishedPlaying):
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute): removeBehaviorsRestrictionsAfterFirstUserGesture -> 
+        removeBehaviorRestrictionsAfterFirstUserGesture.
+        (WebCore::HTMLMediaElement::load): Ditto. Don't call removeBehaviorsRestrictionsAfterFirstUserGesture,
+        it will be done in prepareForLoad.
+        (WebCore::HTMLMediaElement::prepareForLoad): removeBehaviorsRestrictionsAfterFirstUserGesture -> 
+        removeBehaviorRestrictionsAfterFirstUserGesture.
+        (WebCore::HTMLMediaElement::audioTrackEnabledChanged): Ditto.
+        (WebCore::HTMLMediaElement::play): Ditto.
+        (WebCore::HTMLMediaElement::pause): Ditto.
+        (WebCore::HTMLMediaElement::setVolume): Ditto.
+        (WebCore::HTMLMediaElement::setMuted): Ditto.
+        (WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Ditto.
+        (WebCore::HTMLMediaElement::dispatchEvent): Call document().mediaFinishedPlaying()
+        when dispatching the 'ended' event.
+        (WebCore::HTMLMediaElement::removeBehaviorRestrictionsAfterFirstUserGesture): Rename. Set
+        m_removedBehaviorRestrictionsAfterFirstUserGesture.
+        (WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Deleted.
+        * html/HTMLMediaElement.h:
+        
+        * html/HTMLVideoElement.cpp:
+        (WebCore:HTMLVideoElement::nativeImageForCurrentTime): Convert to runtime logging.
+        (WebCore:HTMLVideoElement::webkitEnterFullscreen): Ditto.
+        (WebCore:HTMLVideoElement::webkitSetPresentationMode): Ditto.
+        (WebCore:HTMLVideoElement::fullscreenModeChanged): Ditto.
+
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::removeBehaviorRestriction): Update log message.
+
+2019-05-17  Brent Fulgham  <bfulgham@apple.com>
+
+        Hardening: Prevent FrameLoader crash due to SetForScope
+        https://bugs.webkit.org/show_bug.cgi?id=197458
+        <rdar://problem/50368338>
+
+        Reviewed by Chris Dumez.
+
+        Since SetForScope takes action during a function returns, it might cause
+        a crash if its scope is broader than the value it is resetting.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadDifferentDocumentItem):
+
+2019-05-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Need WebKitContextMenuItemType to open emoji picker
+        https://bugs.webkit.org/show_bug.cgi?id=176760
+
+        Reviewed by Michael Catanzaro.
+
+        Add a new context menu item to insert an emoji.
+
+        * loader/EmptyClients.cpp: Empty implementation of ContextMenuClient::insertEmoji().
+        * page/ContextMenuClient.h: Add insertEmoji for GTK port.
+        * page/ContextMenuController.cpp:
+        (WebCore::ContextMenuController::contextMenuItemSelected): Handle insert emoji action.
+        (WebCore::ContextMenuController::populate): Add insert emoji item after select all.
+        (WebCore::ContextMenuController::checkOrEnableIfNeeded const): Handle insert emoji action.
+        * platform/ContextMenuItem.h: Add insert emoji action.
+        * platform/LocalizedStrings.h:
+        * platform/gtk/LocalizedStringsGtk.cpp:
+        (WebCore::contextMenuItemTagInsertEmoji):
+
+2019-05-16  Greg Doolittle  <gr3g@apple.com>
+
+        AX: Unship some ARIA string reflectors that are to-be-replaced by element reflection
+        https://bugs.webkit.org/show_bug.cgi?id=197764
+        <rdar://problem/50649689>
+
+        Reviewed by Chris Fleizach.
+
+        Specifically these:
+        - ariaActiveDescendant
+        - ariaControls
+        - ariaDescribedBy
+        - ariaDetails
+        - ariaErrorMessage
+        - ariaFlowTo
+        - ariaLabelledBy
+        - ariaOwns
+
+        Test: LayoutTests/accessibility/ARIA-reflections.html (updated)
+
+        * accessibility/AriaAttributes.idl:
+
+2019-05-16  Youenn Fablet  <youenn@apple.com>
+
+        CoreAudioCaptureSource should be marked as an audio capture track
+        https://bugs.webkit.org/show_bug.cgi?id=197953
+        <rdar://problem/50552007>
+
+        Reviewed by Eric Carlson.
+
+        Manually tested.
+
+        * platform/mediastream/mac/CoreAudioCaptureSource.h:
+        Mark it as microphone so that it can get muted properly.
+
+2019-05-16  Alex Christensen  <achristensen@webkit.org>
+
+        Add SPI to set a list of hosts to which to send custom header fields cross-origin
+        https://bugs.webkit.org/show_bug.cgi?id=197397
+
+        Reviewed by Geoff Garen.
+
+        In r223001 I added the ability to send custom headers, but with a restriction that they will not be sent except to the origin of the main document.
+        We need the ability to specify what origins to send these headers to even if they are not first party requests.
+        We get this information in a list of strings which are the hosts to send the headers to.  Some of the strings have an asterisk at the beginning,
+        indicating that the headers are to be sent to all subdomains.
+
+        I repurposed some ObjC SPI that was never adopted, but I keep testing the C API that was to verify no regression.
+        I also added some new API tests for the new behavior.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/CustomHeaderFields.cpp: Added.
+        (WebCore::CustomHeaderFields::thirdPartyDomainsMatch const):
+        * loader/CustomHeaderFields.h: Added.
+        (WebCore::CustomHeaderFields::encode const):
+        (WebCore::CustomHeaderFields::decode):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::setCustomHeaderFields): Deleted.
+        * loader/DocumentLoader.h:
+        (WebCore::DocumentLoader::setCustomHeaderFields):
+        (WebCore::DocumentLoader::customHeaderFields const):
+        (WebCore::DocumentLoader::customHeaderFields): Deleted.
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestResource):
+
+2019-05-16  Ali Juma  <ajuma@chromium.org>
+
+        [IntersectionObserver] Regression: No initial observation when nothing else triggers rendering
+        https://bugs.webkit.org/show_bug.cgi?id=197891
+
+        Reviewed by Simon Fraser.
+
+        Schedule a rendering update whenever a new IntersectionObserver target is added.
+
+        Test: intersection-observer/initial-observation.html
+
+        * page/IntersectionObserver.cpp:
+        (WebCore::IntersectionObserver::observe):
+
+2019-05-16  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [FreeType] Some character sequences with a variation selector are not rendered
+        https://bugs.webkit.org/show_bug.cgi?id=197838
+
+        Reviewed by Michael Catanzaro.
+
+        We get the invalid glyph instead. See http://mts.io/2015/04/21/unicode-symbol-render-text-emoji/. In the table at
+        the end the Emoji and Text columns are not correctly rendered. It happens also when copying an emoji from
+        GtkEmojiChooser and pasting in WebKit text field, because GTK appends U+FE0F to all emojis to force the emoji
+        style. We need to take into account the variation selector when checking if a font can render a combining
+        sequence, using FT_Face_GetCharVariantIndex to get the right glyph in case of variation character present.
+
+        * platform/graphics/Font.cpp:
+        (WebCore::Font::platformSupportsCodePoint const): Add optional variation parameter.
+        (WebCore::Font::canRenderCombiningCharacterSequence const): Take into account variation selector characters
+        * platform/graphics/Font.h:
+        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
+        (WebCore::FontCascade::fontForCombiningCharacterSequence const): Check variation selectors 0xFE0E and 0xFE0F to
+        decide whether to use the emoji or text style.
+        * platform/graphics/cocoa/FontCocoa.mm:
+        (WebCore::Font::platformSupportsCodePoint const): Return false when a variation character is passed so that
+        characters are checked individually.
+        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
+        (WebCore::Font::platformSupportsCodePoint const): Use FT_Face_GetCharVariantIndex when a variation character is
+        passed.
+        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
+        (WebCore::harfBuzzFontFunctions): Do not return true when FT_Face_GetCharVariantIndex returns 0.
+
+2019-05-16  Greg Hughes  <ghughes@apple.com>
+
+        Updated screenHasInvertedColors to use AppKit when available
+        https://bugs.webkit.org/show_bug.cgi?id=197935
+        <rdar://problem/50834405>
+
+        Reviewed by Chris Fleizach.
+
+        * platform/mac/PlatformScreenMac.mm:
+        (WebCore::collectScreenProperties):
+        (WebCore::screenHasInvertedColors):
+
+2019-05-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Avoid a recursive descendants layer walk sometimes
+        https://bugs.webkit.org/show_bug.cgi?id=197939
+
+        Reviewed by Zalan Bujtas.
+
+        If a layer got composited post-descendants because it needs to clip, for example, we'd do a recursive
+        descendant tree walk to add layers to the overlap map. However, all the descendants would already
+        have contributed to the overlap map if some non-root ancestor was already composited. So we can
+        skip the addDescendantsToOverlapMapRecursive() if we know, before descendants, whether there's
+        a non-root composited ancestor.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::CompositingState::hasNonRootCompositedAncestor const):
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
+2019-05-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Clean up code related to compositing overlap map maintenance
+        https://bugs.webkit.org/show_bug.cgi?id=197936
+
+        Reviewed by Zalan Bujtas.
+
+        Clarify the logic around updating the overlap map:
+
+        When a layer becomes composited, or paints into a non-root composited layer, we add it to the overlap map
+        after traversing descendants (since it only affets layers later in traversal).
+
+        If a layer became composited after traversing descendants, we need to go back and add all the descendants
+        to the overlap map with a recursive traversal.
+
+        We can do all this near the end of computeCompositingRequirements/traverseUnchangedSubtree because
+        we only check overlap when we enter this function on later layers.
+
+        Add a CompositingOverlap log channel and use it to log the state of the overlap map.
+
+        * platform/Logging.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
+        (WebCore::RenderLayerCompositor::addToOverlapMap const):
+        (WebCore::RenderLayerCompositor::addDescendantsToOverlapMapRecursive const):
+        (WebCore::RenderLayerCompositor::updateOverlapMap const):
+        (WebCore::RenderLayerCompositor::addToOverlapMap): Deleted.
+        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive): Deleted.
+        * rendering/RenderLayerCompositor.h:
+
+2019-05-15  Timothy Hatcher  <timothy@apple.com>
+
+        REGRESSION (r245072): Missing code in Document::styleColorOptions to propagate StyleColor::Options::UseInactiveAppearance
+        https://bugs.webkit.org/show_bug.cgi?id=197930
+        rdar://problem/49833954
+
+        Reviewed by Wenson Hsieh and Megan Gardner.
+
+        Add some code that was missing from Document in my original patch for r245072.
+
+        * dom/Document.cpp:
+        (WebCore::Document::useSystemAppearance const): Drive-by fix code style.
+        (WebCore::Document::useInactiveAppearance const): Added.
+        (WebCore::Document::styleColorOptions const): Add StyleColor::Options::UseInactiveAppearance.
+        * dom/Document.h: Added useInactiveAppearance().
+
+2019-05-15  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: user gesture toggle should also force user interaction flag
+        https://bugs.webkit.org/show_bug.cgi?id=197269
+
+        Reviewed by Joseph Pecoraro.
+
+        Test: inspector/runtime/evaluate-userGestureEmulation-userIsInteracting.html
+
+        * inspector/agents/page/PageRuntimeAgent.cpp:
+        (WebCore::PageRuntimeAgent::evaluate):
+
+        * page/ChromeClient.h:
+        (WebCore::ChromeClient::userIsInteracting const): Added.
+        (WebCore::ChromeClient::setUserIsInteracting): Added.
+
+        * testing/Internals.idl:
+        * testing/Internals.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::userIsInteracting): Added.
+
+2019-05-15  Zalan Bujtas  <zalan@apple.com>
+
+        Do not create a shape object outside of the layout context
+        https://bugs.webkit.org/show_bug.cgi?id=197926
+        <rdar://problem/50627858>
+
+        Reviewed by Simon Fraser.
+
+        ShapeOutside objects are used to compute line constrains during layout (in a strict sense, they are part of the layout context and should only be mutated during layout).
+        If we don't create one during layout, we probably don't need to know its geometry during paint (or any other non-layout activity) either.
+
+        Test: fast/block/float/float-with-shape-outside-crash.html
+
+        * rendering/FloatingObjects.cpp:
+        (WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded):
+        (WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatRight>::updateOffsetIfNeeded):
+        * rendering/shapes/ShapeOutsideInfo.cpp:
+        (WebCore::ShapeOutsideInfo::computeDeltasForContainingBlockLine):
+
+2019-05-15  Youenn Fablet  <youenn@apple.com>
+
+        Mark beacon and ping loads as low priority
+        https://bugs.webkit.org/show_bug.cgi?id=197919
+        <rdar://problem/50818286>
+
+        Reviewed by Alex Christensen.
+
+        No JS observable change of behavior.
+
+        * Modules/beacon/NavigatorBeacon.cpp:
+        (WebCore::NavigatorBeacon::sendBeacon):
+        * loader/PingLoader.cpp:
+        (WebCore::PingLoader::sendPing):
+
+2019-05-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Clean up RenderLayerCompositor::computeCompositingRequirements() and traverseUnchangedSubtree()
+        https://bugs.webkit.org/show_bug.cgi?id=197931
+
+        Reviewed by Zalan Bujtas.
+
+        These functions have grown and become hard to maintain, so try to undo some technical debt.
+
+        Rename "childState" to "currentState" since it's the state we pass to children, but also
+        is state we change when the current layer becomes composited.
+
+        Separate the layerWillComposite() lambda from layerWillCompositePostDescendants().
+
+        Group the chunks of code at end of the functions into:
+            - updating bits on RenderLayer
+            - updating compositingState with changes from children and our state
+            - doing post-traversal work on overlapMap and backingSharingState
+
+        Code shared between the two functions is pushed into CompositingState::updateWithDescendantStateAndLayer().
+
+        This moves code around but should not cause any behavior change.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateConfiguration):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::OverlapExtent::knownToBeHaveExtentUncertainty const):
+        (WebCore::RenderLayerCompositor::CompositingState::updateWithDescendantStateAndLayer):
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
+        (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
+        (WebCore::RenderLayerCompositor::CompositingState::propagateStateFromChildren): Deleted.
+        (WebCore::RenderLayerCompositor::CompositingState::propagateStateFromChildrenForUnchangedSubtree): Deleted.
+        (WebCore::RenderLayerCompositor::clipsCompositingDescendants const): Deleted.
+        * rendering/RenderLayerCompositor.h:
+
+2019-05-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Make LayerOverlapMap able to output to a TextStream
+        https://bugs.webkit.org/show_bug.cgi?id=197923
+
+        Reviewed by Zalan Bujtas.
+
+        Make it possible output LayerOverlapMap to a TextStream for logging.
+
+        * rendering/LayerOverlapMap.cpp:
+        (WebCore::OverlapMapContainer::rectList const):
+        (WebCore::operator<<):
+        * rendering/LayerOverlapMap.h:
+        (WebCore::LayerOverlapMap::overlapStack const):
+
+2019-05-15  Youenn Fablet  <youenn@apple.com>
+
+        getUserMedia sandbox extensions should not be revoked when a getUserMedia allowed request is being processed
+        https://bugs.webkit.org/show_bug.cgi?id=197851
+
+        Reviewed by Alex Christensen.
+
+        Add a completion handler to create a new capture stream.
+        This is used by WK2 layer to acknowledge the pending capture request is completed.
+        Just after the completion handler, make sure to update the document media state.
+        This is done to ensure that, should capture failing, the UIProcess
+        knows about it and can manage proper sandbox extension revocation.
+
+        Test: fast/mediastream/gum-stop-track.html
+
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::allow):
+        (WebCore::UserMediaRequest::PendingActivationMediaStream::PendingActivationMediaStream):
+        (WebCore::UserMediaRequest::PendingActivationMediaStream::~PendingActivationMediaStream):
+        * Modules/mediastream/UserMediaRequest.h:
+        (WebCore::UserMediaRequest::PendingActivationMediaStream::create):
+        * platform/mock/MockRealtimeMediaSourceCenter.cpp:
+        (WebCore::MockRealtimeMediaSourceCenter::mockRealtimeMediaSourceCenterEnabled):
+        * platform/mock/MockRealtimeMediaSourceCenter.h:
+
+2019-05-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Make LOG_WITH_STREAM more efficient
+        https://bugs.webkit.org/show_bug.cgi?id=197905
+
+        Reviewed by Alex Christensen.
+
+        No longer need to conditionalize ClipRects logging on the channel being enabled
+        since LOG_WITH_STREAM fix the performance problem.
+
+        Convert some RenderLayerCompositor logging to use LOG_WITH_STREAM.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::calculateClipRects const):
+        (WebCore::clipRectsLogEnabled): Deleted.
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
+
+2019-05-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Move RenderLayerCompositor's OverlapMap to its own file
+        https://bugs.webkit.org/show_bug.cgi?id=197915
+
+        Reviewed by Alex Christensen.
+
+        Move OverlapMap to its own file.
+        Make use of RectList, which was in the file but unused!
+        Allocate OverlapMapContainer on the heap both to avoid header pollution of internals,
+        and because they will get bigger in future.
+
+        No behavior change.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * rendering/LayerOverlapMap.cpp: Added.
+        (WebCore::RectList::append):
+        (WebCore::RectList::intersects const):
+        (WebCore::OverlapMapContainer::add):
+        (WebCore::OverlapMapContainer::overlapsLayers const):
+        (WebCore::OverlapMapContainer::unite):
+        (WebCore::LayerOverlapMap::LayerOverlapMap):
+        (WebCore::LayerOverlapMap::add):
+        (WebCore::LayerOverlapMap::overlapsLayers const):
+        (WebCore::LayerOverlapMap::pushCompositingContainer):
+        (WebCore::LayerOverlapMap::popCompositingContainer):
+        * rendering/LayerOverlapMap.h: Added.
+        (WebCore::LayerOverlapMap::isEmpty const):
+        (WebCore::LayerOverlapMap::geometryMap const):
+        (WebCore::LayerOverlapMap::geometryMap):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateCompositingLayers):
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
+        (WebCore::RenderLayerCompositor::computeExtent const):
+        (WebCore::RenderLayerCompositor::addToOverlapMap):
+        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
+        (WebCore::OverlapMapContainer::add): Deleted.
+        (WebCore::OverlapMapContainer::overlapsLayers const): Deleted.
+        (WebCore::OverlapMapContainer::unite): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::add): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers const): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::isEmpty const): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::geometryMap const): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::geometryMap): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::RectList::append): Deleted.
+        (WebCore::RenderLayerCompositor::OverlapMap::RectList::intersects const): Deleted.
+        * rendering/RenderLayerCompositor.h:
+
+2019-05-15  Devin Rousso  <drousso@apple.com>
+
+        Web Automation: elements larger than the viewport have incorrect in-view center point
+        https://bugs.webkit.org/show_bug.cgi?id=195696
+        <rdar://problem/48737122>
+
+        Reviewed by Simon Fraser.
+
+        Original patch by Brian Burg <bburg@apple.com>.
+
+        Some conversion methods do not exist for `FloatRect`/`FloatPoint`. Fill them in as needed,
+        and export some symbols used by WebDriver code to compute an element's in-view center point
+        in various coordinate systems.
+
+        * dom/TreeScope.h:
+        * dom/TreeScope.cpp:
+        (WebCore::TreeScope::elementsFromPoint): Added.
+        * page/FrameView.h:
+        * page/FrameView.cpp:
+        (WebCore::FrameView::absoluteToLayoutViewportPoint const): Added.
+        (WebCore::FrameView::layoutViewportToAbsoluteRect const): Added.
+        (WebCore::FrameView::absoluteToLayoutViewportRect const): Added.
+        * platform/ScrollView.h:
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::viewToContents const): Added.
+        (WebCore::ScrollView::contentsToView const): Added.
+        (WebCore::ScrollView::contentsToRootView const): Added.
+        * platform/Widget.h:
+        * platform/Widget.cpp:
+        (WebCore::Widget::convertToRootView const): Added.
+        (WebCore::Widget::convertFromRootView const): Added.
+        (WebCore::Widget::convertToContainingView const): Added.
+        (WebCore::Widget::convertFromContainingView const): Added.
+
+2019-05-14  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Missing cursor/caret showing in search field on google.com
+        https://bugs.webkit.org/show_bug.cgi?id=197862
+        <rdar://problem/50291989>
+
+        Reviewed by Simon Fraser.
+
+        In this bug, the search field is inside of a fixed position container, which is inside of an empty "overflow:
+        hidden" form element (the new layout test demonstrates a simple version of this). The layer of the fixed
+        position container's renderer has an overflow clipping layer of itself, and its clipping rect is non-empty, so
+        the heuristic initially identifies the layer as not fully clipped. However, as the heuristic ascends the
+        RenderLayer tree, it then finds the layer for the "overflow: hidden" form element's renderer; this layer is
+        completely clipped, which causes the heuristic to incorrectly believe that the editable element is completely
+        clipped.
+
+        To fix the bug, this patch reworks the clipping portion of the heuristic, such that we no longer need to ascend
+        the layer tree. Instead of computing the clip rect relative to the nearest ancestor that has an overflow clip
+        and then walking up the layer tree repeating this process, simply compute the clip rect relative to RenderView's
+        layer, and then walk up to the parent frame and repeat if necessary.
+
+        Test: editing/selection/ios/do-not-hide-selection-in-visible-field.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::isTransparentOrFullyClippedRespectingParentFrames const):
+
+2019-05-14  Andy Estes  <aestes@apple.com>
+
+        [Apple Pay] Payment APIs should be completely disabled in web views into which clients have injected user scripts
+        https://bugs.webkit.org/show_bug.cgi?id=197751
+        <rdar://problem/50631563>
+
+        Reviewed by Alex Christensen.
+
+        In r243324, when a document has had user agent scripts injected into it, payment APIs were
+        disabled at runtime by having all entry points return falsy values or throw exceptions
+        (e.g., ApplePaySession.canMakePayments() returns false).
+
+        In the case of user scripts in particular (e.g., WKUserScript), since we know whether these
+        exist at the time we create a document's DOMWindow, we can do better than r243324 by
+        completely disabling the payment APIs in the presence of user scripts.
+
+        To achieve this, this change introduces the 'EnabledByContext' extended attribute for
+        interfaces, which instructs the bindings generator to add a conjunct to the payment API
+        constructors that asks the interface's implementation class whether it should be enabled for
+        a given ScriptExecutionContext. The PaymentRequest and ApplePaySession interfaces adopt this
+        new extended attribute to implement the new user script check.
+
+        Added new API tests.
+
+        * Modules/applepay/ApplePaySession.idl:
+        * Modules/applepay/PaymentCoordinator.cpp:
+        (WebCore::PaymentCoordinator::shouldEnableApplePayAPIs const):
+        * Modules/applepay/PaymentCoordinator.h:
+        * Modules/applepay/PaymentSession.cpp:
+        (WebCore::PaymentSession::enabledForContext):
+        * Modules/applepay/PaymentSession.h:
+        * Modules/paymentrequest/PaymentHandler.cpp:
+        (WebCore::PaymentHandler::enabledForContext):
+        * Modules/paymentrequest/PaymentHandler.h:
+        * Modules/paymentrequest/PaymentRequest.cpp:
+        (WebCore::PaymentRequest::enabledForContext):
+        * Modules/paymentrequest/PaymentRequest.h:
+        * Modules/paymentrequest/PaymentRequest.idl:
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (NeedsRuntimeCheck):
+        (GenerateRuntimeEnableConditionalString):
+        * bindings/scripts/IDLAttributes.json:
+        * bindings/scripts/preprocess-idls.pl:
+        (GenerateConstructorAttributes):
+        * bindings/scripts/test/JS/JSTestEnabledForContext.cpp: Added.
+        * bindings/scripts/test/JS/JSTestEnabledForContext.h: Added.
+        * bindings/scripts/test/JS/JSTestGlobalObject.cpp:
+        (WebCore::JSTestGlobalObject::finishCreation):
+        (WebCore::jsTestGlobalObjectTestEnabledForContextConstructorGetter):
+        (WebCore::jsTestGlobalObjectTestEnabledForContextConstructor):
+        (WebCore::setJSTestGlobalObjectTestEnabledForContextConstructorSetter):
+        (WebCore::setJSTestGlobalObjectTestEnabledForContextConstructor):
+        * bindings/scripts/test/TestEnabledForContext.idl: Added.
+
+2019-05-14  Robin Morisset  <rmorisset@apple.com>
+
+        [WHLSL] parseEffectfulSuffix() is never called
+        https://bugs.webkit.org/show_bug.cgi?id=195864
+        <rdar://problem/50746278>
+
+        Reviewed by Myles C. Maxfield.
+
+        The fix is trivial: when parseEffectfulPrefix does not see a ++ or --, it must call parseEffectfulSuffix.
+
+        No test yet, as it is not testable until the property resolver is finished.
+        It will be tested with the rest of the compiler, when we port the testsuite from the js implementation (it already covers this case).
+
+        * Modules/webgpu/WHLSL/WHLSLParser.cpp:
+        (WebCore::WHLSL::Parser::parseEffectfulPrefix):
+
+2019-05-14  Robin Morisset  <rmorisset@apple.com>
+
+        [WHLSL] parseEffectfulAssignment should not call parseCallExpression directly
+        https://bugs.webkit.org/show_bug.cgi?id=197890
+
+        Reviewed by Myles Maxfield.
+
+        callExpression already appears in effSuffix which is in effPrefix which is in effAssignment, so having it directly in effAssignment as well is useless (and ambiguous).
+        I've already fixed the grammar (https://github.com/gpuweb/WHLSL/commit/a07005f4d692fe3370618dca5db218992b362049), the grammar was always good, this patch is fixing the parser.
+
+        * Modules/webgpu/WHLSL/WHLSLParser.cpp:
+        (WebCore::WHLSL::Parser::parseEffectfulAssignment):
+
+2019-05-14  Ross Kirsling  <ross.kirsling@sony.com>
+
+        Unreviewed restoration of non-unified build.
+
+        * Modules/cache/DOMCache.cpp:
+        * bindings/js/JSLazyEventListener.h:
+        * loader/NavigationScheduler.h:
+        * page/Quirks.cpp:
+        * page/Quirks.h:
+        * rendering/ClipRect.cpp:
+
+2019-05-14  Zalan Bujtas  <zalan@apple.com>
+
+        Do not try to issue repaint while the render tree is being destroyed.
+        https://bugs.webkit.org/show_bug.cgi?id=197461
+        <rdar://problem/50368992>
+
+        Reviewed by Simon Fraser.
+
+        Test: http/tests/svg/crash-on-reload-with-filter.html
+
+        We don't need to compute repaint rects when the render tree is getting torn down. We'll issue a full repaint at some point.
+        Also during full render tree destruction the inline tree state is undefined. We should avoid accessing it.
+
+        * rendering/svg/RenderSVGResourceContainer.cpp:
+        (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
+
+2019-05-14  Youenn Fablet  <youenn@apple.com>
+
+        A service worker process should app nap when all its clients app nap
+        https://bugs.webkit.org/show_bug.cgi?id=185626
+        <rdar://problem/46785908>
+
+        Reviewed by Alex Christensen.
+
+        Update RegistrableDomain to work with SecurityOriginData.
+        Add internal API to enable accessing to service worker process throttle state.
+
+        Test: http/wpt/service-workers/mac/processSuppression.https.html
+
+        * platform/RegistrableDomain.h:
+        (WebCore::RegistrableDomain::RegistrableDomain):
+        (WebCore::RegistrableDomain::matches const):
+        (WebCore::RegistrableDomain::registrableDomainFromHost):
+        * testing/ServiceWorkerInternals.cpp:
+        (WebCore::ServiceWorkerInternals::isThrottleable const):
+        * testing/ServiceWorkerInternals.h:
+        * testing/ServiceWorkerInternals.idl:
+        * workers/service/SWClientConnection.h:
+        * workers/service/context/SWContextManager.cpp:
+        * workers/service/context/SWContextManager.h:
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::serverToContextConnectionCreated):
+        * workers/service/server/SWServer.h:
+        (WebCore::SWServer::Connection::server const):
+        (WebCore::SWServer::connections const):
+        * workers/service/server/SWServerToContextConnection.h:
+
+2019-05-14  Youenn Fablet  <youenn@apple.com>
+
+        getUserMedia capture changes on iOS after homing out
+        https://bugs.webkit.org/show_bug.cgi?id=197707
+
+        Reviewed by Eric Carlson.
+
+        In case of muting an AVVideoCaptureSource on iOS, the session is cleared.
+        We need to store the preset information, to setup the new session on unnmuting correctly.
+        Manually tested.
+
+        * platform/mediastream/mac/AVVideoCaptureSource.h:
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
+        (WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
+        (WebCore::AVVideoCaptureSource::setupCaptureSession):
+
+2019-05-14  Oriol Brufau  <obrufau@igalia.com>
+
+        [css-grid] Update grid when changing auto repeat type
+        https://bugs.webkit.org/show_bug.cgi?id=197849
+
+        Reviewed by Javier Fernandez.
+
+        Test: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-change-auto-repeat-tracks.html
+
+        This patch makes two 'repeat()' values for 'grid-template' be considered
+        to be different if one uses 'auto-fill' and the other 'auto-fit'.
+
+        Previously, they were considered to be equal if the repeated values
+        were the same, without comparing the repeat type. Therefore, the grid
+        was not updated when setting both values one after the other.
+
+        * css/CSSGridAutoRepeatValue.cpp:
+        (WebCore::CSSGridAutoRepeatValue::equals const):
+        * css/CSSGridAutoRepeatValue.h:
+
+2019-05-14  Antti Koivisto  <antti@apple.com>
+
+        Event region computation should respect transforms
+        https://bugs.webkit.org/show_bug.cgi?id=197836
+        <rdar://problem/50762971>
+
+        Reviewed by Darin Adler.
+
+        * platform/graphics/transforms/AffineTransform.cpp:
+        (WebCore::AffineTransform::mapRegion const):
+
+        Add support for transforming regions. Non-rectlinear results use enclosing rects.
+
+        * platform/graphics/transforms/AffineTransform.h:
+        * rendering/EventRegion.cpp:
+        (WebCore::EventRegionContext::EventRegionContext):
+        (WebCore::EventRegionContext::pushTransform):
+        (WebCore::EventRegionContext::popTransform):
+        (WebCore::EventRegionContext::unite):
+        (WebCore::EventRegionContext::contains const):
+
+        Add a context object that holds the current transform.
+
+        * rendering/EventRegion.h:
+        (WebCore::EventRegion::makeContext):
+        * rendering/InlineTextBox.cpp:
+        (WebCore::InlineTextBox::paint):
+        * rendering/PaintInfo.h:
+
+        Replace the region object with the context.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::paintObject):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::paintLayerByApplyingTransform):
+
+        Apply transforms to regions if needed.
+
+        (WebCore::RenderLayer::collectEventRegionForFragments):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateEventRegion):
+        * rendering/SimpleLineLayoutFunctions.cpp:
+        (WebCore::SimpleLineLayout::paintFlow):
+
+2019-05-14  Youenn Fablet  <youenn@apple.com>
+
+        Video frame resizing should be using Trim
+        https://bugs.webkit.org/show_bug.cgi?id=197722
+        <rdar://problem/50602188>
+
+        Reviewed by Eric Carlson.
+
+        Move from letter box to trim mode for resizing.
+        This ensures no black stripes are present when rendering the stream.
+
+        Test: fast/mediastream/resize-trim.html
+
+        * platform/cocoa/VideoToolboxSoftLink.cpp:
+        * platform/cocoa/VideoToolboxSoftLink.h:
+        * platform/graphics/cv/ImageTransferSessionVT.mm:
+        (WebCore::ImageTransferSessionVT::ImageTransferSessionVT):
+
+2019-05-14  Yusuke Suzuki  <ysuzuki@apple.com>
+
+        [JSC] Shrink sizeof(UnlinkedFunctionExecutable) more
+        https://bugs.webkit.org/show_bug.cgi?id=197833
+
+        Reviewed by Darin Adler.
+
+        * testing/Internals.cpp:
+        (WebCore::Internals::parserMetaData):
+
+2019-05-14  Antoine Quint  <graouts@apple.com>
+
+        [Pointer Events] The pointerenter and pointerleave events target the wrong element on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=197881
+        <rdar://problem/50187657>
+
+        Reviewed by Dean Jackson.
+
+        Test: pointerevents/ios/enter-leave-target.html
+
+        The "pointerenter" and "pointerleave" should target the element on which the event listener was added and not
+        the element that would otherwise hit test. This matches the behavior of "mouseenter" and "mouseleave" on macOS.
+
+        * page/PointerCaptureController.cpp:
+        (WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):
+
+2019-05-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        [CG] Adding support for HEIF-sequence ('public.heics') images
+        https://bugs.webkit.org/show_bug.cgi?id=197384
+
+        Reviewed by Simon Fraser.
+
+        -- Get the image repetitionCount and the frame duration.
+        -- Add a new function setAdditionalSupportedImageTypesForTesting() which
+           takes a delimited String.
+        -- Add internal APIs to retrive the image frame count and the frame
+           duration.
+
+        Tests: fast/images/animated-heics-draw.html
+               fast/images/animated-heics-verify.html
+
+        * platform/graphics/ImageSource.h:
+        * platform/graphics/cg/ImageDecoderCG.cpp:
+        (WebCore::animationPropertiesFromProperties):
+        (WebCore::animationHEICSPropertiesFromProperties):
+        (WebCore::ImageDecoderCG::repetitionCount const):
+        (WebCore::ImageDecoderCG::frameDurationAtIndex const):
+        * platform/graphics/cg/UTIRegistry.cpp:
+        (WebCore::setAdditionalSupportedImageTypesForTesting):
+        * platform/graphics/cg/UTIRegistry.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::imageFrameCount):
+        (WebCore::Internals::imageFrameDurationAtIndex):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+        * testing/js/WebCoreTestSupport.cpp:
+        (WebCoreTestSupport::setAdditionalSupportedImageTypesForTesting):
+        * testing/js/WebCoreTestSupport.h:
+
+2019-05-14  Manuel Rego Casasnovas  <rego@igalia.com>
+
+        [css-grid] Use max size to compute auto repeat tracks
+        https://bugs.webkit.org/show_bug.cgi?id=197854
+
+        Reviewed by Javier Fernandez.
+
+        When available size is indefinite we should use max size to compute the number of auto repeat tracks.
+
+        The spec text is very clear (https://drafts.csswg.org/css-grid/#auto-repeat):
+        > When auto-fill is given as the repetition number, if the grid container
+        > has a definite size or **max size** in the relevant axis...
+
+        So far we were not doing that for widths, in this patch we modify RenderGrid::computeAutoRepeatTracksCount()
+        to do the same than for heights.
+
+        We also take advantage to fix problems related to min|max sizes and box-sizing property,
+        that were inconsistent for columns and rows.
+
+        Tests: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html
+               imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-max-size-002.html
+               imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-max-size-001.html
+               imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-001.html
+               imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-002.html
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::RenderGrid::computeAutoRepeatTracksCount const):
+
+2019-05-14  Joonghun Park  <pjh0718@gmail.com>
+
+        Implement page-break-* and -webkit-column-break-* as legacy-shorthands.
+        https://bugs.webkit.org/show_bug.cgi?id=197656
+
+        Reviewed by Darin Adler.
+
+        According to https://drafts.csswg.org/css-cascade-4/#legacy-shorthand,
+        implement page-break-* and -webkit-column-break-* as legacy-shorthands for break-*.
+
+        This change also serialize page-break-* properties
+        to CSSStyleDeclaration,
+        per https://drafts.csswg.org/css-break/#page-break-properties.
+
+        * css/CSSProperties.json:
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertFontSynthesis):
+        (WebCore::StyleBuilderConverter::convertPageBreakBetween): Deleted.
+        (WebCore::StyleBuilderConverter::convertPageBreakInside): Deleted.
+        (WebCore::StyleBuilderConverter::convertColumnBreakBetween): Deleted.
+        (WebCore::StyleBuilderConverter::convertColumnBreakInside): Deleted.
+        * css/StyleProperties.cpp:
+        (WebCore::StyleProperties::getPropertyValue const):
+        (WebCore::StyleProperties::pageBreakPropertyValue const):
+        * css/StyleProperties.h:
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::CSSPropertyParser::parseValueStart):
+        (WebCore::mapFromPageBreakBetween):
+        (WebCore::CSSPropertyParser::parseShorthand):
+        (WebCore::isLegacyBreakProperty): Deleted.
+
+2019-05-14  Javier Fernandez  <jfernandez@igalia.com>
+
+        Implement "line-break: anywhere"
+        https://bugs.webkit.org/show_bug.cgi?id=181169
+        <rdar://problem/48507088>
+
+        Reviewed by Myles C. Maxfield.
+
+        The CSS WG resolved [1] to add a new value 'anywhere' to the 'line-break'
+        CSS property in order to allow additional breaking opportunities not
+        considered in the definition of the 'word-break: break-all'.
+
+        [1] https://github.com/w3c/csswg-drafts/issues/1171
+
+        Tests: imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-003.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-005.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-006.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-007.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-008.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-009.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-010.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-011.html
+               imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-012.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-016.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-017.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-018.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-019.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-021.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-022.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-023.html
+               imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-024.html
+
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator LineBreak const):
+        * css/CSSProperties.json:
+        * css/CSSValueKeywords.in:
+        * css/parser/CSSParserFastPaths.cpp:
+        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+        * rendering/BreakLines.h:
+        (WebCore::nextBreakablePositionBreakCharacter):
+        (WebCore::isBreakable):
+        * rendering/RenderText.cpp:
+        (WebCore::mapLineBreakToIteratorMode):
+        (WebCore::RenderText::computePreferredLogicalWidths):
+        * rendering/line/BreakingContext.h:
+        (WebCore::BreakingContext::handleText):
+        * rendering/style/RenderStyleConstants.h:
+
+2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
+
+        Unreviewed, build fix after 245258, missing ThreadSpecific.h include
+        https://bugs.webkit.org/show_bug.cgi?id=197146
+
+        * platform/ios/wak/WebCoreThread.mm:
+
+2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>
+
+        [WTF] Simplify GCThread and CompilationThread flags by adding them to WTF::Thread
+        https://bugs.webkit.org/show_bug.cgi?id=197146
+
+        Reviewed by Saam Barati.
+
+        * Modules/indexeddb/IDBDatabase.cpp:
+        (WebCore::IDBDatabase::hasPendingActivity const):
+        * Modules/indexeddb/IDBRequest.cpp:
+        (WebCore::IDBRequest::hasPendingActivity const):
+        * Modules/indexeddb/IDBTransaction.cpp:
+        (WebCore::IDBTransaction::hasPendingActivity const):
+
+2019-05-13  Geoffrey Garen  <ggaren@apple.com>
+
+        Downgrade RELEASE_ASSERT TO RELEASE_LOG_FAULT for SQLite Class A files
+        https://bugs.webkit.org/show_bug.cgi?id=197760
+
+        Reviewed by Jer Noble.
+
+        Only makeSafeToUseMemoryMapForPath() if needed. (Fixed missing brace.)
+
+        * platform/sql/SQLiteDatabase.cpp:
+        (WebCore::SQLiteDatabase::open):
+
+2019-05-13  Tadeu Zagallo  <tzagallo@apple.com>
+
+        JSObject::getOwnPropertyDescriptor is missing an exception check
+        https://bugs.webkit.org/show_bug.cgi?id=197693
+
+        Reviewed by Saam Barati.
+
+        JSObject::getOwnPropertyDescriptor assumes that getOwnPropertySlot returns false
+        if an exception is thrown, but that was not true for JSLocation::getOwnPropertySlotCommon.
+
+        This is already covered by http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html
+
+        * bindings/js/JSLocationCustom.cpp:
+        (WebCore::getOwnPropertySlotCommon):
+        (WebCore::JSLocation::getOwnPropertySlot):
+        (WebCore::JSLocation::getOwnPropertySlotByIndex):
+
+2019-05-13  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION (r245208): compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html asserts
+        https://bugs.webkit.org/show_bug.cgi?id=197818
+        <rdar://problem/50705762>
+
+        Reviewed by Simon Fraser.
+
+        Tests: fast/scrolling/ios/event-region-scale-transform-shared.html
+               fast/scrolling/ios/event-region-translate-transform-shared.html
+
+        This fixes the assert. However the added tests demonstrate that transform is not taken into account
+        when computing the event region, https://bugs.webkit.org/show_bug.cgi?id=197836.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateEventRegion):
+
+2019-05-13  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [macOS] Font formatting options don't work when composing a message in Yahoo mail
+        https://bugs.webkit.org/show_bug.cgi?id=197813
+        <rdar://problem/49382250>
+
+        Reviewed by Darin Adler.
+
+        The bug happens because on mousedown, the "Aa Font" menu item's event handler hides itself before changing the
+        font at the text selection. This causes us to clear the selection in FocusController::setFocusedElement.
+
+        There is existing logic in clearSelectionIfNeeded that would normally prevent us from clearing the selection due
+        to the mousePressNode not being able to start a selection. However, since the clickable element in this case is
+        hidden during mousedown, it is missing a renderer, and we bail from the `mousePressNode->renderer() &&
+        !mousePressNode->canStartSelection()` check as a result.
+
+        This check was orginally added in https://trac.webkit.org/r24334 to avoid clearing the selection when clicking
+        a button; the intention appears to have been making it so that clicking on something that could not start a
+        selection (back then, synonymous with -webkit-user-select: ignore;) would not clear the current selection; to
+        this end, it seems odd to additionally require that the thing being clicked should still have a renderer, so
+        it seems safe to remove this requirement.
+
+        Test: editing/selection/preserve-selection-when-clicking-button.html
+
+        * page/FocusController.cpp:
+        (WebCore::clearSelectionIfNeeded):
+
+2019-05-13  Eric Carlson  <eric.carlson@apple.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=197793
+        <rdar://problem/46429187>
+
+        Unreviewed, build fix after r245199.
+
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (WebCore::MediaSessionManageriOS::externalOutputDeviceAvailableDidChange):
+
+2019-05-13  Darin Adler  <darin@apple.com>
+
+        WHLSLPrepare.cpp always recompiles, even if nothing was changed
+        https://bugs.webkit.org/show_bug.cgi?id=197151
+
+        Reviewed by Dan Bernstein and Keith Rollin.
+
+        * DerivedSources-input.xcfilelist: Script updated this automatically after
+        DerivedSources.make was corrected.
+        * DerivedSources-output.xcfilelist: Ditto, although I had to manually remove
+        one bogus leftover reference to WHLSLStandardLibrary.cpp.
+
+        * DerivedSources.make: Updated the rule that builds WHSLStandardLibrary.h to
+        no longer refer to nonexistent WHLSLStandardLibrary.cpp. Because the dependency
+        was on a file that was never created, the rule to regenerate WHSLStandardLibrary.h
+        was running on every build, instead of only when one of the dependencies changed.
+
+2019-05-12  Simon Fraser  <simon.fraser@apple.com>
+
+        When the set of backing-sharing layers changes, we need to issue a repaint
+        https://bugs.webkit.org/show_bug.cgi?id=197825
+
+        Reviewed by Zalan Bujtas.
+
+        If the set of layers painting into a shared backing store changes, we need
+        to repaint that backing store. This happens when scrolling as shared layers
+        enter the visible area.
+
+        Test: compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::setBackingSharingLayers):
+
+2019-05-02  Simon Fraser  <simon.fraser@apple.com>
+
+        Add logging for RenderLayer clip rects
+        https://bugs.webkit.org/show_bug.cgi?id=197547
+
+        Reviewed by Zalan Bujtas.
+
+        Add a ClipRects log channel, and stream output for ClipRect and ClipRects.
+
+        The ClipRect code is performance sensitive, even in debug, so guard the log sites
+        with clipRectsLogEnabled() because the macro still evaluates its arguments even if
+        the channel is disabled (we need some better way to log that doesn't do this).
+
+        * platform/Logging.h:
+        * rendering/ClipRect.cpp:
+        (WebCore::operator<<):
+        * rendering/ClipRect.h:
+        * rendering/RenderLayer.cpp:
+        (WebCore::operator<<):
+        (WebCore::RenderLayer::calculateClipRects const):
+        * rendering/RenderLayer.h:
+
+2019-05-12  Simon Fraser  <simon.fraser@apple.com>
+
+        Refactor composited backing-sharing code
+        https://bugs.webkit.org/show_bug.cgi?id=197824
+
+        Reviewed by Zalan Bujtas.
+
+        Clean up the backing-sharing code to share more code, and make it easier to understand.
+        
+        Moves more logic into member functions on BackingSharingState, which are named to make
+        their functions clearer: startBackingSharingSequence/endBackingSharingSequence.
+        
+        computeCompositingRequirements() and traverseUnchangedSubtree() now just call
+        updateBeforeDescendantTraversal/updateAfterDescendantTraversal.
+
+        No behavior change.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::willBeDestroyed):
+        (WebCore::RenderLayerBacking::setBackingSharingLayers): Remove the early return, since
+        we need to call setBackingProviderLayer() on the sharing layers in both code paths.
+        (WebCore::RenderLayerBacking::removeBackingSharingLayer):
+        (WebCore::RenderLayerBacking::clearBackingSharingLayers):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::BackingSharingState::backingProviderCandidate const):
+        (WebCore::RenderLayerCompositor::BackingSharingState::appendSharingLayer):
+        (WebCore::RenderLayerCompositor::BackingSharingState::startBackingSharingSequence):
+        (WebCore::RenderLayerCompositor::BackingSharingState::endBackingSharingSequence):
+        (WebCore::RenderLayerCompositor::BackingSharingState::updateBeforeDescendantTraversal):
+        (WebCore::RenderLayerCompositor::BackingSharingState::updateAfterDescendantTraversal):
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
+        (WebCore::RenderLayerCompositor::BackingSharingState::resetBackingProviderCandidate): Deleted.
+        * rendering/RenderLayerCompositor.h:
+
+2019-05-12  Youenn Fablet  <youenn@apple.com>
+
+        Use clampTo in AVVideoCaptureSource::setSizeAndFrameRateWithPreset
+        https://bugs.webkit.org/show_bug.cgi?id=197704
+
+        Reviewed by Alex Christensen.
+
+        Use clampTo as suggested in bug 196214 review.
+        No change of behavior.
+
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
+
+2019-05-12  Youenn Fablet  <youenn@apple.com>
+
+        Use the main screen for screen capture
+        https://bugs.webkit.org/show_bug.cgi?id=197804
+        <rdar://problem/47671383>
+
+        Reviewed by Eric Carlson.
+
+        If the main screen, i.e. the screen that has focus at the time of
+        selection of the screen to capture, is capturable, add it to the list
+        of screen devices, but do not add any other screen.
+        This will make sure the main screen is selected.
+        Manually tested.
+
+        * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
+        (WebCore::ScreenDisplayCaptureSourceMac::screenCaptureDevices):
+
+2019-05-12  Takashi Komori  <Takashi.Komori@sony.com>
+
+        [Curl] Suppress extra didReceiveAuthenticationChallenge call when accessing a server which checks basic auth.
+        https://bugs.webkit.org/show_bug.cgi?id=197650
+
+        Reviewed by Fujii Hironori.
+
+        When Curl port accesses a page which checks Basic Authentication credential and server trust challenge occurs,
+        Curl port calls extra didReceiveAuthenticationChallenge unnecessarily.
+        This is because Curl port discards information about allowed server trust challenge before in NetworkDataTaskCurl::restartWithCredential.
+
+        Test: http/tests/ssl/curl/certificate-and-authentication.html
+
+        * platform/network/curl/CurlRequest.h:
+        (WebCore::CurlRequest::isServerTrustEvaluationDisabled):
+
+2019-05-11  Simon Fraser  <simon.fraser@apple.com>
+
+        Overflow scroll that becomes non-scrollable should stop being composited
+        https://bugs.webkit.org/show_bug.cgi?id=197817
+        <rdar://problem/50697290>
+
+        Reviewed by Antti Koivisto.
+
+        Remove the iOS-specific #ifdef around code that triggers a compositing re-evaluation
+        when scrolling state changes.
+
+        Test: compositing/scrolling/async-overflow-scrolling/become-non-scrollable.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
+
+2019-05-11  Simon Fraser  <simon.fraser@apple.com>
+
+        Layer bounds are incorrect for sharing layers that paint with transforms
+        https://bugs.webkit.org/show_bug.cgi?id=197768
+        <rdar://problem/50695493>
+
+        Reviewed by Zalan Bujtas.
+
+        We don't need to traverse shared layers if the backing-provider has overflow clip,
+        because we know they are containing-block descendants and therefore clipped.
+
+        Note tha the CSS "clip" property doesn't guarantee this, because the clip rect
+        can be larger than the element, so in that case we just traverse shared layers.
+
+        Tests: compositing/shared-backing/sharing-bounds-clip.html
+               compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html
+               compositing/shared-backing/sharing-bounds-transformed-sharing-layer.html
+               compositing/shared-backing/sharing-bounds.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateCompositedBounds):
+
+2019-05-11  Simon Fraser  <simon.fraser@apple.com>
+
+        Translucent gradient rendering bug due to will-change transform
+        https://bugs.webkit.org/show_bug.cgi?id=197654
+        <rdar://problem/50547664>
+
+        Reviewed by Dean Jackson.
+        
+        We failed to re-evaluate 'contentsOpaque' when a background changed, because this
+        happened in updateGeometry() and that doesn't run for background changes.
+        
+        However, 'contentsOpaque' also requires knowing about geometry because we have to
+        turn it off when there's subpixel positioning, and updateConfiguration()
+        runs before updateGeometry().
+        
+        So compute m_hasSubpixelRounding in updateGeometry() and set contentsOpaque in
+        updateAfterDescendants().
+
+        Test: compositing/contents-opaque/background-change-to-transparent.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateConfiguration):
+        (WebCore::RenderLayerBacking::updateGeometry):
+        (WebCore::RenderLayerBacking::updateAfterDescendants):
+        * rendering/RenderLayerBacking.h:
+
+2019-05-11  Simon Fraser  <simon.fraser@apple.com>
+
+        When the scroller hosting a shared layer becomes non-scrollable, content disappears
+        https://bugs.webkit.org/show_bug.cgi?id=197766
+        <rdar://problem/50695808>
+
+        Reviewed by Zalan Bujtas.
+
+        RenderLayerCompositor::requiresOwnBackingStore() should return true for a layer that shares
+        its backing store. We always made backing for overlap layers, so even  if the sharing layers
+        have no painted content, this should rarely be a backing store memory regression.
+
+        Test: compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable.html
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
+
+2019-05-11  Simon Fraser  <simon.fraser@apple.com>
+
+        Backing-sharing layers with transforms render incorrectly
+        https://bugs.webkit.org/show_bug.cgi?id=197692
+        <rdar://problem/50652127>
+
+        Reviewed by Antti Koivisto.
+
+        Layers that paint into shared backing need to enter the RenderLayer painting code
+        in a way that paints the filters, transforms, opacity and blending.
+        
+        RenderLayerBacking::paintIntoLayer() normally enters at paintLayerContents(), because
+        the effects are rendered via the GraphicsLayer, but shared layers will paint effects.
+        Note that if the backing-provider has effects, it will be the stacking context
+        for the shared layers, so it's correct that sharing layers are impacted by effects
+        on the backing-provider.
+
+        In addition, we have to ensure that we don't over-eagerly make layers shared.
+        Consider:
+        
+        <div class="clipping">
+            <div class="sharing">
+                <div class="inner">
+                </div>
+            </div>
+        </div>
+        
+        Here "clipping" is the provider layer, "sharing" paints into shared backing, but
+        we don't want to also mark "inner" as sharing, since "sharing" will just paint it.
+        This is akin to avoiding unnecessary compositing of z-order descendants when they can just
+        paint.
+        
+        To do this we need to ensure that sharing layers are treated like compositing layers
+        in the overlap map, i.e. when a layer is sharing, we call overlapMap.pushCompositingContainer(),
+        and later overlapMap.popCompositingContainer().
+
+        Tests: compositing/shared-backing/nested-shared-layers-with-opacity.html
+               compositing/shared-backing/shared-layer-has-blending.html
+               compositing/shared-backing/shared-layer-has-filter.html
+               compositing/shared-backing/shared-layer-has-opacity.html
+               compositing/shared-backing/shared-layer-has-reflection.html
+               compositing/shared-backing/shared-layer-has-transform.html
+               compositing/shared-backing/shared-layer-isolates-blending.html
+               compositing/shared-backing/shared-transformed-layer-bounds.html
+               compositing/shared-backing/sharing-layer-becomes-non-scrollable.html
+               compositing/shared-backing/sharing-layer-has-effect.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::paintLayer):
+        (WebCore::RenderLayer::paintLayerWithEffects):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::paintIntoLayer):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::CompositingState::stateForPaintOrderChildren const):
+        (WebCore::backingProviderLayerCanIncludeLayer):
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
+
+2019-05-10  Youenn Fablet  <youenn@apple.com>
+
+        A service worker instance should be terminated when its SWServer is destroyed
+        https://bugs.webkit.org/show_bug.cgi?id=197801
+        <rdar://problem/50587270>
+
+        Reviewed by Chris Dumez.
+
+        On session destruction, the SWServer is destroyed.
+        At that time, it should terminate all its running service workers.
+        Covered by updated API test.
+
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::~SWServer):
+
+2019-05-10  Eric Carlson  <eric.carlson@apple.com>
+
+        [iOS] HTMLMediaElement sometimes doesn't send 'webkitplaybacktargetavailabilitychanged' event
+        https://bugs.webkit.org/show_bug.cgi?id=197793
+        <rdar://problem/46429187>
+
+        Reviewed by Jer Noble.
+
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::MediaElementSession): Initialize m_hasPlaybackTargets.
+
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (WebCore::MediaSessionManageriOS::externalOutputDeviceAvailableDidChange): Log
+        target availability.
+        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]): Call the client 
+        externalOutputDeviceAvailableDidChange method after the AVRouteDetector is available.
+
+2019-05-09  Geoffrey Garen  <ggaren@apple.com>
+
+        Downgrade RELEASE_ASSERT TO RELEASE_LOG_FAULT for SQLite Class A files
+        https://bugs.webkit.org/show_bug.cgi?id=197760
+
+        Reviewed by Jer Noble.
+
+        We have all the data we need, and this crash is happening more than
+        expected.
+
+        * platform/sql/SQLiteDatabase.cpp:
+        (WebCore::SQLiteDatabase::open):
+
+2019-05-10  Zalan Bujtas  <zalan@apple.com>
+
+        [iOS] baidu.com: Synthetic bold renders too far apart, appears doubled.
+        https://bugs.webkit.org/show_bug.cgi?id=197781
+        <rdar://problem/48027412>
+
+        Reviewed by Simon Fraser.
+
+        Synthetic bold is essentially two regular glyphs painted with an offset. While on macOS this offset is always 1px (CSS), on iOS larger font produces higher offset value. At paint time, this offset value (in CSS px unit) get converted
+        to a device pixel value taking context scale into account. This conversion ensures that the gap between the 2 regular glyphs won't get wider (in device pixels) as the user pinch zooms in.
+        This works as long as the scale on the context is >= 1. This patch ensures that a scaled down context won't blow up this gap.
+
+        Test: fast/text/large-synthetic-bold-with-scale-transform.html
+
+        * platform/graphics/cocoa/FontCascadeCocoa.mm:
+        (WebCore::FontCascade::drawGlyphs):
+
+2019-05-10  Brent Fulgham  <bfulgham@apple.com>
+
+        Gracefully handle inaccessible font face data
+        https://bugs.webkit.org/show_bug.cgi?id=197762
+        <rdar://problem/50433861>
+
+        Reviewed by Per Arne Vollan.
+
+        Make sure CSS Font Face handling gracefully recovers from
+        missing font data.
+
+        Test: fast/text/missing-font-crash.html
+
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::fontLoadEventOccurred):
+        (WebCore::CSSFontFace::timeoutFired):
+        (WebCore::CSSFontFace::fontLoaded):
+        (WebCore::CSSFontFace::font):
+
+2019-05-10  Simon Fraser  <simon.fraser@apple.com>
+
+        ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant()) on nytimes.com after r245170
+        https://bugs.webkit.org/show_bug.cgi?id=197776
+
+        Reviewed by Zalan Bujtas.
+
+        Only try to paint into shared backing for layers that are able to be composited. This
+        avoids trying to do sharing for non-self-painting layers, which doesn't make sense.
+
+        Test: compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
 2019-05-10  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         Fix a bunch of compiler warnings