Destroy all unneeded anonymous wrappers in RenderObject::removeFromParentAndDestroyCl...
[WebKit-https.git] / Source / WebCore / ChangeLog
index 7fbd22d..2a4686d 100644 (file)
@@ -1,3 +1,722 @@
+2017-10-27  Antti Koivisto  <antti@apple.com>
+
+        Destroy all unneeded anonymous wrappers in RenderObject::removeFromParentAndDestroyCleaningUpAnonymousWrappers()
+        https://bugs.webkit.org/show_bug.cgi?id=178933
+
+        Reviewed by Zalan Bujtas.
+
+        Currently it just cleans up table related wrappers.
+
+        * rendering/RenderObject.cpp:
+        (WebCore::findDestroyRootIncludingAnonymous):
+
+        Continuations are left as future work.
+
+2017-10-30  Zalan Bujtas  <zalan@apple.com>
+
+        Remove reference to RenderTreeInternalMutationScope
+        https://bugs.webkit.org/show_bug.cgi?id=178998
+        <rdar://problem/35246464>
+
+        Reviewed by Antti Koivisto.
+
+        We don't have such class anymore.
+
+        No change in functionality.
+
+        * rendering/RenderView.h:
+
+2017-10-30  Zan Dobersek  <zdobersek@igalia.com>
+
+        [GCrypt] Add support for P-521 EC curves
+        https://bugs.webkit.org/show_bug.cgi?id=175199
+
+        Reviewed by Jiewen Tan.
+
+        Add support for 521-bit elliptic curves in the libgcrypt-based
+        implementation of WebCrypto API.
+
+        In the CryptoAlgorithmECDH implementation, the bit-size of the key is now
+        rounded up to the next byte boundary and passed to the helper
+        gcryptDerive() function. There the size in bytes is used to zero-pad the
+        derived key data. This is done to properly handle derivation results for
+        the P-521 curves, where the leading zero bit could get clipped, resulting
+        in a derived key that is only 65 byes in length when it is expected to be
+        66 bytes. Further cleanups are done in gcryptDerive() to use the mpiData()
+        function where possible.
+
+        In the CryptoAlgorithmECDSA implementation, the bit-size of the key is
+        again rounded up to the nearest byte boundary before being passed to the
+        helper gcryptSign() and gcryptVerify() functions. This again properly
+        enforces the requirement of 66 bytes to handle P-521 elliptic curves.
+
+        In the CryptoKeyEC implementation, NamedCurve::P521 cases in helper
+        functions operating on NamedCurve values are now implemented to return
+        appropriate values. platformSupportedCurve() now returns true for the
+        NamedCurve::P521 value. Zero-padding of the private key data is used
+        wherever it is necessary to avoid clipping any leading zero bit in the
+        P-521 EC key.
+
+        No new tests -- affected tests have their baselines updated.
+
+        * crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp:
+        (WebCore::gcryptDerive):
+        (WebCore::CryptoAlgorithmECDH::platformDeriveBits):
+        * crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp:
+        (WebCore::CryptoAlgorithmECDSA::platformSign):
+        (WebCore::CryptoAlgorithmECDSA::platformVerify):
+        * crypto/gcrypt/CryptoKeyECGCrypt.cpp:
+        (WebCore::curveName):
+        (WebCore::curveIdentifier):
+        (WebCore::curveSize):
+        (WebCore::curveUncompressedFieldElementSize):
+        (WebCore::CryptoKeyEC::platformSupportedCurve):
+        (WebCore::curveForIdentifier):
+        (WebCore::CryptoKeyEC::platformImportPkcs8):
+        (WebCore::CryptoKeyEC::platformAddFieldElements const):
+        (WebCore::CryptoKeyEC::platformExportPkcs8 const):
+
+2017-10-29  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        Use of uninitialized value $targetIdlFile in hash element at preprocess-idls.pl line 165.
+        https://bugs.webkit.org/show_bug.cgi?id=177743
+
+        Reviewed by Darin Adler.
+
+        GamepadWebVR.idl supplements Gamepad.idl. But, Gamepad.idl is not
+        processed because ENABLE_GAMEPAD is OFF.
+
+        No new tests since there should be no behavioral change.
+
+        * CMakeLists.txt: Include GamepadWebVR.idl only if ENABLE_GAMEPAD.
+        * Sources.txt: Ditto.
+        * bindings/scripts/preprocess-idls.pl: Die if a supplemented IDL file is not found.
+
+2017-10-29  Sam Weinig  <sam@webkit.org>
+
+        [Conic Gradients] Add support for parsing conic gradients
+        https://bugs.webkit.org/show_bug.cgi?id=178987
+
+        Reviewed by Dean Jackson.
+
+        Adds initial support, disabled by default, for parsing conic gradients as per
+        CSS 4 Images - https://www.w3.org/TR/css-images-4/#conic-gradients.
+
+        Test: fast/gradients/conic-gradient-parsing.html
+
+        * css/CSSGradientValue.cpp:
+        (WebCore::clone):
+        (WebCore::CSSGradientValue::isCacheable const):
+        (WebCore::CSSConicGradientValue::customCSSText const):
+        (WebCore::CSSConicGradientValue::createGradient):
+        (WebCore::CSSConicGradientValue::equals const):
+        * css/CSSGradientValue.h:
+        
+            Add CSSConicGradientValue as a subclass of CSSGradientValue and implement
+            customCSSText() and equals(). Stub out createGradient() as painting is not
+            yet implemented.
+        
+        * css/CSSImageGeneratorValue.cpp:
+        (WebCore::CSSImageGeneratorValue::image):
+        (WebCore::CSSImageGeneratorValue::isFixedSize const):
+        (WebCore::CSSImageGeneratorValue::fixedSize):
+        (WebCore::CSSImageGeneratorValue::isPending const):
+        (WebCore::CSSImageGeneratorValue::knownToBeOpaque const):
+        (WebCore::CSSImageGeneratorValue::loadSubimages):
+        * css/CSSValue.cpp:
+        (WebCore::CSSValue::equals const):
+        (WebCore::CSSValue::cssText const):
+        (WebCore::CSSValue::destroy):
+        
+            Dispatch to CSSConicGradientValue as needed.
+        
+        * css/CSSValue.h:
+        (WebCore::CSSValue::isImageGeneratorValue const):
+        (WebCore::CSSValue::isGradientValue const):
+        (WebCore::CSSValue::isConicGradientValue const):
+        
+            Add conic gradient predicate support and update isImageGeneratorValue and 
+            isGradientValue to include conic gradient.
+        
+        * css/CSSValueKeywords.in:
+        
+            Add conic-gradient and repeating-conic-gradient.
+        
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParserContext::CSSParserContext):
+        (WebCore::operator==):
+        * css/parser/CSSParserMode.h:
+        (WebCore::CSSParserContextHash::hash):
+        
+            Add runtime flags to enable conic gradients.
+        
+        * css/parser/CSSPropertyParserHelpers.cpp:
+        (WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):
+        
+            Helper, similar to consumeLengthOrPercent, for consumeGradientColorStops. 
+            Corresponds to https://drafts.csswg.org/css-values-4/#typedef-angle-percentage
+        
+        (WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
+        
+            Convert to take CSSGradientValue by reference.
+        
+        (WebCore::CSSPropertyParserHelpers::consumeAngularGradientColorStops):
+        
+            Helper, similar to consumeGradientColorStops, but for angular color stops
+            used in conic gradients. Corresponds to https://www.w3.org/TR/css-images-4/#typedef-angular-color-stop-list
+            but does not yet support double position syntax.
+        
+        (WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
+        (WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
+        (WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
+        
+            Pass CSSGradientValue by reference.
+        
+        (WebCore::CSSPropertyParserHelpers::consumeConicGradient):
+        
+            Parse conic gradient.
+        
+        (WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
+        
+            Dispatch to consumeConicGradient for repeating and non-repeating
+            conic gradients.
+        
+        (WebCore::CSSPropertyParserHelpers::isGeneratedImage):
+        
+            Put each value on its own line to make it more readable and add CSSValueConicGradient
+            and CSSValueRepeatingConicGradient.
+        
+        * page/Settings.yaml:
+        
+            Add a setting to enable conic gradients. Disabled by default.
+
+        * features.json:
+        
+            Move conic gradients to "In Development".
+
+2017-10-29  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Expose the currentTime property on Animation
+        https://bugs.webkit.org/show_bug.cgi?id=178988
+
+        Unreviewed.
+
+        Style fixes missed in previous patch.
+
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::setCurrentTime):
+
+2017-10-29  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Expose the currentTime property on Animation
+        https://bugs.webkit.org/show_bug.cgi?id=178988
+
+        Reviewed by Dean Jackson.
+
+        We now expose the currentTime property on Animation objects, our first
+        step in implementing the Web Animations timing model, specifically section
+        3.5.4. "The current time of an animation" and section 3.5.5. "Setting the
+        current time of an animation". Setting the startTime has implications on
+        currentTime and vice-versa.
+
+        Test: webanimations/animation-current-time.html
+
+        * animation/WebAnimation.cpp:
+        (WebCore::WebAnimation::setBindingsStartTime):
+        (WebCore::WebAnimation::startTime const):
+        (WebCore::WebAnimation::setStartTime):
+        (WebCore::WebAnimation::bindingsCurrentTime const):
+        (WebCore::WebAnimation::setBindingsCurrentTime):
+        (WebCore::WebAnimation::currentTime const):
+        (WebCore::WebAnimation::setCurrentTime):
+        * animation/WebAnimation.h:
+        * animation/WebAnimation.idl:
+
+2017-10-29  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Assert that no script is executed during style recalc
+        https://bugs.webkit.org/show_bug.cgi?id=178845
+        <rdar://problem/35106129>
+
+        Reviewed by Antti Koivisto.
+
+        This patch adds NoEventDispatchAssertion to Document::updateStyle and Document::updateStyleIfNeeded
+        to make sure we don't start mutating DOM in the middle of a style update.
+
+        Added NoEventDispatchAssertion::EventAllowedScope for various places in SVGUseElement to update its
+        shadow tree since that happens while updating the style.
+
+        No new tests since there should be no behavioral change.
+
+        * dom/Document.cpp:
+        (WebCore::Document::resolveStyle): Added NoEventDispatchAssertion while flushing pending stylesheets
+        and calling FrameView::willRecalcStyle, and while the style tree solver is in works. Also moved in
+        the code to update the selection and schedule to dispatch a fake mouse event into the same scope.
+        Also increment m_styleRecalcCount in the same code since post resolution callbacks could run author
+        scripts which in turn trigger another (recursive) style recalc.
+        (WebCore::Document::updateStyleIfNeeded): Put everything but the call to resolveStyle in a scope with
+        NoEventDispatchAssertion.
+        * dom/Element.cpp:
+        (WebCore::Element::cloneElementWithChildren): Added NoEventDispatchAssertion::EventAllowedScope to the
+        newly cloned element for SVG use element's shadow tree.
+        (WebCore::Element::cloneElementWithoutChildren): Ditto.
+        * dom/EventDispatcher.cpp:
+        (WebCore::EventDispatcher::dispatchEvent): Make the assertion more precise to workaround the fact SVG
+        use elements update its shadow tree in the middle of style updates. Also removed a redundant assertion
+        since the result of NoEventDispatchAssertion::isEventDispatchAllowedInSubtree cannot chance without
+        pushing or popoing the stack frame.
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::clearShadowTree):
+        (WebCore::SVGUseElement::updateShadowTree): Added NoEventDispatchAssertion to the user-agent shadow root
+        of a SVG use element. Since this is a newly created shadow tree which hasn't been exposed to author
+        scripts, it's safe to mutate them during the style recalc even though it's not the best design.
+        (WebCore::SVGUseElement::cloneTarget const): Ditto.
+        (WebCore::SVGUseElement::expandUseElementsInShadowTree const): Ditto.
+        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree const): Ditto.
+        (WebCore::SVGUseElement::transferEventListenersToShadowTree const):
+
+2017-10-28  Dean Jackson  <dino@apple.com>
+
+        createImageBitmap with HTMLCanvasElement
+        https://bugs.webkit.org/show_bug.cgi?id=178984
+        <rdar://problem/35238440>
+
+        Reviewed by Sam Weinig.
+
+        Implement createImageBitmap(HTMLCanvasElement).
+
+        While here, explicitly reject the promises for the
+        methods we haven't yet implemented. I was hoping this
+        would avoid a lengthy timeout in one of the imported
+        WPT tests but, alas, it doesn't. However, it's still
+        a good idea.
+
+        Extend internal WPT proposals to cover canvas creation.
+
+        * html/ImageBitmap.cpp:
+        (WebCore::ImageBitmap::createPromise): Get the image from
+        the canvas and draw it into a new ImageBitmap buffer.
+
+2017-10-28  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [iOS] Unify Font::platformCharWidthInit() with macOS
+        https://bugs.webkit.org/show_bug.cgi?id=178951
+        <rdar://problem/7848198>
+
+        Reviewed by Zalan Bujtas.
+
+        The only reason these codepaths are different is because historically this codepath
+        didn't work with GS fonts (which we don't use anymore).
+
+        Tests: fast/forms/search-styled.html
+               fast/forms/text-control-intrinsic-widths.html
+               fast/forms/textarea-width.html
+
+        * platform/graphics/cocoa/FontCocoa.mm:
+        (WebCore::Font::platformCharWidthInit):
+
+2017-10-28  Chris Dumez  <cdumez@apple.com>
+
+        self.ExtendableEvent / Client / Clients / WindowClient do not exist in a Service Worker
+        https://bugs.webkit.org/show_bug.cgi?id=178976
+
+        Reviewed by Sam Weinig.
+
+        Test: http/tests/workers/service/ServiceWorkerGlobalScope-properties.html
+
+        * workers/service/ExtendableEvent.idl:
+        * workers/service/FetchEvent.idl:
+        Drop [Exposed=Worker] as there is already [Exposed=ServiceWorker] and
+        ServiceWorkerGlobalScope inherits from WorkerGlobalScope. This is redundant
+        and we would hit assertions and adding the global constructors at runtime
+        when the feature is enabled, because the property already exists.
+
+2017-10-28  Zalan Bujtas  <zalan@apple.com>
+
+        [FrameView::layout cleanup] Move core layout logic to a separate class.
+        https://bugs.webkit.org/show_bug.cgi?id=178771
+        <rdar://problem/35166542>
+
+        Reviewed by Simon Fraser.
+
+        Move layout code out from FrameView to LayoutContext.
+
+        LayoutContext holds all the layout related logic (scheduling, needsLayout, handling layout states),
+        while scrolling, view sizing methods stay in FrameView.
+        Having a dedicated LayoutContext allows to structure the code better.   
+
+        Covered by existing tests.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::rendererNeedsDeferredUpdate):
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::updateBackingStore):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::textUnderElement const):
+        (WebCore::AccessibilityRenderObject::layoutCount const):
+        * dom/Document.cpp:
+        (WebCore::Document::setVisualUpdatesAllowed):
+        (WebCore::Document::resolveStyle):
+        (WebCore::Document::updateStyleIfNeeded):
+        (WebCore::Document::updateLayout):
+        (WebCore::Document::updateLayoutIfDimensionsOutOfDate):
+        (WebCore::Document::implicitClose):
+        (WebCore::Document::isLayoutTimerActive):
+        * dom/Element.cpp:
+        (WebCore::Element::absoluteEventHandlerBounds):
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::setSelection):
+        * html/HTMLEmbedElement.cpp:
+        (WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin const):
+        * html/HTMLFormControlElement.cpp:
+        (WebCore::HTMLFormControlElement::didAttachRenderers):
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::InspectorOverlay::update):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::stopForUserCancel):
+        * page/Frame.cpp:
+        (WebCore::Frame::setView):
+        (WebCore::Frame::clearTimers):
+        (WebCore::Frame::setPageAndTextZoomFactors):
+        (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::FrameView):
+        (WebCore::FrameView::~FrameView):
+        (WebCore::FrameView::reset):
+        (WebCore::FrameView::resetScrollbars):
+        (WebCore::FrameView::didFirstLayout const):
+        (WebCore::FrameView::willDestroyRenderTree):
+        (WebCore::FrameView::didDestroyRenderTree):
+        (WebCore::FrameView::setContentsSize):
+        (WebCore::FrameView::calculateScrollbarModesForLayout):
+        (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
+        (WebCore::FrameView::topContentInsetDidChange):
+        (WebCore::FrameView::forceLayoutParentViewIfNeeded):
+        (WebCore::FrameView::adjustScrollbarsForLayout):
+        (WebCore::FrameView::willDoLayout): This takes care of the view related task right before entering render tree layout.
+        (WebCore::FrameView::didLayout): post layout tasks.
+        (WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange):
+        (WebCore::FrameView::updateLayoutViewport):
+        (WebCore::FrameView::maintainScrollPositionAtAnchor):
+        (WebCore::FrameView::updateLayerPositionsAfterScrolling):
+        (WebCore::FrameView::updateCompositingLayersAfterScrolling):
+        (WebCore::FrameView::availableContentSizeChanged):
+        (WebCore::FrameView::updateContentsSize):
+        (WebCore::FrameView::needsLayout const):
+        (WebCore::FrameView::setNeedsLayout):
+        (WebCore::FrameView::scheduleSelectionUpdate):
+        (WebCore::FrameView::updateEmbeddedObjects):
+        (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
+        (WebCore::FrameView::flushPostLayoutTasksQueue):
+        (WebCore::FrameView::performPostLayoutTasks):
+        (WebCore::FrameView::sendResizeEventIfNeeded):
+        (WebCore::FrameView::autoSizeIfEnabled):
+        (WebCore::FrameView::paintControlTints):
+        (WebCore::FrameView::paintContents):
+        (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
+        (WebCore::FrameView::enableAutoSizeMode):
+        (WebCore::FrameView::forceLayout):
+        (WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer): Deleted.
+        (WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer): Deleted.
+        (WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree): Deleted.
+        (): Deleted.
+        (WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker): Deleted.
+        (WebCore::applyTextSizingIfNeeded): Deleted.
+        (WebCore::FrameView::handleLayoutWithFrameFlatteningIfNeeded): Deleted.
+        (WebCore::FrameView::updateStyleForLayout): Deleted.
+        (WebCore::FrameView::canPerformLayout const): Deleted.
+        (WebCore::FrameView::layout): Deleted.
+        (WebCore::FrameView::runOrSchedulePostLayoutTasks): Deleted.
+        (WebCore::FrameView::convertSubtreeLayoutToFullLayout): Deleted.
+        (WebCore::FrameView::layoutTimerFired): Deleted.
+        (WebCore::FrameView::scheduleRelayout): Deleted.
+        (WebCore::isObjectAncestorContainerOf): Deleted.
+        (WebCore::FrameView::scheduleRelayoutOfSubtree): Deleted.
+        (WebCore::FrameView::layoutPending const): Deleted.
+        (WebCore::FrameView::unscheduleRelayout): Deleted.
+        (WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded): Deleted.
+        * page/FrameView.h:
+        * page/LayoutContext.cpp: Added.
+        (WebCore::isObjectAncestorContainerOf):
+        (WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
+        (WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
+        (WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree):
+        (WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker):
+        (WebCore::LayoutScope::LayoutScope):
+        (WebCore::LayoutScope::~LayoutScope):
+        (WebCore::LayoutContext::LayoutContext):
+        (WebCore::LayoutContext::layout):
+        (WebCore::LayoutContext::runOrScheduleAsynchronousTasks):
+        (WebCore::LayoutContext::runAsynchronousTasks):
+        (WebCore::LayoutContext::flushAsynchronousTasks):
+        (WebCore::LayoutContext::reset):
+        (WebCore::LayoutContext::needsLayout const):
+        (WebCore::LayoutContext::setNeedsLayout):
+        (WebCore::LayoutContext::enableSetNeedsLayout):
+        (WebCore::LayoutContext::disableSetNeedsLayout):
+        (WebCore::LayoutContext::scheduleLayout):
+        (WebCore::LayoutContext::unscheduleLayout):
+        (WebCore::LayoutContext::scheduleSubtreeLayout):
+        (WebCore::LayoutContext::layoutTimerFired):
+        (WebCore::LayoutContext::convertSubtreeLayoutToFullLayout):
+        (WebCore::LayoutContext::setSubtreeLayoutRoot):
+        (WebCore::LayoutContext::canPerformLayout const):
+        (WebCore::LayoutContext::applyTextSizingIfNeeded):
+        (WebCore::LayoutContext::updateStyleForLayout):
+        (WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded):
+        (WebCore::LayoutContext::startLayoutAtMainFrameViewIfNeeded):
+        (WebCore::LayoutContext::frame const):
+        (WebCore::LayoutContext::view const):
+        (WebCore::LayoutContext::renderView const):
+        (WebCore::LayoutContext::document const):
+        * page/LayoutContext.h: Added.
+        (WebCore::LayoutContext::startDisallowingLayout):
+        (WebCore::LayoutContext::endDisallowingLayout):
+        (WebCore::LayoutContext::layoutPhase const):
+        (WebCore::LayoutContext::isLayoutNested const):
+        (WebCore::LayoutContext::layoutCount const):
+        (WebCore::LayoutContext::isLayoutPending const):
+        (WebCore::LayoutContext::isInLayout const):
+        (WebCore::LayoutContext::isInRenderTreeLayout const):
+        (WebCore::LayoutContext::inPaintableState const):
+        (WebCore::LayoutContext::subtreeLayoutRoot const):
+        (WebCore::LayoutContext::clearSubtreeLayoutRoot):
+        (WebCore::LayoutContext::resetFirstLayoutFlag):
+        (WebCore::LayoutContext::didFirstLayout const):
+        (WebCore::LayoutContext::setNeedsFullRepaint):
+        (WebCore::LayoutContext::needsFullRepaint const):
+        (WebCore::LayoutContext::layoutDisallowed const):
+        (WebCore::LayoutContext::isLayoutSchedulingEnabled const):
+        (WebCore::LayoutContext::inAsynchronousTasks const):
+        * page/Page.cpp:
+        (WebCore::Page::setPageScaleFactor):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::insertPositionedObject):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::imageChanged):
+        (WebCore::RenderBox::computeLogicalWidthInFragment const):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::clearSubtreeLayoutRootIfNeeded const):
+        (WebCore::RenderElement::checkForRepaintDuringLayout const):
+        * rendering/RenderFrameBase.cpp:
+        (WebCore::RenderFrameBase::performLayoutWithFlattening):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::scrollTo):
+        * rendering/RenderObject.cpp:
+        (WebCore::scheduleRelayoutForSubtree):
+        * rendering/RenderTreeAsText.cpp:
+        (WebCore::write):
+        * rendering/RenderVideo.cpp:
+        (WebCore::RenderVideo::updatePlayer):
+        * rendering/RenderView.h:
+        * rendering/RenderWidget.cpp:
+        (WebCore::RenderWidget::updateWidgetPosition):
+        * svg/graphics/SVGImage.cpp:
+        (WebCore::SVGImage::draw):
+        * testing/Internals.cpp:
+        (WebCore::Internals::layoutCount const):
+        
+2017-10-28  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Cleanup PageDebuggable
+        https://bugs.webkit.org/show_bug.cgi?id=178972
+
+        Reviewed by Sam Weinig.
+
+        * page/PageDebuggable.cpp:
+        (WebCore::PageDebuggable::PageDebuggable):
+        * page/PageDebuggable.h:
+
+2017-10-28  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Extract a WorkerDebuggerProxy interface out of WorkerReportingProxy
+        https://bugs.webkit.org/show_bug.cgi?id=178975
+
+        Reviewed by Sam Weinig.
+
+        No new tests, just refactoring.
+
+        * workers/WorkerDebuggerProxy.h:
+        * workers/WorkerReportingProxy.h:
+        * WebCore.xcodeproj/project.pbxproj:
+        Extract a method from WorkerReportingProxy to WorkerDebuggerProxy and
+        rename it to be more general.
+
+        * inspector/WorkerToPageFrontendChannel.h:
+        (WebCore::WorkerToPageFrontendChannel::sendMessageToFrontend):
+        * workers/DedicatedWorkerThread.cpp:
+        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
+        * workers/DedicatedWorkerThread.h:
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
+        (WebCore::WorkerMessagingProxy::postMessageToDebugger):
+        (WebCore::WorkerMessagingProxy::postMessageToPageInspector): Deleted.
+        * workers/WorkerMessagingProxy.h:
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThread::WorkerThread):
+        * workers/WorkerThread.h:
+        (WebCore::WorkerThread::workerDebuggerProxy const):
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::ServiceWorkerThread::ServiceWorkerThread):
+        * workers/service/context/ServiceWorkerThread.h:
+        * workers/service/context/ServiceWorkerThreadProxy.cpp:
+        (WebCore::ServiceWorkerThreadProxy::create):
+        (WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
+        Include a WorkerDebuggerProxy alongside the other proxies.
+        Use the renamed debugger proxy method.
+
+2017-10-28  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Style::Scope::flushPendingUpdate() can replace the entire document in XSLTProcessor::createDocumentFromSource
+        https://bugs.webkit.org/show_bug.cgi?id=178715
+        <rdar://problem/35144665>
+
+        Reviewed by Brent Fulgham.
+
+        Apply XLS tranforms when a 0s timer fires or the document finishes parsing or loading whichever comes first
+        instead of in the middle of collecting a list of stylesheets.
+
+        * dom/Document.cpp:
+        (WebCore::Document::Document): Initialize the newly added timer.
+        (WebCore::Document::implicitClose): Apply any pending XSLT before we fire load events since some of the event
+        handlers may be expecting to see the document after XSLT had been applied.
+        (WebCore::Document::scheduleToApplyXSLTransforms): Added.
+        (WebCore::Document::applyPendingXSLTransformsNowIfScheduled): Added.
+        (WebCore::Document::applyPendingXSLTransformsTimerFired): Added. Moved the logic to apply XSL transforms from
+        Style::Scope::collectActiveStyleSheets, and merged applyXSLTransform into this function.
+        (WebCore::Document::applyXSLTransform): Deleted.
+        (WebCore::Document::finishedParsing): Apply XSLT right before updating the style. This is where used to apply
+        inline XSLT and it happens much earlier than implicitClose.
+        (WebCore::Document::suspendScheduledTasks): Suspend the XSLT timer.
+        (WebCore::Document::resumeScheduledTasks): Reschedule the XSLT timer if m_hasPendingXSLTransforms is set.
+        * dom/Document.h:
+        * dom/ProcessingInstruction.cpp:
+        (WebCore::ProcessingInstruction::checkStyleSheet): Schedule XSLT in the document instead of flushing pending
+        stylesheets, which would have synchronously applied XSLT. We can't apply XSLT synchronously here because this
+        function can be called from a non-script-resilient call stack.
+        (WebCore::ProcessingInstruction::sheetLoaded): Ditto.
+        * style/StyleScope.cpp:
+        (WebCore::Style::Scope::collectXSLTransforms): Added.
+        (WebCore::Style::Scope::collectActiveStyleSheets): Removed the code to apply XSLT. Skip ProcessingInstructions
+        that applies XSLT. Also use RefPtr<StyleSheet> instead of a raw pointer to store StyleSheet.
+        * style/StyleScope.h:
+        * xml/parser/XMLDocumentParserLibxml2.cpp:
+        (WebCore::XMLDocumentParser::doEnd): Apply any pending XSLTs synchronously here as the comment suggests.
+
+2017-10-27  Devin Rousso  <webkit@devinrousso.com>
+
+        Web Inspector: Canvas Tab: no way to see backtrace of where a canvas context was created
+        https://bugs.webkit.org/show_bug.cgi?id=178799
+        <rdar://problem/35175805>
+
+        Reviewed by Brian Burg.
+
+        No new tests, updated existing tests.
+
+        * inspector/InspectorCanvas.h:
+        * inspector/InspectorCanvas.cpp:
+        (iterateCallFrames):
+        (WebCore::InspectorCanvas::buildObjectForCanvas):
+        (WebCore::InspectorCanvas::buildAction):
+
+        * inspector/InspectorCanvasAgent.cpp:
+        (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
+        If the Canvas agent is enabled, generate a backtrace and send it to the frontend with the canvas.
+        We do not do this for canvases created before the agent is enabled for performance reasons.
+
+2017-10-27  Keith Miller  <keith_miller@apple.com>
+
+        Add unified source list files and build scripts to Xcode project navigator
+        https://bugs.webkit.org/show_bug.cgi?id=178959
+
+        Reviewed by Andy Estes.
+
+        * WebCore.xcodeproj/project.pbxproj:
+
+2017-10-27  Daniel Bates  <dabates@apple.com>
+
+        Only allow non-mixed content protected subresources to ask for credentials
+        https://bugs.webkit.org/show_bug.cgi?id=178919
+        <rdar://problem/35015245>
+
+        Reviewed by Alex Christensen.
+
+        Only allow non-mixed content protected subresources to ask for credentials. It is not meaningful
+        to allow protected mixed-content subresources to ask for credentials.
+
+        Tests: http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html
+               http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html
+               http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html
+               http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html
+               http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html
+               http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html
+
+        * loader/ResourceLoader.cpp:
+        (WebCore::ResourceLoader::ResourceLoader): Initialize m_canAskClientForCredentials based on the
+        specified resource loader options.
+        (WebCore::ResourceLoader::init): Update m_canAskClientForCredentials based on the URL of the initial
+        request.
+        (WebCore::ResourceLoader::isMixedContent const): Helper function to check if the specified URL
+        represents a mixed content resource.
+        (WebCore::ResourceLoader::willSendRequestInternal): If the original request or the redirect request
+        is mixed content then update state such that we will disallow asking for credentials.
+        (WebCore::ResourceLoader::isAllowedToAskUserForCredentials const): Modified to use m_canAskClientForCredentials
+        when determining whether the request is allowed to ask for credentials.
+        * loader/ResourceLoader.h:
+
+2017-10-27  Chris Dumez  <cdumez@apple.com>
+
+        Unskip more Service Workers tests
+        https://bugs.webkit.org/show_bug.cgi?id=178944
+
+        Reviewed by Sam Weinig.
+
+        Drop bad assertion that was causing the Service Worker WebProcess to crash and causing
+        tests to fail as a result.
+
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::registration):
+        * workers/service/ServiceWorkerGlobalScope.h:
+
+2017-10-27  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r224011.
+
+        xsl LayoutTests hit an assertion added with this change since
+        r223999 was rolled out.
+
+        Reverted changeset:
+
+        "Assert that no script is executed during style recalc"
+        https://bugs.webkit.org/show_bug.cgi?id=178845
+        https://trac.webkit.org/changeset/224011
+
+2017-10-27  Antoine Quint  <graouts@apple.com>
+
+        [Web Animations] Expose the currentTime property on AnimationTimeline
+        https://bugs.webkit.org/show_bug.cgi?id=178928
+
+        Reviewed by Dean Jackson.
+
+        We add the currentTime property on AnimationTimeline and add an internals method
+        to set it in a test which will allow us to validate the timing model state for
+        a given time.
+
+        Test: webanimations/timeline-current-time.html
+
+        * animation/AnimationTimeline.cpp:
+        (WebCore::AnimationTimeline::bindingsCurrentTime const):
+        (WebCore::AnimationTimeline::setCurrentTime):
+        * animation/AnimationTimeline.h:
+        (WebCore::AnimationTimeline::currentTime const):
+        * animation/AnimationTimeline.idl:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setTimelineCurrentTime):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
 2017-10-27  Antoine Quint  <graouts@apple.com>
 
         [Web Animations] Use Seconds vs. MonotonicTime to represent times