Implement CSS `display: flow-root` (modern clearfix)
[WebKit-https.git] / Source / WebCore / ChangeLog
index a6e881a..5714973 100644 (file)
@@ -1,3 +1,701 @@
+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