| 2018-11-02 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Clean up drawLineForDocumentMarker() |
| https://bugs.webkit.org/show_bug.cgi?id=191215 |
| |
| Reviewed by Zalan Bujtas. |
| |
| In preparation for https://bugs.webkit.org/show_bug.cgi?id=190764, I need to do a little bit of refactoring. |
| This patch has no behavior change; it just does the following: |
| |
| 1. Renames drawLineForDocumentMarker() to drawDotsForDocumentMarker(), because 2 of the 3 implementations draw dots |
| 2. Moves our implementation back into GraphicsContext, because it's simpler and GraphicsContext is already platform- |
| specific. |
| 3. The signature used to accept a location and a width, but without a height, it's difficult to know what the bounding |
| box is. In particular, knowing the bounding box must be possible without a GraphicsContext. So, I've modified |
| the signature to accept a rectangle instead. The GraphicsContext draws only within this rectangle. |
| |
| No new tests because there is no behavior change. |
| |
| * platform/graphics/GraphicsContext.h: |
| * platform/graphics/GraphicsContextImpl.h: |
| * platform/graphics/cairo/CairoOperations.cpp: |
| (WebCore::Cairo::drawDotsForDocumentMarker): |
| (WebCore::Cairo::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/cairo/CairoOperations.h: |
| * platform/graphics/cairo/GraphicsContextCairo.cpp: |
| (WebCore::GraphicsContext::drawDotsForDocumentMarker): |
| (WebCore::GraphicsContext::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/cairo/GraphicsContextImplCairo.cpp: |
| (WebCore::GraphicsContextImplCairo::drawDotsForDocumentMarker): |
| (WebCore::GraphicsContextImplCairo::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/cairo/GraphicsContextImplCairo.h: |
| * platform/graphics/cocoa/FontCascadeCocoa.mm: |
| * platform/graphics/cocoa/GraphicsContextCocoa.mm: |
| (WebCore::colorForMarkerLineStyle): |
| (WebCore::GraphicsContext::drawDotsForDocumentMarker): |
| (WebCore::GraphicsContext::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/displaylists/DisplayListItems.cpp: |
| (WebCore::DisplayList::Item::sizeInBytes): |
| (WebCore::DisplayList::DrawDotsForDocumentMarker::apply const): |
| (WebCore::DisplayList::DrawDotsForDocumentMarker::localBounds const): |
| (WebCore::DisplayList::operator<<): |
| (WebCore::DisplayList::DrawLineForDocumentMarker::apply const): Deleted. |
| (WebCore::DisplayList::DrawLineForDocumentMarker::localBounds const): Deleted. |
| * platform/graphics/displaylists/DisplayListItems.h: |
| (WebCore::DisplayList::DrawDotsForDocumentMarker::create): |
| (WebCore::DisplayList::DrawDotsForDocumentMarker::rect const): |
| (WebCore::DisplayList::DrawDotsForDocumentMarker::DrawDotsForDocumentMarker): |
| (WebCore::DisplayList::DrawLineForDocumentMarker::create): Deleted. |
| (WebCore::DisplayList::DrawLineForDocumentMarker::point const): Deleted. |
| (WebCore::DisplayList::DrawLineForDocumentMarker::width const): Deleted. |
| (WebCore::DisplayList::DrawLineForDocumentMarker::DrawLineForDocumentMarker): Deleted. |
| * platform/graphics/displaylists/DisplayListRecorder.cpp: |
| (WebCore::DisplayList::Recorder::drawDotsForDocumentMarker): |
| (WebCore::DisplayList::Recorder::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/displaylists/DisplayListRecorder.h: |
| * platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp: |
| (Nicosia::CairoOperationRecorder::drawDotsForDocumentMarker): |
| (Nicosia::CairoOperationRecorder::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h: |
| * platform/graphics/win/GraphicsContextCGWin.cpp: |
| (WebCore::GraphicsContext::drawDotsForDocumentMarker): |
| (WebCore::GraphicsContext::drawLineForDocumentMarker): Deleted. |
| * platform/graphics/win/GraphicsContextDirect2D.cpp: |
| (WebCore::GraphicsContext::drawDotsForDocumentMarker): |
| (WebCore::GraphicsContext::drawLineForDocumentMarker): Deleted. |
| * rendering/InlineTextBox.cpp: |
| (WebCore::InlineTextBox::paintPlatformDocumentMarker): |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::drawLineForDocumentMarker): Deleted. |
| * rendering/RenderTheme.h: |
| * rendering/RenderThemeCocoa.h: |
| * rendering/RenderThemeCocoa.mm: |
| (WebCore::RenderThemeCocoa::drawLineForDocumentMarker): Deleted. |
| * rendering/RenderThemeIOS.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderThemeIOS::colorForMarkerLineStyle): Deleted. |
| * rendering/RenderThemeMac.h: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::colorForMarkerLineStyle): Deleted. |
| |
| 2018-11-02 Ali Juma <ajuma@chromium.org> |
| |
| requestAnimationFrame causes bad location of position:fixed inside overflow:auto and iframe |
| https://bugs.webkit.org/show_bug.cgi?id=176243 |
| |
| Reviewed by Simon Fraser. |
| |
| When a new layer tree is committed to the UIProcess, the positions of layers for fixed |
| or sticky nodes in the newly-committed tree can be stale, because of scrolling that has |
| happened in the UIProcess since the tree was updated in the WebProcess. To handle this, |
| RemoteLayerTreeDrawingAreaProxy::commitLayerTree updates the positions of these layers |
| by calling RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling, which |
| leads to a recursive traversal of the ScrollingTree to update each such layer. However, |
| since ScrollingTreeFrameScrollingNodeIOS didn't implement updateLayersAfterAncestorChange, |
| this traversal never descended into scrolling nodes within an iframe, so the layers for |
| these nodes were left with stale positions. |
| |
| Implement ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterAncestorChange so that |
| fixed and sticky layers within an iframe do get their positions updated when a new layer |
| tree is committed. |
| |
| * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: |
| * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: |
| (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterAncestorChange): |
| |
| 2018-11-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Changing view scale sometimes does not zoom the page to the new initial scale, when the page is at initial scale |
| https://bugs.webkit.org/show_bug.cgi?id=191180 |
| <rdar://problem/45744786> |
| |
| Reviewed by Simon Fraser. |
| |
| When computing the minimum scale in ViewportConfiguration::minimumScale, if our content width or height is |
| shorter than the view width or height, then we recompute the minimum scale such that the content dimensions will |
| fill the bounds of the view by setting the minimum scale to the view width or height divided by the content |
| width or height. |
| |
| Suppose the minimum scale is equal to some value `s`; additionally, let `w_c` denote the content width and `w_v` |
| denote the view width (as integers). If `w_v / s` is not an integral value, the computed content width `w_c` may |
| be rounded, such that `w_v / w_c` is not precisely equal to `s`. In the case that `w_v / w_c` is ever so |
| slightly larger than `s`, we will end up overriding the minimum scale `s` with `w_v / w_c`. |
| |
| As a result, specifying a viewport with a decimal `minimum-scale` will sometimes cause the computed minimum |
| scale of the viewport (and platform view) to be very slightly different from the minimum scale. The new layout |
| test below exercises this scenario, specifying a viewport with minimum and initial scales of 0.94 that results |
| in `ViewportConfiguration::minimumScale` returning 0.94158. |
| |
| With the `WebPage::setViewportConfigurationViewLayoutSize` check added in r237127, this means setting |
| `_viewScale:` when the page is at initial scale sometimes doesn't zoom the page to the new initial scale when it |
| should, since the page scale factor and the initial scale are different enough such that |
| `areEssentiallyEqualAsFloat` returns false. |
| |
| This patch addresses these issues by snapping to the minimum scale if the computed scale that fits content |
| dimensions to view dimensions results in a minimum scale that is close enough to the configuration's minimum |
| scale, such that the difference can be attributed to rounding error when computing content or view dimensions. |
| |
| Test: fast/viewport/ios/viewport-minimum-and-initial-scale.html |
| |
| * page/ViewportConfiguration.cpp: |
| (WebCore::ViewportConfiguration::minimumScale const): |
| |
| 2018-11-02 Philippe Normand <pnormand@igalia.com> |
| |
| [GTK][WPE] Unreviewed, another --no-video --no-web-audio build fix following r237677 |
| |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::addEventListenersToNode): |
| |
| 2018-11-02 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Normalize character string based on key code |
| https://bugs.webkit.org/show_bug.cgi?id=191120 |
| |
| Reviewed by Tim Horton. |
| |
| Following r236417 (https://bugs.webkit.org/show_bug.cgi?id=189604) we always have a valid key code |
| for a special key (e.g. page up) and can simplify the character string normalization code. |
| |
| No functionality changed. So, no new tests. |
| |
| * platform/ios/WebEvent.mm: |
| (normalizedStringWithAppKitCompatibilityMapping): Modified to take a key code and wrote algorithm |
| in terms of it. |
| |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]): |
| Pass the key code for the event to normalizedStringWithAppKitCompatibilityMapping(). |
| |
| 2018-11-02 Daniel Bates <dabates@apple.com> |
| |
| [iOS] WebKit should dispatch DOM events when a modifier key is pressed |
| https://bugs.webkit.org/show_bug.cgi?id=190487 |
| |
| Reviewed by Tim Horton. |
| |
| Add support for modifier flags change events. |
| |
| * platform/ios/PlatformEventFactoryIOS.mm: |
| (WebCore::modifiersForEvent): Modifier keys do not have an associated character and do not |
| participate in key repeat. |
| (WebCore::keyIdentifierForKeyEvent): Identify modifier keys, returning "Unidentified" if |
| the modifier key is unidentified. This matches the behavior on Mac. |
| (WebCore::keyForKeyEvent): Identify modifier keys, returning the empty string if the modifier |
| key is unidentified. This matches the behavior on Mac. |
| (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): |
| * platform/ios/WebEvent.h: |
| |
| * platform/ios/WebEvent.mm: |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]): |
| Modifier keys do not have an associated character and do not participate in key repeat. |
| |
| (-[WebEvent _eventDescription]): Modified to print a description for a keydown or keyup event |
| that represents a modifier flags change. |
| (-[WebEvent characters]): Modifier keys do not have an associated character. Assert this |
| invariant as it is a programming error. On Mac, the same operation would result in a |
| NSInternalInconsistencyException exception being raised. |
| (-[WebEvent charactersIgnoringModifiers]): Ditto. |
| |
| 2018-11-02 Ali Juma <ajuma@chromium.org> |
| |
| Allow cross-document intersection observing |
| https://bugs.webkit.org/show_bug.cgi?id=165746 |
| |
| Reviewed by Simon Fraser. |
| |
| Add logic to compute the intersection between the viewport and an element in a |
| subframe. |
| |
| Add a FloatRect version of ScrollView::rootViewToContents, and FloatRect versions |
| of the methods it calls. |
| |
| Test: http/tests/intersection-observer/intermediate-frame-changes.html |
| Also covered by rebased tests in imported/w3c/web-platform-tests/intersection-observer. |
| |
| * dom/Document.cpp: |
| (WebCore::computeClippedRectInRootContentsSpace): |
| (WebCore::computeIntersectionState): |
| (WebCore::Document::updateIntersectionObservations): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::viewportContentsChanged): |
| (WebCore::FrameView::convertFromContainingViewToRenderer const): |
| (WebCore::FrameView::convertFromContainingView const): |
| * page/FrameView.h: |
| * platform/ScrollView.cpp: |
| (WebCore::ScrollView::viewToContents const): |
| (WebCore::ScrollView::contentsToView const): |
| (WebCore::ScrollView::rootViewToContents const): |
| * platform/ScrollView.h: |
| * platform/Widget.cpp: |
| (WebCore::Widget::convertFromRootView const): |
| (WebCore::Widget::convertFromContainingView const): |
| * platform/Widget.h: |
| |
| 2018-11-02 Rob Buis <rbuis@igalia.com> |
| |
| Remove ENABLE_OPENCL fully |
| https://bugs.webkit.org/show_bug.cgi?id=191172 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| No new tests since no change in functionality. |
| |
| * platform/graphics/filters/FilterEffect.h: |
| (WebCore::FilterEffect::hasResult const): |
| (WebCore::FilterEffect::applyAll): |
| (WebCore::FilterEffect::openCLImage): Deleted. |
| (WebCore::FilterEffect::setOpenCLImage): Deleted. |
| |
| 2018-11-02 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add support for intrinsic width calculation |
| https://bugs.webkit.org/show_bug.cgi?id=191144 |
| |
| Reviewed by Antti Koivisto. |
| |
| This is the inline formatting version of the shrink-to-fit computation. It generates inline runs |
| and uses InlineLineBreaker to compute min/max width. This is very similar to ::layout. |
| |
| Test: fast/inline/simple-shrink-to-fit-inline-block.html |
| |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layout const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndMargin const): |
| (WebCore::Layout::InlineFormattingContext::computeHeightAndMargin const): |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox const): |
| (WebCore::Layout::InlineFormattingContext::collectInlineContent const): |
| (WebCore::Layout::InlineFormattingContext::instrinsicWidthConstraints const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForInlineBox const): Deleted. |
| * layout/inlineformatting/InlineFormattingContext.h: |
| |
| 2018-11-02 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][BFC] BlockFormattingContext::instrinsicWidthConstraints logic should look similar to ::layout |
| https://bugs.webkit.org/show_bug.cgi?id=191181 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::instrinsicWidthConstraints const): |
| |
| 2018-11-02 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] Align shrink-to-fit width computation with the layout implementation. |
| https://bugs.webkit.org/show_bug.cgi?id=191179 |
| |
| Reviewed by Antti Koivisto. |
| |
| There are many similarities between layout and shrink-to-fit. |
| They both operate on formatting roots only (shrink-to-fit -> float, out-of-flow, inline-block) and in both cases |
| the algoritm depends on what type of formatting context the element establishes. |
| |
| This patch is in preparation for transforming the "shrink-to-fit" width computation to make it behave more like layout. |
| With this change the instrinsicWidthConstraints() computation happens in the formatting context that the element establishes (similar to layout). |
| |
| * layout/FormattingContext.cpp: |
| (WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const): |
| * layout/FormattingContext.h: |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin): |
| * layout/FormattingContextGeometry.cpp: |
| (WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin): |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::computeWidthAndMargin const): |
| (WebCore::Layout::BlockFormattingContext::instrinsicWidthConstraints const): |
| * layout/blockformatting/BlockFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::InlineFormattingContext::instrinsicWidthConstraints const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingContextGeometry.cpp: |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin): |
| |
| 2018-11-01 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Make document.getAnimations() return declarative animations in the correct order |
| https://bugs.webkit.org/show_bug.cgi?id=191153 |
| |
| Reviewed by Dean Jackson. |
| |
| The Web Animations spec has the notion of "composite order" which determines the order in which animations should |
| be returned when document.getAnimations() is called. The CSS Transitions and CSS Animations specifications also |
| determine the composite order of their respective animation classes, as well as the notion of "owning element", |
| the element that was the animation target when specified through style, prior to any manipulation via the Web |
| Animations API. We implement these two notions so that we can pass the document.getAnimations() tests for |
| declarative animations. |
| |
| It is important that we have the notion of an "owning element" since when a CSS Transition or CSS Animation is |
| modified via the Web Animations API in a way that an animation created through CSS we must consider no longer |
| as a declarative animation but as a regular Web Animation. In this patch, we remove the DeclarativeAnimation's |
| target(), which returned a reference, to owningElement(), which returns a pointer and return nullptr once the |
| declarative animation has been modified. |
| |
| In order to also keep a correct count of declarative animations applied to elements, we correctly add transitions |
| that have completed to a list of completed transitions, as specified by the CSS Transitions spec. We have had this |
| list declared in AnimationTimeline.h for a while but never actually did the work to add items to it. Thanks to that, |
| AnimationTimeline::updateCSSTransitionsForElement() now correctly accounts for completed transitions so that they |
| may be canceled if overridden with a new animation, correctly removing their "owning element". |
| |
| Finally, now that we have saner lists of animations per classes, we can apply the right sorting routines to match |
| the composite order for CSS Transitions, CSS Animations and Web Animations, keeping a list of all animations created |
| in order as the final criterion for sorting. |
| |
| * animation/AnimationTimeline.cpp: |
| (WebCore::AnimationTimeline::animationTimingDidChange): Make sure this animation is tracked on the list of all animations |
| created for this timeline in the order in which they were created, which is needed to sort animations correctly when |
| document.getAnimations() is called. |
| (WebCore::AnimationTimeline::animationWasAddedToElement): We've removed the relevantMapForAnimation() method which we used |
| to determine which map we should add an animation to based on its class and instead have code that accounts for not just |
| the animation's class, but also whether it has an owning element since a valid owning element is required to qualify as |
| a CSS Transition or CSS Animation, regardless of the animation's original class. |
| (WebCore::removeAnimationFromMapForElement): Adding this helper to remove an animation from the provided animation map so |
| that animationWasRemovedFromElement() can call this with all of the various animation maps. |
| (WebCore::AnimationTimeline::animationWasRemovedFromElement): Check all of the various animation maps to see which may |
| contain the animation we're trying to remove as the owning element might have been cleared by the time this function is |
| called and looking at the animation's class would not be sufficient to determine which animation map the animation was in. |
| (WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement): New function in which the logic from |
| animationWasRemovedFromElement() that dealt with removing animations from the list of running CSS Animations/Transitions as |
| well as completed CSS Transitions was factored out. This allowed us to also call this function from |
| DeclarativeAnimation::disassociateFromOwningElement(). |
| (WebCore::AnimationTimeline::elementWasRemoved): We no longer need to remove an animation as canceling it will remove it |
| correctly when DocumentTimeline::updateAnimationsAndSendEvents() is called. |
| (WebCore::AnimationTimeline::updateCSSAnimationsForElement): Call cancelDeclarativeAnimation() instead of the removed |
| cancelOrRemoveDeclarativeAnimation() when a CSS Animation should be canceled. |
| (WebCore::AnimationTimeline::ensureRunningTransitionsByProperty): Now that we correctly remove transitions from the list |
| of running transitions once they've completed or have been canceled, we need a helper to always get a valid map of running |
| transitions for a given element as that map can be cleared while updateCSSTransitionsForElement() is running. |
| (WebCore::AnimationTimeline::updateCSSTransitionsForElement): Call cancelDeclarativeAnimation() instead of the removed |
| cancelOrRemoveDeclarativeAnimation() when a CSS Transition should be canceled. Additionally we always get the list of running |
| transitions for a given element as it can be cleared by a prior cancelation. |
| (WebCore::AnimationTimeline::cancelDeclarativeAnimation): New function replacing cancelOrRemoveDeclarativeAnimation() in which |
| we call the new DeclarativeAnimation::cancelFromStyle() function on the provided animation and then remove the animation from |
| all known lists, including the new list of all animations. We do this final part so that the animation gets re-added as if it |
| were a new animation since canceling a declarative animation via a style change removes its declarative-ness. This guarantees |
| that a declarative animation that is canceled through style but then resumed through the Web Animations API sorts after any |
| declarative animation with an owning element. |
| (WebCore::AnimationTimeline::relevantMapForAnimation): Deleted. |
| (WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation): Deleted. |
| * animation/AnimationTimeline.h: |
| (WebCore::AnimationTimeline::timingModelDidChange): Deleted. This was left over in the patch where we implemented the "update |
| animations and send events" procedure. |
| (WebCore::AnimationTimeline::animations const): Deleted. |
| * animation/CSSAnimation.cpp: |
| (WebCore::CSSAnimation::create): Some refactoring to make the handling of a declarative animation's owning element part of the |
| DeclarativeAnimation constructor. |
| * animation/CSSTransition.cpp: |
| (WebCore::CSSTransition::create): Some refactoring to make the handling of a declarative animation's owning element part of the |
| DeclarativeAnimation constructor. |
| * animation/DeclarativeAnimation.cpp: |
| (WebCore::DeclarativeAnimation::DeclarativeAnimation): |
| (WebCore::DeclarativeAnimation::tick): Make sure we disassociate from the animation's owning element once we transition from a |
| relevant state to an idle state. This will catch any changes made via the Web Animations API to a declarative animation when the |
| "update animations and send events" procedure is run. |
| (WebCore::DeclarativeAnimation::disassociateFromOwningElement): Remove this animation from the list of declarative animations on |
| the associated timeline and make owningElement() nullptr so that document.getAnimations() will know to sort this animation with other |
| Web Animations created via the Web Animations API. |
| (WebCore::DeclarativeAnimation::initialize): |
| (WebCore::DeclarativeAnimation::cancelFromStyle): New method called from AnimationTimeline::cancelDeclarativeAnimation() which |
| cancels the animation but also disassociates it from its owning element. |
| (WebCore::DeclarativeAnimation::invalidateDOMEvents): |
| (WebCore::DeclarativeAnimation::enqueueDOMEvent): |
| * animation/DeclarativeAnimation.h: |
| (WebCore::DeclarativeAnimation::owningElement const): |
| (WebCore::DeclarativeAnimation::target const): Deleted. |
| * animation/DocumentTimeline.cpp: |
| (WebCore::compareDeclarativeAnimationOwningElementPositionsInDocumentTreeOrder): Adding a new utility used when sorting both |
| CSS Transitions and CSS Animations by tree order when their owning element differ, with special logic for pseudo-elements. |
| (WebCore::DocumentTimeline::getAnimations const): Filter and sort animations according to their composite order. |
| (WebCore::DocumentTimeline::updateAnimationsAndSendEvents): Compile a list of transitions that move to a finished state to |
| the list of completed transitions so that they may be canceled correctly in AnimationTimeline::updateCSSTransitionsForElement(). |
| (WebCore::DocumentTimeline::transitionDidComplete): |
| * animation/DocumentTimeline.h: |
| |
| 2018-11-02 Zan Dobersek <zdobersek@igalia.com> |
| |
| PNGImageDecoder: report no repetition for non-animated images |
| https://bugs.webkit.org/show_bug.cgi?id=191068 |
| |
| Reviewed by Michael Catanzaro. |
| |
| When building with APNG support enabled, the |
| PNGImageDecoder::repetitionCount() method until now reported infinite |
| repetition count for all PNG images, even the ones that were not |
| animated. This is now changed so that no repetition is reported for |
| non-animated images. |
| |
| * platform/image-decoders/png/PNGImageDecoder.cpp: |
| (WebCore::PNGImageDecoder::repetitionCount const): |
| |
| 2018-11-02 Justin Fan <justin_fan@apple.com> |
| |
| [WebGPU] Experimental prototype for MSL shaders |
| https://bugs.webkit.org/show_bug.cgi?id=191084 |
| |
| Reviewed by Dean Jackson. |
| |
| Begin implementation for WebGPUDevice and WebGPUShaderModule and associated descriptor objects. |
| |
| Test: webgpu/webgpu-basics.html |
| Test: webgpu/shader-modules.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/webgpu/GPUDevice.cpp: |
| (WebCore::GPUDevice::createShaderModule const): |
| * Modules/webgpu/GPUDevice.h: |
| (WebCore::GPUDevice::platformDevice const): |
| * Modules/webgpu/GPUShaderModule.h: |
| (WebCore::GPUShaderModule::platformShaderModule const): |
| * Modules/webgpu/GPUShaderModuleDescriptor.h: |
| * Modules/webgpu/WebGPU.cpp: |
| (WebCore::WebGPU::requestAdapter const): |
| * Modules/webgpu/WebGPUAdapter.cpp: |
| (WebCore::WebGPUAdapter::create): |
| (WebCore::WebGPUAdapter::createDevice): |
| * Modules/webgpu/WebGPUAdapter.h: |
| * Modules/webgpu/WebGPUAdapter.idl: |
| * Modules/webgpu/WebGPUDevice.cpp: |
| (WebCore::WebGPUDevice::create): |
| (WebCore::WebGPUDevice::WebGPUDevice): |
| (WebCore::WebGPUDevice::createShaderModule const): |
| * Modules/webgpu/WebGPUDevice.h: |
| * Modules/webgpu/WebGPUDevice.idl: |
| * Modules/webgpu/WebGPUShaderModule.cpp: |
| (WebCore::WebGPUShaderModule::create): |
| (WebCore::WebGPUShaderModule::WebGPUShaderModule): |
| * Modules/webgpu/WebGPUShaderModule.h: |
| * Modules/webgpu/WebGPUShaderModule.idl: |
| * Modules/webgpu/WebGPUShaderModuleDescriptor.h: |
| * Modules/webgpu/WebGPUShaderModuleDescriptor.idl: |
| * Modules/webgpu/WebGPUSwapChain.cpp: |
| (WebCore::WebGPUSwapChain::configure): |
| * Modules/webgpu/WebGPUSwapChain.h: |
| * Modules/webgpu/WebGPUSwapChain.idl: |
| * Modules/webgpu/cocoa/GPUDeviceMetal.mm: |
| (WebCore::GPUDevice::create): |
| (WebCore::GPUDevice::GPUDevice): |
| * Modules/webgpu/cocoa/GPUShaderModuleMetal.mm: |
| (WebCore::GPUShaderModule::create): |
| (WebCore::GPUShaderModule::GPUShaderModule): |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * platform/Logging.h: |
| |
| 2018-11-01 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Replace CommonRandom SPI with API |
| https://bugs.webkit.org/show_bug.cgi?id=191178 |
| <rdar://problem/45722391> |
| |
| Reviewed by Brent Fulgham. |
| |
| The API is available since macOS 10.10 and iOS 10, and therefore it is safe to replace |
| all SPI usages with API. |
| |
| No change of behaviors. |
| |
| * crypto/CommonCryptoUtilities.h: |
| * crypto/mac/CryptoKeyMac.cpp: |
| (WebCore::CryptoKey::randomData): |
| * crypto/mac/SerializedCryptoKeyWrapMac.mm: |
| (WebCore::createAndStoreMasterKey): |
| (WebCore::wrapSerializedCryptoKey): |
| * page/Crypto.cpp: |
| (WebCore::Crypto::getRandomValues): |
| |
| 2018-11-01 Chris Dumez <cdumez@apple.com> |
| |
| [WebIDL] Rename CallWith=ScriptState to CallWith=ExecState |
| https://bugs.webkit.org/show_bug.cgi?id=191162 |
| |
| Reviewed by Alex Christensen. |
| |
| Rename CallWith=ScriptState to CallWith=ExecState in our Web IDL as ScriptState is no longer a thing |
| in modern WebKit. The implementation is actually passed an ExecState nowadays. |
| |
| * Modules/applepay/ApplePaySession.idl: |
| * Modules/encryptedmedia/MediaKeyStatusMap.idl: |
| * Modules/fetch/FetchBody.idl: |
| * Modules/indexeddb/IDBCursor.idl: |
| * Modules/indexeddb/IDBFactory.idl: |
| * Modules/indexeddb/IDBIndex.idl: |
| * Modules/indexeddb/IDBKeyRange.idl: |
| * Modules/indexeddb/IDBObjectStore.idl: |
| * Modules/mediastream/RTCPeerConnection.idl: |
| * animation/Animatable.idl: |
| * animation/KeyframeEffect.idl: |
| * animation/KeyframeEffectReadOnly.idl: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateCallWith): |
| (GenerateConstructorDefinition): |
| * bindings/scripts/IDLAttributes.json: |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjWithExecStateAttributeGetter): |
| (WebCore::jsTestObjWithExecStateAttribute): |
| (WebCore::setJSTestObjWithExecStateAttributeSetter): |
| (WebCore::setJSTestObjWithExecStateAttribute): |
| (WebCore::jsTestObjWithScriptExecutionContextAndExecStateAttributeGetter): |
| (WebCore::jsTestObjWithScriptExecutionContextAndExecStateAttribute): |
| (WebCore::setJSTestObjWithScriptExecutionContextAndExecStateAttributeSetter): |
| (WebCore::setJSTestObjWithScriptExecutionContextAndExecStateAttribute): |
| (WebCore::jsTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeGetter): |
| (WebCore::jsTestObjWithScriptExecutionContextAndExecStateWithSpacesAttribute): |
| (WebCore::setJSTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeSetter): |
| (WebCore::setJSTestObjWithScriptExecutionContextAndExecStateWithSpacesAttribute): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateVoidBody): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateVoid): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateObj): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateVoidExceptionBody): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateVoidException): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody): |
| (WebCore::jsTestObjPrototypeFunctionWithExecStateObjException): |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateBody): |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecState): |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody): |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjException): |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody): |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpaces): |
| (WebCore::jsTestObjWithScriptStateAttributeGetter): Deleted. |
| (WebCore::jsTestObjWithScriptStateAttribute): Deleted. |
| (WebCore::setJSTestObjWithScriptStateAttributeSetter): Deleted. |
| (WebCore::setJSTestObjWithScriptStateAttribute): Deleted. |
| (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeGetter): Deleted. |
| (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute): Deleted. |
| (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeSetter): Deleted. |
| (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute): Deleted. |
| (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttributeGetter): Deleted. |
| (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute): Deleted. |
| (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttributeSetter): Deleted. |
| (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidExceptionBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjExceptionBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjExceptionBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpacesBody): Deleted. |
| (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces): Deleted. |
| * bindings/scripts/test/TestObj.idl: |
| * bindings/scripts/test/TestPromiseRejectionEvent.idl: |
| * crypto/SubtleCrypto.idl: |
| * dom/Element.idl: |
| * dom/ErrorEvent.idl: |
| * dom/MessagePort.idl: |
| * dom/MouseEvent.idl: |
| * html/HTMLCanvasElement.idl: |
| * html/HTMLFrameElement.idl: |
| * html/OffscreenCanvas.idl: |
| * html/track/DataCue.idl: |
| * inspector/CommandLineAPIHost.idl: |
| * page/DOMWindow.idl: |
| * page/RemoteDOMWindow.idl: |
| * page/WindowOrWorkerGlobalScope.idl: |
| * testing/Internals.idl: |
| * workers/DedicatedWorkerGlobalScope.idl: |
| * workers/Worker.idl: |
| |
| 2018-11-01 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h |
| https://bugs.webkit.org/show_bug.cgi?id=189693 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| No new tests because there's no behaviro changes. |
| |
| * platform/SharedBuffer.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>. |
| * xml/XSLTProcessorLibxslt.cpp: Ditto. |
| * xml/parser/XMLDocumentParserLibxml2.cpp: Ditto. |
| |
| 2018-11-01 John Wilander <wilander@apple.com> |
| |
| In WebCore::ResourceLoadObserver, use document.sessionID().isEphemeral() when possible and check for page existence when not |
| https://bugs.webkit.org/show_bug.cgi?id=191119 |
| <rdar://problem/44176965> |
| |
| Reviewed by Chris Dumez. |
| |
| New API test added. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logSubresourceLoading): |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| |
| 2018-11-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: remove unnecessary media event tracking |
| https://bugs.webkit.org/show_bug.cgi?id=191174 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| No new tests, as this simply removes some event listeners for the WebInspector frontend. |
| |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::addEventListenersToNode): |
| |
| 2018-11-01 Chris Dumez <cdumez@apple.com> |
| |
| Location object sans browsing context |
| https://bugs.webkit.org/show_bug.cgi?id=191060 |
| |
| Reviewed by Geoffrey Garen. |
| |
| As per https://github.com/whatwg/html/pull/4076, a Location object's URL should be "about:blank" when |
| it does not have a browsing context (Frame), not "". |
| |
| No new tests, rebaselined existing tests. |
| |
| * page/Location.cpp: |
| (WebCore::Location::url const): |
| (WebCore::Location::href const): |
| (WebCore::Location::protocol const): |
| (WebCore::Location::host const): |
| (WebCore::Location::hostname const): |
| (WebCore::Location::port const): |
| (WebCore::Location::pathname const): |
| (WebCore::Location::search const): |
| (WebCore::Location::origin const): |
| (WebCore::Location::hash const): |
| |
| 2018-11-01 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a storage limit for IndexedDB |
| https://bugs.webkit.org/show_bug.cgi?id=190598 |
| <rdar://problem/44654715> |
| |
| Reviewed by Chris Dumez. |
| |
| Set a storage limit in IndexedDB for each pair of mainFrameOrigin and openingOrigin. |
| IndexedDB will return a QuotaExceededError if limit is reached. |
| |
| If the size of free disk space is over 1 GB, the default limit is 500 MB; otherwise it is |
| half the free disk space. |
| |
| Test: storage/indexeddb/storage-limit.html |
| |
| * Modules/indexeddb/server/IDBBackingStore.h: |
| * Modules/indexeddb/server/IDBServer.cpp: |
| (WebCore::IDBServer::IDBServer::createBackingStore): |
| (WebCore::IDBServer::IDBServer::setPerOriginQuota): |
| * Modules/indexeddb/server/IDBServer.h: |
| (WebCore::IDBServer::IDBServer::perOriginQuota const): |
| * Modules/indexeddb/server/MemoryIDBBackingStore.h: |
| * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: |
| (WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::quotaForOrigin const): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::maximumSize const): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::createIndex): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::addRecord): |
| (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue): |
| * Modules/indexeddb/server/SQLiteIDBBackingStore.h: |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| (WebCore::IDBServer::UniqueIDBDatabase::setQuota): |
| * Modules/indexeddb/server/UniqueIDBDatabase.h: |
| |
| 2018-11-01 Justin Michaud <justin_michaud@apple.com> |
| |
| CSS Custom Properties API Should Support syntax="*" and "<length>", and handle cycles properly |
| https://bugs.webkit.org/show_bug.cgi?id=191042 |
| |
| Reviewed by Antti Koivisto. |
| |
| Refactor code so that: |
| - All properties applied in StyleResolver::applyMatchedProperties are only applied once. |
| - Custom properties are only resolved once, in StyleResolver, when they are applied to the RenderStyle. They were previously resolved |
| every time they were referenced, and again in RenderStyle. |
| - The font-size property is applied after its variable references, but before custom properties that depend on it. |
| - Cycles are detected at the same time as resolution. |
| - MutableStyleProperties' custom properties cannot be set from Javascript or WebKitLegacy if they do not parse for the property's type. |
| If they contain var(--...) references, however, then they can be set because we cannot check if the references are valid from setProperty. |
| This behaviour matches chrome, but is not documented in the spec. |
| - Custom property values have more explicit resolved/unresolved state. |
| - RenderStyle only ever holds resolved custom properties, and StyleResolver::CascadedProperties only holds unresolved properties. |
| |
| Tests: css-custom-properties-api/crash.html |
| css-custom-properties-api/cycles.html |
| css-custom-properties-api/inline.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::customPropertyValue): |
| * css/CSSCustomPropertyValue.cpp: |
| (WebCore::CSSCustomPropertyValue::equals const): |
| (WebCore::CSSCustomPropertyValue::customCSSText const): |
| (WebCore::CSSCustomPropertyValue::tokens const): |
| (WebCore::CSSCustomPropertyValue::checkVariablesForCycles const): Deleted. |
| (WebCore::CSSCustomPropertyValue::resolveVariableReferences const): Deleted. |
| (WebCore::CSSCustomPropertyValue::setResolvedTypedValue): Deleted. |
| * css/CSSCustomPropertyValue.h: |
| * css/CSSRegisteredCustomProperty.cpp: |
| (WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty): |
| * css/CSSRegisteredCustomProperty.h: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::CSSVariableData): |
| (WebCore::CSSVariableData::consumeAndUpdateTokens): Deleted. |
| (WebCore::CSSVariableData::checkVariablesForCycles const): Deleted. |
| (WebCore::CSSVariableData::checkVariablesForCyclesWithRange const): Deleted. |
| (WebCore::CSSVariableData::resolveVariableFallback const): Deleted. |
| (WebCore::CSSVariableData::resolveVariableReference const): Deleted. |
| (WebCore::CSSVariableData::resolveVariableReferences const): Deleted. |
| (WebCore::CSSVariableData::resolveTokenRange const): Deleted. |
| * css/CSSVariableData.h: |
| (WebCore::CSSVariableData::create): |
| (WebCore::CSSVariableData::createResolved): Deleted. |
| (WebCore::CSSVariableData::needsVariableResolution const): Deleted. |
| (WebCore::CSSVariableData::CSSVariableData): Deleted. |
| * css/CSSVariableReferenceValue.cpp: |
| (WebCore::resolveVariableFallback): |
| (WebCore::resolveVariableReference): |
| (WebCore::resolveTokenRange): |
| (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): |
| (WebCore::CSSVariableReferenceValue::checkVariablesForCycles const): Deleted. |
| * css/CSSVariableReferenceValue.h: |
| (WebCore::CSSVariableReferenceValue::create): |
| (WebCore::CSSVariableReferenceValue::equals const): |
| (WebCore::CSSVariableReferenceValue::variableDataValue const): Deleted. |
| * css/DOMCSSRegisterCustomProperty.cpp: |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| * css/PropertySetCSSStyleDeclaration.cpp: |
| (WebCore::PropertySetCSSStyleDeclaration::setProperty): |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyInitialCustomProperty): |
| (WebCore::StyleBuilderCustom::applyValueCustomProperty): |
| * css/StyleProperties.cpp: |
| (WebCore::MutableStyleProperties::setCustomProperty): |
| * css/StyleProperties.h: |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::State::setStyle): |
| (WebCore::StyleResolver::styleForKeyframe): |
| (WebCore::StyleResolver::styleForPage): |
| (WebCore::StyleResolver::applyMatchedProperties): |
| (WebCore::StyleResolver::applyPropertyToCurrentStyle): |
| (WebCore::StyleResolver::applyProperty): |
| (WebCore::StyleResolver::resolvedVariableValue const): |
| (WebCore::StyleResolver::CascadedProperties::applyDeferredProperties): |
| (WebCore::StyleResolver::CascadedProperties::Property::apply): |
| (WebCore::StyleResolver::applyCascadedCustomProperty): |
| (WebCore::StyleResolver::applyCascadedProperties): |
| * css/StyleResolver.h: |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseValueWithVariableReferences): |
| * css/parser/CSSParser.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::CSSPropertyParser): |
| (WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue): |
| (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): |
| (WebCore::CSSPropertyParser::collectParsedCustomPropertyValueDependencies): |
| (WebCore::CSSPropertyParser::parseValueStart): |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| * css/parser/CSSPropertyParser.h: |
| * css/parser/CSSVariableParser.cpp: |
| (WebCore::CSSVariableParser::parseDeclarationValue): |
| * dom/ConstantPropertyMap.cpp: |
| (WebCore::ConstantPropertyMap::setValueForProperty): |
| (WebCore::variableDataForPositivePixelLength): |
| (WebCore::variableDataForPositiveDuration): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::checkVariablesInCustomProperties): Deleted. |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::setInheritedCustomPropertyValue): |
| (WebCore::RenderStyle::setNonInheritedCustomPropertyValue): |
| * rendering/style/StyleCustomPropertyData.h: |
| (WebCore::StyleCustomPropertyData::operator== const): |
| (WebCore::StyleCustomPropertyData::setCustomPropertyValue): |
| (WebCore::StyleCustomPropertyData::StyleCustomPropertyData): |
| (): Deleted. |
| |
| 2018-11-01 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [CG] Adopt CG SPI for non-even cornered rounded rects |
| https://bugs.webkit.org/show_bug.cgi?id=190155 |
| |
| Reviewed by Simon Fraser. |
| |
| Instead of creating bezier curves for the non-even corners of the rounded |
| rects, we should use the optimized SPI provided by CG. |
| |
| * platform/graphics/cg/PathCG.cpp: |
| (WebCore::Path::platformAddPathForRoundedRect): |
| |
| 2018-11-01 Youenn Fablet <youenn@apple.com> |
| |
| RTCTrackEvent.streams should be SameObject |
| https://bugs.webkit.org/show_bug.cgi?id=191130 |
| |
| Reviewed by Eric Carlson. |
| |
| Mimick SameObject using CachedAttribute. |
| Covered by rebased test. |
| |
| * Modules/mediastream/RTCTrackEvent.idl: |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add support for inline-block elements. |
| https://bugs.webkit.org/show_bug.cgi?id=191143 |
| |
| Reviewed by Antti Koivisto. |
| |
| This patch add support for laying out non-shrink-to-width inline-block elements. |
| |
| Test: fast/inline/simple-inline-block.html |
| |
| * layout/FormattingContext.h: |
| (WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin): |
| * layout/FormattingContextGeometry.cpp: |
| (WebCore::Layout::contentHeightForFormattingContextRoot): |
| (WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth): |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| * layout/inlineformatting/InlineFormattingContextGeometry.cpp: |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin): |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin): |
| * layout/layouttree/LayoutInlineContainer.cpp: |
| (WebCore::Layout::InlineContainer::establishesInlineFormattingContext const): |
| * layout/layouttree/LayoutInlineContainer.h: |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::TreeBuilder::createSubTree): |
| |
| 2018-11-01 Claudio Saavedra <csaavedra@igalia.com> |
| |
| Fix build with VIDEO and WEB_AUDIO disabled |
| https://bugs.webkit.org/show_bug.cgi?id=191147 |
| |
| Reviewed by Philippe Normand. |
| |
| Supported or not, there were a few build fixes needed |
| to be able to build WebKit with media disabled. Mostly |
| low-hanging fruits. |
| |
| * Modules/mediasource/VideoPlaybackQuality.cpp: |
| * Modules/mediasource/VideoPlaybackQuality.h: |
| * Modules/mediasource/VideoPlaybackQuality.idl: |
| * dom/Document.cpp: |
| (WebCore::Document::dispatchFullScreenChangeOrErrorEvent): |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::InspectorDOMAgent): |
| (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): |
| * inspector/agents/InspectorDOMAgent.h: |
| * rendering/RenderThemeGtk.cpp: |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: create a setting for auto-recording newly created contexts |
| https://bugs.webkit.org/show_bug.cgi?id=190856 |
| |
| Reviewed by Brian Burg. |
| |
| Test: inspector/canvas/setRecordingAutoCaptureFrameCount.html |
| |
| * inspector/agents/InspectorCanvasAgent.h: |
| (WebCore::InspectorCanvasAgent::RecordingOptions): Added. |
| * inspector/agents/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::enable): |
| (WebCore::InspectorCanvasAgent::disable): |
| (WebCore::InspectorCanvasAgent::setRecordingAutoCaptureFrameCount): Added. |
| (WebCore::InspectorCanvasAgent::startRecording): |
| (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext): |
| (WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame): |
| (WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas): |
| (WebCore::InspectorCanvasAgent::startRecording): Added. |
| Unify the different functions that are able to start a recording to use a single path. |
| |
| * inspector/InspectorCanvas.h: |
| * inspector/InspectorCanvas.cpp: |
| (WebCore::InspectorCanvas::resetRecordingData): |
| (WebCore::InspectorCanvas::recordAction): |
| (WebCore::InspectorCanvas::setFrameCount): Added. |
| (WebCore::InspectorCanvas::overFrameCount const): Added. |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: display low-power enter/exit events in Timelines and Network node waterfalls |
| https://bugs.webkit.org/show_bug.cgi?id=190641 |
| <rdar://problem/45319049> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| No new tests, as low power mode is indeterminate. Should not affect functionality. |
| |
| * inspector/agents/InspectorDOMAgent.h: |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::InspectorDOMAgent): |
| (WebCore::InspectorDOMAgent::addEventListenersToNode): |
| (WebCore::InspectorDOMAgent::mediaMetricsTimerFired): Added. |
| |
| 2018-10-31 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE] Use tolerance when growing the coded frame group |
| https://bugs.webkit.org/show_bug.cgi?id=190085 |
| |
| Reviewed by Jer Noble. |
| |
| Test: media/media-source/media-source-append-acb-tolerance.html |
| |
| This patch introduces a millisecond tolerance in the range of |
| potential frames that should be erased frame from the track buffer |
| when the coded frame group is growing. |
| |
| This is necessary because some files have imprecise overlapping |
| timestamps (especially WebM files). |
| |
| This fixes a stall when seeking back and forth in YouTube with WebM |
| video. |
| |
| A test case simulating the problem with video/mock using timestamps |
| similar to those of a typical 30 fps WebM video is also added. |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| |
| 2018-10-31 Jer Noble <jer.noble@apple.com> |
| |
| MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L60.B0') is inproperly rejected |
| https://bugs.webkit.org/show_bug.cgi?id=191129 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-source/media-source-istypesupported-case-sensitive.html |
| |
| According to RFC 2045: "All media type values, subtype values, and parameter names as |
| defined are case-insensitive. However, parameter values are case-sensitive unless otherwise |
| specified for the specific parameter." So rather than fold the entire ContentType into lower- |
| case, leave the original string intact and require clients to enforce case-insensitivity. |
| |
| * Modules/mediasource/MediaSource.cpp: |
| (WebCore::MediaSource::isTypeSupported): |
| |
| 2018-10-31 Jer Noble <jer.noble@apple.com> |
| |
| Unreivewed build fix; fix the non-HAVE_AVCONTENTKEYSESSION builds by adding guards around |
| access of m_cdmInstance. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance): |
| |
| 2018-10-31 YUHAN WU <yuhan_wu@apple.com> |
| |
| MediaRecorder should fire dataavailable event when all tracks are ended and stop() is called |
| https://bugs.webkit.org/show_bug.cgi?id=190778 |
| <rdar://problem/45703574> |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a include to fix the unified build error. |
| |
| No tests since no new functionality. |
| |
| * Modules/webgpu/WebGPUDevice.cpp: |
| |
| 2018-10-26 Jer Noble <jer.noble@apple.com> |
| |
| [EME][Cocoa] Cannot play unmuxed video and audio fMP4 streams encrypted with different keys via MSE |
| https://bugs.webkit.org/show_bug.cgi?id=190946 |
| |
| Reviewed by Eric Carlson. |
| |
| Use separate AVContentKeySessions per CDMInstanceSession (rather than one AVContentKeySession per |
| CDMInstance). |
| |
| - Add a mechanism for sending a message out from platform/CDMInstance to MediaKeySession without |
| requiring MediaKeySession to send a callback first. |
| |
| - Move all the AVContentKeySession delegate methods from CDMInstanceFairPlayStreamingAVFObjC to |
| CDMInstanceSessionFairPlayStreamingAVFObjC. |
| |
| - Add a mechanism for requesting the correct CDMInstanceSession for a given KeyID. |
| |
| - Support key renewal through a "renew" message. |
| |
| - Remember the keyID in SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID() |
| and ask for the correct CDMInstanceSession for that keyID in attemptToDecrypt(). |
| |
| - Pass the CDMInstance down from MediaPlayerPrivateMediaSourceAVFObjC -> SourceBufferPrivateAVFObjC. |
| |
| * Modules/encryptedmedia/MediaKeySession.cpp: |
| (WebCore::MediaKeySession::sendMessage): |
| * Modules/encryptedmedia/MediaKeySession.h: |
| * platform/encryptedmedia/CDMInstanceSession.h: |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: |
| (-[WebCoreFPSContentKeySessionDelegate initWithParent:]): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::initializeWithConfiguration): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::createSession): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForKeyIDs const): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::CDMInstanceSessionFairPlayStreamingAVFObjC): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::~CDMInstanceSessionFairPlayStreamingAVFObjC): |
| (WebCore::keyIDsForRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyIDs): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::nextRequest): |
| (WebCore::requestStatusToCDMStatus): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSession): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::cdmInstanceAttached): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::cdmInstanceDetached): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmInstanceAttached): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmInstanceDetached): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::attemptToDecryptWithInstance): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKey const): |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: |
| (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer): |
| (WebCore::MediaSourcePrivateAVFObjC::cdmInstanceAttached): |
| (WebCore::MediaSourcePrivateAVFObjC::cdmInstanceDetached): |
| (WebCore::MediaSourcePrivateAVFObjC::attemptToDecryptWithInstance): |
| (WebCore::MediaSourcePrivateAVFObjC::waitingForKey const): |
| (WebCore::MediaSourcePrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): |
| (WebCore::SourceBufferPrivateAVFObjC::destroyParser): |
| (WebCore::SourceBufferPrivateAVFObjC::setCDMInstance): |
| (WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt): |
| (WebCore::SourceBufferPrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| |
| 2018-10-31 Zach Li <zacharyli323@gmail.com> |
| |
| Add credit card autofill button |
| https://bugs.webkit.org/show_bug.cgi?id=191051 |
| <rdar://problem/45657011> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Test: fast/forms/auto-fill-button/input-credit-card-auto-fill-button.html |
| |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): |
| * css/html.css: |
| (input::-webkit-credit-card-auto-fill-button): |
| Add credit card autofill button. |
| (input::-webkit-credit-card-auto-fill-button:hover): |
| (input::-webkit-credit-card-auto-fill-button:active): |
| * html/HTMLTextFormControlElement.h: |
| * html/TextFieldInputType.cpp: |
| (WebCore::autoFillButtonTypeToAccessibilityLabel): |
| (WebCore::autoFillButtonTypeToAutoFillButtonText): |
| (WebCore::autoFillButtonTypeToAutoFillButtonPseudoClassName): |
| (WebCore::isAutoFillButtonTypeChanged): |
| * platform/LocalizedStrings.cpp: |
| (WebCore::AXAutoFillCreditCardLabel): |
| * platform/LocalizedStrings.h: |
| * testing/Internals.cpp: |
| (WebCore::toAutoFillButtonType): |
| (WebCore::toInternalsAutoFillButtonType): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-10-31 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Don't reveal device IDs until the user has granted permission to capture |
| https://bugs.webkit.org/show_bug.cgi?id=191112 |
| <rdar://problem/45699932> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, existing tests updated. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::start): Don't reveal device ID or group ID until the user |
| has granted permssion to capture. |
| |
| 2018-10-31 YUHAN WU <yuhan_wu@apple.com> |
| |
| MediaRecorder should fire dataavailable event when all tracks are ended and stop() is called |
| https://bugs.webkit.org/show_bug.cgi?id=190778 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implement JavaScript dispatch event dataavailable and JavaScript exposed method stop(). |
| Implement a mock string as the output buffer of MediaRecorder. |
| Remove the declaration of timecode in BlobEvent since it has not been implemented in MediaRecorder and MediaRecorderPrivate. |
| |
| Tests: http/wpt/mediarecorder/MediaRecorder-dataavailable.html |
| http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html |
| imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-destroy-script-execution.html |
| imported/w3c/web-platform-tests/mediacapture-record/support/MediaRecorder-iframe.html |
| |
| * CMakeLists.txt: |
| * Modules/mediarecorder/BlobEvent.cpp: Added. |
| (WebCore::BlobEvent::create): |
| (WebCore::BlobEvent::BlobEvent): |
| (WebCore::BlobEvent::eventInterface const): |
| * Modules/mediarecorder/BlobEvent.h: |
| * Modules/mediarecorder/BlobEvent.idl: |
| * Modules/mediarecorder/MediaRecorder.cpp: |
| (WebCore::MediaRecorder::MediaRecorder): |
| (WebCore::MediaRecorder::~MediaRecorder): |
| (WebCore::MediaRecorder::stop): |
| (WebCore::MediaRecorder::startRecording): |
| (WebCore::MediaRecorder::stopRecording): |
| (WebCore::MediaRecorder::stopRecordingInternal): |
| (WebCore::MediaRecorder::didAddOrRemoveTrack): |
| (WebCore::MediaRecorder::trackEnded): |
| (WebCore::MediaRecorder::sampleBufferUpdated): |
| (WebCore::MediaRecorder::audioSamplesAvailable): |
| (WebCore::MediaRecorder::scheduleDeferredTask): |
| * Modules/mediarecorder/MediaRecorder.h: |
| * Modules/mediarecorder/MediaRecorder.idl: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/EventNames.h: |
| * dom/EventNames.in: |
| * platform/mediarecorder/MediaRecorderPrivate.h: Added. |
| * platform/mediarecorder/MediaRecorderPrivateMock.cpp: Added. |
| (WebCore::MediaRecorderPrivateMock::sampleBufferUpdated): |
| (WebCore::MediaRecorderPrivateMock::audioSamplesAvailable): |
| (WebCore::MediaRecorderPrivateMock::generateMockString): |
| (WebCore::MediaRecorderPrivateMock::fetchData): |
| * platform/mediarecorder/MediaRecorderPrivateMock.h: Added. |
| |
| 2018-10-31 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GTK][WPE] Remaining topPrivatelyControlledDomain() fixes |
| https://bugs.webkit.org/show_bug.cgi?id=191110 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Covered by existing tests. |
| |
| Turns out that this method is expected to reject domains that |
| are not registrable. Also sync with the Mac implementation in |
| that given domains that are not all ASCII should be returned |
| back as is. This fixes the remaining Public Suffix API tests. |
| |
| * platform/soup/PublicSuffixSoup.cpp: |
| (WebCore::topPrivatelyControlledDomain): |
| |
| 2018-10-31 Antti Koivisto <antti@apple.com> |
| |
| Remove LayerFlushScheduler |
| https://bugs.webkit.org/show_bug.cgi?id=191103 |
| |
| Reviewed by Anders Carlsson. |
| |
| It is only used in WK1. |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/ca/LayerFlushScheduler.cpp: Removed. |
| * platform/graphics/ca/LayerFlushScheduler.h: Removed. |
| * platform/graphics/ca/LayerFlushSchedulerClient.h: Removed. |
| * platform/graphics/ca/cocoa/LayerFlushSchedulerMac.cpp: Removed. |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| Missing from r237634 |
| |
| * layout/inlineformatting/InlineFormattingState.cpp: |
| (WebCore::Layout::InlineFormattingState::formattingContext): |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] Do not pass LayoutState& to compute* and layout* functions |
| https://bugs.webkit.org/show_bug.cgi?id=191100 |
| |
| Reviewed by Antti Koivisto. |
| |
| Reduce noise by removing LayoutState& parameter where possible. |
| |
| * layout/FormattingContext.cpp: |
| (WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const): |
| (WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const): |
| (WebCore::Layout::FormattingContext::computeBorderAndPadding const): |
| (WebCore::Layout::FormattingContext::placeInFlowPositionedChildren const): |
| (WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const): |
| (WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const): |
| * layout/FormattingContext.h: |
| * layout/FormattingContextGeometry.cpp: |
| (WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth): |
| * layout/LayoutFormattingState.cpp: |
| (WebCore::Layout::LayoutState::layoutFormattingContextSubtree): |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::layout const): |
| (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::BlockFormattingContext::computeStaticPosition const): |
| (WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTop const): |
| (WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const): |
| (WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRootIfNeeded const): |
| (WebCore::Layout::BlockFormattingContext::computeFloatingPosition const): |
| (WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const): |
| (WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const): |
| (WebCore::Layout::BlockFormattingContext::computeInFlowPositionedPosition const): |
| (WebCore::Layout::BlockFormattingContext::computeWidthAndMargin const): |
| (WebCore::Layout::BlockFormattingContext::computeHeightAndMargin const): |
| (WebCore::Layout::BlockFormattingContext::instrinsicWidthConstraints const): |
| * layout/blockformatting/BlockFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layout const): |
| (WebCore::Layout::InlineFormattingContext::initializeNewLine const): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForInlineBox const): |
| (WebCore::Layout::InlineFormattingContext::computeFloatPosition const): |
| (WebCore::Layout::InlineFormattingContext::computeStaticPosition const): |
| (WebCore::Layout::InlineFormattingContext::computeInFlowPositionedPosition const): |
| (WebCore::Layout::InlineFormattingContext::instrinsicWidthConstraints const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] FormattingContext class should take FormattingState& |
| https://bugs.webkit.org/show_bug.cgi?id=191099 |
| |
| Reviewed by Antti Koivisto. |
| |
| This is in preparation for not passing LayoutState& into every layout functions. |
| FormattingContext has FormattingState now and LayoutState can be acquired through FormattingState. |
| LayoutState <- FormattingState <- FormattingContext |
| |
| * layout/FormattingContext.cpp: |
| (WebCore::Layout::FormattingContext::FormattingContext): |
| (WebCore::Layout::FormattingContext::formattingState const): |
| (WebCore::Layout::FormattingContext::layoutState const): |
| * layout/FormattingContext.h: |
| * layout/FormattingState.cpp: |
| (WebCore::Layout::FormattingState::FormattingState): |
| * layout/FormattingState.h: |
| (WebCore::Layout::FormattingState::layoutState const): |
| * layout/LayoutFormattingState.h: |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::BlockFormattingContext): |
| * layout/blockformatting/BlockFormattingContext.h: |
| * layout/blockformatting/BlockFormattingState.cpp: |
| (WebCore::Layout::BlockFormattingState::BlockFormattingState): |
| (WebCore::Layout::BlockFormattingState::formattingContext): |
| (WebCore::Layout::BlockFormattingState::formattingContext const): Deleted. |
| * layout/blockformatting/BlockFormattingState.h: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::InlineFormattingContext): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingState.cpp: |
| (WebCore::Layout::InlineFormattingState::InlineFormattingState): |
| (WebCore::Layout::InlineFormattingState::formattingContext): |
| (WebCore::Layout::InlineFormattingState::formattingContext const): Deleted. |
| * layout/inlineformatting/InlineFormattingState.h: |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] The *FormattingState class should provide the *FormattingContext. |
| https://bugs.webkit.org/show_bug.cgi?id=191089 |
| |
| Reviewed by Antti Koivisto. |
| |
| BlockFormattingState provides the BlockFormattingContext object, while InlineFormattingState provides the InlineFormattingContext. |
| |
| * layout/FormattingContext.cpp: |
| (WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const): |
| * layout/FormattingState.h: |
| * layout/LayoutFormattingState.cpp: |
| (WebCore::Layout::LayoutState::layoutFormattingContextSubtree): |
| (WebCore::Layout::LayoutState::formattingContext const): Deleted. |
| * layout/LayoutFormattingState.h: |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::BlockFormattingContext::instrinsicWidthConstraints const): |
| * layout/blockformatting/BlockFormattingState.cpp: |
| (WebCore::Layout::BlockFormattingState::formattingContext const): |
| * layout/blockformatting/BlockFormattingState.h: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| * layout/inlineformatting/InlineFormattingState.cpp: |
| (WebCore::Layout::InlineFormattingState::formattingContext const): |
| * layout/inlineformatting/InlineFormattingState.h: |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] Rename LayoutContext to LayoutState |
| https://bugs.webkit.org/show_bug.cgi?id=191080 |
| |
| Reviewed by Antti Koivisto. |
| |
| LayoutContext naming was a bit misleading since none of the other *FormattingContext classes (BlockFormattingContext etc) hold states. |
| (LayoutContext.cpp -> LayoutFormattingState.cpp because LayoutState.cpp name is already taken.) |
| |
| Now the current state is as follows: |
| |
| LayoutState has |
| 1. Layout tree |
| 2. State content for each formatting subtrees |
| 3. Display tree |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * layout/FormattingContext.cpp: |
| (WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const): |
| (WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const): |
| (WebCore::Layout::FormattingContext::computeBorderAndPadding const): |
| (WebCore::Layout::FormattingContext::placeInFlowPositionedChildren const): |
| (WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const): |
| (WebCore::Layout::FormattingContext::mapBoxToAncestor): |
| (WebCore::Layout::FormattingContext::mapTopLeftToAncestor): |
| (WebCore::Layout::FormattingContext::mapCoordinateToAncestor): |
| (WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const): |
| * layout/FormattingContext.h: |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::complicatedCases): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin): |
| * layout/FormattingContextGeometry.cpp: |
| (WebCore::Layout::contentHeightForFormattingContextRoot): |
| (WebCore::Layout::FormattingContext::Geometry::computedMaxHeight): |
| (WebCore::Layout::FormattingContext::Geometry::computedMinHeight): |
| (WebCore::Layout::staticVerticalPositionForOutOfFlowPositioned): |
| (WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned): |
| (WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::complicatedCases): |
| (WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry): |
| (WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin): |
| (WebCore::Layout::FormattingContext::Geometry::computedBorder): |
| (WebCore::Layout::FormattingContext::Geometry::computedPadding): |
| (WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedHorizontalMarginValue): |
| (WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedVerticalMarginValue): |
| * layout/FormattingState.cpp: |
| (WebCore::Layout::FormattingState::FormattingState): |
| * layout/FormattingState.h: |
| (WebCore::Layout::FormattingState::setInstrinsicWidthConstraints): |
| (WebCore::Layout::FormattingState::instrinsicWidthConstraints const): |
| * layout/LayoutFormattingState.cpp: Renamed from Source/WebCore/layout/LayoutContext.cpp. |
| (WebCore::Layout::LayoutState::LayoutState): |
| (WebCore::Layout::LayoutState::initializeRoot): |
| (WebCore::Layout::LayoutState::updateLayout): |
| (WebCore::Layout::LayoutState::layoutFormattingContextSubtree): |
| (WebCore::Layout::LayoutState::displayBoxForLayoutBox const): |
| (WebCore::Layout::LayoutState::styleChanged): |
| (WebCore::Layout::LayoutState::markNeedsUpdate): |
| (WebCore::Layout::LayoutState::formattingStateForBox const): |
| (WebCore::Layout::LayoutState::establishedFormattingState const): |
| (WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded): |
| (WebCore::Layout::LayoutState::formattingContext const): |
| * layout/LayoutFormattingState.h: Renamed from Source/WebCore/layout/LayoutContext.h. |
| (WebCore::Layout::LayoutState::setInQuirksMode): |
| (WebCore::Layout::LayoutState::hasDisplayBox const): |
| (WebCore::Layout::LayoutState::inQuirksMode const): |
| * layout/Verification.cpp: |
| (WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded): |
| (WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded): |
| (WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded): |
| (WebCore::Layout::verifyAndOutputSubtree): |
| (WebCore::Layout::LayoutState::verifyAndOutputMismatchingLayoutTree const): |
| (WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const): Deleted. |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::layout const): |
| (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::BlockFormattingContext::computeStaticPosition const): |
| (WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTop const): |
| (WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const): |
| (WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRootIfNeeded const): |
| (WebCore::Layout::hasPrecomputedMarginTop): |
| (WebCore::Layout::BlockFormattingContext::computeFloatingPosition const): |
| (WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const): |
| (WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const): |
| (WebCore::Layout::BlockFormattingContext::computeInFlowPositionedPosition const): |
| (WebCore::Layout::BlockFormattingContext::computeWidthAndMargin const): |
| (WebCore::Layout::BlockFormattingContext::computeHeightAndMargin const): |
| (WebCore::Layout::BlockFormattingContext::instrinsicWidthConstraints const): |
| * layout/blockformatting/BlockFormattingContext.h: |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin): |
| * layout/blockformatting/BlockFormattingContextGeometry.cpp: |
| (WebCore::Layout::isStretchedToInitialContainingBlock): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::staticPosition): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowPositionedPosition): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin): |
| (WebCore::Layout::BlockFormattingContext::Geometry::instrinsicWidthConstraints): |
| (WebCore::Layout::BlockFormattingContext::Geometry::estimatedMarginTop): |
| * layout/blockformatting/BlockFormattingState.cpp: |
| (WebCore::Layout::BlockFormattingState::BlockFormattingState): |
| * layout/blockformatting/BlockFormattingState.h: |
| * layout/blockformatting/BlockInvalidation.cpp: |
| (WebCore::Layout::computeUpdateType): |
| (WebCore::Layout::computeUpdateTypeForAncestor): |
| (WebCore::Layout::BlockInvalidation::invalidate): |
| * layout/blockformatting/BlockInvalidation.h: |
| * layout/blockformatting/BlockMarginCollapse.cpp: |
| (WebCore::Layout::isMarginTopCollapsedWithParent): |
| (WebCore::Layout::isMarginBottomCollapsedThrough): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::collapsedMarginTopFromFirstChild): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::nonCollapsedMarginTop): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::computedNonCollapsedMarginTop): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::computedNonCollapsedMarginBottom): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginTop): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBottom): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::isMarginBottomCollapsedWithParent): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::collapsedMarginBottomFromLastChild): |
| (WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::nonCollapsedMarginBottom): |
| * layout/displaytree/DisplayBox.h: |
| * layout/floats/FloatAvoider.cpp: |
| (WebCore::Layout::FloatAvoider::FloatAvoider): |
| * layout/floats/FloatAvoider.h: |
| * layout/floats/FloatBox.cpp: |
| (WebCore::Layout::FloatBox::FloatBox): |
| * layout/floats/FloatBox.h: |
| * layout/floats/FloatingContext.cpp: |
| (WebCore::Layout::FloatingContext::positionForFloat const): |
| (WebCore::Layout::FloatingContext::positionForFloatAvoiding const): |
| (WebCore::Layout::FloatingContext::verticalPositionWithClearance const): |
| * layout/floats/FloatingContext.h: |
| (WebCore::Layout::FloatingContext::layoutState const): |
| (WebCore::Layout::FloatingContext::layoutContext const): Deleted. |
| * layout/floats/FloatingState.cpp: |
| (WebCore::Layout::FloatingState::FloatItem::FloatItem): |
| (WebCore::Layout::FloatingState::FloatingState): |
| (WebCore::Layout::FloatingState::constraints const): |
| * layout/floats/FloatingState.h: |
| (WebCore::Layout::FloatingState::create): |
| (WebCore::Layout::FloatingState::layoutState const): |
| (WebCore::Layout::FloatingState::layoutContext const): Deleted. |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layout const): |
| (WebCore::Layout::InlineFormattingContext::initializeNewLine const): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForInlineBox const): |
| (WebCore::Layout::InlineFormattingContext::computeFloatPosition const): |
| (WebCore::Layout::InlineFormattingContext::computeStaticPosition const): |
| (WebCore::Layout::InlineFormattingContext::computeInFlowPositionedPosition const): |
| (WebCore::Layout::InlineFormattingContext::instrinsicWidthConstraints const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingContextGeometry.cpp: |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin): |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin): |
| * layout/inlineformatting/InlineFormattingState.cpp: |
| (WebCore::Layout::InlineFormattingState::InlineFormattingState): |
| * layout/inlineformatting/InlineFormattingState.h: |
| * layout/inlineformatting/InlineInvalidation.cpp: |
| (WebCore::Layout::InlineInvalidation::invalidate): |
| * layout/inlineformatting/InlineInvalidation.h: |
| * layout/inlineformatting/InlineLineBreaker.cpp: |
| (WebCore::Layout::InlineLineBreaker::InlineLineBreaker): |
| (WebCore::Layout::InlineLineBreaker::runWidth const): |
| * layout/inlineformatting/InlineLineBreaker.h: |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::outputInlineRuns): |
| (WebCore::Layout::outputLayoutTree): |
| (WebCore::Layout::showLayoutTree): |
| * layout/layouttree/LayoutTreeBuilder.h: |
| * page/FrameViewLayoutContext.cpp: |
| (WebCore::layoutUsingFormattingContext): |
| |
| 2018-10-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Attachment dropped from one web view to another is missing its file wrapper |
| https://bugs.webkit.org/show_bug.cgi?id=190530 |
| <rdar://problem/45232149> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for copying and pasting attachment elements across web views by encoding and adding file wrapper |
| data as subresources in the web archive when writing selected web content to the pasteboard, and then decoding |
| and creating NSFileWrappers upon reading web content. |
| |
| Test: WKAttachmentTests.CopyAndPasteBetweenWebViews |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/Editor.cpp: |
| (WebCore::Editor::registerAttachments): |
| * editing/Editor.h: |
| |
| Add registerAttachments(), which registers _WKAttachments in the UI process given a list of |
| SerializedAttachmentData. This behaves similarly to registerAttachmentIdentifiers(), but differs in that (1) it |
| sends serialized file wrapper data, and (2) it sends a list of serialized attachments, rather than information |
| about just a single attachment. |
| |
| * editing/SerializedAttachmentData.h: |
| |
| Introduce SerializedAttachmentData, a struct containing information needed to serialize and deserialize an |
| attachment. These are used both when writing attachment data to the pasteboard, and when consuming attachment |
| data upon paste. |
| |
| * editing/cocoa/WebContentReaderCocoa.mm: |
| (WebCore::replaceRichContentWithAttachments): |
| |
| Add a step when pasting rich content with attachments, to collect and send serialized attachments to the client. |
| Also, drive-by fix: don't WTFMove() the Ref here if it's still going to be used below. |
| |
| * html/HTMLAttachmentElement.cpp: |
| (WebCore::HTMLAttachmentElement::archiveResourceURL): |
| * html/HTMLAttachmentElement.h: |
| |
| Add a static helper function to compute a URL that represents the data for the given attachment identifier, for |
| use in a web archive resource. |
| |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::addSubresourcesForAttachmentElementsIfNecessary): |
| |
| Add a helper function to create and append ArchiveResources representing attachment element data when writing |
| attachments to the pasteboard via web archive data. |
| |
| (WebCore::LegacyWebArchive::create): |
| * page/EditorClient.h: |
| (WebCore::EditorClient::registerAttachments): |
| (WebCore::EditorClient::serializedAttachmentDataForIdentifiers): |
| |
| 2018-10-30 David Kilzer <ddkilzer@apple.com> |
| |
| XSLTProcessor should limit max transform depth |
| <https://webkit.org/b/191075> |
| <rdar://problem/45531453> |
| |
| Reviewed by Alex Christensen. |
| |
| Test: fast/xsl/xslt-max-depth.html |
| |
| * xml/SoftLinkLibxslt.cpp: Add macro for `xsltMaxDepth` global. |
| * xml/SoftLinkLibxslt.h: Ditto. |
| * xml/XSLTProcessorLibxslt.cpp: |
| (WebCore::XSLTProcessor::transformToString): Set `xsltMaxDepth` |
| to 1000. Default in libxslt.dylib is 3000. |
| |
| 2018-10-30 Jim Mason <jmason@ibinx.com> |
| |
| [GTK] Scrollbars not following gtk-primary-button-warps-slider setting |
| https://bugs.webkit.org/show_bug.cgi?id=191067 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * platform/gtk/ScrollbarThemeGtk.cpp: |
| (WebCore::ScrollbarThemeGtk::handleMousePressEvent): |
| |
| 2018-10-30 Alexey Proskuryakov <ap@apple.com> |
| |
| Clean up some obsolete MAX_ALLOWED macros |
| https://bugs.webkit.org/show_bug.cgi?id=190916 |
| |
| Reviewed by Tim Horton. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::exernalDeviceDisplayNameForPlayer): |
| * platform/mac/PlatformEventFactoryMac.mm: |
| (WebCore::globalPointForEvent): |
| (WebCore::pointForEvent): |
| (WebCore::mouseButtonForEvent): |
| (WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): |
| |
| 2018-10-30 Ali Juma <ajuma@chromium.org> |
| |
| Calling window.open("", "_self") allows working around restrictions on window.close() |
| https://bugs.webkit.org/show_bug.cgi?id=191073 |
| |
| Reviewed by Chris Dumez. |
| |
| Do not treat a re-used frame in DOMWindow::createWindow as having been opened by DOM. |
| |
| Test: fast/dom/Window/window-open-self-disallow-close.html |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| |
| 2018-10-30 Andy Estes <aestes@apple.com> |
| |
| [Payment Request] Implement PaymentResponse.retry() |
| https://bugs.webkit.org/show_bug.cgi?id=190985 |
| |
| Reviewed by Daniel Bates. |
| |
| Implemented the retry() method on PaymentResponse as specified in the Payment Request API |
| W3C Editor's Draft of 24 October 2018. |
| |
| See https://w3c.github.io/payment-request/#retry-method for details. |
| |
| Tests: http/tests/paymentrequest/payment-response-rejects-if-not-active.https.html |
| http/tests/paymentrequest/payment-response-retry-method.https.html |
| |
| * Modules/applepay/PaymentCoordinator.h: |
| (WebCore::PaymentCoordinator::client): Added. Returns m_client. |
| * Modules/applepay/PaymentCoordinatorClient.h: |
| (WebCore::PaymentCoordinatorClient::isMockPaymentCoordinator const): Added. Used to downcast |
| a PaymentCoordinatorClient to a MockPaymentCoordinator. |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const): Made const. |
| (WebCore::ApplePayPaymentHandler::computeErrors const): Broke this function into |
| computeAddressErrors, computePayerErrors, and computePaymentMethodErrors, then modified this |
| function to call those functions. Exceptions thrown by computePaymentMethodErrors are ignored. |
| (WebCore::ApplePayPaymentHandler::computeAddressErrors const): Added. |
| (WebCore::ApplePayPaymentHandler::computePayerErrors const): Added. |
| (WebCore::ApplePayPaymentHandler::computePaymentMethodErrors const): Added. |
| (WebCore::ApplePayPaymentHandler::complete): Added ASSERTs to verify whether result is a |
| final result. |
| (WebCore::ApplePayPaymentHandler::retry): Computed PaymentErrors from PaymentValidationErrors, |
| ensured the PaymentAuthorizationResult was non-final by adding an unknown error if necessary, |
| and called PaymentCoordinator::completePaymentSession. |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.h: |
| * Modules/paymentrequest/PaymentHandler.h: |
| * Modules/paymentrequest/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::show): Changed to call settleShowPromise. |
| (WebCore::PaymentRequest::abortWithException): Changed to abort PaymentResponse's retry |
| promise, if present, instead of PaymentResponse's show promise. |
| (WebCore::PaymentRequest::settleShowPromise): Added. Settles m_showPromise then sets it to |
| std::nullopt. |
| (WebCore::PaymentRequest::closeActivePaymentHandler): Added. Hides the active payment |
| handler then sets it to std::nullopt. |
| (WebCore::PaymentRequest::stop): Stopped calling abortWithException, since that function |
| might settle PaymentResponse's retry promise. PaymentResponse is now an ActiveDOMObject and |
| will settle its own promise in its implementation of stop. |
| (WebCore::PaymentRequest::abort): Changed to throw an InvalidStateError if there is a |
| pending retry promise and to call abortWithException instead of stop. |
| (WebCore::PaymentRequest::completeMerchantValidation): Changed to call abortWithException |
| instead of stop. |
| (WebCore::PaymentRequest::settleDetailsPromise): Ditto. |
| (WebCore::PaymentRequest::accept): Updated the existing PaymentResponse, if present, rather |
| than creating a new one. Settled the existing PaymentResponse's retry promise, if present, |
| rather than the show promise. |
| (WebCore::PaymentRequest::complete): Changed to throw an AbortError if there is no longer an |
| active payment handler. |
| (WebCore::PaymentRequest::retry): Changed to throw an AbortError if there is no longer an |
| active payment handler, and to call PaymentHandler::retry if there is. |
| (WebCore::PaymentRequest::cancel): Changed to call abortWithException instead of stop. |
| * Modules/paymentrequest/PaymentRequest.h: |
| * Modules/paymentrequest/PaymentRequest.idl: |
| * Modules/paymentrequest/PaymentResponse.cpp: |
| (WebCore::PaymentResponse::PaymentResponse): |
| (WebCore::PaymentResponse::finishConstruction): Pending activities create strong references |
| to |this|, so they cannot be created in constructors without relaxing adoption requirements. |
| Added this function so that the pending activity can be created after the PaymentResponse is |
| created and adopted. |
| (WebCore::PaymentResponse::~PaymentResponse): |
| (WebCore::PaymentResponse::complete): Updated to throw an AbortError or InvalidStateError |
| when necessary. |
| (WebCore::PaymentResponse::retry): Implemented. Throws an AbortError or InvalidStateError |
| when necessary, otherwise calls PaymentRequest::retry and stores the retry promise in |
| m_retryPromise. |
| (WebCore::PaymentResponse::abortWithException): Added. Rejects the retry promise with |
| |exception|, clears the pending activity, and sets m_state to Completed. |
| (WebCore::PaymentResponse::settleRetryPromise): Added. Settles the retry promise and sets it |
| to std::nullopt. |
| (WebCore::PaymentResponse::canSuspendForDocumentSuspension const): Added. Returns true if |
| there is no pending activity. |
| (WebCore::PaymentResponse::stop): Added. Rejects the retry promise with AbortError, clears |
| the pending activity, and sets m_state to Stopped. |
| * Modules/paymentrequest/PaymentResponse.h: Changed create to call finishConstruction and |
| made PaymentResponse an ActiveDOMObject instead of a ContextDestructionObserver. |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): Changed to only create a MockPaymentCoordinator for main frames. |
| (WebCore::Internals::mockPaymentCoordinator): Changed to get the MockPaymentCoordinator by |
| downcasting the page's payment coordinator client. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| * testing/MockPaymentCoordinator.cpp: |
| (WebCore::MockPaymentCoordinator::completePaymentSession): Changed to only increment |
| hideCount for final results. |
| * testing/MockPaymentCoordinator.h: |
| (isType): Added so that PaymentCoordinatorClients can be downcasted to MockPaymentCoordinators. |
| |
| 2018-10-30 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Use the mainframe view size to compute window.outerWidth/height. |
| https://bugs.webkit.org/show_bug.cgi?id=191070 |
| <rdar://problem/42368377> |
| |
| Reviewed by Tim Horton. |
| |
| Use a more reasonable value for window.outerWidth and height. |
| (WKWebView's frame rect -> drawing area sizing -> WebPage's view size -> FrameView size) |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::outerHeight const): |
| (WebCore::DOMWindow::outerWidth const): |
| |
| 2018-10-30 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] PaymentRequest.canMakePayment() should resolve to true whenever Apple Pay is available |
| https://bugs.webkit.org/show_bug.cgi?id=191039 |
| |
| Reviewed by Megan Gardner. |
| |
| During a recent Web Payments WG F2F, we decided that canMakePayment() should return true |
| whenever the user agent supports one or more of the specified payment methods, even if those |
| payment methods do not have active instruments. |
| |
| Change WebKit's implementation of canMakePayment() for Apple Pay to resolve with the value |
| of ApplePaySession.canMakePayments() rather than ApplePaySession.canMakePaymentsWithActiveCard(). |
| |
| Added a test case to http/tests/paymentrequest/payment-request-canmakepayment-method.https.html. |
| |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::ApplePayPaymentHandler::canMakePayment): |
| (WebCore::shouldDiscloseApplePayCapability): Deleted. |
| * testing/MockPaymentCoordinator.cpp: |
| (WebCore::MockPaymentCoordinator::canMakePayments): |
| (WebCore::MockPaymentCoordinator::canMakePaymentsWithActiveCard): |
| * testing/MockPaymentCoordinator.h: |
| * testing/MockPaymentCoordinator.idl: |
| |
| 2018-10-30 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a deprecation warning to console for Web SQL |
| https://bugs.webkit.org/show_bug.cgi?id=190936 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| No new tests. Just adding a console message. |
| |
| * Modules/webdatabase/DOMWindowWebDatabase.cpp: |
| (WebCore::DOMWindowWebDatabase::openDatabase): |
| |
| 2018-10-30 Sihui Liu <sihui_liu@apple.com> |
| |
| IndexedDB: iteration of cursors skip records if updated or deleted |
| https://bugs.webkit.org/show_bug.cgi?id=190917 |
| <rdar://problem/35250410> |
| |
| Reviewed by Chris Dumez. |
| |
| When object store has changes, we cleared cached records and reset the SQLite statement, |
| updating the boundary to the next key in cursor's direction. Therefore, the cursor could |
| jump to the next key after update or deletion. |
| We should cache those records before changing the statement. |
| |
| Test: storage/indexeddb/cursor-update-while-iterating.html |
| |
| * Modules/indexeddb/server/SQLiteIDBCursor.cpp: |
| (WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged): |
| (WebCore::IDBServer::SQLiteIDBCursor::fetch): |
| * Modules/indexeddb/server/SQLiteIDBCursor.h: |
| |
| 2018-10-29 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Introduce InlineFormattingContextGeometry class |
| https://bugs.webkit.org/show_bug.cgi?id=191054 |
| |
| Reviewed by Antti Koivisto. |
| |
| This is in preparation for inline-block support. |
| |
| Move float and inline-block elements layout to layoutFormattingContextRoot(). |
| computeWidthAndHeightForInlineBox takes care of replaced elements. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layout const): |
| (WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForInlineBox const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeight const): Deleted. |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineFormattingContextGeometry.cpp: Added. |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin): |
| (WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin): |
| |
| 2018-10-28 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Implement the update animations and send events procedure |
| https://bugs.webkit.org/show_bug.cgi?id=191013 |
| <rdar://problem/45620495> |
| |
| Reviewed by Dean Jackson. |
| |
| While we implemented the various parts of what the Web Animations specification refers to as the "update animations and send events" |
| procedure, we did not implement it as one function and in the correct order, specifically updating animations and sending events in |
| two separate tasks. We now have a single method on DocumentTimeline which runs as the DisplayRefreshMonitor fires to update each |
| "relevant" animation with the current time, perform a microtask checkpoint and dispatch events. |
| |
| Implementing this procedure allowed us to make several enhancements: |
| |
| 1. We introduce the concept of a "relevant" animation, which is essentially an animation that is either pending or playing. All animations |
| in a different state are no longer owned by the DocumentTimeline and can thus be destroyed if the developer doesn't hold references in JS. |
| Maintaining such a list guarantees that we're only updating animations that would have changed state since the last time the "update animations |
| and send events" procedure was run. Note that DeclarativeAnimation instances are also considered to be relevant if they have queued DOM events |
| to dispatch as they could otherwise be destroyed before they can fully dispatch them. |
| |
| 2. We no longer conflate the timing model and effects. Until now the way we would update animations was to go through all elements for which |
| we had a registered animation, invalidate their style and finally forcing a style update on the document. We had a separate data structure where |
| we help animations without targets so we update these as well in a separate pass, in order to make sure that promises and events would fire for |
| them as expected. We now let the "update animations and send events" procedure update the timing of all relevant animations and let individual |
| animation effects invalidate their style as needed, the document style invalidation happening naturally without DocumentTimeline forcing it. |
| |
| 3. We use a single step to schedule the update of animations, which is to register for a display refresh monitor update provided a "relevant" |
| animation is known since the previous update. Until now we first had an "timing model invalidation" task scheduled upon any change of an animation's |
| timing model, which would then create a timer to the earliest moment any listed animation would require an update, finally registering a display |
| refresh monitor update, which used at least GenericTaskQueue<Timer> and potentially two, whereas we use none right now. |
| |
| 4. We allow for a display refresh monitor update to be canceled should the number of "relevant" animations since the last update goes back to 0. |
| |
| To facilitate all of this, we have changed the m_animations ListHashSet to contain only the "relevant" animations, and no longer every animation created |
| that has this DocumentTimeline set as their "timeline" property. To keep this list current, every single change that changes a given animation's timing |
| ends up calling AnimationTimeline::animationTimingDidChange() passing the animation as the sole parameter and adding this animation to m_animations. We |
| immediately schedule a display refresh monitor update if one wasn't already scheduled. Then, when running the "update animations and send events" |
| procedure, we call a new WebAnimation::tick() method on each of those animations, which updates this animation's effect and relevance, using the newly |
| computed relevance to identify whether this animation should be kept in the m_animations ListHashSet. |
| |
| This is only the first step towards a more efficient update and ownership model of animations by the document timeline since animations created as CSS |
| Animations and CSS Transitions are committed through CSS have dedicated data structures that are not updated in this particular patch, but this will be |
| addressed in a followup to keep this already significant patch smaller. Another issue that will be addressed later is the ability to not schedule display |
| refresh monitor udpates when only accelerated animations are running. |
| |
| * animation/AnimationTimeline.cpp: |
| (WebCore::AnimationTimeline::animationTimingDidChange): Called by animations when any aspect of their timing model changes. The provided animation is then |
| added to the m_animations list unless its timeline is no longer this timeline. |
| (WebCore::AnimationTimeline::removeAnimation): Remove the provided animation from m_animations and remove any animation registered on the element-specific |
| animation lists if this animation has an effect with a target. |
| (WebCore::AnimationTimeline::animationWasAddedToElement): We no longer need to worry about the m_animationsWithoutTarget data structure since we removed it. |
| (WebCore::removeCSSTransitionFromMap): Fix a bug where we would remove any CSSTransition in the provided map that had a matching transition-property instead |
| of checking the CSSTransition registered for this transition-property was indeed the provided CSSTransition. The other code changes in this patch made this |
| code now cause regressions in the Web Platform Tests. |
| (WebCore::AnimationTimeline::animationWasRemovedFromElement): Stop updating m_animationsWithoutTarget since it no longer exists. |
| (WebCore::AnimationTimeline::elementWasRemoved): |
| (WebCore::AnimationTimeline::updateCSSAnimationsForElement): Fix a small error that caused a regression in the Web Platform Tests where we could attempt to |
| call setBackingAnimation() on a nullptr instead of a valid CSSAnimation. |
| (WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation): |
| (WebCore::AnimationTimeline::addAnimation): Deleted. |
| * animation/AnimationTimeline.h: |
| (WebCore::AnimationTimeline::hasElementAnimations const): Deleted. |
| (WebCore::AnimationTimeline:: const): Deleted. |
| (WebCore::AnimationTimeline::elementToAnimationsMap): Deleted. |
| (WebCore::AnimationTimeline::elementToCSSAnimationsMap): Deleted. |
| (WebCore::AnimationTimeline::elementToCSSTransitionsMap): Deleted. |
| * animation/CSSTransition.cpp: |
| (WebCore::CSSTransition::canBeListed const): Deleted. |
| * animation/CSSTransition.h: |
| * animation/DeclarativeAnimation.cpp: |
| (WebCore::DeclarativeAnimation::tick): Call the superclass's method and queue any necessary DOM events reflecting the timing model changes. |
| (WebCore::DeclarativeAnimation::needsTick const): Call the superclass's method and return true also if we have pending events since otherwise this animation |
| could be removed from m_animations on its AnimationTimeline and potentially destroyed before the GenericEventQueue had a chance to dispatch all events. |
| (WebCore::DeclarativeAnimation::startTime const): We removed the custom binding for this IDL property and renamed the method from bindingsStartTime to startTime. |
| (WebCore::DeclarativeAnimation::setStartTime): We removed the custom binding for this IDL property and renamed the method from setBindingsStartTime to setStartTime. |
| (WebCore::DeclarativeAnimation::bindingsStartTime const): Deleted. |
| (WebCore::DeclarativeAnimation::setBindingsStartTime): Deleted. |
| * animation/DeclarativeAnimation.h: |
| * animation/DocumentAnimationScheduler.cpp: |
| (WebCore::DocumentAnimationScheduler::unscheduleWebAnimationsResolution): Add a method to mark that we no longer need a display refresh monitor update for this |
| document's animation timeline. This is called when m_animations becomes empty. |
| * animation/DocumentAnimationScheduler.h: |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::DocumentTimeline): |
| (WebCore::DocumentTimeline::detachFromDocument): Stop clearing two task queues and a timer that no longer exist and instead only clear the task queue to clear |
| the cached current time, which we queue any time we generate a new one (see DocumentTimeline::currentTime). |
| (WebCore::DocumentTimeline::getAnimations const): Use isRelevant() instead of canBeListed(). |
| (WebCore::DocumentTimeline::updateThrottlingState): |
| (WebCore::DocumentTimeline::suspendAnimations): |
| (WebCore::DocumentTimeline::resumeAnimations): |
| (WebCore::DocumentTimeline::numberOfActiveAnimationsForTesting const): |
| (WebCore::DocumentTimeline::currentTime): Queue a task in the new m_currentTimeClearingTaskQueue task queue to clear the current time that we've generated and cached |
| in the next run loop (provided all pending JS execution has also completed). |
| (WebCore::DocumentTimeline::maybeClearCachedCurrentTime): |
| (WebCore::DocumentTimeline::scheduleAnimationResolutionIfNeeded): Schedule a display refresh monitor update if we are not suspended and have "relevant" animations. |
| (WebCore::DocumentTimeline::animationTimingDidChange): Call scheduleAnimationResolutionIfNeeded() after calling the superclass's implementation. |
| (WebCore::DocumentTimeline::removeAnimation): Call unscheduleAnimationResolution() if the list of "relevant" animations is now empty. |
| (WebCore::DocumentTimeline::unscheduleAnimationResolution): Unschedule a pending display refresh monitor update. |
| (WebCore::DocumentTimeline::animationResolutionTimerFired): |
| (WebCore::DocumentTimeline::updateAnimationsAndSendEvents): Implement the "update animations and send events" procedure as specified by the Web Animations spec. |
| During this procedure, we call tick() on all animations listed in m_animations and create a list of animations to remove from that list if this animation is no |
| longer relevant following the call to tick(). |
| (WebCore::DocumentTimeline::enqueueAnimationPlaybackEvent): |
| (WebCore::DocumentTimeline::timingModelDidChange): Deleted. |
| (WebCore::DocumentTimeline::scheduleInvalidationTaskIfNeeded): Deleted. |
| (WebCore::DocumentTimeline::performInvalidationTask): Deleted. |
| (WebCore::DocumentTimeline::updateAnimationSchedule): Deleted. |
| (WebCore::DocumentTimeline::animationScheduleTimerFired): Deleted. |
| (WebCore::DocumentTimeline::updateAnimations): Deleted. |
| (WebCore::compareAnimationPlaybackEvents): Deleted. |
| (WebCore::DocumentTimeline::performEventDispatchTask): Deleted. |
| * animation/DocumentTimeline.h: |
| * animation/WebAnimation.cpp: The majority of the changes to this class is that we call the new timingDidChange() method when any code that modifies the timing model |
| is run. We also remove methods to set the pending play and pause tasks as well as the animation's start time and hold time since any time we're changing these instance |
| variables, we later already have a call to update the timing model and we were doing more work than needed. As a result we no longer need an internal method to set the |
| start time and can stop requiring a custom IDL binding for the "startTime" property. |
| (WebCore::WebAnimation::effectTimingPropertiesDidChange): |
| (WebCore::WebAnimation::setEffect): |
| (WebCore::WebAnimation::setEffectInternal): |
| (WebCore::WebAnimation::setTimeline): |
| (WebCore::WebAnimation::setTimelineInternal): |
| (WebCore::WebAnimation::startTime const): |
| (WebCore::WebAnimation::setStartTime): |
| (WebCore::WebAnimation::silentlySetCurrentTime): |
| (WebCore::WebAnimation::setCurrentTime): |
| (WebCore::WebAnimation::setPlaybackRate): |
| (WebCore::WebAnimation::cancel): |
| (WebCore::WebAnimation::resetPendingTasks): |
| (WebCore::WebAnimation::finish): |
| (WebCore::WebAnimation::timingDidChange): New method called any time a timing property changed where we run the "update the finished state" procedure and notify the |
| animation's timeline that its timing changed so that it can be considered the next time the "update animations and send events" procedure runs. |
| (WebCore::WebAnimation::invalidateEffect): |
| (WebCore::WebAnimation::updateFinishedState): Update the animation's relevance after running the procedure as specified. |
| (WebCore::WebAnimation::play): |
| (WebCore::WebAnimation::runPendingPlayTask): |
| (WebCore::WebAnimation::pause): |
| (WebCore::WebAnimation::runPendingPauseTask): |
| (WebCore::WebAnimation::needsTick const): |
| (WebCore::WebAnimation::tick): New method called during the "update animations and send events" procedure where we run the "update the finished state" procedure and run |
| the pending play and pause tasks. |
| (WebCore::WebAnimation::resolve): |
| (WebCore::WebAnimation::updateRelevance): |
| (WebCore::WebAnimation::computeRelevance): |
| (WebCore::WebAnimation::timingModelDidChange): Deleted. |
| (WebCore::WebAnimation::setHoldTime): Deleted. |
| (WebCore::WebAnimation::bindingsStartTime const): Deleted. |
| (WebCore::WebAnimation::setBindingsStartTime): Deleted. |
| (WebCore::WebAnimation::setTimeToRunPendingPlayTask): Deleted. |
| (WebCore::WebAnimation::setTimeToRunPendingPauseTask): Deleted. |
| (WebCore::WebAnimation::updatePendingTasks): Deleted. |
| (WebCore::WebAnimation::timeToNextRequiredTick const): Deleted. |
| (WebCore::WebAnimation::runPendingTasks): Deleted. |
| (WebCore::WebAnimation::canBeListed const): Deleted. |
| * animation/WebAnimation.h: |
| (WebCore::WebAnimation::isRelevant const): |
| (WebCore::WebAnimation::hasPendingPlayTask const): |
| (WebCore::WebAnimation::isEffectInvalidationSuspended): |
| * animation/WebAnimation.idl: |
| * dom/Element.cpp: |
| (WebCore::Element::getAnimations): Use isRelevant() instead of canBeListed(). |
| |
| 2018-10-30 Youenn Fablet <youenn@apple.com> |
| |
| LibWebRTCRtpReceiverBackend::getSynchronizationSources should use Vector::append |
| https://bugs.webkit.org/show_bug.cgi?id=191026 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: |
| (WebCore::LibWebRTCRtpReceiverBackend::getSynchronizationSources const): |
| |
| 2018-10-30 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GTK][WPE] Fixes to the PublicSuffix implementation |
| https://bugs.webkit.org/show_bug.cgi?id=191031 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Covered by existing tests. |
| |
| Downcase hostnames before passing it on to the underlying |
| libsoup API. Special case localhost and fix a mixed-up |
| libsoup GError checks. This fixes most of the failures. |
| |
| * platform/soup/PublicSuffixSoup.cpp: |
| (WebCore::isPublicSuffix): |
| (WebCore::topPrivatelyControlledDomain): |
| |
| 2018-10-29 Zalan Bujtas <zalan@apple.com> |
| |
| Missing from r237549 |
| |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRootIfNeeded const): |
| (WebCore::Layout::hasPrecomputedMarginTop): |
| |
| 2018-10-29 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed speculative build fix for AppleWin after r237559. |
| |
| * PlatformAppleWin.cmake: |
| |
| 2018-10-29 Justin Michaud <justin_michaud@apple.com> |
| |
| Revert r237347 registered custom properties... https://bugs.webkit.org/show_bug.cgi?id=190039 |
| https://bugs.webkit.org/show_bug.cgi?id=190919 |
| |
| Reviewed by Michael Saboff. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::customPropertyValue): |
| * css/CSSCustomPropertyValue.cpp: |
| (WebCore::CSSCustomPropertyValue::customCSSText const): |
| (WebCore::CSSCustomPropertyValue::tokens const): |
| (WebCore::CSSCustomPropertyValue::checkVariablesForCycles const): |
| (WebCore::CSSCustomPropertyValue::resolveVariableReferences const): |
| (WebCore::CSSCustomPropertyValue::setResolvedTypedValue): |
| (WebCore::CSSCustomPropertyValue::equals const): Deleted. |
| * css/CSSCustomPropertyValue.h: |
| * css/CSSRegisteredCustomProperty.cpp: |
| (WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty): |
| * css/CSSRegisteredCustomProperty.h: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::consumeAndUpdateTokens): |
| (WebCore::CSSVariableData::CSSVariableData): |
| (WebCore::CSSVariableData::checkVariablesForCycles const): |
| (WebCore::CSSVariableData::checkVariablesForCyclesWithRange const): |
| (WebCore::CSSVariableData::resolveVariableFallback const): |
| (WebCore::CSSVariableData::resolveVariableReference const): |
| (WebCore::CSSVariableData::resolveVariableReferences const): |
| (WebCore::CSSVariableData::resolveTokenRange const): |
| * css/CSSVariableData.h: |
| (WebCore::CSSVariableData::create): |
| (WebCore::CSSVariableData::createResolved): |
| (WebCore::CSSVariableData::needsVariableResolution const): |
| (WebCore::CSSVariableData::CSSVariableData): |
| * css/CSSVariableReferenceValue.cpp: |
| (WebCore::CSSVariableReferenceValue::checkVariablesForCycles const): |
| (WebCore::resolveVariableFallback): Deleted. |
| (WebCore::resolveVariableReference): Deleted. |
| (WebCore::resolveTokenRange): Deleted. |
| (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): Deleted. |
| * css/CSSVariableReferenceValue.h: |
| (WebCore::CSSVariableReferenceValue::create): |
| (WebCore::CSSVariableReferenceValue::variableDataValue const): |
| (WebCore::CSSVariableReferenceValue::equals const): |
| * css/DOMCSSRegisterCustomProperty.cpp: |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| * css/PropertySetCSSStyleDeclaration.cpp: |
| (WebCore::PropertySetCSSStyleDeclaration::setProperty): |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyInitialCustomProperty): |
| (WebCore::StyleBuilderCustom::applyValueCustomProperty): |
| * css/StyleProperties.cpp: |
| (WebCore::MutableStyleProperties::setCustomProperty): |
| * css/StyleProperties.h: |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::State::setStyle): |
| (WebCore::StyleResolver::styleForKeyframe): |
| (WebCore::StyleResolver::styleForPage): |
| (WebCore::StyleResolver::applyMatchedProperties): |
| (WebCore::StyleResolver::applyPropertyToCurrentStyle): |
| (WebCore::StyleResolver::applyProperty): |
| (WebCore::StyleResolver::resolvedVariableValue const): |
| (WebCore::StyleResolver::CascadedProperties::applyDeferredProperties): |
| (WebCore::StyleResolver::CascadedProperties::Property::apply): |
| (WebCore::StyleResolver::applyCascadedProperties): |
| (WebCore::StyleResolver::applyCascadedCustomProperty): Deleted. |
| * css/StyleResolver.h: |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseValueWithVariableReferences): |
| * css/parser/CSSParser.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::CSSPropertyParser): |
| (WebCore::CSSPropertyParser::parseValueStart): |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| (WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue): Deleted. |
| (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): Deleted. |
| (WebCore::CSSPropertyParser::collectParsedCustomPropertyValueDependencies): Deleted. |
| * css/parser/CSSPropertyParser.h: |
| * css/parser/CSSVariableParser.cpp: |
| (WebCore::CSSVariableParser::parseDeclarationValue): |
| * dom/ConstantPropertyMap.cpp: |
| (WebCore::ConstantPropertyMap::setValueForProperty): |
| (WebCore::variableDataForPositivePixelLength): |
| (WebCore::variableDataForPositiveDuration): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::checkVariablesInCustomProperties): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::setInheritedCustomPropertyValue): |
| (WebCore::RenderStyle::setNonInheritedCustomPropertyValue): |
| * rendering/style/StyleCustomPropertyData.h: |
| (WebCore::StyleCustomPropertyData::operator== const): |
| (WebCore::StyleCustomPropertyData::setCustomPropertyValue): |
| (WebCore::StyleCustomPropertyData::StyleCustomPropertyData): |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| Handle MDNS resolution of candidates through libwebrtc directly |
| https://bugs.webkit.org/show_bug.cgi?id=190681 |
| |
| Reviewed by Eric Carlson. |
| |
| Remove the previous MDNS resolution mechanism. |
| Instead, add support for the AsyncResolver mechanism added to libwebrtc. |
| Covered by current mdns webrtc test that is unflaked. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::addIceCandidate): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::LibWebRTCProvider::createPeerConnection): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| * testing/MockLibWebRTCPeerConnection.cpp: |
| (WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection): |
| * testing/MockLibWebRTCPeerConnection.h: |
| |
| 2018-10-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: increase size limits for NetworkResourceData |
| https://bugs.webkit.org/show_bug.cgi?id=191034 |
| <rdar://problem/45529852> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| No tests since no new functionality. |
| |
| * inspector/NetworkResourcesData.cpp: |
| All resources: 100MB => 200MB |
| Each resource: 10MB => 50MB |
| |
| 2018-10-29 Tim Horton <timothy_horton@apple.com> |
| |
| Modernize WebKit nibs and lprojs for localization's sake |
| https://bugs.webkit.org/show_bug.cgi?id=190911 |
| <rdar://problem/45349466> |
| |
| Reviewed by Dan Bernstein. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * PlatformWin.cmake: |
| * WebCore.xcodeproj/project.pbxproj: |
| * en.lproj/Localizable.strings: Renamed from Source/WebCore/English.lproj/Localizable.strings. |
| * en.lproj/Localizable.stringsdict: Renamed from Source/WebCore/English.lproj/Localizable.stringsdict. |
| * en.lproj/mediaControlsLocalizedStrings.js: Renamed from Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js. |
| * en.lproj/modern-media-controls-localized-strings.js: Renamed from Source/WebCore/English.lproj/modern-media-controls-localized-strings.js. |
| English->en |
| |
| 2018-10-29 Tim Horton <timothy_horton@apple.com> |
| |
| Make FindOptionsShowOverlay work on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=190551 |
| |
| Reviewed by Andy Estes. |
| |
| * platform/graphics/GraphicsContext.h: |
| Export some more GraphicsContext methods. |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| Invalid ssrc value in the stats of type 'inbound-rtp' |
| https://bugs.webkit.org/show_bug.cgi?id=190826 |
| <rdar://problem/45487435> |
| |
| Reviewed by Eric Carlson. |
| |
| Value was not initialized in WebCore if missing from libwebrtc. |
| Change value to an optional so that it will not appear if libwebrtc does not expose it. |
| Move integer/boolean values from being initialized to be optional so |
| that we do not expose them to JS if not exposed by libwebrtc. |
| |
| Covered by updated tests. |
| |
| * Modules/mediastream/RTCStatsReport.h: |
| |
| 2018-10-29 Jer Noble <jer.noble@apple.com> |
| |
| CRASH in CoreGraphics: ERROR_CGDataProvider_BufferIsNotBigEnough |
| https://bugs.webkit.org/show_bug.cgi?id=190954 |
| |
| Reviewed by Simon Fraser. |
| |
| Crash analyitics show that WebProcess will crash in ERROR_CGDataProvider_BufferIsNotBigEnough, |
| which attempts to fetch the last byte in the image buffer in order to verify that the entire |
| buffer is readable. Unfortunately, the stack trace generated by this crash does not identify |
| what CGDataProvider is responsible for the not-big-enough buffer. In order to identify which |
| CGDataProvider created by WebKit is responsible (if any), we will add our own version of |
| ERROR_CGDataProvider_BufferIsNotBigEnough, called at CGDataProvider creation time, which should |
| generate a crash within the responsible stack frame. |
| |
| (This assumes that the issue is the wrong sized buffer at CGDataProvider creation time, and not |
| that the buffer itself is reclaimed between creation time and access.) |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/cg/GraphicsContext3DCG.cpp: |
| (WebCore::GraphicsContext3D::paintToCanvas): |
| * platform/graphics/cg/ImageBufferCG.cpp: |
| (WebCore::ImageBuffer::ImageBuffer): |
| (WebCore::ImageBuffer::toCFData const): |
| (WebCore::cfData): |
| * platform/graphics/cocoa/WebGLLayer.mm: |
| (-[WebGLLayer copyImageSnapshotWithColorSpace:]): |
| * platform/graphics/cv/PixelBufferConformerCV.cpp: |
| (WebCore::CVPixelBufferGetBytePointerCallback): |
| (WebCore::PixelBufferConformerCV::createImageFromPixelBuffer): |
| * platform/graphics/cg/ImageUtilitiesCG.h: Added. |
| (WebCore::verifyImageBufferIsBigEnough): |
| |
| 2018-10-29 David Kilzer <ddkilzer@apple.com> |
| |
| Fix clang static analyzer warning in StyleBuilderConverter.h |
| <https://webkit.org/b/190907> |
| |
| Reviewed by Antti Koivisto. |
| |
| Fix the following clang static warning in StyleBuilderConverter.h: |
| Value stored to 'autoFlow' during its initialization is never read |
| |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertGridAutoFlow): Move |
| assignment of RenderStyle::initialGridAutoFlow() to `default` |
| case. Make `CSSValueDense` consistent with other cases by |
| assigning value to `autoFlow` instead of returning early. |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| Guard H264 simulcast with a runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=191025 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a runtime flag for H264 simulcast and enable libwebrtc field trial based on it. |
| Covered by existing test. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::webRTCH264SimulcastEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setWebRTCH264SimulcastEnabled): |
| |
| 2018-10-29 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Compute estimated margin top for inline formatting root's ancestors |
| https://bugs.webkit.org/show_bug.cgi?id=191018 |
| |
| Reviewed by Antti Koivisto. |
| |
| <div><img style="float: left"></div> |
| This inline formatting context (root -> div) inherits the floating context from the parent block formatting context. |
| Floats are added to the floating context relative to the floating context's root. In order to position this float properly we |
| need to precompute the ancestor's margin top (stop at the block formatting root boundary). |
| |
| Test: fast/inline/simple-intruding-floats3.html |
| |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRootIfNeeded const): |
| |
| 2018-10-29 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] Add support for inflow non replaced content height when the box is an inline formatting root. |
| https://bugs.webkit.org/show_bug.cgi?id=191011 |
| |
| Reviewed by Antti Koivisto. |
| |
| // 10.6.3 Block-level non-replaced elements in normal flow when 'overflow' computes to 'visible' |
| // Height is the bottom edge of the last line box, if the box establishes a inline formatting context with one or more lines |
| |
| This is temporary until after inline runs transition to the display tree. |
| |
| Test: fast/inline/simple-intruding-floats2.html |
| |
| * layout/blockformatting/BlockFormattingContextGeometry.cpp: |
| (WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin): |
| * layout/inlineformatting/InlineRun.h: |
| (WebCore::Layout::InlineRun::logicalLeft const): |
| (WebCore::Layout::InlineRun::logicalRight const): |
| (WebCore::Layout::InlineRun::logicalTop const): |
| (WebCore::Layout::InlineRun::logicalBottom const): |
| (WebCore::Layout::InlineRun::width const): |
| (WebCore::Layout::InlineRun::height const): |
| (WebCore::Layout::InlineRun::setWidth): |
| (WebCore::Layout::InlineRun::setLogicalLeft): |
| (WebCore::Layout::InlineRun::setLogicalRight): |
| (WebCore::Layout::InlineRun::moveHorizontally): |
| (WebCore::Layout::InlineRun::InlineRun): |
| * layout/inlineformatting/Line.cpp: |
| (WebCore::Layout::InlineFormattingContext::Line::appendContent): |
| |
| 2018-10-29 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add support for simple intruding floats. |
| https://bugs.webkit.org/show_bug.cgi?id=190998 |
| |
| Reviewed by Antti Koivisto. |
| |
| In order to be able to figure out whether a float is intruding on a line, we need to provide the line's final vertical position. |
| This vertical position must be in the same coordinate system as the float's position is. In case of intruding float, |
| it is the parent block formatting root's coordinate system (that's where the float lives.) |
| |
| Test: fast/inline/simple-intruding-float1.html |
| |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): |
| (WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const): |
| (WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRootIfNeeded const): |
| (WebCore::Layout::BlockFormattingContext::computeFloatingPosition const): |
| (WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const): |
| (WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const): |
| * layout/blockformatting/BlockFormattingContext.h: |
| * layout/floats/FloatingState.cpp: |
| (WebCore::Layout::FloatingState::constraints const): |
| |
| 2018-10-29 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Inline layout produces separate runs when float is present. |
| https://bugs.webkit.org/show_bug.cgi?id=190980 |
| |
| Reviewed by Antti Koivisto. |
| |
| <div>foo<img src="foobar.jpg" style="float: left">bar</div> produces 2 inline boxes (foo) and (bar) -> current inline code |
| while it is really just one continuous run (foobar) -> LFC |
| Adjust verification code to check for such runs. |
| |
| * layout/Verification.cpp: |
| (WebCore::Layout::checkForMatchingNonTextRuns): |
| (WebCore::Layout::checkForMatchingTextRuns): |
| (WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded): |
| * layout/inlineformatting/InlineRun.h: |
| (WebCore::Layout::InlineRun::textContext const): |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| [WebRTC] Enable VP8 by default |
| https://bugs.webkit.org/show_bug.cgi?id=190672 |
| <rdar://problem/43663785> |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior. |
| |
| * page/RuntimeEnabledFeatures.h: Set default value to true. |
| |
| 2018-10-28 Andy Estes <aestes@apple.com> |
| |
| [Payment Request] Implement MerchantValidationEvent.methodName |
| https://bugs.webkit.org/show_bug.cgi?id=190058 |
| |
| Reviewed by Darin Adler. |
| |
| Implemented MerchantValidationEvent's methodName attribute and MerchantValidationEventInit's |
| methodName property as specified in the Payment Request API W3C Editor's Draft of |
| 27 September 2018. |
| |
| Covered by web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html. |
| |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::ApplePayPaymentHandler::validateMerchant): Passed the payment method identifier |
| (as a string) to MerchantValidationEvent::create() |
| * Modules/paymentrequest/MerchantValidationEvent.cpp: |
| (WebCore::MerchantValidationEvent::create): Validated the methodName before constructing the |
| event, throwing a RangeError on failure. |
| (WebCore::MerchantValidationEvent::MerchantValidationEvent): |
| * Modules/paymentrequest/MerchantValidationEvent.h: |
| * Modules/paymentrequest/MerchantValidationEvent.idl: |
| |
| 2018-10-27 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Remove WebAnimation::description() |
| https://bugs.webkit.org/show_bug.cgi?id=190995 |
| |
| Reviewed by Dean Jackson. |
| |
| This method is never used. |
| |
| * animation/WebAnimation.cpp: |
| (WebCore::WebAnimation::description): Deleted. |
| * animation/WebAnimation.h: |
| |
| 2018-10-27 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Move the logic of Document::getAnimations() to DocumentTimeline |
| https://bugs.webkit.org/show_bug.cgi?id=190994 |
| |
| Reviewed by Dean Jackson. |
| |
| It would be cleaner to have the logic of document.getAnimations() on the DocumentTimeline instead of the Document, keep more |
| animation-related code compartmentalized in the animation directory. No change in behavior, so no test update. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::getAnimations const): |
| * animation/DocumentTimeline.h: |
| * dom/Document.cpp: |
| (WebCore::Document::getAnimations): |
| |
| 2018-10-27 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Move bindings methods requiring style flush from CSSAnimation to DeclarativeAnimation |
| https://bugs.webkit.org/show_bug.cgi?id=190996 |
| |
| Reviewed by Dean Jackson. |
| |
| Moving all of the IDL bindings methods that require flushing style from CSSAnimation to its superclass |
| DeclarativeAnimation so we follow the same route in CSSTransition. Note that there was code in |
| CSSAnimation::bindingsCurrentTime() that was not moved as it proved to not be necessary. |
| |
| * animation/CSSAnimation.cpp: |
| (WebCore::CSSAnimation::bindingsPlay): |
| (WebCore::CSSAnimation::bindingsPause): |
| (WebCore::CSSAnimation::bindingsStartTime const): Deleted. |
| (WebCore::CSSAnimation::setBindingsStartTime): Deleted. |
| (WebCore::CSSAnimation::bindingsCurrentTime const): Deleted. |
| (WebCore::CSSAnimation::setBindingsCurrentTime): Deleted. |
| (WebCore::CSSAnimation::bindingsPlayState const): Deleted. |
| (WebCore::CSSAnimation::bindingsPending const): Deleted. |
| (WebCore::CSSAnimation::bindingsReady): Deleted. |
| (WebCore::CSSAnimation::bindingsFinished): Deleted. |
| (WebCore::CSSAnimation::flushPendingStyleChanges const): Deleted. |
| * animation/CSSAnimation.h: |
| * animation/DeclarativeAnimation.cpp: |
| (WebCore::DeclarativeAnimation::bindingsStartTime const): |
| (WebCore::DeclarativeAnimation::setBindingsStartTime): |
| (WebCore::DeclarativeAnimation::bindingsCurrentTime const): |
| (WebCore::DeclarativeAnimation::setBindingsCurrentTime): |
| (WebCore::DeclarativeAnimation::bindingsPlayState const): |
| (WebCore::DeclarativeAnimation::bindingsPending const): |
| (WebCore::DeclarativeAnimation::bindingsReady): |
| (WebCore::DeclarativeAnimation::bindingsFinished): |
| (WebCore::DeclarativeAnimation::bindingsPlay): |
| (WebCore::DeclarativeAnimation::bindingsPause): |
| (WebCore::DeclarativeAnimation::flushPendingStyleChanges const): |
| * animation/DeclarativeAnimation.h: |
| |
| 2018-10-27 Charlie Turner <cturner@igalia.com> |
| |
| [EME] Add a logging macro |
| https://bugs.webkit.org/show_bug.cgi?id=190984 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| No tests since no new functionality. |
| |
| * Modules/encryptedmedia/MediaKeySession.cpp: |
| (WebCore::MediaKeySession::MediaKeySession): |
| (WebCore::MediaKeySession::generateRequest): |
| (WebCore::MediaKeySession::update): |
| (WebCore::MediaKeySession::close): |
| (WebCore::MediaKeySession::remove): |
| (WebCore::MediaKeySession::sessionClosed): |
| * Modules/encryptedmedia/MediaKeys.cpp: |
| (WebCore::MediaKeys::createSession): |
| * Modules/encryptedmedia/NavigatorEME.cpp: |
| (WebCore::NavigatorEME::requestMediaKeySystemAccess): |
| * platform/Logging.h: |
| |
| 2018-10-27 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [GStreamer][EME] Post key received to bus should be done before waking up other threads |
| https://bugs.webkit.org/show_bug.cgi?id=190822 |
| |
| Reviewed by Philippe Normand. |
| |
| Notify after posting message to bus. |
| |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| (webkitMediaCommonEncryptionDecryptSinkEventHandler): |
| |
| 2018-10-27 Charlie Turner <cturner@igalia.com> |
| |
| Fix release build with -DLOG_DISABLED=0 |
| https://bugs.webkit.org/show_bug.cgi?id=190866 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| No new tests since no functionality changed. |
| |
| * platform/graphics/Font.cpp: |
| * platform/graphics/Font.h: |
| * platform/graphics/FontPlatformData.h: |
| * platform/graphics/cocoa/FontPlatformDataCocoa.mm: |
| * platform/graphics/freetype/FontPlatformDataFreeType.cpp: |
| * platform/graphics/win/FontPlatformDataWin.cpp: |
| |
| 2018-10-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r237458. |
| https://bugs.webkit.org/show_bug.cgi?id=190973 |
| |
| broke internal iOS builds (Requested by zalan on #webkit). |
| |
| Reverted changeset: |
| |
| "Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=190951 |
| https://trac.webkit.org/changeset/237458 |
| |
| 2018-10-26 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Remove useless internals methods |
| https://bugs.webkit.org/show_bug.cgi?id=190968 |
| |
| Reviewed by Dean Jackson. |
| |
| We had a few internals methods added early on in the Web Animations implementation that are no longer |
| relevant now that the full API is implemented. We can safely remove them now. |
| |
| * animation/AnimationTimeline.cpp: |
| (WebCore::AnimationTimeline::setCurrentTime): Deleted. |
| (WebCore::AnimationTimeline::description): Deleted. |
| * animation/AnimationTimeline.h: |
| (WebCore::AnimationTimeline::currentTime): |
| (WebCore::AnimationTimeline::pause): Deleted. |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::currentTime): |
| (WebCore::DocumentTimeline::pause): Deleted. |
| * animation/DocumentTimeline.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::timelineDescription): Deleted. |
| (WebCore::Internals::pauseTimeline): Deleted. |
| (WebCore::Internals::setTimelineCurrentTime): Deleted. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-10-26 Antoine Quint <graouts@apple.com> |
| |
| Web Inspector: Crash in http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html |
| https://bugs.webkit.org/show_bug.cgi?id=190955 |
| |
| Reviewed by Dean Jackson. |
| |
| We can get in situations when running tests where runtime flags are not consistent throughout the time a test is run since |
| showing the Web Inspector can cause flags to be re-set after the initial test was loaded. As such, to avoid crashes due to |
| the ASSERT(!frame().animation().hasAnimations()) in FrameView::didDestroyRenderTree(), we now cancel animations upon teardown |
| no matter what the value of the runtime flag for the Web Animations CSS Integration on both the DocumentTimeline (if it exists) |
| and the CSSAnimationController. |
| |
| * dom/Element.cpp: |
| (WebCore::Element::removedFromAncestor): |
| * dom/PseudoElement.cpp: |
| (WebCore::PseudoElement::clearHostElement): |
| * page/FrameView.cpp: |
| (WebCore::FrameView::didDestroyRenderTree): |
| * rendering/updating/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::tearDownRenderers): |
| |
| 2018-10-26 Timothy Hatcher <timothy@apple.com> |
| |
| Use dark appearance scrollbar when page background is dark or document supports dark mode. |
| https://bugs.webkit.org/show_bug.cgi?id=190937 |
| rdar://problem/41225839 |
| |
| Reviewed by Beth Dakin. |
| |
| * page/FrameView.cpp: |
| (WebCore::FrameView::useDarkAppearance const): Added. Ask the document. |
| (WebCore::FrameView::paintScrollCorner): Set LocalDefaultSystemAppearance based |
| on the scrollbar overlay style too. |
| * page/FrameView.h: |
| * platform/ScrollableArea.h: |
| (WebCore::ScrollableArea::useDarkAppearance const): Added. Default to false. |
| * platform/mac/ScrollAnimatorMac.mm: |
| (-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Added. |
| Ask the ScrollableArea if a dark appearance is desired. |
| |
| 2018-10-26 Antti Koivisto <antti@apple.com> |
| |
| Use random() instead of begin() to limit cache sizes |
| https://bugs.webkit.org/show_bug.cgi?id=190957 |
| |
| Reviewed by Chris Dumez. |
| |
| We currently use cache.remove(cache.begin()) pattern to limit sized of various caches. |
| This is a bad pattern for tables that never rehash (because they have fixed maximum size) as most of the |
| keys get permanently stuck in the table. |
| |
| * css/CSSValuePool.cpp: |
| (WebCore::CSSValuePool::createColorValue): |
| (WebCore::CSSValuePool::createFontFamilyValue): |
| (WebCore::CSSValuePool::createFontFaceValue): |
| * dom/InlineStyleSheetOwner.cpp: |
| (WebCore::InlineStyleSheetOwner::createSheet): |
| * dom/SelectorQuery.cpp: |
| * platform/graphics/FontCascade.cpp: |
| (WebCore::retrieveOrAddCachedFonts): |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::shouldAutoActivateFontIfNeeded): |
| * platform/mac/PublicSuffixMac.mm: |
| (WebCore::topPrivatelyControlledDomain): |
| |
| 2018-10-26 Jer Noble <jer.noble@apple.com> |
| |
| Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI |
| https://bugs.webkit.org/show_bug.cgi?id=190951 |
| <rdar://problem/45213065> |
| |
| Reviewed by Alex Christensen. |
| |
| Request the correct route policy and context from the VideoFullscreenModel. |
| |
| * platform/cocoa/VideoFullscreenModel.h: |
| (WebCore::VideoFullscreenModel::requestRouteSharingPolicyAndContextUID): |
| * platform/cocoa/VideoFullscreenModelVideoElement.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (WebCore::VideoFullscreenModelVideoElement::requestRouteSharingPolicyAndContextUID): |
| * platform/ios/VideoFullscreenInterfaceAVKit.h: |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (-[WebAVPlayerViewController setWebKitOverrideRouteSharingPolicy:routingContextUID:]): |
| (VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): |
| (VideoFullscreenInterfaceAVKit::doSetup): |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add more inline information to outputLayoutTree |
| https://bugs.webkit.org/show_bug.cgi?id=190945 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::outputInlineRuns): |
| (WebCore::Layout::outputLayoutBox): |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Layout floats as part of the inline content |
| https://bugs.webkit.org/show_bug.cgi?id=190942 |
| |
| Reviewed by Antti Koivisto. |
| |
| Add float handling to InlineFormattingContext::layoutInlineContent. |
| Note that floats don't actually generate inline runs. |
| |
| Test: fast/block/basic/inline-content-with-floating-image.html |
| |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): |
| * layout/floats/FloatAvoider.cpp: |
| (WebCore::Layout::FloatAvoider::FloatAvoider): Check if any mapping is needed. |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::isTrimmableContent): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| (WebCore::Layout::trimLeadingRun): Deleted. |
| * layout/inlineformatting/InlineFormattingContext.h: |
| (WebCore::Layout::InlineFormattingContext::Line::isClosed const): |
| * layout/inlineformatting/Line.cpp: |
| (WebCore::Layout::InlineFormattingContext::Line::init): |
| (WebCore::Layout::InlineFormattingContext::Line::adjustLogicalLeft): |
| (WebCore::Layout::InlineFormattingContext::Line::adjustLogicalRight): |
| (WebCore::Layout::InlineFormattingContext::Line::appendContent): |
| (WebCore::Layout::InlineFormattingContext::Line::close): |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Adjust current line with float constraints. |
| https://bugs.webkit.org/show_bug.cgi?id=190940 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::initializeNewLine const): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineRun.h: |
| (WebCore::Layout::InlineRun::moveHorizontally): |
| * layout/inlineformatting/Line.cpp: |
| (WebCore::Layout::InlineFormattingContext::Line::adjustLogicalLeft): |
| (WebCore::Layout::InlineFormattingContext::Line::adjustLogicalRight): |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Compute float box size and position |
| https://bugs.webkit.org/show_bug.cgi?id=190938 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeight const): |
| (WebCore::Layout::InlineFormattingContext::computeFloatPosition const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add line logical top and bottom |
| https://bugs.webkit.org/show_bug.cgi?id=190934 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::initializeNewLine const): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| (WebCore::Layout::InlineFormattingContext::Line::isFirstLine const): |
| (WebCore::Layout::InlineFormattingContext::Line::logicalTop const): |
| (WebCore::Layout::InlineFormattingContext::Line::logicalBottom const): |
| * layout/inlineformatting/Line.cpp: |
| (WebCore::Layout::InlineFormattingContext::Line::init): |
| (WebCore::Layout::InlineFormattingContext::Line::contentLogicalRight): |
| (WebCore::Layout::InlineFormattingContext::Line::close): |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Find floating constraints for a given vertical position |
| https://bugs.webkit.org/show_bug.cgi?id=190928 |
| |
| Reviewed by Antti Koivisto. |
| |
| https://www.w3.org/TR/CSS22/visuren.html#inline-formatting |
| |
| "In general, the left edge of a line box touches the left edge of its containing block and the right edge touches the right edge of its containing block. |
| However, floating boxes may come between the containing block edge and the line box edge. |
| Thus, although line boxes in the same inline formatting context generally have the same width |
| (that of the containing block), they may vary in width if available horizontal space is reduced due to floats." |
| |
| This patch adds support for retrieving left/right constraints for a given line (vertical position). |
| |
| * layout/floats/FloatingState.cpp: |
| (WebCore::Layout::FloatingState::constraints const): |
| * layout/floats/FloatingState.h: |
| |
| 2018-10-26 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC] Inline formatting context has higher priority than block |
| https://bugs.webkit.org/show_bug.cgi?id=190924 |
| |
| Reviewed by Antti Koivisto. |
| |
| When an element establishes both inline and block formatting contexts, we need to pick one to |
| create (and we choose the content driven formatting type (inline)). See example below: |
| |
| <div style="overflow: hidden">This text should be inside an inlines formatting context.</div> |
| |
| * layout/LayoutContext.cpp: |
| (WebCore::Layout::LayoutContext::formattingContext const): |
| |
| 2018-10-26 Ali Juma <ajuma@chromium.org> |
| |
| REGRESSION (r237255): Text selection is broken in form fields |
| https://bugs.webkit.org/show_bug.cgi?id=190899 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Fix missing negation when checking for a fully-clipped-out rect. This was causing |
| RenderObject::computeVisibleRectInContainer to incorrectly early-out. |
| |
| Test: fast/repaint/text-selection-overflow-hidden.html |
| |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::computeVisibleRectInContainer const): |
| |
| 2018-10-25 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Navigating cross-site with locked history but unlocked back/forward list fails to create a new BackForwardListItem |
| https://bugs.webkit.org/show_bug.cgi?id=190915 |
| <rdar://problem/45059069> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * history/PageCache.cpp: |
| (WebCore::canCacheFrame): |
| Make sure we do not put into PageCache a page whose main frame is showing the initial empty document. |
| We usually do not try to put those into PageCache because we do not have a HistoryItem to save the |
| PageCache entry on. However, when we process-swap on a navigation with the history locked, the new |
| process has a HistoryItem and is initially showing the initial empty document before continuing |
| the load from the previous process. Note that saving the initial empty document in PageCache would |
| lead to crashes later on previous the initial empty document's Window is taken and reused for the |
| next load. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::load): |
| Stop assuming that we're continuing a client-side redirect when lockHistory is Yes. It is |
| lockBackForwardList that is actually Yes when we're doing a client-side redirect. |
| |
| * loader/PolicyChecker.cpp: |
| (WebCore::PolicyChecker::checkNavigationPolicy): |
| Stop using calling the completion handler with an invalid URL when the policy decision is 'Suspend' and |
| use 'about:blank' instead. Without this change, FrameLoader::continueLoadAfterNavigationPolicy() would |
| not load 'about:blank' when its AllowNavigationToInvalidURL parameter is No. |
| |
| 2018-10-25 Devin Rousso <drousso@apple.com> |
| |
| Fix build after r237431 for platforms that don't support FULLSCREEN_API |
| |
| Reviewed by Joseph Pecoraro. |
| |
| No new tests. No change in behavior. |
| |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::addEventListenersToNode): |
| |
| 2018-10-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: display fullscreen enter/exit events in Timelines and Network node waterfalls |
| https://bugs.webkit.org/show_bug.cgi?id=189874 |
| <rdar://problem/44700000> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Updated existing test: http/tests/inspector/dom/didFireEvent.html |
| |
| * inspector/agents/InspectorDOMAgent.h: |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::EventFiredCallback::handleEvent): |
| (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): |
| (WebCore::InspectorDOMAgent::addEventListenersToNode): |
| (WebCore::InspectorDOMAgent::discardBindings): |
| (WebCore::InspectorDOMAgent::eventDidResetAfterDispatch): Added. |
| Prevent the same event from being sent to the frontend more than once. |
| |
| * dom/Event.cpp: |
| (WebCore::Event::resetAfterDispatch): |
| |
| * dom/Document.cpp: |
| (WebCore::Document::Document): |
| |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::eventDidResetAfterDispatch): Added. |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::eventDidResetAfterDispatchImpl): Added. |
| |
| 2018-10-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, silence a -Wreturn-type warning |
| |
| When every return is supposed to be covered by a switch statement, a release assert or CRASH |
| is required by GCC. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp: |
| (WebCore::LibWebRTCCertificateGenerator::keyParamsFromCertificateType): |
| |
| 2018-10-25 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations CSS Integration off by default |
| https://bugs.webkit.org/show_bug.cgi?id=190901 |
| |
| Reviewed by Dean Jackson. |
| |
| * page/RuntimeEnabledFeatures.h: |
| |
| 2018-10-25 Jon Davis <jond@apple.com> |
| |
| Changed "Under Development" status to use "In Development" instead |
| https://bugs.webkit.org/show_bug.cgi?id=187615 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * features.json: Updated CSS Painting API Level 1 and CSS Properties and Values API Level 1. |
| |
| 2018-10-25 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (236779) scandinaviandesigns.com product pages auto redirect to product image |
| https://bugs.webkit.org/show_bug.cgi?id=190891 |
| <rdar://problem/45296796> |
| |
| Reviewed by Antti Koivisto. |
| |
| When a radio element gets clicked, we should only fire the 'input' and 'change' if the checked state |
| of the radio element has changed. |
| |
| Test: fast/dom/HTMLInputElement/radio-element-fires-change-event-only-when-checked-state-changes.html |
| |
| * html/RadioInputType.cpp: |
| (WebCore::RadioInputType::didDispatchClick): |
| |
| 2018-10-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| InspectorCanvas is not getting cleared properly for OffscreenCanvas |
| https://bugs.webkit.org/show_bug.cgi?id=190894 |
| <rdar://problem/45498435> |
| |
| Reviewed by Simon Fraser. |
| |
| Covered by existing tests not crashing with guard malloc. |
| |
| InspectorCanvasAgents tracks all CanvasRenderingContexts and needs to |
| remove its reference when the containing CanvasBase goes away. It does |
| this by registering as a notification observer, but if it can't map |
| from the CanvasBase back to the rendering context we were failing to |
| remove our reference. Enforce CanvasBase classes to notify observers |
| of destruction while they still have their CanvasRenderingContext. |
| |
| * html/CanvasBase.cpp: |
| (WebCore::CanvasBase::~CanvasBase): |
| (WebCore::CanvasBase::notifyObserversCanvasDestroyed): |
| * html/CanvasBase.h: |
| Assert that subclasses notify observers of the canvas being destroyed, |
| since they will need to do this before m_context is cleared. |
| |
| * html/CustomPaintCanvas.cpp: |
| (WebCore::CustomPaintCanvas::~CustomPaintCanvas): |
| * html/OffscreenCanvas.cpp: |
| (WebCore::OffscreenCanvas::~OffscreenCanvas): |
| Follow the new expected pattern of notifying observers before clearing |
| the context. HTMLCanvasElement already followed this pattern. |
| |
| * inspector/agents/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::canvasDestroyed): |
| Add an assertion that would catch this earlier. |
| |
| 2018-10-24 Alexey Proskuryakov <ap@apple.com> |
| |
| Clean up some obsolete macOS version guards |
| https://bugs.webkit.org/show_bug.cgi?id=190887 |
| |
| Reviewed by Dan Bernstein. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const): |
| |
| 2018-10-24 Tim Horton <timothy_horton@apple.com> |
| |
| Attachment filenames with RTL characters should format similar to Finder |
| https://bugs.webkit.org/show_bug.cgi?id=190736 |
| <rdar://problem/44735946> |
| |
| Reviewed by Dan Bernstein. |
| |
| Test: fast/attachment/attachment-title-with-rtl.html |
| |
| * html/HTMLAttachmentElement.cpp: |
| (WebCore::HTMLAttachmentElement::attachmentTitleForDisplay const): |
| * html/HTMLAttachmentElement.h: |
| Add attachmentTitleForDisplay(), which wraps the non-extension part of |
| attachmentTitle in BiDi isolates, matching Finder's behavior. |
| |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::RenderAttachmentInfo::buildWrappedLines): |
| (WebCore::RenderAttachmentInfo::RenderAttachmentInfo): |
| * rendering/RenderThemeMac.mm: |
| (WebCore::AttachmentLayout::layOutTitle): |
| Adopt attachmentTitleForDisplay, and ask CoreText to use a subrange of |
| the original string for the last line, instead of splitting the string |
| ourselves. This ensures that BiDi control characters are respected |
| even in the last line of the string. |
| |
| 2018-10-24 Megan Gardner <megan_gardner@apple.com> |
| |
| Turn on Conic Gradients |
| https://bugs.webkit.org/show_bug.cgi?id=190810 |
| |
| Reviewed by Tim Horton. |
| |
| Added tests previously, only switching feature from experimental to always avaiable. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * css/parser/CSSParserContext.cpp: |
| (WebCore::CSSParserContext::CSSParserContext): |
| (WebCore::operator==): |
| * css/parser/CSSParserContext.h: |
| (WebCore::CSSParserContextHash::hash): |
| * css/parser/CSSPropertyParserHelpers.cpp: |
| (WebCore::CSSPropertyParserHelpers::consumeConicGradient): |
| * page/Settings.yaml: |
| |
| 2018-10-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Only report resource timing to parent frame for the first iframe load |
| https://bugs.webkit.org/show_bug.cgi?id=190498 |
| <rdar://problem/44347398> |
| |
| Reviewed by Youenn Fablet. |
| |
| Only the first iframe navigation or the first iframe navigation after about:blank should be reported. |
| https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface |
| |
| Test: http/tests/misc/resource-timing-navigation-in-restored-iframe.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadWithDocumentLoader): |
| * loader/FrameLoader.h: |
| (WebCore::FrameLoader::shouldReportResourceTimingToParentFrame): |
| (WebCore::FrameLoader::setShouldReportResourceTimingToParentFrame): Deleted. |
| * loader/ResourceTimingInformation.cpp: |
| (WebCore::ResourceTimingInformation::addResourceTiming): |
| |
| 2018-10-24 Brent Fulgham <bfulgham@apple.com> |
| |
| Cure Windows Direct2D Backend of a nasty case of bitrot |
| https://bugs.webkit.org/show_bug.cgi?id=190875 |
| <rdar://problem/45523268> |
| |
| Reviewed by Zalan Bujtas. |
| |
| The Direct2D backend has drifted out of date with the rest of WebKit. |
| This patch updates things so we can get a runnable build. |
| |
| * platform/graphics/FontPlatformData.h: |
| * platform/graphics/ImageBuffer.cpp: |
| (WebCore::ImageBuffer::create): |
| * platform/graphics/ImageBuffer.h: |
| * platform/graphics/ImageDecoder.h: |
| * platform/graphics/ImageSource.cpp: |
| (WebCore::ImageSource::setTargetContext): |
| * platform/graphics/opentype/OpenTypeMathData.cpp: |
| (WebCore::OpenTypeMathData::OpenTypeMathData): Need non-default constructor to make Visual |
| Studio happy. |
| * platform/graphics/win/GradientDirect2D.cpp: |
| (WebCore::Gradient::generateGradient): |
| * platform/graphics/win/GraphicsContextDirect2D.cpp: Update for new display list implementation. |
| (WebCore::GraphicsContextPlatformPrivate::setAlpha): |
| (WebCore::GraphicsContext::savePlatformState): |
| (WebCore::GraphicsContext::restorePlatformState): |
| (WebCore::GraphicsContext::drawNativeImage): |
| (WebCore::GraphicsContext::drawPattern): |
| (WebCore::GraphicsContext::drawRect): |
| (WebCore::GraphicsContext::drawLine): |
| (WebCore::GraphicsContext::drawEllipse): |
| (WebCore::GraphicsContext::drawPath): |
| (WebCore::GraphicsContext::fillPath): |
| (WebCore::GraphicsContext::strokePath): |
| (WebCore::GraphicsContext::fillRect): |
| (WebCore::GraphicsContext::platformFillRoundedRect): |
| (WebCore::GraphicsContext::fillRectWithRoundedHole): |
| (WebCore::GraphicsContext::clip): |
| (WebCore::GraphicsContext::clipOut): |
| (WebCore::GraphicsContext::clipPath): |
| (WebCore::GraphicsContext::clipBounds const): |
| (WebCore::GraphicsContext::beginPlatformTransparencyLayer): |
| (WebCore::GraphicsContext::endPlatformTransparencyLayer): |
| (WebCore::GraphicsContext::setMiterLimit): |
| (WebCore::GraphicsContext::clearRect): |
| (WebCore::GraphicsContext::strokeRect): |
| (WebCore::GraphicsContext::setLineCap): |
| (WebCore::GraphicsContext::setLineDash): |
| (WebCore::GraphicsContext::setLineJoin): |
| (WebCore::GraphicsContext::scale): |
| (WebCore::GraphicsContext::rotate): |
| (WebCore::GraphicsContext::translate): |
| (WebCore::GraphicsContext::concatCTM): |
| (WebCore::GraphicsContext::setCTM): |
| (WebCore::GraphicsContext::getCTM const): |
| (WebCore::GraphicsContext::roundToDevicePixels): |
| (WebCore::GraphicsContext::drawLinesForText): |
| (WebCore::GraphicsContext::setURLForRect): |
| (WebCore::GraphicsContext::setIsCALayerContext): |
| (WebCore::GraphicsContext::isCALayerContext const): |
| (WebCore::GraphicsContext::setIsAcceleratedContext): |
| (WebCore::GraphicsContext::isAcceleratedContext const): |
| (WebCore::GraphicsContext::setPlatformShouldAntialias): |
| (WebCore::GraphicsContext::setPlatformShouldSmoothFonts): |
| (WebCore::GraphicsContext::setPlatformCompositeOperation): |
| (WebCore::GraphicsContext::platformFillEllipse): |
| (WebCore::GraphicsContext::platformStrokeEllipse): |
| * platform/graphics/win/GraphicsLayerDirect2D.cpp: |
| (WebCore::GraphicsLayer::create): |
| (): Deleted. |
| * platform/graphics/win/ImageBufferDataDirect2D.cpp: |
| (WebCore::ImageBufferData::putData): |
| * platform/graphics/win/ImageBufferDataDirect2D.h: |
| * platform/graphics/win/ImageBufferDirect2D.cpp: |
| (WebCore::ImageBuffer::createCompatibleBuffer): |
| (WebCore::ImageBuffer::ImageBuffer): |
| * platform/graphics/win/ImageDecoderDirect2D.cpp: |
| (WebCore::ImageDecoderDirect2D::bytesDecodedToDetermineProperties const): |
| (WebCore::ImageDecoderDirect2D::encodedDataStatus const): |
| (WebCore::ImageDecoderDirect2D::repetitionCount const): |
| (WebCore::ImageDecoderDirect2D::frameOrientationAtIndex const): |
| (WebCore::ImageDecoderDirect2D::frameDurationAtIndex const): |
| (WebCore::ImageDecoderDirect2D::frameAllowSubsamplingAtIndex const): |
| (WebCore::ImageDecoderDirect2D::frameHasAlphaAtIndex const): |
| (WebCore::ImageDecoderDirect2D::createFrameImageAtIndex): |
| (WebCore::ImageDecoderDirect2D::setData): |
| (WebCore::ImageDecoderDirect2D::bytesDecodedToDetermineProperties): Deleted. |
| (WebCore::ImageDecoderDirect2D::createFrameImageAtIndex const): Deleted. |
| * platform/graphics/win/ImageDecoderDirect2D.h: |
| * platform/graphics/win/ImageDirect2D.cpp: |
| (WebCore::BitmapImage::drawFrameMatchingSourceSize): |
| * platform/graphics/win/PatternDirect2D.cpp: |
| (WebCore::Pattern::createPlatformPattern const): |
| |
| 2018-10-24 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Cleanup: MIMETypeRegistry functions |
| https://bugs.webkit.org/show_bug.cgi?id=190838 |
| |
| Reviewed by Simon Fraser. |
| |
| Modernize the initialization of the lists in MIMETypeRegistry. Make the |
| functions that return these list be self-contained. Use NeverDestroy<> to |
| allocate the local static variable. Use std::initializer_list() and |
| makeNeverDestroyed() to initialize NeverDestroy<> variables only once. |
| |
| supportedImageResourceMIMETypes will be deleted and all the calls to it |
| will be replaced by supportedImageMIMETypes because they are identical. |
| |
| * loader/archive/ArchiveFactory.cpp: |
| (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes): This function |
| is called while initializing the supportedNonImageMIMETypes(). So it |
| should not have a direct call to it. Instead, supportedNonImageMIMETypes |
| is passed to it. |
| * loader/archive/ArchiveFactory.h: |
| * platform/MIMETypeRegistry.cpp: |
| (WebCore::MIMETypeRegistry::supportedImageMIMETypes): |
| (WebCore::supportedImageMIMETypesForEncoding): |
| (WebCore::supportedJavaScriptMIMETypes): |
| (WebCore::MIMETypeRegistry::supportedNonImageMIMETypes): |
| (WebCore::MIMETypeRegistry::supportedMediaMIMETypes): |
| (WebCore::pdfMIMETypes): |
| (WebCore::MIMETypeRegistry::unsupportedTextMIMETypes): |
| (WebCore::MIMETypeRegistry::isSupportedImageMIMEType): |
| (WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding): |
| (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): |
| (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType): |
| (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType): |
| (WebCore::MIMETypeRegistry::isUnsupportedTextMIMEType): |
| (WebCore::MIMETypeRegistry::isPDFMIMEType): |
| (WebCore::MIMETypeRegistry::systemPreviewMIMETypes): |
| (WebCore::MIMETypeRegistry::isSystemPreviewMIMEType): |
| (WebCore::initializeSupportedImageMIMETypes): Deleted. |
| (WebCore::initializeSupportedImageMIMETypesForEncoding): Deleted. |
| (WebCore::initializeSupportedJavaScriptMIMETypes): Deleted. |
| (WebCore::initializePDFMIMETypes): Deleted. |
| (WebCore::initializeSupportedNonImageMimeTypes): Deleted. |
| (WebCore::initializeSupportedMediaMIMETypes): Deleted. |
| (WebCore::initializeUnsupportedTextMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType): Deleted. |
| (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::getPDFMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::getUnsupportedTextMIMETypes): Deleted. |
| (WebCore::MIMETypeRegistry::getSystemPreviewMIMETypes): Deleted. |
| * platform/MIMETypeRegistry.h: |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::supportsType): |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoderCG::encodedDataStatus const): |
| * platform/graphics/cg/UTIRegistry.cpp: |
| (WebCore::supportedDefaultImageSourceTypes): |
| (WebCore::isSupportImageSourceType): |
| (WebCore::allowedImageUTIs): Deleted. |
| (WebCore::isAllowedImageUTI): Deleted. |
| * platform/graphics/cg/UTIRegistry.h: |
| * platform/mac/PasteboardMac.mm: |
| (WebCore::Pasteboard::write): |
| |
| 2018-10-24 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] When navigating back and forth, 'about:blank' shows up in the back/forward list |
| https://bugs.webkit.org/show_bug.cgi?id=190846 |
| <rdar://problem/45058938> |
| |
| Reviewed by Antti Koivisto. |
| |
| When a page gets suspended after a process-swap, we navigate it to about:blank from inside the navigation |
| policy handler, by overriding the request URL. This normally works fine because we usually process-swap |
| on standard navigation. However, when we would process-swap on a back/forward navigation, we would end |
| up using the back/forward navigation load type to do the about:blank load. This would have repercussions |
| because history navigations update the current history item with the new URL (in this case 'about:blank'). |
| To avoid the issue, switch to a standard load type whenever the client asks us to suspend and we load |
| 'about:blank' as a result. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): |
| |
| 2018-10-24 Andy Estes <aestes@apple.com> |
| |
| [macOS Debug WK2] Layout Test http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=190650 |
| <rdar://problem/45341914> |
| |
| Reviewed by Alex Christensen. |
| |
| In computeErrors, we intend to ignore errors when computing paymentMethodErrors. But we |
| weren't clearing exceptions generated from calling convert(), so they would end up being |
| logged as unhandled promise rejections. |
| |
| Changed ApplePayPaymentHandler::computeErrors() to use a CatchScope to clear exceptions when |
| decoding paymentMethodErrors. |
| |
| Also changed ApplePayShippingAddressChangeEventErrorsV3.https.html to catch promise |
| rejections from calling PaymentRequest.abort(). |
| |
| Covered by existing test. |
| |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::ApplePayPaymentHandler::computeErrors const): |
| |
| 2018-10-22 Antti Koivisto <antti@apple.com> |
| |
| topPrivatelyControlledDomain is slow |
| https://bugs.webkit.org/show_bug.cgi?id=190792 |
| |
| Reviewed by Alex Christensen and Chris Dumez. |
| |
| It calls into some slowish CFNetwork code and ends up showing up in profiles. |
| |
| * platform/mac/PublicSuffixMac.mm: |
| (WebCore::topPrivatelyControlledDomain): |
| |
| Add a cache that avoids calls into frameworks. |
| |
| 2018-10-22 Jer Noble <jer.noble@apple.com> |
| |
| Use WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoundationObjC |
| https://bugs.webkit.org/show_bug.cgi?id=190790 |
| |
| Reviewed by Alex Christensen. |
| |
| Move towards using WeakPtr callbacks instead of raw pointers within the utility objects used by |
| MediaPlayerPrivateAVFoundationObjC. Additionally, accessing WeakPtr off the thread which created |
| the pointer is not allowed, so use a GenericTaskQueue to schedule callbacks instead. Make |
| GenericTaskQueue<Timer> thread-safe by locking around access to m_pendingTasks, and by making |
| incrementing the pending task count atomic. |
| |
| * platform/GenericTaskQueue.cpp: |
| (WebCore::TaskDispatcher<Timer>::postTask): |
| (WebCore::TaskDispatcher<Timer>::sharedLock): |
| (WebCore::TaskDispatcher<Timer>::sharedTimerFired): |
| (WebCore::TaskDispatcher<Timer>::dispatchOneTask): |
| (WebCore::TaskDispatcher<Timer>::pendingDispatchers): |
| * platform/GenericTaskQueue.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): |
| (-[WebCoreAVFMovieObserver initWithPlayer:]): |
| (-[WebCoreAVFMovieObserver disconnect]): |
| (-[WebCoreAVFMovieObserver metadataLoaded]): |
| (-[WebCoreAVFMovieObserver didEnd:]): |
| (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): |
| (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): |
| (-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]): |
| (-[WebCoreAVFLoaderDelegate initWithPlayer:]): |
| (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): |
| (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]): |
| (-[WebCoreAVFPullDelegate initWithPlayer:]): |
| (-[WebCoreAVFPullDelegate outputMediaDataWillChange:]): |
| (-[WebCoreAVFMovieObserver initWithCallback:]): Deleted. |
| (-[WebCoreAVFLoaderDelegate initWithCallback:]): Deleted. |
| (-[WebCoreAVFLoaderDelegate setCallback:]): Deleted. |
| (-[WebCoreAVFPullDelegate initWithCallback:]): Deleted. |
| (-[WebCoreAVFPullDelegate setCallback:]): Deleted. |
| |
| 2018-10-23 Jer Noble <jer.noble@apple.com> |
| |
| TextTrack cues should be updated more often than every 250ms. |
| https://bugs.webkit.org/show_bug.cgi?id=190827 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/track/track-cue-timing.html |
| |
| TextTracks cues are recalculated on the playback timer, which fires at least every 250ms. |
| In addition to this timer, add a method to MediaPlayer to provide a task which will be |
| performed at a particular media time, and use this new method to request cues be updated |
| at the next interesting media time. The next interesting time would be either when the |
| soonest current cue will end, or when the next non-current cue will start, whichever is |
| earlier. |
| |
| (Determining the "next non-current cue" requires new API on PODIntervalTree, as that class |
| does not have iterators per-se.) |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::compareCueIntervalEndTime): |
| (WebCore::HTMLMediaElement::updateActiveTextTrackCues): |
| * platform/PODIntervalTree.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::performTaskAtMediaTime): |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/MediaPlayerPrivate.h: |
| (WebCore::MediaPlayerPrivateInterface::performTaskAtMediaTime): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime): |
| |
| 2018-10-23 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Assertion fails while destructing local static AtomicString of FontCache::lastResortFallbackFont |
| https://bugs.webkit.org/show_bug.cgi?id=190748 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| FontCache::lastResortFallbackFont had local static AtomicString |
| variables which are not capsuled by NeverDestroyed. Hence, those |
| variables are destructed on IPC thread when WebProcess exits. |
| |
| Changed those AtomicString to NeverDestroyed<AtomicString> not to |
| be destructed on exit. |
| |
| This change can't be tested automatically because WebKitTestRunner |
| doesn't support Windows port yet. |
| |
| * platform/graphics/win/FontCacheWin.cpp: |
| (WebCore::FontCache::lastResortFallbackFont): Changed |
| fallbackFonts's type from AtomicString array to |
| NeverDestroyed<AtomicString> array. |
| |
| 2018-10-23 Justin Fan <justin_fan@apple.com> |
| |
| [WebGPU] Rename old GPU* implementation files to GPULegacy* for WebMetal |
| https://bugs.webkit.org/show_bug.cgi?id=190817 |
| |
| Reviewed by Dean Jackson. |
| |
| No new tests. No change in behavior. |
| |
| * [Large list of refactored classes and renamed files]: GPU* is now GPULegacy* |
| |
| 2018-10-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r237261. |
| |
| The layout test for this change crashes under GuardMalloc. |
| |
| Reverted changeset: |
| |
| "Handle MDNS resolution of candidates through libwebrtc |
| directly" |
| https://bugs.webkit.org/show_bug.cgi?id=190681 |
| https://trac.webkit.org/changeset/237261 |
| |
| 2018-10-23 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r237357. |
| |
| API test is now failing on all platforms. |
| |
| Reverted changeset: |
| |
| "topPrivatelyControlledDomain is slow" |
| https://bugs.webkit.org/show_bug.cgi?id=190792 |
| https://trac.webkit.org/changeset/237357 |
| |
| 2018-10-23 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r237350. |
| |
| Caused several Crashes cross multiple tests and platforms. |
| |
| Reverted changeset: |
| |
| "Use WeakPtr and GenericTaskQueue within ObjC classes used by |
| MediaPlayerPrivateAVFoundationObjC" |
| https://bugs.webkit.org/show_bug.cgi?id=190790 |
| https://trac.webkit.org/changeset/237350 |
| |
| 2018-10-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r237280. |
| |
| Causes fast/box-shadow/box-shadow-with-zero-radius.html to |
| fail on iOS Simulator. |
| |
| Reverted changeset: |
| |
| "[CG] Adopt CG SPI for non-even cornered rounded rects" |
| https://bugs.webkit.org/show_bug.cgi?id=190155 |
| https://trac.webkit.org/changeset/237280 |
| |
| 2018-10-23 Antti Koivisto <antti@apple.com> |
| |
| topPrivatelyControlledDomain is slow |
| https://bugs.webkit.org/show_bug.cgi?id=190792 |
| |
| Reviewed by Alex Christensen. |
| |
| It calls into some slowish CFNetwork code and ends up showing up in profiles. |
| |
| * platform/mac/PublicSuffixMac.mm: |
| (WebCore::topPrivatelyControlledDomain): |
| |
| Add a cache that avoids calls into frameworks. |
| |
| 2018-10-23 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Add support for cross-site client-side redirects |
| https://bugs.webkit.org/show_bug.cgi?id=190806 |
| <rdar://problem/45047344> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add support for cross-site client-side redirects so that it swaps process and so that the back |
| forward list looks as expected. To support this, the following changes had to be done: |
| - The NavigationAction now provides additional information so that the WebProcess can communicate |
| things about the client-side redirect to the UIProcess: lockHistory / lockBackForwardList and |
| clientRedirectSourceForHistory. |
| - If the UIProcess decides to process-swap on a client-side redirect, we pass the client-side |
| redirect information to the new WebContent process via LoadRequest struct. WebCore then takes |
| care of setting things up using this information so that it recognizes that it is continuing |
| a load that is a client side redirect. |
| - We also need to pass the current BackForwardListItem / HistoryItem to the new WebContent |
| process so that the new process can truly lock history and keep updating the *current* |
| HistoryItem, instead of creating a new HistoryItem. |
| - After a process swap, when we re-construct the WebFrameProxy for the main frame in the new |
| process, we now set the frame's URL in the UIProcess to the URL it had before we swapped. |
| Clients such as Safari, rely on the main frame's URL being the expected value (the last |
| committed load URL) until the next load is committed when receiving didPerformRedirect |
| calls. Because we are destroying the main frame on process-swapping, we were losing the |
| last committed URL and Safari would hit assertions. |
| |
| With this model, the willPerformClientRedirect IPC is still sent from the previous WebProcess |
| and the didPerformClientRedirect IPC is now sent by the new WebProcess. No change should be |
| observable from the client's point of view. |
| |
| * loader/FrameLoadRequest.h: |
| (WebCore::FrameLoadRequest::setLockHistory): |
| (WebCore::FrameLoadRequest::setlockBackForwardList): |
| (WebCore::FrameLoadRequest::clientRedirectSourceForHistory const): |
| (WebCore::FrameLoadRequest::setClientRedirectSourceForHistory): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadURL): |
| (WebCore::FrameLoader::load): |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): |
| * loader/HistoryController.h: |
| * loader/NavigationAction.h: |
| (WebCore::NavigationAction::lockHistory const): |
| (WebCore::NavigationAction::setLockHistory): |
| (WebCore::NavigationAction::lockBackForwardList const): |
| (WebCore::NavigationAction::setLockBackForwardList): |
| |
| 2018-10-23 Jer Noble <jer.noble@apple.com> |
| |
| Use WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoundationObjC |
| https://bugs.webkit.org/show_bug.cgi?id=190790 |
| |
| Reviewed by Alex Christensen. |
| |
| Move towards using WeakPtr callbacks instead of raw pointers within the utility objects used by |
| MediaPlayerPrivateAVFoundationObjC. Additionally, accessing WeakPtr off the thread which created |
| the pointer is not allowed, so use a GenericTaskQueue to schedule callbacks instead. Make |
| GenericTaskQueue<Timer> thread-safe by locking around access to m_pendingTasks, and by making |
| incrementing the pending task count atomic. |
| |
| * platform/GenericTaskQueue.cpp: |
| (WebCore::TaskDispatcher<Timer>::postTask): |
| (WebCore::TaskDispatcher<Timer>::sharedLock): |
| (WebCore::TaskDispatcher<Timer>::sharedTimerFired): |
| (WebCore::TaskDispatcher<Timer>::dispatchOneTask): |
| (WebCore::TaskDispatcher<Timer>::pendingDispatchers): |
| * platform/GenericTaskQueue.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): |
| (-[WebCoreAVFMovieObserver initWithPlayer:]): |
| (-[WebCoreAVFMovieObserver disconnect]): |
| (-[WebCoreAVFMovieObserver metadataLoaded]): |
| (-[WebCoreAVFMovieObserver didEnd:]): |
| (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): |
| (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): |
| (-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]): |
| (-[WebCoreAVFLoaderDelegate initWithPlayer:]): |
| (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): |
| (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]): |
| (-[WebCoreAVFPullDelegate initWithPlayer:]): |
| (-[WebCoreAVFPullDelegate outputMediaDataWillChange:]): |
| (-[WebCoreAVFMovieObserver initWithCallback:]): Deleted. |
| (-[WebCoreAVFLoaderDelegate initWithCallback:]): Deleted. |
| (-[WebCoreAVFLoaderDelegate setCallback:]): Deleted. |
| (-[WebCoreAVFPullDelegate initWithCallback:]): Deleted. |
| (-[WebCoreAVFPullDelegate setCallback:]): Deleted. |
| |
| 2018-10-22 Justin Michaud <justin_michaud@apple.com> |
| |
| Registered custom properties should support syntax parameter for <length> and * |
| https://bugs.webkit.org/show_bug.cgi?id=190039 |
| |
| Reviewed by Antti Koivisto. |
| |
| Refactor code so that: |
| - All properties applied in StyleResolver::applyMatchedProperties are only applied once. |
| - Custom properties are only resolved once, in StyleResolver, when they are applied to the RenderStyle. They were previously resolved |
| every time they were referenced, and again in RenderStyle. |
| - The font-size property is applied after its variable references, but before custom properties that depend on it. |
| - Cycles are detected at the same time as resolution. |
| - MutableStyleProperties' custom properties cannot be set from Javascript or WebKitLegacy if they do not parse for the property's type. |
| If they contain var(--...) references, however, then they can be set because we cannot check if the references are valid from setProperty. |
| This behaviour matches chrome, but is not documented in the spec. |
| - Custom property values have more explicit resolved/unresolved state. |
| - RenderStyle only ever holds resolved custom properties, and StyleResolver::CascadedProperties only holds unresolved properties. |
| |
| Tests: css-custom-properties-api/crash.html |
| css-custom-properties-api/cycles.html |
| css-custom-properties-api/inline.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::customPropertyValue): |
| * css/CSSCustomPropertyValue.cpp: |
| (WebCore::CSSCustomPropertyValue::equals const): |
| (WebCore::CSSCustomPropertyValue::customCSSText const): |
| (WebCore::CSSCustomPropertyValue::tokens const): |
| (WebCore::CSSCustomPropertyValue::checkVariablesForCycles const): Deleted. |
| (WebCore::CSSCustomPropertyValue::resolveVariableReferences const): Deleted. |
| (WebCore::CSSCustomPropertyValue::setResolvedTypedValue): Deleted. |
| * css/CSSCustomPropertyValue.h: |
| * css/CSSRegisteredCustomProperty.cpp: |
| (WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty): |
| * css/CSSRegisteredCustomProperty.h: |
| * css/CSSStyleSheet.h: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::CSSVariableData): |
| (WebCore::CSSVariableData::consumeAndUpdateTokens): Deleted. |
| (WebCore::CSSVariableData::checkVariablesForCycles const): Deleted. |
| (WebCore::CSSVariableData::checkVariablesForCyclesWithRange const): Deleted. |
| (WebCore::CSSVariableData::resolveVariableFallback const): Deleted. |
| (WebCore::CSSVariableData::resolveVariableReference const): Deleted. |
| (WebCore::CSSVariableData::resolveVariableReferences const): Deleted. |
| (WebCore::CSSVariableData::resolveTokenRange const): Deleted. |
| * css/CSSVariableData.h: |
| (WebCore::CSSVariableData::create): |
| (WebCore::CSSVariableData::createResolved): Deleted. |
| (WebCore::CSSVariableData::needsVariableResolution const): Deleted. |
| (WebCore::CSSVariableData::CSSVariableData): Deleted. |
| * css/CSSVariableReferenceValue.cpp: |
| (WebCore::resolveVariableFallback): |
| (WebCore::resolveVariableReference): |
| (WebCore::resolveTokenRange): |
| (WebCore::CSSVariableReferenceValue::resolveVariableReferences const): |
| (WebCore::CSSVariableReferenceValue::checkVariablesForCycles const): Deleted. |
| * css/CSSVariableReferenceValue.h: |
| (WebCore::CSSVariableReferenceValue::create): |
| (WebCore::CSSVariableReferenceValue::equals const): |
| (WebCore::CSSVariableReferenceValue::variableDataValue const): Deleted. |
| * css/DOMCSSRegisterCustomProperty.cpp: |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| * css/PropertySetCSSStyleDeclaration.cpp: |
| (WebCore::PropertySetCSSStyleDeclaration::setProperty): |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyInitialCustomProperty): |
| (WebCore::StyleBuilderCustom::applyValueCustomProperty): |
| * css/StyleProperties.cpp: |
| (WebCore::MutableStyleProperties::setCustomProperty): |
| * css/StyleProperties.h: |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::State::setStyle): |
| (WebCore::StyleResolver::styleForKeyframe): |
| (WebCore::StyleResolver::styleForPage): |
| (WebCore::StyleResolver::applyMatchedProperties): |
| (WebCore::StyleResolver::applyPropertyToCurrentStyle): |
| (WebCore::StyleResolver::applyProperty): |
| (WebCore::StyleResolver::resolvedVariableValue const): |
| (WebCore::StyleResolver::CascadedProperties::applyDeferredProperties): |
| (WebCore::StyleResolver::CascadedProperties::Property::apply): |
| (WebCore::StyleResolver::applyCascadedCustomProperty): |
| (WebCore::StyleResolver::applyCascadedProperties): |
| * css/StyleResolver.h: |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseValueWithVariableReferences): |
| * css/parser/CSSParser.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::CSSPropertyParser): |
| (WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue): |
| (WebCore::CSSPropertyParser::parseTypedCustomPropertyValue): |
| (WebCore::CSSPropertyParser::collectParsedCustomPropertyValueDependencies): |
| (WebCore::CSSPropertyParser::parseValueStart): |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| * css/parser/CSSPropertyParser.h: |
| * css/parser/CSSVariableParser.cpp: |
| (WebCore::CSSVariableParser::parseDeclarationValue): |
| * dom/ConstantPropertyMap.cpp: |
| (WebCore::ConstantPropertyMap::setValueForProperty): |
| (WebCore::variableDataForPositivePixelLength): |
| (WebCore::variableDataForPositiveDuration): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::checkVariablesInCustomProperties): Deleted. |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::setInheritedCustomPropertyValue): |
| (WebCore::RenderStyle::setNonInheritedCustomPropertyValue): |
| * rendering/style/StyleCustomPropertyData.h: |
| (WebCore::StyleCustomPropertyData::operator== const): |
| (WebCore::StyleCustomPropertyData::setCustomPropertyValue): |
| (WebCore::StyleCustomPropertyData::StyleCustomPropertyData): |
| (): Deleted. |
| |
| 2018-10-22 Justin Michaud <justin_michaud@apple.com> |
| |
| CSS Paint API should give a 2d rendering context |
| https://bugs.webkit.org/show_bug.cgi?id=190762 |
| |
| Reviewed by Dean Jackson. |
| |
| Add a new type of canvas and 2d rendering context to support the CSS Painting API. |
| Make many of the methods from HTMLCanvasElement virtual functions on CanvasBase, and |
| remove many of the downcasts in CanvasRenderingContext2DBase as a result. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSPaintRenderingContext2DCustom.cpp: Copied from Source/WebCore/css/CSSPaintCallback.h. |
| (WebCore::root): |
| (WebCore::JSPaintRenderingContext2DOwner::isReachableFromOpaqueRoots): |
| (WebCore::JSPaintRenderingContext2D::visitAdditionalChildren): |
| * bindings/js/WebCoreBuiltinNames.h: |
| * css/CSSPaintCallback.h: |
| * css/CSSPaintCallback.idl: |
| * html/CanvasBase.cpp: |
| (WebCore::CanvasBase::~CanvasBase): |
| * html/CanvasBase.h: |
| (WebCore::CanvasBase::isCustomPaintCanvas const): |
| * html/CustomPaintCanvas.cpp: Added. |
| (WebCore::CustomPaintCanvas::create): |
| (WebCore::CustomPaintCanvas::CustomPaintCanvas): |
| (WebCore::CustomPaintCanvas::~CustomPaintCanvas): |
| (WebCore::CustomPaintCanvas::width const): |
| (WebCore::CustomPaintCanvas::setWidth): |
| (WebCore::CustomPaintCanvas::height const): |
| (WebCore::CustomPaintCanvas::setHeight): |
| (WebCore::CustomPaintCanvas::size const): |
| (WebCore::CustomPaintCanvas::setSize): |
| (WebCore::CustomPaintCanvas::getContext): |
| (WebCore::CustomPaintCanvas::copiedImage const): |
| (WebCore::CustomPaintCanvas::drawingContext const): |
| (WebCore::CustomPaintCanvas::existingDrawingContext const): |
| (WebCore::CustomPaintCanvas::makeRenderingResultsAvailable): |
| * html/CustomPaintCanvas.h: Copied from Source/WebCore/html/OffscreenCanvas.h. |
| * html/HTMLCanvasElement.h: |
| * html/OffscreenCanvas.h: |
| * html/canvas/CanvasRenderingContext.cpp: |
| (WebCore::CanvasRenderingContext::wouldTaintOrigin): |
| * html/canvas/CanvasRenderingContext.h: |
| (WebCore::CanvasRenderingContext::isPaint const): |
| * html/canvas/CanvasRenderingContext2DBase.cpp: |
| (WebCore::DisplayListDrawingContext::DisplayListDrawingContext): |
| (WebCore::CanvasRenderingContext2DBase::unwindStateStack): |
| (WebCore::CanvasRenderingContext2DBase::isAccelerated const): |
| (WebCore::CanvasRenderingContext2DBase::setStrokeStyle): |
| (WebCore::CanvasRenderingContext2DBase::setFillStyle): |
| (WebCore::CanvasRenderingContext2DBase::resetTransform): |
| (WebCore::CanvasRenderingContext2DBase::clearCanvas): |
| (WebCore::CanvasRenderingContext2DBase::transformAreaToDevice const): |
| (WebCore::CanvasRenderingContext2DBase::rectContainsCanvas const): |
| (WebCore::CanvasRenderingContext2DBase::calculateCompositingBufferRect): |
| (WebCore::CanvasRenderingContext2DBase::compositeBuffer): |
| (WebCore::CanvasRenderingContext2DBase::createPattern): |
| (WebCore::CanvasRenderingContext2DBase::didDrawEntireCanvas): |
| (WebCore::CanvasRenderingContext2DBase::didDraw): |
| (WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas): |
| (WebCore::CanvasRenderingContext2DBase::drawingContext const): |
| * html/canvas/CanvasRenderingContext2DBase.h: |
| * html/canvas/PaintRenderingContext2D.cpp: Copied from Source/WebCore/css/CSSPaintCallback.h. |
| (WebCore::PaintRenderingContext2D::create): |
| (WebCore::PaintRenderingContext2D::PaintRenderingContext2D): |
| * html/canvas/PaintRenderingContext2D.h: Copied from Source/WebCore/css/CSSPaintCallback.h. |
| * html/canvas/PaintRenderingContext2D.idl: Copied from Source/WebCore/css/CSSPaintCallback.idl. |
| * html/canvas/WebMetalRenderPassAttachmentDescriptor.h: |
| * platform/graphics/CustomPaintImage.cpp: |
| (WebCore::CustomPaintImage::doCustomPaint): |
| |
| 2018-10-22 Keith Rollin <krollin@apple.com> |
| |
| Use Location = "Relative to Build Products" rather than "Relative to Group" |
| https://bugs.webkit.org/show_bug.cgi?id=190781 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Almost all Derived Files are included in Xcode projects with the |
| Location attribute set to "Relative to Group". While this currently |
| works, the Derived Files can no longer be found when enabling XCBuild |
| (which has stricter requirements). Fix this by setting the Location |
| attribute to "Relative to Build Products". |
| |
| No new tests -- no changed functionality. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2018-10-22 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add justify text-align support. |
| https://bugs.webkit.org/show_bug.cgi?id=190779 |
| |
| Reviewed by Antti Koivisto. |
| |
| Collect expansion opportunities and adjust runs accordingly. |
| |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| * layout/inlineformatting/InlineRun.h: |
| (WebCore::Layout::InlineRun::expansionOpportunity): |
| (WebCore::Layout::InlineRun::TextContext::setStart): |
| (WebCore::Layout::InlineRun::TextContext::setLength): |
| (WebCore::Layout::InlineRun::setTextContext): |
| (WebCore::Layout::InlineRun::createRun): Deleted. |
| (WebCore::Layout::InlineRun::createTextRun): Deleted. |
| * layout/inlineformatting/Line.cpp: |
| (WebCore::Layout::InlineFormattingContext::Line::Line): |
| (WebCore::Layout::InlineFormattingContext::Line::init): |
| (WebCore::Layout::InlineFormattingContext::Line::computeExpansionOpportunities): |
| (WebCore::Layout::InlineFormattingContext::Line::appendContent): |
| (WebCore::Layout::InlineFormattingContext::Line::justifyRuns): |
| (WebCore::Layout::InlineFormattingContext::Line::close): |
| (WebCore::Layout::isNonCollapsedText): Deleted. |
| |
| 2018-10-22 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add (right, center)text-align support. |
| https://bugs.webkit.org/show_bug.cgi?id=190745 |
| |
| Reviewed by Antti Koivisto. |
| |
| Adjust the logical left of each run while closing the line. |
| |
| * layout/Verification.cpp: |
| (WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded): |
| (WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded): |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::trimLeadingRun): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| (WebCore::Layout::InlineFormattingContext::Line::hasContent const): |
| (WebCore::Layout::InlineFormattingContext::Line::contentLogicalLeft const): Deleted. |
| * layout/inlineformatting/InlineLineBreaker.cpp: |
| (WebCore::Layout::InlineLineBreaker::nextRun): |
| (WebCore::Layout::InlineLineBreaker::splitRun): |
| * layout/inlineformatting/InlineLineBreaker.h: |
| * layout/inlineformatting/InlineRun.h: |
| (WebCore::Layout::InlineRun::setLogicalLeft): |
| (WebCore::Layout::InlineRun::TextContext::start const): |
| (WebCore::Layout::InlineRun::createRun): |
| (WebCore::Layout::InlineRun::createTextRun): |
| (WebCore::Layout::InlineRun::InlineRun): |
| (WebCore::Layout::InlineRun::TextContext::TextContext): |
| (WebCore::Layout::InlineRun::TextContext::position const): Deleted. |
| * layout/inlineformatting/Line.cpp: |
| (WebCore::Layout::InlineFormattingContext::Line::Line): |
| (WebCore::Layout::InlineFormattingContext::Line::init): |
| (WebCore::Layout::adjustedLineLogicalLeft): |
| (WebCore::Layout::InlineFormattingContext::Line::contentLogicalRight): |
| (WebCore::Layout::InlineFormattingContext::Line::appendContent): |
| (WebCore::Layout::InlineFormattingContext::Line::close): |
| (WebCore::Layout::InlineFormattingContext::Line::setConstraints): Deleted. |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::outputInlineRuns): |
| |
| 2018-10-22 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Implement Replaced helper class. |
| https://bugs.webkit.org/show_bug.cgi?id=190719 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/layouttree/LayoutBox.cpp: |
| (WebCore::Layout::Box::Box): |
| * layout/layouttree/LayoutBox.h: |
| (WebCore::Layout::Box::replaced const): |
| * layout/layouttree/LayoutReplaced.cpp: |
| (WebCore::Layout::Replaced::Replaced): |
| (WebCore::Layout::Replaced::hasIntrinsicWidth const): |
| (WebCore::Layout::Replaced::hasIntrinsicHeight const): |
| (WebCore::Layout::Replaced::hasIntrinsicRatio const): |
| (WebCore::Layout::Replaced::intrinsicWidth const): |
| (WebCore::Layout::Replaced::intrinsicHeight const): |
| (WebCore::Layout::Replaced::intrinsicRatio const): |
| * layout/layouttree/LayoutReplaced.h: |
| (WebCore::Layout::Replaced::hasIntrinsicWidth const): Deleted. |
| (WebCore::Layout::Replaced::hasIntrinsicHeight const): Deleted. |
| (WebCore::Layout::Replaced::hasIntrinsicRatio const): Deleted. |
| (WebCore::Layout::Replaced::intrinsicWidth const): Deleted. |
| (WebCore::Layout::Replaced::intrinsicHeight const): Deleted. |
| (WebCore::Layout::Replaced::intrinsicRatio const): Deleted. |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::TreeBuilder::createSubTree): |
| |
| 2018-10-22 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Block formatting context roots avoid floats. |
| https://bugs.webkit.org/show_bug.cgi?id=190723 |
| |
| Reviewed by Antti Koivisto. |
| |
| Inline formatting context roots don't avoid floats (unless they also establish block formatting context). |
| |
| * layout/blockformatting/BlockFormattingContext.cpp: |
| (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): |
| |
| 2018-10-20 YUHAN WU <yuhan_wu@apple.com> |
| |
| MediaRecorder should fire a stop event when all tracks are ended |
| https://bugs.webkit.org/show_bug.cgi?id=190642 |
| |
| Reviewed by Youenn Fablet. |
| |
| This patch only implements to fire the stop event when all tracks are ended. |
| We will need to fire a dataavailable event when all tracks are ended. |
| |
| Test: imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html |
| |
| * Modules/mediarecorder/MediaRecorder.cpp: |
| (WebCore::MediaRecorder::MediaRecorder): |
| (WebCore::MediaRecorder::~MediaRecorder): |
| (WebCore::MediaRecorder::trackEnded): |
| * Modules/mediarecorder/MediaRecorder.h: |
| * Modules/mediarecorder/MediaRecorder.idl: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/EventNames.h: |
| |
| 2018-10-19 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] Search terms are not saved for <input type="search"> |
| https://bugs.webkit.org/show_bug.cgi?id=188174 |
| |
| Reviewed by Fujii Hironori. |
| |
| No new tests, should be covered by existing tests of search |
| inputs. |
| |
| Add support for saving the search terms for <input |
| type="search"> to a SQLite database, replacing the |
| CF-based implementation for Windows and adding support |
| for non-legacy WebKit. |
| |
| * PlatformWin.cmake: |
| * platform/win/SearchPopupMenuDB.cpp: Added. |
| (WebCore::SearchPopupMenuDB::singleton): |
| (WebCore::SearchPopupMenuDB::SearchPopupMenuDB): |
| (WebCore::SearchPopupMenuDB::~SearchPopupMenuDB): |
| (WebCore::SearchPopupMenuDB::saveRecentSearches): |
| (WebCore::SearchPopupMenuDB::loadRecentSearches): |
| (WebCore::SearchPopupMenuDB::checkDatabaseValidity): Use |
| quick_check pragma to test database status. |
| (WebCore::SearchPopupMenuDB::deleteAllDatabaseFiles): |
| (WebCore::SearchPopupMenuDB::openDatabase): |
| (WebCore::SearchPopupMenuDB::closeDatabase): |
| (WebCore::SearchPopupMenuDB::verifySchemaVersion): Check |
| schema version and update for schema changes. |
| (WebCore::SearchPopupMenuDB::checkSQLiteReturnCode): Check |
| for error codes that indicate database errors and remove and |
| recreate the database. |
| (WebCore::SearchPopupMenuDB::executeSimpleSql): |
| (WebCore::SearchPopupMenuDB::createPreparedStatement): |
| * platform/win/SearchPopupMenuDB.h: Added. |
| * platform/win/SearchPopupMenuWin.cpp: |
| (WebCore::SearchPopupMenuWin::enabled): Always enable support |
| for search term popup |
| (WebCore::SearchPopupMenuWin::saveRecentSearches): Switch from |
| CF implementation to SQLite database implementation |
| (WebCore::SearchPopupMenuWin::loadRecentSearches): Switch from |
| CF implementation to SQLite database implementation |
| (WebCore::autosaveKey): Deleted. |
| |
| 2018-10-19 Justin Fan <justin_fan@apple.com> |
| |
| [WebGPU] Add stubs for WebGPUSwapChain and WebGPURenderingContext |
| https://bugs.webkit.org/show_bug.cgi?id=190742 |
| |
| Reviewed by Dean Jackson. |
| |
| Test: updated webgpu-enabled.html to check for WebGPURenderingContext. |
| |
| Implement support for creating a "webgpu" context from an HTML canvas. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/webgpu/WebGPURenderingContext.cpp: Added. |
| (WebCore::WebGPURenderingContext::create): |
| (WebCore::WebGPURenderingContext::WebGPURenderingContext): |
| * Modules/webgpu/WebGPURenderingContext.h: Added. |
| * Modules/webgpu/WebGPURenderingContext.idl: Added. |
| * Modules/webgpu/WebGPUSwapChain.cpp: Added. |
| (WebCore::WebGPUSwapChain::configure): |
| (WebCore::WebGPUSwapChain::present): |
| (WebCore::WebGPUSwapChain::reshape): |
| (WebCore::WebGPUSwapChain::markLayerComposited): |
| * Modules/webgpu/WebGPUSwapChain.h: Added. |
| (WebCore::WebGPUSwapChain::WebGPUSwapChain): |
| * Modules/webgpu/WebGPUSwapChain.idl: Added. |
| * Modules/webgpu/WebGPUSwapChainDescriptor.h: Added. |
| * Modules/webgpu/WebGPUSwapChainDescriptor.idl: Added. |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * dom/Document.cpp: |
| (WebCore::Document::getCSSCanvasContext): |
| * dom/Document.h: |
| * dom/Document.idl: |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::getContext): |
| (WebCore::HTMLCanvasElement::isWebGPUType): |
| (WebCore::HTMLCanvasElement::createContextWebGPU): |
| (WebCore::HTMLCanvasElement::getContextWebGPU): |
| * html/HTMLCanvasElement.h: |
| * html/HTMLCanvasElement.idl: |
| * html/canvas/CanvasRenderingContext.h: |
| (WebCore::CanvasRenderingContext::isWebGPU const): |
| |
| 2018-10-19 John Wilander <wilander@apple.com> |
| |
| Only cap lifetime of persistent cookies created client-side through document.cookie when resource load statistics is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=190687 |
| <rdar://problem/45349024> |
| |
| Reviewed by Alex Christensen. |
| |
| Test: http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html |
| |
| NetworkStorageSession::setCookiesFromDOM() now consults the new |
| m_shouldCapLifetimeForClientSideCookies member variable before |
| capping the lifetime of cookies. |
| |
| * loader/ResourceLoadStatistics.cpp: |
| (WebCore::ResourceLoadStatistics::toString const): |
| (WebCore::ResourceLoadStatistics::merge): |
| Removal of the isMarkedForCookieBlocking member. |
| * loader/ResourceLoadStatistics.h: |
| Removal of the isMarkedForCookieBlocking member. |
| * platform/network/NetworkStorageSession.h: |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::NetworkStorageSession::setShouldCapLifetimeForClientSideCookies): |
| (WebCore::NetworkStorageSession::setPrevalentDomainsToBlockCookiesFor): |
| No longer takes the boolean clearFirst parameter and now always clears first. |
| * platform/network/cocoa/NetworkStorageSessionCocoa.mm: |
| (WebCore::filterCookies): |
| (WebCore::NetworkStorageSession::setCookiesFromDOM const): |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] RenderReplaced renderer should create InlineBox |
| https://bugs.webkit.org/show_bug.cgi?id=190720 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::TreeBuilder::createSubTree): |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Inline replaced width should default to 300px only if width is auto. |
| https://bugs.webkit.org/show_bug.cgi?id=190722 |
| |
| Reviewed by Antti Koivisto. |
| |
| See #5 |
| |
| // 5. Otherwise, if 'width' has a computed value of 'auto', but none of the conditions above are met, then the used value of 'width' becomes 300px. |
| |
| * layout/FormattingContextGeometry.cpp: |
| (WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin): |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add inline runs to showLayoutTree |
| https://bugs.webkit.org/show_bug.cgi?id=190718 |
| |
| Reviewed by Antti Koivisto. |
| |
| * layout/layouttree/LayoutTreeBuilder.cpp: |
| (WebCore::Layout::outputInlineRuns): |
| (WebCore::Layout::outputLayoutBox): |
| (WebCore::Layout::outputLayoutTree): |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Remove the previous version of inline content handling. |
| https://bugs.webkit.org/show_bug.cgi?id=190716 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * layout/Verification.cpp: |
| (WebCore::Layout::areEssentiallyEqual): |
| (WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded): |
| (WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded): |
| * layout/inlineformatting/InlineFormattingState.h: |
| (WebCore::Layout::InlineFormattingState::inlineContent): |
| (WebCore::Layout::InlineFormattingState::addLayoutRuns): Deleted. |
| (WebCore::Layout::InlineFormattingState::layoutRuns const): Deleted. |
| * layout/inlineformatting/text/TextUtil.cpp: Renamed from Source/WebCore/layout/inlineformatting/textlayout/TextUtil.cpp. |
| (WebCore::Layout::TextUtil::TextUtil): |
| (WebCore::Layout::TextUtil::width const): |
| (WebCore::Layout::TextUtil::hyphenPositionBefore const): |
| (WebCore::Layout::TextUtil::textWidth const): |
| (WebCore::Layout::TextUtil::fixedPitchWidth const): |
| * layout/inlineformatting/text/TextUtil.h: Renamed from Source/WebCore/layout/inlineformatting/textlayout/TextUtil.h. |
| * layout/inlineformatting/textlayout/Runs.h: Removed. |
| * layout/inlineformatting/textlayout/TextContentProvider.cpp: Removed. |
| * layout/inlineformatting/textlayout/TextContentProvider.h: Removed. |
| * layout/inlineformatting/textlayout/simple/SimpleLineBreaker.cpp: Removed. |
| * layout/inlineformatting/textlayout/simple/SimpleLineBreaker.h: Removed. |
| * layout/inlineformatting/textlayout/simple/SimpleTextRunGenerator.cpp: Removed. |
| * layout/inlineformatting/textlayout/simple/SimpleTextRunGenerator.h: Removed. |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add generic inline content handling. |
| https://bugs.webkit.org/show_bug.cgi?id=190713 |
| |
| Reviewed by Antti Koivisto. |
| |
| layoutInlineContent turns InlineLineBreaker::Run objects into final inline runs by |
| resolving heading/trailing whitespace, aligment, expansion opportunities etc. |
| These inline runs are input to the display tree construction. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * layout/displaytree/DisplayBox.h: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layout const): |
| (WebCore::Layout::trimLeadingRun): |
| (WebCore::Layout::InlineFormattingContext::layoutInlineContent const): |
| (WebCore::Layout::InlineFormattingContext::computeWidthAndHeight const): |
| * layout/inlineformatting/InlineFormattingContext.h: |
| (WebCore::Layout::InlineFormattingContext::Line::hasContent const): |
| (WebCore::Layout::InlineFormattingContext::Line::contentLogicalLeft const): |
| (WebCore::Layout::InlineFormattingContext::Line::availableWidth const): |
| * layout/inlineformatting/InlineFormattingState.h: |
| (WebCore::Layout::InlineFormattingState::inlineRuns): |
| (WebCore::Layout::InlineFormattingState::appendInlineRun): |
| * layout/inlineformatting/InlineLineBreaker.cpp: |
| (WebCore::Layout::InlineLineBreaker::nextRun): |
| (WebCore::Layout::InlineLineBreaker::nextLayoutRun): Deleted. |
| * layout/inlineformatting/InlineLineBreaker.h: |
| * layout/inlineformatting/InlineRun.h: Added. |
| (WebCore::Layout::InlineRun::logicalLeft const): |
| (WebCore::Layout::InlineRun::logicalRight const): |
| (WebCore::Layout::InlineRun::width const): |
| (WebCore::Layout::InlineRun::setWidth): |
| (WebCore::Layout::InlineRun::setLogicalRight): |
| (WebCore::Layout::InlineRun::TextContext::position const): |
| (WebCore::Layout::InlineRun::TextContext::length const): |
| (WebCore::Layout::InlineRun::TextContext::setLength): |
| (WebCore::Layout::InlineRun::textContext): |
| (WebCore::Layout::InlineRun::inlineItem const): |
| (WebCore::Layout::InlineRun::InlineRun): |
| (WebCore::Layout::InlineRun::TextContext::TextContext): |
| * layout/inlineformatting/Line.cpp: Added. |
| (WebCore::Layout::InlineFormattingContext::Line::Line): |
| (WebCore::Layout::InlineFormattingContext::Line::setConstraints): |
| (WebCore::Layout::isNonCollapsedText): |
| (WebCore::Layout::isTrimmableContent): |
| (WebCore::Layout::InlineFormattingContext::Line::appendContent): |
| (WebCore::Layout::InlineFormattingContext::Line::close): |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add generic inline line breaker |
| https://bugs.webkit.org/show_bug.cgi?id=190698 |
| |
| Reviewed by Antti Koivisto. |
| |
| InlineLineBreaker takes the inline runs and applies the appropriate line breaking rules on them. |
| InlineRunProvider::Run objects -> |
| |
| <foobar><image box><hello>< ><world> |
| |
| InlineLineBreaker::Run -> |
| |
| <foobar><image box><hello world> |
| |
| InlineLineBreaker::Run also contains information whether the run is at the beginning or at the end of the line. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * layout/LayoutContext.h: |
| (WebCore::Layout::LayoutContext::hasDisplayBox const): |
| * layout/inlineformatting/InlineLineBreaker.cpp: Added. |
| (WebCore::Layout::InlineLineBreaker::InlineLineBreaker): |
| (WebCore::Layout::InlineLineBreaker::nextLayoutRun): |
| (WebCore::Layout::InlineLineBreaker::isAtContentEnd const): |
| (WebCore::Layout::InlineLineBreaker::lineBreakingBehavior): |
| (WebCore::Layout::InlineLineBreaker::runWidth const): |
| (WebCore::Layout::InlineLineBreaker::splitRun): |
| (WebCore::Layout::InlineLineBreaker::adjustSplitPositionWithHyphenation const): |
| * layout/inlineformatting/InlineLineBreaker.h: Added. |
| * layout/inlineformatting/textlayout/TextUtil.cpp: Added. |
| (WebCore::Layout::TextUtil::TextUtil): |
| (WebCore::Layout::TextUtil::width const): |
| (WebCore::Layout::TextUtil::hyphenPositionBefore const): |
| (WebCore::Layout::TextUtil::textWidth const): |
| (WebCore::Layout::TextUtil::fixedPitchWidth const): |
| * layout/inlineformatting/textlayout/TextUtil.h: Added. |
| * layout/layouttree/LayoutBox.cpp: |
| |
| 2018-10-19 Zalan Bujtas <zalan@apple.com> |
| |
| [LFC][IFC] Add generic inline run generator. |
| https://bugs.webkit.org/show_bug.cgi?id=190696 |
| |
| Reviewed by Antti Koivisto. |
| |
| InlineRunProvider turns the following inline content -> |
| |
| <span>foo<span>bar</span></span> |
| <img src="broken.jpg"><span>hello world</span> |
| |
| into a set of runs -> |
| |
| <foobar><image box><hello>< ><world> |
| |
| Note that a text run can overlap multiple inline elements. InlineRunProvider::Run only stores a reference to |
| the first inline element (continuous content can be accessed by iterating through the InlineContent ListHashSet). |
| These runs are the input to the line breaking algoritm. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * layout/inlineformatting/InlineFormattingContext.cpp: |
| (WebCore::Layout::InlineFormattingContext::layout const): |
| * layout/inlineformatting/InlineFormattingState.h: |
| (WebCore::Layout::InlineFormattingState::inlineContent): |
| * layout/inlineformatting/InlineItem.h: Added. |
| (WebCore::Layout::InlineItem::layoutBox const): |
| (WebCore::Layout::InlineItem::style const): |
| (WebCore::Layout::InlineItemHashFunctions::hash): |
| (WebCore::Layout::InlineItemHashFunctions::equal): |
| (WebCore::Layout::InlineItemHashTranslator::hash): |
| (WebCore::Layout::InlineItemHashTranslator::equal): |
| (WebCore::Layout::InlineItem::InlineItem): |
| (WebCore::Layout::InlineItem::type const): |
| (WebCore::Layout::InlineItem::textContent const): |
| * layout/inlineformatting/InlineRunProvider.cpp: Added. |
| (WebCore::Layout::InlineRunProvider::InlineRunProvider): |
| (WebCore::Layout::InlineRunProvider::append): |
| (WebCore::Layout::InlineRunProvider::insertBefore): |
| (WebCore::Layout::InlineRunProvider::remove): |
| (WebCore::Layout::isWhitespace): |
| (WebCore::Layout::isSoftLineBreak): |
| (WebCore::Layout::InlineRunProvider::isContinousContent): |
| (WebCore::Layout::InlineRunProvider::processInlineTextItem): |
| (WebCore::Layout::InlineRunProvider::moveToNextNonWhitespacePosition): |
| (WebCore::Layout::InlineRunProvider::moveToNextBreakablePosition): |
| * layout/inlineformatting/InlineRunProvider.h: Added. |
| (WebCore::Layout::InlineRunProvider::Run::type const): |
| (WebCore::Layout::InlineRunProvider::Run::isText const): |
| (WebCore::Layout::InlineRunProvider::Run::isWhitespace const): |
| (WebCore::Layout::InlineRunProvider::Run::isNonWhitespace const): |
| (WebCore::Layout::InlineRunProvider::Run::isLineBreak const): |
| (WebCore::Layout::InlineRunProvider::Run::isBox const): |
| (WebCore::Layout::InlineRunProvider::Run::isFloat const): |
| (WebCore::Layout::InlineRunProvider::Run::TextContext::start const): |
| (WebCore::Layout::InlineRunProvider::Run::TextContext::length const): |
| (WebCore::Layout::InlineRunProvider::Run::TextContext::isCollapsed const): |
| (WebCore::Layout::InlineRunProvider::Run::TextContext::setStart): |
| (WebCore::Layout::InlineRunProvider::Run::TextContext::setLength): |
| (WebCore::Layout::InlineRunProvider::Run::textContext const): |
| (WebCore::Layout::InlineRunProvider::Run::style const): |
| (WebCore::Layout::InlineRunProvider::Run::inlineItem const): |
| (WebCore::Layout::InlineRunProvider::runs const): |
| (WebCore::Layout::InlineRunProvider::Run::createBoxRun): |
| (WebCore::Layout::InlineRunProvider::Run::createFloatRun): |
| (WebCore::Layout::InlineRunProvider::Run::createSoftLineBreakRun): |
| (WebCore::Layout::InlineRunProvider::Run::createHardLineBreakRun): |
| (WebCore::Layout::InlineRunProvider::Run::createWhitespaceRun): |
| (WebCore::Layout::InlineRunProvider::Run::createNonWhitespaceRun): |
| (WebCore::Layout::InlineRunProvider::Run::Run): |
| (WebCore::Layout::InlineRunProvider::Run::TextContext::TextContext): |
| * layout/layouttree/LayoutBox.h: |
| (WebCore::Layout::Box::isLineBreakBox const): |
| * layout/layouttree/LayoutInlineBox.cpp: |
| (WebCore::Layout::InlineBox::InlineBox): |
| * layout/layouttree/LayoutInlineBox.h: |
| (WebCore::Layout::InlineBox::hasTextContent const): |
| (WebCore::Layout::InlineBox::textContent const): |
| * layout/layouttree/LayoutLineBreakBox.cpp: Copied from Source/WebCore/layout/layouttree/LayoutInlineBox.cpp. |
| (WebCore::Layout::LineBreakBox::LineBreakBox): |
| * layout/layouttree/LayoutLineBreakBox.h: Copied from Source/WebCore/layout/layouttree/LayoutInlineBox.cpp. |
| |
| 2018-10-19 Ali Juma <ajuma@chromium.org> |
| |
| [IntersectionObserver] Handle zero-area intersections |
| https://bugs.webkit.org/show_bug.cgi?id=189624 |
| |
| Reviewed by Simon Fraser. |
| |
| Use edge-inclusive intersection when applying clips and intersecting with the |
| root, so that two rects that touch each other are considered intersecting even |
| if the area of their intersection is 0. |
| |
| Covered by rebased tests in imported/w3c/web-platform-tests/intersection-observer. |
| |
| * dom/Document.cpp: |
| (WebCore::computeIntersectionState): |
| (WebCore::Document::updateIntersectionObservations): |
| (WebCore::computeIntersectionRects): Deleted. |
| |
| 2018-10-18 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow ports to optionally do screen capture in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=190728 |
| <rdar://problem/45376824> |
| |
| Reviewed by Jer Noble and Tim Horton. |
| |
| No new tests, covered by existing tests. |
| |
| * Sources.txt: Add RemoteVideoSample.cpp. |
| * WebCore.xcodeproj/project.pbxproj: Ditto. |
| |
| * platform/MediaSample.h: |
| (WebCore::MediaSample::videoPixelFormat const): |
| |
| * platform/graphics/RemoteVideoSample.cpp: Added. |
| (WebCore::RemoteVideoSample::~RemoteVideoSample): |
| (WebCore::RemoteVideoSample::create): |
| (WebCore::RemoteVideoSample::RemoteVideoSample): |
| (WebCore::RemoteVideoSample::surface): |
| * platform/graphics/RemoteVideoSample.h: Added. |
| (WebCore::RemoteVideoSample::time const): |
| (WebCore::RemoteVideoSample::videoFormat const): |
| (WebCore::RemoteVideoSample::size const): |
| (WebCore::RemoteVideoSample::encode const): |
| (WebCore::RemoteVideoSample::decode): |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: |
| * platform/graphics/cv/ImageTransferSessionVT.h: |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::remoteVideoSampleAvailable): Call observers. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::dispatchMediaSampleToObservers): Dispatch remote samples without |
| resizing, resize local samples if necessary. |
| * platform/mediastream/RealtimeVideoSource.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): Don't resize |
| samples, it will be done in the base class if necessary. |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::emitFrame): Don't resize samples when running in the UI |
| process, it will be done in the web process. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: Remove unneeded include. |
| |
| 2018-10-18 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [CG] Adopt CG SPI for non-even cornered rounded rects |
| https://bugs.webkit.org/show_bug.cgi?id=190155 |
| |
| Reviewed by Simon Fraser. |
| |
| Instead of creating bezier curves for the non-even corners of the rounded |
| rects, we should use the optimized SPI provided by CG. |
| |
| * platform/graphics/cg/PathCG.cpp: |
| (WebCore::Path::platformAddPathForRoundedRect): |
| |
| 2018-10-18 Justin Michaud <justin_michaud@apple.com> |
| |
| Add new image type for CSS painting API |
| https://bugs.webkit.org/show_bug.cgi?id=190697 |
| |
| Reviewed by Dean Jackson. |
| |
| Add a new image type for the CSS painting API, and hook it up so it can be drawn. |
| For now, it uses a WebGL rendering context from OfflineCanvas because that was |
| easy to hook up. The spec actually calls for a RenderingContext2D, which can be |
| handled in another patch. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * 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/CSSPaintCallback.h: |
| * css/CSSPaintCallback.idl: |
| * css/CSSPaintImageValue.cpp: |
| (WebCore::CSSPaintImageValue::image): |
| * css/CSSPaintImageValue.h: |
| * platform/graphics/CustomPaintImage.cpp: Added. |
| (WebCore::CustomPaintImage::CustomPaintImage): |
| (WebCore::CustomPaintImage::doCustomPaint): |
| (WebCore::CustomPaintImage::draw): |
| (WebCore::CustomPaintImage::drawPattern): |
| * platform/graphics/CustomPaintImage.h: Copied from Source/WebCore/css/CSSPaintCallback.h. |
| * platform/graphics/Image.h: |
| (WebCore::Image::isCustomPaintImage const): |
| * platform/graphics/ImageBuffer.h: |
| * platform/graphics/cairo/CairoOperations.cpp: |
| |
| 2018-10-18 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r237272. |
| |
| Broke on device iOS builds and Windows builds |
| |
| Reverted changeset: |
| |
| "[MediaStream] Allow ports to optionally do screen capture in |
| the UI process" |
| https://bugs.webkit.org/show_bug.cgi?id=190728 |
| https://trac.webkit.org/changeset/237272 |
| |
| 2018-10-18 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] timestampOffset can introduce floating-point rounding errors to incoming samples |
| https://bugs.webkit.org/show_bug.cgi?id=190590 |
| <rdar://problem/45275626> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-source/media-source-timestampoffset-rounding-error.html |
| |
| SourceBuffer.timestampOffset is a double property, which, when added to a MediaTime will |
| result in a double-backed MediaTime as PTS & DTS. This can introduce rounding errors when |
| these samples are appended as overlapping existing samples. Rather than converting a MediaTime |
| to double-backed when adding the timestampOffset, convert the offset to a multiple of the |
| sample's timeBase. |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::setTimestampOffset): |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| |
| 2018-10-18 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow ports to optionally do screen capture in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=190728 |
| <rdar://problem/45376824> |
| |
| Reviewed by Jer Noble and Tim Horton. |
| |
| No new tests, covered by existing tests. |
| |
| * Sources.txt: Add RemoteVideoSample.cpp. |
| * WebCore.xcodeproj/project.pbxproj: Ditto. |
| |
| * platform/MediaSample.h: |
| (WebCore::MediaSample::videoPixelFormat const): |
| |
| * platform/graphics/RemoteVideoSample.cpp: Added. |
| (WebCore::RemoteVideoSample::~RemoteVideoSample): |
| (WebCore::RemoteVideoSample::create): |
| (WebCore::RemoteVideoSample::RemoteVideoSample): |
| (WebCore::RemoteVideoSample::surface): |
| * platform/graphics/RemoteVideoSample.h: Added. |
| (WebCore::RemoteVideoSample::time const): |
| (WebCore::RemoteVideoSample::videoFormat const): |
| (WebCore::RemoteVideoSample::size const): |
| (WebCore::RemoteVideoSample::encode const): |
| (WebCore::RemoteVideoSample::decode): |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: |
| * platform/graphics/cv/ImageTransferSessionVT.h: |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::remoteVideoSampleAvailable): Call observers. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::dispatchMediaSampleToObservers): Dispatch remote samples without |
| resizing, resize local samples if necessary. |
| * platform/mediastream/RealtimeVideoSource.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): Don't resize |
| samples, it will be done in the base class if necessary. |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::emitFrame): Don't resize samples when running in the UI |
| process, it will be done in the web process. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: Remove unneeded include. |
| |
| 2018-10-18 Jer Noble <jer.noble@apple.com> |
| |
| Safari is not able to adapt between H264 streams with EditList and without EditList |
| https://bugs.webkit.org/show_bug.cgi?id=190638 |
| <rdar://problem/45342208> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/media-source/media-source-append-overlapping-dts.html |
| |
| The MSE frame replacement algorithm does not take decode timestamps into account; this can |
| lead to situations where the replacement algorithm may leave in place frames where the |
| presentationTimestamp is less than the replacement frame, but whose decodeTimestamp is |
| after the replacement frame. When re-enqueuing these frames, they may cause a decode error |
| if they break the group-of-pictures sequence of the replaced range. |
| |
| * Modules/mediasource/SampleMap.cpp: |
| (WebCore::DecodeOrderSampleMap::findSamplesBetweenDecodeKeys): |
| * Modules/mediasource/SampleMap.h: |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| |
| 2018-10-18 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] Region parameter and value should be separated by ':' |
| https://bugs.webkit.org/show_bug.cgi?id=190735 |
| |
| Reviewed by Eric Carlson. |
| |
| This is specified in https://w3c.github.io/webvtt/#region-settings. |
| |
| No new tests. Modified existing tests. |
| |
| * html/track/VTTRegion.cpp: |
| (WebCore::VTTRegion::setRegionSettings): |
| |
| 2018-10-18 Jer Noble <jer.noble@apple.com> |
| |
| Add support for MediaKeyEncryptionScheme |
| https://bugs.webkit.org/show_bug.cgi?id=190173 |
| |
| Reviewed by Eric Carlson. |
| |
| Added sub-tests to: media/encrypted-media/mock-navigator-requestMediaKeySystemAccess.html |
| |
| Add support for the MediaKeyEncryptionScheme extension to EME, as detailed here: |
| <https://github.com/WICG/encrypted-media-encryption-scheme/blob/master/explainer.md> |
| |
| As the strings "cenc" and "cbcs" are explicitly lower-case, add support to the bindings generator to keep |
| those strings as lower-case when converting from IDL. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/encryptedmedia/MediaKeyEncryptionScheme.h: |
| * Modules/encryptedmedia/MediaKeyEncryptionScheme.idl: |
| * Modules/encryptedmedia/MediaKeySystemMediaCapability.h: |
| * Modules/encryptedmedia/MediaKeySystemMediaCapability.idl: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/scripts/CodeGenerator.pm: |
| (WK_ucfirst): |
| * platform/encryptedmedia/CDMEncryptionScheme.h: Copied from Source/WebCore/testing/MockCDMFactory.idl. |
| * platform/encryptedmedia/CDMMediaCapability.h: |
| * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: |
| (WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const): |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::supportsMediaCapability): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::initializeWithConfiguration): |
| * testing/MockCDMFactory.cpp: |
| (WebCore::m_supportedEncryptionSchemes): |
| (WebCore::MockCDM::supportsConfiguration const): |
| * testing/MockCDMFactory.h: |
| (WebCore::MockCDMFactory::supportedEncryptionSchemes const): |
| (WebCore::MockCDMFactory::setSupportedEncryptionSchemes): |
| * testing/MockCDMFactory.idl: |
| |
| 2018-10-18 Alexey Proskuryakov <ap@apple.com> |
| |
| Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY) |
| https://bugs.webkit.org/show_bug.cgi?id=190729 |
| |
| Reviewed by Tim Horton. |
| |
| * DerivedSources.make: |
| * Modules/applepay/cocoa/PaymentContactCocoa.mm: |
| (WebCore::subLocality): |
| (WebCore::setSubLocality): |
| (WebCore::subAdministrativeArea): |
| (WebCore::setSubAdministrativeArea): |
| * Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.cpp: |
| * Modules/geolocation/Geolocation.cpp: |
| (WebCore::isRequestFromIBooks): |
| * Modules/geolocation/GeolocationPosition.h: |
| * Modules/geolocation/NavigatorGeolocation.cpp: |
| * Modules/geolocation/NavigatorGeolocation.h: |
| * Modules/geolocation/ios/GeolocationPositionIOS.mm: |
| * Modules/mediasession/WebMediaSessionManager.cpp: |
| * Modules/mediasession/WebMediaSessionManager.h: |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::filterDeviceList): |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| (WebCore::JSQuickTimePluginReplacement::timedMetaData const): |
| (WebCore::JSQuickTimePluginReplacement::accessLog const): |
| (WebCore::JSQuickTimePluginReplacement::errorLog const): |
| * Modules/speech/SpeechSynthesis.cpp: |
| (WebCore::SpeechSynthesis::SpeechSynthesis): |
| (WebCore::SpeechSynthesis::speak): |
| * Modules/speech/SpeechSynthesis.h: |
| * Modules/webaudio/AudioContext.cpp: |
| * Modules/webaudio/AudioScheduledSourceNode.cpp: |
| * Modules/webdatabase/Database.cpp: |
| (WebCore::Database::performOpenAndVerify): |
| * Modules/webdatabase/DatabaseContext.h: |
| * Modules/webdatabase/DatabaseManagerClient.h: |
| * Modules/webdatabase/DatabaseTracker.cpp: |
| (WebCore::DatabaseTracker::deleteDatabaseFile): |
| * Modules/webdatabase/DatabaseTracker.h: |
| * WebCorePrefix.h: |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::createFromRenderer): |
| * accessibility/AccessibilityMediaObject.cpp: |
| * accessibility/AccessibilityMediaObject.h: |
| * accessibility/AccessibilityMenuList.cpp: |
| (WebCore::AccessibilityMenuList::press): |
| (WebCore::AccessibilityMenuList::isCollapsed const): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex): |
| (WebCore::AccessibilityObject::press): |
| (WebCore::AccessibilityObject::actionVerb const): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/AccessibilityRenderObject.cpp: |
| (WebCore::AccessibilityRenderObject::stringValue const): |
| (WebCore::AccessibilityRenderObject::determineAccessibilityRole): |
| (WebCore::AccessibilityRenderObject::actionVerb const): |
| * accessibility/AccessibilityTableColumn.cpp: |
| (WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored const): |
| * accessibility/AccessibilityTableHeaderContainer.cpp: |
| (WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored const): |
| * accessibility/ios/AXObjectCacheIOS.mm: |
| * accessibility/ios/AccessibilityObjectIOS.mm: |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.h: |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| * bindings/js/CommonVM.cpp: |
| (WebCore::commonVMSlow): |
| * bindings/js/JSCallbackData.h: |
| (WebCore::JSCallbackData::~JSCallbackData): |
| * bindings/js/JSDOMWindowBase.cpp: |
| (WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout): |
| * bindings/js/ScriptController.cpp: |
| (WebCore::ScriptController::initializeThreading): |
| * bridge/objc/objc_class.mm: |
| (JSC::Bindings::ObjcClass::fieldNamed const): |
| * crypto/CommonCryptoUtilities.h: |
| * crypto/mac/CryptoKeyRSAMac.cpp: |
| * crypto/mac/SerializedCryptoKeyWrapMac.mm: |
| (WebCore::masterKeyAccountNameForCurrentApplication): |
| (WebCore::createAndStoreMasterKey): |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::valueForPropertyinStyle): |
| * css/CSSProperties.json: |
| * css/CSSStyleDeclaration.cpp: |
| * css/CSSValueKeywords.in: |
| * css/MediaQueryEvaluator.cpp: |
| (WebCore::prefersReducedMotionEvaluate): |
| * css/StyleBuilderConverter.h: |
| * css/html.css: |
| (video): |
| (input, textarea, keygen, select, button): |
| (#if defined(WTF_PLATFORM_IOS_FAMILY) && WTF_PLATFORM_IOS_FAMILY): |
| (#if defined(ENABLE_INPUT_TYPE_DATE) && ENABLE_INPUT_TYPE_DATE): |
| (#endif): |
| (#if defined(ENABLE_DATALIST_ELEMENT) && ENABLE_DATALIST_ELEMENT): |
| (textarea): |
| (input:matches([type="radio"], [type="checkbox"])): |
| (input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button): |
| (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): |
| (#if !(defined(WTF_PLATFORM_IOS_FAMILY) && WTF_PLATFORM_IOS_FAMILY)): |
| (input[type="checkbox"]): |
| (#endif // defined(ENABLE_INPUT_TYPE_COLOR) && ENABLE_INPUT_TYPE_COLOR): |
| (#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS): Deleted. |
| (#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)): Deleted. |
| * css/parser/CSSParserContext.cpp: |
| (WebCore::CSSParserContext::CSSParserContext): |
| * css/parser/CSSParserFastPaths.cpp: |
| (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): |
| (WebCore::CSSParserFastPaths::isKeywordPropertyID): |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::cssPropertyID): |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| * css/parser/CSSPropertyParser.h: |
| * css/svg.css: |
| (#if defined(WTF_PLATFORM_IOS_FAMILY) && WTF_PLATFORM_IOS_FAMILY): |
| (#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS): Deleted. |
| * dom/DeviceMotionController.cpp: |
| * dom/DeviceMotionController.h: |
| * dom/DeviceOrientationController.cpp: |
| (WebCore::DeviceOrientationController::DeviceOrientationController): |
| * dom/DeviceOrientationController.h: |
| * dom/DeviceOrientationData.cpp: |
| * dom/DeviceOrientationData.h: |
| * dom/DeviceOrientationEvent.cpp: |
| * dom/DeviceOrientationEvent.h: |
| * dom/DeviceOrientationEvent.idl: |
| * dom/Document.cpp: |
| (WebCore::Document::~Document): |
| (WebCore::Document::suspendDeviceMotionAndOrientationUpdates): |
| (WebCore::Document::resumeDeviceMotionAndOrientationUpdates): |
| (WebCore::Document::platformSuspendOrStopActiveDOMObjects): |
| * dom/Document.h: |
| * dom/DocumentMarker.h: |
| (WebCore::DocumentMarker::allMarkers): |
| * dom/DocumentMarkerController.cpp: |
| (WebCore::shouldInsertAsSeparateMarker): |
| (WebCore::DocumentMarkerController::shiftMarkers): |
| * dom/DocumentMarkerController.h: |
| * dom/Element.cpp: |
| (WebCore::Element::focus): |
| * dom/Node.cpp: |
| (WebCore::Node::~Node): |
| (WebCore::Node::willBeDeletedFrom): |
| (WebCore::Node::moveNodeToNewDocument): |
| (WebCore::tryAddEventListener): |
| (WebCore::tryRemoveEventListener): |
| (WebCore::Node::defaultEventHandler): |
| (WebCore::Node::willRespondToMouseMoveEvents): |
| (WebCore::Node::willRespondToMouseClickEvents): |
| * dom/Range.cpp: |
| * dom/Range.h: |
| * dom/TreeScope.cpp: |
| (WebCore::absolutePointIfNotClipped): |
| * dom/ViewportArguments.cpp: |
| (WebCore::setViewportFeature): |
| * dom/ViewportArguments.h: |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::EditCommandComposition::unapply): |
| (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/Editor.cpp: |
| (WebCore::TemporarySelectionChange::TemporarySelectionChange): |
| (WebCore::TemporarySelectionChange::~TemporarySelectionChange): |
| (WebCore::Editor::handleTextEvent): |
| (WebCore::Editor::Editor): |
| (WebCore::Editor::clear): |
| (WebCore::Editor::insertTextWithoutSendingTextEvent): |
| (WebCore::Editor::setBaseWritingDirection): |
| (WebCore::Editor::setComposition): |
| (WebCore::Editor::showSpellingGuessPanel): |
| (WebCore::Editor::markMisspellingsAfterTypingToWord): |
| (WebCore::Editor::markMisspellingsOrBadGrammar): |
| (WebCore::Editor::changeBackToReplacedString): |
| (WebCore::Editor::updateMarkersForWordsAffectedByEditing): |
| (WebCore::Editor::revealSelectionAfterEditingOperation): |
| (WebCore::Editor::setIgnoreSelectionChanges): |
| (WebCore::Editor::changeSelectionAfterCommand): |
| (WebCore::Editor::shouldChangeSelection const): |
| (WebCore::Editor::respondToChangedSelection): |
| (WebCore::Editor::editorUIUpdateTimerFired): |
| (WebCore::Editor::resolveTextCheckingTypeMask): |
| * editing/Editor.h: |
| * editing/FontAttributes.h: |
| * editing/FrameSelection.cpp: |
| (WebCore::FrameSelection::FrameSelection): |
| (WebCore::FrameSelection::updateDataDetectorsForSelection): |
| (WebCore::FrameSelection::setSelectedRange): |
| (WebCore::FrameSelection::updateAppearance): |
| (WebCore::FrameSelection::shouldDeleteSelection const): |
| (WebCore::FrameSelection::revealSelection): |
| (WebCore::FrameSelection::setSelectionFromNone): |
| (WebCore::FrameSelection::shouldChangeSelection const): |
| * editing/FrameSelection.h: |
| * editing/InsertIntoTextNodeCommand.cpp: |
| * editing/InsertIntoTextNodeCommand.h: |
| * editing/TypingCommand.cpp: |
| (WebCore::TypingCommand::markMisspellingsAfterTyping): |
| (WebCore::TypingCommand::deleteKeyPressed): |
| (WebCore::TypingCommand::forwardDeleteKeyPressed): |
| * editing/TypingCommand.h: |
| * editing/cocoa/DataDetection.h: |
| * editing/cocoa/DataDetection.mm: |
| * editing/cocoa/FontAttributesCocoa.mm: |
| * editing/cocoa/FontShadowCocoa.mm: |
| (WebCore::FontShadow::createShadow const): |
| * editing/cocoa/HTMLConverter.h: |
| * editing/cocoa/HTMLConverter.mm: |
| (_fontForNameAndSize): |
| (_shadowForShadowStyle): |
| (HTMLConverter::computedAttributesForElement): |
| (HTMLConverter::_addAttachmentForElement): |
| (HTMLConverter::_processMetaElementWithName): |
| (HTMLConverter::_processElement): |
| * editing/cocoa/WebContentReaderCocoa.mm: |
| (WebCore::attributesForAttributedStringConversion): |
| (WebCore::WebContentReader::readURL): |
| * editing/ios/DictationCommandIOS.cpp: |
| * editing/ios/DictationCommandIOS.h: |
| * editing/ios/EditorIOS.mm: |
| * editing/mac/FrameSelectionMac.mm: |
| (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): |
| * fileapi/FileCocoa.mm: |
| * history/CachedFrame.cpp: |
| (WebCore::CachedFrameBase::restore): |
| (WebCore::CachedFrame::CachedFrame): |
| * history/CachedPage.cpp: |
| (WebCore::CachedPage::restore): |
| * history/HistoryItem.cpp: |
| (WebCore::HistoryItem::HistoryItem): |
| * history/HistoryItem.h: |
| * history/PageCache.cpp: |
| (WebCore::canCachePage): |
| * html/BaseDateAndTimeInputType.cpp: |
| * html/BaseDateAndTimeInputType.h: |
| * html/ColorInputType.cpp: |
| (WebCore::ColorInputType::isKeyboardFocusable const): |
| * html/HTMLAppletElement.cpp: |
| (WebCore::HTMLAppletElement::updateWidget): |
| * html/HTMLAttachmentElement.h: |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::maxActivePixelMemory): |
| * html/HTMLElement.cpp: |
| (WebCore::HTMLElement::collectStyleForPresentationAttribute): |
| * html/HTMLIFrameElement.h: |
| * html/HTMLImageElement.cpp: |
| * html/HTMLImageElement.h: |
| * html/HTMLInputElement.cpp: |
| * html/HTMLInputElement.h: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::finishInitialization): |
| (WebCore::HTMLMediaElement::registerWithDocument): |
| (WebCore::HTMLMediaElement::unregisterWithDocument): |
| (WebCore::HTMLMediaElement::setVolume): |
| (WebCore::HTMLMediaElement::nextScanRate): |
| (WebCore::HTMLMediaElement::sourceWasAdded): |
| (WebCore::HTMLMediaElement::mediaEngineWasUpdated): |
| (WebCore::HTMLMediaElement::updateVolume): |
| (WebCore::HTMLMediaElement::userCancelledLoad): |
| (WebCore::HTMLMediaElement::mediaSessionTitle const): |
| (WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): |
| * html/HTMLMediaElement.h: |
| * html/HTMLMetaElement.cpp: |
| (WebCore::HTMLMetaElement::process): |
| * html/HTMLObjectElement.cpp: |
| * html/HTMLPlugInElement.h: |
| * html/HTMLSelectElement.cpp: |
| (WebCore::HTMLSelectElement::usesMenuList const): |
| (WebCore::HTMLSelectElement::createElementRenderer): |
| (WebCore::HTMLSelectElement::childShouldCreateRenderer const): |
| (WebCore::HTMLSelectElement::willRespondToMouseClickEvents): |
| (WebCore::HTMLSelectElement::updateListBoxSelection): |
| (WebCore::HTMLSelectElement::scrollToSelection): |
| (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer): |
| (WebCore::HTMLSelectElement::menuListDefaultEventHandler): |
| (WebCore::HTMLSelectElement::defaultEventHandler): |
| * html/HTMLTextAreaElement.cpp: |
| (WebCore::HTMLTextAreaElement::createInnerTextStyle): |
| * html/HTMLTextFormControlElement.cpp: |
| (WebCore::HTMLTextFormControlElement::select): |
| (WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const): |
| * html/HTMLTextFormControlElement.h: |
| * html/HTMLVideoElement.cpp: |
| (WebCore::HTMLVideoElement::parseAttribute): |
| (WebCore::HTMLVideoElement::supportsFullscreen const): |
| * html/HTMLVideoElement.h: |
| * html/ImageDocument.cpp: |
| (WebCore::ImageDocument::ImageDocument): |
| (WebCore::ImageDocument::createDocumentStructure): |
| (WebCore::ImageDocument::imageUpdated): |
| * html/ImageDocument.h: |
| * html/InputType.cpp: |
| * html/InputType.h: |
| * html/MediaDocument.cpp: |
| (WebCore::MediaDocumentParser::createDocumentStructure): |
| * html/MediaElementSession.cpp: |
| (WebCore::MediaElementSession::clientDataBufferingTimerFired): |
| (WebCore::MediaElementSession::showPlaybackTargetPicker): |
| (WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const): |
| (WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners): |
| (WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget const): |
| (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const): |
| * html/MediaElementSession.h: |
| * html/PluginDocument.cpp: |
| (WebCore::PluginDocumentParser::createDocumentStructure): |
| * html/RangeInputType.cpp: |
| (WebCore::RangeInputType::handleTouchEvent): |
| * html/RangeInputType.h: |
| * html/SearchInputType.cpp: |
| (WebCore::SearchInputType::addSearchResult): |
| * html/TextFieldInputType.cpp: |
| (WebCore::TextFieldInputType::isKeyboardFocusable const): |
| (WebCore::TextFieldInputType::handleFocusEvent): |
| (WebCore::TextFieldInputType::handleBlurEvent): |
| (WebCore::TextFieldInputType::didSetValueByUserEdit): |
| (WebCore::TextFieldInputType::listAttributeTargetChanged): |
| * html/parser/HTMLParserScheduler.h: |
| (WebCore::HTMLParserScheduler::shouldYieldBeforeToken): |
| * html/parser/HTMLTreeBuilder.cpp: |
| (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody): |
| * html/parser/HTMLTreeBuilder.h: |
| * html/shadow/MediaControlElements.cpp: |
| * html/shadow/MediaControlElements.h: |
| * html/shadow/MediaControls.h: |
| * html/shadow/SliderThumbElement.cpp: |
| (WebCore::SliderThumbElement::dragFrom): |
| * html/shadow/SliderThumbElement.h: |
| * html/shadow/TextControlInnerElements.cpp: |
| (WebCore::SearchFieldResultsButtonElement::defaultEventHandler): |
| (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): |
| * html/shadow/TextControlInnerElements.h: |
| * inspector/InspectorController.cpp: |
| (WebCore::InspectorController::setIndicating): |
| * inspector/InspectorFrontendHost.cpp: |
| (WebCore::InspectorFrontendHost::platform): |
| * inspector/PageScriptDebugServer.cpp: |
| (WebCore::PageScriptDebugServer::runEventLoopWhilePaused): |
| * inspector/agents/InspectorTimelineAgent.cpp: |
| (WebCore::currentRunLoop): |
| * loader/DocumentLoader.cpp: |
| * loader/DocumentLoader.h: |
| * loader/DocumentThreadableLoader.cpp: |
| (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): |
| * loader/DocumentWriter.cpp: |
| (WebCore::DocumentWriter::createDocument): |
| * loader/EmptyClients.cpp: |
| * loader/EmptyClients.h: |
| * loader/EmptyFrameLoaderClient.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::checkCompleted): |
| (WebCore::FrameLoader::willLoadMediaElementURL): |
| (WebCore::FrameLoader::stopForUserCancel): |
| (WebCore::FrameLoader::commitProvisionalLoad): |
| (WebCore::FrameLoader::didFirstLayout): |
| (WebCore::createWindow): |
| * loader/FrameLoader.h: |
| * loader/FrameLoaderClient.h: |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::saveScrollPositionAndViewStateToItem): |
| (WebCore::HistoryController::restoreScrollPositionAndViewState): |
| * loader/ResourceLoader.cpp: |
| (WebCore::ResourceLoader::init): |
| (WebCore::ResourceLoader::willSendRequestInternal): |
| * loader/ResourceLoader.h: |
| * loader/SubframeLoader.cpp: |
| (WebCore::SubframeLoader::loadPlugin): |
| * loader/SubresourceLoader.cpp: |
| (WebCore::SubresourceLoader::create): |
| (WebCore::SubresourceLoader::willCancel): |
| (WebCore::SubresourceLoader::notifyDone): |
| (WebCore::SubresourceLoader::releaseResources): |
| * loader/SubresourceLoader.h: |
| * loader/cache/CachedImage.cpp: |
| * page/CaptionUserPreferencesMediaAF.cpp: |
| (WebCore::userCaptionPreferencesChangedNotificationCallback): |
| * page/Chrome.cpp: |
| (WebCore::Chrome::createColorChooser): |
| (WebCore::Chrome::dispatchViewportPropertiesDidChange const): |
| (WebCore::Chrome::didReceiveDocType): |
| * page/Chrome.h: |
| * page/ChromeClient.h: |
| * page/DOMTimer.cpp: |
| (WebCore::DOMTimer::install): |
| (WebCore::DOMTimer::fired): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::outerHeight const): |
| (WebCore::DOMWindow::outerWidth const): |
| (WebCore::DOMWindow::clearTimeout): |
| (WebCore::DOMWindow::addEventListener): |
| (WebCore::DOMWindow::resetAllGeolocationPermission): |
| (WebCore::DOMWindow::removeEventListener): |
| (WebCore::DOMWindow::removeAllEventListeners): |
| * page/DOMWindow.h: |
| * page/DeprecatedGlobalSettings.cpp: |
| (WebCore::DeprecatedGlobalSettings::globalConstRedeclarationShouldThrow): |
| * page/DeprecatedGlobalSettings.h: |
| * page/DragController.cpp: |
| * page/EditorClient.h: |
| * page/EventHandler.cpp: |
| (WebCore::EventHandler::handleMousePressEventSingleClick): |
| (WebCore::EventHandler::handleMouseReleaseEvent): |
| (WebCore::EventHandler::startPanScrolling): |
| (WebCore::EventHandler::handleMouseMoveEvent): |
| * page/EventHandler.h: |
| * page/Frame.cpp: |
| (WebCore::Frame::Frame): |
| (WebCore::Frame::willDetachPage): |
| * page/Frame.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::FrameView): |
| (WebCore::FrameView::clear): |
| (WebCore::FrameView::effectiveFrameFlattening const): |
| (WebCore::FrameView::flushCompositingStateForThisFrame): |
| (WebCore::FrameView::scrollPositionRespectingCustomFixedPosition const): |
| (WebCore::FrameView::viewportConstrainedVisibleContentRect const): |
| (WebCore::FrameView::updateContentsSize): |
| (WebCore::FrameView::computeScrollability const): |
| (WebCore::FrameView::adjustTiledBackingCoverage): |
| (WebCore::FrameView::calculateExtendedBackgroundMode const): |
| (WebCore::FrameView::performPostLayoutTasks): |
| (WebCore::FrameView::sizeForResizeEvent const): |
| (WebCore::FrameView::sendResizeEventIfNeeded): |
| * page/FrameView.h: |
| * page/FrameViewLayoutContext.cpp: |
| (WebCore::FrameViewLayoutContext::layout): |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseCriticalMemory): |
| (WebCore::releaseMemory): |
| * page/Navigator.cpp: |
| * page/Navigator.h: |
| * page/NavigatorBase.cpp: |
| * page/Page.cpp: |
| (WebCore::Page::setIsVisibleInternal): |
| (WebCore::Page::showPlaybackTargetPicker): |
| * page/Page.h: |
| * page/PerformanceMonitor.cpp: |
| (WebCore::PerformanceMonitor::measurePostLoadMemoryUsage): |
| * page/ResourceUsageOverlay.cpp: |
| (WebCore::ResourceUsageOverlay::initialize): |
| * page/SecurityOrigin.cpp: |
| (WebCore::SecurityOrigin::canDisplay const): |
| * page/SettingsBase.cpp: |
| * page/SettingsBase.h: |
| * page/SettingsDefaultValues.h: |
| (WebCore::editingBehaviorTypeForPlatform): |
| * page/TextIndicator.cpp: |
| (WebCore::TextIndicator::createWithRange): |
| (WebCore::initializeIndicator): |
| * page/ViewportConfiguration.cpp: |
| (WebCore::ViewportConfiguration::textDocumentParameters): |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| (WebCore::platformReleaseMemory): |
| (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation): |
| * page/cocoa/ResourceUsageOverlayCocoa.mm: |
| (WebCore::showText): |
| * page/cocoa/ResourceUsageThreadCocoa.mm: |
| (WebCore::vmPageSize): |
| * page/cocoa/SettingsBaseCocoa.mm: |
| * page/ios/EventHandlerIOS.mm: |
| * page/ios/FrameIOS.mm: |
| * page/mac/ChromeMac.mm: |
| * page/mac/PageMac.mm: |
| (WebCore::Page::platformInitialize): |
| * page/mac/WebCoreFrameView.h: |
| * page/scrolling/AsyncScrollingCoordinator.cpp: |
| (WebCore::AsyncScrollingCoordinator::reconcileScrollingState): |
| * page/scrolling/ScrollingTree.h: |
| * page/scrolling/ScrollingTreeScrollingNode.h: |
| * page/scrolling/ScrollingTreeScrollingNodeDelegate.cpp: |
| * page/scrolling/ScrollingTreeScrollingNodeDelegate.h: |
| * page/scrolling/ios/ScrollingCoordinatorIOS.h: |
| * page/scrolling/ios/ScrollingCoordinatorIOS.mm: |
| * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: |
| * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: |
| * page/scrolling/ios/ScrollingTreeIOS.cpp: |
| * page/scrolling/ios/ScrollingTreeIOS.h: |
| * platform/ContentFilterUnblockHandler.h: |
| * platform/Cursor.cpp: |
| * platform/Cursor.h: |
| * platform/DragImage.cpp: |
| * platform/DragImage.h: |
| * platform/FileChooser.cpp: |
| * platform/FileChooser.h: |
| * platform/HostWindow.h: |
| * platform/LocalizedStrings.cpp: |
| * platform/LocalizedStrings.h: |
| * platform/LowPowerModeNotifier.cpp: |
| * platform/LowPowerModeNotifier.h: |
| * platform/MIMETypeRegistry.cpp: |
| (WebCore::initializeSupportedImageMIMETypes): |
| (WebCore::initializeSupportedNonImageMimeTypes): |
| (WebCore::initializeUnsupportedTextMIMETypes): |
| * platform/Pasteboard.h: |
| * platform/PasteboardStrategy.h: |
| * platform/PlatformKeyboardEvent.h: |
| * platform/PlatformPasteboard.h: |
| * platform/PlatformScreen.h: |
| * platform/RemoteCommandListener.cpp: |
| * platform/RuntimeApplicationChecks.h: |
| * platform/ScrollAnimator.cpp: |
| * platform/ScrollView.cpp: |
| (WebCore::ScrollView::contentsScrollPosition const): |
| (WebCore::ScrollView::setContentsScrollPosition): |
| (WebCore::ScrollView::visibleContentRectInternal const): |
| * platform/ScrollView.h: |
| * platform/ScrollableArea.cpp: |
| * platform/ScrollableArea.h: |
| * platform/Scrollbar.cpp: |
| * platform/Scrollbar.h: |
| * platform/ThreadTimers.cpp: |
| * platform/Timer.cpp: |
| (WebCore::shouldSuppressThreadSafetyCheck): |
| * platform/Timer.h: |
| (WebCore::TimerBase::isActive const): |
| * platform/ValidationBubble.h: |
| * platform/Widget.h: |
| * platform/audio/AudioHardwareListener.cpp: |
| (WebCore::AudioHardwareListener::AudioHardwareListener): |
| * platform/audio/PlatformMediaSession.h: |
| * platform/audio/PlatformMediaSessionManager.h: |
| * platform/audio/ios/AudioDestinationIOS.cpp: |
| * platform/audio/ios/AudioDestinationIOS.h: |
| * platform/audio/ios/AudioFileReaderIOS.cpp: |
| * platform/audio/ios/AudioFileReaderIOS.h: |
| * platform/audio/ios/AudioSessionIOS.mm: |
| (WebCore::AudioSession::setCategory): |
| (WebCore::AudioSession::routingContextUID const): |
| * platform/audio/ios/MediaSessionManagerIOS.h: |
| * platform/audio/ios/MediaSessionManagerIOS.mm: |
| * platform/cf/MainThreadSharedTimerCF.cpp: |
| (WebCore::setupPowerObserver): |
| (WebCore::MainThreadSharedTimer::setFireInterval): |
| * platform/cf/URLCF.cpp: |
| * platform/cocoa/ContentFilterUnblockHandlerCocoa.mm: |
| (WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler): |
| (WebCore::ContentFilterUnblockHandler::needsUIProcess const): |
| (WebCore::ContentFilterUnblockHandler::encode const): |
| (WebCore::ContentFilterUnblockHandler::decode): |
| (WebCore::ContentFilterUnblockHandler::canHandleRequest const): |
| (WebCore::dispatchToMainThread): |
| (WebCore::ContentFilterUnblockHandler::requestUnblockAsync const): |
| * platform/cocoa/DataDetectorsCoreSoftLink.h: |
| * platform/cocoa/DataDetectorsCoreSoftLink.mm: |
| * platform/cocoa/KeyEventCocoa.mm: |
| * platform/cocoa/LocalizedStringsCocoa.mm: |
| (WebCore::localizedNSString): |
| * platform/cocoa/NetworkExtensionContentFilter.mm: |
| (WebCore::NetworkExtensionContentFilter::initialize): |
| * platform/cocoa/ParentalControlsContentFilter.mm: |
| (WebCore::ParentalControlsContentFilter::unblockHandler const): |
| * platform/cocoa/PasteboardCocoa.mm: |
| (WebCore::Pasteboard::fileContentState): |
| * platform/cocoa/PlatformView.h: |
| * platform/cocoa/PlaybackSessionInterface.h: |
| * platform/cocoa/PlaybackSessionModel.h: |
| * platform/cocoa/PlaybackSessionModelMediaElement.h: |
| * platform/cocoa/PlaybackSessionModelMediaElement.mm: |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: |
| * platform/cocoa/SystemVersion.mm: |
| (WebCore::createSystemMarketingVersion): |
| * platform/cocoa/VideoFullscreenChangeObserver.h: |
| * platform/cocoa/VideoFullscreenModel.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| * platform/gamepad/cocoa/GameControllerGamepad.h: |
| * platform/gamepad/cocoa/GameControllerGamepad.mm: |
| * platform/gamepad/cocoa/GameControllerGamepadProvider.h: |
| * platform/gamepad/cocoa/GameControllerGamepadProvider.mm: |
| * platform/graphics/BitmapImage.h: |
| * platform/graphics/Color.h: |
| * platform/graphics/ComplexTextController.cpp: |
| * platform/graphics/DisplayRefreshMonitor.cpp: |
| (WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor): |
| * platform/graphics/FloatSize.h: |
| * platform/graphics/Font.cpp: |
| (WebCore::Font::Font): |
| (WebCore::createAndFillGlyphPage): |
| * platform/graphics/Font.h: |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::getCachedFontPlatformData): |
| (WebCore::FontCache::fontForPlatformData): |
| (WebCore::FontCache::purgeInactiveFontData): |
| (WebCore::FontCache::inactiveFontCount): |
| * platform/graphics/FontCascade.cpp: |
| (WebCore::FontCascade::FontCascade): |
| * platform/graphics/FontCascadeFonts.h: |
| * platform/graphics/FontDescription.h: |
| * platform/graphics/FontPlatformData.h: |
| (WebCore::FontPlatformData::isEmoji const): |
| * platform/graphics/GraphicsContext.cpp: |
| (WebCore::GraphicsContext::drawImage): |
| * platform/graphics/GraphicsContext3D.h: |
| * platform/graphics/GraphicsLayer.h: |
| * platform/graphics/Icon.h: |
| * platform/graphics/Image.cpp: |
| (WebCore::Image::drawTiled): |
| (WebCore::Image::computeIntrinsicDimensions): |
| * platform/graphics/Image.h: |
| * platform/graphics/IntPoint.h: |
| * platform/graphics/IntRect.h: |
| * platform/graphics/IntSize.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::isAvailable): |
| (WebCore::MediaPlayer::volumeChanged): |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/MediaPlayerPrivate.h: |
| * platform/graphics/NamedImageGeneratedImage.cpp: |
| (WebCore::NamedImageGeneratedImage::draw): |
| * platform/graphics/StringTruncator.cpp: |
| (WebCore::centerTruncateToBuffer): |
| (WebCore::rightTruncateToBuffer): |
| (WebCore::rightClipToWordBuffer): |
| * platform/graphics/TextTrackRepresentation.cpp: |
| * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: |
| * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: |
| * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: |
| * platform/graphics/avfoundation/MediaPlaybackTargetMac.mm: |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen const): |
| (WebCore::MediaPlayerPrivateAVFoundation::rateChanged): |
| * platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp: |
| * platform/graphics/avfoundation/WebMediaSessionManagerMac.h: |
| * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp: |
| * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h: |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::supportsPersistentKeys): |
| * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: |
| * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm: |
| * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h: |
| * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenMode): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesLastModifiedTime const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::liveUpdateInterval const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsPictureInPicture const): |
| * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h: |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::flushCompositingState): |
| (WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect const): |
| (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/ca/PlatformCALayer.h: |
| * platform/graphics/ca/TileController.cpp: |
| (WebCore::TileController::~TileController): |
| (WebCore::TileController::adjustTileCoverageRect const): |
| * platform/graphics/ca/TileController.h: |
| * platform/graphics/ca/TileGrid.cpp: |
| (WebCore::TileGrid::startedNewCohort): |
| (WebCore::TileGrid::platformCALayerPaintContents): |
| * platform/graphics/ca/TileGrid.h: |
| * platform/graphics/ca/cocoa/LayerFlushSchedulerMac.cpp: |
| (WebCore::currentRunLoop): |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (-[WebAnimationDelegate animationDidStart:]): |
| (-[WebAnimationDelegate animationDidStop:finished:]): |
| (WebCore::PlatformCALayerCocoa::setContentsScale): |
| (WebCore::layerContentsFormat): |
| (WebCore::PlatformCALayer::drawLayerContents): |
| (WebCore::PlatformCALayerCocoa::backingStoreBytesPerPixel const): |
| * platform/graphics/cg/GradientCG.cpp: |
| (WebCore::Gradient::paint): |
| * platform/graphics/cg/GraphicsContextCG.cpp: |
| (WebCore::displayP3ColorSpaceRef): |
| (WebCore::GraphicsContext::drawNativeImage): |
| (WebCore::drawPatternCallback): |
| (WebCore::GraphicsContext::drawPattern): |
| (WebCore::GraphicsContext::drawLine): |
| (WebCore::applyShadowOffsetWorkaroundIfNeeded): |
| (WebCore::GraphicsContext::setURLForRect): |
| * platform/graphics/cg/ImageBufferCG.cpp: |
| (WebCore::jpegUTI): |
| * platform/graphics/cg/ImageBufferDataCG.cpp: |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoderCG::createFrameImageAtIndex): |
| * platform/graphics/cg/ImageSourceCGMac.mm: |
| * platform/graphics/cg/PDFDocumentImage.cpp: |
| * platform/graphics/cocoa/ColorCocoa.h: |
| * platform/graphics/cocoa/ColorCocoa.mm: |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontCache::similarFont): |
| (WebCore::computeNecessarySynthesis): |
| (WebCore::FontDatabase::fontForPostScriptName): |
| (WebCore::variationCapabilitiesForFontDescriptor): |
| (WebCore::lookupFallbackFont): |
| (WebCore::FontCache::systemFallbackForCharacters): |
| (WebCore::FontCache::lastResortFallbackFont): |
| * platform/graphics/cocoa/FontCascadeCocoa.mm: |
| (WebCore::FontCascade::drawGlyphs): |
| (WebCore::FontCascade::fontForCombiningCharacterSequence const): |
| * platform/graphics/cocoa/FontCocoa.mm: |
| (WebCore::Font::platformInit): |
| (WebCore::Font::variantCapsSupportsCharacterForSynthesis const): |
| (WebCore::Font::determinePitch): |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: |
| (WebCore::FontCascadeDescription::effectiveFamilyCount const): |
| (WebCore::FontCascadeDescription::effectiveFamilyAt const): |
| * platform/graphics/cocoa/FontPlatformDataCocoa.mm: |
| (WebCore::FontPlatformData::FontPlatformData): |
| (WebCore::cascadeToLastResortAndVariationsFontDescriptor): |
| * platform/graphics/cocoa/GraphicsContext3DCocoa.mm: |
| (WebCore::GraphicsContext3D::GraphicsContext3D): |
| (WebCore::GraphicsContext3D::texImageIOSurface2D): |
| * platform/graphics/cocoa/GraphicsContextCocoa.mm: |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::optionsForBiplanarSurface): |
| (WebCore::optionsFor32BitSurface): |
| (WebCore::IOSurface::maximumSize): |
| (WebCore::IOSurface::surfaceID const): |
| * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp: |
| (WebCore::SystemFontDatabaseCoreText::cascadeList): |
| * platform/graphics/cocoa/TextTrackRepresentationCocoa.h: |
| * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: |
| (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]): |
| * platform/graphics/cocoa/WebMetalLayer.h: |
| * platform/graphics/cv/ImageTransferSessionVT.mm: |
| (WebCore::cvPixelFormatOpenGLKey): |
| (WebCore::ImageTransferSessionVT::ImageTransferSessionVT): |
| * platform/graphics/cv/VideoTextureCopierCV.h: |
| * platform/graphics/ios/DisplayRefreshMonitorIOS.h: |
| * platform/graphics/ios/DisplayRefreshMonitorIOS.mm: |
| * platform/graphics/ios/FontAntialiasingStateSaver.h: |
| (WebCore::FontAntialiasingStateSaver::FontAntialiasingStateSaver): |
| (WebCore::FontAntialiasingStateSaver::setup): |
| (WebCore::FontAntialiasingStateSaver::restore): |
| * platform/graphics/ios/FontCacheIOS.mm: |
| * platform/graphics/ios/IconIOS.mm: |
| * platform/graphics/mac/ComplexTextControllerCoreText.mm: |
| (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): |
| * platform/graphics/mac/FloatPointMac.mm: |
| * platform/graphics/mac/FloatRectMac.mm: |
| * platform/graphics/mac/FloatSizeMac.mm: |
| * platform/graphics/mac/FontCustomPlatformData.cpp: |
| (WebCore::createFontCustomPlatformData): |
| * platform/graphics/mac/ImageMac.mm: |
| * platform/graphics/mac/IntPointMac.mm: |
| * platform/graphics/mac/IntRectMac.mm: |
| * platform/graphics/mac/IntSizeMac.mm: |
| * platform/graphics/mac/WebKitNSImageExtras.h: |
| * platform/graphics/mac/WebKitNSImageExtras.mm: |
| * platform/graphics/mac/WebLayer.mm: |
| (-[WebSimpleLayer display]): |
| (-[WebSimpleLayer drawInContext:]): |
| * platform/graphics/opengl/Extensions3DOpenGL.cpp: |
| (WebCore::Extensions3DOpenGL::supportsExtension): |
| * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: |
| * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: |
| * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp: |
| * platform/graphics/transforms/TransformationMatrix.cpp: |
| (WebCore::TransformationMatrix::multiply): |
| * platform/graphics/transforms/TransformationMatrix.h: |
| * platform/ios/CursorIOS.cpp: |
| * platform/ios/Device.cpp: |
| * platform/ios/Device.h: |
| * platform/ios/DeviceMotionClientIOS.h: |
| * platform/ios/DeviceMotionClientIOS.mm: |
| (WebCore::DeviceMotionClientIOS::motionChanged): |
| * platform/ios/DeviceOrientationClientIOS.h: |
| * platform/ios/DeviceOrientationClientIOS.mm: |
| (WebCore::DeviceOrientationClientIOS::orientationChanged): |
| * platform/ios/DragImageIOS.mm: |
| * platform/ios/EventLoopIOS.mm: |
| * platform/ios/KeyEventIOS.mm: |
| * platform/ios/LegacyTileCache.h: |
| * platform/ios/LegacyTileCache.mm: |
| * platform/ios/LegacyTileGrid.h: |
| * platform/ios/LegacyTileGrid.mm: |
| * platform/ios/LegacyTileGridTile.h: |
| * platform/ios/LegacyTileGridTile.mm: |
| * platform/ios/LegacyTileLayer.h: |
| * platform/ios/LegacyTileLayer.mm: |
| * platform/ios/LegacyTileLayerPool.h: |
| * platform/ios/LegacyTileLayerPool.mm: |
| * platform/ios/LowPowerModeNotifierIOS.mm: |
| * platform/ios/PasteboardIOS.mm: |
| * platform/ios/PlatformEventFactoryIOS.h: |
| * platform/ios/PlatformEventFactoryIOS.mm: |
| * platform/ios/PlatformPasteboardIOS.mm: |
| * platform/ios/PlatformScreenIOS.mm: |
| * platform/ios/PlatformSpeechSynthesizerIOS.mm: |
| * platform/ios/PlaybackSessionInterfaceAVKit.h: |
| * platform/ios/PlaybackSessionInterfaceAVKit.mm: |
| * platform/ios/RemoteCommandListenerIOS.h: |
| * platform/ios/RemoteCommandListenerIOS.mm: |
| * platform/ios/SSLKeyGeneratorIOS.cpp: |
| * platform/ios/ScrollAnimatorIOS.h: |
| * platform/ios/ScrollAnimatorIOS.mm: |
| * platform/ios/ScrollViewIOS.mm: |
| (WebCore::ScrollView::platformSetContentsSize): |
| * platform/ios/ScrollbarThemeIOS.h: |
| * platform/ios/ScrollbarThemeIOS.mm: |
| * platform/ios/SystemMemoryIOS.cpp: |
| (WebCore::systemMemoryLevel): |
| * platform/ios/ThemeIOS.h: |
| * platform/ios/ThemeIOS.mm: |
| * platform/ios/TileControllerMemoryHandlerIOS.cpp: |
| * platform/ios/TileControllerMemoryHandlerIOS.h: |
| * platform/ios/UserAgentIOS.mm: |
| (WebCore::deviceNameForUserAgent): |
| * platform/ios/ValidationBubbleIOS.mm: |
| * platform/ios/VideoFullscreenInterfaceAVKit.h: |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (WebCore::supportsPictureInPicture): |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| * platform/ios/WebBackgroundTaskController.h: |
| * platform/ios/WebBackgroundTaskController.mm: |
| * platform/ios/WebCoreMotionManager.h: |
| * platform/ios/WebCoreMotionManager.mm: |
| * platform/ios/WebEvent.h: |
| * platform/ios/WebEvent.mm: |
| * platform/ios/WebSQLiteDatabaseTrackerClient.h: |
| * platform/ios/WebSQLiteDatabaseTrackerClient.mm: |
| * platform/ios/WebVideoFullscreenControllerAVKit.h: |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::requestUpdateInlineRect): |
| (VideoFullscreenControllerContext::requestVideoContentLayer): |
| (VideoFullscreenControllerContext::returnVideoContentLayer): |
| (VideoFullscreenControllerContext::didSetupFullscreen): |
| (VideoFullscreenControllerContext::didExitFullscreen): |
| * platform/ios/WidgetIOS.mm: |
| * platform/ios/wak/FloatingPointEnvironment.cpp: |
| * platform/ios/wak/FloatingPointEnvironment.h: |
| * platform/ios/wak/WAKAppKitStubs.m: |
| * platform/ios/wak/WAKClipView.m: |
| * platform/ios/wak/WAKResponder.m: |
| * platform/ios/wak/WAKScrollView.mm: |
| * platform/ios/wak/WAKView.mm: |
| * platform/ios/wak/WAKWindow.mm: |
| * platform/ios/wak/WKContentObservation.cpp: |
| * platform/ios/wak/WKGraphics.mm: |
| * platform/ios/wak/WKUtilities.c: |
| * platform/ios/wak/WKView.mm: |
| * platform/ios/wak/WebCoreThread.mm: |
| * platform/ios/wak/WebCoreThreadRun.cpp: |
| * platform/ios/wak/WebCoreThreadSystemInterface.cpp: |
| * platform/mac/DragDataMac.mm: |
| (WebCore::rtfPasteboardType): |
| (WebCore::rtfdPasteboardType): |
| (WebCore::stringPasteboardType): |
| (WebCore::urlPasteboardType): |
| (WebCore::htmlPasteboardType): |
| (WebCore::colorPasteboardType): |
| (WebCore::pdfPasteboardType): |
| (WebCore::tiffPasteboardType): |
| (WebCore::DragData::containsURL const): |
| * platform/mac/MediaRemoteSoftLink.cpp: |
| * platform/mac/MediaRemoteSoftLink.h: |
| * platform/mac/SuddenTermination.mm: |
| * platform/mac/WebCoreFullScreenPlaceholderView.mm: |
| * platform/mac/WebCoreFullScreenWarningView.h: |
| * platform/mac/WebCoreFullScreenWarningView.mm: |
| * platform/mac/WebCoreFullScreenWindow.h: |
| * platform/mac/WebCoreFullScreenWindow.mm: |
| * platform/mac/WebNSAttributedStringExtras.mm: |
| * platform/mediastream/RealtimeMediaSourceFactory.h: |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::~RealtimeVideoSource): |
| (WebCore::RealtimeVideoSource::prepareToProduceData): |
| * platform/mediastream/ios/AVAudioSessionCaptureDevice.h: |
| * platform/mediastream/ios/AVAudioSessionCaptureDevice.mm: |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h: |
| * platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: |
| * platform/mediastream/ios/CoreAudioCaptureSourceIOS.h: |
| * platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm: |
| * platform/mediastream/libwebrtc/LibWebRTCMacros.h: |
| * platform/mediastream/mac/AVCaptureDeviceManager.mm: |
| (WebCore::deviceIsAvailable): |
| * platform/mediastream/mac/AVMediaCaptureSource.mm: |
| (WebCore::AVMediaCaptureSource::AVMediaCaptureSource): |
| (WebCore::AVMediaCaptureSource::stopProducingData): |
| (-[WebCoreAVMediaCaptureSourceObserver addNotificationObservers]): |
| (-[WebCoreAVMediaCaptureSourceObserver removeNotificationObservers]): |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::AVVideoCaptureSource): |
| (WebCore::AVVideoCaptureSource::~AVVideoCaptureSource): |
| (WebCore::AVVideoCaptureSource::stopProducingData): |
| (WebCore::AVVideoCaptureSource::prefersPreset): |
| (WebCore::sensorOrientation): |
| (WebCore::AVVideoCaptureSource::setupCaptureSession): |
| (WebCore::AVVideoCaptureSource::monitorOrientation): |
| (-[WebCoreAVVideoCaptureSourceObserver addNotificationObservers]): |
| (-[WebCoreAVVideoCaptureSourceObserver removeNotificationObservers]): |
| * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp: |
| (WebCore::AudioTrackPrivateMediaStreamCocoa::createAudioUnit): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioSharedUnit::setupAudioUnit): |
| (WebCore::CoreAudioCaptureSource::create): |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource): |
| (WebCore::CoreAudioCaptureSource::startProducingData): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::~DisplayCaptureSourceCocoa): |
| (WebCore::DisplayCaptureSourceCocoa::startProducingData): |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| * platform/mock/MediaPlaybackTargetMock.cpp: |
| * platform/mock/MediaPlaybackTargetMock.h: |
| * platform/mock/MediaPlaybackTargetPickerMock.cpp: |
| * platform/mock/MediaPlaybackTargetPickerMock.h: |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource): |
| (WebCore::MockRealtimeAudioSource::startProducingData): |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| * platform/network/CredentialStorage.cpp: |
| * platform/network/NetworkStateNotifier.h: |
| * platform/network/ResourceHandle.cpp: |
| (WebCore::builtinResourceHandleConstructorMap): |
| * platform/network/ResourceHandle.h: |
| * platform/network/ResourceHandleClient.h: |
| * platform/network/ResourceRequestBase.cpp: |
| * platform/network/ResourceRequestBase.h: |
| * platform/network/cf/DNSResolveQueueCFNet.cpp: |
| * platform/network/cf/ProxyServerCFNet.cpp: |
| * platform/network/cf/ResourceHandleCFNet.cpp: |
| (WebCore::ResourceHandle::createCFURLConnection): |
| * platform/network/cf/ResourceRequest.h: |
| (WebCore::ResourceRequest::resourcePrioritiesEnabled): |
| * platform/network/cf/ResourceRequestCFNet.cpp: |
| (WebCore::ResourceRequest::doUpdatePlatformRequest): |
| (WebCore::ResourceRequest::doUpdateResourceRequest): |
| * platform/network/cf/SocketStreamHandleImplCFNet.cpp: |
| (WebCore::callbacksRunLoop): |
| (WebCore::copyCONNECTProxyResponse): |
| * platform/network/cocoa/CookieCocoa.mm: |
| (WebCore::Cookie::operator NSHTTPCookie * _Nullable const): |
| * platform/network/cocoa/NetworkStorageSessionCocoa.mm: |
| (WebCore::cookiesForURL): |
| (WebCore::setHTTPCookiesForURL): |
| * platform/network/cocoa/ResourceRequestCocoa.mm: |
| (WebCore::ResourceRequest::doUpdateResourceRequest): |
| (WebCore::ResourceRequest::doUpdatePlatformRequest): |
| * platform/network/ios/NetworkStateNotifierIOS.mm: |
| * platform/network/ios/WebCoreURLResponseIOS.h: |
| * platform/network/ios/WebCoreURLResponseIOS.mm: |
| * platform/network/mac/ResourceErrorMac.mm: |
| * platform/network/mac/ResourceHandleMac.mm: |
| (WebCore::ResourceHandle::createNSURLConnection): |
| (WebCore::ResourceHandle::start): |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): |
| * platform/network/mac/UTIUtilities.mm: |
| * platform/sql/SQLiteDatabase.h: |
| (WebCore::SQLiteDatabase::sqlite3Handle const): |
| * platform/sql/SQLiteFileSystem.cpp: |
| * platform/sql/SQLiteFileSystem.h: |
| * platform/sql/SQLiteTransaction.cpp: |
| (WebCore::SQLiteTransaction::begin): |
| (WebCore::SQLiteTransaction::commit): |
| (WebCore::SQLiteTransaction::rollback): |
| (WebCore::SQLiteTransaction::stop): |
| * platform/text/PlatformLocale.cpp: |
| * platform/text/PlatformLocale.h: |
| * platform/text/ios/LocalizedDateCache.h: |
| * platform/text/ios/LocalizedDateCache.mm: |
| * platform/text/ios/TextEncodingRegistryIOS.mm: |
| * platform/text/mac/LocaleMac.h: |
| * platform/text/mac/LocaleMac.mm: |
| * plugins/PluginViewBase.h: |
| * rendering/InlineTextBox.cpp: |
| (WebCore::InlineTextBox::paintPlatformDocumentMarker): |
| (WebCore::InlineTextBox::resolveStyleForMarkedText): |
| (WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers): |
| * rendering/MarkedText.h: |
| * rendering/RenderBlock.cpp: |
| (WebCore::RenderBlock::paint): |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::paintBoxDecorations): |
| (WebCore::allowMinMaxPercentagesInAutoHeightBlocksQuirk): |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::decodingModeForImageDraw const): |
| * rendering/RenderButton.cpp: |
| * rendering/RenderButton.h: |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::styleWillChange): |
| (WebCore::RenderElement::styleDidChange): |
| * rendering/RenderEmbeddedObject.cpp: |
| (WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing const): |
| (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason): |
| (WebCore::RenderEmbeddedObject::setPluginUnavailabilityReasonWithDescription): |
| * rendering/RenderFileUploadControl.cpp: |
| (WebCore::RenderFileUploadControl::maxFilenameWidth const): |
| (WebCore::RenderFileUploadControl::paintObject): |
| * rendering/RenderFrameSet.cpp: |
| (WebCore::RenderFrameSet::positionFrames): |
| * rendering/RenderIFrame.h: |
| * rendering/RenderImage.cpp: |
| (WebCore::RenderImage::paintAreaElementFocusRing): |
| * rendering/RenderImage.h: |
| * rendering/RenderInline.cpp: |
| * rendering/RenderInline.h: |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::RenderLayer): |
| (WebCore::canCreateStackingContext): |
| (WebCore::RenderLayer::canUseAcceleratedTouchScrolling const): |
| (WebCore::RenderLayer::scrollTo): |
| (WebCore::RenderLayer::scrollRectToVisible): |
| (WebCore::RenderLayer::updateScrollInfoAfterLayout): |
| (WebCore::RenderLayer::showsOverflowControls const): |
| (WebCore::RenderLayer::calculateClipRects const): |
| * rendering/RenderLayer.h: |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): |
| (WebCore::RenderLayerBacking::shouldClipCompositedBounds const): |
| (WebCore::RenderLayerBacking::updateConfiguration): |
| (WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const): |
| (WebCore::RenderLayerBacking::updateGeometry): |
| (WebCore::RenderLayerBacking::paintsIntoWindow const): |
| (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): |
| (WebCore::RenderLayerBacking::paintIntoLayer): |
| * rendering/RenderLayerBacking.h: |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const): |
| (WebCore::RenderLayerCompositor::flushPendingLayerChanges): |
| (WebCore::RenderLayerCompositor::updateCustomLayersAfterFlush): |
| (WebCore::RenderLayerCompositor::didFlushChangesForLayer): |
| (WebCore::RenderLayerCompositor::computeCompositingRequirements): |
| (WebCore::RenderLayerCompositor::setIsInWindow): |
| (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame const): |
| (WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer const): |
| (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const): |
| (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles const): |
| (WebCore::RenderLayerCompositor::ensureRootLayer): |
| (WebCore::RenderLayerCompositor::computeStickyViewportConstraints const): |
| (WebCore::RenderLayerCompositor::willRemoveScrollingLayerWithBacking): |
| (WebCore::RenderLayerCompositor::didAddScrollingLayer): |
| * rendering/RenderLayerCompositor.h: |
| * rendering/RenderLayerModelObject.cpp: |
| (WebCore::RenderLayerModelObject::shouldPlaceBlockDirectionScrollbarOnLeft const): |
| * rendering/RenderLineBreak.cpp: |
| * rendering/RenderLineBreak.h: |
| * rendering/RenderMenuList.cpp: |
| (WebCore::RenderMenuList::RenderMenuList): |
| (WebCore::RenderMenuList::willBeDestroyed): |
| (WebCore::RenderMenuList::adjustInnerStyle): |
| (RenderMenuList::updateFromElement): |
| (RenderMenuList::setTextFromOption): |
| (RenderMenuList::hidePopup): |
| (RenderMenuList::popupDidHide): |
| * rendering/RenderMenuList.h: |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::shouldApplyCompositedContainerScrollsForRepaint): |
| (WebCore::RenderObject::destroy): |
| * rendering/RenderObject.h: |
| * rendering/RenderSearchField.cpp: |
| (WebCore::RenderSearchField::itemText const): |
| * rendering/RenderText.cpp: |
| (WebCore::RenderText::setRenderedText): |
| * rendering/RenderText.h: |
| * rendering/RenderTextControl.cpp: |
| * rendering/RenderTextControl.h: |
| * rendering/RenderTextControlMultiLine.cpp: |
| (WebCore::RenderTextControlMultiLine::getAverageCharWidth): |
| * rendering/RenderTextControlSingleLine.cpp: |
| (WebCore::RenderTextControlSingleLine::layout): |
| (WebCore::RenderTextControlSingleLine::getAverageCharWidth): |
| (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth const): |
| * rendering/RenderTextLineBoxes.cpp: |
| (WebCore::lineDirectionPointFitsInBox): |
| (WebCore::RenderTextLineBoxes::positionForPoint const): |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::paintBorderOnly): |
| * rendering/RenderThemeIOS.h: |
| * rendering/RenderThemeIOS.mm: |
| (WebCore::arKitBundle): |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::availableLogicalHeight const): |
| (WebCore::RenderView::clientLogicalWidthForFixedPosition const): |
| (WebCore::RenderView::clientLogicalHeightForFixedPosition const): |
| (WebCore::RenderView::repaintViewRectangle const): |
| * rendering/RenderWidget.cpp: |
| (WebCore::RenderWidget::willBeDestroyed): |
| * rendering/RootInlineBox.cpp: |
| (WebCore::RootInlineBox::selectionTop const): |
| (WebCore::RootInlineBox::selectionBottom const): |
| * rendering/style/RenderStyle.h: |
| * rendering/style/StyleRareInheritedData.cpp: |
| (WebCore::StyleRareInheritedData::StyleRareInheritedData): |
| (WebCore::StyleRareInheritedData::operator== const): |
| * rendering/style/StyleRareInheritedData.h: |
| * rendering/updating/RenderTreeUpdater.cpp: |
| (WebCore::RenderTreeUpdater::updateElementRenderer): |
| * style/StyleResolveForDocument.cpp: |
| (WebCore::Style::resolveForDocument): |
| * testing/Internals.cpp: |
| (WebCore::Internals::getCurrentCursorInfo): |
| (WebCore::Internals::isSelectPopupVisible): |
| (WebCore::Internals::setQuickLookPassword): |
| * testing/Internals.mm: |
| (WebCore::Internals::userPrefersReducedMotion const): |
| * testing/js/WebCoreTestSupportPrefix.h: |
| * workers/WorkerThread.cpp: |
| (WebCore::WorkerThread::workerThread): |
| |
| 2018-10-18 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] The TextTrackLoader parameter in TextTrackLoaderClient virtual methods should be a reference |
| https://bugs.webkit.org/show_bug.cgi?id=190730 |
| |
| Reviewed by Chris Dumez. |
| |
| No new tests. No change in behavior. |
| |
| * html/track/LoadableTextTrack.cpp: |
| (WebCore::LoadableTextTrack::newCuesAvailable): |
| (WebCore::LoadableTextTrack::cueLoadingCompleted): |
| (WebCore::LoadableTextTrack::newRegionsAvailable): |
| * html/track/LoadableTextTrack.h: |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::cueLoadTimerFired): |
| (WebCore::TextTrackLoader::newRegionsParsed): |
| * loader/TextTrackLoader.h: |
| |
| 2018-10-18 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up FrameLoader two-state enums |
| https://bugs.webkit.org/show_bug.cgi?id=190731 |
| |
| Reviewed by Chris Dumez. |
| |
| This patch does three things: |
| 1. Add an overload to EnumTraits so we do not need to list out the valid values of boolean enum classes. |
| The valid values are always 0 and 1. This is used when decoding from IPC. |
| 2. Add a 2-state enum class for NewLoadInProgress instad of a bool so we can understand the code better. |
| 3. Begin passing LockBackForwardList to the UIProcess. We will need it soon for PSON. |
| |
| * history/CachedFrame.h: |
| * loader/EmptyFrameLoaderClient.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::provisionalLoadStarted): |
| (WebCore::FrameLoader::loadWithDocumentLoader): |
| (WebCore::FrameLoader::commitProvisionalLoad): |
| (WebCore::FrameLoader::clientRedirectCancelledOrFinished): |
| (WebCore::FrameLoader::clientRedirected): |
| (WebCore::FrameLoader::receivedMainResourceError): |
| (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): |
| * loader/FrameLoader.h: |
| * loader/FrameLoaderClient.h: |
| * loader/FrameLoaderTypes.h: |
| * loader/NavigationScheduler.cpp: |
| (WebCore::ScheduledNavigation::didStopTimer): |
| (WebCore::NavigationScheduler::cancel): |
| * loader/NavigationScheduler.h: |
| * platform/network/StoredCredentialsPolicy.h: |
| |
| 2018-10-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [GTK] fast/css/pseudo-visited-background-color-on-input.html is failing since r237425 |
| https://bugs.webkit.org/show_bug.cgi?id=190712 |
| |
| Reviewed by Tim Horton. |
| |
| Ensure that color inputs are enabled by default on GTK, and that color inputs have a `-webkit-appearance` of |
| `color-well` by default. Fixes fast/css/pseudo-visited-background-color-on-input.html on GTK. |
| |
| * page/RuntimeEnabledFeatures.cpp: |
| (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::colorInputStyleSheet const): |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::platformUsesColorWellAppearance const): |
| (WebCore::RenderTheme::platformColorInputStyleSheet const): Deleted. |
| |
| Replace this with a platform hook that determines whether we want to use `-webkit-appearance: color-well;` by |
| default for inputs of type color. For now, only iOS overrides this to return false; in the future, we should |
| support `-webkit-appearance: color-well;` on iOS, and remove this platform hook entirely. |
| |
| * rendering/RenderThemeIOS.h: |
| * rendering/RenderThemeMac.h: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::platformColorInputStyleSheet const): Deleted. |
| |
| 2018-10-18 Youenn Fablet <youenn@apple.com> |
| |
| Handle MDNS resolution of candidates through libwebrtc directly |
| https://bugs.webkit.org/show_bug.cgi?id=190681 |
| |
| Reviewed by Eric Carlson. |
| |
| Remove the previous MDNS resolution mechanism. |
| Instead, add support for the AsyncResolver mechanism added to libwebrtc. |
| Covered by current mdns webrtc test that is unflaked. |
| |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::addIceCandidate): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::LibWebRTCProvider::createPeerConnection): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| * testing/MockLibWebRTCPeerConnection.cpp: |
| (WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection): |
| * testing/MockLibWebRTCPeerConnection.h: |
| |
| 2018-10-18 Ali Juma <ajuma@chromium.org> |
| |
| [IntersectionObserver] Factor out rect mapping and clipping logic from computeRectForRepaint |
| https://bugs.webkit.org/show_bug.cgi?id=189833 |
| |
| Reviewed by Simon Fraser. |
| |
| Factor out the rect mapping and clipping logic from computeRectForRepaint to a new |
| computeVisibleRectInContainer method that computeRectForRepaint now calls. Make |
| computeVisibleRectInContainer take a VisibleRectContext with options to use |
| edge-inclusive intersection and to apply all clips and scrolls rather than only |
| the clips and scrolls that are currently applied by the repaint logic. These |
| options will be used by IntersectionObserver in a future patch. |
| |
| No new tests, no change in behavior. |
| |
| * platform/graphics/FloatRect.cpp: |
| (WebCore::FloatRect::edgeInclusiveIntersect): |
| * platform/graphics/FloatRect.h: |
| * platform/graphics/LayoutRect.cpp: |
| (WebCore::LayoutRect::edgeInclusiveIntersect): |
| * platform/graphics/LayoutRect.h: |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::applyCachedClipAndScrollPosition const): |
| (WebCore::RenderBox::computeVisibleRectUsingPaintOffset const): |
| (WebCore::RenderBox::computeVisibleRectInContainer const): |
| (WebCore::RenderBox::applyCachedClipAndScrollPositionForRepaint const): Deleted. |
| (WebCore::RenderBox::shouldApplyClipAndScrollPositionForRepaint const): Deleted. |
| The iOS-specific logic in this method has moved to RenderObject::shouldApplyCompositedContainerScrollsForRepaint. |
| (WebCore::RenderBox::computeRectForRepaint const): Deleted. |
| * rendering/RenderBox.h: |
| (WebCore::RenderBox::computeRectForRepaint): Deleted. |
| * rendering/RenderInline.cpp: |
| (WebCore::RenderInline::clippedOverflowRectForRepaint const): |
| (WebCore::RenderInline::computeVisibleRectUsingPaintOffset const): |
| (WebCore::RenderInline::computeVisibleRectInContainer const): |
| (WebCore::RenderInline::computeRectForRepaint const): Deleted. |
| * rendering/RenderInline.h: |
| (WebCore::RenderInline::computeRectForRepaint): Deleted. |
| * rendering/RenderObject.cpp: |
| (WebCore::RenderObject::shouldApplyCompositedContainerScrollsForRepaint): |
| (WebCore::RenderObject::visibleRectContextForRepaint): |
| (WebCore::RenderObject::computeRectForRepaint const): |
| (WebCore::RenderObject::computeFloatRectForRepaint const): |
| (WebCore::RenderObject::computeVisibleRectInContainer const): |
| (WebCore::RenderObject::computeFloatVisibleRectInContainer const): |
| * rendering/RenderObject.h: |
| (WebCore::RenderObject::computeAbsoluteRepaintRect const): |
| (WebCore::RenderObject::VisibleRectContext::VisibleRectContext): |
| (WebCore::RenderObject::RepaintContext::RepaintContext): Deleted. |
| (WebCore::RenderObject::computeRectForRepaint): Deleted. |
| * rendering/RenderTableCell.cpp: |
| (WebCore::RenderTableCell::computeVisibleRectInContainer const): |
| (WebCore::RenderTableCell::computeRectForRepaint const): Deleted. |
| * rendering/RenderTableCell.h: |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::computeVisibleRectInContainer const): |
| (WebCore::RenderView::computeRectForRepaint const): Deleted. |
| * rendering/RenderView.h: |
| * rendering/svg/RenderSVGForeignObject.cpp: |
| (WebCore::RenderSVGForeignObject::computeFloatVisibleRectInContainer const): |
| (WebCore::RenderSVGForeignObject::computeVisibleRectInContainer const): |
| (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint const): Deleted. |
| (WebCore::RenderSVGForeignObject::computeRectForRepaint const): Deleted. |
| * rendering/svg/RenderSVGForeignObject.h: |
| * rendering/svg/RenderSVGInline.cpp: |
| (WebCore::RenderSVGInline::computeFloatVisibleRectInContainer const): |
| (WebCore::RenderSVGInline::computeFloatRectForRepaint const): Deleted. |
| * rendering/svg/RenderSVGInline.h: |
| * rendering/svg/RenderSVGModelObject.cpp: |
| (WebCore::RenderSVGModelObject::computeFloatVisibleRectInContainer const): |
| (WebCore::RenderSVGModelObject::computeFloatRectForRepaint const): Deleted. |
| * rendering/svg/RenderSVGModelObject.h: |
| * rendering/svg/RenderSVGRoot.cpp: |
| (WebCore::RenderSVGRoot::computeFloatVisibleRectInContainer const): |
| (WebCore::RenderSVGRoot::computeFloatRectForRepaint const): Deleted. |
| * rendering/svg/RenderSVGRoot.h: |
| * rendering/svg/RenderSVGText.cpp: |
| (WebCore::RenderSVGText::computeVisibleRectInContainer const): |
| (WebCore::RenderSVGText::computeFloatVisibleRectInContainer const): |
| (WebCore::RenderSVGText::computeRectForRepaint const): Deleted. |
| (WebCore::RenderSVGText::computeFloatRectForRepaint const): Deleted. |
| * rendering/svg/RenderSVGText.h: |
| * rendering/svg/SVGRenderSupport.cpp: |
| (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): |
| (WebCore::SVGRenderSupport::computeFloatVisibleRectInContainer): |
| (WebCore::SVGRenderSupport::computeFloatRectForRepaint): Deleted. |
| * rendering/svg/SVGRenderSupport.h: |
| |
| 2018-10-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Enable the datalist element by default on iOS and macOS |
| https://bugs.webkit.org/show_bug.cgi?id=190594 |
| <rdar://problem/45281159> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| Rebaselined existing layout tests. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * css/CSSDefaultStyleSheets.cpp: |
| (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement): |
| * css/CSSDefaultStyleSheets.h: |
| * css/InspectorCSSOMWrappers.cpp: |
| (WebCore::InspectorCSSOMWrappers::collectDocumentWrappers): |
| * css/html.css: |
| |
| Remove color input and datalist style rules from the default UA stylesheet. |
| |
| (input[type="color"]::-webkit-color-swatch-wrapper): Deleted. |
| * html/HTMLDataListElement.idl: |
| |
| Make HTMLDataListElement runtime-enabled. |
| |
| * html/HTMLTagNames.in: |
| * html/RangeInputType.cpp: |
| |
| Make a slight adjustment here so that inputs of type range respect the list attribute. Fixes a few layout tests |
| that add a datalist to an input of type range. See <https://bugs.webkit.org/show_bug.cgi?id=190613> for more |
| details. |
| |
| (WebCore::RangeInputType::shouldRespectListAttribute): |
| * html/TextFieldInputType.cpp: |
| (WebCore::TextFieldInputType::shouldRespectListAttribute): |
| * page/RuntimeEnabledFeatures.h: |
| |
| Add a runtime-enabled feature for the datalist element. Additionally, make the runtime-enabled feature for input |
| type color false by default, so that it's off in WebKitLegacy. |
| |
| (WebCore::RuntimeEnabledFeatures::dataListElementEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setDataListElementEnabled): |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::colorInputStyleSheet const): |
| |
| Add new style-sheet hooks for datalist and input type color, so that style rules for color inputs and datalists |
| can be added at runtime only if the feature is enabled. This ensures that in WebKitLegacy (or other ports where |
| either or both elements are disabled), we don't still apply rules for datalist and input[type="color"]. Notably, |
| this allows fallback content inside datalist elements to still work in WebKitLegacy (which would otherwise be |
| hidden when using the default stylesheet since `display: none` is applied to datalist by default). This also |
| prevents inputs of type color from having a smaller size, no outline, and the appearance of a color well on |
| macOS. |
| |
| (WebCore::RenderTheme::dataListStyleSheet const): |
| * rendering/RenderTheme.h: |
| (WebCore::RenderTheme::platformColorInputStyleSheet const): |
| * rendering/RenderThemeMac.h: |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::platformColorInputStyleSheet const): |
| |
| 2018-10-17 Justin Michaud <justin_michaud@apple.com> |
| |
| Parse paint() and store paint callbacks for CSS Painting API |
| https://bugs.webkit.org/show_bug.cgi?id=190657 |
| |
| Reviewed by Dean Jackson. |
| |
| Implement support for parsing paint() images in css, and store CSS paint callback objects in the paint definition map. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSCSSPaintWorkletGlobalScopeCustom.cpp: |
| (WebCore::JSCSSPaintWorkletGlobalScope::visitAdditionalChildren): |
| (WebCore::JSCSSPaintWorkletGlobalScope::registerPaint): |
| * 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/CSSPaintImageValue.cpp: Added. |
| (WebCore::CSSPaintImageValue::customCSSText const): |
| * css/CSSPaintImageValue.h: Added. |
| * css/CSSPaintWorkletGlobalScope.h: |
| * css/CSSPaintWorkletGlobalScope.idl: |
| * css/CSSValue.cpp: |
| (WebCore::CSSValue::equals const): |
| (WebCore::CSSValue::cssText const): |
| (WebCore::CSSValue::destroy): |
| * css/CSSValue.h: |
| (WebCore::CSSValue::isPaintImageValue const): |
| * css/CSSValueKeywords.in: |
| * css/parser/CSSPropertyParserHelpers.cpp: |
| (WebCore::CSSPropertyParserHelpers::consumeCustomPaint): |
| (WebCore::CSSPropertyParserHelpers::consumeGeneratedImage): |
| (WebCore::CSSPropertyParserHelpers::isGeneratedImage): |
| * platform/mediastream/mac/RealtimeVideoUtilities.h: |
| |
| 2018-10-17 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Consolidate all image conversion and resizing into one class |
| https://bugs.webkit.org/show_bug.cgi?id=190519 |
| <rdar://problem/45224307> |
| |
| Try to fix the iOSMac build after r237236. |
| |
| * platform/graphics/cv/ImageTransferSessionVT.h: |
| * platform/graphics/cv/ImageTransferSessionVT.mm: |
| |
| 2018-10-17 Justin Fan <justin_fan@apple.com> |
| |
| [WebGPU] Implement WebGPU bindings up through WebGPUDevice creation |
| https://bugs.webkit.org/show_bug.cgi?id=190653 |
| |
| Reviewed by Dean Jackson. |
| |
| Test: webgpu/webgpu-enabled.html |
| |
| Add WebGPU Sketch bindings for window.webgpu, WebGPUAdapter, WebGPUAdapterDescriptor, |
| and WebGPUDevice creation. Based off IDL commit version b6c61ee. |
| https://github.com/gpuweb/gpuweb/blob/master/design/sketch.webidl |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/webgpu/DOMWindowWebGPU.cpp: Added. |
| (WebCore::DOMWindowWebGPU::DOMWindowWebGPU): |
| (WebCore::DOMWindowWebGPU::supplementName): |
| (WebCore::DOMWindowWebGPU::from): |
| (WebCore::DOMWindowWebGPU::webgpu): |
| (WebCore::DOMWindowWebGPU::webgpu const): |
| * Modules/webgpu/DOMWindowWebGPU.h: Added. |
| * Modules/webgpu/DOMWindowWebGPU.idl: Added. |
| * Modules/webgpu/WebGPU.cpp: Added. |
| (WebCore::WebGPU::create): |
| (WebCore::WebGPU::requestAdapter const): |
| * Modules/webgpu/WebGPU.h: Added. |
| * Modules/webgpu/WebGPU.idl: Added. |
| * Modules/webgpu/WebGPUAdapter.cpp: Added. |
| (WebCore::WebGPUAdapter::create): |
| (WebCore::WebGPUAdapter::WebGPUAdapter): |
| (WebCore::WebGPUAdapter::createDevice): |
| * Modules/webgpu/WebGPUAdapter.h: Added. |
| * Modules/webgpu/WebGPUAdapter.idl: Added. |
| * Modules/webgpu/WebGPUAdapterDescriptor.h: Added. |
| * Modules/webgpu/WebGPUAdapterDescriptor.idl: Added. |
| * Modules/webgpu/WebGPUDevice.cpp: Added. |
| (WebCore::WebGPUDevice::create): |
| (WebCore::WebGPUDevice::WebGPUDevice): |
| * Modules/webgpu/WebGPUDevice.h: Added. |
| (WebCore::WebGPUDevice::adapter const): |
| * Modules/webgpu/WebGPUDevice.idl: Added. |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| |
| 2018-10-17 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Increment the API version to 5 |
| https://bugs.webkit.org/show_bug.cgi?id=190686 |
| <rdar://problem/45348523> |
| |
| Reviewed by Simon Fraser. |
| |
| Test: http/tests/ssl/applepay/ApplePaySessionV5.html |
| |
| * testing/MockPaymentCoordinator.cpp: |
| (WebCore::MockPaymentCoordinator::supportsVersion): |
| |
| 2018-10-17 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Consolidate all image conversion and resizing into one class |
| https://bugs.webkit.org/show_bug.cgi?id=190519 |
| <rdar://problem/45224307> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, no functional change. |
| |
| * SourcesCocoa.txt: Add ImageTransferSessionVT. |
| * WebCore.xcodeproj/project.pbxproj: Ditto. |
| |
| * platform/MediaSample.h: |
| (WebCore::MediaSample::videoPixelFormat const): New. |
| |
| * platform/cocoa/VideoToolboxSoftLink.cpp: Add new kVTPixelTransferProperty keys. |
| * platform/cocoa/VideoToolboxSoftLink.h: |
| |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: |
| (WebCore::MediaSampleAVFObjC::create): Remove unimplemented variant. |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: |
| (WebCore::MediaSampleAVFObjC::videoPixelFormat const): New. |
| |
| * platform/graphics/cv/ImageTransferSessionVT.h: Added. |
| (WebCore::ImageTransferSessionVT::create): |
| * platform/graphics/cv/ImageTransferSessionVT.mm: Added. |
| (WebCore::ImageTransferSessionVT::ImageTransferSessionVT): |
| (WebCore::ImageTransferSessionVT::~ImageTransferSessionVT): |
| (WebCore::ImageTransferSessionVT::setSize): |
| (WebCore::ImageTransferSessionVT::createPixelBuffer): |
| (WebCore::ImageTransferSessionVT::createCMSampleBuffer): |
| (WebCore::roundUpToMacroblockMultiple): |
| (WebCore::ImageTransferSessionVT::ioSurfacePixelBufferCreationOptions): |
| (WebCore::ImageTransferSessionVT::createMediaSample): |
| |
| * platform/graphics/cv/PixelBufferResizer.h: Removed. |
| * platform/graphics/cv/PixelBufferResizer.mm: Removed. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::prefersPreset): |
| (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): Remove |
| the resizing logic, it is handled by the base class. |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::capabilities): |
| (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): |
| (WebCore::DisplayCaptureSourceCocoa::setIntrinsicSize): |
| (WebCore::DisplayCaptureSourceCocoa::emitFrame): Remove resizing logic, just use a transfer |
| session to create an image from the capture source native output format. |
| (WebCore::DisplayCaptureSourceCocoa::sampleBufferFromPixelBuffer): Deleted. |
| (WebCore::roundUpToMacroblockMultiple): Deleted. |
| (WebCore::DisplayCaptureSourceCocoa::pixelBufferFromIOSurface): Deleted. |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: |
| |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Use image transfer session. |
| (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): Deleted. |
| (WebCore::MockRealtimeVideoSourceMac::pixelBufferFromCGImage const): Deleted. |
| (WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset): Deleted. |
| |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: |
| (WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): |
| (WebCore::ScreenDisplayCaptureSourceMac::generateFrame): Return the IOSurface directly. |
| |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm: |
| (WebCore::WindowDisplayCaptureSourceMac::generateFrame): Return the CGImage directly. |
| (WebCore::WindowDisplayCaptureSourceMac::pixelBufferFromCGImage): Deleted. |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::capabilities): Only the camera supports device ID. |
| (WebCore::MockRealtimeVideoSource::settings): Ditto. |
| |
| 2018-10-17 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Clean up capture source factory management |
| https://bugs.webkit.org/show_bug.cgi?id=190502 |
| <rdar://problem/45212447> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, no functional change. |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::setAudioFactory): |
| (WebCore::RealtimeMediaSourceCenter::unsetAudioFactory): |
| (WebCore::RealtimeMediaSourceCenter::audioFactory): |
| (WebCore::RealtimeMediaSourceCenter::setVideoFactory): |
| (WebCore::RealtimeMediaSourceCenter::unsetVideoFactory): |
| (WebCore::RealtimeMediaSourceCenter::videoFactory): |
| (WebCore::RealtimeMediaSourceCenter::setDisplayCaptureFactory): |
| (WebCore::RealtimeMediaSourceCenter::unsetDisplayCaptureFactory): |
| (WebCore::RealtimeMediaSourceCenter::displayCaptureFactory): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::setAudioFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenter::unsetAudioFactory): Deleted. |
| (): Deleted. |
| * platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp: |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactoryPrivate): |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactoryPrivate): |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactoryPrivate): |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::audioCaptureSourceFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactory): Deleted. |
| * platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.h: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::audioFactoryPrivate): |
| (WebCore::RealtimeMediaSourceCenterMac::videoFactoryPrivate): |
| (WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactoryPrivate): |
| (WebCore::RealtimeMediaSourceCenterMac::videoCaptureSourceFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterMac::displayCaptureSourceFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterMac::audioCaptureSourceFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterMac::audioFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterMac::videoFactory): Deleted. |
| (WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactory): Deleted. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeMediaSourceCenter::audioFactoryPrivate): |
| (WebCore::MockRealtimeMediaSourceCenter::videoFactoryPrivate): |
| (WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactoryPrivate): |
| (WebCore::MockRealtimeMediaSourceCenter::audioFactory): Deleted. |
| (WebCore::MockRealtimeMediaSourceCenter::videoFactory): Deleted. |
| (WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactory): Deleted. |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| |
| 2018-10-17 Alex Christensen <achristensen@webkit.org> |
| |
| BackForwardClient needs to be able to support UIProcess-only back/forward lists |
| https://bugs.webkit.org/show_bug.cgi?id=190675 |
| |
| Reviewed by Chris Dumez. |
| |
| Return a RefPtr<HistoryItem> instead of a HistoryItem so that we will be able to return a |
| HistoryItem that has been created instead of a pointer to a HistoryItem that is owned by something else. |
| Also use unsigned for the back and forward list counts because they can never be negative. |
| |
| * history/BackForwardClient.h: |
| * history/BackForwardController.cpp: |
| (WebCore::BackForwardController::backItem): |
| (WebCore::BackForwardController::currentItem): |
| (WebCore::BackForwardController::forwardItem): |
| (WebCore::BackForwardController::canGoBackOrForward const): |
| (WebCore::BackForwardController::goBackOrForward): |
| (WebCore::BackForwardController::goBack): |
| (WebCore::BackForwardController::goForward): |
| (WebCore::BackForwardController::count const): |
| (WebCore::BackForwardController::backCount const): |
| (WebCore::BackForwardController::forwardCount const): |
| (WebCore::BackForwardController::itemAtIndex): |
| * history/BackForwardController.h: |
| (WebCore::BackForwardController::backItem): Deleted. |
| (WebCore::BackForwardController::currentItem): Deleted. |
| (WebCore::BackForwardController::forwardItem): Deleted. |
| * loader/EmptyClients.cpp: |
| * loader/NavigationScheduler.cpp: |
| (WebCore::NavigationScheduler::scheduleHistoryNavigation): |
| |
| 2018-10-17 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Do not create a DocumentTimeline to suspend or resume animations |
| https://bugs.webkit.org/show_bug.cgi?id=190660 |
| |
| Reviewed by Dean Jackson. |
| |
| We check that there is an existing timeline before trying to suspend or resume its animations, otherwise |
| we're creating a DocumentTimeline when nothing requires for it to exist. We also have to check that we |
| suspend animations when a DocumentTimeline is created while the page is not visible. |
| |
| No new tests as there is no change in behavior here. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::DocumentTimeline): |
| * dom/Document.cpp: |
| (WebCore::Document::didBecomeCurrentDocumentInFrame): |
| (WebCore::Document::resume): |
| * page/Frame.cpp: |
| (WebCore::Frame::clearTimers): |
| * page/Page.cpp: |
| (WebCore::Page::setIsVisibleInternal): |
| (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged): |
| |
| 2018-10-17 Antti Koivisto <antti@apple.com> |
| |
| Tiling CSS gradients is slow |
| https://bugs.webkit.org/show_bug.cgi?id=190615 |
| |
| Reviewed by Tim Horton. |
| |
| Painting blocks the main thread on CG rendering queue to make a copy of the backing store. |
| |
| * platform/graphics/BitmapImage.cpp: |
| (WebCore::BitmapImage::drawPattern): |
| |
| Also use sinkIntoImage for bitmap image pattern drawing. |
| |
| * platform/graphics/GradientImage.cpp: |
| (WebCore::GradientImage::drawPattern): |
| |
| Sink the gradient into an Image after generating it. Unlike ImageBuffer, painting it doesn't involve inefficient copies. |
| Previous isCompatibleWithContext test is replaced with an equivalent scale factor test. |
| |
| * platform/graphics/GradientImage.h: |
| |
| 2018-10-17 Chris Dumez <cdumez@apple.com> |
| |
| Update more DOMWindow getters to return references instead of raw pointers |
| https://bugs.webkit.org/show_bug.cgi?id=190654 |
| |
| Reviewed by Youenn Fablet. |
| |
| Update more DOMWindow getters to return references instead of raw pointers, since they |
| can no longer return null after recent refactoring. |
| |
| * Modules/gamepad/GamepadManager.cpp: |
| (WebCore::navigatorGamepadFromDOMWindow): |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::JSDOMWindow::heapSnapshot): |
| * dom/Document.cpp: |
| (WebCore::Document::location const): |
| (WebCore::Document::dispatchPopstateEvent): |
| * dom/Event.cpp: |
| (WebCore::Event::timeStampForBindings const): |
| * loader/DocumentThreadableLoader.cpp: |
| (WebCore::DocumentThreadableLoader::loadRequest): |
| * loader/ResourceTimingInformation.cpp: |
| (WebCore::ResourceTimingInformation::addResourceTiming): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::screen): |
| (WebCore::DOMWindow::history): |
| (WebCore::DOMWindow::crypto const): |
| (WebCore::DOMWindow::locationbar): |
| (WebCore::DOMWindow::menubar): |
| (WebCore::DOMWindow::personalbar): |
| (WebCore::DOMWindow::scrollbars): |
| (WebCore::DOMWindow::statusbar): |
| (WebCore::DOMWindow::toolbar): |
| (WebCore::DOMWindow::applicationCache): |
| (WebCore::DOMWindow::navigator): |
| (WebCore::DOMWindow::performance const): |
| (WebCore::DOMWindow::nowTimestamp const): |
| (WebCore::DOMWindow::location): |
| (WebCore::DOMWindow::visualViewport): |
| (WebCore::DOMWindow::styleMedia): |
| * page/DOMWindow.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::updateLayoutViewport): |
| * page/History.cpp: |
| (WebCore::History::stateObjectAdded): |
| * page/IntersectionObserver.cpp: |
| (WebCore::IntersectionObserver::createTimestamp const): |
| * page/PerformanceObserver.cpp: |
| (WebCore::PerformanceObserver::PerformanceObserver): |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (WebCore::VideoFullscreenModelVideoElement::requestFullscreenMode): |
| |
| 2018-10-17 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Certain tags should identify their context to iOS API |
| https://bugs.webkit.org/show_bug.cgi?id=190622 |
| <rdar://problem/45308194> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Convey the semantic meaning of <code> tag to the iOS API so VoiceOver can make use of it. |
| |
| Tests: accessibility/ios-simulator/text-context-attributes.html |
| |
| * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: |
| (-[WebAccessibilityObjectWrapper accessibilityTextualContext]): |
| (AXAttributeStringSetStyle): |
| |
| 2018-10-17 Youenn Fablet <youenn@apple.com> |
| |
| Remove unused code from RealtimeOutgoingVideoSourceCocoa |
| https://bugs.webkit.org/show_bug.cgi?id=190666 |
| |
| Reviewed by Eric Carlson. |
| |
| No change of behavior, removed no longer used code. |
| |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: |
| (): Deleted. |
| |
| 2018-10-17 Ali Juma <ajuma@chromium.org> |
| |
| Flaky IntersectionObserver web platform tests involving style updates |
| https://bugs.webkit.org/show_bug.cgi?id=189091 |
| |
| Reviewed by Simon Fraser. |
| |
| Update intersection observations when flushing layers from the WebProcess |
| to the UIProcess to make the timing of these updates more predictable, and |
| more consistent with the IntersectionObserver spec, since the spec expects |
| these updates to happen as part of the "Update the rendering" step in the |
| HTML EventLoop. |
| |
| Getting a similar approach to work with WK1 seems to add more complexity than it's |
| worth, since flushes don't happen for scrolls handled by platform widgets, and |
| flushes for other invalidations only happen when in compositing mode. |
| |
| The only remaining timer-driven intersection observation update is for handling |
| the initial observation on a newly added target, which needs to happen even if |
| there are no changes triggering a flush. |
| |
| Tested by the following tests no longer being flaky: |
| imported/w3c/web-platform-tests/intersection-observer/bounding-box.html |
| imported/w3c/web-platform-tests/intersection-observer/display-none.html |
| imported/w3c/web-platform-tests/intersection-observer/containing-block.html |
| |
| * dom/Document.cpp: |
| (WebCore::Document::resolveStyle): |
| (WebCore::Document::updateIntersectionObservations): |
| (WebCore::Document::scheduleForcedIntersectionObservationUpdate): |
| (WebCore::Document::scheduleIntersectionObservationUpdate): Deleted. |
| * dom/Document.h: |
| * page/FrameView.cpp: |
| (WebCore::FrameView::flushCompositingStateForThisFrame): |
| (WebCore::FrameView::viewportContentsChanged): |
| * page/IntersectionObserver.cpp: |
| (WebCore::IntersectionObserver::observe): |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| (WebCore::Page::willDisplayPage): |
| (WebCore::Page::addDocumentNeedingIntersectionObservationUpdate): |
| (WebCore::Page::updateIntersectionObservations): |
| (WebCore::Page::scheduleForcedIntersectionObservationUpdate): |
| * page/Page.h: |
| |
| 2018-10-17 Charlie Turner <cturner@igalia.com> |
| |
| [EME] Sanity check key ID length in the keyids init data format |
| https://bugs.webkit.org/show_bug.cgi?id=190629 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Covered by web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html |
| |
| * Modules/encryptedmedia/InitDataRegistry.cpp: |
| (WebCore::extractKeyIDsKeyids): Ensure the decoded key id length |
| is at least 1 byte and no more than 512 bytes. |
| |
| 2018-10-16 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236795) Check boxes are sometimes checked when they should not be |
| https://bugs.webkit.org/show_bug.cgi?id=190651 |
| <rdar://problem/45319934> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| r236795 mistakenly dropped the statement resetting m_reflectsCheckedAttribute to true |
| in HTMLInputElement::parseAttribute() because it looked like a no-op given that we |
| made sure it was true a couple of line above. However, I overlooked that calling |
| HTMLInputElement::setChecked() sets m_reflectsCheckedAttribute to false. |
| |
| This patch thus re-introduces the statement. It also renames m_reflectsCheckedAttribute |
| to m_dirtyCheckednessFlag and reverses its value in order to match the specification |
| more closely: |
| - https://html.spec.whatwg.org/#concept-input-checked-dirty-flag |
| |
| Test: fast/dom/HTMLInputElement/checkbox-dirty-checkedness-flag.html |
| |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::HTMLInputElement): |
| (WebCore::HTMLInputElement::parseAttribute): |
| (WebCore::HTMLInputElement::finishParsingChildren): |
| (WebCore::HTMLInputElement::reset): |
| (WebCore::HTMLInputElement::setChecked): |
| (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement): |
| * html/HTMLInputElement.h: |
| |
| 2018-10-16 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a switch for Web SQL |
| https://bugs.webkit.org/show_bug.cgi?id=190271 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Web SQL is still enabled by default. |
| |
| * Modules/webdatabase/DOMWindowWebDatabase.idl: |
| * Modules/webdatabase/Database.idl: |
| * Modules/webdatabase/SQLError.idl: |
| * Modules/webdatabase/SQLResultSet.idl: |
| * Modules/webdatabase/SQLResultSetRowList.idl: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setWebSQLDisabled): |
| (WebCore::RuntimeEnabledFeatures::webSQLEnabled const): |
| |
| 2018-10-16 Chris Dumez <cdumez@apple.com> |
| |
| window.performance should not become null after the window loses its browsing context |
| https://bugs.webkit.org/show_bug.cgi?id=190636 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| window.performance should not become null after the window loses its browsing context. This |
| WebKit behavior does not match the HTML specification nor the behavior of other browsers. |
| |
| Also note that the attribute is not nullable in the specification: |
| - https://www.w3.org/TR/navigation-timing/#sec-window.performance-attribute |
| |
| No new tests, updated existing test. |
| |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::performance const): |
| * page/Performance.cpp: |
| (WebCore::Performance::Performance): |
| * page/Performance.h: |
| * platform/GenericTaskQueue.h: |
| (WebCore::TaskDispatcher::TaskDispatcher): |
| (WebCore::TaskDispatcher::postTask): |
| (WebCore::GenericTaskQueue::GenericTaskQueue): |
| (WebCore::GenericTaskQueue::isClosed const): |
| * workers/WorkerGlobalScope.cpp: |
| (WebCore::WorkerGlobalScope::WorkerGlobalScope): |
| |
| 2018-10-16 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: Convert HTMLMediaElement::scheduleDelayedAction() to individually schedulable & cancelable tasks |
| https://bugs.webkit.org/show_bug.cgi?id=188208 |
| |
| Reviewed by Eric Carlson. |
| |
| Rather than have a single, monolithic, zero-duration-timer based dispatch for |
| a bunch of methods to be performed in a future run-loop, convert them all to |
| use a DeferrableTask, which in turn is a kind of GenericTaskQueue which can |
| enqueue only a single task at a time. Convert some other zero-duration-timer |
| and GenericTaskQueue dispatches to this new DeferrableTask. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| (WebCore::HTMLMediaElement::finishParsingChildren): |
| (WebCore::HTMLMediaElement::scheduleCheckPlaybackTargetCompatability): |
| (WebCore::HTMLMediaElement::checkPlaybackTargetCompatablity): |
| (WebCore::HTMLMediaElement::prepareForLoad): |
| (WebCore::HTMLMediaElement::setReadyState): |
| (WebCore::HTMLMediaElement::seekWithTolerance): |
| (WebCore::HTMLMediaElement::setMuted): |
| (WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): |
| (WebCore::HTMLMediaElement::didAddTextTrack): |
| (WebCore::HTMLMediaElement::scheduleConfigureTextTracks): |
| (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): |
| (WebCore::HTMLMediaElement::scheduleMediaEngineWasUpdated): |
| (WebCore::HTMLMediaElement::mediaEngineWasUpdated): |
| (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): |
| (WebCore::HTMLMediaElement::scheduleUpdatePlayState): |
| (WebCore::HTMLMediaElement::updatePlayState): |
| (WebCore::HTMLMediaElement::setPlaying): |
| (WebCore::HTMLMediaElement::setPausedInternal): |
| (WebCore::HTMLMediaElement::cancelPendingTasks): |
| (WebCore::HTMLMediaElement::userCancelledLoad): |
| (WebCore::HTMLMediaElement::clearMediaPlayer): |
| (WebCore::HTMLMediaElement::contextDestroyed): |
| (WebCore::HTMLMediaElement::stop): |
| (WebCore::HTMLMediaElement::suspend): |
| (WebCore::HTMLMediaElement::resume): |
| (WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): |
| (WebCore::HTMLMediaElement::dispatchEvent): |
| (WebCore::HTMLMediaElement::removeEventListener): |
| (WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): |
| (WebCore::HTMLMediaElement::didBecomeFullscreenElement): |
| (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): |
| (WebCore::HTMLMediaElement::scheduleUpdateMediaState): |
| (WebCore::HTMLMediaElement::updateMediaState): |
| (WebCore::HTMLMediaElement::playbackControlsManagerBehaviorRestrictionsTimerFired): |
| (WebCore::setFlags): Deleted. |
| (WebCore::clearFlags): Deleted. |
| (WebCore::actionName): Deleted. |
| (WebCore::HTMLMediaElement::scheduleDelayedAction): Deleted. |
| (WebCore::HTMLMediaElement::pendingActionTimerFired): Deleted. |
| * html/HTMLMediaElement.h: |
| * html/HTMLMediaElementEnums.h: |
| * platform/DeferrableTask.h: Added. |
| (WebCore::DeferrableTask::DeferrableTask): |
| (WebCore::DeferrableTask::scheduleTask): |
| (WebCore::DeferrableTask::close): |
| (WebCore::DeferrableTask::cancelTask): |
| (WebCore::DeferrableTask::hasPendingTask const): |
| |
| 2018-10-16 Timothy Hatcher <timothy@apple.com> |
| |
| Add <meta name="supported-color-schemes"> to control what color schemes the page supports |
| https://bugs.webkit.org/show_bug.cgi?id=190526 |
| rdar://problem/45230140 |
| |
| Reviewed by Dean Jackson. |
| |
| Test: css-dark-mode/supported-color-schemes.html |
| |
| * dom/Document.cpp: |
| (WebCore::isColorSchemeSeparator): Added. |
| (WebCore::processColorSchemes): Added. |
| (WebCore::Document::processSupportedColorSchemes): Added. |
| (WebCore::Document::useDarkAppearance const): Take system appearance and document's |
| suppoerted color shcemes into account. |
| * dom/Document.h: |
| * editing/cocoa/WebContentReaderCocoa.mm: |
| (WebCore::createFragment): Update use of LocalDefaultSystemAppearance. |
| * html/HTMLMetaElement.cpp: |
| (WebCore::HTMLMetaElement::process): Added supported-color-schemes behind runtime feature check. |
| * inspector/InspectorOverlay.cpp: |
| (WebCore::InspectorOverlay::paint): Update use of LocalDefaultSystemAppearance. |
| * platform/mac/DragImageMac.mm: |
| (WebCore::createDragImageForLink): Update use of LocalDefaultSystemAppearance. |
| * platform/mac/LocalDefaultSystemAppearance.h: |
| * platform/mac/LocalDefaultSystemAppearance.mm: |
| (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance): |
| Drop the need for useSystemAppearance. This is accounted for in Document::useDarkAppearance. |
| * platform/mac/ThemeMac.mm: |
| (WebCore::ThemeMac::paint): Update use of LocalDefaultSystemAppearance. |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::paintContents): Update use of LocalDefaultSystemAppearance. |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::paintContents): Update use of LocalDefaultSystemAppearance. |
| * rendering/RenderTheme.cpp: |
| (WebCore::RenderTheme::paint): Use document instead of page. |
| * rendering/RenderThemeCocoa.mm: |
| (WebCore::RenderThemeCocoa::drawLineForDocumentMarker): Update use of LocalDefaultSystemAppearance. |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::documentViewFor const): Update use of LocalDefaultSystemAppearance. |
| (WebCore::RenderThemeMac::platformActiveSelectionBackgroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const): Ditto. |
| (WebCore::RenderThemeMac::transformSelectionBackgroundColor const): Ditto. |
| (WebCore::RenderThemeMac::supportsSelectionForegroundColors const): Ditto. |
| (WebCore::RenderThemeMac::platformActiveSelectionForegroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformInactiveSelectionForegroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformActiveListBoxSelectionForegroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformInactiveListBoxSelectionForegroundColor const): Ditto. |
| (WebCore::RenderThemeMac::platformActiveTextSearchHighlightColor const): Ditto. |
| (WebCore::RenderThemeMac::colorCache const): Ditto. |
| (WebCore::RenderThemeMac::systemColor const): Ditto. |
| (WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary): Ditto. |
| (WebCore::RenderThemeMac::paintSliderThumb): Ditto. |
| (WebCore::RenderThemeMac::usingDarkAppearance const): No need to limit to macOS here. |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::draw): Update use of LocalDefaultSystemAppearance. |
| |
| 2018-10-16 Rob Buis <rbuis@igalia.com> |
| |
| Remove superfluous VIDEO build guard |
| https://bugs.webkit.org/show_bug.cgi?id=190624 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Remove some instances where the VIDEO build guard is included within another VIDEO build guard. |
| |
| No new tests. No change in behavior. |
| |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::buildMediaEnginesVector): |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/MediaPlayerPrivate.h: |
| |
| 2018-10-16 Youenn Fablet <youenn@apple.com> |
| |
| Support RTCConfiguration.certificates |
| https://bugs.webkit.org/show_bug.cgi?id=190603 |
| |
| Reviewed by Eric Carlson. |
| |
| Update RTCConfiguration to have a certificates member. |
| Add the conversion from RTCCertificate to libwebrtc certificates. |
| Add check to ensure that certificates are not expired. |
| Add check to ensure that certificates passed to setConfiguration were |
| the same as the ones passed to RTCPeerConnection constructor. |
| Once these checks are done, we reuse the certificates created at |
| RCPeerConnection creation time when setting the configuration again. |
| |
| Covered by rebased WPT test. |
| |
| * Modules/mediastream/RTCConfiguration.h: |
| * Modules/mediastream/RTCConfiguration.idl: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::certificatesFromConfiguration): |
| (WebCore::RTCPeerConnection::initializeConfiguration): |
| (WebCore::RTCPeerConnection::setConfiguration): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::setConfiguration): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::configurationFromMediaEndpointConfiguration): |
| * platform/mediastream/MediaEndpointConfiguration.cpp: |
| (WebCore::MediaEndpointConfiguration::MediaEndpointConfiguration): |
| * platform/mediastream/MediaEndpointConfiguration.h: |
| |
| 2018-10-16 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r237163. |
| |
| Introduced layout test failures on iOS Simulator. |
| |
| Reverted changeset: |
| |
| "[CG] Adopt CG SPI for non-even cornered rounded rects" |
| https://bugs.webkit.org/show_bug.cgi?id=190155 |
| https://trac.webkit.org/changeset/237163 |
| |
| 2018-10-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: capture previously saved states and add them to the recording payload |
| https://bugs.webkit.org/show_bug.cgi?id=190473 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Updated existing tests: inspector/canvas/recording-2d.html |
| inspector/model/recording.html |
| |
| Instead of sending a single object of the current state of the context, send an array of |
| objects, one for each restore point. |
| |
| * html/canvas/CanvasRenderingContext2DBase.h: |
| * html/canvas/CanvasRenderingContext2DBase.cpp: |
| (WebCore::CanvasRenderingContext2DBase::stateStack): Added. |
| |
| * inspector/InspectorCanvas.h: |
| * inspector/InspectorCanvas.cpp: |
| (WebCore::InspectorCanvas::stringIndexForKey): Added. |
| (WebCore::InspectorCanvas::buildInitialState): |
| |
| 2018-10-16 Justin Michaud <justin_michaud@apple.com> |
| |
| Implement feature flag and bindings for CSS Painting API |
| https://bugs.webkit.org/show_bug.cgi?id=190237 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add feature flag and bindings for CSS Painting API. This adds a new property, |
| CSS.paintWorkletGlobalScope, which will be a temporary way to access the paint |
| worklet global scope untill CSS.paintWorklet is implemented. |
| |
| There are a few small changes, mostly adding headers and "using" declarations, |
| that were required to get this to build. This is probably related to unified sources. |
| |
| Tests: fast/css-custom-paint/basic.html |
| fast/css-custom-paint/registerPaintBindings.html |
| |
| * CMakeLists.txt: |
| * Configurations/FeatureDefines.xcconfig: |
| * DerivedSources.make: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSCSSPaintWorkletGlobalScopeCustom.cpp: Added. |
| (WebCore::throwInvalidModificationError): |
| (WebCore::JSCSSPaintWorkletGlobalScope::registerPaint): |
| * bindings/js/JSEventListener.cpp: |
| * bindings/js/JSRemoteDOMWindowCustom.cpp: |
| * bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * css/CSSPaintCallback.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp. |
| (WebCore::CSSPaintCallback::~CSSPaintCallback): |
| * css/CSSPaintCallback.idl: Added. |
| * css/CSSPaintWorkletGlobalScope.cpp: Copied from Source/WebCore/css/MediaQueryParserContext.cpp. |
| (WebCore::CSSPaintWorkletGlobalScope::create): |
| (WebCore::CSSPaintWorkletGlobalScope::CSSPaintWorkletGlobalScope): |
| (WebCore::CSSPaintWorkletGlobalScope::devicePixelRatio): |
| (WebCore::CSSPaintWorkletGlobalScope::addRegisteredPaint): |
| * css/CSSPaintWorkletGlobalScope.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp. |
| (WebCore::CSSPaintWorkletGlobalScope::paintDefinitionMap): |
| * css/CSSPaintWorkletGlobalScope.idl: Added. |
| * css/DOMCSSPaintWorklet.cpp: Copied from Source/WebCore/css/MediaQueryParserContext.cpp. |
| (WebCore::DOMCSSPaintWorklet::ensurePaintWorkletGlobalScope): |
| (WebCore::DOMCSSPaintWorklet::from): |
| (WebCore::DOMCSSPaintWorklet::supplementName): |
| * css/DOMCSSPaintWorklet.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp. |
| * css/DOMCSSPaintWorklet.idl: Added. |
| * css/MediaQueryParserContext.cpp: |
| * css/StyleBuilder.h: |
| * dom/Document.cpp: |
| (WebCore::Document::ensureCSSPaintWorkletGlobalScope): |
| * dom/Document.h: |
| * features.json: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setCSSPaintingAPIEnabled): |
| (WebCore::RuntimeEnabledFeatures::cssPaintingAPIEnabled const): |
| |
| 2018-10-16 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] Support inline WebVTT styles |
| https://bugs.webkit.org/show_bug.cgi?id=190369 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for inline WebVTT styles, see https://w3c.github.io/webvtt/#styling. The parsed |
| style strings from the VTT file are added to an optional vector of style strings in the |
| TextTrack class. These styles are then added as HTMLStyleElement children to the parent of |
| the cue span element. |
| |
| Test: media/track/track-cue-css.html |
| |
| * html/track/InbandGenericTextTrack.cpp: |
| (WebCore::InbandGenericTextTrack::newStyleSheetsParsed): |
| * html/track/InbandGenericTextTrack.h: |
| * html/track/InbandWebVTTTextTrack.cpp: |
| (WebCore::InbandWebVTTTextTrack::newStyleSheetsParsed): |
| * html/track/InbandWebVTTTextTrack.h: |
| * html/track/LoadableTextTrack.cpp: |
| (WebCore::LoadableTextTrack::newStyleSheetsAvailable): |
| * html/track/LoadableTextTrack.h: |
| * html/track/TextTrack.h: |
| (WebCore::TextTrack::styleSheets const): |
| * html/track/VTTCue.cpp: |
| (WebCore::VTTCue::getDisplayTree): |
| * html/track/WebVTTParser.cpp: |
| (WebCore::WebVTTParser::getNewCues): |
| (WebCore::WebVTTParser::getStyleSheets): |
| (WebCore::WebVTTParser::parse): |
| (WebCore::WebVTTParser::collectWebVTTBlock): |
| (WebCore::WebVTTParser::collectStyleSheet): |
| (WebCore::WebVTTParser::checkStyleSheet): |
| (WebCore::WebVTTParser::checkAndStoreStyleSheet): |
| * html/track/WebVTTParser.h: |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::newStyleSheetsParsed): |
| (WebCore::TextTrackLoader::getNewStyleSheets): |
| * loader/TextTrackLoader.h: |
| |
| 2018-10-16 Chris Dumez <cdumez@apple.com> |
| |
| window.navigator should not become null after the window loses its browsing context |
| https://bugs.webkit.org/show_bug.cgi?id=190595 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| window.navigator should not become null after the window loses its browsing context. |
| This does not match the HTML specification or the behavior of other browsers. |
| |
| No new tests, updated existing tests. |
| |
| * Modules/geolocation/NavigatorGeolocation.cpp: |
| (WebCore::NavigatorGeolocation::geolocation const): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::navigator): |
| * page/Navigator.cpp: |
| (WebCore::Navigator::Navigator): |
| * page/Navigator.h: |
| * page/NavigatorBase.cpp: |
| (WebCore::NavigatorBase::NavigatorBase): |
| * page/NavigatorBase.h: |
| * page/WorkerNavigator.cpp: |
| (WebCore::WorkerNavigator::WorkerNavigator): |
| * workers/service/ServiceWorkerContainer.cpp: |
| (WebCore::ServiceWorkerContainer::ServiceWorkerContainer): |
| * workers/service/ServiceWorkerContainer.h: |
| |
| 2018-10-16 Alex Christensen <achristensen@webkit.org> |
| |
| Replace HistoryItem* with HistoryItem& where possible |
| https://bugs.webkit.org/show_bug.cgi?id=190617 |
| |
| Reviewed by Chris Dumez. |
| |
| * history/BackForwardClient.h: |
| * history/BackForwardController.cpp: |
| (WebCore::BackForwardController::setCurrentItem): |
| * history/BackForwardController.h: |
| * history/HistoryItem.cpp: |
| (WebCore::defaultNotifyHistoryItemChanged): |
| (WebCore::HistoryItem::setAlternateTitle): |
| (WebCore::HistoryItem::setURLString): |
| (WebCore::HistoryItem::setOriginalURLString): |
| (WebCore::HistoryItem::setReferrer): |
| (WebCore::HistoryItem::setTitle): |
| (WebCore::HistoryItem::setTarget): |
| (WebCore::HistoryItem::setShouldRestoreScrollPosition): |
| (WebCore::HistoryItem::setStateObject): |
| (WebCore::HistoryItem::notifyChanged): |
| * history/HistoryItem.h: |
| * loader/EmptyClients.cpp: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::checkLoadCompleteForThisFrame): |
| (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): |
| (WebCore::FrameLoader::loadSameDocumentItem): |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::goToItem): |
| (WebCore::HistoryController::updateForCommit): |
| (WebCore::HistoryController::recursiveUpdateForCommit): |
| (WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation): |
| (WebCore::HistoryController::setCurrentItem): |
| (WebCore::HistoryController::createItem): |
| (WebCore::HistoryController::itemsAreClones const): |
| (WebCore::HistoryController::currentFramesMatchItem const): |
| * loader/HistoryController.h: |
| |
| 2018-10-16 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WebHistoryItem._transientPropertyForKey |
| https://bugs.webkit.org/show_bug.cgi?id=190606 |
| |
| Reviewed by Chris Dumez. |
| |
| This is unnecessary complexity in HistoryItem. |
| |
| * history/HistoryItem.h: |
| * history/mac/HistoryItemMac.mm: |
| (WebCore::HistoryItem::getTransientProperty const): Deleted. |
| (WebCore::HistoryItem::setTransientProperty): Deleted. |
| |
| 2018-10-16 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Separate SSL Class for platform dependent way of setup. |
| https://bugs.webkit.org/show_bug.cgi?id=190597 |
| |
| Reviewed by Alex Christensen. |
| |
| SSL setup is very platform dependent. This patch separate the class to allow |
| platform-dependent setup at the SSL handle instantiation. |
| |
| No new tests because there's no behaviro changes. |
| |
| * PlatformWinCairo.cmake: |
| * platform/network/curl/CurlSSLHandle.cpp: |
| (WebCore::CurlSSLHandle::CurlSSLHandle): |
| (WebCore::CurlSSLHandle::getCACertPathEnv): Moved. |
| * platform/network/curl/CurlSSLHandle.h: |
| * platform/network/win/CurlSSLHandleWin.cpp: |
| (WebCore::getCACertPathEnv): |
| (WebCore::CurlSSLHandle::platformInitialize): |
| |
| 2018-10-15 Keith Miller <keith_miller@apple.com> |
| |
| Support arm64 CPUs with a 32-bit address space |
| https://bugs.webkit.org/show_bug.cgi?id=190273 |
| |
| Reviewed by Michael Saboff. |
| |
| Fix missing namespace annotation. |
| |
| * cssjit/SelectorCompiler.cpp: |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation): |
| |
| 2018-10-15 Justin Fan <justin_fan@apple.com> |
| |
| Add WebGPU 2018 feature flag and experimental feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=190509 |
| |
| Reviewed by Dean Jackson. |
| |
| Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature |
| for the 2018 WebGPU prototype. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setWebGPUEnabled): |
| (WebCore::RuntimeEnabledFeatures::webGPUEnabled const): |
| |
| 2018-10-15 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r237162. |
| https://bugs.webkit.org/show_bug.cgi?id=190612 |
| |
| Broke Windows build (Requested by dolmstead on #webkit). |
| |
| Reverted changeset: |
| |
| "Add stub implementation for accessibility objects" |
| https://bugs.webkit.org/show_bug.cgi?id=190608 |
| https://trac.webkit.org/changeset/237162 |
| |
| 2018-10-15 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| [CG] Adopt CG SPI for non-even cornered rounded rects |
| https://bugs.webkit.org/show_bug.cgi?id=190155 |
| |
| Reviewed by Simon Fraser. |
| |
| Instead of creating bezier curves for the non-even corners of the rounded |
| rects, we should use the optimized SPI provided by CG. |
| |
| * platform/graphics/cg/PathCG.cpp: |
| (WebCore::Path::platformAddPathForRoundedRect): |
| |
| 2018-10-15 Don Olmstead <don.olmstead@sony.com> |
| |
| Add stub implementation for accessibility objects |
| https://bugs.webkit.org/show_bug.cgi?id=190608 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests. No change in behavior. |
| |
| Add default implementation to associated cpp file. Removes the WPE |
| specific stubs. |
| |
| * SourcesWPE.txt: |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::AXObjectCache::detachWrapper): |
| (WebCore::AXObjectCache::attachWrapper): |
| (WebCore::AXObjectCache::postPlatformNotification): |
| (WebCore::AXObjectCache::nodeTextChangePlatformNotification): |
| (WebCore::AXObjectCache::frameLoadingEventPlatformNotification): |
| (WebCore::AXObjectCache::platformHandleFocusedUIElementChanged): |
| (WebCore::AXObjectCache::handleScrolledToAnchor): |
| * accessibility/AccessibilityObject.cpp: |
| (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): |
| (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): |
| * accessibility/AccessibilityObject.h: |
| * accessibility/wpe/AXObjectCacheWPE.cpp: Removed. |
| * accessibility/wpe/AccessibilityObjectWPE.cpp: Removed. |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize BackForwardClient.h |
| https://bugs.webkit.org/show_bug.cgi?id=190610 |
| |
| Reviewed by Chris Dumez. |
| |
| * editing/markup.cpp: |
| (WebCore::createPageForSanitizingWebContent): |
| * history/BackForwardClient.h: |
| * history/BackForwardController.h: |
| (WebCore::BackForwardController::client): |
| (WebCore::BackForwardController::client const): |
| * inspector/InspectorOverlay.cpp: |
| (WebCore::InspectorOverlay::overlayPage): |
| * loader/EmptyClients.cpp: |
| (WebCore::pageConfigurationWithEmptyClients): |
| (WebCore::createEmptyFrameNetworkingContext): Deleted. |
| (WebCore::fillWithEmptyClients): Deleted. |
| (WebCore::createEmptyEditorClient): Deleted. |
| * loader/EmptyClients.h: |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| * page/PageConfiguration.cpp: |
| (WebCore::PageConfiguration::PageConfiguration): |
| * page/PageConfiguration.h: |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::dataChanged): |
| |
| 2018-10-15 Timothy Hatcher <timothy@apple.com> |
| |
| Add support for prefers-color-scheme media query |
| https://bugs.webkit.org/show_bug.cgi?id=190499 |
| rdar://problem/45212025 |
| |
| Reviewed by Dean Jackson. |
| |
| Test: css-dark-mode/prefers-color-scheme.html |
| |
| * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. |
| * css/CSSValueKeywords.in: Added light and dark. |
| * css/MediaFeatureNames.h: Added prefers-color-scheme. |
| * css/MediaQueryEvaluator.cpp: |
| (WebCore::prefersColorSchemeEvaluate): Added. |
| * css/MediaQueryExpression.cpp: |
| (WebCore::featureWithValidIdent): Added prefers-color-scheme. |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. |
| (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. |
| (WebCore::InternalSettings::setUseDarkAppearance): Added. |
| * testing/InternalSettings.h: Added setUseDarkAppearance. |
| * testing/InternalSettings.idl: Ditto. |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WebView._globalHistoryItem |
| https://bugs.webkit.org/show_bug.cgi?id=190601 |
| |
| Reviewed by Chris Dumez. |
| |
| This was a hack to give the client a more reliable current back/forward item, but it hasn't been used for years |
| and it's adding unnecessary complexity to the history code. |
| |
| * loader/EmptyFrameLoaderClient.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::checkLoadCompleteForThisFrame): |
| (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): |
| * loader/FrameLoaderClient.h: |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::goToItem): |
| (WebCore::HistoryController::updateForStandardLoad): |
| (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): |
| |
| 2018-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Experiment: target=_blank on anchors should imply rel=noopener |
| https://bugs.webkit.org/show_bug.cgi?id=190481 |
| |
| Reviewed by Alex Christensen. |
| |
| As an experiment, try and make it so that target=_blank on anchors implies `rel=noopener` for improved security. |
| WebContent can then request an opener relationship by using `rel=opener` instead. |
| |
| This change was discussed at: |
| - https://github.com/whatwg/html/issues/4078 |
| |
| We want to attempt this change is STP to see if it is Web-compatible. Preliminary testing seems to indicate |
| that OAuth workflows still work. |
| |
| * html/HTMLAnchorElement.cpp: |
| (WebCore::HTMLAnchorElement::parseAttribute): |
| (WebCore::HTMLAnchorElement::handleClick): |
| (WebCore::HTMLAnchorElement::effectiveTarget const): |
| * html/HTMLAnchorElement.h: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setBlankAnchorTargetImpliesNoOpenerEnabled): |
| (WebCore::RuntimeEnabledFeatures::blankAnchorTargetImpliesNoOpenerEnabled const): |
| |
| 2018-10-15 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] New shipping methods are ignored when updating after the shippingaddresschange event |
| https://bugs.webkit.org/show_bug.cgi?id=190560 |
| <rdar://problem/44559075> |
| |
| Reviewed by Youenn Fablet. |
| |
| When a PaymentDetailsUpdate with shipping options was specified to updateWith() after the |
| shippingaddresschange event fires, ApplePayPaymentHandler needs to convert the shipping |
| options to ShippingMethods and add them to the ShippingContactUpdate so that the Apple Pay |
| UI renders the new options. |
| |
| Added test cases to http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html. |
| |
| * Modules/applepay/ApplePayShippingMethod.idl: |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::ApplePayPaymentHandler::computeShippingMethods): |
| (WebCore::ApplePayPaymentHandler::shippingAddressUpdated): |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.h: |
| * testing/MockPaymentCoordinator.cpp: |
| (WebCore::convert): |
| (WebCore::MockPaymentCoordinator::showPaymentUI): |
| (WebCore::MockPaymentCoordinator::completeShippingContactSelection): |
| * testing/MockPaymentCoordinator.h: |
| * testing/MockPaymentCoordinator.idl: |
| |
| 2018-10-15 Youenn Fablet <youenn@apple.com> |
| |
| RTCPeerConnection.generateCertificate is not a function |
| https://bugs.webkit.org/show_bug.cgi?id=173541 |
| <rdar://problem/32638029> |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for RTCCertificate generation through libwebrtc certificate generator. |
| Make generation in the webrtc network thread. |
| Support is as per spec (ECDSA and RSASSA_PKCS). |
| |
| Partially covered by WPT tests. |
| |
| * css/StyleBuilder.h: Fixing build. |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/webauthn/PublicKeyCredential.cpp: Fixing build. |
| * Modules/mediastream/PeerConnectionBackend.cpp: |
| (WebCore::PeerConnectionBackend::generateCertificate): |
| * Modules/mediastream/PeerConnectionBackend.h: |
| (WebCore::PeerConnectionBackend::CertificateInformation::RSASSA_PKCS1_v1_5): |
| (WebCore::PeerConnectionBackend::CertificateInformation::ECDSA_P256): |
| (WebCore::PeerConnectionBackend::CertificateInformation::CertificateInformation): |
| * Modules/mediastream/RTCCertificate.cpp: Added. |
| (WebCore::RTCCertificate::create): |
| (WebCore::RTCCertificate::RTCCertificate): |
| * Modules/mediastream/RTCCertificate.h: Added. |
| (WebCore::RTCCertificate::expires const): |
| (WebCore::RTCCertificate::getFingerprints const): |
| * Modules/mediastream/RTCCertificate.idl: Added. |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::certificateTypeFromAlgorithmIdentifier): |
| (WebCore::RTCPeerConnection::generateCertificate): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/RTCPeerConnection.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp: Added. |
| (WebCore::LibWebRTCCertificateGenerator::RTCCertificateGeneratorCallback::RTCCertificateGeneratorCallback): |
| (WebCore::LibWebRTCCertificateGenerator::RTCCertificateGeneratorCallback::~RTCCertificateGeneratorCallback): |
| (WebCore::LibWebRTCCertificateGenerator::keyParamsFromCertificateType): |
| (WebCore::LibWebRTCCertificateGenerator::generateCertificate): |
| * Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.h: Added. |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| (WebCore::LibWebRTCProvider::certificateGenerator): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| |
| 2018-10-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Add compact logging for the paint-order RenderLayer tree |
| https://bugs.webkit.org/show_bug.cgi?id=190592 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Add a way to dump the RenderLayer tree in paint order, which will be extended in future |
| to show more dirty bit state. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::outputPaintOrderTreeLegend): |
| (WebCore::outputIdent): |
| (WebCore::outputPaintOrderTreeRecursive): |
| (WebCore::showPaintOrderTree): |
| * rendering/RenderLayer.h: |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused parameters from FrameLoaderClient::createFrame |
| https://bugs.webkit.org/show_bug.cgi?id=190587 |
| |
| Reviewed by Chris Dumez. |
| |
| * loader/EmptyClients.cpp: |
| (WebCore::EmptyFrameLoaderClient::createFrame): |
| * loader/EmptyFrameLoaderClient.h: |
| * loader/FrameLoaderClient.h: |
| * loader/SubframeLoader.cpp: |
| (WebCore::SubframeLoader::loadSubframe): |
| |
| 2018-10-15 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Payment authorization results with ApplePayErrors should never be considered final |
| https://bugs.webkit.org/show_bug.cgi?id=190559 |
| <rdar://problem/37250908> |
| |
| Reviewed by Anders Carlsson. |
| |
| When PaymentCoordinator thinks a payment authorization result is final it releases the |
| active ApplePaySession. The Apple Pay UI is dismissed after a receiving a final result. |
| |
| However, WebCore::isFinalStateResult had the wrong idea about what was a final state, |
| in some cases causing PaymentCoordinator to release the active session even when the UI is |
| still presented. If the user authorizes payment again, the website will not receive another |
| paymentauthorized event, and the Apple Pay UI will eventually time out waiting for a result. |
| |
| Specifically, isFinalStateResult thought that: |
| |
| (1) results with STATUS_SUCCESS were always final, even if they had errors |
| (2) errors with code "unknown" were final |
| |
| Both of these assumptions are wrong. PassKit considers any result with errors to be |
| non-final, even if an error has code "unknown." |
| |
| Fixed WebCore::isFinalStateResult to agree with what PassKit considers to be final results. |
| |
| Test: http/tests/ssl/applepay/ApplePaySessionFinalState.https.html |
| |
| * Modules/applepay/ApplePaySessionPaymentRequest.cpp: |
| (WebCore::isFinalStateResult): |
| * testing/MockPaymentCoordinator.cpp: |
| (WebCore::MockPaymentCoordinator::completePaymentSession): |
| |
| 2018-10-15 Andy Estes <aestes@apple.com> |
| |
| [Payment Request] PaymentResponse should be a ContextDestructionObserver |
| https://bugs.webkit.org/show_bug.cgi?id=190558 |
| |
| Reviewed by Alex Christensen. |
| |
| Make PaymentResponse a ContextDestructionObserver so it has a ScriptExecutionContext to |
| return for its override of EventTarget::scriptExecutionContext(). Do this instead of |
| downcasting m_request to an ActiveDOMObject to ask for its context. |
| |
| * Modules/paymentrequest/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::accept): |
| * Modules/paymentrequest/PaymentResponse.cpp: |
| (WebCore::PaymentResponse::PaymentResponse): |
| (WebCore::PaymentResponse::scriptExecutionContext const): Deleted. |
| * Modules/paymentrequest/PaymentResponse.h: |
| |
| 2018-10-15 Andy Estes <aestes@apple.com> |
| |
| [Payment Request] Use a PendingActivity token rather than calling (un)setPendingActivity |
| https://bugs.webkit.org/show_bug.cgi?id=190557 |
| |
| Reviewed by Alex Christensen. |
| |
| PaymentRequest has pending activity whenever there is an active payment handler, since |
| user-initiated events can occur whenever the payment UI is displayed. |
| |
| Rather than manually track the pending activity with setPendingActivity() and |
| unsetPendingActivity(), use a PendingActivity token tied to the lifetime of the active |
| payment handler. Also, rewrite canSuspendForDocumentSuspension() in terms of |
| hasPendingActivity(). |
| |
| * Modules/paymentrequest/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::show): |
| (WebCore::PaymentRequest::abortWithException): |
| (WebCore::PaymentRequest::canSuspendForDocumentSuspension const): |
| (WebCore::PaymentRequest::paymentMethodChanged): |
| (WebCore::PaymentRequest::completeMerchantValidation): |
| (WebCore::PaymentRequest::settleDetailsPromise): |
| (WebCore::PaymentRequest::complete): |
| (WebCore::PaymentRequest::cancel): |
| * Modules/paymentrequest/PaymentRequest.h: |
| |
| 2018-10-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Changing view scale should zoom to initial scale if the page is already at initial scale |
| https://bugs.webkit.org/show_bug.cgi?id=190570 |
| <rdar://problem/45261877> |
| |
| Reviewed by Tim Horton. |
| |
| Add a getter for ViewportConfiguration's layout size scale factor. |
| See Source/WebKit/ChangeLog for more details. |
| |
| * page/ViewportConfiguration.h: |
| (WebCore::ViewportConfiguration::layoutSizeScaleFactor const): |
| |
| 2018-10-15 Charlie Turner <cturner@igalia.com> |
| |
| Fix build error with !LOG_DISABLED in Release mode |
| https://bugs.webkit.org/show_bug.cgi?id=190465 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No tests due to no new functionality. |
| |
| * workers/service/ServiceWorkerRegistrationKey.cpp: |
| * workers/service/ServiceWorkerRegistrationKey.h: |
| |
| 2018-10-15 Simon Fraser <simon.fraser@apple.com> |
| |
| LayerListMutationDetector should take a reference |
| https://bugs.webkit.org/show_bug.cgi?id=190586 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Change LayerListMutationDetector to take a RenderLayer&. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::paintList): |
| (WebCore::RenderLayer::hitTestLayer): |
| (WebCore::RenderLayer::calculateClipRects const): |
| * rendering/RenderLayer.h: |
| (WebCore::LayerListMutationDetector::LayerListMutationDetector): |
| (WebCore::LayerListMutationDetector::~LayerListMutationDetector): |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::traverseVisibleNonCompositedDescendantLayers): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::addToOverlapMapRecursive): |
| (WebCore::RenderLayerCompositor::computeCompositingRequirements): |
| (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): |
| (WebCore::RenderLayerCompositor::updateLayerTreeGeometry): |
| (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): |
| (WebCore::RenderLayerCompositor::recursiveRepaintLayer): |
| (WebCore::RenderLayerCompositor::layerHas3DContent const): |
| |
| 2018-10-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Share some code to dirty z-order and normal flow lists when child layers are added or removed |
| https://bugs.webkit.org/show_bug.cgi?id=190585 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Factor code which dirties the normal flow list and child stacking context z-order lists |
| when a layer is added or removed. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::addChild): |
| (WebCore::RenderLayer::removeChild): |
| (WebCore::RenderLayer::dirtyPaintOrderListsOnChildChange): |
| * rendering/RenderLayer.h: |
| |
| 2018-10-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Make a helper function to check for reflection layers |
| https://bugs.webkit.org/show_bug.cgi?id=190584 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Add RenderLayer::isReflectionLayer() which returns true if the passed layer |
| is the layer of this layer's reflection. It's used in z-order list building. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::updateNormalFlowList): |
| (WebCore::RenderLayer::rebuildZOrderLists): |
| (WebCore::RenderLayer::collectLayers): |
| (WebCore::expandClipRectForDescendantsAndReflection): |
| (WebCore::RenderLayer::calculateClipRects const): |
| * rendering/RenderLayer.h: |
| |
| 2018-10-15 Simon Fraser <simon.fraser@apple.com> |
| |
| RenderLayer::addChild() and removeChild() should take references |
| https://bugs.webkit.org/show_bug.cgi?id=190582 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Pass the layer to be added or removed as a reference; it's never null. |
| |
| * rendering/RenderElement.cpp: |
| (WebCore::addLayers): |
| (WebCore::RenderElement::removeLayers): |
| (WebCore::RenderElement::moveLayers): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::addChild): |
| (WebCore::RenderLayer::removeChild): |
| (WebCore::RenderLayer::insertOnlyThisLayer): |
| (WebCore::RenderLayer::removeOnlyThisLayer): |
| * rendering/RenderLayer.h: |
| |
| 2018-10-15 Yoshiaki Jitsukawa <yoshiaki.jitsukawa@sony.com> |
| |
| [Cairo] Incorrect rendering for 135-deg skews |
| https://bugs.webkit.org/show_bug.cgi?id=190513 |
| |
| Compensation value to zero the the translation components |
| of the transformation matrix is incorrect if the matrix |
| has a shear factor. |
| |
| Reviewed by Žan Doberšek. |
| |
| Tests: fast/transforms/skew-x-135deg-with-gradient.html |
| fast/transforms/skew-y-135deg-with-gradient.html |
| |
| * platform/graphics/cairo/CairoUtilities.cpp: |
| (WebCore::drawPatternToCairoContext): |
| |
| 2018-10-15 Christopher Reid <chris.reid@sony.com> |
| |
| [Curl][WinCairo] Add Public Suffix support to WinCairo |
| https://bugs.webkit.org/show_bug.cgi?id=183060 |
| |
| Reviewed by Alex Christensen. |
| |
| Add Public Suffix support to WinCairo using LibPSL. |
| LibPSL has been added to WinCairoRequirements in v2018.10.09. |
| |
| * platform/Curl.cmake: |
| * platform/network/curl/CookieJarDB.cpp: |
| (WebCore::CookieJarDB::searchCookies): Search for cookies using the topPrivatelyControlledDomain |
| (WebCore::CookieJarDB::setCookie): Prevent cookies from being added under TLDs |
| * platform/network/curl/PublicSuffixCurl.cpp: Added. |
| (WebCore::isPublicSuffix): |
| (WebCore::topPrivatelyControlledDomainInternal): |
| (WebCore::topPrivatelyControlledDomain): |
| |
| 2018-10-15 Simon Fraser <simon.fraser@apple.com> |
| |
| RenderLayer tree-related cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=190572 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Move code around so that functions related to parent/child and z-order tree structure |
| are near the top of RenderLayer.cpp, since this is one of the primary functions of layers. |
| |
| Attempts to use inheritance or composition to separate out tree structure resulted in |
| unwieldy code and/or performance regressions. |
| |
| The only behavior change is to store a bit for m_isStackingContext so that we don't have |
| to consult the old style to know if it changed. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::RenderLayer): |
| (WebCore::RenderLayer::addChild): |
| (WebCore::RenderLayer::removeChild): |
| (WebCore::RenderLayer::insertOnlyThisLayer): |
| (WebCore::RenderLayer::removeOnlyThisLayer): |
| (WebCore::canCreateStackingContext): |
| (WebCore::RenderLayer::shouldBeNormalFlowOnly const): |
| (WebCore::RenderLayer::shouldBeStackingContext const): |
| (WebCore::RenderLayer::setIsNormalFlowOnly): |
| (WebCore::RenderLayer::setIsStackingContext): |
| (WebCore::RenderLayer::setParent): |
| (WebCore::RenderLayer::dirtyZOrderLists): |
| (WebCore::RenderLayer::dirtyStackingContextZOrderLists): |
| (WebCore::RenderLayer::dirtyNormalFlowList): |
| (WebCore::RenderLayer::updateNormalFlowList): |
| (WebCore::RenderLayer::rebuildZOrderLists): |
| (WebCore::RenderLayer::collectLayers): |
| (WebCore::RenderLayer::updateLayerListsIfNeeded): |
| (WebCore::RenderLayer::beginTransparencyLayers): |
| (WebCore::RenderLayer::willBeDestroyed): |
| (WebCore::RenderLayer::isDescendantOf const): |
| (WebCore::RenderLayer::calculateClipRects const): |
| (WebCore::compareZIndex): Deleted. |
| * rendering/RenderLayer.h: |
| |
| 2018-10-15 Antti Koivisto <antti@apple.com> |
| |
| [PSON] Prewarm system fallback fonts |
| https://bugs.webkit.org/show_bug.cgi?id=190517 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This seems to be ~2% progression in PSON PLT4 with large (40ms+) improvements on some pages |
| after process swaps. |
| |
| * page/PrewarmInformation.h: |
| (WebCore::PrewarmInformation::encode const): |
| (WebCore::PrewarmInformation::decode): |
| * page/ProcessWarming.cpp: |
| (WebCore::ProcessWarming::collectPrewarmInformation): |
| (WebCore::ProcessWarming::prewarmWithInformation): |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::collectPrewarmInformation const): |
| (WebCore::FontCache::prewarm): |
| * platform/graphics/FontCache.h: |
| (WebCore::FontCache::PrewarmInformation::isolatedCopy const): |
| (WebCore::FontCache::PrewarmInformation::encode const): |
| (WebCore::FontCache::PrewarmInformation::decode): |
| |
| Make font cache prewarm information a struct with encode/decode support and move it into FontCache scope. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontDatabase::collectionForFamily): |
| (WebCore::FontCache::systemFallbackForCharacters): |
| |
| Collect the names of fonts that end up needing character specific system fallbacks. |
| |
| (WebCore::FontCache::collectPrewarmInformation const): |
| |
| Include them into prewarm information. |
| |
| (WebCore::FontCache::prewarm): |
| |
| Invoking CTFontCreateForCharactersWithLanguage for the correct named font seems sufficient to fully |
| prewarm it for fallbacks (independent of size, locale or other characteristics). |
| Any future calls to systemFallbackForCharacters are fast. |
| |
| 2018-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Restrict browsing context lookup by name to frames that are related to one another |
| https://bugs.webkit.org/show_bug.cgi?id=190475 |
| |
| Reviewed by Alex Christensen. |
| |
| Update our frame lookup by name logic to take in the active / requesting frame and |
| only a return a frame that is related to it. By related to it, I mean: |
| - Ancestor <-> Descendant relationship |
| - Opener <-> Openee relationship |
| |
| Being able to look up unrelated frames makes process swapping difficult so we need |
| to be stricter. |
| |
| This change is being discussed at: |
| - https://github.com/whatwg/html/issues/313 |
| |
| Tests: http/tests/dom/new-window-can-target-opener.html |
| http/tests/dom/noopener-window-cannot-target-opener.html |
| http/tests/dom/noopener-window-not-targetable.html |
| http/tests/dom/noopener-window-not-targetable2.html |
| http/tests/dom/noreferrer-window-not-targetable.html |
| http/tests/dom/opened-window-not-targetable-after-disowning-opener.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::findFrameForNavigation): |
| * page/FrameTree.cpp: |
| (WebCore::isFrameFamiliarWith): |
| (WebCore::FrameTree::find const): |
| * page/FrameTree.h: |
| * rendering/HitTestResult.cpp: |
| (WebCore::HitTestResult::targetFrame const): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Shrink more enum classes |
| https://bugs.webkit.org/show_bug.cgi?id=190540 |
| |
| Reviewed by Chris Dumez. |
| |
| * Modules/notifications/NotificationDirection.h: |
| * dom/Document.h: |
| * loader/FrameLoader.h: |
| * loader/FrameLoaderClient.h: |
| * loader/HistoryController.h: |
| * loader/ShouldSkipSafeBrowsingCheck.h: |
| * loader/ShouldTreatAsContinuingLoad.h: |
| * page/AutoplayEvent.h: |
| * page/ChromeClient.h: |
| * page/DiagnosticLoggingClient.h: |
| * page/Page.h: |
| * platform/CookiesStrategy.h: |
| * platform/audio/AudioSession.h: |
| * platform/network/NetworkStorageSession.h: |
| * platform/network/StoredCredentialsPolicy.h: |
| * workers/service/SWClientConnection.h: |
| * workers/service/ServiceWorkerContainer.h: |
| * workers/service/ServiceWorkerRegistrationData.h: |
| * workers/service/ServiceWorkerRegistrationOptions.h: |
| * workers/service/ServiceWorkerTypes.h: |
| * workers/service/ServiceWorkerUpdateViaCache.h: |
| * workers/service/server/SWServer.h: |
| * workers/service/server/SWServerRegistration.h: |
| |
| 2018-10-15 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Implement subprocess sandboxing |
| https://bugs.webkit.org/show_bug.cgi?id=188568 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Link against libseccomp. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-10-15 YUHAN WU <yuhan_wu@apple.com> |
| |
| Implement error handler of MediaRecorder |
| https://bugs.webkit.org/show_bug.cgi?id=190438 |
| |
| Reviewed by Youenn Fablet. |
| |
| Test: imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-error.html |
| |
| Implement error event handler (onerror) for MediaRecorder and basic architecture of start() function. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediarecorder/MediaRecorder.cpp: |
| (WebCore::MediaRecorder::MediaRecorder): |
| (WebCore::MediaRecorder::~MediaRecorder): |
| (WebCore::MediaRecorder::stop): |
| (WebCore::MediaRecorder::start): |
| (WebCore::MediaRecorder::setNewRecordingState): |
| (WebCore::MediaRecorder::scheduleDeferredTask): |
| (WebCore::MediaRecorder::didAddOrRemoveTrack): |
| * Modules/mediarecorder/MediaRecorder.h: |
| * Modules/mediarecorder/MediaRecorder.idl: |
| * Modules/mediarecorder/MediaRecorderErrorEvent.cpp: Added. |
| (WebCore::MediaRecorderErrorEvent::create): |
| (WebCore::MediaRecorderErrorEvent::MediaRecorderErrorEvent): |
| (WebCore::MediaRecorderErrorEvent::eventInterface const): |
| * Modules/mediarecorder/MediaRecorderErrorEvent.h: Added. |
| * Modules/mediarecorder/MediaRecorderErrorEvent.idl: Added. |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * dom/EventNames.in: |
| * dom/EventTargetFactory.in: |
| |
| 2018-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Window's properties such as 'location' should not become null when it loses its browsing context |
| https://bugs.webkit.org/show_bug.cgi?id=190539 |
| |
| Reviewed by Alex Christensen. |
| |
| Window's properties such as 'location' should not become null when it loses its browsing context. |
| This Webkit behavior is not standard and does not match other browsers so this patch makes it so |
| that those properties persist. |
| |
| Tests: http/tests/dom/cross-origin-detached-window-properties.html |
| http/tests/dom/same-origin-detached-window-properties.html |
| |
| * bindings/js/JSDOMBindingSecurity.cpp: |
| (WebCore::BindingSecurity::shouldAllowAccessToDOMWindow): |
| * bindings/js/JSDOMBindingSecurity.h: |
| * bindings/js/JSDOMWindowProperties.cpp: |
| (WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter): |
| (WebCore::JSDOMWindowProperties::getOwnPropertySlot): |
| * bindings/js/JSLocationCustom.cpp: |
| (WebCore::getOwnPropertySlotCommon): |
| (WebCore::putCommon): |
| (WebCore::JSLocation::deleteProperty): |
| (WebCore::JSLocation::deletePropertyByIndex): |
| (WebCore::JSLocation::getOwnPropertyNames): |
| (WebCore::JSLocation::defineOwnProperty): |
| (WebCore::JSLocation::getPrototype): |
| (WebCore::JSLocation::toStringName): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateAttributeGetterBodyDefinition): |
| (GenerateAttributeSetterBodyDefinition): |
| (GenerateOperationBodyDefinition): |
| * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: |
| (WebCore::jsTestActiveDOMObjectExcitingAttrGetter): |
| (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody): |
| * crypto/SubtleCrypto.cpp: |
| (WebCore::SubtleCrypto::SubtleCrypto): |
| * crypto/SubtleCrypto.h: |
| (WebCore::SubtleCrypto::create): |
| * dom/Document.cpp: |
| (WebCore::Document::~Document): |
| * page/Crypto.cpp: |
| (WebCore::Crypto::Crypto): |
| * page/Crypto.h: |
| (WebCore::Crypto::create): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::~DOMWindow): |
| (WebCore::DOMWindow::frameDestroyed): |
| (WebCore::DOMWindow::screen): |
| (WebCore::DOMWindow::history): |
| (WebCore::DOMWindow::crypto): |
| (WebCore::DOMWindow::locationbar): |
| (WebCore::DOMWindow::menubar): |
| (WebCore::DOMWindow::personalbar): |
| (WebCore::DOMWindow::scrollbars): |
| (WebCore::DOMWindow::statusbar): |
| (WebCore::DOMWindow::toolbar): |
| (WebCore::DOMWindow::console const): |
| (WebCore::DOMWindow::applicationCache): |
| (WebCore::DOMWindow::navigator): |
| (WebCore::DOMWindow::performance const): |
| (WebCore::DOMWindow::location): |
| (WebCore::DOMWindow::visualViewport): |
| (WebCore::DOMWindow::styleMedia): |
| * page/DOMWindow.h: |
| * page/DOMWindow.idl: |
| * workers/WorkerGlobalScope.cpp: |
| (WebCore::WorkerGlobalScope::crypto): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Include EnumTraits.h less |
| https://bugs.webkit.org/show_bug.cgi?id=190535 |
| |
| Reviewed by Chris Dumez. |
| |
| * Modules/applepay/ApplePaySessionPaymentRequest.h: |
| * Modules/applepay/PaymentAuthorizationStatus.h: |
| * Modules/applicationmanifest/ApplicationManifest.h: |
| * Modules/fetch/FetchHeaders.h: |
| * Modules/webauthn/AuthenticatorTransport.h: |
| * Modules/webauthn/PublicKeyCredentialType.h: |
| * loader/ShouldSkipSafeBrowsingCheck.h: |
| * loader/ShouldTreatAsContinuingLoad.h: |
| * platform/Cookie.h: |
| * platform/audio/AudioSession.h: |
| * platform/mediastream/CaptureDevice.h: |
| * platform/mediastream/MediaStreamRequest.h: |
| * platform/mediastream/RealtimeMediaSourceSettings.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| * platform/network/NetworkLoadInformation.h: |
| * workers/service/ServiceWorkerClientType.h: |
| * workers/service/ServiceWorkerTypes.h: |
| * workers/service/ServiceWorkerUpdateViaCache.h: |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove InjectedBundle processing of back/forward lists |
| https://bugs.webkit.org/show_bug.cgi?id=190459 |
| |
| Reviewed by Chris Dumez. |
| |
| The uses of these functions are dead code I removed in rdar://problem/45180545 |
| Removing these functions is a step towards fixing the PSON history bugs. |
| |
| * loader/EmptyFrameLoaderClient.h: |
| * loader/FrameLoaderClient.h: |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::goToItem): |
| |
| 2018-10-14 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| [JSC] Remove Option::useAsyncIterator |
| https://bugs.webkit.org/show_bug.cgi?id=190567 |
| |
| Reviewed by Saam Barati. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-10-15 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer] Fix EME build for GStreamer 1.14.x |
| https://bugs.webkit.org/show_bug.cgi?id=190471 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| (webkitMediaCommonEncryptionDecryptTransformCaps): The |
| GST_PROTECTION_UNSPECIFIED_SYSTEM_ID #define won't be shipped |
| until the GStreamer 1.16.0 release, so its use needs to be wrapped |
| between a version check. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered): Ditto. |
| |
| 2018-10-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Allow SPI clients to lay out at arbitrarily scaled sizes and scale to fit the view |
| https://bugs.webkit.org/show_bug.cgi?id=190504 |
| <rdar://problem/45117760> |
| |
| Reviewed by Tim Horton. |
| |
| Add support in ViewportConfiguration for applying a layout size scale factor to the viewport. See below for |
| more details. |
| |
| Tests: fast/viewport/ios/constant-width-viewport-after-changing-view-scale.html |
| fast/viewport/ios/device-width-viewport-after-changing-view-scale.html |
| |
| * page/ViewportConfiguration.cpp: |
| (WebCore::ViewportConfiguration::setViewLayoutSize): |
| |
| The viewport's layout size may now be changed alongside the layout size scale factor. If either of these two |
| variables change, we recompute our minimum layout size and viewport configuration parameters. |
| |
| (WebCore::ViewportConfiguration::shouldIgnoreHorizontalScalingConstraints const): |
| (WebCore::ViewportConfiguration::nativeWebpageParameters): |
| (WebCore::ViewportConfiguration::testingParameters): |
| (WebCore::ViewportConfiguration::updateConfiguration): |
| |
| Multiply the minimum scale, initial scale, and maximum scale by the layout size scale factor. This allows us to |
| keep the document well-proportioned within the viewport, while still laying out at a different layout size. |
| |
| (WebCore::ViewportConfiguration::updateMinimumLayoutSize): |
| |
| Compute the minimum layout size by scaling the default layout size derived from our view's size. |
| |
| (WebCore::ViewportConfiguration::layoutWidth const): |
| (WebCore::ViewportConfiguration::layoutHeight const): |
| * page/ViewportConfiguration.h: |
| |
| Maintain the original initial scale, unaffected by the layout size scale factor. This is used when computing |
| layout width and height to prevent scaling by the layout size scale factor twice when computing layout sizes. |
| |
| (WebCore::ViewportConfiguration::description const): |
| |
| Include the layout size scale factor in ViewportConfiguration's description string. |
| |
| (WebCore::ViewportConfiguration::Parameters::operator== const): |
| (WebCore::operator<<): |
| |
| 2018-10-12 Youenn Fablet <youenn@apple.com> |
| |
| Use downcast for use of RealtimeMediaSource in LibWebRTCMediaEndpoint |
| https://bugs.webkit.org/show_bug.cgi?id=190533 |
| |
| Reviewed by Chris Dumez. |
| |
| Clean-up work. |
| No change of behavior. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::setExistingReceiverSourceTrack): |
| * platform/mediastream/RealtimeIncomingAudioSource.h: |
| (isType): |
| * platform/mediastream/RealtimeIncomingVideoSource.h: |
| (isType): |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| 2018-10-12 Jer Noble <jer.noble@apple.com> |
| |
| WebAVSampleBufferErrorListener's parent should be a WeakPtr. |
| https://bugs.webkit.org/show_bug.cgi?id=190524 |
| <rdar://problem/44359307> |
| |
| Reviewed by Eric Carlson. |
| |
| Once WebAVSampleBufferErrorListener's parent is a WeakPtr, we no longer need to pass |
| protectedSelf into the callOnMainThread lambdas; we can pass in the parent itself. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (-[WebAVSampleBufferErrorListener initWithParent:]): |
| (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]): |
| (-[WebAVSampleBufferErrorListener layerFailedToDecode:]): |
| (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): |
| (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): |
| |
| 2018-10-12 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Address the review comment which was meant to be addressed in r237025. |
| |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::elementCannotHaveEndTag): |
| |
| 2018-10-12 Youenn Fablet <youenn@apple.com> and Alejandro G. Castro <alex@igalia.com> |
| |
| Refresh libwebrtc up to 343f4144be |
| https://bugs.webkit.org/show_bug.cgi?id=190361 |
| |
| Reviewed by Chris Dumez. |
| |
| This refresh should not change behavior but will allow us to implement better |
| mdns candidate support and simulcast activation surfacing through addTransceiver. |
| Covered by existing tests. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::doCreateAnswer): |
| * testing/MockLibWebRTCPeerConnection.cpp: |
| (WebCore::MockLibWebRTCPeerConnection::CreateAnswer): |
| * testing/MockLibWebRTCPeerConnection.h: |
| (WebCore::MockRtpSender::GetParameters): Deleted. |
| (WebCore::MockRtpSender::SetParameters): Deleted. |
| (WebCore::MockRtpSender::GetDtmfSender const): Deleted. |
| |
| 2018-10-12 Alex Christensen <achristensen@webkit.org> |
| |
| Allow encoding of small enum classes |
| https://bugs.webkit.org/show_bug.cgi?id=190531 |
| |
| Reviewed by Tim Horton. |
| |
| * Modules/webauthn/PublicKeyCredentialCreationOptions.h: |
| * dom/Document.h: |
| * editing/FontAttributeChanges.h: |
| * history/CachedFrame.h: |
| * loader/FrameLoaderTypes.h: |
| * platform/CookiesStrategy.h: |
| * platform/PasteboardItemInfo.h: |
| * platform/ReferrerPolicy.h: |
| |
| 2018-10-12 Rob Buis <rbuis@igalia.com> |
| |
| Solve the confusion around blankURL() and isBlankURL() in URL |
| https://bugs.webkit.org/show_bug.cgi?id=158988 |
| |
| Reviewed by Alex Christensen. |
| |
| The name isBlankURL is not accurate as the function tests the |
| protocol, not the full URL. Choose protocolIsAbout to align with |
| exisiting protocolIsData, protocolIsBlob etc. |
| |
| No tests as no change in functionality. |
| |
| * WebCore.order: |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::loadApplicationManifest): |
| (WebCore::DocumentLoader::startIconLoading): |
| * loader/NavigationAction.cpp: |
| (WebCore::shouldTreatAsSameOriginNavigation): |
| * loader/PolicyChecker.cpp: |
| (WebCore::PolicyChecker::checkNavigationPolicy): |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::SerializerMarkupAccumulator::appendCustomAttributes): |
| (WebCore::PageSerializer::serializeFrame): |
| * page/csp/ContentSecurityPolicyDirectiveList.cpp: |
| (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame const): |
| (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource const): |
| * platform/URL.cpp: |
| (WebCore::URL::protocolIsAbout const): |
| (WebCore::URL::isBlankURL const): Deleted. |
| * platform/URL.h: |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::loadFull): |
| |
| 2018-10-12 Youenn Fablet <youenn@apple.com> |
| |
| DOMCache should dereference itself as soon as stopped |
| https://bugs.webkit.org/show_bug.cgi?id=190441 |
| |
| Reviewed by Chris Dumez. |
| |
| Dereference the DOMCache as soon as its context is stopped instead of waiting for garbage collection. |
| This allows freeing resources sooner in the network process. |
| No observable change of behavior since the DOMCache becomes no-op when its context is stopped. |
| |
| * Modules/cache/DOMCache.cpp: |
| (WebCore::DOMCache::~DOMCache): |
| (WebCore::DOMCache::stop): |
| |
| 2018-10-12 Jer Noble <jer.noble@apple.com> |
| |
| CRASH in WebCore::MediaPlayerPrivateAVFoundation::setPreload |
| https://bugs.webkit.org/show_bug.cgi?id=190485 |
| <rdar://problem/34613350> |
| |
| Reviewed by Eric Carlson. |
| |
| Crash analytics show that a pure-virtual function is called by MediaPlayerPrivateAVFoundation::setPreload(), and |
| the likely cause of that pure-virtual function call is that the MediaPlayerPrivateAVFoundation object itself has |
| been destroyed, likely as a side effect of calling MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL(). |
| The usual suspect for this kind of crash is due to calling into JS (e.g., from a callback passed up to |
| HTMLMediaElement). Code inspection hasn't yielded any good hints about why this might be occurring, so we will |
| add a ScriptDisallowedScope assertion inside HTMLMediaElement::prepareToPlay(), to generate a good crashlog |
| showing exactly what callback is resulting in a JS call. But just in case the deallocation is not due to JS, |
| also add an explicit strong-ref inside MediaPlayer::prepareToPlay. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::prepareToPlay): |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::prepareToPlay): |
| |
| 2018-10-12 Jer Noble <jer.noble@apple.com> |
| |
| Null-dereference in SourceBufferPrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged |
| https://bugs.webkit.org/show_bug.cgi?id=190490 |
| <rdar://problem/42213807> |
| |
| Reviewed by Eric Carlson. |
| |
| Crash analytics show a null dereference occurring, likely because m_mediaSource is null. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| |
| 2018-10-11 Don Olmstead <don.olmstead@sony.com> |
| |
| Add Houdini specs to features.json |
| https://bugs.webkit.org/show_bug.cgi?id=190494 |
| <rdar://problem/45211879> |
| |
| Unreviewed fix. |
| |
| Specifications should not reference other specifications. Also |
| move Worklet into the specifications section. |
| |
| * features.json: |
| |
| 2018-10-11 Youenn Fablet <youenn@apple.com> |
| |
| IOS 12 - Service worker cache not shared when added to homescreen |
| https://bugs.webkit.org/show_bug.cgi?id=190269 |
| <rdar://problem/45009961> |
| |
| Reviewed by Alex Christensen. |
| |
| Expose Cache Storage API when Service Worker API is exposed. |
| This is used for API tests. |
| |
| * dom/ScriptExecutionContext.h: Make hasServiceWorkerScheme |
| available outside SERVICE_WORKER compilation flag since used by DOMWindowCaches. |
| * dom/ScriptExecutionContext.cpp: Ditto. |
| * Modules/cache/DOMWindowCaches.idl: |
| |
| 2018-10-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Hide RenderLayer z-order and normal flow lists behind iterators |
| https://bugs.webkit.org/show_bug.cgi?id=190457 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Expose the positive z-order, negative z-order and normal flow lists |
| from RenderLayer as iterators rather than vectors of raw pointers. |
| |
| This hides the fact that the vectors can be null, and allows for easier casting in future. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::update3DTransformedDescendantStatus): |
| (WebCore::RenderLayer::paintLayerContents): |
| (WebCore::RenderLayer::paintList): |
| (WebCore::RenderLayer::hitTestLayer): |
| (WebCore::RenderLayer::hitTestList): |
| (WebCore::RenderLayer::calculateClipRects const): |
| * rendering/RenderLayer.h: |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::traverseVisibleNonCompositedDescendantLayers): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::addToOverlapMapRecursive): |
| (WebCore::RenderLayerCompositor::computeCompositingRequirements): |
| (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): |
| (WebCore::RenderLayerCompositor::updateLayerTreeGeometry): |
| (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): |
| (WebCore::RenderLayerCompositor::recursiveRepaintLayer): |
| (WebCore::RenderLayerCompositor::needsContentsCompositingLayer const): |
| (WebCore::RenderLayerCompositor::layerHas3DContent const): |
| * rendering/RenderTreeAsText.cpp: |
| (WebCore::writeLayers): |
| |
| 2018-10-11 Don Olmstead <don.olmstead@sony.com> |
| |
| Add Houdini specs to features.json |
| https://bugs.webkit.org/show_bug.cgi?id=190494 |
| |
| Reviewed by Simon Fraser. |
| |
| Add CSS Typed OM Level 1, CSS Layout API Level 1, CSS Animation |
| Worklet, and group them under a Houdini feature set. |
| |
| * features.json: |
| |
| 2018-10-11 Ross Kirsling <ross.kirsling@sony.com> |
| |
| [WTF] Semaphore.h conflicts with POSIX header |
| https://bugs.webkit.org/show_bug.cgi?id=190486 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| |
| 2018-10-11 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GStreamer] Support arbitrary video resolution in getUserMedia API |
| https://bugs.webkit.org/show_bug.cgi?id=189734 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Implement arbitrary video resolution for the getUserMedia API in GStreamer. |
| |
| Fix the MockRealtimeMediaSource device list to make devices properties match |
| test expectations. |
| |
| Reactivate tests that were failling because of that. |
| |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::standardVideoSizes): |
| (WebCore::standardVideoSizes): Deleted. |
| * platform/mediastream/RealtimeVideoSource.h: |
| * platform/mediastream/VideoPreset.h: |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: |
| (WebCore::GStreamerVideoPreset::create): |
| (WebCore::GStreamerVideoPreset::GStreamerVideoPreset): |
| (WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): |
| (WebCore::GStreamerVideoCaptureSource::capabilities): |
| (WebCore::GStreamerVideoCaptureSource::generatePresets): |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::defaultDevices): |
| |
| 2018-10-11 Keith Rollin <krollin@apple.com> |
| |
| CURRENT_ARCH should not be used in Run Script phase. |
| https://bugs.webkit.org/show_bug.cgi?id=190407 |
| <rdar://problem/45133556> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| CURRENT_ARCH is used in a number of Xcode Run Script phases. However, |
| CURRENT_ARCH is not well-defined during this phase (and may even have |
| the value "undefined") since this phase is run just once per build |
| rather than once per supported architecture. Migrate away from |
| CURRENT_ARCH in favor of ARCHS, either by iterating over ARCHS and |
| performing an operation for each value, or by picking the first entry |
| in ARCHS and using that as a representative value. |
| |
| No new tests -- no functional changes. |
| |
| * DerivedSources.make: When forming TARGET_TRIPLE_FLAGS, grab the |
| first entry in ARCHS rather than use CURRENT_ARCH. |
| |
| 2018-10-11 Daniel Bates <dabates@apple.com> |
| |
| Support building WebKit for macOS Mojave using a newer SDK |
| https://bugs.webkit.org/show_bug.cgi?id=190431 |
| |
| Reviewed by Andy Estes. |
| |
| * platform/network/cocoa/CookieCocoa.mm: |
| (WebCore::coreSameSitePolicy): |
| (WebCore::nsSameSitePolicy): |
| |
| 2018-10-11 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Add typedef for WebEvent keyboard flags |
| https://bugs.webkit.org/show_bug.cgi?id=190435 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Currently WebEvent and UIKit SPI are intertwined when it comes to keyboard flags. It seems sufficient |
| to have WebEvent defined its own keyboard flags so that callers do not need to be aware of UIKit SPI. |
| |
| No functionality changed. So, no new tests. |
| |
| * platform/ios/WebEvent.h: |
| * platform/ios/WebEvent.mm: |
| (-[WebEvent keyboardFlags]): |
| |
| 2018-10-11 Antti Koivisto <antti@apple.com> |
| |
| Use finer grained locking in FontDatabase |
| https://bugs.webkit.org/show_bug.cgi?id=190467 |
| |
| Reviewed by Alex Christensen. |
| |
| * platform/graphics/FontCache.h: |
| |
| Also use ListHashSet for prewarming info so we can prewarm in the same order the fonts were |
| seen last time. |
| |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontDatabase::collectionForFamily): |
| |
| Only hold the lock when accessing the hashmap. There is no need to hold it during font construction |
| which can take a long time. |
| |
| (WebCore::FontDatabase::fontForPostScriptName): |
| |
| This is currently not prewarmed from a thread so no need for locking. |
| |
| (WebCore::FontDatabase::clear): |
| |
| 2018-10-11 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GStreamer] Fix race condition in GStreamerVideoDecoder |
| https://bugs.webkit.org/show_bug.cgi?id=190470 |
| |
| The GStreamerVideoDecoder.m_dtsPtsMap filed is accessed from |
| the main thread and some GStreamer streaming thread, make sure |
| to protect its access. |
| |
| And use WTF::StdMap instead of std::map. |
| |
| Reviewed by Philippe Normand. |
| |
| Manually tested and a random crash is gone. |
| |
| * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: |
| (WebCore::GStreamerVideoDecoder::newSampleCallback): |
| |
| 2018-10-11 Enrique Ocaña González <eocanha@igalia.com> |
| |
| [GStreamer][MSE] Fix height calculation for streams with source aspect ratio |
| https://bugs.webkit.org/show_bug.cgi?id=190464 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This patch is authored by Nikola Veljkovic <Nikola.Veljkovic@zenterio.com> |
| |
| * platform/graphics/gstreamer/GStreamerCommon.cpp: |
| (WebCore::getVideoResolutionFromCaps): Reverse the SAR adjustment to "undo" it |
| instead of applying it twice. |
| |
| 2018-10-11 Alejandro G. Castro <alex@igalia.com> |
| |
| [GTK][WPE] Add mediaDevices.enumerateDevices support |
| https://bugs.webkit.org/show_bug.cgi?id=185761 |
| |
| Reviewed by Youenn Fablet. |
| |
| We are adopting the same policy COCOA is using when returning the |
| list of media devices if the user does not have persistent |
| access. Namely, we just return the first media device for audio |
| and video capture. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::filterDeviceList): Add support for |
| other platforms when filtering devices if there is no persistent |
| access to the origin. |
| |
| 2018-10-10 Chris Dumez <cdumez@apple.com> |
| |
| Rename a couple of DOMWindowProperty virtual functions |
| https://bugs.webkit.org/show_bug.cgi?id=190458 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Rename a couple of DOMWindowProperty virtual functions as the current naming no longer makes |
| sense after recent refactoring. |
| |
| disconnectFrameForDocumentSuspension() was renamed to suspendForPageCache(), and |
| reconnectFrameFromDocumentSuspension(Frame*) was renamed to resumeFromPageCache(). |
| DOMWindowProperty objects no longer need to disconnect / reconnect from their |
| frame since they now get their frame from their associated Window. However, some |
| DOMWindowProperty subclasses do have some page cache suspension / resuming logic |
| implemented of overrides of these functions. |
| |
| Also drop the disconnectDOMWindowProperties() / reconnectDOMWindowProperties() |
| methods in DOMWindow. The naming made little sense as it does not really |
| disconnect those properties in any way. Instead, inline them in |
| DOMWindow's suspendForPageCache() / resumeFromPageCache() since these are |
| the only callers. |
| |
| * Modules/indexeddb/DOMWindowIndexedDatabase.cpp: |
| (WebCore::DOMWindowIndexedDatabase::suspendForPageCache): |
| (WebCore::DOMWindowIndexedDatabase::resumeFromPageCache): |
| (WebCore::DOMWindowIndexedDatabase::disconnectFrameForDocumentSuspension): Deleted. |
| (WebCore::DOMWindowIndexedDatabase::reconnectFrameFromDocumentSuspension): Deleted. |
| * Modules/indexeddb/DOMWindowIndexedDatabase.h: |
| * history/CachedFrame.cpp: |
| (WebCore::CachedFrame::CachedFrame): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::open): |
| * loader/appcache/DOMApplicationCache.cpp: |
| (WebCore::DOMApplicationCache::suspendForPageCache): |
| (WebCore::DOMApplicationCache::resumeFromPageCache): |
| (WebCore::DOMApplicationCache::disconnectFrameForDocumentSuspension): Deleted. |
| (WebCore::DOMApplicationCache::reconnectFrameFromDocumentSuspension): Deleted. |
| * loader/appcache/DOMApplicationCache.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::suspendForPageCache): |
| (WebCore::DOMWindow::resumeFromPageCache): |
| (WebCore::DOMWindow::suspendForDocumentSuspension): Deleted. |
| (WebCore::DOMWindow::resumeFromDocumentSuspension): Deleted. |
| (WebCore::DOMWindow::disconnectDOMWindowProperties): Deleted. |
| (WebCore::DOMWindow::reconnectDOMWindowProperties): Deleted. |
| * page/DOMWindow.h: |
| * page/DOMWindowExtension.cpp: |
| (WebCore::DOMWindowExtension::suspendForPageCache): |
| (WebCore::DOMWindowExtension::resumeFromPageCache): |
| (WebCore::DOMWindowExtension::disconnectFrameForDocumentSuspension): Deleted. |
| (WebCore::DOMWindowExtension::reconnectFrameFromDocumentSuspension): Deleted. |
| * page/DOMWindowExtension.h: |
| * page/DOMWindowProperty.cpp: |
| (WebCore::DOMWindowProperty::suspendForPageCache): |
| (WebCore::DOMWindowProperty::resumeFromPageCache): |
| (WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension): Deleted. |
| (WebCore::DOMWindowProperty::reconnectFrameFromDocumentSuspension): Deleted. |
| * page/DOMWindowProperty.h: |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: create special Network waterfall for media events |
| https://bugs.webkit.org/show_bug.cgi?id=189773 |
| <rdar://problem/44626605> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: http/tests/inspector/dom/didFireEvent.html |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::HTMLMediaElement): |
| |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::addEventListenersToNode): Added. |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::addEventListenersToNodeImpl): Added. |
| |
| * inspector/agents/InspectorDOMAgent.h: |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::EventFiredCallback): Added. |
| (WebCore::EventFiredCallback::create): Added. |
| (WebCore::EventFiredCallback::operator==): Added. |
| (WebCore::EventFiredCallback::handleEvent): Added. |
| (WebCore::EventFiredCallback::EventFiredCallback): Added. |
| (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): |
| (WebCore::InspectorDOMAgent::addEventListenersToNode): Added. |
| |
| 2018-10-10 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Cleanup -[WAKView _selfHandleEvent:] and -[WAKWindow sendEventSynchronously:] |
| https://bugs.webkit.org/show_bug.cgi?id=190402 |
| |
| Reviewed by Anders Carlsson. |
| |
| Unindent case statements. Remove use of default case statements with body ASSERT_NOT_REACHED() |
| to catch the cases of a missing enumerator. By omitting the default case statement we turn |
| such a scenario into a compile-time error instead of handling it as a runtime error. |
| |
| * platform/ios/wak/WAKView.mm: |
| (-[WAKView _selfHandleEvent:]): |
| * platform/ios/wak/WAKWindow.mm: |
| (-[WAKWindow sendEventSynchronously:]): |
| |
| 2018-10-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Rename MarkupAccumulator::appendStartTag, appendElement, etc... for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=190308 |
| |
| Reviewed by Darin Adler. |
| |
| Renamed appendStartTag and appendEndTag to startAppendingNode and endAppendingNode since serialize any node, |
| not just elements which produce start and end tags. |
| |
| Renamed appendElement and appendEndElement to appendStartTag and appendEndTag since that's what they do. |
| |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::elementCannotHaveEndTag): Made this a static local function. |
| (WebCore::shouldSelfClose): Ditto. |
| (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): |
| (WebCore::MarkupAccumulator::startAppendingNode): Renamed from appendStartTag. |
| (WebCore::MarkupAccumulator::endAppendingNode): Renamed from appendEndElement and merged appendEndMarkup here. |
| (WebCore::MarkupAccumulator::appendTextSubstring): Deleted. This was only used by StyledMarkupAccumulator. |
| (WebCore::MarkupAccumulator::appendStringView): Added. |
| (WebCore::MarkupAccumulator::appendStartTag): Renamed from appendElement. |
| (WebCore::MarkupAccumulator::appendCloseTag): |
| (WebCore::MarkupAccumulator::appendNonElementNode): Renamed from appendStartMarkup. No longer serializes |
| an element. StyledMarkupAccumulator had a check before calling this function already so this clarifies |
| the purpose of this function. |
| (WebCore::MarkupAccumulator::appendElement): Deleted. |
| (WebCore::MarkupAccumulator::appendEndMarkup): Deleted. Merged into appendEndTag. |
| * editing/MarkupAccumulator.h: |
| (WebCore::MarkupAccumulator::appendNodeEnd): Renamed from appendEndTag. |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::wrapWithNode): |
| (WebCore::StyledMarkupAccumulator::appendStartTag): Renamed from appendElement. |
| (WebCore::StyledMarkupAccumulator::appendEndTag): Renamed from appendEndElement. |
| (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): |
| (WebCore::StyledMarkupAccumulator::appendNodeToPreserveMSOList): Use String::substring directly instead of |
| going through appendTextSubstring which has been deleted. |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::SerializerMarkupAccumulator::appendStartTag): Renamed from appendElement. |
| (WebCore::PageSerializer::SerializerMarkupAccumulator::appendEndTag): Renamed from appendEndElement. |
| |
| 2018-10-10 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, attempt to fix the build with current SDKs. |
| |
| * crypto/mac/CryptoKeyRSAMac.cpp: |
| (WebCore::getPublicKeyComponents): |
| |
| 2018-10-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Only report the supported WebGL version |
| https://bugs.webkit.org/show_bug.cgi?id=190434 |
| <rdar://problem/45024677> |
| |
| Reviewed by Dean Jackson. |
| |
| Tested by fast/canvas/webgl/gl-getstring.html |
| |
| Revise getParameter(gl.VERSION) to only return the WebGL version without the hardware and |
| driver-specific details available through the low-level OpenGL driver interface. These details |
| are not needed for WebGL use and expose information about the user's system that we do not |
| need to share. |
| |
| * html/canvas/WebGL2RenderingContext.cpp: |
| (WebCore::WebGL2RenderingContext::getParameter): |
| * html/canvas/WebGLRenderingContext.cpp: |
| (WebCore::WebGLRenderingContext::getParameter): |
| |
| 2018-10-10 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| Unreviewed, add missing headers for inline functions |
| https://bugs.webkit.org/show_bug.cgi?id=190429 |
| |
| * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: |
| |
| 2018-10-10 Tim Horton <timothy_horton@apple.com> |
| |
| Share more WKShareSheet code between macOS and iOS, and fix a few bugs |
| https://bugs.webkit.org/show_bug.cgi?id=190420 |
| |
| Reviewed by Simon Fraser. |
| |
| Test: fast/web-share/share-with-no-url.html |
| |
| * page/Navigator.cpp: |
| (WebCore::Navigator::share): |
| * page/ShareData.h: |
| Make 'url' an optional field on ShareDataWithParsedURL, and don't |
| reject the share() promise if the URL is totally empty (as opposed to invalid). |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: notify the frontend when a canvas has started recording via console.record |
| https://bugs.webkit.org/show_bug.cgi?id=190306 |
| |
| Reviewed by Brian Burg. |
| |
| Updated existing tests: LayoutTests/inspector/canvas/recording-2d.html |
| LayoutTests/inspector/canvas/recording-bitmaprenderer.html |
| LayoutTests/inspector/canvas/recording-webgl-snapshots.html |
| LayoutTests/inspector/canvas/recording-webgl.html |
| |
| * inspector/agents/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::startRecording): |
| (WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas): |
| |
| * inspector/InspectorCanvas.h: |
| Default `singleFrame` to false to better match the default behaviour of other `console` |
| functions (`profile` doesn't stop until `profileEnd` is called, so the same should be true |
| of `record` and `recordEnd`). |
| |
| 2018-10-10 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| [JSC] Rename createXXX to tryCreateXXX if it can return RefPtr |
| https://bugs.webkit.org/show_bug.cgi?id=190429 |
| |
| Reviewed by Saam Barati. |
| |
| Use `tryCreate` or new `create`. If we use new `create`, we can use Ref<> and remove null check. |
| |
| * Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp: |
| (WebCore::CDMSessionClearKey::cachedKeyForKeyID const): |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| (WebCore::jsValueWithDictionaryInContext): |
| * Modules/webaudio/AudioBuffer.cpp: |
| (WebCore::AudioBuffer::AudioBuffer): |
| (WebCore::AudioBuffer::getChannelData): |
| * Modules/webvr/VREyeParameters.cpp: |
| (WebCore::VREyeParameters::offset const): |
| * Modules/webvr/VRFrameData.cpp: |
| (WebCore::matrixToArray): |
| * Modules/webvr/VRPose.cpp: |
| (WebCore::optionalFloat3ToJSCArray): |
| (WebCore::VRPose::position const): |
| (WebCore::VRPose::orientation const): |
| * Modules/webvr/VRStageParameters.cpp: |
| (WebCore::VRStageParameters::sittingToStandingTransform const): |
| * bindings/js/ReadableStreamDefaultController.h: |
| (WebCore::ReadableStreamDefaultController::enqueue): |
| * bindings/js/SerializedScriptValue.cpp: |
| (WebCore::CloneDeserializer::readArrayBufferView): |
| * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp: |
| (WebCore::CryptoKeyRSA::algorithm const): |
| * crypto/mac/CryptoKeyRSAMac.cpp: |
| (WebCore::CryptoKeyRSA::algorithm const): |
| * css/DOMMatrixReadOnly.cpp: |
| (WebCore::DOMMatrixReadOnly::toFloat32Array const): |
| (WebCore::DOMMatrixReadOnly::toFloat64Array const): |
| * css/FontFace.cpp: |
| (WebCore::FontFace::create): |
| * dom/TextEncoder.cpp: |
| (WebCore::TextEncoder::encode const): |
| * html/ImageData.cpp: |
| (WebCore::ImageData::ImageData): |
| * html/ImageData.h: |
| (WebCore::ImageData::data const): |
| (): Deleted. |
| * html/canvas/WebGL2RenderingContext.cpp: |
| (WebCore::WebGL2RenderingContext::bufferData): |
| (WebCore::WebGL2RenderingContext::bufferSubData): |
| (WebCore::WebGL2RenderingContext::getInternalformatParameter): |
| (WebCore::WebGL2RenderingContext::getParameter): |
| * html/canvas/WebGLRenderingContext.cpp: |
| (WebCore::WebGLRenderingContext::getParameter): |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| (WebCore::WebGLRenderingContextBase::getUniform): |
| (WebCore::WebGLRenderingContextBase::getVertexAttrib): |
| (WebCore::WebGLRenderingContextBase::getWebGLFloatArrayParameter): |
| (WebCore::WebGLRenderingContextBase::getWebGLIntArrayParameter): |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundation::extractKeyURIKeyIDAndCertificateFromInitData): |
| * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp: |
| (WebCore::CDMSessionAVFoundationCF::generateKeyRequest): |
| * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: |
| (WebCore::AVFWrapper::shouldWaitForLoadingOfResource): |
| * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: |
| (WebCore::CDMSessionAVContentKeySession::generateKeyRequest): |
| (WebCore::CDMSessionAVContentKeySession::releaseKeys): |
| (WebCore::CDMSessionAVContentKeySession::update): |
| (WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage): |
| * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: |
| (WebCore::CDMSessionAVFoundationObjC::generateKeyRequest): |
| * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: |
| (WebCore::CDMSessionAVStreamSession::generateKeyRequest): |
| (WebCore::CDMSessionAVStreamSession::releaseKeys): |
| (WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): |
| * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: |
| (WebCore::MediaSampleAVFObjC::getRGBAImageData const): |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): |
| * platform/graphics/cairo/ImageBufferCairo.cpp: |
| (WebCore::getImageData): |
| * platform/graphics/cg/ImageBufferDataCG.cpp: |
| (WebCore::ImageBufferData::getData const): |
| * platform/graphics/filters/FEGaussianBlur.cpp: |
| (WebCore::FEGaussianBlur::platformApplySoftware): |
| * platform/graphics/filters/FilterEffect.cpp: |
| (WebCore::FilterEffect::unmultipliedResult): |
| (WebCore::FilterEffect::premultipliedResult): |
| (WebCore::FilterEffect::copyUnmultipliedResult): |
| (WebCore::FilterEffect::copyPremultipliedResult): |
| (WebCore::FilterEffect::createUnmultipliedImageResult): |
| (WebCore::FilterEffect::createPremultipliedImageResult): |
| * platform/graphics/win/ImageBufferDataDirect2D.cpp: |
| (WebCore::ImageBufferData::getData const): |
| * platform/mac/SerializedPlatformRepresentationMac.mm: |
| (WebCore::jsValueWithDictionaryInContext): |
| * platform/mock/mediasource/MockBox.cpp: |
| (WebCore::MockBox::peekType): |
| (WebCore::MockBox::peekLength): |
| (WebCore::MockTrackBox::MockTrackBox): |
| (WebCore::MockInitializationBox::MockInitializationBox): |
| (WebCore::MockSampleBox::MockSampleBox): |
| * rendering/shapes/Shape.cpp: |
| (WebCore::Shape::createRasterShape): |
| * testing/LegacyMockCDM.cpp: |
| (WebCore::initDataPrefix): |
| (WebCore::keyPrefix): |
| (WebCore::keyRequest): |
| |
| 2018-10-10 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Compare input string to UIKeyInput constants using string comparison instead of pointer comparison |
| https://bugs.webkit.org/show_bug.cgi?id=190432 |
| |
| Reviewed by Tim Horton. |
| |
| Pointer comparision is brittle. We should be more forgiving and perform string comparision |
| of an input string to a UIKeyInput constant. |
| |
| * platform/ios/WebEvent.mm: |
| (normalizedStringWithAppKitCompatibilityMapping): |
| |
| 2018-10-10 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r236802. |
| |
| Working on getting the HTML spec updated instead |
| (https://github.com/whatwg/html/pull/4079) |
| |
| Reverted changeset: |
| |
| "Passing noopener=NOOPENER to window.open() should cause the |
| new window to not have an opener" |
| https://bugs.webkit.org/show_bug.cgi?id=190251 |
| https://trac.webkit.org/changeset/236802 |
| |
| 2018-10-10 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| XMLHttpRequest should use reportExtraMemoryAllocated/reportExtraMemoryVisited instead of deprecatedReportExtraMemory |
| https://bugs.webkit.org/show_bug.cgi?id=190279 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch switches deprecatedReportExtraMemory to reportExtraMemoryAllocated/reportExtraMemoryVisited |
| in XMLHttpRequest. We report extra memory allocation when the readyState becomes DONE. And memoryCost |
| function returns the memory cost which is based on the readyState and m_responseBuilder. |
| We annotate XMLHttpRequest with ReportExtraMemoryCost to use reportExtraMemoryVisited automatically with |
| memoryCost() function. |
| |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::changeState): |
| (WebCore::XMLHttpRequest::abort): |
| (WebCore::XMLHttpRequest::internalAbort): |
| (WebCore::XMLHttpRequest::networkErrorTimerFired): |
| (WebCore::XMLHttpRequest::memoryCost const): |
| (WebCore::XMLHttpRequest::didFinishLoading): |
| (WebCore::XMLHttpRequest::didReachTimeout): |
| (WebCore::XMLHttpRequest::dropProtection): Deleted. |
| * xml/XMLHttpRequest.h: |
| * xml/XMLHttpRequest.idl: |
| |
| 2018-10-09 Antoine Quint <graouts@apple.com> |
| |
| Remove the frames() timing function |
| https://bugs.webkit.org/show_bug.cgi?id=190034 |
| <rdar://problem/44827544> |
| |
| Reviewed by Dean Jackson. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::createTimingFunctionValue): |
| * css/CSSTimingFunctionValue.cpp: |
| (WebCore::CSSFramesTimingFunctionValue::customCSSText const): Deleted. |
| (WebCore::CSSFramesTimingFunctionValue::equals const): Deleted. |
| * css/CSSTimingFunctionValue.h: |
| * css/CSSToStyleMap.cpp: |
| (WebCore::CSSToStyleMap::mapAnimationTimingFunction): |
| * css/CSSValue.cpp: |
| (WebCore::CSSValue::equals const): |
| (WebCore::CSSValue::cssText const): |
| (WebCore::CSSValue::destroy): |
| * css/CSSValue.h: |
| (WebCore::CSSValue::isStepsTimingFunctionValue const): |
| (WebCore::CSSValue::isFramesTimingFunctionValue const): Deleted. |
| * css/CSSValueKeywords.in: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeAnimationTimingFunction): |
| (WebCore::consumeFrames): Deleted. |
| * platform/animation/TimingFunction.cpp: |
| (WebCore::operator<<): |
| (WebCore::TimingFunction::transformTime const): |
| (WebCore::TimingFunction::createFromCSSValue): |
| * platform/animation/TimingFunction.h: |
| (WebCore::TimingFunction::isStepsTimingFunction const): |
| (WebCore::TimingFunction::isFramesTimingFunction const): Deleted. |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::animationCanBeAccelerated const): |
| (WebCore::animationHasFramesTimingFunction): Deleted. |
| |
| 2018-10-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: show redirect requests in Network and Timelines tabs |
| https://bugs.webkit.org/show_bug.cgi?id=150005 |
| <rdar://problem/5378164> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Updated existing test http/tests/inspector/network/resource-timing.html. |
| |
| * inspector/agents/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::buildObjectForTiming): |
| (WebCore::InspectorNetworkAgent::didFinishLoading): |
| Add missing fields for `Network.types.ResourceTiming`. |
| |
| 2018-10-09 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| REGRESSION(r234620): SVGLangSpace::svgAttributeChanged() should invalidate the renderer of the SVGGeometryElement descendant only |
| https://bugs.webkit.org/show_bug.cgi?id=190411 |
| |
| Reviewed by Simon Fraser. |
| |
| Test: svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr.html |
| |
| When changing the attributes of the SVGLangSpace, we should invalidate |
| the renderer of the SVGGeometryElement descendant only. Renderer of other |
| elements, like SVGStopElement, should not be invalidated because they do |
| not have geometry and they can be used as resources for drawing another |
| SVGGeometryElement. |
| |
| * svg/SVGElement.h: |
| (WebCore::SVGElement::isSVGGeometryElement const): |
| * svg/SVGGeometryElement.h: |
| (isType): |
| * svg/SVGLangSpace.cpp: |
| (WebCore::SVGLangSpace::svgAttributeChanged): |
| |
| 2018-10-09 Chris Dumez <cdumez@apple.com> |
| |
| Anchor target should be ignored on activation when the download attribute is set |
| https://bugs.webkit.org/show_bug.cgi?id=190408 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Anchor target should be ignored on activation when the download attribute is set: |
| - https://html.spec.whatwg.org/#the-a-element:downloading-hyperlinks-2 |
| |
| When the download attribute is set, we should use the "download the hyperlink" algorithm [1] |
| instead of the "follow the hyperlink" [2] algorithm. |
| |
| Note that the "download the hyperlink" triggers a download and ignores the target attribute |
| entirely. |
| |
| This is important as an anchor element with target=_blank and the download attribute set may |
| fail because of Safari's popup blocker if we do not disregard the anchor target. |
| |
| [1] https://html.spec.whatwg.org/#downloading-hyperlinks |
| [2] https://html.spec.whatwg.org/#following-hyperlinks-2 |
| |
| Tests: fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed.html |
| fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadURL): |
| |
| 2018-10-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Complex text crashes with harfbuzz 1.8.8 |
| https://bugs.webkit.org/show_bug.cgi?id=190409 |
| |
| Reviewed by Žan Doberšek. |
| |
| We discovered that harfbuzz 1.8.8 breaks WebKit by changing the ownership semantics of |
| hb_icu_get_unicode_funcs() from (transfer full) to (transfer none). Our code was actually |
| expecting (transfer none), so it's not immediately clear to me why it's crashing now, but |
| doesn't matter as Behdad recommends removing this line of code because it hasn't been |
| been needed for many years. |
| |
| This should be covered by all our complex text tests if the bots were upgraded to the newer |
| harfbuzz. |
| |
| * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: |
| (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): |
| |
| 2018-10-09 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Cleanup EventHandler::passSubframeEventToSubframe() |
| https://bugs.webkit.org/show_bug.cgi?id=190390 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Unindent case statements in switch block and use more auto. |
| |
| * page/ios/EventHandlerIOS.mm: |
| (WebCore::EventHandler::passSubframeEventToSubframe): |
| |
| 2018-10-09 Daniel Bates <dabates@apple.com> |
| |
| Cleanup WebEvent.mm |
| https://bugs.webkit.org/show_bug.cgi?id=190391 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Unindent case statements in switch blocks. |
| |
| * platform/ios/WebEvent.mm: |
| (-[WebEvent _typeDescription]): |
| (-[WebEvent _modiferFlagsDescription]): |
| (-[WebEvent _touchPhaseDescription:]): |
| (-[WebEvent _eventDescription]): |
| |
| 2018-10-09 Oriol Brufau <obrufau@igalia.com> |
| |
| Resolve inset properties to computed style when there is overconstraintment |
| https://bugs.webkit.org/show_bug.cgi?id=188711 |
| |
| Reviewed by Manuel Rego Casasnovas. |
| |
| This patch makes WebKit behave closer to Blink. Specifically, |
| - In overconstrained relative or absolute positioning, inset properties resolve |
| to the computed value (absolutizing percentages) instead of to the used value. |
| - In fixed positioning, the resolved value of non-'auto' values is no longer |
| increased by the border of the containg block. |
| |
| This patch can slighlty alter the resolved value if it's a long decimal number. |
| |
| Tests: imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-absolute.html |
| imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-fixed.html |
| imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-nobox.html |
| imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-relative.html |
| imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-static.html |
| imported/w3c/web-platform-tests/css/cssom/getComputedStyle-insets-sticky.html |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::positionOffsetValue): |
| * rendering/RenderBox.h: |
| |
| 2018-10-09 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Import CTAP HID message and packet structure from Chromium |
| https://bugs.webkit.org/show_bug.cgi?id=189289 |
| <rdar://problem/44120310> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch imports CTAP HID message and packet structure: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20170927/fido-client-to-authenticator-protocol-v2.0-ps-20170927.html#message-and-packet-structure |
| from Chromium. With this library, WebKit can now turn binaries into messages that CTAP devices could understand. |
| This patch contains the following Chromium files and modifies them to fit into WebKit: |
| https://cs.chromium.org/chromium/src/device/fido/fido_constants.cc?l=1&rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75 |
| https://cs.chromium.org/chromium/src/device/fido/fido_constants.h?l=1&rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75 |
| https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_message.cc?l=1&rcl=387f3725de2842e0e6b7175a9b2ed472b0cf781a |
| https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_message.h?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75 |
| https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_packet.cc?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75 |
| https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_packet.h?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75 |
| https://cs.chromium.org/chromium/src/device/fido/hid/fido_hid_message_unittest.cc?rcl=1efcfbeaf4e4cedf58716e1982b5702770571a75 |
| |
| Covered by API tests. |
| |
| * Modules/webauthn/fido/FidoConstants.cpp: Added. |
| (fido::isFidoHidDeviceCommand): |
| * Modules/webauthn/fido/FidoConstants.h: Added. |
| * Modules/webauthn/fido/FidoHidMessage.cpp: Added. |
| (fido::FidoHidMessage::create): |
| (fido::FidoHidMessage::createFromSerializedData): |
| (fido::FidoHidMessage::messageComplete const): |
| (fido::FidoHidMessage::getMessagePayload const): |
| (fido::FidoHidMessage::popNextPacket): |
| (fido::FidoHidMessage::addContinuationPacket): |
| (fido::FidoHidMessage::numPackets const): |
| (fido::FidoHidMessage::FidoHidMessage): |
| * Modules/webauthn/fido/FidoHidMessage.h: Added. |
| * Modules/webauthn/fido/FidoHidPacket.cpp: Added. |
| (fido::FidoHidPacket::FidoHidPacket): |
| (fido::FidoHidInitPacket::createFromSerializedData): |
| (fido::FidoHidInitPacket::FidoHidInitPacket): |
| (fido::FidoHidInitPacket::getSerializedData const): |
| (fido::FidoHidContinuationPacket::createFromSerializedData): |
| (fido::FidoHidContinuationPacket::FidoHidContinuationPacket): |
| (fido::FidoHidContinuationPacket::getSerializedData const): |
| * Modules/webauthn/fido/FidoHidPacket.h: Added. |
| * Modules/webauthn/fido/FidoParsingUtils.cpp: Added. |
| (fido::getInitPacketData): |
| (fido::getContinuationPacketData): |
| * Modules/webauthn/fido/FidoParsingUtils.h: Added. |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2018-10-09 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| [CoordGraphics] Remove the 'previous backing store' logic |
| https://bugs.webkit.org/show_bug.cgi?id=188838 |
| |
| Reviewed by Žan Doberšek. |
| |
| Remove previousBackingStore from LayerState, since it's not needed anymore. |
| When there is scale adjustment, we now simply discard mainBackingStore and |
| recreate a new one. |
| |
| No new tests required. |
| |
| * platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h: |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): |
| (WebCore::CoordinatedGraphicsLayer::updateContentBuffers): |
| (WebCore::CoordinatedGraphicsLayer::purgeBackingStores): |
| |
| 2018-10-09 Antti Koivisto <antti@apple.com> |
| |
| [PSON] Prewarm system UI font |
| https://bugs.webkit.org/show_bug.cgi?id=190397 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Cache system UI font fallbacks. Almost every web process needs these. |
| |
| * page/ProcessWarming.cpp: |
| (WebCore::ProcessWarming::prewarmGlobally): |
| |
| 2018-10-09 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (Safari 12): Download of Blob URL fails |
| https://bugs.webkit.org/show_bug.cgi?id=190351 |
| <rdar://problem/45091181> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When using both the download attribute and target="_blank" on an anchor element, we would |
| mistakenly drop the download attribute after the "new window" policy decision has been made. |
| As a result, we would try to load the blob instead of downloading it. |
| |
| Test: fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): |
| |
| 2018-10-09 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] r236735 has some dead ASSERTs that need to be moved |
| https://bugs.webkit.org/show_bug.cgi?id=190394 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::createOptionalParserForFormat): |
| |
| 2018-10-09 Chris Dumez <cdumez@apple.com> |
| |
| Have DOMWindow get its frame from its document |
| https://bugs.webkit.org/show_bug.cgi?id=190389 |
| |
| Reviewed by Geoff Garen. |
| |
| Have DOMWindow get its frame from its document instead of having its own m_frame which can potentially |
| be out-of-sync. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::frameDestroyed): |
| (WebCore::Document::willDetachPage): |
| (WebCore::Document::attachToCachedFrame): |
| * dom/Document.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::allowPopUp): |
| (WebCore::ContextDestructionObserver): |
| (WebCore::DOMWindow::didSecureTransitionTo): |
| (WebCore::DOMWindow::frameDestroyed): |
| (WebCore::DOMWindow::willDetachDocumentFromFrame): |
| (WebCore::DOMWindow::reconnectDOMWindowProperties): |
| (WebCore::DOMWindow::isCurrentlyDisplayedInFrame const): |
| (WebCore::DOMWindow::collectMatchingElementsInFlatTree): |
| (WebCore::DOMWindow::matchingElementInFlatTree): |
| (WebCore::DOMWindow::orientation const): |
| (WebCore::DOMWindow::console const): |
| (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld): |
| (WebCore::DOMWindow::webkitNamespace): |
| (WebCore::DOMWindow::postMessage): |
| (WebCore::DOMWindow::postMessageTimerFired): |
| (WebCore::DOMWindow::frameElement const): |
| (WebCore::DOMWindow::focus): |
| (WebCore::DOMWindow::blur): |
| (WebCore::DOMWindow::close): |
| (WebCore::DOMWindow::print): |
| (WebCore::DOMWindow::stop): |
| (WebCore::DOMWindow::alert): |
| (WebCore::DOMWindow::confirm): |
| (WebCore::DOMWindow::prompt): |
| (WebCore::DOMWindow::find const): |
| (WebCore::DOMWindow::outerHeight const): |
| (WebCore::DOMWindow::outerWidth const): |
| (WebCore::DOMWindow::innerHeight const): |
| (WebCore::DOMWindow::innerWidth const): |
| (WebCore::DOMWindow::screenX const): |
| (WebCore::DOMWindow::screenY const): |
| (WebCore::DOMWindow::scrollX const): |
| (WebCore::DOMWindow::scrollY const): |
| (WebCore::DOMWindow::closed const): |
| (WebCore::DOMWindow::length const): |
| (WebCore::DOMWindow::name const): |
| (WebCore::DOMWindow::setName): |
| (WebCore::DOMWindow::setStatus): |
| (WebCore::DOMWindow::setDefaultStatus): |
| (WebCore::DOMWindow::self const): |
| (WebCore::DOMWindow::opener const): |
| (WebCore::DOMWindow::disownOpener): |
| (WebCore::DOMWindow::parent const): |
| (WebCore::DOMWindow::top const): |
| (WebCore::DOMWindow::getMatchedCSSRules const): |
| (WebCore::DOMWindow::devicePixelRatio const): |
| (WebCore::DOMWindow::scrollBy const): |
| (WebCore::DOMWindow::scrollTo const): |
| (WebCore::DOMWindow::allowedToChangeWindowGeometry const): |
| (WebCore::DOMWindow::moveBy const): |
| (WebCore::DOMWindow::moveTo const): |
| (WebCore::DOMWindow::resizeBy const): |
| (WebCore::DOMWindow::resizeTo const): |
| (WebCore::DOMWindow::clearTimeout): |
| (WebCore::DOMWindow::isSameSecurityOriginAsMainFrame const): |
| (WebCore::DOMWindow::finishedLoading): |
| (WebCore::DOMWindow::setLocation): |
| (WebCore::DOMWindow::open): |
| (WebCore::DOMWindow::showModalDialog): |
| (WebCore::DOMWindow::frame const): |
| (WebCore::FrameDestructionObserver): Deleted. |
| (WebCore::DOMWindow::willDetachPage): Deleted. |
| (WebCore::DOMWindow::detachFromFrame): Deleted. |
| (WebCore::DOMWindow::attachToFrame): Deleted. |
| * page/DOMWindow.h: |
| |
| 2018-10-09 Jer Noble <jer.noble@apple.com> |
| |
| ISOTrackEncryptionBox returns incorrect defaultKeyID |
| https://bugs.webkit.org/show_bug.cgi?id=190368 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: TestWebKitAPI.ISOBox.ISOProtectionSchemeInfoBox |
| |
| ISOTrackEncryptionBox::parse() increments the data offset by an incorrect amount. |
| |
| Drive-by fix: add EXPORT macros to all the ISO box classes so that tests can be written in TestWebKitAPI. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/iso/ISOBox.h: |
| * platform/graphics/iso/ISOOriginalFormatBox.h: |
| * platform/graphics/iso/ISOProtectionSchemeInfoBox.h: |
| * platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h: |
| * platform/graphics/iso/ISOSchemeInformationBox.h: |
| * platform/graphics/iso/ISOSchemeTypeBox.h: |
| * platform/graphics/iso/ISOTrackEncryptionBox.cpp: |
| (WebCore::ISOTrackEncryptionBox::parse): |
| * platform/graphics/iso/ISOTrackEncryptionBox.h: |
| |
| 2018-10-09 Youenn Fablet <youenn@apple.com> |
| |
| Add support for IceCandidate stats |
| https://bugs.webkit.org/show_bug.cgi?id=190329 |
| |
| Reviewed by Eric Carlson. |
| |
| Convert IceCandidate stats gathered by libwebrtc. |
| Since networkType might be sensitive information, we currently do not expose it. |
| We do not expose address either if it is a host or prflx candidate. |
| |
| Test: webrtc/candidate-stats.html |
| |
| * Modules/mediastream/RTCStatsReport.h: |
| * Modules/mediastream/RTCStatsReport.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: |
| (WebCore::iceCandidateState): |
| (WebCore::fillRTCIceCandidateStats): |
| (WebCore::LibWebRTCStatsCollector::OnStatsDelivered): |
| |
| 2018-10-09 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer] Stealing cross-origin video pixel with HLS |
| https://bugs.webkit.org/show_bug.cgi?id=190003 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Report the SecurityOrigin of downloaded adaptivedemux (HLS, DASH, |
| SmoothStreaming) fragments as tainted if their origin differs from |
| the manifest SecurityOrigin. SecurityOrigins are stored in the |
| CachedResourceStreamingClient implemented in the internal |
| GStreamer HTTP(S) source element. |
| |
| The implementation is not ideal yet because the fragments download |
| is performed by the WebProcess, until bug 189967 is fixed. When |
| this bug is fixed, the m_hasTaintedOrigin member variable should |
| be removed and all checks be done unconditionally to the |
| webkithttpsrc element which will manage the download of the |
| manifests and fragments. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::loadFull): Reset the m_hasTaintedOrigin value. |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Get the |
| fragment URL from the adaptivedemux stats message and check if its |
| origin is tainted. |
| (WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const): |
| Initial implementation by checking the m_hasTaintedOrigin member |
| variable value. |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (CachedResourceStreamingClient::responseReceived): Store the |
| resource origin internally so it can be checked later on by |
| webKitSrtcWouldTaintOrigin(). |
| (webKitSrcWouldTaintOrigin): Check given origin against cached |
| origins. This implementation is similar to Cocoa's |
| WebCoreNSURLSession implementation. |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: |
| |
| 2018-10-09 Antti Koivisto <antti@apple.com> |
| |
| Prewarm FontDatabase on process swap |
| https://bugs.webkit.org/show_bug.cgi?id=190312 |
| |
| Reviewed by Chris Dumez. |
| |
| Implement basic prewarming of FontDatabase. When the domain of the first page load on |
| a new process is known we pass the list of font families previous used by that domain to the |
| process. This is used to prewarm CoreText font database. Initialization (which involves lots of |
| blocking IPC) happens outside the main thread so the fonts are ready to use when needed. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/PrewarmInformation.h: Added. |
| (WebCore::PrewarmInformation::encode const): |
| (WebCore::PrewarmInformation::decode): |
| |
| Add data structure for prewarm information with encode/decode support. |
| |
| * page/ProcessWarming.cpp: |
| (WebCore::ProcessWarming::collectPrewarmInformation): |
| (WebCore::ProcessWarming::prewarmWithInformation): |
| |
| Prewarming interface to be used from WebKit. |
| |
| * page/ProcessWarming.h: |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::collectPrewarmInformation const): |
| (WebCore::FontCache::prewarm): |
| * platform/graphics/FontCache.h: |
| * platform/graphics/cocoa/FontCacheCoreText.cpp: |
| (WebCore::FontDatabase::collectionForFamily): |
| (WebCore::FontDatabase::fontForPostScriptName): |
| (WebCore::FontDatabase::clear): |
| |
| Add mutex for thread safe access. |
| |
| (WebCore::FontCache::createFontPlatformData): |
| (WebCore::FontCache::collectPrewarmInformation const): |
| |
| Collect font families seen by this process. |
| |
| (WebCore::FontCache::prewarm): |
| |
| Prewarm FontDatabase in a dispatch queue. |
| |
| 2018-10-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] [WK2] Add support for text alignment and text lists in font attributes |
| https://bugs.webkit.org/show_bug.cgi?id=190342 |
| <rdar://problem/44767118> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for computing and encoding information about text alignment and enclosing list elements in the font |
| attributes dictionary, exposed to the UI delegate on Cocoa platforms. This is exposed through NSParagraphStyle, |
| which contains properties for both `NSTextAlignment` and an array of enclosing `NSTextList` objects. |
| |
| Test: FontAttributes.NestedTextListsWithHorizontalAlignment |
| FontAttributes.FontAttributesAfterChangingSelection |
| |
| * editing/Editor.cpp: |
| (WebCore::editableTextListsAtPositionInDescendingOrder): |
| |
| Add a helper function to ascend the DOM, starting at the given position, in search of enclosing list elements. |
| For each enclosing list element we find within the scope of the editable root, we create a `TextList` |
| representing the list element. |
| |
| (WebCore::Editor::fontAttributesAtSelectionStart const): |
| |
| Compute and set enclosing text lists and text alignment. For text alignment, we convert the initial text-align |
| value, `start`, to NSTextAlignmentNatural (the default text alignment type on Cocoa platforms); other values |
| then map to Left, Right, Center, and Justified as expected (taking direction into account). |
| |
| * editing/FontAttributes.h: |
| (WebCore::TextList::encode const): |
| (WebCore::TextList::decode): |
| |
| Introduce TextList, a platform-agnostic representation of an unordered or ordered list. On Cocoa, this can be |
| used to construct a corresponding NSTextList. |
| |
| * editing/cocoa/FontAttributesCocoa.mm: |
| (WebCore::cocoaTextListMarkerName): |
| |
| Attempt to map a WebCore list style type to a `NSTextListMarker*` constant. While most of the Cocoa marker |
| formats have a corresponding web-exposed list style type, many web-exposed types have no Cocoa equivalent; as |
| such, fall back to default marker formats: "{disc}" for unordered lists and "{decimal}" for ordered lists. |
| |
| (WebCore::TextList::createTextList const): |
| (WebCore::FontAttributes::createDictionary const): |
| |
| Include an NSParagraphStyle in the dictionary of font attributes that includes information about text alignment |
| and enclosing text lists (per Cocoa convention, in order from outermost list to innermost list). |
| |
| 2018-10-08 Justin Fan <justin_fan@apple.com> |
| |
| WebGPU: Rename old WebGPU prototype to WebMetal |
| https://bugs.webkit.org/show_bug.cgi?id=190325 |
| <rdar://problem/44990443> |
| |
| Reviewed by Dean Jackson. |
| |
| Existing WebGPU tests also renamed to reflect WebGPU -> WebMetal change. |
| |
| Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface. |
| |
| * CMakeLists.txt: |
| * Configurations/FeatureDefines.xcconfig: |
| * DerivedSources.make: |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebGPURenderPassAttachmentDescriptorCustom.cpp. |
| (WebCore::toJSNewlyCreated): |
| (WebCore::toJS): |
| * bindings/js/JSWebMetalRenderingContextCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebGPURenderingContextCustom.cpp. |
| (WebCore::JSWebMetalRenderingContext::visitAdditionalChildren): |
| * bindings/js/WebCoreBuiltinNames.h: |
| * dom/Document.cpp: |
| (WebCore::Document::getCSSCanvasContext): |
| * dom/Document.h: |
| * dom/Document.idl: |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::getContext): |
| (WebCore::HTMLCanvasElement::isWebMetalType): |
| (WebCore::HTMLCanvasElement::createContextWebMetal): |
| (WebCore::HTMLCanvasElement::getContextWebMetal): |
| (WebCore::HTMLCanvasElement::isWebGPUType): Deleted. |
| (WebCore::HTMLCanvasElement::createContextWebGPU): Deleted. |
| (WebCore::HTMLCanvasElement::getContextWebGPU): Deleted. |
| * html/HTMLCanvasElement.h: |
| * html/HTMLCanvasElement.idl: |
| * html/canvas/CanvasRenderingContext.h: |
| (WebCore::CanvasRenderingContext::isWebMetal const): |
| (WebCore::CanvasRenderingContext::isWebGPU const): Deleted. |
| * html/canvas/WebGPURenderingContext.cpp: Removed. |
| * html/canvas/WebMetalBuffer.cpp: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.cpp. |
| (WebCore::WebMetalBuffer::create): |
| (WebCore::WebMetalBuffer::WebMetalBuffer): |
| * html/canvas/WebMetalBuffer.h: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.h. |
| * html/canvas/WebMetalBuffer.idl: Renamed from Source/WebCore/html/canvas/WebGPUBuffer.idl. |
| * html/canvas/WebMetalCommandBuffer.cpp: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.cpp. |
| (WebCore::WebMetalCommandBuffer::create): |
| (WebCore::WebMetalCommandBuffer::WebMetalCommandBuffer): |
| (WebCore::WebMetalCommandBuffer::~WebMetalCommandBuffer): |
| (WebCore::WebMetalCommandBuffer::commit): |
| (WebCore::WebMetalCommandBuffer::presentDrawable): |
| (WebCore::WebMetalCommandBuffer::createRenderCommandEncoderWithDescriptor): |
| (WebCore::WebMetalCommandBuffer::createComputeCommandEncoder): |
| (WebCore::WebMetalCommandBuffer::completed): |
| * html/canvas/WebMetalCommandBuffer.h: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.h. |
| * html/canvas/WebMetalCommandBuffer.idl: Renamed from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl. |
| * html/canvas/WebMetalCommandQueue.cpp: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.cpp. |
| (WebCore::WebMetalCommandQueue::create): |
| (WebCore::WebMetalCommandQueue::WebMetalCommandQueue): |
| (WebCore::WebMetalCommandQueue::createCommandBuffer): |
| * html/canvas/WebMetalCommandQueue.h: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.h. |
| * html/canvas/WebMetalCommandQueue.idl: Renamed from Source/WebCore/html/canvas/WebGPUCommandQueue.idl. |
| * html/canvas/WebMetalComputeCommandEncoder.cpp: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.cpp. |
| (WebCore::GPUSizeMake): |
| (WebCore::WebMetalComputeCommandEncoder::create): |
| (WebCore::WebMetalComputeCommandEncoder::WebMetalComputeCommandEncoder): |
| (WebCore::WebMetalComputeCommandEncoder::setComputePipelineState): |
| (WebCore::WebMetalComputeCommandEncoder::setBuffer): |
| (WebCore::WebMetalComputeCommandEncoder::dispatch): |
| (WebCore::WebMetalComputeCommandEncoder::endEncoding): |
| * html/canvas/WebMetalComputeCommandEncoder.h: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.h. |
| * html/canvas/WebMetalComputeCommandEncoder.idl: Renamed from Source/WebCore/html/canvas/WebGPUComputeCommandEncoder.idl. |
| * html/canvas/WebMetalComputePipelineState.cpp: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.cpp. |
| (WebCore::WebMetalComputePipelineState::create): |
| (WebCore::WebMetalComputePipelineState::WebMetalComputePipelineState): |
| * html/canvas/WebMetalComputePipelineState.h: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.h. |
| * html/canvas/WebMetalComputePipelineState.idl: Renamed from Source/WebCore/html/canvas/WebGPUComputePipelineState.idl. |
| * html/canvas/WebMetalDepthStencilDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.cpp. |
| (WebCore::WebMetalDepthStencilDescriptor::create): |
| (WebCore::WebMetalDepthStencilDescriptor::depthWriteEnabled const): |
| (WebCore::WebMetalDepthStencilDescriptor::setDepthWriteEnabled): |
| (WebCore::WebMetalDepthStencilDescriptor::depthCompareFunction const): |
| (WebCore::WebMetalDepthStencilDescriptor::setDepthCompareFunction): |
| * html/canvas/WebMetalDepthStencilDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.h. |
| * html/canvas/WebMetalDepthStencilDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilDescriptor.idl. |
| * html/canvas/WebMetalDepthStencilState.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.cpp. |
| (WebCore::WebMetalDepthStencilState::create): |
| (WebCore::WebMetalDepthStencilState::WebMetalDepthStencilState): |
| (WebCore::WebMetalDepthStencilState::label const): |
| (WebCore::WebMetalDepthStencilState::setLabel): |
| * html/canvas/WebMetalDepthStencilState.h: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.h. |
| * html/canvas/WebMetalDepthStencilState.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.idl. |
| * html/canvas/WebMetalDrawable.cpp: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.cpp. |
| (WebCore::WebMetalDrawable::create): |
| (WebCore::WebMetalDrawable::WebMetalDrawable): |
| * html/canvas/WebMetalDrawable.h: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.h. |
| (WebCore::WebMetalDrawable::texture): |
| * html/canvas/WebMetalDrawable.idl: Renamed from Source/WebCore/html/canvas/WebGPUDrawable.idl. |
| * html/canvas/WebMetalEnums.cpp: Renamed from Source/WebCore/html/canvas/WebGPUEnums.cpp. |
| (WebCore::toWebMetalCompareFunction): |
| (WebCore::web3DCompareFunctionName): |
| (WebCore::toGPUCompareFunction): |
| * html/canvas/WebMetalEnums.h: Renamed from Source/WebCore/html/canvas/WebGPUEnums.h. |
| * html/canvas/WebMetalEnums.idl: Renamed from Source/WebCore/html/canvas/WebGPUEnums.idl. |
| * html/canvas/WebMetalFunction.cpp: Renamed from Source/WebCore/html/canvas/WebGPUFunction.cpp. |
| (WebCore::WebMetalFunction::create): |
| (WebCore::WebMetalFunction::WebMetalFunction): |
| * html/canvas/WebMetalFunction.h: Renamed from Source/WebCore/html/canvas/WebGPUFunction.h. |
| * html/canvas/WebMetalFunction.idl: Renamed from Source/WebCore/html/canvas/WebGPUFunction.idl. |
| * html/canvas/WebMetalLibrary.cpp: Renamed from Source/WebCore/html/canvas/WebGPULibrary.cpp. |
| (WebCore::WebMetalLibrary::create): |
| (WebCore::WebMetalLibrary::WebMetalLibrary): |
| (WebCore::WebMetalLibrary::functionNames const): |
| (WebCore::WebMetalLibrary::functionWithName const): |
| * html/canvas/WebMetalLibrary.h: Renamed from Source/WebCore/html/canvas/WebGPULibrary.h. |
| * html/canvas/WebMetalLibrary.idl: Renamed from Source/WebCore/html/canvas/WebGPULibrary.idl. |
| * html/canvas/WebMetalRenderCommandEncoder.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.cpp. |
| (WebCore::WebMetalRenderCommandEncoder::create): |
| (WebCore::WebMetalRenderCommandEncoder::WebMetalRenderCommandEncoder): |
| (WebCore::WebMetalRenderCommandEncoder::setRenderPipelineState): |
| (WebCore::WebMetalRenderCommandEncoder::setDepthStencilState): |
| (WebCore::WebMetalRenderCommandEncoder::setVertexBuffer): |
| (WebCore::WebMetalRenderCommandEncoder::setFragmentBuffer): |
| (WebCore::WebMetalRenderCommandEncoder::drawPrimitives): |
| (WebCore::WebMetalRenderCommandEncoder::endEncoding): |
| * html/canvas/WebMetalRenderCommandEncoder.h: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.h. |
| * html/canvas/WebMetalRenderCommandEncoder.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderCommandEncoder.idl. |
| * html/canvas/WebMetalRenderPassAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.cpp. |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::WebMetalRenderPassAttachmentDescriptor): |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::loadAction const): |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::setLoadAction): |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::storeAction const): |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::setStoreAction): |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::texture const): |
| (WebCore::WebMetalRenderPassAttachmentDescriptor::setTexture): |
| * html/canvas/WebMetalRenderPassAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.h. |
| * html/canvas/WebMetalRenderPassAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassAttachmentDescriptor.idl. |
| * html/canvas/WebMetalRenderPassColorAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.cpp. |
| (WebCore::WebMetalRenderPassColorAttachmentDescriptor::create): |
| (WebCore::WebMetalRenderPassColorAttachmentDescriptor::WebMetalRenderPassColorAttachmentDescriptor): |
| (WebCore::WebMetalRenderPassColorAttachmentDescriptor::descriptor const): |
| (WebCore::WebMetalRenderPassColorAttachmentDescriptor::clearColor const): |
| (WebCore::WebMetalRenderPassColorAttachmentDescriptor::setClearColor): |
| * html/canvas/WebMetalRenderPassColorAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.h. |
| * html/canvas/WebMetalRenderPassColorAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassColorAttachmentDescriptor.idl. |
| * html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.cpp. |
| (WebCore::WebMetalRenderPassDepthAttachmentDescriptor::create): |
| (WebCore::WebMetalRenderPassDepthAttachmentDescriptor::WebMetalRenderPassDepthAttachmentDescriptor): |
| (WebCore::WebMetalRenderPassDepthAttachmentDescriptor::clearDepth const): |
| (WebCore::WebMetalRenderPassDepthAttachmentDescriptor::setClearDepth): |
| (WebCore::WebMetalRenderPassDepthAttachmentDescriptor::descriptor const): |
| * html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.h. |
| * html/canvas/WebMetalRenderPassDepthAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDepthAttachmentDescriptor.idl. |
| * html/canvas/WebMetalRenderPassDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.cpp. |
| (WebCore::WebMetalRenderPassDescriptor::create): |
| (WebCore::WebMetalRenderPassDescriptor::depthAttachment): |
| (WebCore::WebMetalRenderPassDescriptor::colorAttachments): |
| * html/canvas/WebMetalRenderPassDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.h. |
| * html/canvas/WebMetalRenderPassDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPassDescriptor.idl. |
| * html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.cpp. |
| (WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::create): |
| (WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::WebMetalRenderPipelineColorAttachmentDescriptor): |
| (WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::pixelFormat const): |
| (WebCore::WebMetalRenderPipelineColorAttachmentDescriptor::setPixelFormat): |
| * html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.h. |
| * html/canvas/WebMetalRenderPipelineColorAttachmentDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.idl. |
| * html/canvas/WebMetalRenderPipelineDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.cpp. |
| (WebCore::WebMetalRenderPipelineDescriptor::create): |
| (WebCore::WebMetalRenderPipelineDescriptor::vertexFunction const): |
| (WebCore::WebMetalRenderPipelineDescriptor::setVertexFunction): |
| (WebCore::WebMetalRenderPipelineDescriptor::fragmentFunction const): |
| (WebCore::WebMetalRenderPipelineDescriptor::setFragmentFunction): |
| (WebCore::WebMetalRenderPipelineDescriptor::colorAttachments): |
| (WebCore::WebMetalRenderPipelineDescriptor::depthAttachmentPixelFormat const): |
| (WebCore::WebMetalRenderPipelineDescriptor::setDepthAttachmentPixelFormat): |
| (WebCore::WebMetalRenderPipelineDescriptor::reset): |
| * html/canvas/WebMetalRenderPipelineDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.h. |
| * html/canvas/WebMetalRenderPipelineDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineDescriptor.idl. |
| * html/canvas/WebMetalRenderPipelineState.cpp: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.cpp. |
| (WebCore::WebMetalRenderPipelineState::create): |
| (WebCore::WebMetalRenderPipelineState::WebMetalRenderPipelineState): |
| (WebCore::WebMetalRenderPipelineState::label const): |
| (WebCore::WebMetalRenderPipelineState::setLabel): |
| * html/canvas/WebMetalRenderPipelineState.h: Renamed from Source/WebCore/html/canvas/WebGPURenderPipelineState.h. |
| * html/canvas/WebMetalRenderPipelineState.idl: Renamed from Source/WebCore/html/canvas/WebGPUDepthStencilState.idl. |
| * html/canvas/WebMetalRenderingContext.cpp: Added. |
| (WebCore::WebMetalRenderingContext::create): |
| (WebCore::WebMetalRenderingContext::WebMetalRenderingContext): |
| (WebCore::WebMetalRenderingContext::canvas const): |
| (WebCore::WebMetalRenderingContext::initializeNewContext): |
| (WebCore::WebMetalRenderingContext::clampedCanvasSize const): |
| (WebCore::WebMetalRenderingContext::hasPendingActivity const): |
| (WebCore::WebMetalRenderingContext::stop): |
| (WebCore::WebMetalRenderingContext::activeDOMObjectName const): |
| (WebCore::WebMetalRenderingContext::canSuspendForDocumentSuspension const): |
| (WebCore::WebMetalRenderingContext::platformLayer const): |
| (WebCore::WebMetalRenderingContext::markLayerComposited): |
| (WebCore::WebMetalRenderingContext::reshape): |
| (WebCore::WebMetalRenderingContext::createLibrary): |
| (WebCore::WebMetalRenderingContext::createRenderPipelineState): |
| (WebCore::WebMetalRenderingContext::createDepthStencilState): |
| (WebCore::WebMetalRenderingContext::createComputePipelineState): |
| (WebCore::WebMetalRenderingContext::createCommandQueue): |
| (WebCore::WebMetalRenderingContext::nextDrawable): |
| (WebCore::WebMetalRenderingContext::createBuffer): |
| (WebCore::WebMetalRenderingContext::createTexture): |
| * html/canvas/WebMetalRenderingContext.h: Renamed from Source/WebCore/html/canvas/WebGPURenderingContext.h. |
| * html/canvas/WebMetalRenderingContext.idl: Renamed from Source/WebCore/html/canvas/WebGPURenderingContext.idl. |
| * html/canvas/WebMetalSize.h: Renamed from Source/WebCore/html/canvas/WebGPUSize.h. |
| * html/canvas/WebMetalSize.idl: Renamed from Source/WebCore/html/canvas/WebGPUSize.idl. |
| * html/canvas/WebMetalTexture.cpp: Renamed from Source/WebCore/html/canvas/WebGPUTexture.cpp. |
| (WebCore::WebMetalTexture::create): |
| (WebCore::WebMetalTexture::WebMetalTexture): |
| * html/canvas/WebMetalTexture.h: Renamed from Source/WebCore/html/canvas/WebGPUTexture.h. |
| * html/canvas/WebMetalTexture.idl: Renamed from Source/WebCore/html/canvas/WebGPUTexture.idl. |
| * html/canvas/WebMetalTextureDescriptor.cpp: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.cpp. |
| (WebCore::WebMetalTextureDescriptor::create): |
| (WebCore::WebMetalTextureDescriptor::WebMetalTextureDescriptor): |
| (WebCore::WebMetalTextureDescriptor::width const): |
| (WebCore::WebMetalTextureDescriptor::setWidth): |
| (WebCore::WebMetalTextureDescriptor::height const): |
| (WebCore::WebMetalTextureDescriptor::setHeight): |
| (WebCore::WebMetalTextureDescriptor::sampleCount const): |
| (WebCore::WebMetalTextureDescriptor::setSampleCount): |
| (WebCore::WebMetalTextureDescriptor::textureType const): |
| (WebCore::WebMetalTextureDescriptor::setTextureType): |
| (WebCore::WebMetalTextureDescriptor::storageMode const): |
| (WebCore::WebMetalTextureDescriptor::setStorageMode): |
| (WebCore::WebMetalTextureDescriptor::usage const): |
| (WebCore::WebMetalTextureDescriptor::setUsage): |
| * html/canvas/WebMetalTextureDescriptor.h: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.h. |
| * html/canvas/WebMetalTextureDescriptor.idl: Renamed from Source/WebCore/html/canvas/WebGPUTextureDescriptor.idl. |
| * inspector/InspectorCanvas.cpp: |
| (WebCore::InspectorCanvas::buildObjectForCanvas): |
| * inspector/agents/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::requestContent): |
| (WebCore::contextAsScriptValue): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setWebMetalEnabled): |
| (WebCore::RuntimeEnabledFeatures::webMetalEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setWebGPUEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::webGPUEnabled const): Deleted. |
| * platform/Logging.h: |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer): |
| (WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa): |
| * platform/graphics/cocoa/WebMetalLayer.h: Renamed from Source/WebCore/platform/graphics/cocoa/WebGPULayer.h. |
| * platform/graphics/cocoa/WebMetalLayer.mm: Renamed from Source/WebCore/platform/graphics/cocoa/WebGPULayer.mm. |
| (-[WebMetalLayer initWithGPUDevice:]): |
| * platform/graphics/gpu/GPUBuffer.cpp: |
| (WebCore::GPUBuffer::~GPUBuffer): |
| * platform/graphics/gpu/GPUBuffer.h: |
| * platform/graphics/gpu/GPUCommandBuffer.cpp: |
| (WebCore::GPUCommandBuffer::~GPUCommandBuffer): |
| * platform/graphics/gpu/GPUCommandBuffer.h: |
| * platform/graphics/gpu/GPUCommandQueue.cpp: |
| (WebCore::GPUCommandQueue::~GPUCommandQueue): |
| * platform/graphics/gpu/GPUCommandQueue.h: |
| * platform/graphics/gpu/GPUComputeCommandEncoder.cpp: |
| (WebCore::GPUComputeCommandEncoder::~GPUComputeCommandEncoder): |
| * platform/graphics/gpu/GPUComputeCommandEncoder.h: |
| * platform/graphics/gpu/GPUComputePipelineState.cpp: |
| (WebCore::GPUComputePipelineState::~GPUComputePipelineState): |
| * platform/graphics/gpu/GPUComputePipelineState.h: |
| * platform/graphics/gpu/GPUDepthStencilDescriptor.cpp: |
| (WebCore::GPUDepthStencilDescriptor::~GPUDepthStencilDescriptor): |
| * platform/graphics/gpu/GPUDepthStencilDescriptor.h: |
| * platform/graphics/gpu/GPUDepthStencilState.cpp: |
| (WebCore::GPUDepthStencilState::~GPUDepthStencilState): |
| * platform/graphics/gpu/GPUDepthStencilState.h: |
| * platform/graphics/gpu/GPUDevice.cpp: |
| (WebCore::GPUDevice::~GPUDevice): |
| * platform/graphics/gpu/GPUDevice.h: |
| (WebCore::GPUDevice::layer const): |
| * platform/graphics/gpu/GPUDrawable.cpp: |
| (WebCore::GPUDrawable::~GPUDrawable): |
| * platform/graphics/gpu/GPUDrawable.h: |
| * platform/graphics/gpu/GPUEnums.h: |
| * platform/graphics/gpu/GPUFunction.cpp: |
| (WebCore::GPUFunction::~GPUFunction): |
| * platform/graphics/gpu/GPUFunction.h: |
| * platform/graphics/gpu/GPULibrary.cpp: |
| (WebCore::GPULibrary::~GPULibrary): |
| * platform/graphics/gpu/GPULibrary.h: |
| * platform/graphics/gpu/GPURenderCommandEncoder.cpp: |
| (WebCore::GPURenderCommandEncoder::~GPURenderCommandEncoder): |
| * platform/graphics/gpu/GPURenderCommandEncoder.h: |
| * platform/graphics/gpu/GPURenderPassAttachmentDescriptor.cpp: |
| (WebCore::GPURenderPassAttachmentDescriptor::~GPURenderPassAttachmentDescriptor): |
| * platform/graphics/gpu/GPURenderPassAttachmentDescriptor.h: |
| * platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.cpp: |
| (WebCore::GPURenderPassColorAttachmentDescriptor::~GPURenderPassColorAttachmentDescriptor): |
| * platform/graphics/gpu/GPURenderPassColorAttachmentDescriptor.h: |
| * platform/graphics/gpu/GPURenderPassDepthAttachmentDescriptor.cpp: |
| (WebCore::GPURenderPassDepthAttachmentDescriptor::~GPURenderPassDepthAttachmentDescriptor): |
| * platform/graphics/gpu/GPURenderPassDepthAttachmentDescriptor.h: |
| * platform/graphics/gpu/GPURenderPassDescriptor.cpp: |
| (WebCore::GPURenderPassDescriptor::~GPURenderPassDescriptor): |
| * platform/graphics/gpu/GPURenderPassDescriptor.h: |
| * platform/graphics/gpu/GPURenderPipelineColorAttachmentDescriptor.cpp: |
| (WebCore::GPURenderPipelineColorAttachmentDescriptor::~GPURenderPipelineColorAttachmentDescriptor): |
| * platform/graphics/gpu/GPURenderPipelineColorAttachmentDescriptor.h: |
| * platform/graphics/gpu/GPURenderPipelineDescriptor.cpp: |
| (WebCore::GPURenderPipelineDescriptor::~GPURenderPipelineDescriptor): |
| * platform/graphics/gpu/GPURenderPipelineDescriptor.h: |
| * platform/graphics/gpu/GPURenderPipelineState.cpp: |
| (WebCore::GPURenderPipelineState::~GPURenderPipelineState): |
| * platform/graphics/gpu/GPURenderPipelineState.h: |
| * platform/graphics/gpu/GPUSize.h: |
| * platform/graphics/gpu/GPUTexture.cpp: |
| (WebCore::GPUTexture::~GPUTexture): |
| * platform/graphics/gpu/GPUTexture.h: |
| * platform/graphics/gpu/GPUTextureDescriptor.cpp: |
| (WebCore::GPUTextureDescriptor::~GPUTextureDescriptor): |
| * platform/graphics/gpu/GPUTextureDescriptor.h: |
| * platform/graphics/metal/GPUBufferMetal.mm: |
| (WebCore::GPUBuffer::GPUBuffer): |
| * platform/graphics/metal/GPUCommandBufferMetal.mm: |
| * platform/graphics/metal/GPUCommandQueueMetal.mm: |
| * platform/graphics/metal/GPUComputeCommandEncoderMetal.mm: |
| * platform/graphics/metal/GPUComputePipelineStateMetal.mm: |
| (WebCore::GPUComputePipelineState::GPUComputePipelineState): |
| * platform/graphics/metal/GPUDepthStencilDescriptorMetal.mm: |
| * platform/graphics/metal/GPUDepthStencilStateMetal.mm: |
| (WebCore::GPUDepthStencilState::setLabel const): |
| * platform/graphics/metal/GPUDeviceMetal.mm: |
| (WebCore::GPUDevice::reshape const): |
| * platform/graphics/metal/GPUDrawableMetal.mm: |
| (WebCore::GPUDrawable::release): |
| * platform/graphics/metal/GPUFunctionMetal.mm: |
| * platform/graphics/metal/GPULibraryMetal.mm: |
| (WebCore::GPULibrary::GPULibrary): |
| * platform/graphics/metal/GPURenderCommandEncoderMetal.mm: |
| (WebCore::GPURenderCommandEncoder::GPURenderCommandEncoder): |
| * platform/graphics/metal/GPURenderPassAttachmentDescriptorMetal.mm: |
| * platform/graphics/metal/GPURenderPassColorAttachmentDescriptorMetal.mm: |
| * platform/graphics/metal/GPURenderPassDepthAttachmentDescriptorMetal.mm: |
| * platform/graphics/metal/GPURenderPassDescriptorMetal.mm: |
| * platform/graphics/metal/GPURenderPipelineColorAttachmentDescriptorMetal.mm: |
| * platform/graphics/metal/GPURenderPipelineDescriptorMetal.mm: |
| * platform/graphics/metal/GPURenderPipelineStateMetal.mm: |
| (WebCore::GPURenderPipelineState::setLabel const): |
| * platform/graphics/metal/GPUTextureDescriptorMetal.mm: |
| * platform/graphics/metal/GPUTextureMetal.mm: |
| (WebCore::GPUTexture::GPUTexture): |
| * testing/InternalSettings.cpp: |
| (WebCore::InternalSettings::Backup::Backup): |
| (WebCore::InternalSettings::Backup::restoreTo): |
| (WebCore::InternalSettings::setWebMetalEnabled): |
| (WebCore::InternalSettings::setWebGPUEnabled): Deleted. |
| * testing/InternalSettings.h: |
| * testing/InternalSettings.idl: |
| |
| 2018-10-08 Dean Jackson <dino@apple.com> |
| |
| CrashTracer: backboardd at Recursion :: QuartzCore: CA::Render::Updater::prepare_sublayer0 |
| https://bugs.webkit.org/show_bug.cgi?id=190376 |
| <rdar://problem/44986520> |
| |
| Reviewed by Tim Horton. |
| |
| Very deep CoreAnimation layer trees can cause problems. Reduce our maximum |
| depth from 256 to 128. |
| |
| Modified existing test: compositing/layer-creation/deep-tree.html |
| |
| * platform/graphics/ca/GraphicsLayerCA.cpp: Cap the depth at 128. |
| |
| 2018-10-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236941. |
| https://bugs.webkit.org/show_bug.cgi?id=190374 |
| |
| Causing API test failures in new test (Requested by jernoble |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "ISOTrackEncryptionBox returns incorrect defaultKeyID" |
| https://bugs.webkit.org/show_bug.cgi?id=190368 |
| https://trac.webkit.org/changeset/236941 |
| |
| 2018-10-08 Aditya Keerthi <akeerthi@apple.com> |
| |
| Make <input type=color> a runtime enabled (on-by-default) feature |
| https://bugs.webkit.org/show_bug.cgi?id=189162 |
| |
| Reviewed by Wenson Hsieh and Tim Horton. |
| |
| Enable the build-time flag INPUT_TYPE_COLOR by default and introduce a runtime-enabled feature for input type |
| color, also on by default. |
| |
| Covered by rebaselining existing layout tests. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * html/InputType.cpp: |
| (WebCore::createInputTypeFactoryMap): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::inputTypeColorEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setInputTypeColorEnabled): |
| |
| 2018-10-08 Jer Noble <jer.noble@apple.com> |
| |
| ISOTrackEncryptionBox returns incorrect defaultKeyID |
| https://bugs.webkit.org/show_bug.cgi?id=190368 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: TestWebKitAPI.ISOBox.ISOProtectionSchemeInfoBox |
| |
| ISOTrackEncryptionBox::parse() increments the data offset by an incorrect amount. |
| |
| Drive-by fix: add EXPORT macros to all the ISO box classes so that tests can be written in TestWebKitAPI. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/iso/ISOBox.h: |
| * platform/graphics/iso/ISOOriginalFormatBox.h: |
| * platform/graphics/iso/ISOProtectionSchemeInfoBox.h: |
| * platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h: |
| * platform/graphics/iso/ISOSchemeInformationBox.h: |
| * platform/graphics/iso/ISOSchemeTypeBox.h: |
| * platform/graphics/iso/ISOTrackEncryptionBox.cpp: |
| (WebCore::ISOTrackEncryptionBox::parse): |
| * platform/graphics/iso/ISOTrackEncryptionBox.h: |
| |
| 2018-10-08 Antti Koivisto <antti@apple.com> |
| |
| Move SystemFontDatabase to a file of its own |
| https://bugs.webkit.org/show_bug.cgi?id=190347 |
| |
| Reviewed by Chris Dumez. |
| |
| Also rename it to SystemFontDatabaseCoreText as it is CoreText specific. |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseNoncriticalMemory): |
| * page/cocoa/MemoryReleaseCocoa.mm: |
| |
| Release SystemFontDatabaseCoreText directly from platform specific cleanup code. |
| |
| (WebCore::platformReleaseMemory): |
| * platform/graphics/cocoa/FontDescriptionCocoa.cpp: |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::systemFontCascadeList): |
| (WebCore::FontCascadeDescription::effectiveFamilyCount const): |
| (WebCore::FontCascadeDescription::effectiveFamilyAt const): |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParameters): Deleted. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::isHashTableDeletedValue const): Deleted. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::operator== const): Deleted. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::hash const): Deleted. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParametersHash::hash): Deleted. |
| (WebCore::SystemFontDatabase::CoreTextCascadeListParameters::CoreTextCascadeListParametersHash::equal): Deleted. |
| (): Deleted. |
| (WebCore::SystemFontDatabase::singleton): Deleted. |
| (WebCore::SystemFontDatabase::systemFontCascadeList): Deleted. |
| (WebCore::SystemFontDatabase::clear): Deleted. |
| (WebCore::SystemFontDatabase::SystemFontDatabase): Deleted. |
| (WebCore::SystemFontDatabase::applyWeightItalicsAndFallbackBehavior): Deleted. |
| (WebCore::SystemFontDatabase::removeCascadeList): Deleted. |
| (WebCore::SystemFontDatabase::computeCascadeList): Deleted. |
| (WebCore::systemFontParameters): Deleted. |
| * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp: Added. |
| (WebCore::SystemFontDatabaseCoreText::singleton): |
| (WebCore::SystemFontDatabaseCoreText::SystemFontDatabaseCoreText): |
| (WebCore::SystemFontDatabaseCoreText::systemFontCascadeList): |
| (WebCore::SystemFontDatabaseCoreText::clear): |
| (WebCore::SystemFontDatabaseCoreText::applyWeightItalicsAndFallbackBehavior): |
| (WebCore::SystemFontDatabaseCoreText::removeCascadeList): |
| (WebCore::SystemFontDatabaseCoreText::computeCascadeList): |
| (WebCore::SystemFontDatabaseCoreText::systemFontParameters): |
| * platform/graphics/cocoa/SystemFontDatabaseCoreText.h: Added. |
| (WebCore::SystemFontDatabaseCoreText::CascadeListParameters::CascadeListParameters): |
| (WebCore::SystemFontDatabaseCoreText::CascadeListParameters::isHashTableDeletedValue const): |
| (WebCore::SystemFontDatabaseCoreText::CascadeListParameters::operator== const): |
| (WebCore::SystemFontDatabaseCoreText::CascadeListParameters::hash const): |
| (WebCore::SystemFontDatabaseCoreText::CascadeListParameters::CascadeListParametersHash::hash): |
| (WebCore::SystemFontDatabaseCoreText::CascadeListParameters::CascadeListParametersHash::equal): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| |
| 2018-10-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove dead code: VideoFullscreenModel::isVisible() |
| https://bugs.webkit.org/show_bug.cgi?id=190356 |
| |
| Reviewed by Jon Lee. |
| |
| No new tests because there is no behavior change. |
| |
| Remove isVisible() since it is no longer used. |
| |
| * platform/cocoa/VideoFullscreenModel.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (WebCore::VideoFullscreenModelVideoElement::isVisible const): Deleted. |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::isVisible const): Deleted. |
| |
| 2018-10-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove dead code: resetMediaState. |
| https://bugs.webkit.org/show_bug.cgi?id=190355 |
| |
| Reviewed by Jon Lee. |
| |
| No new tests because no behavior change. |
| |
| Remove resetMediaState since it is no longer used. |
| |
| * platform/cocoa/PlaybackSessionInterface.h: |
| (WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): |
| * platform/ios/PlaybackSessionInterfaceAVKit.h: |
| * platform/ios/PlaybackSessionInterfaceAVKit.mm: |
| (WebCore::PlaybackSessionInterfaceAVKit::resetMediaState): Deleted. |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController resetMediaState]): Deleted. |
| * platform/mac/PlaybackSessionInterfaceMac.h: |
| * platform/mac/PlaybackSessionInterfaceMac.mm: |
| (WebCore::PlaybackSessionInterfaceMac::resetMediaState): Deleted. |
| |
| 2018-10-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Use MediaPlayerEnums::VideoGravity in VideoFullscreenModel. |
| https://bugs.webkit.org/show_bug.cgi?id=190357 |
| |
| Reviewed by Jon Lee. |
| |
| No new tests because no behavior change. |
| |
| Use MediaPlayerEnums::VideoGravity instead of creating another identical enum in VideoFullscreenModel. |
| |
| * platform/cocoa/VideoFullscreenModel.h: |
| (): Deleted. |
| * platform/cocoa/VideoFullscreenModelVideoElement.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (WebCore::VideoFullscreenModelVideoElement::setVideoLayerGravity): |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (-[WebAVPlayerLayer setVideoGravity:]): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::setVideoLayerGravity): |
| * platform/mac/VideoFullscreenInterfaceMac.mm: |
| (-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]): |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: group media network entries by the node that triggered the request |
| https://bugs.webkit.org/show_bug.cgi?id=189606 |
| <rdar://problem/44438527> |
| |
| Reviewed by Brian Burg. |
| |
| Test: http/tests/inspector/network/resource-initiatorNode.html |
| |
| Add extra arguments to functions that create `ResourceRequest` objects for media resources so |
| that `initiatorNodeIdentifier` can be set for WebInspector frontend to use for grouping. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::loadResource): |
| * html/HTMLVideoElement.cpp: |
| (WebCore::HTMLVideoElement::setDisplayMode): |
| * loader/FrameLoader.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::willLoadMediaElementURL): |
| Handles initial (e.g. DNT) resource requests. |
| |
| * loader/ImageLoader.cpp: |
| (ImageLoader::updateFromElement): |
| Handles "poster" requests. |
| |
| * loader/MediaResourceLoader.cpp: |
| (MediaResourceLoader::requestResource): |
| Handles byte-range requests. |
| |
| * html/track/LoadableTextTrack.cpp: |
| (WebCore::LoadableTextTrack::loadTimerFired): |
| * loader/TextTrackLoader.h: |
| * loader/TextTrackLoader.cpp: |
| (WebCore::TextTrackLoader::load): |
| * html/HTMLTrackElement.h: |
| Handles <track> (e.g. subtitle) requests. |
| |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::identifierForNode): |
| * inspector/InspectorInstrumentation.h: |
| (WebCore::InspectorInstrumentation::identifierForNode): |
| * inspector/InspectorInstrumentation.cpp: |
| (WebCore::InspectorInstrumentation::identifierForNodeImpl): |
| Allows callers to get a `DOM.nodeId` for the given `Node`, which is (in this patch) attached |
| to the `ResourceRequest` and later used by `InspectorNetworkAgent`. |
| |
| * inspector/agents/InspectorNetworkAgent.h: |
| * inspector/agents/InspectorNetworkAgent.cpp: |
| (WebCore::InspectorNetworkAgent::willSendRequest): |
| (WebCore::InspectorNetworkAgent::didLoadResourceFromMemoryCache): |
| (WebCore::InspectorNetworkAgent::buildInitiatorObject): |
| |
| * platform/network/ResourceRequestBase.h: |
| (WebCore::ResourceRequestBase::initiatorNodeIdentifier const): |
| (WebCore::ResourceRequestBase::setInitiatorNodeIdentifier): |
| * platform/network/ResourceRequestBase.cpp: |
| (WebCore::ResourceRequestBase::setAsIsolatedCopy): |
| * platform/network/cf/ResourceRequestCFNet.cpp: |
| (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache): |
| |
| * inspector/InspectorCanvas.h: |
| * inspector/InspectorCanvas.cpp: |
| (WebCore::InspectorCanvas::buildObjectForCanvas): |
| * inspector/agents/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::enable): |
| (WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext): |
| Don't try to push the canvas' node to the frontend, as this will create a dangling node in |
| `InspectorDOMAgent` if the canvas' node is detached from the DOM. |
| |
| 2018-10-08 Andy Estes <aestes@apple.com> |
| |
| [Payment Request] Requests should be aborted after details settle when the user cancels |
| https://bugs.webkit.org/show_bug.cgi?id=190333 |
| |
| Reviewed by Alex Christensen. |
| |
| In Payment Request's "update a PaymentRequest's details" algorithm, user agents are expected |
| to disable the payment UI when PaymentRequest details are being updated by the merchant. |
| This is to prevent the user from accepting a payment before updated details are displayed. |
| |
| Further, Payment Request's "user aborts the payment request" algorithm says that the |
| algorithm should be terminated prior to throwing an AbortError if the request is currently |
| being updated, and also that user agents SHOULD ensure this never occurs. This is based on |
| the assumption that payment UIs are disabled during details updates. |
| |
| For Apple Pay, while it is true that a payment cannot be accepted by the user while details |
| are being updated by the merchant, the payment UI is not completely disabled. In particular, |
| the user is allowed to abort the payment while details are being updated. We need to honor |
| the user's request to abort without doing so in the middle of a details update. |
| |
| This patch defers a user-initiated abort until after details are settled, at which point the |
| promise returned by show() is rejected with an AbortError. This behaves as if the details |
| update promise were rejected by the merchant. |
| |
| Added a test case to http/tests/paymentrequest/payment-request-show-method.https.html. |
| |
| * Modules/paymentrequest/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::settleDetailsPromise): |
| (WebCore::PaymentRequest::whenDetailsSettled): |
| (WebCore::PaymentRequest::cancel): |
| * Modules/paymentrequest/PaymentRequest.h: |
| |
| 2018-10-08 Chris Dumez <cdumez@apple.com> |
| |
| Have DOMWindowProperty get is frame from its associated DOMWindow |
| https://bugs.webkit.org/show_bug.cgi?id=190341 |
| |
| Reviewed by Alex Christensen. |
| |
| Have DOMWindowProperty get is frame from its associated DOMWindow, instead of having its own |
| m_frame that can potentially get out-of-sync. |
| |
| * Modules/cache/DOMWindowCaches.cpp: |
| (WebCore::DOMWindowCaches::DOMWindowCaches): |
| * Modules/geolocation/NavigatorGeolocation.cpp: |
| (WebCore::NavigatorGeolocation::NavigatorGeolocation): |
| (WebCore::NavigatorGeolocation::from): |
| * Modules/geolocation/NavigatorGeolocation.h: |
| * Modules/indexeddb/DOMWindowIndexedDatabase.cpp: |
| (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase): |
| * Modules/mediastream/NavigatorMediaDevices.cpp: |
| (WebCore::NavigatorMediaDevices::NavigatorMediaDevices): |
| (WebCore::NavigatorMediaDevices::from): |
| * Modules/mediastream/NavigatorMediaDevices.h: |
| * Modules/quota/DOMWindowQuota.cpp: |
| (WebCore::DOMWindowQuota::DOMWindowQuota): |
| * Modules/quota/NavigatorStorageQuota.cpp: |
| (WebCore::NavigatorStorageQuota::NavigatorStorageQuota): |
| * Modules/quota/NavigatorStorageQuota.h: |
| * Modules/speech/DOMWindowSpeechSynthesis.cpp: |
| (WebCore::DOMWindowSpeechSynthesis::DOMWindowSpeechSynthesis): |
| * css/StyleMedia.cpp: |
| (WebCore::StyleMedia::StyleMedia): |
| (WebCore::StyleMedia::type const): |
| (WebCore::StyleMedia::matchMedium const): |
| * css/StyleMedia.h: |
| * loader/appcache/DOMApplicationCache.cpp: |
| (WebCore::DOMApplicationCache::DOMApplicationCache): |
| (WebCore::DOMApplicationCache::applicationCacheHost const): |
| (WebCore::DOMApplicationCache::scriptExecutionContext const): |
| * loader/appcache/DOMApplicationCache.h: |
| * page/BarProp.cpp: |
| (WebCore::BarProp::BarProp): |
| (WebCore::BarProp::visible const): |
| * page/BarProp.h: |
| (WebCore::BarProp::create): |
| * page/DOMSelection.cpp: |
| (WebCore::DOMSelection::DOMSelection): |
| (WebCore::DOMSelection::visibleSelection const): |
| (WebCore::DOMSelection::anchorNode const): |
| (WebCore::DOMSelection::anchorOffset const): |
| (WebCore::DOMSelection::focusNode const): |
| (WebCore::DOMSelection::focusOffset const): |
| (WebCore::DOMSelection::baseNode const): |
| (WebCore::DOMSelection::baseOffset const): |
| (WebCore::DOMSelection::extentNode const): |
| (WebCore::DOMSelection::extentOffset const): |
| (WebCore::DOMSelection::isCollapsed const): |
| (WebCore::DOMSelection::type const): |
| (WebCore::DOMSelection::rangeCount const): |
| (WebCore::DOMSelection::collapse): |
| (WebCore::DOMSelection::collapseToEnd): |
| (WebCore::DOMSelection::collapseToStart): |
| (WebCore::DOMSelection::empty): |
| (WebCore::DOMSelection::setBaseAndExtent): |
| (WebCore::DOMSelection::setPosition): |
| (WebCore::DOMSelection::modify): |
| (WebCore::DOMSelection::extend): |
| (WebCore::DOMSelection::getRangeAt): |
| (WebCore::DOMSelection::removeAllRanges): |
| (WebCore::DOMSelection::addRange): |
| (WebCore::DOMSelection::deleteFromDocument): |
| (WebCore::DOMSelection::containsNode const): |
| (WebCore::DOMSelection::toString): |
| (WebCore::DOMSelection::shadowAdjustedNode const): |
| (WebCore::DOMSelection::shadowAdjustedOffset const): |
| (WebCore::DOMSelection::isValidForPosition const): |
| * page/DOMSelection.h: |
| (WebCore::DOMSelection::create): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::screen): |
| (WebCore::DOMWindow::history): |
| (WebCore::DOMWindow::locationbar): |
| (WebCore::DOMWindow::menubar): |
| (WebCore::DOMWindow::personalbar): |
| (WebCore::DOMWindow::scrollbars): |
| (WebCore::DOMWindow::statusbar): |
| (WebCore::DOMWindow::toolbar): |
| (WebCore::DOMWindow::applicationCache): |
| (WebCore::DOMWindow::navigator): |
| (WebCore::DOMWindow::location): |
| (WebCore::DOMWindow::visualViewport): |
| (WebCore::DOMWindow::webkitNamespace): |
| (WebCore::DOMWindow::getSelection): |
| (WebCore::DOMWindow::styleMedia): |
| * page/DOMWindow.h: |
| * page/DOMWindowExtension.cpp: |
| (WebCore::DOMWindowExtension::DOMWindowExtension): |
| * page/DOMWindowExtension.h: |
| (WebCore::DOMWindowExtension::create): |
| * page/DOMWindowProperty.cpp: |
| (WebCore::DOMWindowProperty::DOMWindowProperty): |
| (WebCore::DOMWindowProperty::~DOMWindowProperty): |
| (WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension): |
| (WebCore::DOMWindowProperty::reconnectFrameFromDocumentSuspension): |
| (WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame): |
| (WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame): |
| (WebCore::DOMWindowProperty::willDetachGlobalObjectFromFrame): |
| (WebCore::DOMWindowProperty::frame const): |
| * page/DOMWindowProperty.h: |
| (WebCore::DOMWindowProperty::window const): |
| * page/History.cpp: |
| (WebCore::History::History): |
| (WebCore::History::length const): |
| (WebCore::History::scrollRestoration const): |
| (WebCore::History::setScrollRestoration): |
| (WebCore::History::stateInternal const): |
| (WebCore::History::go): |
| (WebCore::History::urlForState): |
| (WebCore::History::stateObjectAdded): |
| * page/History.h: |
| * page/Location.cpp: |
| (WebCore::Location::Location): |
| (WebCore::Location::url const): |
| (WebCore::Location::href const): |
| (WebCore::Location::protocol const): |
| (WebCore::Location::host const): |
| (WebCore::Location::hostname const): |
| (WebCore::Location::port const): |
| (WebCore::Location::pathname const): |
| (WebCore::Location::search const): |
| (WebCore::Location::origin const): |
| (WebCore::Location::ancestorOrigins const): |
| (WebCore::Location::hash const): |
| (WebCore::Location::setHref): |
| (WebCore::Location::setProtocol): |
| (WebCore::Location::setHost): |
| (WebCore::Location::setHostname): |
| (WebCore::Location::setPort): |
| (WebCore::Location::setPathname): |
| (WebCore::Location::setSearch): |
| (WebCore::Location::setHash): |
| (WebCore::Location::assign): |
| (WebCore::Location::replace): |
| (WebCore::Location::reload): |
| (WebCore::Location::setLocation): |
| * page/Location.h: |
| (WebCore::Location::create): |
| * page/Navigator.cpp: |
| (WebCore::Navigator::Navigator): |
| (WebCore::Navigator::appVersion const): |
| (WebCore::Navigator::userAgent const): |
| (WebCore::Navigator::share): |
| (WebCore::Navigator::plugins): |
| (WebCore::Navigator::mimeTypes): |
| (WebCore::Navigator::cookieEnabled const): |
| (WebCore::Navigator::javaEnabled const): |
| (WebCore::Navigator::standalone const): |
| * page/Navigator.h: |
| * page/Performance.cpp: |
| (WebCore::Performance::navigation): |
| (WebCore::Performance::timing): |
| * page/PerformanceNavigation.cpp: |
| (WebCore::PerformanceNavigation::PerformanceNavigation): |
| (WebCore::PerformanceNavigation::type const): |
| (WebCore::PerformanceNavigation::redirectCount const): |
| * page/PerformanceNavigation.h: |
| (WebCore::PerformanceNavigation::create): |
| * page/PerformanceTiming.cpp: |
| (WebCore::PerformanceTiming::PerformanceTiming): |
| (WebCore::PerformanceTiming::documentLoader const): |
| (WebCore::PerformanceTiming::documentTiming const): |
| * page/PerformanceTiming.h: |
| (WebCore::PerformanceTiming::create): |
| * page/Screen.cpp: |
| (WebCore::Screen::Screen): |
| (WebCore::Screen::height const): |
| (WebCore::Screen::width const): |
| (WebCore::Screen::colorDepth const): |
| (WebCore::Screen::pixelDepth const): |
| (WebCore::Screen::availLeft const): |
| (WebCore::Screen::availTop const): |
| (WebCore::Screen::availHeight const): |
| (WebCore::Screen::availWidth const): |
| * page/Screen.h: |
| * page/VisualViewport.cpp: |
| (WebCore::VisualViewport::VisualViewport): |
| (WebCore::VisualViewport::scriptExecutionContext const): |
| (WebCore::VisualViewport::addEventListener): |
| (WebCore::VisualViewport::updateFrameLayout const): |
| (WebCore::VisualViewport::offsetLeft const): |
| (WebCore::VisualViewport::offsetTop const): |
| (WebCore::VisualViewport::pageLeft const): |
| (WebCore::VisualViewport::pageTop const): |
| (WebCore::VisualViewport::width const): |
| (WebCore::VisualViewport::height const): |
| (WebCore::VisualViewport::scale const): |
| (WebCore::VisualViewport::update): |
| (WebCore::VisualViewport::enqueueResizeEvent): |
| (WebCore::VisualViewport::enqueueScrollEvent): |
| * page/VisualViewport.h: |
| * page/WebKitNamespace.cpp: |
| (WebCore::WebKitNamespace::WebKitNamespace): |
| * page/WebKitNamespace.h: |
| (WebCore::WebKitNamespace::create): |
| * plugins/DOMMimeTypeArray.cpp: |
| (WebCore::DOMMimeTypeArray::DOMMimeTypeArray): |
| (WebCore::DOMMimeTypeArray::item): |
| (WebCore::DOMMimeTypeArray::namedItem): |
| (WebCore::DOMMimeTypeArray::getPluginData const): |
| * plugins/DOMMimeTypeArray.h: |
| (WebCore::DOMMimeTypeArray::create): |
| * plugins/DOMPluginArray.cpp: |
| (WebCore::DOMPluginArray::DOMPluginArray): |
| (WebCore::DOMPluginArray::item): |
| (WebCore::DOMPluginArray::namedItem): |
| (WebCore::DOMPluginArray::refresh): |
| (WebCore::DOMPluginArray::pluginData const): |
| * plugins/DOMPluginArray.h: |
| (WebCore::DOMPluginArray::create): |
| * storage/Storage.cpp: |
| (WebCore::Storage::create): |
| (WebCore::Storage::Storage): |
| (WebCore::Storage::setItem): |
| (WebCore::Storage::removeItem): |
| (WebCore::Storage::clear): |
| * storage/Storage.h: |
| |
| 2018-10-08 Antti Koivisto <antti@apple.com> |
| |
| Move FontCascadeDescription to a file of its own |
| https://bugs.webkit.org/show_bug.cgi?id=190348 |
| |
| Reviewed by Chris Dumez. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/graphics/FontCascade.h: |
| * platform/graphics/FontCascadeDescription.cpp: Copied from Source/WebCore/platform/graphics/FontDescription.cpp. |
| (WebCore::FontDescription::FontDescription): Deleted. |
| (WebCore::m_shouldAllowUserInstalledFonts): Deleted. |
| (WebCore::FontDescription::setLocale): Deleted. |
| (WebCore::FontDescription::invalidateCaches): Deleted. |
| * platform/graphics/FontCascadeDescription.h: Copied from Source/WebCore/platform/graphics/FontDescription.h. |
| (WebCore::FontDescription::operator!= const): Deleted. |
| (WebCore::FontDescription::computedSize const): Deleted. |
| (WebCore::FontDescription::computedPixelSize const): Deleted. |
| (WebCore::FontDescription::italic const): Deleted. |
| (WebCore::FontDescription::stretch const): Deleted. |
| (WebCore::FontDescription::weight const): Deleted. |
| (WebCore::FontDescription::fontSelectionRequest const): Deleted. |
| (WebCore::FontDescription::renderingMode const): Deleted. |
| (WebCore::FontDescription::textRenderingMode const): Deleted. |
| (WebCore::FontDescription::script const): Deleted. |
| (WebCore::FontDescription::locale const): Deleted. |
| (WebCore::FontDescription::orientation const): Deleted. |
| (WebCore::FontDescription::nonCJKGlyphOrientation const): Deleted. |
| (WebCore::FontDescription::widthVariant const): Deleted. |
| (WebCore::FontDescription::featureSettings const): Deleted. |
| (WebCore::FontDescription::variationSettings const): Deleted. |
| (WebCore::FontDescription::fontSynthesis const): Deleted. |
| (WebCore::FontDescription::variantCommonLigatures const): Deleted. |
| (WebCore::FontDescription::variantDiscretionaryLigatures const): Deleted. |
| (WebCore::FontDescription::variantHistoricalLigatures const): Deleted. |
| (WebCore::FontDescription::variantContextualAlternates const): Deleted. |
| (WebCore::FontDescription::variantPosition const): Deleted. |
| (WebCore::FontDescription::variantCaps const): Deleted. |
| (WebCore::FontDescription::variantNumericFigure const): Deleted. |
| (WebCore::FontDescription::variantNumericSpacing const): Deleted. |
| (WebCore::FontDescription::variantNumericFraction const): Deleted. |
| (WebCore::FontDescription::variantNumericOrdinal const): Deleted. |
| (WebCore::FontDescription::variantNumericSlashedZero const): Deleted. |
| (WebCore::FontDescription::variantAlternates const): Deleted. |
| (WebCore::FontDescription::variantEastAsianVariant const): Deleted. |
| (WebCore::FontDescription::variantEastAsianWidth const): Deleted. |
| (WebCore::FontDescription::variantEastAsianRuby const): Deleted. |
| (WebCore::FontDescription::variantSettings const): Deleted. |
| (WebCore::FontDescription::opticalSizing const): Deleted. |
| (WebCore::FontDescription::fontStyleAxis const): Deleted. |
| (WebCore::FontDescription::shouldAllowUserInstalledFonts const): Deleted. |
| (WebCore::FontDescription::setComputedSize): Deleted. |
| (WebCore::FontDescription::setItalic): Deleted. |
| (WebCore::FontDescription::setStretch): Deleted. |
| (WebCore::FontDescription::setIsItalic): Deleted. |
| (WebCore::FontDescription::setWeight): Deleted. |
| (WebCore::FontDescription::setRenderingMode): Deleted. |
| (WebCore::FontDescription::setTextRenderingMode): Deleted. |
| (WebCore::FontDescription::setOrientation): Deleted. |
| (WebCore::FontDescription::setNonCJKGlyphOrientation): Deleted. |
| (WebCore::FontDescription::setWidthVariant): Deleted. |
| (WebCore::FontDescription::setFeatureSettings): Deleted. |
| (WebCore::FontDescription::setVariationSettings): Deleted. |
| (WebCore::FontDescription::setFontSynthesis): Deleted. |
| (WebCore::FontDescription::setVariantCommonLigatures): Deleted. |
| (WebCore::FontDescription::setVariantDiscretionaryLigatures): Deleted. |
| (WebCore::FontDescription::setVariantHistoricalLigatures): Deleted. |
| (WebCore::FontDescription::setVariantContextualAlternates): Deleted. |
| (WebCore::FontDescription::setVariantPosition): Deleted. |
| (WebCore::FontDescription::setVariantCaps): Deleted. |
| (WebCore::FontDescription::setVariantNumericFigure): Deleted. |
| (WebCore::FontDescription::setVariantNumericSpacing): Deleted. |
| (WebCore::FontDescription::setVariantNumericFraction): Deleted. |
| (WebCore::FontDescription::setVariantNumericOrdinal): Deleted. |
| (WebCore::FontDescription::setVariantNumericSlashedZero): Deleted. |
| (WebCore::FontDescription::setVariantAlternates): Deleted. |
| (WebCore::FontDescription::setVariantEastAsianVariant): Deleted. |
| (WebCore::FontDescription::setVariantEastAsianWidth): Deleted. |
| (WebCore::FontDescription::setVariantEastAsianRuby): Deleted. |
| (WebCore::FontDescription::setOpticalSizing): Deleted. |
| (WebCore::FontDescription::setFontStyleAxis): Deleted. |
| (WebCore::FontDescription::setShouldAllowUserInstalledFonts): Deleted. |
| (WebCore::FontDescription::operator== const): Deleted. |
| * platform/graphics/FontDescription.cpp: |
| (WebCore::FontDescription::invalidateCaches): |
| (WebCore::FontCascadeDescription::FontCascadeDescription): Deleted. |
| (WebCore::FontCascadeDescription::effectiveFamilyCount const): Deleted. |
| (WebCore::FontCascadeDescription::effectiveFamilyAt const): Deleted. |
| (WebCore::FontCascadeDescription::lighterWeight): Deleted. |
| (WebCore::FontCascadeDescription::bolderWeight): Deleted. |
| (WebCore::FontCascadeDescription::familiesEqualForTextAutoSizing const): Deleted. |
| (WebCore::FontCascadeDescription::familyNamesAreEqual): Deleted. |
| (WebCore::FontCascadeDescription::familyNameHash): Deleted. |
| (WebCore::FontCascadeDescription::foldedFamilyName): Deleted. |
| * platform/graphics/FontDescription.h: |
| (WebCore::FontCascadeDescription::operator!= const): Deleted. |
| (WebCore::FontCascadeDescription::familyCount const): Deleted. |
| (WebCore::FontCascadeDescription::firstFamily const): Deleted. |
| (WebCore::FontCascadeDescription::familyAt const): Deleted. |
| (WebCore::FontCascadeDescription::families const): Deleted. |
| (WebCore::FontCascadeDescription::specifiedSize const): Deleted. |
| (WebCore::FontCascadeDescription::isAbsoluteSize const): Deleted. |
| (WebCore::FontCascadeDescription::lighterWeight const): Deleted. |
| (WebCore::FontCascadeDescription::bolderWeight const): Deleted. |
| (WebCore::FontCascadeDescription::useFixedDefaultSize const): Deleted. |
| (WebCore::FontCascadeDescription::kerning const): Deleted. |
| (WebCore::FontCascadeDescription::keywordSize const): Deleted. |
| (WebCore::FontCascadeDescription::keywordSizeAsIdentifier const): Deleted. |
| (WebCore::FontCascadeDescription::fontSmoothing const): Deleted. |
| (WebCore::FontCascadeDescription::isSpecifiedFont const): Deleted. |
| (WebCore::FontCascadeDescription::setOneFamily): Deleted. |
| (WebCore::FontCascadeDescription::setFamilies): Deleted. |
| (WebCore::FontCascadeDescription::setSpecifiedSize): Deleted. |
| (WebCore::FontCascadeDescription::setIsAbsoluteSize): Deleted. |
| (WebCore::FontCascadeDescription::setKerning): Deleted. |
| (WebCore::FontCascadeDescription::setKeywordSize): Deleted. |
| (WebCore::FontCascadeDescription::setKeywordSizeFromIdentifier): Deleted. |
| (WebCore::FontCascadeDescription::setFontSmoothing): Deleted. |
| (WebCore::FontCascadeDescription::setIsSpecifiedFont): Deleted. |
| (WebCore::FontCascadeDescription::equalForTextAutoSizing const): Deleted. |
| (WebCore::FontCascadeDescription::initialItalic): Deleted. |
| (WebCore::FontCascadeDescription::initialFontStyleAxis): Deleted. |
| (WebCore::FontCascadeDescription::initialWeight): Deleted. |
| (WebCore::FontCascadeDescription::initialStretch): Deleted. |
| (WebCore::FontCascadeDescription::initialSmallCaps): Deleted. |
| (WebCore::FontCascadeDescription::initialKerning): Deleted. |
| (WebCore::FontCascadeDescription::initialFontSmoothing): Deleted. |
| (WebCore::FontCascadeDescription::initialTextRenderingMode): Deleted. |
| (WebCore::FontCascadeDescription::initialFontSynthesis): Deleted. |
| (WebCore::FontCascadeDescription::initialVariantPosition): Deleted. |
| (WebCore::FontCascadeDescription::initialVariantCaps): Deleted. |
| (WebCore::FontCascadeDescription::initialVariantAlternates): Deleted. |
| (WebCore::FontCascadeDescription::initialOpticalSizing): Deleted. |
| (WebCore::FontCascadeDescription::initialLocale): Deleted. |
| (WebCore::FontCascadeDescription::operator== const): Deleted. |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| * rendering/style/RenderStyle.h: |
| |
| 2018-10-08 Yacine Bandou <yacine.bandou_ext@softathome.com> |
| |
| [EME][GStreamer] Add support for WebM encrypted caps "application/x-webm-enc" |
| https://bugs.webkit.org/show_bug.cgi?id=189239 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Add the support of GStreamer caps "application/x-webm-enc" in GStreamerCommon. |
| |
| The DRM system id field in the encrypted event is set to GST_PROTECTION_UNSPECIFIED_SYSTEM_ID |
| in case of WebM, for details, see https://bugzilla.gnome.org/attachment.cgi?id=365211. |
| |
| Tests: media/encrypted-media/clearKey/clearKey-encrypted-webm-eventmse.html |
| media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html |
| |
| * platform/graphics/gstreamer/GStreamerCommon.cpp: |
| (WebCore::capsMediaType): |
| (WebCore::areEncryptedCaps): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered): |
| * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| (webkitMediaCommonEncryptionDecryptTransformCaps): |
| |
| 2018-10-07 Dan Bernstein <mitz@apple.com> |
| |
| Fixed building with the latest macOS SDK |
| |
| * platform/graphics/cocoa/IOSurface.mm: |
| (WebCore::IOSurface::ensurePlatformContext): Suppressed deprecation warnings around use of |
| CGIOSurfaceContextSetDisplayMask. |
| |
| 2018-10-06 Justin Michaud <justin_michaud@apple.com> |
| |
| Properly determine if css custom property values are computationally independent |
| https://bugs.webkit.org/show_bug.cgi?id=190303 |
| |
| Reviewed by Antti Koivisto. |
| |
| Add getDirectComputationalDependencies method to determine if a value is computationally |
| dependent. Use this method in CSS.registerProperty to replace existing substring checks. |
| No new tests are needed because the existing tests cover this behaviour. |
| |
| * css/CSSCalculationValue.cpp: |
| (WebCore::determineCategory): |
| * css/CSSCalculationValue.h: |
| (WebCore::CSSCalcValue::getDirectComputationalDependencies const): |
| (WebCore::CSSCalcValue::getDirectRootComputationalDependencies const): |
| * css/CSSCustomPropertyValue.cpp: |
| (WebCore::CSSCustomPropertyValue::customCSSText const): |
| (WebCore::CSSCustomPropertyValue::tokens const): |
| (WebCore::CSSCustomPropertyValue::setResolvedTypedValue): |
| * css/CSSCustomPropertyValue.h: |
| * css/CSSPrimitiveValue.cpp: |
| (WebCore::CSSPrimitiveValue::getDirectComputationalDependencies const): |
| (WebCore::CSSPrimitiveValue::getDirectRootComputationalDependencies const): |
| * css/CSSPrimitiveValue.h: |
| * css/CSSValue.cpp: |
| (WebCore::CSSValue::getDirectComputationalDependencies const): |
| (WebCore::CSSValue::getDirectRootComputationalDependencies const): |
| * css/CSSValue.h: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::CSSVariableData): |
| (WebCore::CSSVariableData::resolveVariableReference const): |
| * css/DOMCSSRegisterCustomProperty.cpp: |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| |
| 2018-10-05 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236862): Crash under DOMWindowExtension::willDetachGlobalObjectFromFrame() |
| https://bugs.webkit.org/show_bug.cgi?id=190320 |
| <rdar://problem/45044814> |
| |
| Reviewed by Geoffrey Garen. |
| |
| r236862 caused DOMWindowProperty::willDetachGlobalObjectFromFrame() to get called several |
| times. There was no effect for most DOMWindowProperty objects. However, it would cause |
| crashes for DOMWindowExtension objects, which subclass DOMWindowProperty and override |
| DOMWindowProperty::willDetachGlobalObjectFromFrame() because they dereference the frame |
| without null checking it. |
| |
| To address the issue, we now make sure DOMWindowProperty::willDetachGlobalObjectFromFrame() |
| is not called several times. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::detachFromFrame): |
| Stop calling DOMWindow::willDetachDocumentFromFrame() here as most call sites already |
| take care of calling DOMWindow::willDetachDocumentFromFrame() beforehand (e.g. |
| Document::prepareForDestruction()). |
| Also, return early if the Document is already detached from its frame. |
| |
| (WebCore::Document::frameWasDisconnectedFromOwner): |
| Add new utility function called when a Frame is disconnected from its owner which |
| calls both Document::detachFromFrame() and DOMWindow::willDetachDocumentFromFrame(). |
| |
| * dom/Document.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::willDetachDocumentFromFrame): |
| Return early if the Window is already detached from its frame. |
| |
| * page/Frame.cpp: |
| (WebCore::Frame::disconnectOwnerElement): |
| |
| 2018-10-05 Jer Noble <jer.noble@apple.com> |
| |
| Further unreviewed watchOS build fix: videoPerformanceMetrics unavailable on watchOS. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics): |
| |
| 2018-10-05 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed watchOS build fix: videoPerformanceMetrics unavailable on watchOS. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics): |
| |
| 2018-10-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] RealtimeMediaSource should be able to vend hashed IDs |
| https://bugs.webkit.org/show_bug.cgi?id=190142 |
| <rdar://problem/44911109> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, covered by existing tests. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update order of parameters passed |
| to base class. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::start): ASSERT if document.deviceIDHashSalt is not the same |
| as passed salt. |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::getSettings const): Don't need to hash ID. |
| (WebCore::MediaStreamTrack::getCapabilities const): Ditto. |
| * Modules/mediastream/MediaStreamTrack.h: |
| * Modules/mediastream/MediaStreamTrack.idl: |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): Pass hash salt to createMediaStream. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource): Update order of parameters passed |
| to base class. |
| |
| * Modules/webaudio/MediaStreamAudioSource.cpp: |
| (WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto. |
| * platform/mediastream/MediaConstraints.h: |
| |
| * platform/mediastream/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Ditto. |
| |
| * platform/mediastream/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::RealtimeMediaSource): Calculate hashed ID. |
| (WebCore::RealtimeMediaSource::selectSettings): Use m_hashedID. |
| (WebCore::RealtimeMediaSource::hashedId const): New. |
| (WebCore::RealtimeMediaSource::deviceIDHashSalt const): New. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::createMediaStream): Take hash salt, pass it when creating |
| a source. |
| (WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto. |
| (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| * platform/mediastream/RealtimeMediaSourceFactory.h: |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::RealtimeVideoSource): Update parameters. |
| * platform/mediastream/RealtimeVideoSource.h: |
| |
| * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: |
| (WebCore::GStreamerAudioCaptureSource::create): Ditto. |
| (WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h: |
| |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: |
| (WebCore::GStreamerVideoCaptureSource::create): Ditto. |
| (WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h: |
| |
| * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp: |
| (WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): Ditto. |
| (WebCore::MockRealtimeAudioSource::create): Ditto. |
| (WebCore::MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h: |
| |
| * platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp: |
| (WebCore::MockRealtimeVideoSource::create): Ditto. |
| (WebCore::MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::create): Ditto. |
| (WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto. |
| (WebCore::AVVideoCaptureSource::settings): Use hashedId to set device ID. |
| (WebCore::AVVideoCaptureSource::capabilities): Ditto. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): Update parameters. |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto. |
| (WebCore::CoreAudioCaptureSource::capabilities): Use hashedId to set device ID. |
| (WebCore::CoreAudioCaptureSource::settings): Ditto. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Update parameters. |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: |
| |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: |
| (WebCore::MockRealtimeAudioSource::create): Ditto. |
| (WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac): Ditto. |
| |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSource::create): Ditto. |
| (WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto. |
| |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: |
| (WebCore::ScreenDisplayCaptureSourceMac::create): Ditto. |
| (WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Ditto. |
| (WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update logging. |
| (WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Ditto. |
| (WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Ditto. |
| |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm: |
| (WebCore::WindowDisplayCaptureSourceMac::create): Update parameters. |
| |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::create): Ditto. |
| (WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto. |
| (WebCore::MockRealtimeAudioSource::settings): Use hashedId to set device ID. |
| (WebCore::MockRealtimeAudioSource::capabilities): Ditto. |
| * platform/mock/MockRealtimeAudioSource.h: |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::create): Update parameters. |
| (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto. |
| (WebCore::MockRealtimeVideoSource::capabilities): Use hashedId to set device ID. |
| (WebCore::MockRealtimeVideoSource::settings): Ditto. |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| 2018-10-03 Jer Noble <jer.noble@apple.com> |
| |
| Add support for reporting "display composited video frames" through the VideoPlaybackQuality object. |
| https://bugs.webkit.org/show_bug.cgi?id=190266 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: TestWebKitAPI.VideoQualityDisplayCompositing |
| |
| Modify VideoPlaybackQuality to take a VideoPlaybackQualityMetrics object in its |
| constructor (rather than individual fields). Add a new setting to control visibility |
| of the displayCompositedVideoFrames attribute on VideoPlaybackQuality. Add support |
| for VideoPlaybackQualityMetrics to MediaPlayerPrivateAVFoundationObjC. |
| |
| * Modules/mediasource/VideoPlaybackQuality.cpp: |
| (WebCore::VideoPlaybackQuality::create): |
| (WebCore::VideoPlaybackQuality::VideoPlaybackQuality): |
| * Modules/mediasource/VideoPlaybackQuality.h: |
| (WebCore::VideoPlaybackQuality::displayCompositedVideoFrames const): |
| * Modules/mediasource/VideoPlaybackQuality.idl: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::getVideoPlaybackQuality): |
| * html/HTMLMediaElement.h: |
| * html/HTMLMediaElement.idl: |
| * page/Settings.yaml: |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoPlaybackQualityMetrics): |
| * platform/mock/mediasource/MockMediaSourcePrivate.cpp: |
| (WebCore::MockMediaSourcePrivate::videoPlaybackQualityMetrics): |
| |
| 2018-10-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236866. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Add support for reporting "display composited video frames" |
| through the VideoPlaybackQuality object." |
| https://bugs.webkit.org/show_bug.cgi?id=190266 |
| https://trac.webkit.org/changeset/236866 |
| |
| 2018-10-05 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] REGRESSION (r236809): crash under AnimationTimeline::updateCSSAnimationsForElement() |
| https://bugs.webkit.org/show_bug.cgi?id=190307 |
| <rdar://problem/45009901> |
| |
| Reviewed by Dean Jackson. |
| |
| We could crash with an invalid access to cssAnimationsByName since cancelOrRemoveDeclarativeAnimation() already |
| does the job of clearing the m_elementToCSSAnimationByName entry for this particular element if there are no |
| animations targeting it anymore. This started happening in r236809 when we switched from a simple call to to cancel() |
| to a call to cancelOrRemoveDeclarativeAnimation(). We can safely remove the removal here since cancelOrRemoveDeclarativeAnimation() |
| will already have performed this task safely if needed. |
| |
| * animation/AnimationTimeline.cpp: |
| (WebCore::AnimationTimeline::updateCSSAnimationsForElement): |
| |
| 2018-10-04 Jer Noble <jer.noble@apple.com> |
| |
| Add support for reporting "display composited video frames" through the VideoPlaybackQuality object. |
| https://bugs.webkit.org/show_bug.cgi?id=190266 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: TestWebKitAPI.VideoQualityDisplayCompositing |
| |
| Modify VideoPlaybackQuality to take a VideoPlaybackQualityMetrics object in its |
| constructor (rather than individual fields). Add a new setting to control visibility |
| of the displayCompositedVideoFrames attribute on VideoPlaybackQuality. Add support |
| for VideoPlaybackQualityMetrics to MediaPlayerPrivateAVFoundationObjC. |
| |
| * Modules/mediasource/VideoPlaybackQuality.cpp: |
| (WebCore::VideoPlaybackQuality::create): |
| (WebCore::VideoPlaybackQuality::VideoPlaybackQuality): |
| * Modules/mediasource/VideoPlaybackQuality.h: |
| (WebCore::VideoPlaybackQuality::displayCompositedVideoFrames const): |
| * Modules/mediasource/VideoPlaybackQuality.idl: |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::getVideoPlaybackQuality): |
| * html/HTMLMediaElement.h: |
| * html/HTMLMediaElement.idl: |
| * page/Settings.yaml: |
| * platform/graphics/MediaPlayer.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoPlaybackQualityMetrics): |
| * platform/mock/mediasource/MockMediaSourcePrivate.cpp: |
| (WebCore::MockMediaSourcePrivate::videoPlaybackQualityMetrics): |
| |
| 2018-10-04 Chris Dumez <cdumez@apple.com> |
| |
| A Document / Window should lose its browsing context as soon as its iframe is removed from the document |
| https://bugs.webkit.org/show_bug.cgi?id=190282 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| A Document / Window should lose its browsing context (aka Frame) as soon as its iframe is removed from |
| the document. In WebKit, a Document / Window's Frame was only getting nulled out when the frame gets |
| destroyed, which happens later usually after a GC happens. |
| |
| Specification: |
| - https://html.spec.whatwg.org/#the-iframe-element |
| """ |
| When an iframe element is removed from a document, the user agent must discard the element's nested browsing |
| context, if it is not null, and then set the element's nested browsing context to null. |
| """ |
| |
| This was not consistent with the specification or other browsers (tested Chrome and Firefox) so this |
| patch is aligning our behavior. |
| |
| In a follow-up, I am planning to look into making the Window not be a FrameDestructionObserver, and instead |
| get its frame from the Document. This should make the code simpler. |
| |
| No new tests, rebaselined existing tests. |
| |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::getUserMedia const): |
| * Modules/mediastream/MediaDevices.h: |
| Update getUserMedia() to reject a the Promise with an InvalidStateError when calling after the |
| document has been detached, instead of throwing an InvalidStateError. This behavior is as per |
| specification: |
| - https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia (Step 4) |
| I needed to make this change to keep one of our layout tests passing. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::attachToCachedFrame): |
| (WebCore::Document::detachFromFrame): |
| * dom/Document.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::didSecureTransitionTo): |
| (WebCore::DOMWindow::willDetachDocumentFromFrame): |
| (WebCore::DOMWindow::setStatus): |
| (WebCore::DOMWindow::detachFromFrame): |
| (WebCore::DOMWindow::attachToFrame): |
| * page/DOMWindow.h: |
| * page/DOMWindowProperty.cpp: |
| (WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension): |
| (WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame): |
| (WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame): |
| * page/Frame.cpp: |
| (WebCore::Frame::disconnectOwnerElement): |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::drawText): |
| Calling drawText() with a null String hits an assertion in debug. This was triggered by one of |
| our layout tests so I made sure we only call drawText when the String is not null. |
| |
| 2018-10-04 Jeremy Jones <jeremyj@apple.com> |
| |
| Unify implementation in VideoFullscreenInterfaceAVKit |
| https://bugs.webkit.org/show_bug.cgi?id=190091 |
| rdar://problem/44734523 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no behavior change. |
| |
| Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include |
| any changes that had been made in the old path. |
| |
| * platform/ios/VideoFullscreenInterfaceAVKit.h: |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (-[WebAVPlayerViewControllerDelegate playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground:]): |
| (VideoFullscreenInterfaceAVKit::preparedToExitFullscreen): |
| (VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::requestUpdateInlineRect): |
| (VideoFullscreenControllerContext::requestVideoContentLayer): |
| (VideoFullscreenControllerContext::returnVideoContentLayer): |
| (VideoFullscreenControllerContext::didSetupFullscreen): |
| (VideoFullscreenControllerContext::didExitFullscreen): |
| |
| 2018-10-04 Justin Michaud <justin_michaud@apple.com> |
| |
| Bindings generator should support static attributes that are interfaces with CallWith |
| https://bugs.webkit.org/show_bug.cgi?id=190292 |
| |
| Reviewed by Chris Dumez. |
| |
| Add support for static attributes that support callWith to the bindings generator. This |
| is needed for CSS.paintWorklet. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateAttributeGetterBodyDefinition): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::jsTestObjConstructorTestStaticReadonlyObjGetter): |
| (WebCore::jsTestObjConstructorTestStaticReadonlyObj): |
| * bindings/scripts/test/TestObj.idl: |
| |
| 2018-10-04 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r236730. |
| |
| This caused a consistent crash in test http/tests/media/media-stream/get-display-media-prompt.html. |
| |
| Reverted changeset: |
| |
| "[MediaStream] RealtimeMediaSource should be able to vend |
| hashed IDs" |
| https://bugs.webkit.org/show_bug.cgi?id=190142 |
| https://trac.webkit.org/changeset/236730 |
| |
| 2018-10-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] Fix some font attribute conversion bugs in preparation for "Font > Styles…" support in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=190289 |
| <rdar://problem/45020806> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Makes some small adjustments to fix two bugs in font attribute conversion logic. See below for more detail. |
| |
| Tests: FontManagerTests.AddFontShadowUsingFontOptions |
| FontManagerTests.AddAndRemoveColorsUsingFontOptions |
| |
| * editing/FontAttributeChanges.cpp: |
| (WebCore::cssValueListForShadow): |
| * editing/cocoa/FontAttributesCocoa.mm: |
| |
| Currently, we bail from adding a font shadow if the shadow's offset is empty. However, valid shadow offsets may |
| have negative dimensions, so a check for `isZero()` should be used instead. |
| |
| (WebCore::FontAttributes::createDictionary const): |
| * platform/mac/WebCoreNSFontManagerExtras.mm: |
| |
| Fall back to a transparent background color; this allows senders to remove the current background color by just |
| removing NSBackgroundColorAttributeName from the attribute dictionary, rather than explicitly setting it to the |
| transparent color (this scenario is exercised when using "Font > Styles…" to specify a font style without a |
| background color). |
| |
| (WebCore::computedFontAttributeChanges): |
| |
| 2018-10-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| MutationRecord doesn't keep JS wrappers of target, addedNodes, and removedNodes alive |
| https://bugs.webkit.org/show_bug.cgi?id=190277 |
| |
| Reviewed by Antti Koivisto. |
| |
| The bug was caused by JSMutationRecord not visiting any of the nodes referenced by mutation records. |
| |
| Fixed the bug by adding JSMutationRecord::visitAdditionalChildren, which adds the root nodes of |
| the root nodes of the target, addedNodes, and removedNodes in each mutation record. |
| |
| Test: fast/dom/MutationObserver/mutation-record-keeps-js-wrappers-of-nodes-alive.html |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSMutationRecordCustom.cpp: Added. |
| (WebCore::JSMutationRecord::visitAdditionalChildren): Added. |
| * bindings/js/JSPerformanceObserverCustom.cpp: This file got dumped out of a unified build file |
| where using namespace JSC was defined. Use the fully qualified names to refer to JSC types. |
| (WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots): |
| * dom/MutationRecord.cpp: |
| (WebCore::ChildListRecord::visitNodesConcurrently): Added. |
| (WebCore::RecordWithEmptyNodeLists::visitNodesConcurrently): Added. |
| (WebCore::MutationRecordWithNullOldValue::visitNodesConcurrently): Added. |
| * dom/MutationRecord.h: |
| * dom/MutationRecord.idl: |
| |
| 2018-10-04 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Move time out control from WebProcess to UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=189642 |
| <rdar://problem/44476765> |
| |
| Reviewed by Chris Dumez. |
| |
| Since now the control unit of WebAuthN has been moved to UI Process, i.e. AuthenticatorManager, |
| the time out timer should move to UI Process as well. |
| |
| Tests: http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html |
| http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html |
| |
| * Modules/webauthn/AuthenticatorCoordinator.cpp: |
| (WebCore::AuthenticatorCoordinator::create const): |
| (WebCore::AuthenticatorCoordinator::discoverFromExternalSource const): |
| (WebCore::AuthenticatorCoordinatorInternal::initTimeoutTimer): Deleted. |
| (WebCore::AuthenticatorCoordinatorInternal::didTimeoutTimerFire): Deleted. |
| * Modules/webauthn/PublicKeyCredentialCreationOptions.h: |
| (WebCore::PublicKeyCredentialCreationOptions::encode const): |
| (WebCore::PublicKeyCredentialCreationOptions::decode): |
| * Modules/webauthn/PublicKeyCredentialRequestOptions.h: |
| (WebCore::PublicKeyCredentialRequestOptions::encode const): |
| (WebCore::PublicKeyCredentialRequestOptions::decode): |
| |
| 2018-10-04 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236779): Crash when changing the input element type from inside an 'input' event listener |
| https://bugs.webkit.org/show_bug.cgi?id=190252 |
| |
| Reviewed by Alex Christensen. |
| |
| Add a null check for element() after firing the 'input' event and before firing the 'change' event |
| in case the input event listener changes the input type. |
| |
| Tests: fast/dom/HTMLInputElement/change-type-in-click-event-listener.html |
| fast/dom/HTMLInputElement/change-type-in-input-event-listener.html |
| |
| * html/BaseCheckableInputType.cpp: |
| (WebCore::BaseCheckableInputType::fireInputAndChangeEvents): |
| |
| 2018-10-04 Yuhan Wu <yuhan_wu@apple.com> |
| |
| runtime flag and IDL for MediaRecorder |
| https://bugs.webkit.org/show_bug.cgi?id=190018 |
| |
| Reviewed by Youenn Fablet and Chris Dumez. |
| |
| Covered by tests: |
| imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-constructor.html |
| imported/w3c/web-platform-tests/mediacapture-record/BlobEvent-constructor.html |
| |
| Add an architecture of the IDL and the class for MediaRecorder and BlobEvent. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediarecorder/BlobEvent.h: |
| (WebCore::BlobEvent::create): |
| (WebCore::BlobEvent:::Event): |
| * Modules/mediarecorder/BlobEvent.idl: |
| * Modules/mediarecorder/MediaRecorder.cpp: |
| (WebCore::MediaRecorder::create): |
| (WebCore::MediaRecorder::MediaRecorder): |
| (WebCore::MediaRecorder::activeDOMObjectName const): |
| (WebCore::MediaRecorder::canSuspendForDocumentSuspension const): |
| * Modules/mediarecorder/MediaRecorder.h: Added. |
| (WebCore::MediaRecorder::state const): |
| (WebCore::MediaRecorder::~MediaRecorder): |
| * Modules/mediarecorder/MediaRecorder.idl: |
| * Modules/mediastream/RTCRtpReceiver.cpp: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/WebCoreBuiltinNames.h: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::mediaRecorderEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setMediaRecorderEnabled): |
| |
| 2018-10-04 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r236803. |
| |
| Caused crashes on some bots |
| |
| Reverted changeset: |
| |
| "Regression(r236779): Crash when changing the input element |
| type from inside an 'input' event listener" |
| https://bugs.webkit.org/show_bug.cgi?id=190252 |
| https://trac.webkit.org/changeset/236803 |
| |
| 2018-10-04 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the Mojave build after r236832. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): |
| (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): |
| |
| 2018-10-04 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| ENABLE(ASSERT) used in grid code when !ASSERT_DISABLED is desired |
| https://bugs.webkit.org/show_bug.cgi?id=190145 |
| |
| Reviewed by Javier Fernandez. |
| |
| Replace ENABLE(ASSERT), which doesn't exist, with !ASSERT_DISABLED. |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::placeItemsOnGrid const): |
| (WebCore::RenderGrid::baselinePosition const): |
| * rendering/style/GridArea.h: |
| (WebCore::GridSpan::GridSpan): |
| |
| 2018-10-04 Dan Bernstein <mitz@apple.com> |
| |
| WebCore part of [Xcode] Update some build settings as recommended by Xcode 10 |
| https://bugs.webkit.org/show_bug.cgi?id=190250 |
| |
| Reviewed by Andy Estes. |
| |
| * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, |
| CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS. |
| |
| * WebCore.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck and remove a |
| duplicate reference in a Compile Sources build phase. |
| |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Suppress -Wdeprecated-implementations |
| around implementations of deprecated accessibility methods. |
| |
| * loader/TextResourceDecoder.cpp: |
| (WebCore::TextResourceDecoder::checkForBOM): Addressed CLANG_WARN_COMMA. |
| |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]): |
| Suppress -Wdeprecated-implementations around implementations of this deprecated delegate method. |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]): Ditto. |
| |
| 2018-10-02 Darin Adler <darin@apple.com> |
| |
| AudioNode.connect should use [ReturnValue] |
| https://bugs.webkit.org/show_bug.cgi?id=190231 |
| |
| Reviewed by Eric Carlson. |
| |
| This is a slightly more efficient way to return a value that is always |
| identical to one of the arguments, so use it here. |
| |
| * Modules/webaudio/AudioBasicInspectorNode.cpp: |
| (WebCore::AudioBasicInspectorNode::connect): Return ExceptionOr<void>. |
| * Modules/webaudio/AudioBasicInspectorNode.h: Ditto. |
| * Modules/webaudio/AudioNode.cpp: |
| (WebCore::AudioNode::connect): Ditto. |
| * Modules/webaudio/AudioNode.h: Ditto. |
| |
| * Modules/webaudio/AudioNode.idl: Use [ReturnValue]. |
| |
| 2018-10-03 Justin Michaud <justin_michaud@apple.com> |
| |
| Registered custom properties should allow inheritance to be controlled |
| https://bugs.webkit.org/show_bug.cgi?id=190038 |
| |
| Reviewed by Antti Koivisto. |
| |
| Tests: css-custom-properties-api/inherits.html |
| css-custom-properties-api/length.html |
| css-custom-properties-api/length2.html |
| |
| Add support for inherits property on registered css custom properties, as well |
| as a starting point for evaluating registered custom properties with types. Registered |
| custom properties are evaluated as length values before being substituted. Currently, |
| relative unit cycles are not detected. |
| |
| A proper solution is still needed to resolve relative unit cycles, and to apply properties like font |
| and line-height before they are needed by custom properties. In this patch, the font-size property is |
| applied twice, once before and once after resolving custom property values. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::customPropertyValue): |
| (WebCore::CSSComputedStyleDeclaration::length const): |
| (WebCore::CSSComputedStyleDeclaration::item const): |
| |
| Allow JS to get custom properties that have been resolved to a length. Also add properties from |
| m_rareNonInheritedData. |
| |
| * css/CSSCustomPropertyValue.cpp: |
| (WebCore::CSSCustomPropertyValue::checkVariablesForCycles const): |
| (WebCore::CSSCustomPropertyValue::resolveVariableReferences const): |
| * css/CSSCustomPropertyValue.h: |
| * css/CSSRegisteredCustomProperty.cpp: Copied from Source/WebCore/css/CSSRegisteredCustomProperty.h. |
| (WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty): |
| (WebCore::CSSRegisteredCustomProperty::initialValueCopy const): |
| * css/CSSRegisteredCustomProperty.h: |
| (WebCore::CSSRegisteredCustomProperty::initialValue const): |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::checkVariablesForCycles const): |
| (WebCore::CSSVariableData::checkVariablesForCyclesWithRange const): |
| (WebCore::CSSVariableData::resolveVariableFallback const): |
| (WebCore::CSSVariableData::resolveVariableReference const): |
| (WebCore::CSSVariableData::resolveVariableReferences const): |
| (WebCore::CSSVariableData::resolveTokenRange const): |
| * css/CSSVariableData.h: |
| * css/CSSVariableReferenceValue.cpp: |
| (WebCore::CSSVariableReferenceValue::checkVariablesForCycles const): |
| * css/CSSVariableReferenceValue.h: |
| * css/DOMCSSRegisterCustomProperty.cpp: |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| |
| Use RenderStyle over passing in a customProperties map. |
| |
| * css/StyleBuilder.h: |
| * css/StyleBuilderConverter.h: |
| (WebCore::StyleBuilderConverter::convertLength): |
| (WebCore::StyleBuilderConverter::convertLengthOrAuto): |
| (WebCore::StyleBuilderConverter::convertLengthSizing): |
| (WebCore::StyleBuilderConverter::convertLengthMaxSizing): |
| * css/StyleBuilderCustom.h: |
| (WebCore::StyleBuilderCustom::applyInitialCustomProperty): |
| (WebCore::StyleBuilderCustom::applyInheritCustomProperty): |
| (WebCore::StyleBuilderCustom::applyValueCustomProperty): |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::useSVGZoomRules const): |
| (WebCore::StyleResolver::useSVGZoomRulesForLength const): |
| (WebCore::StyleResolver::applyProperty): |
| (WebCore::StyleResolver::resolvedVariableValue const): |
| (WebCore::StyleResolver::applyCascadedProperties): |
| (WebCore::StyleResolver::useSVGZoomRules): Deleted. |
| (WebCore::StyleResolver::useSVGZoomRulesForLength): Deleted. |
| (WebCore::StyleResolver::resolvedVariableValue): Deleted. |
| * css/StyleResolver.h: |
| * css/makeprop.pl: |
| |
| Move custom property initial values to StyleBuilerCustom. Hook them up to correctly deal with |
| inheritance, unset and revert values. |
| |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseValueWithVariableReferences): |
| * css/parser/CSSParser.h: |
| * css/parser/CSSParserContext.cpp: |
| (WebCore::CSSParserContext::CSSParserContext): |
| * css/parser/CSSParserContext.h: |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| |
| Allow parsing custom property values as lengths. |
| |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::checkVariablesInCustomProperties): |
| * rendering/style/RenderStyle.h: |
| (WebCore::RenderStyle::inheritedCustomProperties const): |
| (WebCore::RenderStyle::nonInheritedCustomProperties const): |
| (WebCore::RenderStyle::setInheritedCustomPropertyValue): |
| (WebCore::RenderStyle::setNonInheritedCustomPropertyValue): |
| (WebCore::RenderStyle::getCustomProperty const): |
| (WebCore::RenderStyle::customProperties const): Deleted. |
| (WebCore::RenderStyle::setCustomPropertyValue): Deleted. |
| * rendering/style/StyleRareNonInheritedData.cpp: |
| (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): |
| (WebCore::StyleRareNonInheritedData::operator== const): |
| * rendering/style/StyleRareNonInheritedData.h: |
| * style/StyleResolveForDocument.cpp: |
| (WebCore::Style::resolveForDocument): |
| |
| Add support for RenderStyle to deal with both inherited and non-inherited properties, and to find |
| cycles between them. |
| |
| 2018-10-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Clear m_pendingTargets in MutationObserver::takeRecords |
| https://bugs.webkit.org/show_bug.cgi?id=190240 |
| |
| Reviewed by Geoffrey Garen. |
| |
| In r236781, we delayed the clearing of m_pendingTargets until the end of microtask to avoid a race between |
| mutation record's JS wrappers getting created and GC marking JS wrappers of elements in mutation records. |
| |
| This patch shortens this delay to until mutation record's JS wrappers are created. Specifically, we make |
| MutationObserver::takeRecords() return a struct which has both pending targets hash set and the vector of |
| mutation records so that the hash set survives through the creation of JS wrappers for mutation records. |
| |
| To do this, a new IDL extended attribute "ResultField" is introduced to specify the member variable in |
| which the result is stored. |
| |
| No new tests. Unfortunately, this race condition appears to be impossible to capture in a regression test. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateOperationBodyDefinition): |
| * bindings/scripts/IDLAttributes.json: |
| * bindings/scripts/test/JS/JSTestInterface.cpp: |
| (WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody): |
| (WebCore::jsTestInterfacePrototypeFunctionTakeNodes): |
| * bindings/scripts/test/TestImplements.idl: Added a test case. |
| * dom/MutationObserver.cpp: |
| (WebCore::MutationObserver::takeRecords): |
| (WebCore::MutationObserver::deliver): |
| * dom/MutationObserver.h: |
| * dom/MutationObserver.idl: |
| |
| 2018-10-03 Youenn Fablet <youenn@apple.com> |
| |
| Add VP8 support to WebRTC |
| https://bugs.webkit.org/show_bug.cgi?id=189976 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a runtime flag to control activation of VP8 codec. |
| Bind this runtime flag to the video codec factories. |
| Test: webrtc/video-mute-vp8.html |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::createLibWebRTCPeerConnectionBackend): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: |
| (WebCore::LibWebRTCProviderCocoa::createDecoderFactory): |
| (WebCore::LibWebRTCProviderCocoa::createEncoderFactory): |
| * testing/Internals.cpp: |
| (WebCore::Internals::resetToConsistentState): |
| Enable VP8 codec for tests. |
| |
| 2018-09-28 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebCrypto] ECDSA could not deal with invalid signature inputs |
| https://bugs.webkit.org/show_bug.cgi?id=189879 |
| <rdar://problem/44701276> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add some guards over detections of the start positions of r/s. |
| |
| Covered by improved existing tests. |
| |
| * crypto/mac/CryptoAlgorithmECDSAMac.cpp: |
| (WebCore::verifyECDSA): |
| |
| 2018-10-03 Jer Noble <jer.noble@apple.com> |
| |
| Add a quirk to disable Modern EME for sites which are broken with it enabled |
| https://bugs.webkit.org/show_bug.cgi?id=190051 |
| |
| Reviewed by Daniel Bates. |
| |
| Add a new class, parallel to Settings, to track quirk behavior. Extend the bindings |
| generator to support a DisabledByQuirk attribute, and set this attribute for all |
| the Modern EME types. Check whether the quirk is set inside HTMLMediaElement in |
| addition to the existing Setting. |
| |
| * Modules/encryptedmedia/MediaKeyMessageEvent.idl: |
| * Modules/encryptedmedia/MediaKeySession.idl: |
| * Modules/encryptedmedia/MediaKeyStatusMap.idl: |
| * Modules/encryptedmedia/MediaKeySystemAccess.idl: |
| * Modules/encryptedmedia/MediaKeys.idl: |
| * Modules/encryptedmedia/NavigatorEME.idl: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/scripts/CodeGenerator.pm: |
| (WK_ucfirst): |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (NeedsRuntimeCheck): |
| (GenerateRuntimeEnableConditionalString): |
| * bindings/scripts/IDLAttributes.json: |
| * bindings/scripts/preprocess-idls.pl: |
| (GenerateConstructorAttributes): |
| * dom/Document.cpp: |
| (WebCore::Document::Document): |
| * dom/Document.h: |
| (WebCore::Document::quirks const): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): |
| (WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered): |
| * html/HTMLMediaElement.idl: |
| * page/Quirks.cpp: Added. |
| (Quirks::Quirks): |
| (Quirks::disableEncryptedMediaAPIQuirk const): |
| * page/Quirks.h: Added. |
| |
| 2018-10-03 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] REGRESSION: setting 'animation-name: none' after a 'fill: forwards' animation has completed does not revert to the unanimated style |
| https://bugs.webkit.org/show_bug.cgi?id=190257 |
| <rdar://problem/41341473> |
| |
| Reviewed by Dean Jackson. |
| |
| Test: animations/animation-fill-forwards-removal.html |
| |
| While we removed a declarative animation that was no longer targetting its element, we were not removing it from the declarative animation maps |
| on the timeline, which means that the animation would still be picked up when resolving styles. We now notify the timeline that the animation |
| was detached from the element. This preserves the DeclarativeAnimation relationship returning the element as its effect's target and the document |
| timeline as its timeline, but the document timeline will no longer see this animation as targeting this element. |
| |
| * animation/AnimationTimeline.cpp: |
| (WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation): |
| * animation/DeclarativeAnimation.h: |
| (WebCore::DeclarativeAnimation::target const): |
| |
| 2018-10-03 Jer Noble <jer.noble@apple.com> |
| |
| CRASH in CVPixelBufferGetBytePointerCallback() |
| https://bugs.webkit.org/show_bug.cgi?id=190092 |
| |
| Reviewed by Eric Carlson. |
| |
| Speculative fix for crash that occurs when callers of CVPixelBufferGetBytePointerCallback() attempt |
| to read the last byte of a CVPixelBuffer (as a pre-flight check) and crash due to a memory access |
| error. It's speculated that mismatching CVPixelBufferLockBytePointer / CVPixelBufferUnlockBytePointer |
| calls could result in an incorrect state inside the CVPixelBuffer. Add log count checks, locking, and |
| release logging to try to pinpoint if mismatch lock counts are occurring in this code path. |
| |
| * platform/graphics/cv/PixelBufferConformerCV.cpp: |
| (WebCore::CVPixelBufferGetBytePointerCallback): |
| (WebCore::CVPixelBufferReleaseBytePointerCallback): |
| (WebCore::CVPixelBufferReleaseInfoCallback): |
| (WebCore::PixelBufferConformerCV::createImageFromPixelBuffer): |
| |
| 2018-10-03 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236779): Crash when changing the input element type from inside an 'input' event listener |
| https://bugs.webkit.org/show_bug.cgi?id=190252 |
| |
| Reviewed by Alex Christensen. |
| |
| Add a null check for element() after firing the 'input' event and before firing the 'change' event |
| in case the input event listener changes the input type. |
| |
| Tests: fast/dom/HTMLInputElement/change-type-in-click-event-listener.html |
| fast/dom/HTMLInputElement/change-type-in-input-event-listener.html |
| |
| * html/BaseCheckableInputType.cpp: |
| (WebCore::BaseCheckableInputType::fireInputAndChangeEvents): |
| |
| 2018-10-03 Chris Dumez <cdumez@apple.com> |
| |
| Passing noopener=NOOPENER to window.open() should cause the new window to not have an opener |
| https://bugs.webkit.org/show_bug.cgi?id=190251 |
| |
| Reviewed by Alex Christensen. |
| |
| Passing noopener=NOOPENER to window.open() should cause the new window to not have an opener, |
| similarly to noopener=1: |
| - https://html.spec.whatwg.org/#window-open-steps (step 5) |
| |
| It does not matter what the value is, if there is a key named "noopener", then the new window |
| should not have an opener. |
| |
| No new tests, rebaselined existing test. |
| |
| * page/WindowFeatures.cpp: |
| (WebCore::setWindowFeature): |
| |
| 2018-10-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| GC can collect JS wrappers of nodes in the mutation records waiting to be delivered |
| https://bugs.webkit.org/show_bug.cgi?id=190115 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef. |
| |
| This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's |
| target is kept alive and MutationObserverRegistration where each node which had been removed |
| from an observed tree is kept alive for a subtree observation. |
| |
| No new test since the test which can reproduce this problem is too slow. |
| |
| * dom/GCReachableRef.h: |
| (WebCore::GCReachableRef): Made it work with hash table. |
| (WebCore::GCReachableRef::operator T& const): |
| (WebCore::GCReachableRef::GCReachableRef): |
| (WebCore::GCReachableRef::isHashTableDeletedValue const): |
| (WebCore::GCReachableRef::isHashTableEmptyValue const): |
| (WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const): |
| (WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue): |
| (WebCore::GCReachableRef::assignToHashTableEmptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::peek): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::take): |
| * dom/MutationObserver.cpp: |
| (WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers |
| to be collected before elements in mutation records are accessed. We delay until the end of the current |
| microtask at which point deliver() function is called. |
| (WebCore::MutationObserver::disconnect): |
| (WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive. |
| This is needed for a newly inserted node, a node with attribute change, etc... |
| (WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation |
| records are delivered to each observer. These are nodes which had been removed from a tree and whose |
| subtree had still been obsreved up until this point. |
| * dom/MutationObserver.h: |
| * dom/MutationObserverRegistration.cpp: |
| (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach): |
| (WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets |
| that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver |
| function had been called. |
| (WebCore::MutationObserverRegistration::addRegistrationNodesToSet const): |
| * dom/MutationObserverRegistration.h: |
| |
| 2018-10-03 Dean Jackson <dino@apple.com> |
| |
| Make the Pointer Events feature description valid |
| https://bugs.webkit.org/show_bug.cgi?id=190254 |
| |
| Reviewed by Simon Fraser. |
| |
| * features.json: |
| |
| 2018-10-03 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r236781. |
| |
| The test added with this commit is timing out consistently. |
| |
| Reverted changeset: |
| |
| "GC can collect JS wrappers of nodes in the mutation records |
| waiting to be delivered" |
| https://bugs.webkit.org/show_bug.cgi?id=190115 |
| https://trac.webkit.org/changeset/236781 |
| |
| 2018-10-03 Dean Jackson <dino@apple.com> |
| |
| [macOS] Switching to discrete GPU should be done in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=189361 |
| <rdar://problem/43949622> |
| |
| Try to fix the IOSMAC build. |
| |
| * platform/graphics/GraphicsContext3D.h: |
| |
| 2018-10-03 Chris Dumez <cdumez@apple.com> |
| |
| input.checked is incorrect while we're parsing its children |
| https://bugs.webkit.org/show_bug.cgi?id=190227 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| input.checked was incorrect while we're parsing its children because we were delaying updating the |
| checked state until HTMLInputElement::finishParsingChildren() is called, to avoid a bad interaction |
| with form state restoration. |
| |
| In this patch, we update the checked state as soon as the 'checked' attribute is set, when we know |
| that no form state to restore. |
| |
| fast/forms/radio/state-restore-radio-group.html covers the form restoration case and is still |
| passing. |
| |
| No new tests, rebaselined existing test. |
| |
| * html/FormController.cpp: |
| (WebCore::FormController::hasFormStateToRestore const): |
| * html/FormController.h: |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::parseAttribute): |
| |
| 2018-10-03 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Incorrect rendering of layers whose backingStore hasn't changed |
| https://bugs.webkit.org/show_bug.cgi?id=190249 |
| |
| Reviewed by Žan Doberšek. |
| |
| Do not overwrite m_nicosia.performLayerSync when updating the content buffers or we lose |
| the value calculated during the layer flush. Use an OR instead to keep the old value. |
| |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::CoordinatedGraphicsLayer::updateContentBuffers): |
| |
| 2018-10-03 Youenn Fablet <youenn@apple.com> |
| |
| Enable H264 simulcast |
| https://bugs.webkit.org/show_bug.cgi?id=190167 |
| |
| Reviewed by Eric Carlson. |
| |
| Activate H264 simulcast trial field. |
| Make track.getSettings() expose width and height for incoming tracks. |
| |
| Test: webrtc/simulcast-h264.html |
| |
| * Configurations/WebCore.xcconfig: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint): |
| * platform/mediastream/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): |
| |
| 2018-10-03 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| -Wunused-variable in RenderLayer::updateScrollableAreaSet |
| https://bugs.webkit.org/show_bug.cgi?id=190200 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Pass it through UNUSED_VARIABLE(). |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::calculateClipRects const): |
| |
| 2018-10-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| Ref<FetchResponse> use-after-move in DOMCache::put() |
| https://bugs.webkit.org/show_bug.cgi?id=190239 |
| |
| Reviewed by Youenn Fablet. |
| |
| Retrieve reference from the Ref<FetchResponse> object before it's |
| move-captured in the lambda that's passed to the |
| FetchResponse::consumeBodyReceivedByChunk() method that is invoked on |
| that very same object. This is a classic use-after-move bug that pops |
| up on compilers with different C++ calling convention. |
| |
| * Modules/cache/DOMCache.cpp: |
| (WebCore::DOMCache::put): |
| |
| 2018-10-03 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Enable selectionAcrossShadowBoundariesEnabled by default in WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=190238 |
| |
| Reviewed by Antti Koivisto. |
| |
| Enable the feature by default. |
| |
| * page/Settings.yaml: |
| |
| 2018-10-02 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Copying content with shadow DOM doesn't copy any contents |
| https://bugs.webkit.org/show_bug.cgi?id=157443 |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch adds the support for copying and pasting content across shadow boundaries in HTML and plain text, |
| which is enabled whenever selection across shadow boundaries is enabled. |
| |
| To do this, TextIterator now has a constructor which takes two Positions, and the node traversal code in |
| StyledMarkupAccumulator has been abstracted via helper functions as done for TextIterator. |
| |
| When serializing a HTMl slot element, serialize it as a span with "display: contents" to make sure when |
| the content is pasted into a shadow tree, it wouldn't affect the slot assignment of the shadow tree. |
| |
| Tests: editing/pasteboard/copy-paste-across-shadow-boundaries-1.html |
| editing/pasteboard/copy-paste-across-shadow-boundaries-2.html |
| editing/pasteboard/copy-paste-across-shadow-boundaries-3.html |
| editing/pasteboard/copy-paste-across-shadow-boundaries-4.html |
| editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html |
| editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html |
| editing/pasteboard/copy-paste-with-shadow-content.html |
| |
| * dom/ComposedTreeIterator.h: |
| (WebCore::assignedSlotIgnoringUserAgentShadow): Moved from TextIterator.cpp. |
| (WebCore::shadowRootIgnoringUserAgentShadow): Ditto. |
| (WebCore::firstChildInComposedTreeIgnoringUserAgentShadow): Ditto. |
| (WebCore::nextSiblingInComposedTreeIgnoringUserAgentShadow): Ditto. |
| * dom/Position.h: |
| (WebCore::Position::treeScope const): Added. |
| * editing/EditingStyle.cpp: |
| (WebCore::EditingStyle::addDisplayContents): Added. |
| * editing/EditingStyle.h: |
| * editing/Editor.cpp: |
| (WebCore::Editor::selectedText const): Use the new behavior when selectionAcrossShadowBoundariesEnabled is set. |
| (WebCore::Editor::selectedTextForDataTransfer const): Ditto. |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::MarkupAccumulator::appendEndElement): Renamed from appendEndTag. Now takes StringBuilder. |
| * editing/MarkupAccumulator.h: |
| (WebCore::MarkupAccumulator::appendEndTag): |
| * editing/TextIterator.cpp: |
| (WebCore::TextIterator::TextIterator): Added a new variant which takes two positions. |
| (WebCore::TextIterator::init): |
| (WebCore::firstChild): |
| (WebCore::nextSibling): |
| (WebCore::plainText): Ditto. |
| * editing/TextIterator.h: |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::Editor::selectionInHTMLFormat): Use the new behavior if selectionAcrossShadowBoundariesEnabled is set. |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): Ditto. |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::parentNode): Added. |
| (WebCore::StyledMarkupAccumulator::firstChild): Added. |
| (WebCore::StyledMarkupAccumulator::nextSibling): Added. |
| (WebCore::StyledMarkupAccumulator::nextSkippingChildren): Added. |
| (WebCore::StyledMarkupAccumulator::hasChildNodes): Added. |
| (WebCore::StyledMarkupAccumulator::isDescendantOf): Added. |
| (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): |
| (WebCore::StyledMarkupAccumulator::appendElement): Serialize a slot element as a span with display: contents. |
| (WebCore::StyledMarkupAccumulator::appendEndElement): Added. Ditto. |
| (WebCore::StyledMarkupAccumulator::serializeNodes): |
| (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Use the newly added helper functions to |
| traverse the composed tree when m_useComposedTree is set. |
| (WebCore::commonShadowIncludingAncestor): Added. |
| (WebCore::serializePreservingVisualAppearanceInternal): Added SerializeComposedTree as an argument. Also use |
| StyledMarkupAccumulator::parentNode to serialize special common ancestors; e.g. to preserve b, i, etc... |
| (WebCore::serializePreservingVisualAppearance): Ditto to the variant which takes VisibleSelection. |
| (WebCore::sanitizedMarkupForFragmentInDocument): |
| * editing/markup.h: |
| * editing/wpe/EditorWPE.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::createFromSelection): |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::SerializerMarkupAccumulator::appendEndElement): |
| * testing/Internals.cpp: |
| (WebCore::Internals::setSelectionWithoutValidation): Added. A helper function to create a selection across |
| shadow boundaries for testing purposes. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-10-02 Chris Dumez <cdumez@apple.com> |
| |
| MessageEvent.ports should return the same object |
| https://bugs.webkit.org/show_bug.cgi?id=190151 |
| |
| Reviewed by Darin Adler. |
| |
| MessageEvent.ports should return the same object it was initialized to instead of |
| constructing a new JSValue every time. |
| |
| No new tests, rebaselined existing test. |
| |
| * bindings/js/JSMessageEventCustom.cpp: |
| (WebCore::JSMessageEvent::ports const): |
| (WebCore::JSMessageEvent::visitAdditionalChildren): |
| * dom/MessageEvent.cpp: |
| (WebCore::MessageEvent::initMessageEvent): |
| * dom/MessageEvent.h: |
| * dom/MessageEvent.idl: |
| |
| 2018-10-01 Ryosuke Niwa <rniwa@webkit.org> |
| |
| GC can collect JS wrappers of nodes in the mutation records waiting to be delivered |
| https://bugs.webkit.org/show_bug.cgi?id=190115 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef. |
| |
| This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's |
| target is kept alive and MutationObserverRegistration where each node which had been removed |
| from an observed tree is kept alive for a subtree observation. |
| |
| Test: fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html |
| |
| * dom/GCReachableRef.h: |
| (WebCore::GCReachableRef): Made it work with hash table. |
| (WebCore::GCReachableRef::operator T& const): |
| (WebCore::GCReachableRef::GCReachableRef): |
| (WebCore::GCReachableRef::isHashTableDeletedValue const): |
| (WebCore::GCReachableRef::isHashTableEmptyValue const): |
| (WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const): |
| (WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue): |
| (WebCore::GCReachableRef::assignToHashTableEmptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::peek): |
| (WTF::HashTraits<WebCore::GCReachableRef<P>>::take): |
| * dom/MutationObserver.cpp: |
| (WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers |
| to be collected before elements in mutation records are accessed. We delay until the end of the current |
| microtask at which point deliver() function is called. |
| (WebCore::MutationObserver::disconnect): |
| (WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive. |
| This is needed for a newly inserted node, a node with attribute change, etc... |
| (WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation |
| records are delivered to each observer. These are nodes which had been removed from a tree and whose |
| subtree had still been obsreved up until this point. |
| * dom/MutationObserver.h: |
| * dom/MutationObserverRegistration.cpp: |
| (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach): |
| (WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets |
| that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver |
| function had been called. |
| (WebCore::MutationObserverRegistration::addRegistrationNodesToSet const): |
| * dom/MutationObserverRegistration.h: |
| |
| 2018-10-02 Chris Dumez <cdumez@apple.com> |
| |
| radio / checkbox inputs should fire "click, input, change" events in order when clicked |
| https://bugs.webkit.org/show_bug.cgi?id=190223 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| radio / checkbox inputs should fire "click, input, change" events in order when clicked: |
| - https://html.spec.whatwg.org/#radio-button-state-(type=radio) |
| - https://html.spec.whatwg.org/#checkbox-state-(type=checkbox) |
| - https://dom.spec.whatwg.org/#ref-for-eventtarget-activation-behaviorâ‘¢ (step 11) |
| |
| Gecko and Blink already behave this way. However, WebKit has the following issues: |
| - the input event is not fired |
| - the click event is fired after the change event |
| |
| No new tests, updated / rebaselined existing tests. |
| |
| * html/BaseCheckableInputType.cpp: |
| (WebCore::BaseCheckableInputType::fireInputAndChangeEvents): |
| * html/BaseCheckableInputType.h: |
| * html/CheckboxInputType.cpp: |
| (WebCore::CheckboxInputType::willDispatchClick): |
| (WebCore::CheckboxInputType::didDispatchClick): |
| * html/HTMLInputElement.cpp: |
| (WebCore::HTMLInputElement::setChecked): |
| * html/HTMLInputElement.h: |
| * html/RadioInputType.cpp: |
| (WebCore::RadioInputType::willDispatchClick): |
| (WebCore::RadioInputType::didDispatchClick): |
| |
| 2018-10-02 Chris Dumez <cdumez@apple.com> |
| |
| fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection |
| https://bugs.webkit.org/show_bug.cgi?id=190218 |
| |
| Reviewed by Alex Christensen. |
| |
| fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection: |
| - https://github.com/whatwg/html/commit/8beedf0c2ffd38853caddec67490288f47afc8eb |
| |
| Gecko has always behaved this way. Blink aligned with Gecko and the HTML specification in December 2016: |
| - https://bugs.chromium.org/p/chromium/issues/detail?id=665291 |
| |
| This simplifies our HTMLFieldSetElement code a lot. |
| |
| Test: fast/forms/fieldset/fieldset-elements-htmlcollection.html |
| |
| * html/CollectionType.h: |
| * html/GenericCachedHTMLCollection.cpp: |
| (WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const): |
| * html/HTMLCollection.cpp: |
| (WebCore::HTMLCollection::rootTypeFromCollectionType): |
| (WebCore::invalidationTypeExcludingIdAndNameAttributes): |
| * html/HTMLFieldSetElement.cpp: |
| (WebCore::HTMLFieldSetElement::elements): |
| * html/HTMLFieldSetElement.h: |
| * html/HTMLFieldSetElement.idl: |
| * html/HTMLFormControlsCollection.cpp: |
| (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection): |
| (WebCore:: const): |
| (WebCore::HTMLFormControlsCollection::copyFormControlElementsVector const): |
| (WebCore::HTMLFormControlsCollection::ownerNode const): |
| (WebCore::HTMLFormControlsCollection::updateNamedElementCache const): |
| * html/HTMLFormControlsCollection.h: |
| |
| 2018-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: prevent layer events from firing until the layer information is re-requested |
| https://bugs.webkit.org/show_bug.cgi?id=190159 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: inspector/layers/layerTreeDidChange.html |
| |
| * inspector/agents/InspectorLayerTreeAgent.h: |
| * inspector/agents/InspectorLayerTreeAgent.cpp: |
| (WebCore::InspectorLayerTreeAgent::reset): |
| (WebCore::InspectorLayerTreeAgent::layerTreeDidChange): |
| (WebCore::InspectorLayerTreeAgent::layersForNode): |
| |
| 2018-10-02 Brian Burg <bburg@apple.com> |
| |
| Web Automation: tab default key handler should always cycle focus when page is controlled by automation |
| https://bugs.webkit.org/show_bug.cgi?id=190221 |
| <rdar://problem/44914534> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| This change progresses WPT WebDriver test special_keys.py::test_webdriver_special_key_sends_keydown[TAB-expected24]. |
| |
| * page/FocusController.cpp: |
| (WebCore::FocusController::advanceFocusInDocumentOrder): |
| Always cycle focus if the page is controlled by automation. If the chrome takes |
| focus, then the first responder will be something other than the WebView, which |
| causes subsequent WebDriver commands to hang. |
| |
| 2018-10-01 Dean Jackson <dino@apple.com> |
| |
| [macOS] Switching to discrete GPU should be done in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=189361 |
| <rdar://problem/43949622> |
| |
| Reviewed by Simon Fraser. |
| |
| Based on an earlier patch by Per Arne Vollan. |
| |
| Due to the fact we can't talk to the Window Server, the Web Process can |
| no longer muxing to the discrete GPU directly. Instead we have to get the |
| UI Process to process the change. Do this by adding a new Chrome client |
| called GPUClient, that will have implementations provided by both WebKit |
| and legacy WebKit. |
| |
| Unfortunately this can't be tested by a regular WKTR since: |
| - it requires specific hardware |
| - swapping to/from the discrete GPU takes about 20 seconds |
| - running concurrent tests could confuse the tests into thinking |
| the wrong GPU is active |
| |
| Instead we'll write a specific test for this functionality and |
| run it on a separate bot. |
| |
| * WebCore.xcodeproj/project.pbxproj: Add GPUClient files. |
| |
| * page/Chrome.cpp: Drive by clean-up. |
| (WebCore::Chrome::windowScreenDidChange): |
| |
| * platform/graphics/GraphicsContext3D.h: We need to keep track of |
| whether we've muxed for this context, in order to not respond to |
| the screen change notifications (they are misleading in the case |
| of muxing). |
| |
| * platform/graphics/GraphicsContext3DManager.cpp: Rather than try |
| to mux directly, call into GPUClient. |
| (WebCore::GraphicsContext3DManager::displayWasReconfigured): |
| (WebCore::GraphicsContext3DManager::updateHighPerformanceState): |
| (WebCore::GraphicsContext3DManager::disableHighPerformanceGPUTimerFired): |
| (WebCore::GraphicsContext3DManager::recycleContextIfNecessary): |
| * platform/graphics/GraphicsContext3DManager.h: |
| |
| * platform/graphics/cocoa/GraphicsContext3DCocoa.mm: Only reconfigure |
| the virtual display if it didn't happen from muxing. |
| (WebCore::GraphicsContext3D::GraphicsContext3D): |
| (WebCore::GraphicsContext3D::updateCGLContext): |
| (WebCore::GraphicsContext3D::screenDidChange): |
| |
| * platform/graphics/mac/SwitchingGPUClient.cpp: Added. |
| (WebCore::SwitchingGPUClient::singleton): |
| (WebCore::SwitchingGPUClient::setSingleton): |
| * platform/graphics/mac/SwitchingGPUClient.h: Added. |
| |
| * testing/Internals.cpp: Testing helper. |
| (WebCore::Internals::hasMuxableGPU): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-10-02 Chris Dumez <cdumez@apple.com> |
| |
| Image.__proto__ should be Function.prototype, not HTMLElement.prototype |
| https://bugs.webkit.org/show_bug.cgi?id=190216 |
| |
| Reviewed by Alex Christensen. |
| |
| Properties created for named constructors should always use Function.prototype as prototype, as per: |
| - https://heycam.github.io/webidl/#named-constructors |
| |
| Gecko and Blink agree with the Web IDL specification. However, WebKit was using the parent interface's |
| prototype if such a parent existing. So Image.__proto__ would end up being HTMLElement.prototype |
| instead of Function.prototype. |
| |
| No new tests, rebaselined existing test. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateConstructorHelperMethods): |
| |
| 2018-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| Prepare WebCoreNSURLExtras for ARC |
| https://bugs.webkit.org/show_bug.cgi?id=190219 |
| |
| Reviewed by Tim Horton. |
| |
| ARC doesn't like the explicit sending of -release. |
| Use RetainPtr instead. |
| |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::collectRangesThatNeedMapping): |
| (WebCore::collectRangesThatNeedEncoding): |
| (WebCore::collectRangesThatNeedDecoding): |
| (WebCore::applyHostNameFunctionToMailToURLString): |
| (WebCore::applyHostNameFunctionToURLString): |
| (WebCore::mapHostNames): |
| (WebCore::stringByTrimmingWhitespace): |
| (WebCore::URLWithUserTypedString): |
| (WebCore::userVisibleString): |
| (WebCore::rangeOfURLScheme): |
| (WebCore::looksLikeAbsoluteURL): |
| (WebCore::retain): Deleted. |
| |
| 2018-10-02 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Fix missing values of resource timing API. |
| https://bugs.webkit.org/show_bug.cgi?id=190193 |
| |
| Reviewed by Alex Christensen. |
| |
| The property nextHopProtocol was not returned correctly. It was |
| returned only when remote inspector is opened. |
| |
| Tests: http/wpt/resource-timing/rt-nextHopProtocol.html |
| http/wpt/resource-timing/rt-nextHopProtocol.worker.html |
| |
| * platform/network/curl/CurlContext.cpp: |
| (WebCore::CurlHandle::getNetworkLoadMetrics): |
| (WebCore::CurlHandle::addExtraNetworkLoadMetrics): |
| |
| 2018-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused linked-on-or-before-iOS5 check |
| https://bugs.webkit.org/show_bug.cgi?id=190164 |
| |
| Reviewed by Michael Saboff. |
| |
| If an app hasn't been updated since iOS5, it can't run supported iOS. |
| This value is also only checked in an uninstantiated template function. |
| |
| * platform/URL.cpp: |
| (WebCore::enableURLSchemeCanonicalization): Deleted. |
| (WebCore::equal): Deleted. |
| * platform/URL.h: |
| |
| 2018-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| Remove ParsedURLString |
| https://bugs.webkit.org/show_bug.cgi?id=190154 |
| |
| Reviewed by Chris Dumez. |
| |
| Before the introduction of URLParser, it would indicate that we should assume the String |
| is from a valid URL so we can skip canonicalization and just find the offsets inside the String |
| to quickly create a URL. It was a performance optimization that caused security issues when |
| misused. Since the introduction of URLParser, we have a fast path for all URL parsing, so |
| right now it actually doesn't change any behavior. It's just a relic of the past that complicates |
| the URL class, making it harder to express which constructor to use and making it harder to move |
| the class. |
| |
| * Modules/navigatorcontentutils/NavigatorContentUtils.cpp: |
| (WebCore::NavigatorContentUtils::registerProtocolHandler): |
| (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered): |
| (WebCore::NavigatorContentUtils::unregisterProtocolHandler): |
| * dom/Document.cpp: |
| (WebCore::Document::updateBaseURL): |
| (WebCore::Document::initSecurityContext): |
| * dom/ExtensionStyleSheets.cpp: |
| (WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const): |
| * dom/ProcessingInstruction.cpp: |
| (WebCore::ProcessingInstruction::checkStyleSheet): |
| * editing/markup.cpp: |
| (WebCore::completeURLs): |
| * fileapi/BlobURL.cpp: |
| (WebCore::BlobURL::createBlobURL): |
| * history/HistoryItem.cpp: |
| (WebCore::HistoryItem::url const): |
| (WebCore::HistoryItem::originalURL const): |
| * html/HTMLFrameElementBase.cpp: |
| (WebCore::HTMLFrameElementBase::location const): |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): |
| * html/PublicURLManager.cpp: |
| (WebCore::PublicURLManager::stop): |
| * inspector/InspectorStyleSheet.cpp: |
| (WebCore::InspectorStyleSheet::resourceStyleSheetText const): |
| * inspector/agents/InspectorPageAgent.cpp: |
| (WebCore::InspectorPageAgent::getCookies): |
| (WebCore::InspectorPageAgent::deleteCookie): |
| (WebCore::InspectorPageAgent::getResourceContent): |
| (WebCore::InspectorPageAgent::searchInResource): |
| * inspector/agents/page/PageDebuggerAgent.cpp: |
| (WebCore::PageDebuggerAgent::sourceMapURLForScript): |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::subresources const): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::init): |
| (WebCore::FrameLoader::initForSynthesizedDocument): |
| * loader/HistoryController.cpp: |
| (WebCore::HistoryController::pushState): |
| (WebCore::HistoryController::replaceState): |
| * loader/appcache/ApplicationCache.cpp: |
| (WebCore::ApplicationCache::addResource): |
| (WebCore::ApplicationCache::resourceForURL): |
| * loader/appcache/ApplicationCacheGroup.cpp: |
| (WebCore::ApplicationCacheGroup::startLoadingEntry): |
| (WebCore::ApplicationCacheGroup::addEntry): |
| * loader/appcache/ApplicationCacheStorage.cpp: |
| (WebCore::ApplicationCacheStorage::cacheGroupForURL): |
| (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): |
| (WebCore::ApplicationCacheStorage::loadCache): |
| (WebCore::ApplicationCacheStorage::manifestURLs): |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::create): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::urlForBlankFrame): |
| * platform/URL.cpp: |
| (WebCore::blankURL): |
| * platform/URL.h: |
| (): Deleted. |
| * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: |
| (WebCore::MediaPlayerPrivateAVFoundation::load): |
| * platform/network/BlobRegistryImpl.cpp: |
| (WebCore::BlobRegistryImpl::populateBlobsForFileWriting): |
| * platform/network/ResourceRequestBase.h: |
| (WebCore::ResourceRequestBase::decodeBase): |
| * platform/network/ResourceResponseBase.cpp: |
| (WebCore::ResourceResponseBase::sanitizeSuggestedFilename): |
| * platform/network/cf/DNSResolveQueueCFNet.cpp: |
| (WebCore::DNSResolveQueueCFNet::updateIsUsingProxy): |
| * platform/network/cf/ResourceRequest.h: |
| (WebCore::ResourceRequest::ResourceRequest): |
| * platform/network/curl/CookieJarDB.cpp: |
| (WebCore::CookieJarDB::searchCookies): |
| (WebCore::CookieJarDB::setCookie): |
| (WebCore::CookieJarDB::deleteCookie): |
| * platform/network/curl/ResourceRequest.h: |
| (WebCore::ResourceRequest::ResourceRequest): |
| * platform/network/soup/ResourceRequest.h: |
| (WebCore::ResourceRequest::ResourceRequest): |
| * xml/XSLTProcessorLibxslt.cpp: |
| (WebCore::docLoaderFunc): |
| |
| 2018-10-02 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] Cue with line setting is not rendered correctly |
| https://bugs.webkit.org/show_bug.cgi?id=190168 |
| |
| Reviewed by Eric Carlson. |
| |
| When the line setting contains an optional alignment value, the cue is not rendered at the correct position, |
| see https://w3c.github.io/webvtt/#webvtt-line-cue-setting. This patch does not implement correct handling of |
| the line setting alignment values, it only makes sure parsing does not fail when the cue has line alignment |
| settings. |
| |
| Test: media/track/track-cue-line-position.html |
| |
| * html/track/VTTCue.cpp: |
| (WebCore::VTTCueBox::applyCSSProperties): |
| (WebCore::VTTCue::getPositionCoordinates const): |
| (WebCore::VTTCue::setCueSettings): |
| |
| 2018-10-02 Antti Koivisto <antti@apple.com> |
| |
| User installed fonts are not always disabled when they should be |
| https://bugs.webkit.org/show_bug.cgi?id=190195 |
| |
| Reviewed by Geoffrey Garen. |
| |
| SVG images and some theme cases fail to respect the setting. Besides the obvious problem this |
| is also a performance issue as various font caches include this setting in the key. |
| |
| * platform/graphics/FontDescription.cpp: |
| (WebCore::m_shouldAllowUserInstalledFonts): |
| |
| Initialize to 'No' by default. All paths where user fonts make sense already set the bit from |
| settings. This fixes some cases in system themes that construct FontDescriptions from scratch. |
| |
| * rendering/RenderElement.cpp: |
| (WebCore::RenderElement::styleWillChange): |
| |
| Add assertion. This verified the change with the existing tests. |
| |
| * svg/graphics/SVGImage.cpp: |
| (WebCore::SVGImage::dataChanged): |
| |
| Always disallow user fonts in SVG used as images. |
| |
| 2018-10-01 Dean Jackson <dino@apple.com> |
| |
| Remove CSS Animation Triggers |
| https://bugs.webkit.org/show_bug.cgi?id=190175 |
| <rdar://problem/44925626> |
| |
| Reviewed by Simon Fraser. |
| |
| Remove the never-properly specified CSS Animation Triggers. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSAnimationTriggerScrollValue.cpp: Removed. |
| * css/CSSAnimationTriggerScrollValue.h: Removed. |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::valueForPropertyinStyle): |
| (WebCore::createAnimationTriggerValue): Deleted. |
| (WebCore::animationTriggerValue): Deleted. |
| * css/CSSProperties.json: |
| * css/CSSToStyleMap.cpp: |
| (WebCore::CSSToStyleMap::mapAnimationTrigger): Deleted. |
| * css/CSSToStyleMap.h: |
| * css/CSSValue.cpp: |
| (WebCore::CSSValue::equals const): |
| (WebCore::CSSValue::cssText const): |
| (WebCore::CSSValue::destroy): |
| * css/CSSValue.h: |
| (WebCore::CSSValue::isAnimationTriggerScrollValue const): Deleted. |
| * css/parser/CSSPropertyParser.cpp: |
| (WebCore::consumeAnimationValue): |
| (WebCore::CSSPropertyParser::parseSingleValue): |
| (WebCore::consumeWebkitAnimationTrigger): Deleted. |
| * page/FrameView.cpp: |
| (WebCore::FrameView::sendScrollEvent): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setAnimationTriggersEnabled): Deleted. |
| (WebCore::RuntimeEnabledFeatures::animationTriggersEnabled const): Deleted. |
| * page/animation/AnimationBase.cpp: |
| (WebCore::AnimationBase::updateStateMachine): |
| (WebCore::AnimationBase::fireAnimationEventsIfNeeded): |
| (WebCore::AnimationBase::timeToNextService): |
| (WebCore::AnimationBase::getElapsedTime const): |
| * page/animation/CSSAnimationController.cpp: |
| (WebCore::CSSAnimationControllerPrivate::animationWillBeRemoved): |
| (WebCore::CSSAnimationControllerPrivate::addToAnimationsDependentOnScroll): Deleted. |
| (WebCore::CSSAnimationControllerPrivate::removeFromAnimationsDependentOnScroll): Deleted. |
| (WebCore::CSSAnimationControllerPrivate::scrollWasUpdated): Deleted. |
| (WebCore::CSSAnimationController::wantsScrollUpdates const): Deleted. |
| (WebCore::CSSAnimationController::scrollWasUpdated): Deleted. |
| * page/animation/CSSAnimationController.h: |
| * page/animation/CSSAnimationControllerPrivate.h: |
| (WebCore::CSSAnimationControllerPrivate::wantsScrollUpdates const): Deleted. |
| (WebCore::CSSAnimationControllerPrivate::scrollPosition const): Deleted. |
| * page/animation/CompositeAnimation.cpp: |
| (WebCore::CompositeAnimation::updateKeyframeAnimations): |
| * page/animation/CompositeAnimation.h: |
| (WebCore::CompositeAnimation::hasScrollTriggeredAnimation const): Deleted. |
| * platform/animation/Animation.cpp: |
| (WebCore::Animation::Animation): |
| (WebCore::Animation::operator=): |
| (WebCore::Animation::animationsMatch const): |
| * platform/animation/Animation.h: |
| (WebCore::Animation::isTimingFunctionSet const): |
| (WebCore::Animation::isEmpty const): |
| (WebCore::Animation::clearTimingFunction): |
| (WebCore::Animation::clearAll): |
| (WebCore::Animation::animationMode const): |
| (WebCore::Animation::setAnimationMode): |
| (WebCore::Animation::initialTimingFunction): |
| (WebCore::Animation::isTriggerSet const): Deleted. |
| (WebCore::Animation::clearTrigger): Deleted. |
| (WebCore::Animation::trigger const): Deleted. |
| (WebCore::Animation::setTrigger): Deleted. |
| (WebCore::Animation::initialTrigger): Deleted. |
| * platform/animation/AnimationTrigger.h: Removed. |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::animationCanBeAccelerated const): |
| 2018-10-02 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236624 and r236671. |
| https://bugs.webkit.org/show_bug.cgi?id=190207 |
| |
| The change in r236624 introduced crashes on the bots |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "Refactoring: eliminate raw pointer usage in Fullscreen code" |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| https://trac.webkit.org/changeset/236624 |
| |
| "Unify implementation in VideoFullscreenInterfaceAVKit" |
| https://bugs.webkit.org/show_bug.cgi?id=190091 |
| https://trac.webkit.org/changeset/236671 |
| |
| 2018-10-02 Sihui Liu <sihui_liu@apple.com> |
| |
| Add release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase::invokeOperationAndTransactionTimer() |
| https://bugs.webkit.org/show_bug.cgi?id=190178 |
| |
| Reviewed by Chris Dumez. |
| |
| This would help debug rdar://problem/44902833. |
| |
| * Modules/indexeddb/server/UniqueIDBDatabase.cpp: |
| (WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer): |
| |
| 2018-10-02 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236719. |
| https://bugs.webkit.org/show_bug.cgi?id=190197 |
| |
| this revision caused 39 layout test failures that tested for |
| scrolling, a bug was also not present in the commit or change |
| log. (Requested by Truitt on #webkit). |
| |
| Reverted changeset: |
| |
| "Unreviewed, fix unused variable in |
| RenderLayer::updateScrollableAreaSet" |
| https://trac.webkit.org/changeset/236719 |
| |
| 2018-10-02 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Add h264parse to accept MP4 without stss |
| https://bugs.webkit.org/show_bug.cgi?id=190143 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The MP4 file used in this URL does not contain a stss (Sync Sample |
| Box). In consequence, in acordance with the ISO BMFF spec, all samples |
| are assumed to be sync frames... But in this case that is not true, |
| it's just that the file is wrong (e.g. created with a buggy muxer). |
| |
| http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest |
| |
| The way it works in other browsers is because instead of trusting the |
| MP4 stss table, they rely on parsing the h264 frames. We can do that |
| too. |
| |
| This patch also changes RELEASE_ASSERT() when creating the parsers |
| to GLib criticals. |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::createOptionalParserForFormat): |
| |
| 2018-10-02 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] RealtimeMediaSource should be able to vend hashed IDs |
| https://bugs.webkit.org/show_bug.cgi?id=190142 |
| <rdar://problem/44911109> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, covered by existing tests. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update order of parameters passed |
| to base class. |
| |
| * Modules/mediastream/MediaDevicesRequest.cpp: |
| (WebCore::MediaDevicesRequest::start): ASSERT if document.deviceIDHashSalt is not the same |
| as passed salt. |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::getSettings const): Don't need to hash ID. |
| (WebCore::MediaStreamTrack::getCapabilities const): Ditto. |
| * Modules/mediastream/MediaStreamTrack.h: |
| * Modules/mediastream/MediaStreamTrack.idl: |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::UserMediaRequest::allow): Pass hash salt to createMediaStream. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource): Update order of parameters passed |
| to base class. |
| |
| * Modules/webaudio/MediaStreamAudioSource.cpp: |
| (WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto. |
| * platform/mediastream/MediaConstraints.h: |
| |
| * platform/mediastream/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Ditto. |
| |
| * platform/mediastream/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::RealtimeMediaSource): Calculate hashed ID. |
| (WebCore::RealtimeMediaSource::selectSettings): Use m_hashedID. |
| (WebCore::RealtimeMediaSource::hashedId const): New. |
| (WebCore::RealtimeMediaSource::deviceIDHashSalt const): New. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::createMediaStream): Take hash salt, pass it when creating |
| a source. |
| (WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto. |
| (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto. |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| |
| * platform/mediastream/RealtimeMediaSourceFactory.h: |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::RealtimeVideoSource): Update parameters. |
| * platform/mediastream/RealtimeVideoSource.h: |
| |
| * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: |
| (WebCore::GStreamerAudioCaptureSource::create): Ditto. |
| (WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h: |
| |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: |
| (WebCore::GStreamerVideoCaptureSource::create): Ditto. |
| (WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h: |
| |
| * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp: |
| (WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): Ditto. |
| (WebCore::MockRealtimeAudioSource::create): Ditto. |
| (WebCore::MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h: |
| |
| * platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp: |
| (WebCore::MockRealtimeVideoSource::create): Ditto. |
| (WebCore::MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource): Ditto. |
| * platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h: |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::create): Ditto. |
| (WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto. |
| (WebCore::AVVideoCaptureSource::settings): Use hashedId to set device ID. |
| (WebCore::AVVideoCaptureSource::capabilities): Ditto. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::create): Update parameters. |
| (WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto. |
| (WebCore::CoreAudioCaptureSource::capabilities): Use hashedId to set device ID. |
| (WebCore::CoreAudioCaptureSource::settings): Ditto. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Update parameters. |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: |
| |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm: |
| (WebCore::MockRealtimeAudioSource::create): Ditto. |
| (WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac): Ditto. |
| |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSource::create): Ditto. |
| (WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto. |
| |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: |
| (WebCore::ScreenDisplayCaptureSourceMac::create): Ditto. |
| (WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Ditto. |
| (WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update logging. |
| (WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Ditto. |
| (WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Ditto. |
| |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm: |
| (WebCore::WindowDisplayCaptureSourceMac::create): Update parameters. |
| |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::create): Ditto. |
| (WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto. |
| (WebCore::MockRealtimeAudioSource::settings): Use hashedId to set device ID. |
| (WebCore::MockRealtimeAudioSource::capabilities): Ditto. |
| * platform/mock/MockRealtimeAudioSource.h: |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::create): Update parameters. |
| (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto. |
| (WebCore::MockRealtimeVideoSource::capabilities): Use hashedId to set device ID. |
| (WebCore::MockRealtimeVideoSource::settings): Ditto. |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| 2018-10-02 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer][playbin3] Stream tag lists leaks |
| https://bugs.webkit.org/show_bug.cgi?id=190192 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The gst_stream_get_tags() result is transfer-full, so needs to be adopted to prevent a leak. |
| Also check the tags list pointer which might be NULL in some cases. |
| |
| * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp: |
| (WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::naturalSize const): |
| * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp: |
| (WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer): |
| |
| 2018-10-01 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix unused variable in RenderLayer::updateScrollableAreaSet |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::calculateClipRects const): This is a prepare-ChangeLog bug. I don't |
| have any changes in this function.... |
| |
| 2018-10-02 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Make same thread assert non-release |
| https://bugs.webkit.org/show_bug.cgi?id=189924 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::handleNewAppsinkSample): |
| |
| 2018-10-01 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add a new variant of serializePreservingVisualAppearance which takes VisibleSelection |
| https://bugs.webkit.org/show_bug.cgi?id=190108 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Added a version of serializePreservingVisualAppearance which takes VisibleSelection so that we can avoid creating |
| a range simply to get the first node and the end node of the selection later. This simple change also fixes a bug |
| demonstrated in editing/pasteboard/paste-table-003.html. |
| |
| Test: editing/pasteboard/paste-table-003.html |
| |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::Editor::selectionInHTMLFormat): Adopt the new variant. |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): Ditto. |
| * editing/markup.cpp: |
| (WebCore::serializePreservingVisualAppearance): Added. |
| * editing/markup.h: |
| * editing/wpe/EditorWPE.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): Ditto. |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::createFromSelection): Ditto. |
| * platform/win/PasteboardWin.cpp: |
| (WebCore::Pasteboard::writeSelection): Ditto. |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Don't read from WebCore's bundle for IDNScriptWhiteList |
| https://bugs.webkit.org/show_bug.cgi?id=190157 |
| |
| Reviewed by Dan Bernstein. |
| |
| No change in behavior. This increases performance by not reading from the WebCore bundle, |
| and it makes it so that URL-related functionality can be moved to a place without |
| a bundle for resources. |
| |
| * Resources/IDNScriptWhiteList.txt: Removed. |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::whiteListIDNScripts): |
| (WebCore::allCharactersInIDNScriptWhiteList): |
| (WebCore::readIDNScriptWhiteListFile): Deleted. |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r236551. |
| |
| Fails URL validating too aggressively |
| |
| Reverted changeset: |
| |
| "URLWithUserTypedString should return nil for URLs deemed to |
| be invalid by WebCore::URL" |
| https://bugs.webkit.org/show_bug.cgi?id=189979 |
| https://trac.webkit.org/changeset/236551 |
| |
| 2018-10-01 Keith Miller <keith_miller@apple.com> |
| |
| Create a RELEASE_AND_RETURN macro for ExceptionScopes |
| https://bugs.webkit.org/show_bug.cgi?id=190163 |
| |
| Reviewed by Mark Lam. |
| |
| The new RELEASE_AND_RETURN does all the work for cases |
| where you want to return the result of some expression |
| without explicitly checking for an exception. This is |
| much like the existing RETURN_IF_EXCEPTION macro. |
| |
| No new tests since this is a refactor. |
| |
| * bridge/runtime_array.cpp: |
| (JSC::RuntimeArray::put): |
| |
| 2018-10-01 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix the watchOS build after <https://trac.webkit.org/changeset/236678> |
| (https://bugs.webkit.org/show_bug.cgi?id=189974) |
| |
| Explicitly cast index to unsigned to make the operator[] call unambiguous. |
| |
| * platform/ios/KeyEventIOS.mm: |
| (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): |
| |
| 2018-10-01 Ryosuke Niwa <rniwa@webkit.org> |
| |
| ASAN failure in ~GCReachableRef() |
| https://bugs.webkit.org/show_bug.cgi?id=190113 |
| |
| Reviewed by Darin Adler. |
| |
| The bug was caused by ~GCReachableRef accessing Ref after it had been poisoned for ASAN |
| in Ref::leakRef via Ref(Ref&& other). Fixed the bug by using RefPtr instead since that's |
| the simplest solution here although we could unpoison Ref temporarily as done in ~Ref. |
| |
| * dom/GCReachableRef.h: |
| (WebCore::GCReachableRef::GCReachableRef): |
| (WebCore::GCReachableRef::~GCReachableRef): |
| (WebCore::GCReachableRef::operator-> const): |
| (WebCore::GCReachableRef::get const): |
| (WebCore::GCReachableRef::operator T& const): |
| (WebCore::GCReachableRef::operator! const): |
| (WebCore::GCReachableRef::isNull const): Deleted. |
| |
| 2018-10-01 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove StorageProcess |
| https://bugs.webkit.org/show_bug.cgi?id=189975 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Clean up code. No behavior change. |
| |
| * English.lproj/Localizable.strings: |
| |
| 2018-10-01 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Set a minimum sample duration |
| https://bugs.webkit.org/show_bug.cgi?id=190125 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The last sample of the audio track in the asset used in this test |
| player has a tiny duration (100 ns): |
| |
| http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest |
| |
| So small, we were truncating it to zero. We're not supposed to have |
| frames with zero duration. Instead, lets set a minimum frame duration |
| for those fringe cases. |
| |
| * platform/graphics/gstreamer/MediaSampleGStreamer.cpp: |
| (WebCore::MediaSampleGStreamer::MediaSampleGStreamer): |
| |
| 2018-10-01 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Special keys are misidentified in DOM keyboard events |
| https://bugs.webkit.org/show_bug.cgi?id=189974 |
| |
| Reviewed by Wenson Hsieh. |
| |
| This patch fixes two issues: |
| 1. Special keyboard keys would be misidentified in dispatched DOM keyboard events. |
| 2. DOM keypress events may not be dispatched for some special keys. |
| |
| UIKit uses special input strings to identify the Page Up, Page Down, Escape, Up Arrow, Down Arrow, |
| Left Arrow, and Right Arrow keys. It also uses ASCII control characters to represent some other |
| special keys, including Num Lock / Clear, Home, End, Forward Delete, and F1, ..., F24. We need |
| to explicitly handle these special keyboard keys in order to be able to identify the key that |
| was pressed as well as to correctly disambiguate a key down to know whether to dispatch a DOM |
| keypress event for the key. |
| |
| Unlike UIKit, AppKit reserves Unicode Private Use Area (PUA) code points in 0xF700–0xF8FF to |
| represent special keyboard keys. This makes it straightforward to disambiguate such keys using |
| the input string of the keyboard event alone. To simplify the implementation for iOS |
| we normalize the input string be AppKit compatible. See the explaination for WebCore::windowsKeyCodeForCharCode() |
| below for more details on why this is done. |
| |
| Tests: fast/events/ios/keydown-keyup-arrow-keys-in-non-editable-element.html |
| fast/events/ios/keypress-keys-in-non-editable-element.html |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| Do not use unified source build strategy when building WebEvent.mm as it makes |
| use of SoftLinking macros that are incompatible with this strategy. |
| |
| * platform/ios/KeyEventIOS.mm: |
| (WebCore::windowsKeyCodeForCharCode): Recognize some special AppKit special char codes. |
| These special char codes are generated by WebKit. WebKit uses the same special char codes |
| as AppKit as a convenience instead of defining our own constants for the same purpose. |
| Encoding the special UIKit input strings (e.g. up arrow) as distinct char codes allows us |
| to use integer arithmetic and switch blocks to map characters to Windows virtual key |
| codes as opposed to special cased branches to perform pointer or string comparisions. |
| The latter would be necessary in Modern WebKit in order for key down events to be properly |
| disambiguated to dispatch a DOM keypress event because pointers are not perserved, though |
| what they point to is, when sending the WebEvent from UIProcess to the WebProcess and |
| vice versa. |
| (WebCore::isFunctionKey): Convenience function that determines whether the specified char |
| code corresponds to a function key on the keyboard. The term "function key" is taken from |
| AppKit parlance to describe a special keyboard key. These keys include F1, F2, ..., F24, |
| and cursor keys among other special keyboard keys. |
| (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Write in terms of isFunctionKey(). |
| * platform/ios/PlatformEventFactoryIOS.h: |
| * platform/ios/PlatformEventFactoryIOS.mm: |
| (WebCore::keyIdentifierForKeyEvent): Remove code to handle UIKit special input strings as |
| we now map such special input strings to char codes and hence can use the default code path. |
| (WebCore::keyForKeyEvent): Ditto. |
| (WebCore::codeForKeyEvent): Remove code to compute the Window virtual key code corresponding |
| to a UIKit special key command now that we map such special input strings to char codes and |
| subsequently map the char codes to the Windows virtual key code (see -[WebEvent initWithKeyEventType:...] |
| constructors). So, we can now use WebEvent.keyCode directly to compute the DOM UIEvents code |
| for the event. |
| (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): Remove code to fix up |
| WebEvent.keyCode to account for UIKit special input strings now that we map such special key |
| commands to char codes and subsequently map the char codes to the Windows virtual key code (see -[WebEvent initWithKeyEventType:...] |
| constructors). So, we can now take WebEvent.keyCode verbatim to be the Window virtual key code. |
| (WebCore::convertSpecialKeyToCharCode): Deleted. |
| (WebCore::keyCodeForEvent): Deleted. |
| * platform/ios/WebEvent.mm: |
| (normalizedStringWithAppKitCompatibilityMapping): Added; converts a UIKit character string |
| to the corresponding AppKit-compatible one (if not already compatible). See the explaination |
| for WebCore::windowsKeyCodeForCharCode() above for more details on why this is done. |
| |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]): |
| Normalize the character strings to be AppKit compatible. |
| |
| 2018-10-01 Simon Fraser <simon.fraser@apple.com> |
| |
| Optimize RenderStyle::diff() and clean up the code |
| https://bugs.webkit.org/show_bug.cgi?id=190104 |
| |
| Reviewed by Dan Bernstein. |
| |
| RenderStyle::changeRequiresLayout() and related should only check values on |
| m_rareNonInheritedData and m_rareInheritedData after checking for pointer equality. |
| To reduce the chances of future changes regressing this, move code comparing values |
| on StyleRare[Non]InheritedData into dedication functions. |
| |
| In addition, the transform comparison double-compared the transformOperations, |
| because m_rareNonInheritedData->transform != other.m_rareNonInheritedData->transform |
| is a deep comparison, and it was followed by *m_rareNonInheritedData->transform != *other.m_rareNonInheritedData->transform. |
| Change the first to be a pointer comparison. |
| |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::rareNonInheritedDataChangeRequiresLayout): |
| (WebCore::rareInheritedDataChangeRequiresLayout): |
| (WebCore::RenderStyle::changeRequiresLayout const): |
| (WebCore::rareNonInheritedDataChangeRequiresLayerRepaint): |
| (WebCore::RenderStyle::changeRequiresLayerRepaint const): |
| (WebCore::rareNonInheritedDataChangeRequiresRepaint): |
| (WebCore::rareInheritedDataChangeRequiresRepaint): |
| (WebCore::RenderStyle::changeRequiresRepaint const): |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| URL should not use TextEncoding internally |
| https://bugs.webkit.org/show_bug.cgi?id=190111 |
| |
| Reviewed by Andy Estes. |
| |
| That dependency makes it impossible to move or use elsewhere. |
| Using TextEncoding was overkill because we know the credentials are UTF-8 percent-encoded in a parsed URL. |
| No change in behavior as verified by new API tests. |
| |
| * page/SecurityOrigin.cpp: |
| * page/csp/ContentSecurityPolicySourceList.cpp: |
| * platform/URL.cpp: |
| (WebCore::decodeEscapeSequencesFromParsedURL): |
| (WebCore::URL::user const): |
| (WebCore::URL::pass const): |
| (WebCore::URL::fileSystemPath const): |
| (WebCore::decodeURLEscapeSequences): Deleted. |
| * platform/URL.h: |
| * platform/network/DataURLDecoder.cpp: |
| * platform/text/TextEncoding.cpp: |
| (WebCore::decodeURLEscapeSequences): |
| * platform/text/TextEncoding.h: |
| |
| 2018-10-01 Simon Pieters <zcorpan@gmail.com> |
| |
| <form> in quirks mode should have margin-block-end: 1em |
| https://bugs.webkit.org/show_bug.cgi?id=157788 |
| |
| Reviewed by Simon Fraser. |
| |
| Change the default style for forms to take writing-mode into account |
| in quirks mode. Matches the behavior of Gecko and Edge and the HTML |
| standard. |
| |
| Spec: https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3 |
| |
| Test: imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/form-margin-quirk.html |
| |
| * css/quirks.css: |
| (form): |
| |
| 2018-10-01 Jeremy Jones <jeremyj@apple.com> |
| |
| Unify implementation in VideoFullscreenInterfaceAVKit |
| https://bugs.webkit.org/show_bug.cgi?id=190091 |
| rdar://problem/44734523 |
| |
| Reviewed by Jer Noble. |
| |
| No new tests because no behavior change. |
| |
| Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include |
| any changes that had been made in the old path. |
| |
| * platform/ios/VideoFullscreenInterfaceAVKit.h: |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (-[WebAVPlayerViewControllerDelegate playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground:]): |
| (VideoFullscreenInterfaceAVKit::preparedToExitFullscreen): |
| (VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::requestUpdateInlineRect): |
| (VideoFullscreenControllerContext::requestVideoContentLayer): |
| (VideoFullscreenControllerContext::returnVideoContentLayer): |
| (VideoFullscreenControllerContext::didSetupFullscreen): |
| (VideoFullscreenControllerContext::didExitFullscreen): |
| |
| 2018-10-01 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Ensure renderers with accelerated animations have layers |
| https://bugs.webkit.org/show_bug.cgi?id=189990 |
| |
| Reviewed by Simon Fraser. |
| |
| In r236501 we added code that would make a RenderBox and a RenderInline query the document timeline for whether a given element has |
| accelerated animations running on it. Since the calls to requiresLayer() are in a hot path, we instead keep a list of elements with |
| exclusively accelerated animations running. |
| |
| No new tests, this is already covered by webanimations/accelerated-animation-with-delay.html and webanimations/opacity-animation-yields-compositing-span.html |
| which respectively check that we can apply an accelerated animation to a non-positioned block and an inline element. |
| |
| * animation/AnimationTimeline.h: |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::detachFromDocument): |
| (WebCore::DocumentTimeline::animationWasAddedToElement): |
| (WebCore::DocumentTimeline::animationWasRemovedFromElement): |
| (WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange): |
| (WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement): Iterate over an element's animations to determine |
| whether all of its animations are running accelerated, then update the HashSet containing elements running accelerated animations to remove or |
| add this element. |
| (WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated const): Make a simple contains() call on the HashSet containing elements |
| running accelerated animations. |
| * animation/DocumentTimeline.h: |
| * animation/KeyframeEffectReadOnly.cpp: |
| (WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState): |
| (WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): |
| * rendering/RenderBoxModelObject.h: |
| |
| 2018-10-01 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [GStreamer] Fix abort in gst_sample_get_info() |
| https://bugs.webkit.org/show_bug.cgi?id=190135 |
| |
| Reviewed by Philippe Normand. |
| |
| A flush can occur before any frame has finished decoding -- especially |
| in tests, where actions on the player often occur in quick succession. |
| |
| Therefore, the code must not assume by the time a flush occurs any |
| frame has reached the sink. This patch fixes a case when such wrong |
| assumption was causing gst_sample_get_info() to abort (crashing |
| WebKit). |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer): |
| (WebCore::MediaPlayerPrivateGStreamerBase::createGLAppSink): |
| |
| 2018-10-01 Olivier Blin <olivier.blin@softathome.com> |
| |
| [WPE] fix buffer over-read in RenderThemeWPE::mediaControlsStyleSheet() |
| https://bugs.webkit.org/show_bug.cgi?id=190139 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Like done upstream for EFL in r210213 |
| https://bugs.webkit.org/show_bug.cgi?id=166622 |
| |
| This has been detected by a charactersAreAllASCII() assert failure. |
| |
| This is because ASCIILiteral() is wrongly used in mediaControlsStyleSheet(). |
| mediaControlsBaseUserAgentStyleSheet is a char array, not a null-terminated string. |
| It is thus incorrect to use StringImpl::createFromLiteral() that calls |
| strlen() to get the string length. |
| |
| The String::ConstructFromLiteral constructor can not be used, since it |
| skips the last character. |
| |
| * platform/wpe/RenderThemeWPE.cpp: |
| (WebCore::RenderThemeWPE::mediaControlsStyleSheet): |
| Explicitely pass the size to the String constructor. |
| |
| 2018-10-01 Rob Buis <rbuis@igalia.com> |
| |
| Align XMLHttpRequest's overrideMimeType() with the standard |
| https://bugs.webkit.org/show_bug.cgi?id=169276 |
| |
| Reviewed by Chris Dumez. |
| |
| Implement the overrideMimeType() as specified in that standard, i.e. |
| add a check that the passed mime type is valid and if not fallback |
| to application/octet-stream. |
| |
| In order for this patch to have any effect, I went ahead and |
| made an improvement to the ContentType parsing, parseContentType now |
| will reject mime types that do not match the type / subtype format, I |
| believe this is required by both RFC2045 and mimesniff specs. |
| |
| This behavior matches Chrome and Firefox. |
| |
| Test: web-platform-tests/xhr/overridemimetype-invalid-mime-type.htm |
| |
| * platform/network/ParsedContentType.cpp: |
| (WebCore::parseContentType): |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::overrideMimeType): |
| |
| |
| 2018-10-01 Chris Dumez <cdumez@apple.com> |
| |
| Make crossOriginObject.then undefined for promises |
| https://bugs.webkit.org/show_bug.cgi?id=190094 |
| |
| Reviewed by Darin Adler. |
| |
| Make crossOriginObject.then undefined for promises. This allows promises to work better with cross-origin WindowProxy |
| and Location objects. |
| |
| Specification: |
| - https://github.com/whatwg/html/pull/3242 |
| - https://github.com/whatwg/dom/issues/536 |
| |
| This aligns our behavior with Blink and Gecko. |
| |
| No new tests, rebaselined existing test. |
| |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): |
| (WebCore::addCrossOriginWindowOwnPropertyNames): |
| * bindings/js/JSLocationCustom.cpp: |
| (WebCore::getOwnPropertySlotCommon): |
| (WebCore::addCrossOriginLocationOwnPropertyNames): |
| |
| 2018-10-01 Xan Lopez <xan@igalia.com> |
| |
| [SOUP] Fix the build for libsoup > 2.61.90 |
| https://bugs.webkit.org/show_bug.cgi?id=190126 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * platform/network/soup/SocketStreamHandleImplSoup.cpp: |
| |
| 2018-10-01 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Reset running time in PlaybackPipeline::flush() |
| https://bugs.webkit.org/show_bug.cgi?id=190076 |
| |
| Reviewed by Philippe Normand. |
| |
| Test: media/media-source/media-source-seek-redundant-append.html |
| |
| PlaybackPipeline::flush() is called when already enqueued frames are |
| appended again. This may be caused by a quality change or just a |
| redundant append. Either way, the pipeline has to be flushed and |
| playback begin again, but without changing the player position by |
| much. |
| |
| There are two kinds of time to consider here: stream time (i.e. the |
| time of a frame as written in the file, e.g. a frame may have stream |
| time 0:01:00), and running time (i.e. how much time since playback |
| started should pass before the frame should be played, e.g. if we |
| started playing at 0:00:59 that same frame would have a running time |
| of just 1 second). |
| |
| Notice how running time depends on where and when playback starts. |
| Running time can also be optionally resetted after a flush. (This is |
| indeed done currently by most demuxers after a seek.) |
| |
| Instead of resetting running time, PlaybackPipeline used to modify the |
| first GstSegment emitted after the flush. A GstSegment declares the |
| mapping between stream time and running time for the following frames. |
| There, PlaybackPipeline used to set `base` (the running time at which |
| the segment starts) to the position reported by a position query |
| (which is stream time). |
| |
| This, of course, only worked when playback (or the last seek) started |
| at stream time 0:00:00, since that's the only case where running time |
| equals stream time. In other cases delays as long as the difference |
| between these timelines would appear. This is demonstrated in the |
| attached test, where seeks and appends are made in such an order that |
| the difference is more than 5 minutes, making the playback stall for |
| >5 minutes before playing 1 second of audio. |
| |
| This patch fixes the problem by resetting running time with the flush |
| and not modifying GstSegment.base anymore (it will be left as zero, |
| which is now correct since the running time has been reset). |
| |
| * platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: |
| (WebCore::PlaybackPipeline::flush): |
| (WebCore::segmentFixerProbe): Deleted. |
| |
| 2018-09-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Use Position instead of Range in createMarkupInternal |
| https://bugs.webkit.org/show_bug.cgi?id=190107 |
| |
| Reviewed by Darin Adler. |
| |
| Use two Position's indicating start and end instead of Range in createMarkupInternal and StylizedMarkupAccumulator |
| in order to support copy & paste across shadow boundaries in the bug 157443. This patch also removes the use of |
| Range in MarkupAccumulator since all uses of range is via StylizedMarkupAccumulator. |
| |
| Also renamed createMarkupInternal to serializePreservingVisualAppearanceInternal to match the rename in r236612. |
| |
| * dom/Position.cpp: |
| (WebCore::Position::firstNode const): Added. |
| * dom/Position.h: |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::MarkupAccumulator::MarkupAccumulator): No longer takes Range. |
| (WebCore::MarkupAccumulator::appendText): Removed the code to truncate string at the boundary points of the range. |
| * editing/MarkupAccumulator.h: |
| (WebCore::MarkupAccumulator): Made this class non-copyable. |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): Now takes and stores two positions. |
| |
| (WebCore::StyledMarkupAccumulator::appendText): Use textContentRespectingRange in the case annotation is disabled |
| instead of calling to MarkupAccumulator::appendText, which no longer respects boundary offsets. |
| |
| (WebCore::StyledMarkupAccumulator::renderedTextRespectingRange): Renamed from renderedText. Updated to respect |
| boundary offsets defined by m_start and m_end Positions instead of m_range Range. |
| |
| (WebCore::StyledMarkupAccumulator::textContentRespectingRange): Renamed from stringValueForRange. Ditto. |
| |
| (WebCore::StyledMarkupAccumulator::serializeNodes): Now computes startNode and pastEnd nodes from start and end |
| Positions. Note that the end position is always the next node in the tree order for a character node |
| and computeNodeAfterPosition returns nullptr for a character data. |
| |
| (WebCore::highestAncestorToWrapMarkup): Now takes two positions instead of a range. |
| |
| (WebCore::serializePreservingVisualAppearanceInternal): Renamed from createMarkupInternal. Removed the obsolete |
| comments which were added for DOMRange in WebKitLegacy. |
| |
| (WebCore::serializePreservingVisualAppearance): |
| |
| (WebCore::sanitizedMarkupForFragmentInDocument): Create positions instead of a range to pass to |
| serializePreservingVisualAppearanceInternal. |
| |
| (WebCore::serializeFragment): |
| |
| * editing/markup.h: |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::SerializerMarkupAccumulator): Removed the unnecessary WebCore namespace qualifier. |
| |
| 2018-09-30 Walker Henderson <wjahenderson@gmail.com> |
| |
| AudioNode.connect should return passed destination node |
| https://bugs.webkit.org/show_bug.cgi?id=188834 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests, rebaselined existing test. |
| |
| * Modules/webaudio/AudioBasicInspectorNode.cpp: |
| (WebCore::AudioBasicInspectorNode::connect): Deleted. |
| * Modules/webaudio/AudioBasicInspectorNode.h: |
| * Modules/webaudio/AudioNode.cpp: |
| * Modules/webaudio/AudioNode.h: |
| * Modules/webaudio/AudioNode.idl: |
| |
| 2018-09-30 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Clean up RealtimeMediaSource settings change handling |
| https://bugs.webkit.org/show_bug.cgi?id=189998 |
| <rdar://problem/44797884> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, updated webrtc/video-disabled-black.html. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::Source): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::settings): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange): |
| (WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized): |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: |
| * platform/mediastream/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): |
| (WebCore::RealtimeIncomingVideoSource::settings): |
| (WebCore::RealtimeIncomingVideoSource::settingsDidChange): |
| * platform/mediastream/RealtimeIncomingVideoSource.h: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::settingsDidChange): |
| (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): |
| (WebCore::RealtimeMediaSource::setSize): |
| (WebCore::RealtimeMediaSource::setFrameRate): |
| (WebCore::RealtimeMediaSource::setAspectRatio): |
| (WebCore::RealtimeMediaSource::setFacingMode): |
| (WebCore::RealtimeMediaSource::setVolume): |
| (WebCore::RealtimeMediaSource::setSampleRate): |
| (WebCore::RealtimeMediaSource::setSampleSize): |
| (WebCore::RealtimeMediaSource::setEchoCancellation): |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: |
| (WebCore::GStreamerAudioCaptureSource::settingsDidChange): |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: |
| (WebCore::GStreamerVideoCaptureSource::settingsDidChange): |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::settingsDidChange): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::settingsDidChange): |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample): |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::settingsDidChange): |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::settingsDidChange): |
| |
| 2018-09-30 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Use display-specific capture factories |
| https://bugs.webkit.org/show_bug.cgi?id=190043 |
| <rdar://problem/44834412> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, no change in functionality. |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::AudioCaptureFactory::~AudioCaptureFactory): Deleted. |
| (WebCore::RealtimeMediaSource::VideoCaptureFactory::~VideoCaptureFactory): Deleted. |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::createMediaStream): |
| (WebCore::RealtimeMediaSourceCenter::getDisplayMediaDevices): |
| * platform/mediastream/RealtimeMediaSourceCenter.h: |
| (WebCore::RealtimeMediaSourceCenter::setAudioFactory): |
| (WebCore::RealtimeMediaSourceCenter::unsetAudioFactory): |
| * platform/mediastream/RealtimeMediaSourceFactory.cpp: Added. |
| (WebCore::SingleSourceFactory::setActiveSource): |
| (WebCore::SingleSourceFactory::unsetActiveSource): |
| * platform/mediastream/RealtimeMediaSourceFactory.h: Added. |
| (WebCore::SingleSourceFactory::activeSource): |
| (WebCore::VideoCaptureFactory::setVideoCapturePageState): |
| (WebCore::DisplayCaptureFactory::setDisplayCapturePageState): |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: |
| (WebCore::libWebRTCVideoCaptureSourceFactory): |
| (WebCore::libWebRTCDisplayCaptureSourceFactory): |
| (WebCore::GStreamerVideoCaptureSource::factory): |
| (WebCore::GStreamerVideoCaptureSource::displayFactory): |
| * platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h: |
| * platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp: |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::audioCaptureSourceFactory): |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactory): |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactory): |
| (WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactory): |
| * platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::~AVVideoCaptureSource): |
| (WebCore::AVVideoCaptureSource::setupCaptureSession): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::factory): |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| (WebCore::RealtimeMediaSourceCenterMac::videoCaptureSourceFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::displayCaptureSourceFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::audioCaptureSourceFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::audioFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::videoFactory): |
| (WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactory): |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource): |
| (WebCore::MockRealtimeAudioSource::startProducingData): |
| (): Deleted. |
| (WebCore::mockAudioCaptureSourceFactory): Deleted. |
| (WebCore::MockRealtimeAudioSource::factory): Deleted. |
| * platform/mock/MockRealtimeAudioSource.h: |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState): |
| (WebCore::MockRealtimeMediaSourceCenter::audioFactory): |
| (WebCore::MockRealtimeMediaSourceCenter::videoFactory): |
| (WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactory): |
| * platform/mock/MockRealtimeMediaSourceCenter.h: |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (): Deleted. |
| (WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState): Deleted. |
| (WebCore::mockVideoCaptureSourceFactory): Deleted. |
| (WebCore::MockRealtimeVideoSource::factory): Deleted. |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| 2018-09-29 Oriol Brufau <obrufau@igalia.com> |
| |
| [css-grid] Properly align items next to collapsed tracks with gutters |
| https://bugs.webkit.org/show_bug.cgi?id=190089 |
| |
| Reviewed by Manuel Rego Casasnovas. |
| |
| gridAreaPositionForInFlowChild could return a wrong end position for |
| grid items adjacent to a collapsed track, because it didn't take into |
| account that gutters collapse in that case. Therefore, "center" or |
| "end" alignments displayed the item at the wrong position. |
| |
| Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-gutters-013.html |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::gridAreaPositionForInFlowChild const): |
| |
| 2018-09-29 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [GStreamer][MSE] Use GObject for GST_TRACE_OBJECT |
| https://bugs.webkit.org/show_bug.cgi?id=190045 |
| |
| Reviewed by Philippe Normand. |
| |
| Passing a non-GObject object to GST_TRACE_OBJECT() can be |
| theoretically misunderstood by the GStreamer logging function, so this |
| patch avoids that. |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe): |
| (WebCore::AppendPipeline::handleEndOfAppend): |
| (WebCore::AppendPipeline::consumeAppsinkAvailableSamples): |
| (WebCore::AppendPipeline::pushNewBuffer): |
| |
| 2018-09-28 Zamiul Haque <zhaque@apple.com> |
| |
| Angled gradient backgrounds in body render vertically when body height is 0 |
| https://bugs.webkit.org/show_bug.cgi?id=177232 |
| <rdar://problem/34548230>. |
| |
| Reviewed by Tim Horton. |
| |
| Specifically, gradients displayed at an angle (ie. 45 degrees) are rendered |
| as if they are vertical when the body tag containing the gradient |
| has a height of 0. Other browsers do not render under these circumstances, |
| so WebKit was modified to follow in suit. The problem was due to layout sizes for |
| fill tiles being calculated with a minimum height of 1px. A simple change of the |
| minimum height and width to 0px was enough to bring about the desired behavior. |
| |
| Tests: angled-background-repeating-gradient-rendering-vertical.html |
| |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::calculateFillTileSize const): |
| |
| 2018-09-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| No DOM API to instantiate an attachment for an img element |
| https://bugs.webkit.org/show_bug.cgi?id=189934 |
| <rdar://problem/44743222> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Adds support for HTMLAttachmentElement.getAttachmentIdentifier, a function that internal WebKit clients can use |
| to ensure that an image element is backed by a unique _WKAttachment. See below for more details. |
| |
| Tests: WKAttachmentTests.AddAttachmentToConnectedImageElement |
| WKAttachmentTests.ChangeFileWrapperForPastedImage |
| WKAttachmentTests.ConnectImageWithAttachmentToDocument |
| |
| * dom/Document.cpp: |
| (WebCore::Document::registerAttachmentIdentifier): |
| |
| Add a new hook to register an empty _WKAttachment in the UI process with a given identifier. Used when creating |
| a new empty attachment to back an image element. |
| |
| * dom/Document.h: |
| * editing/Editor.cpp: |
| (WebCore::Editor::registerAttachmentIdentifier): |
| (WebCore::Editor::notifyClientOfAttachmentUpdates): |
| * editing/Editor.h: |
| * html/HTMLAttachmentElement.cpp: |
| (WebCore::HTMLAttachmentElement::getAttachmentIdentifier): |
| |
| Creates an attachment element to back the image element, if an attachment does not already exist, and returns |
| the unique identifier. This also causes an empty corresponding _WKAttachment to be created in the client, whose |
| file wrapper determines the contents of the image. |
| |
| (WebCore::HTMLAttachmentElement::ensureUniqueIdentifier): |
| (WebCore::HTMLAttachmentElement::hasEnclosingImage const): |
| (WebCore::HTMLAttachmentElement::updateEnclosingImageWithData): |
| |
| Add a helper that updates the source of the enclosing image element given a content type and image data, by |
| creating a new blob and blob URL. |
| |
| * html/HTMLAttachmentElement.h: |
| * html/HTMLAttachmentElement.idl: |
| * html/HTMLImageElement.idl: |
| |
| Rename webkitAttachmentIdentifier to just attachmentIdentifier. |
| |
| * page/EditorClient.h: |
| (WebCore::EditorClient::registerAttachmentIdentifier): |
| (WebCore::EditorClient::didInsertAttachmentWithIdentifier): |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString |
| https://bugs.webkit.org/show_bug.cgi?id=190090 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString: |
| - https://html.spec.whatwg.org/#onbeforeunloadeventhandler |
| - https://html.spec.whatwg.org/#the-event-handler-processing-algorithm (Step 5) |
| |
| In particular, this means that returning false in an OnBeforeUnloadEventHandler should NOT |
| cancel the event when the event is a CustomEvent (and not a BeforeUnloadEvent). This is |
| because the return value cannot be false at: |
| - https://html.spec.whatwg.org/#the-event-handler-processing-algorithm (Step 5. Otherwise case). |
| |
| No new tests, rebaselined existing test. |
| |
| * bindings/js/JSEventListener.cpp: |
| (WebCore::JSEventListener::handleEvent): |
| |
| 2018-09-28 Simon Fraser <simon.fraser@apple.com> |
| |
| RenderLayer::removeOnlyThisLayer() should not call updateLayerPositions() |
| https://bugs.webkit.org/show_bug.cgi?id=190093 |
| |
| Reviewed by Dean Jackson and Zalan Bujtas. |
| |
| It's wrong for RenderLayer::removeOnlyThisLayer() to call updateLayerPositions(), |
| because this is called at style update time, and layout will be stale. |
| |
| It was added (see webkit.org/b/25252) so that opacity changes, which can destroy layers, correctly update |
| descendants. However, RenderStyle::changeRequiresLayout() checks for opacity <=> no opacity |
| changes and triggers layout accordingly, which will result in a full post-layout |
| updateLayerPositions(). |
| |
| This also revealed that changes to the "isolate" property fail to trigger any kind of style recalc or layout; |
| we need it to trigger layout (for now) because it affects z-order. |
| |
| Covered by existing tests. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::removeOnlyThisLayer): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::changeRequiresLayout const): |
| |
| 2018-09-28 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Polish WebAuthN auto-test environment |
| https://bugs.webkit.org/show_bug.cgi?id=189283 |
| <rdar://problem/44117828> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch removes the old mocking mechanism. |
| |
| Tests: http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html |
| http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html |
| http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html |
| |
| * DerivedSources.make: |
| * WebCore.xcodeproj/project.pbxproj: |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): |
| (WebCore::Internals::mockAuthenticatorCoordinator const): Deleted. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| * testing/MockAuthenticatorCoordinator.cpp: Removed. |
| * testing/MockAuthenticatorCoordinator.h: Removed. |
| * testing/MockAuthenticatorCoordinator.idl: Removed. |
| |
| 2018-09-28 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: eliminate raw pointer usage in Fullscreen code |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| <rdar://problem/43541164> |
| |
| Reviewed by Alex Christensen. |
| |
| Two sources of raw pointers in the Fullscreen code: |
| - Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so |
| they are passed around as raw references. |
| - Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and |
| VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't |
| be ref-able. |
| |
| Make Model classes ref-able by adding ref() and deref() which call virtual refModel and |
| derefModel methods, overridden by implementing subclasses. Make every concrete observer |
| inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around |
| the client interface. |
| |
| Since every Interface class now holds a strong reference to its Model classes, and each |
| Model class holds a weak reference to all its clients, no explicit invalidate() method |
| is necessary. |
| |
| Notes: |
| |
| - Since the weak pointer methods need to be able to downcast to the abstract base class, |
| observers need to inherit publically (rather than privately) from those base classes. |
| - Media element Models should compose EventListener rather than inheriting from it, since |
| EventListener has its own RefCount. |
| - WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when |
| their underlying object is destroyed), so clients should be stored in a Vector instead. |
| - Interfaces should be given all required Refs at creation time, so that they can store |
| those parameters as Refs instead of RefPtrs. |
| |
| * platform/cocoa/PlaybackSessionInterface.h: |
| (WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted. |
| * platform/cocoa/PlaybackSessionModel.h: |
| (WebCore::PlaybackSessionModel::ref): |
| (WebCore::PlaybackSessionModel::deref): |
| (WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted. |
| * platform/cocoa/PlaybackSessionModelMediaElement.h: |
| * platform/cocoa/PlaybackSessionModelMediaElement.mm: |
| (WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement): |
| (WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement): |
| (WebCore::PlaybackSessionModelMediaElement::setMediaElement): |
| (WebCore::PlaybackSessionModelMediaElement::updateForEventName): |
| (WebCore::PlaybackSessionModelMediaElement::addClient): |
| (WebCore::PlaybackSessionModelMediaElement::removeClient): |
| (WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions): |
| (WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices): |
| (WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted. |
| * platform/cocoa/VideoFullscreenChangeObserver.h: |
| (WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted. |
| * platform/cocoa/VideoFullscreenModel.h: |
| (WebCore::VideoFullscreenModel::ref): |
| (WebCore::VideoFullscreenModel::deref): |
| (WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted. |
| * platform/cocoa/VideoFullscreenModelVideoElement.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement): |
| (VideoFullscreenModelVideoElement::setVideoElement): |
| (VideoFullscreenModelVideoElement::addClient): |
| (VideoFullscreenModelVideoElement::removeClient): |
| (VideoFullscreenModelVideoElement::setHasVideo): |
| (VideoFullscreenModelVideoElement::setVideoDimensions): |
| (VideoFullscreenModelVideoElement::willEnterPictureInPicture): |
| (VideoFullscreenModelVideoElement::didEnterPictureInPicture): |
| (VideoFullscreenModelVideoElement::failedToEnterPictureInPicture): |
| (VideoFullscreenModelVideoElement::willExitPictureInPicture): |
| (VideoFullscreenModelVideoElement::didExitPictureInPicture): |
| (VideoFullscreenModelVideoElement::handleEvent): Deleted. |
| * platform/ios/PlaybackSessionInterfaceAVKit.h: |
| (WebCore::PlaybackSessionInterfaceAVKit::create): |
| (WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const): |
| (): Deleted. |
| * platform/ios/PlaybackSessionInterfaceAVKit.mm: |
| (WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit): |
| (WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit): |
| (WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted. |
| * platform/ios/VideoFullscreenInterfaceAVKit.h: |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (-[WebAVPlayerLayer layoutSublayers]): |
| (-[WebAVPlayerLayer resolveBounds]): |
| (-[WebAVPlayerLayer setVideoGravity:]): |
| (VideoFullscreenInterfaceAVKit::create): |
| (VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit): |
| (VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit): |
| (VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver): |
| (VideoFullscreenInterfaceAVKit::applicationDidBecomeActive): |
| (VideoFullscreenInterfaceAVKit::setupFullscreen): |
| (VideoFullscreenInterfaceAVKit::presentingViewController): |
| (VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): |
| (VideoFullscreenInterfaceAVKit::preparedToExitFullscreen): |
| (VideoFullscreenInterfaceAVKit::willStartPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::didStartPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::willStopPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::didStopPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): |
| (VideoFullscreenInterfaceAVKit::doSetup): |
| (VideoFullscreenInterfaceAVKit::setMode): |
| (VideoFullscreenInterfaceAVKit::clearMode): |
| (VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted. |
| (VideoFullscreenInterfaceAVKit::invalidate): Deleted. |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController delegate]): |
| (-[WebAVPlayerController playbackSessionInterface]): |
| (-[WebAVPlayerController setPlaybackSessionInterface:]): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::didCleanupFullscreen): |
| (VideoFullscreenControllerContext::addClient): |
| (VideoFullscreenControllerContext::removeClient): |
| (VideoFullscreenControllerContext::willEnterPictureInPicture): |
| (VideoFullscreenControllerContext::didEnterPictureInPicture): |
| (VideoFullscreenControllerContext::failedToEnterPictureInPicture): |
| (VideoFullscreenControllerContext::willExitPictureInPicture): |
| (VideoFullscreenControllerContext::didExitPictureInPicture): |
| (VideoFullscreenControllerContext::setUpFullscreen): |
| * platform/mac/PlaybackSessionInterfaceMac.h: |
| * platform/mac/PlaybackSessionInterfaceMac.mm: |
| (WebCore::PlaybackSessionInterfaceMac::create): |
| (WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac): |
| (WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const): |
| (WebCore::PlaybackSessionInterfaceMac::rateChanged): |
| (WebCore::PlaybackSessionInterfaceMac::beginScrubbing): |
| (WebCore::PlaybackSessionInterfaceMac::endScrubbing): |
| (WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager): |
| (WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming): |
| (WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted. |
| (WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted. |
| * platform/mac/VideoFullscreenInterfaceMac.h: |
| (WebCore::VideoFullscreenInterfaceMac::create): |
| (WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const): |
| (WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const): |
| (WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const): |
| * platform/mac/VideoFullscreenInterfaceMac.mm: |
| (-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]): |
| (-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]): |
| (WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac): |
| (WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac): |
| (WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver): |
| (WebCore::VideoFullscreenInterfaceMac::setMode): |
| (WebCore::VideoFullscreenInterfaceMac::clearMode): |
| (WebCore::VideoFullscreenInterfaceMac::invalidate): |
| (WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP): |
| (WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted. |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): |
| (-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager togglePlayback]): |
| (-[WebPlaybackControlsManager setPlaying:]): |
| (-[WebPlaybackControlsManager isPlaying]): |
| (-[WebPlaybackControlsManager togglePictureInPicture]): |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| Drop support for cross-origin-window-policy header |
| https://bugs.webkit.org/show_bug.cgi?id=190081 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Drop support for cross-origin-window-policy header as this was never enabled and its design has |
| some issues we have not resolved. An alternative is being worked on but will be substantially |
| different so there is not much value in keeping this code around. |
| |
| * bindings/js/JSDOMBindingSecurity.cpp: |
| * bindings/js/JSDOMBindingSecurity.h: |
| * bindings/js/JSDOMWindowCustom.cpp: |
| (WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): |
| (WebCore::JSDOMWindow::getOwnPropertySlotByIndex): |
| (WebCore::addCrossOriginWindowPropertyNames): |
| (WebCore::addScopedChildrenIndexes): |
| (WebCore::addCrossOriginWindowOwnPropertyNames): |
| (WebCore::JSDOMWindow::getOwnPropertyNames): |
| * bindings/js/JSDOMWindowCustom.h: |
| * bindings/js/JSRemoteDOMWindowCustom.cpp: |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateAttributeGetterBodyDefinition): |
| (GenerateAttributeSetterBodyDefinition): |
| (GenerateOperationBodyDefinition): |
| * bindings/scripts/IDLAttributes.json: |
| * dom/Document.cpp: |
| (WebCore::Document::canNavigate): |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::didBeginDocument): |
| * page/AbstractDOMWindow.cpp: |
| (WebCore::AbstractDOMWindow::AbstractDOMWindow): |
| * page/AbstractDOMWindow.h: |
| * page/DOMWindow.idl: |
| * page/Settings.yaml: |
| * platform/network/HTTPParsers.cpp: |
| * platform/network/HTTPParsers.h: |
| |
| 2018-09-28 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Allow programmatic focus when hardware keyboard is attached |
| https://bugs.webkit.org/show_bug.cgi?id=190017 |
| <rdar://problem/42270463> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Add support for checking if the embedding client is WebKitTestRunner and export isDumpRenderTree() |
| so that we can make use of it from WebKit. We will make use of these functions to keep the current |
| behavior of disallowing programmatic focus when running tests in these apps. This is needed to |
| keep testing deterministic. Otherwise, test results would be dependent on whether a hardware |
| keyboard is attached. When running tests in Simulator.app the hardware keyboard may also not be |
| connected (i.e. Hardware > Keyboard > Connect Hardware Keyboard is disabled). |
| |
| * platform/RuntimeApplicationChecks.h: |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: |
| (WebCore::IOSApplication::isWebKitTestRunner): Added. |
| |
| 2018-09-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r236609): API tests for mso list preservation are failing |
| https://bugs.webkit.org/show_bug.cgi?id=190095 |
| |
| Reviewed by Wenson Hsieh. |
| |
| The regression was caused by appendNodeToPreserveMSOList called after an early return for not having renderer. |
| Clearly, comment & style elements coming from a MS word document wouldn't have a renderer. |
| |
| Fixed the bug by changing the order. |
| |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): |
| |
| 2018-09-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Build fix after r236612. |
| |
| * platform/win/PasteboardWin.cpp: |
| (WebCore::Pasteboard::writeSelection): |
| |
| 2018-09-28 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Remove the "in-store" button type |
| https://bugs.webkit.org/show_bug.cgi?id=190079 |
| |
| Reviewed by Tim Horton. |
| |
| According to <https://developer.apple.com/design/human-interface-guidelines/apple-pay/buttons-and-marks/buttons/>, |
| this button is meant only for certain kinds of native apps. It shouldn't be available on the web. |
| |
| Updated http/tests/ssl/applepay/ApplePayButton.html. |
| |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| (WebCore::CSSPrimitiveValue::operator ApplePayButtonType const): |
| * css/CSSValueKeywords.in: |
| * css/parser/CSSParserFastPaths.cpp: |
| (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): |
| * rendering/RenderThemeCocoa.mm: |
| (WebCore::toPKPaymentButtonType): |
| * rendering/style/RenderStyleConstants.h: |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| document.open() should throw errors for cross-origin calls |
| https://bugs.webkit.org/show_bug.cgi?id=189371 |
| <rdar://problem/44282700> |
| |
| Reviewed by Youenn Fablet. |
| |
| document.open() / document.write() should throw errors for cross-origin calls as per: |
| - https://html.spec.whatwg.org/#document-open-steps (Step 4) |
| |
| No new tests, rebaselined existing tests. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::open): |
| (WebCore::Document::write): |
| (WebCore::Document::writeln): |
| * dom/Document.h: |
| |
| 2018-09-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Rename createMarkup to serializePreservingVisualAppearance |
| https://bugs.webkit.org/show_bug.cgi?id=190086 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Renamed the function to clarify what it does. Also removed the unused Range::toHTML. |
| |
| * dom/Range.cpp: |
| (WebCore::Range::toHTML const): Deleted. |
| * dom/Range.h: |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::Editor::selectionInHTMLFormat): |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): |
| * editing/markup.cpp: |
| (WebCore::serializePreservingVisualAppearance): |
| (WebCore::createMarkup): Deleted. |
| * editing/markup.h: |
| * editing/wpe/EditorWPE.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::create): |
| (WebCore::LegacyWebArchive::createFromSelection): |
| * platform/win/PasteboardWin.cpp: |
| (WebCore::Pasteboard::writeRangeToDataObject): |
| |
| 2018-09-28 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove some unused RenderLayer code |
| https://bugs.webkit.org/show_bug.cgi?id=190078 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The 'outOfFlowDescendantContainingBlocks' code was related to the accelerated overflow scrolling code that |
| I removed recently. |
| |
| updateDescendantsLayerListsIfNeeded() is never called. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::updateDescendantDependentFlags): |
| (WebCore::RenderLayer::calculateClipRects const): |
| * rendering/RenderLayer.h: |
| |
| 2018-09-28 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236605. |
| https://bugs.webkit.org/show_bug.cgi?id=190087 |
| |
| caused three API test timeouts (Requested by jernoble on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Refactoring: eliminate raw pointer usage in Fullscreen code" |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| https://trac.webkit.org/changeset/236605 |
| |
| 2018-09-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Simplify StyledMarkupAccumulator::traverseNodesForSerialization |
| https://bugs.webkit.org/show_bug.cgi?id=190073 |
| |
| Reviewed by Antti Koivisto. |
| |
| Simplified the range traversal algorithm in traverseNodesForSerialization as it was too complicated |
| to support shadow DOM for copy and paste. |
| |
| Instead of using NodeTraversal::next to traverse past ancestors and then figuring out which ancestor |
| must be closed or to wrap the existing markup with, new code collects the list of ancestors as we |
| traverse out of them. |
| |
| Also extracted lambdas for generating markup and deciding whether to skip a node as well as keeping |
| track of the depth of the current markup. This further reduces the code complexity of the actual |
| node traversal algorithm. Keeping track of the depth allows us to now generate ancestor elements' |
| closing tags without keeping a stack of ancestor nodes we opened at all times. |
| |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): |
| |
| 2018-09-27 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Replace every use of Node::offsetInCharacters() by Node::isCharacterDataNode() |
| https://bugs.webkit.org/show_bug.cgi?id=190069 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Removed Node::offsetInCharacters() and replaced every use of it by isCharacterDataNode() |
| because their implementations are identical. |
| |
| Note that offsetInCharacters() sounds like a function which returns some kind of an offset |
| but it doesn't. It returns true when called on a CharacterData and false elsewhere. |
| |
| * accessibility/AXObjectCache.cpp: |
| (WebCore::characterOffsetsInOrder): |
| (WebCore::AXObjectCache::startOrEndCharacterOffsetForRange): |
| (WebCore::AXObjectCache::characterOffsetFromVisiblePosition): |
| * dom/CharacterData.cpp: |
| (WebCore::CharacterData::offsetInCharacters const): Deleted. |
| * dom/CharacterData.h: |
| * dom/Node.cpp: |
| (WebCore::Node::offsetInCharacters const): Deleted. |
| * dom/Node.h: |
| * dom/Position.cpp: |
| (WebCore::Position::parentAnchoredEquivalent const): |
| * dom/Position.h: |
| (WebCore::lastOffsetInNode): |
| (WebCore::minOffsetForNode): |
| (WebCore::offsetIsBeforeLastNodeOffset): |
| * dom/Range.cpp: |
| (WebCore::Range::firstNode const): |
| (WebCore::Range::pastLastNode const): |
| * dom/RangeBoundaryPoint.h: |
| (WebCore::RangeBoundaryPoint::setOffset): |
| (WebCore::RangeBoundaryPoint::setToEndOfNode): |
| * editing/Editing.cpp: |
| (WebCore::lastOffsetForEditing): |
| * editing/TextIterator.cpp: |
| (WebCore::nextInPreOrderCrossingShadowBoundaries): |
| (WebCore::TextIterator::node const): |
| (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): |
| * page/DOMSelection.cpp: |
| (WebCore::DOMSelection::extend): |
| |
| 2018-09-28 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: eliminate raw pointer usage in Fullscreen code |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| <rdar://problem/43541164> |
| |
| Reviewed by Alex Christensen. |
| |
| Two sources of raw pointers in the Fullscreen code: |
| - Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so |
| they are passed around as raw references. |
| - Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and |
| VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't |
| be ref-able. |
| |
| Make Model classes ref-able by adding ref() and deref() which call virtual refModel and |
| derefModel methods, overridden by implementing subclasses. Make every concrete observer |
| inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around |
| the client interface. |
| |
| Since every Interface class now holds a strong reference to its Model classes, and each |
| Model class holds a weak reference to all its clients, no explicit invalidate() method |
| is necessary. |
| |
| Notes: |
| |
| - Since the weak pointer methods need to be able to downcast to the abstract base class, |
| observers need to inherit publically (rather than privately) from those base classes. |
| - Media element Models should compose EventListener rather than inheriting from it, since |
| EventListener has its own RefCount. |
| - WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when |
| their underlying object is destroyed), so clients should be stored in a Vector instead. |
| - Interfaces should be given all required Refs at creation time, so that they can store |
| those parameters as Refs instead of RefPtrs. |
| |
| * platform/cocoa/PlaybackSessionInterface.h: |
| (WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted. |
| * platform/cocoa/PlaybackSessionModel.h: |
| (WebCore::PlaybackSessionModel::ref): |
| (WebCore::PlaybackSessionModel::deref): |
| (WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted. |
| * platform/cocoa/PlaybackSessionModelMediaElement.h: |
| * platform/cocoa/PlaybackSessionModelMediaElement.mm: |
| (WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement): |
| (WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement): |
| (WebCore::PlaybackSessionModelMediaElement::setMediaElement): |
| (WebCore::PlaybackSessionModelMediaElement::updateForEventName): |
| (WebCore::PlaybackSessionModelMediaElement::addClient): |
| (WebCore::PlaybackSessionModelMediaElement::removeClient): |
| (WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions): |
| (WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices): |
| (WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted. |
| * platform/cocoa/VideoFullscreenChangeObserver.h: |
| (WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted. |
| * platform/cocoa/VideoFullscreenModel.h: |
| (WebCore::VideoFullscreenModel::ref): |
| (WebCore::VideoFullscreenModel::deref): |
| (WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted. |
| * platform/cocoa/VideoFullscreenModelVideoElement.h: |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement): |
| (VideoFullscreenModelVideoElement::setVideoElement): |
| (VideoFullscreenModelVideoElement::addClient): |
| (VideoFullscreenModelVideoElement::removeClient): |
| (VideoFullscreenModelVideoElement::setHasVideo): |
| (VideoFullscreenModelVideoElement::setVideoDimensions): |
| (VideoFullscreenModelVideoElement::willEnterPictureInPicture): |
| (VideoFullscreenModelVideoElement::didEnterPictureInPicture): |
| (VideoFullscreenModelVideoElement::failedToEnterPictureInPicture): |
| (VideoFullscreenModelVideoElement::willExitPictureInPicture): |
| (VideoFullscreenModelVideoElement::didExitPictureInPicture): |
| (VideoFullscreenModelVideoElement::handleEvent): Deleted. |
| * platform/ios/PlaybackSessionInterfaceAVKit.h: |
| (WebCore::PlaybackSessionInterfaceAVKit::create): |
| (WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const): |
| (): Deleted. |
| * platform/ios/PlaybackSessionInterfaceAVKit.mm: |
| (WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit): |
| (WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit): |
| (WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted. |
| * platform/ios/VideoFullscreenInterfaceAVKit.h: |
| * platform/ios/VideoFullscreenInterfaceAVKit.mm: |
| (-[WebAVPlayerLayer layoutSublayers]): |
| (-[WebAVPlayerLayer resolveBounds]): |
| (-[WebAVPlayerLayer setVideoGravity:]): |
| (VideoFullscreenInterfaceAVKit::create): |
| (VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit): |
| (VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit): |
| (VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver): |
| (VideoFullscreenInterfaceAVKit::applicationDidBecomeActive): |
| (VideoFullscreenInterfaceAVKit::setupFullscreen): |
| (VideoFullscreenInterfaceAVKit::presentingViewController): |
| (VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): |
| (VideoFullscreenInterfaceAVKit::preparedToExitFullscreen): |
| (VideoFullscreenInterfaceAVKit::willStartPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::didStartPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::willStopPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::didStopPictureInPicture): |
| (VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): |
| (VideoFullscreenInterfaceAVKit::doSetup): |
| (VideoFullscreenInterfaceAVKit::setMode): |
| (VideoFullscreenInterfaceAVKit::clearMode): |
| (VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted. |
| (VideoFullscreenInterfaceAVKit::invalidate): Deleted. |
| * platform/ios/WebAVPlayerController.h: |
| * platform/ios/WebAVPlayerController.mm: |
| (-[WebAVPlayerController delegate]): |
| (-[WebAVPlayerController playbackSessionInterface]): |
| (-[WebAVPlayerController setPlaybackSessionInterface:]): |
| * platform/ios/WebVideoFullscreenControllerAVKit.mm: |
| (VideoFullscreenControllerContext::didCleanupFullscreen): |
| (VideoFullscreenControllerContext::addClient): |
| (VideoFullscreenControllerContext::removeClient): |
| (VideoFullscreenControllerContext::willEnterPictureInPicture): |
| (VideoFullscreenControllerContext::didEnterPictureInPicture): |
| (VideoFullscreenControllerContext::failedToEnterPictureInPicture): |
| (VideoFullscreenControllerContext::willExitPictureInPicture): |
| (VideoFullscreenControllerContext::didExitPictureInPicture): |
| (VideoFullscreenControllerContext::setUpFullscreen): |
| * platform/mac/PlaybackSessionInterfaceMac.h: |
| * platform/mac/PlaybackSessionInterfaceMac.mm: |
| (WebCore::PlaybackSessionInterfaceMac::create): |
| (WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac): |
| (WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const): |
| (WebCore::PlaybackSessionInterfaceMac::rateChanged): |
| (WebCore::PlaybackSessionInterfaceMac::beginScrubbing): |
| (WebCore::PlaybackSessionInterfaceMac::endScrubbing): |
| (WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager): |
| (WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming): |
| (WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted. |
| (WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted. |
| * platform/mac/VideoFullscreenInterfaceMac.h: |
| (WebCore::VideoFullscreenInterfaceMac::create): |
| (WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const): |
| (WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const): |
| (WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const): |
| * platform/mac/VideoFullscreenInterfaceMac.mm: |
| (-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]): |
| (-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]): |
| (-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]): |
| (WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac): |
| (WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac): |
| (WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver): |
| (WebCore::VideoFullscreenInterfaceMac::setMode): |
| (WebCore::VideoFullscreenInterfaceMac::clearMode): |
| (WebCore::VideoFullscreenInterfaceMac::invalidate): |
| (WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP): |
| (WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted. |
| * platform/mac/WebPlaybackControlsManager.mm: |
| (-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): |
| (-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]): |
| (-[WebPlaybackControlsManager togglePlayback]): |
| (-[WebPlaybackControlsManager setPlaying:]): |
| (-[WebPlaybackControlsManager isPlaying]): |
| (-[WebPlaybackControlsManager togglePictureInPicture]): |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| Drop iOS specific quirk in SettingsBase::scriptEnabledChanged() |
| https://bugs.webkit.org/show_bug.cgi?id=190077 |
| <rdar://problem/44812613> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Drop iOS specific quirk in SettingsBase::scriptEnabledChanged() that would dirty style after the |
| "JavaScriptEnabled" setting's state is toggled. I do not see a good reason to do this given that |
| scripts would not get executed until a reload. |
| |
| If we find out after dropping this that this is actually useful for some reason, then we can |
| always bring it back and consider making this non-iOS specific, as well as documenting why this |
| it is needed. |
| |
| * page/Settings.yaml: |
| * page/SettingsBase.cpp: |
| (WebCore::SettingsBase::scriptEnabledChanged): Deleted. |
| * page/SettingsBase.h: |
| |
| 2018-09-27 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Fix priority issue with multiple cookies with different level of path. |
| https://bugs.webkit.org/show_bug.cgi?id=189920 |
| |
| Reviewed by Fujii Hironori. |
| |
| When multiple cookies are stored in the database for same site, the priority of |
| multiple cookies which matches path criteria was not defined. The backend |
| implementation `sqlite` then returns the first matching result, which is the one |
| stored earlier. |
| |
| Test: http/tests/cookies/cookie-with-multiple-level-path.html |
| |
| * platform/network/curl/CookieJarDB.cpp: |
| (WebCore::CookieJarDB::searchCookies): |
| |
| 2018-09-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Use enum class in createMarkup arguments |
| https://bugs.webkit.org/show_bug.cgi?id=190028 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Replaced enums used by createMarkup with equivalent enum classes: EChildrenOnly with SerializedNodes, |
| EAbsoluteURLs with ResolveURLs, and EFragmentSerialization with SerializationSyntax. |
| |
| Also replaced the boolean convertBlocksToInlines with an enum class of the same name. |
| |
| Finally, renamed the createMarkup variant which doesn't serialize style and used for innerHTML and XMLSerializer |
| to serializeFragment. |
| |
| * dom/Element.cpp: |
| (WebCore::Element::innerHTML const): |
| (WebCore::Element::outerHTML const): |
| * dom/ShadowRoot.cpp: |
| (WebCore::ShadowRoot::innerHTML const): |
| * editing/CompositeEditCommand.cpp: |
| (WebCore::CompositeEditCommand::moveParagraphs): |
| * editing/HTMLInterchange.h: |
| (WebCore::AnnotateForInterchange): Renamed from EAnnotateForInterchange. |
| * editing/MarkupAccumulator.cpp: |
| (WebCore::MarkupAccumulator::MarkupAccumulator): |
| (WebCore::MarkupAccumulator::serializeNodes): |
| (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): |
| (WebCore::MarkupAccumulator::resolveURLIfNeeded const): |
| * editing/MarkupAccumulator.h: |
| (WebCore::MarkupAccumulator::inXMLFragmentSerialization const): |
| * editing/ReplaceRangeWithTextCommand.cpp: |
| (WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer const): |
| * editing/ReplaceSelectionCommand.cpp: |
| (WebCore::ReplaceSelectionCommand::willApplyCommand): |
| * editing/SpellingCorrectionCommand.cpp: |
| (WebCore::SpellingCorrectionCommand::inputEventDataTransfer const): |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::Editor::selectionInHTMLFormat): |
| * editing/cocoa/WebContentReaderCocoa.mm: |
| (WebCore::WebContentMarkupReader::readRTFD): |
| (WebCore::WebContentMarkupReader::readRTF): |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::Editor::writeImageToPasteboard): |
| (WebCore::Editor::writeSelectionToPasteboard): |
| * editing/markup.cpp: |
| (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): |
| (WebCore::StyledMarkupAccumulator::serializeNodes): |
| (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): |
| (WebCore::highestAncestorToWrapMarkup): |
| (WebCore::createMarkupInternal): |
| (WebCore::createMarkup): |
| (WebCore::sanitizedMarkupForFragmentInDocument): |
| (WebCore::serializeFragment): Renamed from createMarkup. This is used for innerHTML and XMLSerializer, |
| which faithfully serializes the fragment without any computed style as inline styles. |
| (WebCore::documentTypeString): |
| (WebCore::createFullMarkup): Deleted two varinats used in WebKitLegacy. |
| * editing/markup.h: |
| (WebCore::ResolveURLs): Renamed from EAbsoluteURLs. |
| (WebCore::ConvertBlocksToInlines): Added. |
| (WebCore::SerializedNodes): Renamed from EChildrenOnly. |
| (WebCore::SerializationSyntax): Renamed from EFragmentSerialization. |
| * editing/wpe/EditorWPE.cpp: |
| (WebCore::Editor::writeSelectionToPasteboard): |
| * inspector/DOMEditor.cpp: |
| * inspector/agents/InspectorDOMAgent.cpp: |
| (WebCore::InspectorDOMAgent::getOuterHTML): |
| * loader/archive/cf/LegacyWebArchive.cpp: |
| (WebCore::LegacyWebArchive::create): |
| (WebCore::LegacyWebArchive::createFromSelection): |
| * page/PageSerializer.cpp: |
| (WebCore::PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator): |
| (WebCore::PageSerializer::serializeFrame): |
| * page/win/DragControllerWin.cpp: |
| (WebCore::DragController::declareAndWriteDragImage): |
| * Source/WebCore/platform/win/PasteboardWin.cpp: |
| (WebCore::Pasteboard::writeRangeToDataObject): |
| (WebCore::Pasteboard::writeSelection): |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::send): |
| * xml/XMLSerializer.cpp: |
| (WebCore::XMLSerializer::serializeToString): |
| * xml/XSLTProcessorLibxslt.cpp: |
| (WebCore::xsltStylesheetPointer): |
| (WebCore::xmlDocPtrFromNode): |
| |
| 2018-09-27 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics |
| https://bugs.webkit.org/show_bug.cgi?id=190055 |
| <rdar://problem/44843460> |
| |
| Reviewed by Chris Dumez. |
| |
| Test: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html |
| |
| * loader/ResourceLoadStatistics.cpp: |
| (WebCore::ResourceLoadStatistics::decode): |
| Corrects legacy statistics for frames and triggers a re-classification. |
| |
| 2018-09-27 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed watchOS build fix; Fix declaration for ports which USE(ENCRYPTED_MEDIA) but don't |
| HAVE(AVCONTENTKEYSESSION). |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| |
| 2018-09-27 Justin Michaud <justin_michaud@apple.com> |
| |
| Remove duplicate CSS Properties and Values feature on status page |
| https://bugs.webkit.org/show_bug.cgi?id=189909 |
| |
| Reviewed by Simon Fraser. |
| |
| Update CSS properties and values api feature in features.json |
| |
| * features.json: |
| |
| 2018-09-27 Jer Noble <jer.noble@apple.com> |
| |
| MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor |
| https://bugs.webkit.org/show_bug.cgi?id=189951 |
| |
| Reviewed by Eric Carlson. |
| |
| In order to implement the "Resume Playback" section of EME, part 4, we need to be able |
| to query whether the MediaPlayer is still waiting for a key after attemptToDecrypt() |
| has been called. Currently this involves no behavioral changes, as all modern EME ports |
| will still just notify the media element that they no longer need keys after one has |
| been added, but future ports may be able to wait for multiple keys before reporting |
| that it is no longer waiting for keys. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerWaitingForKeyChanged): |
| (WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary): |
| (WebCore::HTMLMediaElement::mediaPlayerWaitingForKey): Deleted. |
| * html/HTMLMediaElement.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::waitingForKeyChanged): |
| (WebCore::MediaPlayer::waitingForKey const): |
| (WebCore::MediaPlayer::waitingForKey): Deleted. |
| * platform/graphics/MediaPlayer.h: |
| (WebCore::MediaPlayerClient::mediaPlayerWaitingForKeyChanged): |
| (WebCore::MediaPlayerClient::mediaPlayerWaitingForKey): Deleted. |
| * platform/graphics/MediaPlayerPrivate.h: |
| (WebCore::MediaPlayerPrivateInterface::waitingForKey const): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::attemptToDecryptWithInstance): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKey const): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKeyChanged): |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initializationDataEncountered): |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): |
| (WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::reportWaitingForKey): |
| (WebCore::MediaPlayerPrivateGStreamerBase::setWaitingForKey): |
| (WebCore::MediaPlayerPrivateGStreamerBase::waitingForKey const): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| (webkitMediaCommonEncryptionDecryptSinkEventHandler): |
| |
| 2018-09-27 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE] Fix unwanted sample erase from the decode queue |
| https://bugs.webkit.org/show_bug.cgi?id=180643 |
| |
| Reviewed by Jer Noble. |
| |
| Test: media/media-source/media-source-append-acb-no-frame-lost.html |
| |
| This bug reproduced when unordered appends were made. For instance, if |
| the application appended [0, 10) and then [20, 30), the frame at 20 |
| would be wrongly discarded from the decode queue. |
| |
| Later the application could append [10, 20) and the gap at [20, 21) |
| would persist in the decode queue, even if the frame remained in the |
| track buffer table. |
| |
| Thanks to Daniel Zhang for reporting the issue. |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::provideMediaData): |
| |
| 2018-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| URLParser should use TextEncoding through an abstract class |
| https://bugs.webkit.org/show_bug.cgi?id=190027 |
| |
| Reviewed by Andy Estes. |
| |
| URLParser uses TextEncoding for one call to encode, which is only used for encoding the query of URLs in documents with non-UTF encodings. |
| There are 3 call sites that specify the TextEncoding to use from the Document, and even those call sites use a UTF encoding most of the time. |
| All other URL parsing is done using a well-optimized path which assumes UTF-8 encoding and uses macros from ICU headers, not a TextEncoding. |
| Moving the logic in this way breaks URL and URLParser's dependency on TextEncoding, which makes it possible to use in a lower-level project |
| without also moving TextEncoding, TextCodec, TextCodecICU, ThreadGlobalData, and the rest of WebCore and JavaScriptCore. |
| |
| There is no observable change in behavior. There is now one virtual function call in a code path in URLParser that is not performance-sensitive, |
| and TextEncodings now have a vtable, which uses a few more bytes of memory total for WebKit. |
| |
| * css/parser/CSSParserContext.h: |
| (WebCore::CSSParserContext::completeURL const): |
| * css/parser/CSSParserIdioms.cpp: |
| (WebCore::completeURL): |
| * dom/Document.cpp: |
| (WebCore::Document::completeURL const): |
| * html/HTMLBaseElement.cpp: |
| (WebCore::HTMLBaseElement::href const): |
| Move the call to encodingForFormSubmission from the URL constructor to the 3 call sites that specify the encoding from the Document. |
| * loader/FormSubmission.cpp: |
| (WebCore::FormSubmission::create): |
| * loader/TextResourceDecoder.cpp: |
| (WebCore::TextResourceDecoder::encodingForURLParsing): |
| * loader/TextResourceDecoder.h: |
| * platform/URL.cpp: |
| (WebCore::URL::URL): |
| * platform/URL.h: |
| (WebCore::URLTextEncoding::~URLTextEncoding): |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::encodeNonUTF8Query): |
| (WebCore::URLParser::copyURLPartsUntil): |
| (WebCore::URLParser::URLParser): |
| (WebCore::URLParser::parse): |
| (WebCore::URLParser::encodeQuery): Deleted. |
| A pointer replaces the boolean isUTF8Encoding and the TextEncoding& which had a default value of UTF8Encoding. |
| Now the pointer being null means that we use UTF8, and the pointer being non-null means we use that encoding. |
| * platform/URLParser.h: |
| (WebCore::URLParser::URLParser): |
| * platform/text/TextEncoding.cpp: |
| (WebCore::UTF7Encoding): |
| (WebCore::TextEncoding::encodingForFormSubmissionOrURLParsing const): |
| (WebCore::ASCIIEncoding): |
| (WebCore::Latin1Encoding): |
| (WebCore::UTF16BigEndianEncoding): |
| (WebCore::UTF16LittleEndianEncoding): |
| (WebCore::UTF8Encoding): |
| (WebCore::WindowsLatin1Encoding): |
| (WebCore::TextEncoding::encodingForFormSubmission const): Deleted. |
| Use NeverDestroyed because TextEncoding now has a virtual destructor. |
| * platform/text/TextEncoding.h: |
| Rename encodingForFormSubmission to encodingForFormSubmissionOrURLParsing to make it more clear that we are intentionally using it for both. |
| |
| 2018-09-27 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups |
| https://bugs.webkit.org/show_bug.cgi?id=189980 |
| <rdar://problem/44780645> |
| |
| Reviewed by Alex Christensen. |
| |
| Test: http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html |
| |
| The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary |
| compatibility fix as explained in: |
| https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should |
| remove it. |
| |
| Most of these changes remove the parameter isTriggeredByUserGesture since it's no longer needed. |
| |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback): |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| (WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener): |
| (WebCore::ResourceLoadObserver::logWindowCreation): Deleted. |
| * loader/ResourceLoadObserver.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| Now no longer logs anything to ResourceLoadObserver. |
| |
| 2018-09-27 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236557. |
| |
| Really roll out r236557 this time because it breaks internal |
| builds. |
| |
| Reverted changeset: |
| |
| "Add VP8 support to WebRTC" |
| https://bugs.webkit.org/show_bug.cgi?id=189976 |
| https://trac.webkit.org/changeset/236557 |
| |
| 2018-09-27 Chris Dumez <cdumez@apple.com> |
| |
| Fragment should be stripped from document URL during document.open() URL propagation |
| https://bugs.webkit.org/show_bug.cgi?id=189374 |
| <rdar://problem/44282736> |
| |
| Reviewed by Alex Christensen. |
| |
| Strip the Document URL fragment during document.open() URL propagation if the entry document |
| is not the current document, as per: |
| - https://html.spec.whatwg.org/#document-open-steps (Step 11.2.) |
| |
| No new tests, rebaselined existing test. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::open): |
| |
| 2018-09-27 Youenn Fablet <youenn@apple.com> |
| |
| Add VP8 support to WebRTC |
| https://bugs.webkit.org/show_bug.cgi?id=189976 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a runtime flag to control activation of VP8 codec. |
| Bind this runtime flag to the video codec factories. |
| Test: webrtc/video-mute-vp8.html |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::createLibWebRTCPeerConnectionBackend): |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const): |
| (WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled): |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: |
| (WebCore::LibWebRTCProviderCocoa::createDecoderFactory): |
| (WebCore::LibWebRTCProviderCocoa::createEncoderFactory): |
| * testing/Internals.cpp: |
| (WebCore::Internals::resetToConsistentState): |
| Enable VP8 codec for tests. |
| |
| 2018-09-27 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebCore::deleteCookiesForHostnames() |
| https://bugs.webkit.org/show_bug.cgi?id=190040 |
| <rdar://problem/38020368> |
| |
| Reviewed by Alex Christensen. |
| |
| Update NetworkStorageSession::deleteCookiesForHostnames() to properly deal with the fact |
| that NSHTTPCookie.domain can return nil. |
| |
| * platform/network/cocoa/NetworkStorageSessionCocoa.mm: |
| (WebCore::NetworkStorageSession::deleteCookiesForHostnames): |
| |
| 2018-09-27 Youenn Fablet <youenn@apple.com> |
| |
| Use kCVPixelFormatType_420YpCbCr8Planar for capturing frames |
| https://bugs.webkit.org/show_bug.cgi?id=190014 |
| |
| Reviewed by Eric Carlson. |
| |
| On Mac, rely on the monoplanar format which can be displayed without any issue. |
| Once rendering is fixed, we should change it back to biplanar as it is closer to what libwebrtc consumes. |
| Covered by manual testing. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::avVideoCapturePixelBufferFormat): |
| (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset): |
| (WebCore::AVVideoCaptureSource::setupCaptureSession): |
| (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): |
| |
| 2018-09-27 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Support granular errors in PaymentDetailsUpdate |
| https://bugs.webkit.org/show_bug.cgi?id=189938 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented the shippingAddressErrors, payerErrors, and paymentMethodErrors properties on |
| PaymentDetailsUpdate, as specified in the Payment Request API W3C Editor's Draft of |
| 26 September 2018. |
| |
| When these errors are specified in a PaymentDetailsUpdate, map them to PaymentErrors. For |
| shippingAddressErrors and payerErrors, we use the "shippingContactInvalid" code and a |
| contact field that matches the shippingAddressError or payerError property specified. |
| |
| For paymentMethodErrors, we interpret this as a sequence of ApplePayErrors, which are |
| converted to PaymentErrors as in Apple Pay JS. |
| |
| Tests: http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html |
| http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html |
| |
| * DerivedSources.make: Removed some tabs and added new .idl files. |
| * Modules/applepay/ApplePayError.idl: Moved ApplePayErrorCode and ApplePayErrorContactField |
| into their own .idl files so they can be used in MockPaymentError. |
| * Modules/applepay/ApplePayErrorCode.h: Added. |
| * Modules/applepay/ApplePayErrorCode.idl: Added. |
| * Modules/applepay/ApplePayErrorContactField.h: Added. |
| * Modules/applepay/ApplePayErrorContactField.idl: Added. |
| |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::appendShippingContactInvalidError): Appended a "shippingContactInvalid" |
| PaymentError to errors if the message is non-null. |
| (WebCore::ApplePayPaymentHandler::computeErrors const): |
| (WebCore::ApplePayPaymentHandler::detailsUpdated): |
| (WebCore::ApplePayPaymentHandler::shippingAddressUpdated): Computed a vector of PaymentErrors |
| based on shippingAddressErrors, payerErrors, and paymentMethodErrors. |
| |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.h: |
| |
| * Modules/paymentrequest/PaymentDetailsUpdate.h: |
| * Modules/paymentrequest/PaymentDetailsUpdate.idl: Defined shippingAddressErrors, |
| payerErrors, and paymentMethodErrors. |
| |
| * Modules/paymentrequest/PaymentHandler.h: |
| * Modules/paymentrequest/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::paymentMethodChanged): |
| (WebCore::PaymentRequest::settleDetailsPromise): Passed shippingAddressErrors, payerErrors, |
| and paymentMethodErrors to the payment handler. |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| * testing/MockPaymentCoordinator.cpp: |
| (WebCore::MockPaymentCoordinator::completeShippingContactSelection): Stored errors in m_errors. |
| * testing/MockPaymentCoordinator.h: |
| * testing/MockPaymentCoordinator.idl: Added an errors attribute. |
| |
| * testing/MockPaymentError.h: Added. |
| * testing/MockPaymentError.idl: Added. |
| |
| 2018-09-27 Alex Christensen <achristensen@webkit.org> |
| |
| URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL |
| https://bugs.webkit.org/show_bug.cgi?id=189979 |
| |
| Reviewed by Youenn Fablet. |
| |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::URLWithUserTypedString): |
| (WebCore::dataForURLComponentType): |
| (WebCore::URLByRemovingComponentAndSubsequentCharacter): |
| (WebCore::URLByCanonicalizingURL): |
| (WebCore::originalURLData): |
| (WebCore::userVisibleString): |
| |
| 2018-09-27 Chris Dumez <cdumez@apple.com> |
| |
| document.open() should not propagate URLs to non-fully active documents |
| https://bugs.webkit.org/show_bug.cgi?id=189375 |
| <rdar://problem/44282755> |
| |
| Reviewed by Youenn Fablet. |
| |
| Update our document.open() to not propagate URLs to non-fully active documents, as per: |
| - https://html.spec.whatwg.org/#document-open-steps (Step 11) |
| |
| A "fully active" document is defined by at: |
| - https://html.spec.whatwg.org/#fully-active |
| |
| No new tests, rebaselined existing test. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::open): |
| (WebCore::Document::isFullyActive const): |
| * dom/Document.h: |
| * dom/Document.idl: |
| |
| 2018-09-27 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Use sentinel buffer to detect end of append |
| https://bugs.webkit.org/show_bug.cgi?id=189924 |
| |
| Reviewed by Philippe Normand. |
| |
| This patch introduces a new mechanism to detect when an append has |
| been consumed completely by the demuxer. It takes advantage of the |
| fact that buffer pushing is synchronous: both the appsrc and the |
| demuxer live in the same streaming thread. When appsrc pushes a |
| buffer, it's actually making a qtdemux function call (it calls its |
| "chain" function). The demuxer will return from that call when it has |
| finished processing that buffer; only then the control returns to |
| appsrc, that can push the next buffer. |
| |
| By pushing an additional buffer and capturing it in a probe we can |
| detect reliably when the previous buffer has been processed. |
| Because the pipeline only has one thread, at this point no more frames |
| can arrive to the appsink. |
| |
| This replaces the old method of detecting end of append which relied |
| on the `need-data` event, which is more difficult to handle correctly |
| because it fires whenever the appsrc is empty (or below a given |
| level), which also happens when a buffer has not been pushed yet or |
| in response to a flush. |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::EndOfAppendMeta::init): |
| (WebCore::EndOfAppendMeta::transform): |
| (WebCore::EndOfAppendMeta::free): |
| (WebCore::AppendPipeline::staticInitialization): |
| (WebCore::AppendPipeline::AppendPipeline): |
| (WebCore::AppendPipeline::~AppendPipeline): |
| (WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe): |
| (WebCore::AppendPipeline::handleApplicationMessage): |
| (WebCore::AppendPipeline::handleEndOfAppend): |
| (WebCore::AppendPipeline::consumeAppsinkAvailableSamples): |
| (WebCore::AppendPipeline::resetPipeline): |
| (WebCore::AppendPipeline::pushNewBuffer): |
| (WebCore::AppendPipeline::handleAppsrcNeedDataReceived): Deleted.: |
| (WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft): Deleted. |
| (WebCore::AppendPipeline::checkEndOfAppend): Deleted. |
| (WebCore::AppendPipeline::setAppsrcDataLeavingProbe): Deleted. |
| (WebCore::AppendPipeline::removeAppsrcDataLeavingProbe): Deleted. |
| (WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft): Deleted. |
| (WebCore::AppendPipeline::reportAppsrcNeedDataReceived): Deleted. |
| (WebCore::appendPipelineAppsrcDataLeaving): Deleted. |
| (WebCore::appendPipelineAppsrcNeedData): Deleted. |
| * platform/graphics/gstreamer/mse/AppendPipeline.h: |
| |
| 2018-09-27 Chris Dumez <cdumez@apple.com> |
| |
| The WebContent process should not process incoming IPC while waiting for a sync IPC reply |
| https://bugs.webkit.org/show_bug.cgi?id=184183 |
| <rdar://problem/36800576> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Drop test infrastructure for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption |
| given that this SendOption was removed from this patch. |
| |
| * page/ChromeClient.h: |
| * testing/Internals.cpp: |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-09-27 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed, GTK Ubuntu LTS build fix attempt after r236396. |
| |
| * platform/graphics/gstreamer/GStreamerCommon.h: |
| |
| 2018-09-27 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations with CSS integration on |
| https://bugs.webkit.org/show_bug.cgi?id=184819 |
| <rdar://problem/39597337> |
| |
| Reviewed by Dean Jackson. |
| |
| * page/RuntimeEnabledFeatures.h: |
| |
| 2018-09-26 YUHAN WU <yuhan_wu@apple.com> |
| |
| Video track clone cannot preserve original property |
| https://bugs.webkit.org/show_bug.cgi?id=189872 |
| <rdar://problem/44706579> |
| |
| Reviewed by Youenn Fablet. |
| |
| Fix the issue that the cloned track created by canvas.captureStream().getVideoTracks() cannot keep some attributes, such as enabled. |
| Updated a testcase expected result: |
| LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp: |
| (WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack): |
| (WebCore::CanvasCaptureMediaStreamTrack::create): |
| (WebCore::CanvasCaptureMediaStreamTrack::clone): |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: |
| * Modules/mediastream/MediaStreamTrack.h: |
| |
| 2018-09-26 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r236524. |
| |
| Broke API tests |
| |
| Reverted changeset: |
| |
| "URLWithUserTypedString should return nil for URLs deemed to |
| be invalid by WebCore::URL" |
| https://bugs.webkit.org/show_bug.cgi?id=189979 |
| https://trac.webkit.org/changeset/236524 |
| |
| 2018-09-26 Per Arne Vollan <pvollan@apple.com> |
| |
| WebVTT cue alignment broken |
| https://bugs.webkit.org/show_bug.cgi?id=190004 |
| |
| Reviewed by Eric Carlson. |
| |
| If the position of the queue is unspecified, the default value of 50 was used, which is incorrect. |
| This patch also updates the API according to https://w3c.github.io/webvtt/#the-vttcue-interface. |
| The position attribute should not be a double, but either a double or the "auto" keyword. Parts |
| of this patch is inspired by the associated code in the Chromium project. |
| |
| Test: media/track/track-cue-left-align.html |
| |
| * html/track/TextTrackCueGeneric.cpp: |
| (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): |
| (WebCore::TextTrackCueGeneric::setPosition): |
| * html/track/TextTrackCueGeneric.h: |
| * html/track/VTTCue.cpp: |
| (WebCore::VTTCueBox::applyCSSProperties): |
| (WebCore::VTTCue::initialize): |
| (WebCore::VTTCue::position const): |
| (WebCore::VTTCue::setPosition): |
| (WebCore::VTTCue::textPositionIsAuto const): |
| (WebCore::VTTCue::calculateComputedTextPosition const): |
| (WebCore::VTTCue::calculateDisplayParameters): |
| (WebCore::VTTCue::toJSON const): |
| * html/track/VTTCue.h: |
| (WebCore::VTTCue::position const): Deleted. |
| * html/track/VTTCue.idl: |
| |
| 2018-09-26 James Savage <james.savage@apple.com> |
| |
| Allow override of viewport configuration. |
| https://bugs.webkit.org/show_bug.cgi?id=188772. |
| <rdar://problem/43538892>. |
| |
| Reviewed by Simon Fraser. |
| |
| * page/Settings.yaml: |
| * page/ViewportConfiguration.cpp: |
| (WebCore::ViewportConfiguration::nativeWebpageParameters): Provide a viewport configuration |
| similar to width=device-width, with initial scale set to 1. |
| * page/ViewportConfiguration.h: |
| |
| 2018-09-26 Alex Christensen <achristensen@webkit.org> |
| |
| URLs with mismatched surrogate pairs in the host should fail to parse |
| https://bugs.webkit.org/show_bug.cgi?id=190005 |
| |
| Reviewed by Chris Dumez. |
| |
| Elsewhere in the URLParser, when we encounter mismatched surrogate pairs we use the replacement character, |
| but that just fails later on in domainToASCII, so we may as well just fail. |
| This behavior matches Chrome, but is unclear in the spec. There are no valid uses of hosts containing mismatched surrogate pairs. |
| Covered by new API tests. |
| |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::parseHostAndPort): |
| |
| 2018-09-26 Alex Christensen <achristensen@webkit.org> |
| |
| uidna_nameToASCII only needs a buffer capacity of 64 |
| https://bugs.webkit.org/show_bug.cgi?id=190006 |
| |
| Reviewed by Chris Dumez. |
| |
| This is specified in https://www.unicode.org/reports/tr46/#ToASCII |
| This is how Chrome and Firefox also behave with long unicode hosts. |
| |
| * platform/URLParser.cpp: |
| (WebCore::URLParser::domainToASCII): |
| |
| 2018-09-26 Alex Christensen <achristensen@webkit.org> |
| |
| URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL |
| https://bugs.webkit.org/show_bug.cgi?id=189979 |
| <rdar://problem/44119696> |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by an API test. |
| |
| * platform/mac/WebCoreNSURLExtras.mm: |
| (WebCore::URLWithData): |
| |
| 2018-09-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Selection should work across shadow boundary when initiated by a mouse drag |
| https://bugs.webkit.org/show_bug.cgi?id=151380 |
| <rdar://problem/24363872> |
| |
| Revert the change that I said I would from r236519. |
| |
| * editing/VisibleSelection.cpp: |
| (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): |
| |
| 2018-09-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236511. |
| https://bugs.webkit.org/show_bug.cgi?id=190008 |
| |
| It is breaking some WebRTC tests (Requested by youenn on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[MediaStream] Clean up RealtimeMediaSource settings change |
| handling" |
| https://bugs.webkit.org/show_bug.cgi?id=189998 |
| https://trac.webkit.org/changeset/236511 |
| |
| 2018-09-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Selection should work across shadow boundary when initiated by a mouse drag |
| https://bugs.webkit.org/show_bug.cgi?id=151380 |
| <rdar://problem/24363872> |
| |
| Reviewed by Antti Koivisto and Wenson Hsieh. |
| |
| This patch adds the basic support for selecting content across shadow DOM boundaries to VisibleSelection, |
| which is enough to allow users to select content across shadow DOM boundaries via a mouse drag. |
| |
| This is the first step in allowing users to select, copy and paste content across shadow DOM boundaries, |
| which is a serious user experience regression right now. The new behavior is disabled by default under |
| an interal debug feature flag: selectionAcrossShadowBoundariesEnabled. |
| |
| Like Chrome, we are not going to support selecting editable content across shadow DOM boundaries since |
| we'd have to generalize every editing commands to make that work, and there aren't any HTML editors that |
| use shadow DOM boundaries within an editable region yet. For simplicity, we also don't support extending |
| a selection out of a shadow root which resides inside an editing region. |
| |
| The keyboard based navigation & manipulation of selection as well as allowing copy & paste of content |
| across shadow DOM boundaries will be implemented by separate patches. DOMSelection will not expose this new |
| behavior either. This is tracked in the spec as https://github.com/w3c/webcomponents/issues/79 |
| |
| Tests: editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html |
| editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html |
| editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html |
| editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html |
| editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html |
| editing/selection/selection-across-shadow-boundaries-readonly-1.html |
| editing/selection/selection-across-shadow-boundaries-readonly-2.html |
| editing/selection/selection-across-shadow-boundaries-readonly-3.html |
| editing/selection/selection-across-shadow-boundaries-user-select-all-1.html |
| |
| * editing/VisibleSelection.cpp: |
| (WebCore::isInUserAgentShadowRootOrHasEditableShadowAncestor): Added. |
| (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): When the feature is enabled, |
| allow crossing shadow DOM boundaries except when either end is inside an user agent shadow root, or one of |
| its shadow includign ancestor is inside an editable region. The latter check is needed to disallow |
| an extension of a selection starting in a shadow tree inside a non-editable region inside an editable region |
| to outside the editable region. The rest of the editing code is not ready to deal with selection like that. |
| * page/Settings.yaml: Added an internal debug feature to enable this new behavior. |
| |
| 2018-09-26 Chris Dumez <cdumez@apple.com> |
| |
| Ignore-opens-during-unload counter of a parent should apply to its children during beforeunload event |
| https://bugs.webkit.org/show_bug.cgi?id=189376 |
| <rdar://problem/44282754> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Make sure the Ignore-opens-during-unload counter of a parent stays incremented while we are firing the |
| beforeunload event for its descendants, as per: |
| - https://html.spec.whatwg.org/multipage/browsing-the-web.html#prompt-to-unload-a-document |
| |
| No new tests, rebaselined existing tests. |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::shouldClose): |
| (WebCore::FrameLoader::dispatchBeforeUnloadEvent): |
| |
| 2018-09-26 Justin Fan <justin_fan@apple.com> |
| |
| WebGL 2: Adding logging to in-progress features |
| https://bugs.webkit.org/show_bug.cgi?id=189978 |
| |
| Reviewed by Jon Lee. |
| |
| Logging will allow us to better identify the most in-demand WebGL 2 features and prioritize our efforts. |
| |
| No tests as no change in WebGL functionality. |
| |
| * html/canvas/WebGL2RenderingContext.cpp: Added logging statement to every function not yet implemented. |
| (WebCore::WebGL2RenderingContext::blitFramebuffer): |
| (WebCore::WebGL2RenderingContext::framebufferTextureLayer): |
| (WebCore::WebGL2RenderingContext::invalidateFramebuffer): |
| (WebCore::WebGL2RenderingContext::invalidateSubFramebuffer): |
| (WebCore::WebGL2RenderingContext::readBuffer): |
| (WebCore::WebGL2RenderingContext::texStorage3D): |
| (WebCore::WebGL2RenderingContext::texImage2D): |
| (WebCore::WebGL2RenderingContext::texImage3D): |
| (WebCore::WebGL2RenderingContext::texSubImage2D): |
| (WebCore::WebGL2RenderingContext::texSubImage3D): |
| (WebCore::WebGL2RenderingContext::copyTexSubImage3D): |
| (WebCore::WebGL2RenderingContext::compressedTexImage2D): |
| (WebCore::WebGL2RenderingContext::compressedTexImage3D): |
| (WebCore::WebGL2RenderingContext::compressedTexSubImage3D): |
| (WebCore::WebGL2RenderingContext::getFragDataLocation): |
| (WebCore::WebGL2RenderingContext::uniform1ui): |
| (WebCore::WebGL2RenderingContext::uniform2ui): |
| (WebCore::WebGL2RenderingContext::uniform3ui): |
| (WebCore::WebGL2RenderingContext::uniform4ui): |
| (WebCore::WebGL2RenderingContext::uniform1uiv): |
| (WebCore::WebGL2RenderingContext::uniform2uiv): |
| (WebCore::WebGL2RenderingContext::uniform3uiv): |
| (WebCore::WebGL2RenderingContext::uniform4uiv): |
| (WebCore::WebGL2RenderingContext::uniformMatrix2x3fv): |
| (WebCore::WebGL2RenderingContext::uniformMatrix3x2fv): |
| (WebCore::WebGL2RenderingContext::uniformMatrix2x4fv): |
| (WebCore::WebGL2RenderingContext::uniformMatrix4x2fv): |
| (WebCore::WebGL2RenderingContext::uniformMatrix3x4fv): |
| (WebCore::WebGL2RenderingContext::uniformMatrix4x3fv): |
| (WebCore::WebGL2RenderingContext::vertexAttribI4i): |
| (WebCore::WebGL2RenderingContext::vertexAttribI4iv): |
| (WebCore::WebGL2RenderingContext::vertexAttribI4ui): |
| (WebCore::WebGL2RenderingContext::vertexAttribI4uiv): |
| (WebCore::WebGL2RenderingContext::vertexAttribIPointer): |
| (WebCore::WebGL2RenderingContext::drawRangeElements): |
| (WebCore::WebGL2RenderingContext::createQuery): |
| (WebCore::WebGL2RenderingContext::deleteQuery): |
| (WebCore::WebGL2RenderingContext::isQuery): |
| (WebCore::WebGL2RenderingContext::beginQuery): |
| (WebCore::WebGL2RenderingContext::endQuery): |
| (WebCore::WebGL2RenderingContext::getQuery): |
| (WebCore::WebGL2RenderingContext::getQueryParameter): |
| (WebCore::WebGL2RenderingContext::createSampler): |
| (WebCore::WebGL2RenderingContext::deleteSampler): |
| (WebCore::WebGL2RenderingContext::isSampler): |
| (WebCore::WebGL2RenderingContext::bindSampler): |
| (WebCore::WebGL2RenderingContext::samplerParameteri): |
| (WebCore::WebGL2RenderingContext::samplerParameterf): |
| (WebCore::WebGL2RenderingContext::getSamplerParameter): |
| (WebCore::WebGL2RenderingContext::fenceSync): |
| (WebCore::WebGL2RenderingContext::isSync): |
| (WebCore::WebGL2RenderingContext::deleteSync): |
| (WebCore::WebGL2RenderingContext::clientWaitSync): |
| (WebCore::WebGL2RenderingContext::waitSync): |
| (WebCore::WebGL2RenderingContext::getSyncParameter): |
| (WebCore::WebGL2RenderingContext::createTransformFeedback): |
| (WebCore::WebGL2RenderingContext::deleteTransformFeedback): |
| (WebCore::WebGL2RenderingContext::isTransformFeedback): |
| (WebCore::WebGL2RenderingContext::bindTransformFeedback): |
| (WebCore::WebGL2RenderingContext::beginTransformFeedback): |
| (WebCore::WebGL2RenderingContext::endTransformFeedback): |
| (WebCore::WebGL2RenderingContext::transformFeedbackVaryings): |
| (WebCore::WebGL2RenderingContext::getTransformFeedbackVarying): |
| (WebCore::WebGL2RenderingContext::pauseTransformFeedback): |
| (WebCore::WebGL2RenderingContext::resumeTransformFeedback): |
| (WebCore::WebGL2RenderingContext::bindBufferBase): |
| (WebCore::WebGL2RenderingContext::bindBufferRange): |
| (WebCore::WebGL2RenderingContext::getUniformIndices): |
| (WebCore::WebGL2RenderingContext::getUniformBlockIndex): |
| (WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter): |
| (WebCore::WebGL2RenderingContext::getActiveUniformBlockName): |
| (WebCore::WebGL2RenderingContext::uniformBlockBinding): |
| |
| 2018-09-26 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Clean up RealtimeMediaSource settings change handling |
| https://bugs.webkit.org/show_bug.cgi?id=189998 |
| <rdar://problem/44797884> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, no change in functionality. |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers): |
| (WebCore::RealtimeMediaSource::setSize): |
| (WebCore::RealtimeMediaSource::setFrameRate): |
| (WebCore::RealtimeMediaSource::setAspectRatio): |
| (WebCore::RealtimeMediaSource::setFacingMode): |
| (WebCore::RealtimeMediaSource::setVolume): |
| (WebCore::RealtimeMediaSource::setSampleRate): |
| (WebCore::RealtimeMediaSource::setSampleSize): |
| (WebCore::RealtimeMediaSource::setEchoCancellation): |
| (WebCore::RealtimeMediaSource::settingsDidChange): Deleted. |
| * platform/mediastream/RealtimeMediaSource.h: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::settingsDidChange): |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::settingsDidChange): |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::settingsDidChange): |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::settingsDidChange): |
| |
| 2018-09-26 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Ensure renderers with accelerated animations have layers |
| https://bugs.webkit.org/show_bug.cgi?id=189990 |
| <rdar://problem/44791222> |
| |
| Reviewed by Zalan Bujtas. |
| |
| We have done some work already in webkit.org/b/189784 to prevent never-ending calls to DocumentTimeline::updateAnimations(). This was due to |
| the change made for webkit.org/b/186930 where we queued calls to updateAnimations() in KeyframeEffectReadOnly::applyPendingAcceleratedActions() |
| while we were waiting for a renderer with a layer backing for a given animation target. Instead of doing this, we now ensure renderers always |
| have a layer when they have an accelerated animation applied. |
| |
| No new tests, this is already covered by webanimations/accelerated-animation-with-delay.html and webanimations/opacity-animation-yields-compositing-span.html |
| which respectively check that we can apply an accelerated animation to a non-positioned block and an inline element. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated const): This method should have been marked const all along and it is |
| now required so it can be called through RenderBox::requiresLayer() and RenderInline::requiresLayer(). |
| (WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated): Deleted. |
| * animation/DocumentTimeline.h: |
| * animation/KeyframeEffectReadOnly.cpp: |
| (WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Stop enqueuing the accelerated actions in case we're lacking a composited renderer |
| since this situation should no longer arise. |
| * rendering/RenderBox.h: Make requiresLayer() return true if this renderer's element is the target of accelerated animations. |
| * rendering/RenderBoxModelObject.cpp: |
| (WebCore::RenderBoxModelObject::hasRunningAcceleratedAnimations const): Query the document timeline, if it exists, to check that this renderer's element |
| has accelerated animations applied. |
| * rendering/RenderBoxModelObject.h: |
| * rendering/RenderInline.h: Make requiresLayer() return true if this renderer's element is the target of accelerated animations. |
| |
| 2018-09-25 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Add Mac window capture source |
| https://bugs.webkit.org/show_bug.cgi?id=189958 |
| <rdar://problem/44767616> |
| |
| Reviewed by Youenn Fablet. |
| |
| * SourcesCocoa.txt: Add WindowDisplayCaptureSourceMac. |
| * WebCore.xcodeproj/project.pbxproj: Ditto. |
| |
| * platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp: |
| (WebCore::DisplayCaptureManagerCocoa::captureDevices): Include window "devices". |
| (WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices): New. |
| (WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID): New. |
| (WebCore::DisplayCaptureManagerCocoa::captureDeviceWithPersistentID): Include window devices. |
| * platform/mediastream/mac/DisplayCaptureManagerCocoa.h: |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): |
| (WebCore::DisplayCaptureSourceCocoa::settings): Use frameSize, report surface type and |
| logical surface. |
| (WebCore::DisplayCaptureSourceCocoa::settingsDidChange): Clear m_lastSampleBuffer when size changes. |
| (WebCore::DisplayCaptureSourceCocoa::frameSize const): New, return size() or intrinsic size. |
| (WebCore::DisplayCaptureSourceCocoa::setIntrinsicSize): New. |
| (WebCore::DisplayCaptureSourceCocoa::emitFrame): generateFrame now returns a CVPixelBuffer |
| so derived classes don't have to deal with resizing/transforming. |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: |
| |
| * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp: |
| |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: |
| * platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: |
| (WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Add fixme. |
| (WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update intrinsic size when |
| width/height changes. |
| (WebCore::ScreenDisplayCaptureSourceMac::generateFrame): Return a CVPixelBuffer. |
| |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.h: Added. |
| * platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm: Added. |
| (WebCore::anyOfCGWindow): |
| (WebCore::windowDescription): |
| (WebCore::WindowDisplayCaptureSourceMac::create): |
| (WebCore::WindowDisplayCaptureSourceMac::WindowDisplayCaptureSourceMac): |
| (WebCore::WindowDisplayCaptureSourceMac::windowImage): |
| (WebCore::WindowDisplayCaptureSourceMac::generateFrame): |
| (WebCore::WindowDisplayCaptureSourceMac::pixelBufferFromCGImage): |
| (WebCore::WindowDisplayCaptureSourceMac::windowCaptureDeviceWithPersistentID): |
| (WebCore::WindowDisplayCaptureSourceMac::windowCaptureDevices): |
| |
| 2018-09-25 Justin Fan <justin_fan@apple.com> |
| |
| WebGL 2 Conformance: primitive restart and draw_primitive_restart WebGL2 sample |
| https://bugs.webkit.org/show_bug.cgi?id=189625 |
| <rdar://problem/42882620> |
| |
| Reviewed by Dean Jackson. |
| |
| Ref test: webgl/webgl2-primitive-restart.html. |
| |
| Implement support for Primitive Restart Fixed Index as expected |
| by the WebGL 2 specifications. |
| |
| * html/canvas/WebGL2RenderingContext.cpp: |
| (WebCore::WebGL2RenderingContext::validateIndexArrayConservative): |
| * html/canvas/WebGLRenderingContextBase.h: |
| (WebCore::WebGLRenderingContextBase::getLastIndex): Template that must be defined in header. |
| * html/canvas/WebGLRenderingContextBase.cpp: |
| (WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise): |
| * platform/graphics/GraphicsContext3D.h: |
| * platform/graphics/cocoa/GraphicsContext3DCocoa.mm: |
| (WebCore::GraphicsContext3D::GraphicsContext3D): |
| * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: |
| (WebCore::GraphicsContext3D::primitiveRestartIndex): |
| |
| 2018-09-25 John Wilander <wilander@apple.com> |
| |
| Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS) |
| https://bugs.webkit.org/show_bug.cgi?id=189959 |
| <rdar://problem/44767642> |
| |
| Reviewed by Chris Dumez. |
| |
| No new tests because of no code change. |
| |
| We no longer make use of CFNetwork's cookie partitioning so we should |
| change the compile-time flag to something that makes sense. This should |
| also make it easier/cleaner for other ports. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::hasStorageAccess): |
| (WebCore::Document::requestStorageAccess): |
| (WebCore::Document::setHasRequestedPageSpecificStorageAccessWithUserInteraction): |
| * dom/Document.h: |
| * loader/EmptyFrameLoaderClient.h: |
| * loader/FrameLoaderClient.h: |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution): |
| (WebCore::ResourceLoadObserver::logWindowCreation): |
| * loader/ResourceLoadObserver.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| * platform/network/NetworkStorageSession.h: |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| * platform/network/cocoa/NetworkStorageSessionCocoa.mm: |
| (WebCore::cookiesForURL): |
| (WebCore::NetworkStorageSession::setCookiesFromDOM const): |
| |
| 2018-09-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Make AuthenticatorManager |
| https://bugs.webkit.org/show_bug.cgi?id=189279 |
| <rdar://problem/44116792> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch does the following things in WebCore in order to support AuthenticatorManager: |
| 1) It separates AuthenticatorTransport from PublicKeyCredentialDescriptor such that the enum |
| can be queried from WebKit directly. |
| 2) It adds AuthenticatorAttachment to PublicKeyCredentialCreationOptions such that relying parties |
| could express their interests in cross platform authenticators. |
| 3) It enhances IPC encoder/decoder of a few such that Vectors and empty objects can be correctly coded. |
| 4) It moves the LocalAuthenticator implementation to WebKit to better integrate with AuthenticatorManager. |
| 5) It moves linking to LocalAuthentication.framework to WebKit as well. |
| 6) It temporarily bans old mock test mechanism in Internals so we could enable the new mock test mechanism in |
| WebKitTestRunner which we will have a better coverage of codes in UI Process. Those tests will be either |
| removed or ported to the new mechanism in Bug 189283. |
| 7) It also removes "using namespace WebCore" from the top namespace in some .mm files as they are reordered |
| to where they could introduce name confusions. |
| |
| Tests: http/wpt/webauthn/public-key-credential-create-failure-local.https.html |
| http/wpt/webauthn/public-key-credential-create-success-local.https.html |
| http/wpt/webauthn/public-key-credential-get-failure-local.https.html |
| http/wpt/webauthn/public-key-credential-get-success-local.https.html |
| http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html |
| |
| * CMakeLists.txt: |
| * Configurations/WebCore.xcconfig: |
| * DerivedSources.make: |
| * Modules/webauthn/AuthenticatorTransport.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * Modules/webauthn/AuthenticatorTransport.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl. |
| * Modules/webauthn/PublicKeyCredentialCreationOptions.h: |
| (WebCore::PublicKeyCredentialCreationOptions::encode const): |
| (WebCore::PublicKeyCredentialCreationOptions::decode): |
| * Modules/webauthn/PublicKeyCredentialCreationOptions.idl: |
| * Modules/webauthn/PublicKeyCredentialData.h: |
| (WebCore::PublicKeyCredentialData::encode const): |
| (WebCore::PublicKeyCredentialData::decode): |
| * Modules/webauthn/PublicKeyCredentialDescriptor.h: |
| (WebCore::PublicKeyCredentialDescriptor::encode const): |
| * Modules/webauthn/PublicKeyCredentialDescriptor.idl: |
| * Modules/webauthn/cocoa/LocalAuthenticator.mm: Removed. |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/ExceptionData.h: |
| * platform/cocoa/LocalAuthenticationSoftLink.mm: Removed. |
| * platform/cocoa/SharedBufferCocoa.mm: |
| (-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]): |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement): Deleted. |
| (VideoFullscreenModelVideoElement::~VideoFullscreenModelVideoElement): Deleted. |
| (VideoFullscreenModelVideoElement::setVideoElement): Deleted. |
| (VideoFullscreenModelVideoElement::handleEvent): Deleted. |
| (VideoFullscreenModelVideoElement::updateForEventName): Deleted. |
| (VideoFullscreenModelVideoElement::willExitFullscreen): Deleted. |
| (VideoFullscreenModelVideoElement::setVideoFullscreenLayer): Deleted. |
| (VideoFullscreenModelVideoElement::waitForPreparedForInlineThen): Deleted. |
| (VideoFullscreenModelVideoElement::requestFullscreenMode): Deleted. |
| (VideoFullscreenModelVideoElement::setVideoLayerFrame): Deleted. |
| (VideoFullscreenModelVideoElement::setVideoLayerGravity): Deleted. |
| (VideoFullscreenModelVideoElement::observedEventNames): Deleted. |
| (VideoFullscreenModelVideoElement::eventNameAll): Deleted. |
| (VideoFullscreenModelVideoElement::fullscreenModeChanged): Deleted. |
| (VideoFullscreenModelVideoElement::addClient): Deleted. |
| (VideoFullscreenModelVideoElement::removeClient): Deleted. |
| (VideoFullscreenModelVideoElement::isVisible const): Deleted. |
| (VideoFullscreenModelVideoElement::setHasVideo): Deleted. |
| (VideoFullscreenModelVideoElement::setVideoDimensions): Deleted. |
| (VideoFullscreenModelVideoElement::willEnterPictureInPicture): Deleted. |
| (VideoFullscreenModelVideoElement::didEnterPictureInPicture): Deleted. |
| (VideoFullscreenModelVideoElement::failedToEnterPictureInPicture): Deleted. |
| (VideoFullscreenModelVideoElement::willExitPictureInPicture): Deleted. |
| (VideoFullscreenModelVideoElement::didExitPictureInPicture): Deleted. |
| * platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: |
| (WebCore::hasExplicitBeginTime): |
| (WebCore::setHasExplicitBeginTime): |
| (WebCore::toCAFillModeType): |
| (WebCore::toCAValueFunctionType): |
| (WebCore::toCAMediaTimingFunction): |
| (WebCore::PlatformCAAnimationCocoa::setFromValue): |
| (WebCore::PlatformCAAnimationCocoa::setToValue): |
| (WebCore::PlatformCAAnimationCocoa::setValues): |
| (fromCAFillModeType): Deleted. |
| (fromCAValueFunctionType): Deleted. |
| (PlatformCAAnimationCocoa::create): Deleted. |
| (PlatformCAAnimationCocoa::PlatformCAAnimationCocoa): Deleted. |
| (PlatformCAAnimationCocoa::~PlatformCAAnimationCocoa): Deleted. |
| (PlatformCAAnimationCocoa::copy const): Deleted. |
| (PlatformCAAnimationCocoa::platformAnimation const): Deleted. |
| (PlatformCAAnimationCocoa::keyPath const): Deleted. |
| (PlatformCAAnimationCocoa::beginTime const): Deleted. |
| (PlatformCAAnimationCocoa::setBeginTime): Deleted. |
| (PlatformCAAnimationCocoa::duration const): Deleted. |
| (PlatformCAAnimationCocoa::setDuration): Deleted. |
| (PlatformCAAnimationCocoa::speed const): Deleted. |
| (PlatformCAAnimationCocoa::setSpeed): Deleted. |
| (PlatformCAAnimationCocoa::timeOffset const): Deleted. |
| (PlatformCAAnimationCocoa::setTimeOffset): Deleted. |
| (PlatformCAAnimationCocoa::repeatCount const): Deleted. |
| (PlatformCAAnimationCocoa::setRepeatCount): Deleted. |
| (PlatformCAAnimationCocoa::autoreverses const): Deleted. |
| (PlatformCAAnimationCocoa::setAutoreverses): Deleted. |
| (PlatformCAAnimationCocoa::fillMode const): Deleted. |
| (PlatformCAAnimationCocoa::setFillMode): Deleted. |
| (PlatformCAAnimationCocoa::setTimingFunction): Deleted. |
| (PlatformCAAnimationCocoa::copyTimingFunctionFrom): Deleted. |
| (PlatformCAAnimationCocoa::isRemovedOnCompletion const): Deleted. |
| (PlatformCAAnimationCocoa::setRemovedOnCompletion): Deleted. |
| (PlatformCAAnimationCocoa::isAdditive const): Deleted. |
| (PlatformCAAnimationCocoa::setAdditive): Deleted. |
| (PlatformCAAnimationCocoa::valueFunction const): Deleted. |
| (PlatformCAAnimationCocoa::setValueFunction): Deleted. |
| (PlatformCAAnimationCocoa::setFromValue): Deleted. |
| (PlatformCAAnimationCocoa::copyFromValueFrom): Deleted. |
| (PlatformCAAnimationCocoa::setToValue): Deleted. |
| (PlatformCAAnimationCocoa::copyToValueFrom): Deleted. |
| (PlatformCAAnimationCocoa::setValues): Deleted. |
| (PlatformCAAnimationCocoa::copyValuesFrom): Deleted. |
| (PlatformCAAnimationCocoa::setKeyTimes): Deleted. |
| (PlatformCAAnimationCocoa::copyKeyTimesFrom): Deleted. |
| (PlatformCAAnimationCocoa::setTimingFunctions): Deleted. |
| (PlatformCAAnimationCocoa::copyTimingFunctionsFrom): Deleted. |
| * platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: |
| (PlatformCAFilters::filterValueForOperation): Deleted. |
| (PlatformCAFilters::colorMatrixValueForFilter): Deleted. |
| (PlatformCAFilters::setBlendingFiltersOnLayer): Deleted. |
| (PlatformCAFilters::numAnimatedFilterProperties): Deleted. |
| (PlatformCAFilters::animatedFilterPropertyName): Deleted. |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (-[WebAnimationDelegate animationDidStart:]): |
| (-[WebAnimationDelegate animationDidStop:finished:]): |
| (-[WebAnimationDelegate setOwner:]): |
| (PlatformCALayerCocoa::create): Deleted. |
| (PlatformCALayer::platformCALayer): Deleted. |
| (mediaTimeToCurrentTime): Deleted. |
| (PlatformCALayerCocoa::setOwner): Deleted. |
| (toCAFilterType): Deleted. |
| (PlatformCALayerCocoa::layerTypeForPlatformLayer): Deleted. |
| (PlatformCALayerCocoa::PlatformCALayerCocoa): Deleted. |
| (PlatformCALayerCocoa::commonInit): Deleted. |
| (PlatformCALayerCocoa::clone const): Deleted. |
| (PlatformCALayerCocoa::~PlatformCALayerCocoa): Deleted. |
| (PlatformCALayerCocoa::animationStarted): Deleted. |
| (PlatformCALayerCocoa::animationEnded): Deleted. |
| (PlatformCALayerCocoa::setNeedsDisplay): Deleted. |
| (PlatformCALayerCocoa::setNeedsDisplayInRect): Deleted. |
| (PlatformCALayerCocoa::copyContentsFromLayer): Deleted. |
| (PlatformCALayerCocoa::superlayer const): Deleted. |
| (PlatformCALayerCocoa::removeFromSuperlayer): Deleted. |
| (PlatformCALayerCocoa::setSublayers): Deleted. |
| (PlatformCALayerCocoa::removeAllSublayers): Deleted. |
| (PlatformCALayerCocoa::appendSublayer): Deleted. |
| (PlatformCALayerCocoa::insertSublayer): Deleted. |
| (PlatformCALayerCocoa::replaceSublayer): Deleted. |
| (PlatformCALayerCocoa::adoptSublayers): Deleted. |
| (PlatformCALayerCocoa::addAnimationForKey): Deleted. |
| (PlatformCALayerCocoa::removeAnimationForKey): Deleted. |
| (PlatformCALayerCocoa::animationForKey): Deleted. |
| (PlatformCALayerCocoa::setMask): Deleted. |
| (PlatformCALayerCocoa::isOpaque const): Deleted. |
| (PlatformCALayerCocoa::setOpaque): Deleted. |
| (PlatformCALayerCocoa::bounds const): Deleted. |
| (PlatformCALayerCocoa::setBounds): Deleted. |
| (PlatformCALayerCocoa::position const): Deleted. |
| (PlatformCALayerCocoa::setPosition): Deleted. |
| (PlatformCALayerCocoa::anchorPoint const): Deleted. |
| (PlatformCALayerCocoa::setAnchorPoint): Deleted. |
| (PlatformCALayerCocoa::transform const): Deleted. |
| (PlatformCALayerCocoa::setTransform): Deleted. |
| (PlatformCALayerCocoa::sublayerTransform const): Deleted. |
| (PlatformCALayerCocoa::setSublayerTransform): Deleted. |
| (PlatformCALayerCocoa::isHidden const): Deleted. |
| (PlatformCALayerCocoa::setHidden): Deleted. |
| (PlatformCALayerCocoa::contentsHidden const): Deleted. |
| (PlatformCALayerCocoa::setContentsHidden): Deleted. |
| (PlatformCALayerCocoa::userInteractionEnabled const): Deleted. |
| (PlatformCALayerCocoa::setUserInteractionEnabled): Deleted. |
| (PlatformCALayerCocoa::setBackingStoreAttached): Deleted. |
| (PlatformCALayerCocoa::backingStoreAttached const): Deleted. |
| (PlatformCALayerCocoa::geometryFlipped const): Deleted. |
| (PlatformCALayerCocoa::setGeometryFlipped): Deleted. |
| (PlatformCALayerCocoa::isDoubleSided const): Deleted. |
| (PlatformCALayerCocoa::setDoubleSided): Deleted. |
| (PlatformCALayerCocoa::masksToBounds const): Deleted. |
| (PlatformCALayerCocoa::setMasksToBounds): Deleted. |
| (PlatformCALayerCocoa::acceleratesDrawing const): Deleted. |
| (PlatformCALayerCocoa::setAcceleratesDrawing): Deleted. |
| (PlatformCALayerCocoa::wantsDeepColorBackingStore const): Deleted. |
| (PlatformCALayerCocoa::setWantsDeepColorBackingStore): Deleted. |
| (PlatformCALayerCocoa::supportsSubpixelAntialiasedText const): Deleted. |
| (PlatformCALayerCocoa::setSupportsSubpixelAntialiasedText): Deleted. |
| (PlatformCALayerCocoa::hasContents const): Deleted. |
| (PlatformCALayerCocoa::contents const): Deleted. |
| (PlatformCALayerCocoa::setContents): Deleted. |
| (PlatformCALayerCocoa::setContentsRect): Deleted. |
| (PlatformCALayerCocoa::setMinificationFilter): Deleted. |
| (PlatformCALayerCocoa::setMagnificationFilter): Deleted. |
| (PlatformCALayerCocoa::backgroundColor const): Deleted. |
| (PlatformCALayerCocoa::setBackgroundColor): Deleted. |
| (PlatformCALayerCocoa::setBorderWidth): Deleted. |
| (PlatformCALayerCocoa::setBorderColor): Deleted. |
| (PlatformCALayerCocoa::opacity const): Deleted. |
| (PlatformCALayerCocoa::setOpacity): Deleted. |
| (PlatformCALayerCocoa::setFilters): Deleted. |
| (PlatformCALayerCocoa::copyFiltersFrom): Deleted. |
| (PlatformCALayerCocoa::filtersCanBeComposited): Deleted. |
| (PlatformCALayerCocoa::setBlendMode): Deleted. |
| (PlatformCALayerCocoa::setName): Deleted. |
| (PlatformCALayerCocoa::setSpeed): Deleted. |
| (PlatformCALayerCocoa::setTimeOffset): Deleted. |
| (PlatformCALayerCocoa::contentsScale const): Deleted. |
| (PlatformCALayerCocoa::setContentsScale): Deleted. |
| (PlatformCALayerCocoa::cornerRadius const): Deleted. |
| (PlatformCALayerCocoa::setCornerRadius): Deleted. |
| (PlatformCALayerCocoa::setEdgeAntialiasingMask): Deleted. |
| (PlatformCALayerCocoa::shapeRoundedRect const): Deleted. |
| (PlatformCALayerCocoa::setShapeRoundedRect): Deleted. |
| (PlatformCALayerCocoa::shapeWindRule const): Deleted. |
| (PlatformCALayerCocoa::setShapeWindRule): Deleted. |
| (PlatformCALayerCocoa::shapePath const): Deleted. |
| (PlatformCALayerCocoa::setShapePath): Deleted. |
| (PlatformCALayerCocoa::requiresCustomAppearanceUpdateOnBoundsChange const): Deleted. |
| (PlatformCALayerCocoa::updateCustomAppearance): Deleted. |
| (layerContentsFormat): Deleted. |
| (PlatformCALayerCocoa::updateContentsFormat): Deleted. |
| (PlatformCALayerCocoa::tiledBacking): Deleted. |
| (PlatformCALayer::isWebLayer): Deleted. |
| (PlatformCALayer::setBoundsOnMainThread): Deleted. |
| (PlatformCALayer::setPositionOnMainThread): Deleted. |
| (PlatformCALayer::setAnchorPointOnMainThread): Deleted. |
| (PlatformCALayer::collectRectsToPaint): Deleted. |
| (PlatformCALayer::drawLayerContents): Deleted. |
| (PlatformCALayer::frameForLayer): Deleted. |
| (PlatformCALayerCocoa::createCompatibleLayer const): Deleted. |
| (PlatformCALayerCocoa::enumerateRectsBeingDrawn): Deleted. |
| (PlatformCALayerCocoa::backingStoreBytesPerPixel const): Deleted. |
| (PlatformCALayerCocoa::avPlayerLayer const): Deleted. |
| * platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm: |
| (-[WebLightSystemBackdropLayer init]): |
| (-[WebDarkSystemBackdropLayer init]): |
| * platform/graphics/ca/cocoa/WebTiledBackingLayer.mm: |
| (-[WebTiledBackingLayer createTileController:]): |
| (-[WebTiledBackingLayer setNeedsDisplayInRect:]): |
| (-[WebTiledBackingLayer setBorderColor:]): |
| * testing/Internals.cpp: |
| (WebCore::Internals::Internals): |
| |
| 2018-09-25 YUHAN WU <yuhan_wu@apple.com> |
| |
| Implement MediaStreamTrack Content Hints |
| https://bugs.webkit.org/show_bug.cgi?id=189262 |
| <rdar://problem/44101773> |
| |
| Reviewed by Youenn Fablet. |
| |
| contentHint is a new attribute which is stored in MediaStreamTrackPrivate. |
| https://w3c.github.io/mst-content-hint/ |
| |
| Covered by tests: |
| LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html |
| LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/idlharness.window.html |
| |
| * Modules/mediastream/MediaStreamTrack.cpp: |
| (WebCore::MediaStreamTrack::contentHint const): |
| (WebCore::MediaStreamTrack::setContentHint): |
| * Modules/mediastream/MediaStreamTrack.h: |
| * Modules/mediastream/MediaStreamTrack.idl: |
| * platform/mediastream/MediaStreamTrackPrivate.cpp: |
| (WebCore::MediaStreamTrackPrivate::setContentHint): |
| (WebCore::MediaStreamTrackPrivate::clone): |
| * platform/mediastream/MediaStreamTrackPrivate.h: |
| (WebCore::MediaStreamTrackPrivate::contentHint): |
| |
| 2018-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Allow for suffixes to com.apple.WebKit.WebContent |
| https://bugs.webkit.org/show_bug.cgi?id=189972 |
| |
| Reviewed by Chris Dumez. |
| |
| * platform/cocoa/RuntimeApplicationChecksCocoa.mm: |
| (WebCore::isInWebProcess): |
| |
| 2018-09-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Fix the open source iOS 12 build after r236445 |
| https://bugs.webkit.org/show_bug.cgi?id=189953 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove soft-linking macros from several sources in WebCore, and instead import UIKitSoftLink from PAL. This |
| allows different WebCore sources to soft-link UIKit (and its classes and symbols) without reimplementing |
| WebCore::UIKitLibrary. |
| |
| * editing/cocoa/FontAttributesCocoa.mm: |
| * editing/cocoa/FontShadowCocoa.mm: |
| (WebCore::FontShadow::createShadow const): |
| * platform/graphics/cocoa/ColorCocoa.mm: |
| (WebCore::platformColor): |
| * platform/ios/PlatformScreenIOS.mm: |
| (WebCore::screenIsMonochrome): |
| (WebCore::screenHasInvertedColors): |
| (WebCore::screenSize): |
| (WebCore::availableScreenSize): |
| (WebCore::screenScaleFactor): |
| |
| 2018-09-25 Thibault Saunier <tsaunier@igalia.com> |
| |
| [WPE][GTK][WebRTC] Fixup VP8 encoding support |
| https://bugs.webkit.org/show_bug.cgi?id=189921 |
| |
| Previous leak fixing commit introduced a regression in |
| the way the encoded buffer were prepared in the default |
| GStreamerVideoEncoder::Fragmentize implementation (when |
| encoding with VP8 basically). |
| |
| + Fix a build warning in the decoder. |
| + Fix some wrong object members namings. |
| + Properly move the caps reference when setting restriction caps. |
| + Do not raise a GStreamer error when GStreamerVideoEncoder::OnEncodedImage |
| fails - this might be a network issue and other encoders do not consider that |
| fatal. |
| + Use GstMappedBuffer where appropriate. |
| |
| Reviewed by Philippe Normand. |
| |
| * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: |
| * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: |
| (WebCore::GStreamerVideoEncoder::InitEncode): |
| (WebCore::GStreamerVideoEncoder::newSampleCallback): |
| (WebCore::GStreamerVideoEncoder::Fragmentize): |
| (WebCore::GStreamerVideoEncoder::SetRestrictionCaps): |
| |
| 2018-09-25 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Update constraints supported by getDisplayMedia |
| https://bugs.webkit.org/show_bug.cgi?id=189930 |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, updated http/tests/media/media-stream/get-display-media-prompt.html. |
| |
| * Modules/mediastream/MediaDevices.cpp: |
| (WebCore::MediaDevices::getDisplayMedia const): Ignore audio constraints. |
| |
| * Modules/mediastream/UserMediaRequest.cpp: |
| (WebCore::hasInvalidGetDisplayMediaConstraint): Check for invalid constraints. |
| (WebCore::UserMediaRequest::start): Check for invalid constraints. |
| (WebCore::UserMediaRequest::deny): Support new error. |
| * Modules/mediastream/UserMediaRequest.h: |
| |
| * platform/mediastream/RealtimeMediaSourceCenter.cpp: |
| (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): |
| |
| 2018-09-25 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [EME] Fix variable name that should have gone in r236317 |
| https://bugs.webkit.org/show_bug.cgi?id=189944 |
| |
| Reviewed by Jer Noble. |
| |
| m_cdmInstanceClientWeakPtrFactory becomes |
| m_cdmInstanceSessionClientWeakPtrFactory as its type changes to |
| CDMInstanceSessionClient. |
| |
| * Modules/encryptedmedia/MediaKeySession.cpp: |
| (WebCore::MediaKeySession::MediaKeySession): |
| * Modules/encryptedmedia/MediaKeySession.h: |
| |
| 2018-09-25 Simon Fraser <simon.fraser@apple.com> |
| |
| Clean up code around RenderLayer's "has accelerated scrolling" functions |
| https://bugs.webkit.org/show_bug.cgi?id=189932 |
| |
| Reviewed by Zalan Bujtas. |
| |
| RenderLayer had: |
| |
| bool hasAcceleratedTouchScrolling() |
| bool hasTouchScrollableOverflow() |
| bool usesAcceleratedScrolling() |
| bool usesCompositedScrolling() |
| bool usesAsyncScrolling() |
| |
| which are hard to keep in your head. Removed usesAcceleratedScrolling() since it just returns hasTouchScrollableOverflow(). |
| Renamed hasAcceleratedTouchScrolling() to canUseAcceleratedTouchScrolling() to indicate that it just looks at style, |
| not whether layout has given the layer scrollable overflow yet. Tidy up some #ifdefs. |
| |
| usesCompositedScrolling() and usesAsyncScrolling() are ScrollableArea overrides, and |
| look at backing layers, so require that compositing has run already. Note this in comments. |
| |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::canUseAcceleratedTouchScrolling const): |
| (WebCore::RenderLayer::hasTouchScrollableOverflow const): |
| (WebCore::RenderLayer::handleTouchEvent): |
| (WebCore::RenderLayer::usesAsyncScrolling const): |
| (WebCore::RenderLayer::showsOverflowControls const): |
| (WebCore::RenderLayer::calculateClipRects const): |
| (WebCore::RenderLayer::hasAcceleratedTouchScrolling const): Deleted. |
| (WebCore::RenderLayer::usesAcceleratedScrolling const): Deleted. |
| * rendering/RenderLayer.h: |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling): |
| (WebCore::RenderLayerBacking::updateConfiguration): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::useCoordinatedScrollingForLayer const): |
| (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const): |
| |
| 2018-09-24 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE |
| https://bugs.webkit.org/show_bug.cgi?id=189733 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests (No behavior change). |
| |
| * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: |
| * platform/graphics/cpu/arm/filters/FELightingNEON.h: |
| * platform/graphics/filters/FELighting.cpp: |
| (WebCore::FELighting::platformApply): |
| * platform/graphics/filters/FELighting.h: |
| |
| 2018-09-24 John Wilander <wilander@apple.com> |
| |
| Cap lifetime of persistent cookies created client-side through document.cookie |
| https://bugs.webkit.org/show_bug.cgi?id=189933 |
| <rdar://problem/44741888> |
| |
| Reviewed by Chris Dumez. |
| |
| Test: http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html |
| |
| As pointed out in https://github.com/mikewest/http-state-tokens: |
| |
| 1) Cookies are available to JavaScript by default via document.cookie, which |
| enables a smooth upgrade from one-time XSS to theft of persistent credentials |
| and also makes cookies available to Spectre-like attacks on memory. |
| |
| 2) Though the HttpOnly attribute was introduced well over a decade ago, only |
| ~8.31% of Set-Cookie operations use it today (stats from Chrome). We need |
| developer incentives to put proper protections in place. |
| |
| 3) The median (uncompressed) Cookie request header is 409 bytes, while the 90th |
| percentile is 1,589 bytes, the 95th 2,549 bytes, the 99th 4,601 bytes, and |
| ~0.1% of Cookie headers are over 10kB (stats from Chrome). This is bad for load |
| performance. |
| |
| In addition to this, third-party scripts running in first-party contexts can |
| read user data through document.cookie and even store cross-site tracking data |
| in them. |
| |
| Authentication cookies should be HttpOnly and thus not be affected by |
| restrictions to document.cookie. Cookies that persist for a long time should |
| be Secure, HttpOnly, and SameSite to provide good security and privacy. |
| |
| By capping the lifetime of persistent cookies set through document.cookie we |
| embark on a journey towards better cookie management on the web. |
| |
| * platform/network/cocoa/NetworkStorageSessionCocoa.mm: |
| (WebCore::filterCookies): |
| Now caps the life time of persistent cookies to one week (seven days). |
| * testing/Internals.cpp: |
| (WebCore::Internals::getCookies const): |
| New test function to get to cookie meta data such as expiry. |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-09-24 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove filterRes parameter from SVG filters |
| https://bugs.webkit.org/show_bug.cgi?id=129565 |
| <rdar://problem/44714340> |
| |
| Reviewed by Dean Jackson. |
| |
| Remove support for the "filterRes" attribute on SVG filters. It's marked as |
| deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres |
| and no longer supported by Chrome or Firefox. |
| |
| Removed existing filterRes tests, added new test checking that it has no effect. |
| |
| Tests: svg/filters/filterRes-is-noop.svg |
| |
| * rendering/svg/RenderSVGResourceFilter.cpp: |
| (WebCore::RenderSVGResourceFilter::applyResource): |
| * svg/SVGElement.cpp: |
| (WebCore::SVGElement::animatableAttributeForName): |
| * svg/SVGFilterElement.cpp: |
| (WebCore::SVGFilterElement::registerAttributes): |
| (WebCore::SVGFilterElement::parseAttribute): |
| (WebCore::SVGFilterElement::filterResXIdentifier): Deleted. |
| (WebCore::SVGFilterElement::filterResYIdentifier): Deleted. |
| (WebCore::SVGFilterElement::setFilterRes): Deleted. |
| * svg/SVGFilterElement.h: |
| * svg/SVGFilterElement.idl: |
| * svg/svgattrs.in: |
| |
| 2018-09-24 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Don't cause a crash even when some IDL attribute is missing CEReactions |
| https://bugs.webkit.org/show_bug.cgi?id=189937 |
| |
| Reviewed by Simon Fraser. |
| |
| Replaced release assertions in ElementQueue::add and ElementQueue::invokeAll by debug assertions |
| since a missing CEReactions resulting in a crash is a terrible user experience. |
| |
| Also made the iteration in invokeAll safe when more elements were added to m_elements. |
| |
| No new tests since we would still hit debug assertions, and this behavior should only come up |
| when some IDL attribute is erroneously missing CEReactions. |
| |
| * dom/CustomElementReactionQueue.cpp: |
| (WebCore::CustomElementReactionQueue::ElementQueue::add): |
| (WebCore::CustomElementReactionQueue::ElementQueue::invokeAll): |
| |
| 2018-09-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Refactor Editor::fontAttributesForSelectionStart to be platform-agnostic |
| https://bugs.webkit.org/show_bug.cgi?id=189918 |
| Work towards <rdar://problem/44648705> |
| |
| Reviewed by Tim Horton. |
| |
| Refactors the functionality in Editor::fontAttributesForSelectionStart to not be Cocoa-only. Rename this to |
| fontAttributesAtSelectionStart (to be consistent with `EditingStyle::styleAtSelectionStart`) and move it from |
| EditorCocoa.mm to Editor.cpp; instead of creating and populating an NSDictionary with font attribute |
| information, create and populate a new `FontAttributes` struct that contains the same information. Cocoa clients |
| in WebKitLegacy may then create an `NSDictionary` as needed from the `FontAttributes`. |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * editing/Editor.cpp: |
| (WebCore::Editor::platformFontAttributesAtSelectionStart const): |
| |
| Add a hook to allow platforms to supply additional information in FontAttributes. On Cocoa, this adds a UIFont |
| or NSFont to FontAttributes; otherwise, this is a no-op. |
| |
| (WebCore::Editor::fontAttributesAtSelectionStart const): |
| * editing/Editor.h: |
| * editing/FontAttributeChanges.cpp: |
| (WebCore::cssValueListForShadow): |
| * editing/FontAttributeChanges.h: |
| (): Deleted. |
| (WebCore::FontShadow::encode const): Deleted. |
| (WebCore::FontShadow::decode): Deleted. |
| * editing/FontAttributes.h: Added. |
| |
| Introduce a new struct that contains font attribute information. May be converted into an NSDictionary for use |
| by Cocoa clients in WebKitLegacy and WebKit. In a future patch, this will become serializable over IPC for use |
| in WebKit2. |
| |
| * editing/FontShadow.h: Added. |
| |
| Move FontShadow out into a separate header file, included in `FontAttributeChanges.h` and `FontAttributes.h`. |
| |
| (WebCore::FontShadow::encode const): |
| (WebCore::FontShadow::decode): |
| * editing/cocoa/EditorCocoa.mm: |
| |
| Add a helper function to convert a WebCore::Color to either `UIColor` on iOS or `NSColor` when AppKit is being |
| used. |
| |
| (WebCore::Editor::platformFontAttributesAtSelectionStart const): |
| (WebCore::Editor::getTextDecorationAttributesRespectingTypingStyle const): Deleted. |
| |
| Remove a helper function that was only used to compute text decoration attributes in |
| fontAttributesForSelectionStart. |
| |
| (WebCore::Editor::fontAttributesForSelectionStart const): Deleted. |
| * editing/cocoa/FontAttributesCocoa.mm: Added. |
| (WebCore::FontAttributes::createDictionary const): |
| * editing/cocoa/FontShadowCocoa.mm: Added. |
| (WebCore::FontShadow::createShadow const): |
| * editing/cocoa/HTMLConverter.mm: |
| (_webKitBundle): |
| (HTMLConverter::_colorForElement): |
| (_platformColor): Deleted. |
| |
| Adopt platformColor(). |
| |
| * platform/graphics/cocoa/ColorCocoa.h: Added. |
| * platform/graphics/cocoa/ColorCocoa.mm: Added. |
| (WebCore::platformColor): |
| * platform/graphics/metal/GPURenderPassDescriptorMetal.mm: |
| |
| Build fix due to changes in unified sources. |
| |
| * platform/mac/WebCoreNSFontManagerExtras.mm: |
| (WebCore::computedFontAttributeChanges): |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| |
| More build fixes due to changes in unified sources. |
| |
| 2018-09-24 Jer Noble <jer.noble@apple.com> |
| |
| SharedBuffer should have an equality test |
| https://bugs.webkit.org/show_bug.cgi?id=189919 |
| |
| Reviewed by Alex Christensen. |
| |
| Test: TestWebKitAPI SharedBuffer.isEqualTo. |
| |
| * platform/SharedBuffer.cpp: |
| * platform/SharedBuffer.h: |
| (WebCore::operator==): |
| (WebCore::operator!=): |
| |
| 2018-09-24 Ryosuke Niwa <rniwa@webkit.org> |
| |
| imported/w3c/web-platform-tests/shadow-dom/slotchange.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=167652 |
| |
| Reviewed by Saam Barati. |
| |
| The bug appears to be caused by the JS wrappers of slot elements getting prematurely collected. |
| Deployed GCReachableRef introduced in r236376 to fix the bug. |
| |
| Test: fast/shadow-dom/signal-slot-list-retains-js-wrappers.html |
| |
| * dom/MutationObserver.cpp: |
| (WebCore::signalSlotList): |
| (WebCore::MutationObserver::enqueueSlotChangeEvent): |
| (WebCore::MutationObserver::notifyMutationObservers): |
| |
| 2018-09-24 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assert when using paper-textarea due to autocorrect IDL attribute missing CEReactions |
| https://bugs.webkit.org/show_bug.cgi?id=174629 |
| <rdar://problem/33407620> |
| |
| Reviewed by Simon Fraser. |
| |
| The bug was caused by autocorrect and autocapitalize IDL attributes missing CEReactions. |
| |
| Test: fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash.html |
| |
| * html/HTMLElement.idl: |
| |
| 2018-09-24 Chris Dumez <cdumez@apple.com> |
| |
| No-op document.open() calls should not have any side effects |
| https://bugs.webkit.org/show_bug.cgi?id=189373 |
| <rdar://problem/44282702> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Update document.open() implementation to match the specification [1] more closely. |
| In particular, URLs updates should happen much later, at step 11. They were happening |
| too early and would cause side effects when returning early. |
| |
| [1] https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document-open-steps |
| |
| No new tests, rebaselined existing test. |
| |
| * dom/Document.cpp: |
| (WebCore::Document::open): |
| |
| 2018-09-24 Daniel Bates <dabates@apple.com> |
| |
| Include more headers in IOSurface.mm, PixelBufferResizer.{h, mm} |
| https://bugs.webkit.org/show_bug.cgi?id=189928 |
| |
| Reviewed by Andy Estes. |
| |
| Make building IOSurface.mm and PixelBufferResizer.mm deterministic regardless of |
| which bundle of unified sources they are built in. |
| |
| * platform/graphics/cocoa/IOSurface.mm: Include headers HostWindow.h and PlatformScreen.h |
| since we make use of functionality from these headers. |
| * platform/graphics/cv/PixelBufferResizer.h: Include header IntSize.h since |
| we need the size of an IntSize for m_size. |
| * platform/graphics/cv/PixelBufferResizer.mm: Include header Logging.h since |
| this file makes use of logging facilities. Also substitute #import for #include |
| while I am here since this file is an Objective-C++ file. |
| |
| 2018-09-24 Andy Estes <aestes@apple.com> |
| |
| [Payment Request] Events cleanup |
| https://bugs.webkit.org/show_bug.cgi?id=189925 |
| |
| Reviewed by Simon Fraser. |
| |
| 1. Constructed MerchantValidationEvents (and ApplePayValidateMerchantEvents) with rvalue |
| references to validationURLs. |
| 2. Instead of MerchantValidationEvent and PaymentRequestUpdateEvent having a |
| RefPtr<PaymentRequest>, downcasted their target to a PaymentRequest. Trusted versions of |
| these events are always dispatched to a PaymentRequest object. |
| 3. Defined MerchantValidationEventInit in MerchantValidationEvent.idl instead of having a |
| separate .idl and .h for this dictionary. |
| |
| No new tests. No change in behavior. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/applepay/ApplePaySession.cpp: |
| (WebCore::ApplePaySession::validateMerchant): |
| * Modules/applepay/ApplePaySession.h: |
| * Modules/applepay/ApplePayValidateMerchantEvent.cpp: |
| (WebCore::ApplePayValidateMerchantEvent::ApplePayValidateMerchantEvent): |
| * Modules/applepay/ApplePayValidateMerchantEvent.h: |
| (WebCore::ApplePayValidateMerchantEvent::create): |
| * Modules/applepay/PaymentCoordinator.cpp: |
| (WebCore::PaymentCoordinator::validateMerchant): |
| * Modules/applepay/PaymentCoordinator.h: |
| * Modules/applepay/PaymentSession.h: |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp: |
| (WebCore::ApplePayPaymentHandler::validateMerchant): |
| * Modules/applepay/paymentrequest/ApplePayPaymentHandler.h: |
| * Modules/paymentrequest/MerchantValidationEvent.cpp: |
| (WebCore::MerchantValidationEvent::create): |
| (WebCore::MerchantValidationEvent::MerchantValidationEvent): |
| (WebCore::MerchantValidationEvent::complete): |
| * Modules/paymentrequest/MerchantValidationEvent.h: |
| * Modules/paymentrequest/MerchantValidationEvent.idl: |
| * Modules/paymentrequest/MerchantValidationEventInit.h: Removed. |
| * Modules/paymentrequest/MerchantValidationEventInit.idl: Removed. |
| * Modules/paymentrequest/PaymentMethodChangeEvent.cpp: |
| (WebCore::PaymentMethodChangeEvent::PaymentMethodChangeEvent): |
| * Modules/paymentrequest/PaymentMethodChangeEvent.h: |
| * Modules/paymentrequest/PaymentRequest.cpp: |
| (WebCore::PaymentRequest::shippingAddressChanged): |
| (WebCore::PaymentRequest::shippingOptionChanged): |
| (WebCore::PaymentRequest::paymentMethodChanged): |
| * Modules/paymentrequest/PaymentRequest.h: |
| (isType): |
| * Modules/paymentrequest/PaymentRequestUpdateEvent.cpp: |
| (WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent): |
| (WebCore::PaymentRequestUpdateEvent::updateWith): |
| * Modules/paymentrequest/PaymentRequestUpdateEvent.h: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * dom/EventTarget.cpp: |
| (WebCore::EventTarget::isPaymentRequest const): |
| * dom/EventTarget.h: |
| |
| 2018-09-24 Daniel Bates <dabates@apple.com> |
| |
| Separate Mac and iOS implementation of windowsKeyCodeForCharCode() |
| https://bugs.webkit.org/show_bug.cgi?id=189898 |
| |
| Reviewed by Tim Horton. |
| |
| Extract the Mac and iOS implementations into a windowsKeyCodeForCharCode() defined in file |
| KeyEventMac.mm and file KeyEventIOS, respectively. |
| |
| Mac and iOS have significant differences in how they represent function keys. It is not worthwhile |
| to share windowsKeyCodeForCharCode() between them given these differences. On Mac function keys |
| are represented by a char code in the range 0xF700-0xF8FF. On iOS these keys may not have a unique |
| char code (e.g. F1 = 0x10 = F10) and must be identified either by special string (e.g. UIKeyInputUpArrow) |
| or key code. |
| |
| * platform/cocoa/KeyEventCocoa.mm: |
| (WebCore::windowsKeyCodeForCharCode): Deleted. |
| * platform/ios/KeyEventIOS.mm: |
| (WebCore::windowsKeyCodeForCharCode): Added. Remove the handling of NS*FunctionKey char codes |
| as function keys are not represented using them as of iOS 12. |
| * platform/mac/KeyEventMac.mm: |
| (WebCore::windowsKeyCodeForCharCode): Added. |
| |
| 2018-09-21 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove the old "AcceleratedCompositingForOverflowScroll" code |
| https://bugs.webkit.org/show_bug.cgi?id=189870 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The "AcceleratedCompositingForOverflowScroll" code was added to allow overflow:scroll to use |
| composited scrolling if an overflow:scroll could be made a stacking context without affecting |
| z-order. We need overflow:scroll to be accelerated always, so a different approach is needed. |
| Remove this old code (unused by any platform?) to make working on new code easier. |
| |
| * page/Settings.yaml: |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::RenderLayer): |
| (WebCore::RenderLayer::setHasVisibleContent): |
| (WebCore::RenderLayer::updateDescendantDependentFlags): |
| (WebCore::RenderLayer::dirty3DTransformedDescendantStatus): |
| (WebCore::RenderLayer::stackingContext const): |
| (WebCore::compositingContainer): |
| (WebCore::RenderLayer::addChild): |
| (WebCore::RenderLayer::removeChild): |
| (WebCore::RenderLayer::hasAcceleratedTouchScrolling const): |
| (WebCore::RenderLayer::usesAcceleratedScrolling const): |
| (WebCore::adjustedScrollDelta): |
| (WebCore::RenderLayer::updateCompositingLayersAfterScroll): |
| (WebCore::RenderLayer::updateScrollInfoAfterLayout): |
| (WebCore::RenderLayer::enclosingFragmentedFlowAncestor const): |
| (WebCore::RenderLayer::calculateClipRects const): |
| (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled const): Deleted. |
| (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder): Deleted. |
| (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive): Deleted. |
| (WebCore::RenderLayer::positionNewlyCreatedOverflowControls): Deleted. |
| (WebCore::RenderLayer::canBeStackingContainer const): Deleted. |
| (WebCore::RenderLayer::stackingContainer const): Deleted. |
| (WebCore::RenderLayer::needsCompositedScrolling const): Deleted. |
| (WebCore::RenderLayer::updateNeedsCompositedScrolling): Deleted. |
| * rendering/RenderLayer.h: |
| (WebCore::RenderLayer::clearZOrderLists): |
| (WebCore::RenderLayer::updateZOrderLists): |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::updateAfterLayout): |
| (WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const): |
| (WebCore::RenderLayerBacking::updateGeometry): |
| (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer const): |
| (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer const): |
| (WebCore::RenderLayerBacking::requiresScrollCornerLayer const): |
| (WebCore::RenderLayerBacking::compositingOpacity const): |
| (WebCore::traverseVisibleNonCompositedDescendantLayers): |
| (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers const): Deleted. |
| * rendering/RenderLayerBacking.h: |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayersAfterFlush): |
| (WebCore::RenderLayerCompositor::updateCustomLayersAfterFlush): |
| (WebCore::styleChangeRequiresLayerRebuild): |
| (WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer const): |
| (WebCore::RenderLayerCompositor::computeCompositingRequirements): |
| (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): |
| (WebCore::RenderLayerCompositor::requiresCompositingLayer const): |
| (WebCore::RenderLayerCompositor::requiresOwnBackingStore const): |
| (WebCore::RenderLayerCompositor::reasonsForCompositing const): |
| (WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility const): |
| (WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const): |
| (WebCore::RenderLayerCompositor::requiresCompositingForPosition const): |
| (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const): |
| (WebCore::RenderLayerCompositor::requiresCompositingForScrolling const): Deleted. |
| * rendering/RenderLayerCompositor.h: |
| |
| 2018-09-24 Youenn Fablet <youenn@apple.com> |
| |
| Enable conversion of libwebrtc internal frames as CVPixelBuffer |
| https://bugs.webkit.org/show_bug.cgi?id=189892 |
| |
| Reviewed by Eric Carlson. |
| |
| Make sure to handle the case of libwebrtc frames that are not backed by CVPixelBuffer. |
| No observable change of behavior. |
| |
| * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: |
| (WebCore::LibWebRTCProviderCocoa::createDecoderFactory): |
| (WebCore::LibWebRTCProviderCocoa::createEncoderFactory): |
| Update according renamed methods. |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame): |
| In case of libwebrtc frame that are not backed by CVPixelBuffer, we create |
| a CVPixelBuffer from a pixel buffer pool. |
| This CVPixelBuffer is then filled as part of webrtc::pixelBufferFromFrame. |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: |
| (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV): |
| Make sure to use preferred pixel buffer format. |
| |
| 2018-09-24 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Add mock window capture source |
| https://bugs.webkit.org/show_bug.cgi?id=189843 |
| <rdar://problem/44687445> |
| |
| Reviewed by Youenn Fablet. |
| |
| No new tests, the API is disabled and it isn't possible to test yet. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::processNewFrame): Remove an extra blank line. |
| |
| * platform/mock/MockMediaDevice.h: |
| (WebCore::MockDisplayProperties::encode const): Get rid of defaultFrameRate, add type. |
| (WebCore::MockDisplayProperties::decode): Ditto. |
| (WebCore::MockMediaDevice::type const): |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::defaultDevices): Add mock window devices. |
| (WebCore::MockRealtimeMediaSourceCenter::audioDevices): Cleanup. |
| (WebCore::MockRealtimeMediaSourceCenter::videoDevices): Cleanup. |
| (WebCore::MockRealtimeMediaSourceCenter::displayDevices): New. |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Set default size on displays. |
| (WebCore::MockRealtimeVideoSource::supportsSizeAndFrameRate): Call RealtimeVideoSource for |
| mock camera, base class for device. |
| (WebCore::MockRealtimeVideoSource::setSizeAndFrameRate): Ditto. |
| (WebCore::MockRealtimeVideoSource::generatePresets): ASSERT if called as a camera. |
| (WebCore::MockRealtimeVideoSource::capabilities): updateCapabilities is only appropriate for cameras. |
| (WebCore::MockRealtimeVideoSource::settings): Camera and Device are different surface types. |
| (WebCore::MockRealtimeVideoSource::drawText): Render name, not ID. |
| (WebCore::MockRealtimeVideoSource::mockDisplayType const): |
| |
| * platform/mock/MockRealtimeVideoSource.h: |
| (WebCore::MockRealtimeVideoSource::mockDisplay const): |
| (WebCore::MockRealtimeVideoSource::mockScreen const): |
| (WebCore::MockRealtimeVideoSource::mockWindow const): |
| |
| 2018-09-24 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Key code is 0 for many hardware keyboard keys |
| https://bugs.webkit.org/show_bug.cgi?id=189604 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Based off a patch by Jeremy Jones. |
| |
| Add iOS-specific implementation of windowsKeyCodeForKeyCode() to map an iOS virtual key code to |
| the corresponding Windows virtual key code. Only hardware keyboard-generated events have a |
| virtual key code. For software-generated keyboard events we do what we do now and compute the |
| Windows virtual key code from the character string associated with the event. |
| |
| When a WebEvent is instantiated with a non-zero iOS virtual key code (keyCode) we now always |
| convert it to its corresponding Windows virtual key code without considering the specified |
| charactersIgnoringModifiers character string. Currently we prefer computing the key code from |
| charactersIgnoringModifiers regardless of whether a non-zero iOS virtual key code was given. |
| However this causes special keys, including function keys (e.g. F10) to be misidentified because |
| keyboard layouts in iOS (at least iOS 12) map such special keys to ASCII control characters (e.g. |
| F10 maps to ASCII control character "data link escape" = 0x10) as opposed to special 16-bit |
| integral constants as we do on Mac (e.g. F10 maps to NSF10FunctionKey = 0xF70D on Mac). I will |
| look to fix up the computation of a Windows virtual key code from a char code on iOS in a |
| subsequent commit(s). For now, computing the Windows virtual key code directly from the iOS |
| virtual key code specified to the WebEvent constructor avoids the misidentification using |
| an ANSI US keyboard layout. |
| |
| * platform/cocoa/KeyEventCocoa.mm: |
| (WebCore::windowsKeyCodeForKeyCode): Deleted; moved to KeyEventMac.mm as this mapping is specific to Mac. |
| * platform/ios/KeyEventIOS.mm: |
| (WebCore::windowsKeyCodeForKeyCode): Added. |
| * platform/ios/WebEvent.mm: |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): Address the NOTE comment and compute the Windows virtual key code from |
| the iOS virtual key code when we have one. Also inline the value of an unncessary local variable. |
| (-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]): Ditto. |
| * platform/mac/KeyEventMac.mm: |
| (WebCore::windowsKeyCodeForKeyCode): Moved from KeyEventCocoa.mm. Updated code to make use of WTF_ARRAY_LENGTH() instead |
| of hardcoding the upper bound of the lookup table. |
| |
| 2018-09-24 Simon Fraser <simon.fraser@apple.com> |
| |
| feMorphology filter in CSS doesn't update when element moves |
| https://bugs.webkit.org/show_bug.cgi?id=189895 |
| |
| Reviewed by Dean Jackson. |
| |
| SourceAlpha needs to be invalidated from clearIntermediateResults(), |
| so get it from the SVGFilterBuilder (which always creates one) and store in |
| a member variable. |
| |
| Test: css3/filters/invalidate-sourceAlpha.html |
| |
| * rendering/CSSFilter.cpp: |
| (WebCore::CSSFilter::buildReferenceFilter): |
| (WebCore::CSSFilter::clearIntermediateResults): |
| * rendering/CSSFilter.h: |
| * svg/graphics/filters/SVGFilterBuilder.h: |
| |
| 2018-09-24 Simon Fraser <simon.fraser@apple.com> |
| |
| CSS reference filter with feDisplacementMap shows buffer corruption on Retina displays |
| https://bugs.webkit.org/show_bug.cgi?id=188486 |
| <rdar://problem/43189750> |
| |
| Reviewed by Dean Jackson. |
| |
| The paintSize needs to be scaled by filterScale on Retina displays. |
| |
| Test: css3/filters/hidpi-feDisplacementMap.html |
| |
| * platform/graphics/filters/FEDisplacementMap.cpp: |
| (WebCore::FEDisplacementMap::platformApplySoftware): |
| * platform/graphics/filters/FEDisplacementMap.h: |
| |
| 2018-09-24 Simon Fraser <simon.fraser@apple.com> |
| |
| ReferenceFilterOperation doesn't need to store the FilterEffect |
| https://bugs.webkit.org/show_bug.cgi?id=189904 |
| |
| Reviewed by Dean Jackson. |
| |
| ReferenceFilterOperation doesn't do anything with m_filterEffect so don't store it. |
| |
| * platform/graphics/filters/FilterOperation.cpp: |
| (WebCore::ReferenceFilterOperation::setFilterEffect): Deleted. |
| * platform/graphics/filters/FilterOperation.h: |
| (WebCore::ReferenceFilterOperation::filterEffect const): Deleted. |
| * rendering/CSSFilter.cpp: |
| (WebCore::CSSFilter::build): |
| |
| 2018-09-24 Simon Fraser <simon.fraser@apple.com> |
| |
| Garbled rendering of image when applied feConvolveMatrix to it, on Retina display |
| https://bugs.webkit.org/show_bug.cgi?id=189748 |
| <rdar://problem/44621494> |
| |
| Reviewed by Jon Lee. |
| |
| feConvolveMatrix needs to scale the paintSize by the filter scale (2x on Retina displays), |
| otherwise parts of the output buffer are uninitialized and the result is incorrect. |
| |
| Test: css3/filters/hidpi-feConvolveMatrix.html |
| |
| * platform/graphics/filters/FEConvolveMatrix.cpp: |
| (WebCore::FEConvolveMatrix::platformApplySoftware): |
| |
| 2018-09-22 Dean Jackson <dino@apple.com> |
| |
| Ensure PointerEvent is not visible when disabled |
| https://bugs.webkit.org/show_bug.cgi?id=189889 |
| <rdar://problem/44708253> |
| |
| Reviewed by Eric Carlson. |
| |
| Test: pointerevents/disabled.html |
| |
| * bindings/js/WebCoreBuiltinNames.h: Now that it is enabled at runtime, it needs |
| a built-in name. |
| * dom/PointerEvent.idl: Add EnabledAtRuntime. |
| |
| 2018-09-24 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Pull demuxed samples in batches |
| https://bugs.webkit.org/show_bug.cgi?id=189871 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| After this patch, only the notifications of "new samples available" |
| (appsink-new-sample bus messages) travel from the streaming thread to |
| the main thread through the bus and the main thread is the responsible |
| of pulling as many samples as it can from appsink. Before, the samples |
| were pulled from appsink in the non-main thread and traveled to the |
| main thread through the bus one by one. |
| |
| This reduces drastically the amount of context switches and waiting |
| time in the streaming thread, resulting in a noticeable performance |
| improvement. |
| |
| This fixes stutter while loading YouTube videos. |
| |
| * platform/graphics/gstreamer/MediaSampleGStreamer.cpp: |
| (WebCore::MediaSampleGStreamer::MediaSampleGStreamer): |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::AppendPipeline): |
| (WebCore::AppendPipeline::~AppendPipeline): |
| (WebCore::AppendPipeline::clearPlayerPrivate): |
| (WebCore::AppendPipeline::handleApplicationMessage): |
| (WebCore::AppendPipeline::appsinkNewSample): |
| (WebCore::AppendPipeline::consumeAppSinkAvailableSamples): |
| (WebCore::AppendPipeline::resetPipeline): |
| (WebCore::AppendPipeline::handleNewAppsinkSample): |
| * platform/graphics/gstreamer/mse/AppendPipeline.h: |
| |
| 2018-09-24 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] Change name of WebVTT region attribute 'height' to 'lines'. |
| https://bugs.webkit.org/show_bug.cgi?id=189862 |
| |
| Reviewed by Eric Carlson. |
| |
| The WebVTT region attribute 'height' has been renamed to 'lines', see https://w3c.github.io/webvtt/#region-settings. |
| |
| No new tests, covered by existing tests. |
| |
| * html/track/VTTRegion.cpp: |
| (WebCore::VTTRegion::setLines): |
| (WebCore::VTTRegion::updateParametersFromRegion): |
| (WebCore::VTTRegion::scanSettingName): |
| (WebCore::VTTRegion::parseSettingValue): |
| (WebCore::VTTRegion::prepareRegionDisplayTree): |
| (WebCore::VTTRegion::setHeight): Deleted. |
| * html/track/VTTRegion.h: |
| * html/track/VTTRegion.idl: |
| |
| 2018-09-24 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE][GStreamer] Use no-more-pads event for noticing initialization segments |
| https://bugs.webkit.org/show_bug.cgi?id=189868 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Fixes the following YTTV 2018 tests: |
| 62.VideoDimensionVP9 |
| 63.PlaybackStateVP9 |
| |
| This removes the hack that was making supporting multiple tracks in |
| the same file in MSE impossible. |
| |
| For WebM, this GStreamer patch is required: |
| https://bugzilla.gnome.org/show_bug.cgi?id=797187 |
| "matroskademux: Emit no-more-pads after parsing Tracks" |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::AppendPipeline): |
| (WebCore::AppendPipeline::handleApplicationMessage): |
| (WebCore::AppendPipeline::demuxerNoMorePads): |
| (WebCore::AppendPipeline::appsinkCapsChanged): |
| (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink): |
| (WebCore::AppendPipeline::appendPipelineDemuxerNoMorePadsFromAnyThread): |
| (WebCore::appendPipelineDemuxerNoMorePads): |
| * platform/graphics/gstreamer/mse/AppendPipeline.h: |
| |
| 2018-09-24 Thibault Saunier <tsaunier@igalia.com> |
| |
| [WPE][GTK][WebRTC] Fix leaks in the libwebrtc Decoder and Encoder |
| https://bugs.webkit.org/show_bug.cgi?id=189835 |
| |
| Reviewed by Philippe Normand. |
| |
| - Rework memory management to avoid leaking encoded frames (basically use the same |
| strategy as other libwebrtc encoder implementation). |
| - Plug a GstCaps leak. |
| |
| * platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp: |
| * platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: |
| * platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: |
| (WebCore::GStreamerVideoEncoder::InitEncode): |
| (WebCore::GStreamerVideoEncoder::newSampleCallback): |
| (WebCore::GStreamerVideoEncoder::Fragmentize): |
| (WebCore::GStreamerVideoEncoder::SetRestrictionCaps): |
| |
| 2018-09-24 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer] Utilities cleanups |
| https://bugs.webkit.org/show_bug.cgi?id=189699 |
| <rdar://problem/44634143> |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The GstMappedBuffer now has a move constructor so that it can be easily |
| reused in the webaudiosrc element. The now-unused corresponding |
| buffer-mapping utilities are removed from the code-base. |
| |
| The HTTP source element used to handle a GstBuffer in its private |
| structure but this is no longer required since data is now pushed |
| in chunks, see bug #182829. |
| |
| * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: |
| (webKitWebAudioSrcLoop): |
| * platform/graphics/gstreamer/GStreamerCommon.cpp: |
| (WebCore::createGstBuffer): Deleted. |
| (WebCore::createGstBufferForData): Deleted. |
| (WebCore::getGstBufferDataPointer): Deleted. |
| (WebCore::mapGstBuffer): Deleted. |
| (WebCore::unmapGstBuffer): Deleted. |
| * platform/graphics/gstreamer/GStreamerCommon.h: |
| (WebCore::GstMappedBuffer::create): New method returning a |
| reference to a newly created GstMappedBuffer instance. |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (webKitWebSrcStop): Remove reference to unused GstBuffer. |
| (CachedResourceStreamingClient::dataReceived): Ditto. |
| |
| 2018-09-24 Enrique Ocaña González <eocanha@igalia.com> |
| |
| [MSE][GStreamer] Don't update duration when it was not previously NaN |
| https://bugs.webkit.org/show_bug.cgi?id=189869 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This is what the spec mandates. The spec doesn't say anything about |
| updating duration when it had been previously set, even if the new |
| init segment says that the duration is growing. |
| |
| This fixes MSE YTTV 2018 69.MediaSourceDurationVP9. |
| |
| * platform/graphics/gstreamer/mse/AppendPipeline.cpp: |
| (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink): |
| |
| 2018-09-23 Frederic Wang <fwang@igalia.com> |
| |
| Add missing includes in TextCodecReplacement.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=189894 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests, behavior unchanged. |
| |
| * platform/text/TextCodecReplacement.cpp: Add missing headers. |
| |
| 2018-09-22 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [ARM] Building FELightingNEON.cpp fails due to missing lightVector member |
| https://bugs.webkit.org/show_bug.cgi?id=189890 |
| |
| Reviewed by Darin Adler. |
| |
| No new tests needed. |
| |
| * platform/graphics/cpu/arm/filters/FELightingNEON.h: |
| (WebCore::FELighting::platformApplyNeon): Adapt to new layout of "struct PaintingData" after r225122. |
| |
| 2018-09-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Null-check cairo_pattern_t gradient objects |
| https://bugs.webkit.org/show_bug.cgi?id=189820 |
| |
| Reviewed by Alex Christensen. |
| |
| Cairo-specific implementation of Gradient::createPlatformGradient() can |
| now return a nullptr value when a conic gradient is described by the |
| Gradient object. Cairo doesn't have a way to create cairo_pattern_t |
| objects for such gradients. |
| |
| Null-checks are now done on return values of createPlatformGradient(), |
| in order to avoid proceeding to paint a null cairo_pattern_t object. |
| |
| * platform/graphics/cairo/GradientCairo.cpp: |
| (WebCore::Gradient::fill): |
| * platform/graphics/cairo/GraphicsContextImplCairo.cpp: |
| (WebCore::GraphicsContextImplCairo::fillRect): |
| |
| 2018-09-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Cannot start a drag inside a shadow tree when an inclusive-ancestor of its shadow host is a draggable element |
| https://bugs.webkit.org/show_bug.cgi?id=136836 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Fixed the bug by simply generalizing the existing code path existed for video / input type=color. |
| |
| Tests: fast/shadow-dom/dragging-element-inside-shadow-tree.html |
| fast/shadow-dom/dragging-element-with-shadow-tree.html |
| |
| * page/DragController.cpp: |
| (WebCore::DragController::startDrag): |
| |
| 2018-09-22 Chris Dumez <cdumez@apple.com> |
| |
| FontDataCache should use Ref<Font> instead of a RefPtr<Font> |
| https://bugs.webkit.org/show_bug.cgi?id=189861 |
| |
| Reviewed by Antti Koivisto. |
| |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::fontForPlatformData): |
| (WebCore::FontCache::purgeInactiveFontData): |
| |
| 2018-09-21 Justin Michaud <justin_michaud@apple.com> |
| |
| Implement initialValue support for CSS Custom Properties and Values API |
| https://bugs.webkit.org/show_bug.cgi?id=189819 |
| |
| Reviewed by Simon Fraser. |
| |
| * css/CSSComputedStyleDeclaration.cpp: |
| (WebCore::ComputedStyleExtractor::customPropertyValue): |
| * css/CSSCustomPropertyValue.cpp: |
| (WebCore::CSSCustomPropertyValue::resolveVariableReferences const): |
| * css/CSSCustomPropertyValue.h: |
| * css/CSSRegisteredCustomProperty.h: |
| * css/CSSVariableData.cpp: |
| (WebCore::CSSVariableData::resolveVariableFallback const): |
| (WebCore::CSSVariableData::resolveVariableReference const): |
| (WebCore::CSSVariableData::resolveVariableReferences const): |
| (WebCore::CSSVariableData::resolveTokenRange const): |
| * css/CSSVariableData.h: |
| * css/DOMCSSRegisterCustomProperty.cpp: |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| * css/DOMCSSRegisterCustomProperty.h: |
| * css/DOMCSSRegisterCustomProperty.idl: |
| * css/StyleResolver.cpp: |
| (WebCore::StyleResolver::resolvedVariableValue): |
| (WebCore::StyleResolver::applyCascadedProperties): |
| * css/parser/CSSParser.cpp: |
| (WebCore::CSSParser::parseValueWithVariableReferences): |
| * css/parser/CSSParser.h: |
| * dom/Document.h: |
| (WebCore::Document::getCSSRegisteredCustomPropertySet const): |
| * rendering/style/RenderStyle.cpp: |
| (WebCore::RenderStyle::checkVariablesInCustomProperties): |
| * rendering/style/RenderStyle.h: |
| |
| 2018-09-21 Dean Jackson <dino@apple.com> |
| |
| Add PointerEvent, plus feature flag, plus Web Platform Tests |
| https://bugs.webkit.org/show_bug.cgi?id=189867 |
| <rdar://problem/44697384> |
| |
| Reviewed by Simon Fraser. |
| |
| Add the PointerEvent interface. |
| |
| Tests: imported/w3c/web-platform-tests/pointerevents/extension/idlharness.window.html |
| imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_constructor.html |
| imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification.html |
| imported/w3c/web-platform-tests/pointerevents/idlharness.window.html |
| imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor.html |
| imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html |
| imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-illegal.html |
| imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification.html |
| |
| * DerivedSources.make: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| Add the new files. |
| |
| * dom/Event.h: |
| (WebCore::Event::isPointerEvent const): New virtual identification method. |
| |
| * dom/EventNames.in: Add PointerEvent so the InterfaceType code is generated. |
| |
| * dom/PointerEvent.cpp: The PointerEvent interface, as specified by W3C. |
| (WebCore::PointerEvent::PointerEvent): |
| (WebCore::PointerEvent::eventInterface const): |
| * dom/PointerEvent.h: Added. |
| * dom/PointerEvent.idl: Added. |
| |
| * page/RuntimeEnabledFeatures.h: Clean up the ordering of the features, so there aren't |
| confusing blank lines interspersed with #if USE macros. |
| (WebCore::RuntimeEnabledFeatures::setPointerEventsEnabled): Add a new flag for Pointer Events. |
| (WebCore::RuntimeEnabledFeatures::pointerEventsEnabled const): |
| |
| 2018-09-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Custom elements in a reaction queue can lose its JS wrapper and become HTMLUnknownElement |
| https://bugs.webkit.org/show_bug.cgi?id=184307 |
| |
| Reviewed by Keith Miller. |
| |
| The bug was caused by the custom elements reaction queue not reporting its content to GC during marking. |
| |
| When there is no JS reference to the JS wrappers of those custom element, and if those custom elements |
| are disconnected, GC would happily collect those the wrappers. Unfortunately, the same bug exists for |
| any asynchronous events and other WebCore code which keeps elements alive for a later use but doesn't |
| report them to GC (e.g. during visitChildren). |
| |
| This patch, therefore, introduces a generic mechanism to keep these elements' wrappers alive. Namely, |
| we introduce GCReachableRef, a new smart pointer type for Node's subclasses, which keeps element as well |
| as its wrappers alive. GCReachableRef works by adding its Node to a global hash counted set when it's |
| created and making JSNodeOwner::isReachableFromOpaqueRoots return true when the node is in the set. |
| |
| Test: fast/custom-elements/custom-elements-reaction-queue-retains-js-wrapper.html |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * bindings/js/JSNodeCustom.cpp: |
| (WebCore::isReachableFromDOM): |
| * dom/CustomElementReactionQueue.cpp: |
| (WebCore::CustomElementReactionQueue::ElementQueue::invokeAll): Don't swap the vector of elements in |
| in the queue. Assuming each DOM API has an appropriate CustomElementsReactionStack, we should never |
| append a new element to this queue while invoking custom element reactions. |
| * dom/CustomElementReactionQueue.h: |
| * dom/GCReachableRef.cpp: Added. |
| * dom/GCReachableRef.h: Added. |
| (WebCore::GCReachableRefMap::contains): Added. |
| (WebCore::GCReachableRefMap::add): Added. |
| (WebCore::GCReachableRefMap::remove): Added. |
| (WebCore::GCReachableRef::GCReachableRef): Added. We need isNull() check since WTFMove may have been |
| called on the source GCReachableRef. |
| (WebCore::GCReachableRef::~GCReachableRef): Ditto. |
| (WebCore::GCReachableRef::operator-> const): Added. |
| (WebCore::GCReachableRef::get const): Added. |
| (WebCore::GCReachableRef::operator T& const): Added. |
| (WebCore::GCReachableRef::operator! const): Added. |
| (WebCore::GCReachableRef::isNull const): Added. Returns true if WTFMove had been called on Ref. |
| |
| 2018-09-21 Alex Christensen <achristensen@webkit.org> |
| |
| Use a Variant for FormDataElement |
| https://bugs.webkit.org/show_bug.cgi?id=189777 |
| |
| Reviewed by Chris Dumez. |
| |
| * platform/network/FormData.cpp: |
| (WebCore::FormData::FormData): |
| (WebCore::FormDataElement::lengthInBytes const): |
| (WebCore::FormDataElement::isolatedCopy const): |
| (WebCore::FormData::appendData): |
| (WebCore::FormData::flatten const): |
| (WebCore::FormData::resolveBlobReferences): |
| (WebCore::FormData::generateFiles): |
| (WebCore::FormData::hasGeneratedFiles const): |
| (WebCore::FormData::hasOwnedGeneratedFiles const): |
| (WebCore::FormData::removeGeneratedFilesIfNeeded): |
| (WebCore::FormData::asSharedBuffer const): |
| (WebCore::FormData::asBlobURL const): |
| (WebCore::FormData::expandDataStore): Deleted. |
| * platform/network/FormData.h: |
| (WebCore::FormDataElement::FormDataElement): |
| (WebCore::FormDataElement::encode const): |
| (WebCore::FormDataElement::decode): |
| (WebCore::FormDataElement::EncodedFileData::isolatedCopy const): |
| (WebCore::FormDataElement::EncodedFileData::operator== const): |
| (WebCore::FormDataElement::EncodedFileData::encode const): |
| (WebCore::FormDataElement::EncodedFileData::decode): |
| (WebCore::FormDataElement::EncodedBlobData::operator== const): |
| (WebCore::FormDataElement::EncodedBlobData::encode const): |
| (WebCore::FormDataElement::EncodedBlobData::decode): |
| (WebCore::FormDataElement::operator== const): |
| (WebCore::FormDataElement::operator!= const): |
| * platform/network/cf/FormDataStreamCFNet.cpp: |
| (WebCore::advanceCurrentStream): |
| (WebCore::createHTTPBodyCFReadStream): |
| (WebCore::setHTTPBody): |
| * platform/network/curl/CurlFormDataStream.cpp: |
| (WebCore::CurlFormDataStream::computeContentLength): |
| (WebCore::CurlFormDataStream::read): |
| (WebCore::CurlFormDataStream::readFromFile): |
| (WebCore::CurlFormDataStream::readFromData): |
| * platform/network/curl/CurlFormDataStream.h: |
| |
| 2018-09-20 Simon Fraser <simon.fraser@apple.com> |
| |
| Simplify the logic around has*ScrollbarWithAutoBehavior |
| https://bugs.webkit.org/show_bug.cgi?id=189813 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The boolean logic in scrollsOverflowX() and hasHorizontalScrollbarWithAutoBehavior() (and the vertical |
| equivalents) reduces simply to hasOverflowClip() && (style().overflowX() == Overflow::Scroll || style().overflowX() == Overflow::Auto); |
| |
| Similarly, RenderBox::intrinsicScrollbarLogicalWidth() just needs the part of the logic |
| that asks whether the theme uses overlay scrollbars which are not customized (and thus |
| turned into non-overlay scrollbars). |
| |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::intrinsicScrollbarLogicalWidth const): |
| (WebCore::RenderBox::canUseOverlayScrollbars const): |
| (WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior const): |
| (WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior const): |
| * rendering/RenderBox.h: |
| (WebCore::RenderBox::scrollsOverflowX const): |
| (WebCore::RenderBox::scrollsOverflowY const): |
| * rendering/RenderLayer.cpp: |
| (WebCore::RenderLayer::updateScrollbarsAfterLayout): |
| |
| 2018-09-21 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r236255. |
| |
| Many WebAudio crashes |
| |
| Reverted changeset: |
| |
| "[GStreamer] Utilities cleanups" |
| https://bugs.webkit.org/show_bug.cgi?id=189699 |
| https://trac.webkit.org/changeset/236255 |
| |
| 2018-09-21 Jer Noble <jer.noble@apple.com> |
| |
| Move AVVideoPerformanceMetrics into AVFoundationSPI.h |
| https://bugs.webkit.org/show_bug.cgi?id=189842 |
| |
| Reviewed by Jon Lee. |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| |
| 2018-09-21 Chris Dumez <cdumez@apple.com> |
| |
| WebSQL: User cannot grant quota increase if the JS provides an expected usage value that is too low |
| https://bugs.webkit.org/show_bug.cgi?id=189801 |
| <rdar://problem/43592498> |
| |
| Reviewed by Youenn Fablet. |
| |
| User was unable to grant a quota increase for WebSQL if the JS provided an expected usage value that |
| is too low. This is because WebKit was passing this provided expectedUsage value to the client for |
| the purpose of quota increase, even when this expectedUsage value does not make any sense (i.e. it |
| is lower than the current database size). As a result, the client would grant a quota that is equal |
| to the previous quota and the JS would not be able to insert any data. |
| |
| In order to address the issue, when the current quota is exceeded and Database::didExceedQuota() |
| is called, we now make sure that the expectedUsage value is greater than the current quota. If it |
| is not, we provide `current quota + 5MB` as expected usage to the client. This way, the client will |
| grant a quota that is actually increased (provided that the user accepts). |
| |
| Test: storage/websql/transaction-database-expand-quota.html |
| |
| * Modules/webdatabase/Database.cpp: |
| (WebCore::Database::setEstimatedSize): |
| (WebCore::Database::didExceedQuota): |
| * Modules/webdatabase/Database.h: |
| |
| 2018-09-21 Youenn Fablet <youenn@apple.com> |
| |
| Use biplanar CVPixelBuffer for black frames sent to libwebrtc |
| https://bugs.webkit.org/show_bug.cgi?id=189837 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by webrtc/video-mute.html. |
| |
| Add support to call CVPixelBufferGetBytesPerRowOfPlane. |
| Make createBlackPixelBuffer use a biplanar CVPixelBuffer as this is better supported in libwebrtc. |
| It is also what is being used in iOS for capture. |
| |
| * platform/cocoa/CoreVideoSoftLink.cpp: |
| * platform/cocoa/CoreVideoSoftLink.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::createBlackPixelBuffer): |
| |
| 2018-09-21 Youenn Fablet <youenn@apple.com> |
| |
| Add RTCCodecStats support |
| https://bugs.webkit.org/show_bug.cgi?id=189792 |
| <rdar://problem/32370668> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated and rebased tests. |
| |
| * Modules/mediastream/RTCStatsReport.h: |
| Removed fields that are already defined in the base class. |
| (WebCore::RTCStatsReport::CodecStats::CodecStats): |
| Add support for RTCCodecStats. |
| * Modules/mediastream/RTCStatsReport.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered): |
| * Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: |
| (WebCore::fillRTCRTPStreamStats): |
| (WebCore::fillRTCCodecStats): |
| (WebCore::LibWebRTCStatsCollector::OnStatsDelivered): |
| Add routines to fill RTCCodecStats from libwebrtc stats. |
| |
| 2018-09-20 Simon Fraser <simon.fraser@apple.com> |
| |
| Make "overflow: overlay" a synonym for "overflow: auto" |
| https://bugs.webkit.org/show_bug.cgi?id=189811 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The "overlay" value for overflow was added for an internal Safari feature, and only has |
| an effect (allow the scrollbar to overlap the content) with legacy scrollbars on macOS. |
| It's little used on the web. |
| |
| To simplify code in rendering, just make "overflow: overlay" behave like "overflow: auto". |
| It's still parsed, but turns into an "auto" value internally, and will be returned from getComputedStyle |
| as "auto". |
| |
| Test: fast/css/getComputedStyle/getComputedStyle-overflow.html |
| |
| * css/CSSPrimitiveValueMappings.h: |
| (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): |
| (WebCore::CSSPrimitiveValue::operator Overflow const): |
| * css/CSSProperties.json: |
| * css/CSSValueKeywords.in: |
| * css/StyleResolver.cpp: |
| (WebCore::isScrollableOverflow): |
| * css/parser/CSSParserFastPaths.cpp: |
| (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): |
| * page/ios/FrameIOS.mm: |
| (WebCore::Frame::nodeRespondingToScrollWheelEvents): |
| * rendering/RenderBox.cpp: |
| (WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior const): |
| (WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior const): |
| * rendering/RenderLayer.cpp: |
| (WebCore::styleDefinesAutomaticScrollbar): |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::isScrollableOverflow): |
| * rendering/style/RenderStyleConstants.h: |
| |
| 2018-09-21 Youenn Fablet <youenn@apple.com> |
| |
| Centralize which CVPixelBuffer format is being used |
| https://bugs.webkit.org/show_bug.cgi?id=189772 |
| |
| Reviewed by Eric Carlson. |
| |
| Get the format type from a single point. |
| This changes the video capture and mock realtime video sources on Mac to use a biplanar format. |
| No observable change of behavior. |
| |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset): |
| (WebCore::AVVideoCaptureSource::setupCaptureSession): |
| (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): |
| (WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset): |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::createBlackPixelBuffer): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: |
| (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated): |
| * platform/mediastream/mac/RealtimeVideoUtilities.h: Added. |
| |
| 2018-09-21 Antoine Quint <graouts@apple.com> |
| |
| REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=189607 |
| <rdar://problem/44652315> |
| |
| Reviewed by Dean Jackson. |
| |
| There is no reason we shouldn't return the document timeline's time when suspended as otherwise animations may |
| report an unresolved current time when suspended which would wreak havoc when invalidating what DOM events to |
| dispatch for CSS Animations and Transitions. We also shouldn't be invalidation DOM events when suspended. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::currentTime): |
| (WebCore::DocumentTimeline::DocumentTimeline::performInvalidationTask): |
| |
| 2018-09-21 Mike Gorse <mgorse@suse.com> |
| |
| Build tools should work when the /usr/bin/python is python3 |
| https://bugs.webkit.org/show_bug.cgi?id=156674 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests (no behavior change). |
| |
| * platform/network/create-http-header-name-table: remove xreadlines. |
| |
| 2018-09-21 Jer Noble <jer.noble@apple.com> |
| |
| [EME] Introduce the concept of CDMInstanceSession. |
| https://bugs.webkit.org/show_bug.cgi?id=189725 |
| |
| Reviewed by Eric Carlson. |
| |
| Currently, the same CDMInstance owned by a MediaKeys object is passed to every MediaKeySession created by that |
| MediaKeys, and since the CDMInstance has only a single CDMInstanceClient, subsequent MediaKeySessions prevent |
| previous ones from getting updates. |
| |
| Add a new virtual interface, CDMInstanceSession, to be passed to MediaKeySession upon creation. Refactor |
| CDMInstanceClearKey and CDMInstanceFairPlayStreamingAVFObjC to adopt this new interface. |
| |
| Drive-by fixes: Made a number of virtual overrides in final classes final themselves. |
| |
| * Modules/encryptedmedia/MediaKeySession.cpp: |
| (WebCore::MediaKeySession::create): |
| (WebCore::MediaKeySession::MediaKeySession): |
| (WebCore::MediaKeySession::generateRequest): |
| (WebCore::MediaKeySession::load): |
| (WebCore::MediaKeySession::update): |
| (WebCore::MediaKeySession::remove): |
| (WebCore::MediaKeySession::updateKeyStatuses): |
| * Modules/encryptedmedia/MediaKeySession.h: |
| * Modules/encryptedmedia/MediaKeys.cpp: |
| (WebCore::MediaKeys::createSession): |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/encryptedmedia/CDMInstance.h: |
| (WebCore::CDMInstance::setHDCPStatus): |
| (WebCore::CDMInstance::setClient): Deleted. |
| (WebCore::CDMInstance::clearClient): Deleted. |
| * platform/encryptedmedia/CDMInstanceSession.h: Copied from Source/WebCore/platform/encryptedmedia/CDMInstance.h. |
| (WebCore::CDMInstanceSession::setClient): |
| (WebCore::CDMInstanceSession::clearClient): |
| * platform/encryptedmedia/clearkey/CDMClearKey.cpp: |
| (WebCore::parseLicenseFormat): |
| (WebCore::CDMInstanceClearKey::keySystem const): |
| (WebCore::CDMInstanceClearKey::createSession): |
| (WebCore::CDMInstanceSessionClearKey::requestLicense): |
| (WebCore::CDMInstanceSessionClearKey::keys const): |
| (WebCore::CDMInstanceSessionClearKey::updateLicense): |
| (WebCore::CDMInstanceSessionClearKey::loadSession): |
| (WebCore::CDMInstanceSessionClearKey::closeSession): |
| (WebCore::CDMInstanceSessionClearKey::removeSessionData): |
| (WebCore::CDMInstanceSessionClearKey::storeRecordOfKeyUsage): |
| (WebCore::CDMInstanceClearKey::requestLicense): Deleted. |
| (WebCore::CDMInstanceClearKey::keys const): Deleted. |
| (WebCore::CDMInstanceClearKey::updateLicense): Deleted. |
| (WebCore::CDMInstanceClearKey::loadSession): Deleted. |
| (WebCore::CDMInstanceClearKey::closeSession): Deleted. |
| (WebCore::CDMInstanceClearKey::removeSessionData): Deleted. |
| (WebCore::CDMInstanceClearKey::storeRecordOfKeyUsage): Deleted. |
| * platform/encryptedmedia/clearkey/CDMClearKey.h: |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: |
| * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::createSession): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::processContentKeyRequestForSession): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::processNextContentKeyRequest): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::keySystem const): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionIdentifierChanged): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::CDMInstanceSessionFairPlayStreamingAVFObjC): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyIDs): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::storeRecordOfKeyUsage): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setClient): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::clearClient): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvidePersistableRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::shouldRetryRequestForReason): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::sessionIdentifierChanged): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): |
| (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::isLicenseTypeSupported const): |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::isLicenseTypeSupported const): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::keyIDs): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestLicense): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::loadSession): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::closeSession): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::removeSessionData): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::storeRecordOfKeyUsage): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::setClient): Deleted. |
| (WebCore::CDMInstanceFairPlayStreamingAVFObjC::clearClient): Deleted. |
| * testing/MockCDMFactory.cpp: |
| (WebCore::MockCDMInstance::keySystem const): |
| (WebCore::MockCDMInstance::createSession): |
| (WebCore::MockCDMInstanceSession::MockCDMInstanceSession): |
| (WebCore::MockCDMInstanceSession::requestLicense): |
| (WebCore::MockCDMInstanceSession::updateLicense): |
| (WebCore::MockCDMInstanceSession::loadSession): |
| (WebCore::MockCDMInstanceSession::closeSession): |
| (WebCore::MockCDMInstanceSession::removeSessionData): |
| (WebCore::MockCDMInstanceSession::storeRecordOfKeyUsage): |
| (WebCore::MockCDMInstance::requestLicense): Deleted. |
| (WebCore::MockCDMInstance::updateLicense): Deleted. |
| (WebCore::MockCDMInstance::loadSession): Deleted. |
| (WebCore::MockCDMInstance::closeSession): Deleted. |
| (WebCore::MockCDMInstance::removeSessionData): Deleted. |
| (WebCore::MockCDMInstance::storeRecordOfKeyUsage): Deleted. |
| * testing/MockCDMFactory.h: |
| (WebCore::MockCDMInstance::factory const): |
| (WebCore::MockCDMInstance::distinctiveIdentifiersAllowed const): |
| (WebCore::MockCDMInstance::persistentStateAllowed const): |
| |
| 2018-09-21 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE] Fix comparsion with uninitialized greatestDecodeDuration |
| https://bugs.webkit.org/show_bug.cgi?id=189805 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This bug was causing greatestDecodeDuration to never be initialized, |
| which in turned caused unintended frame erase as distant appends where |
| not being recognized as distinct coded frame groups. |
| |
| A test reproducing the sequence of appends that caused unintended |
| frame deletion has also been added (media-source-append-out-of-order.html). |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| |
| 2018-09-21 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Accelerated animations don't get suspended |
| https://bugs.webkit.org/show_bug.cgi?id=189783 |
| <rdar://problem/44652315> |
| |
| Unreviewed, correct a merge error in the previous commit. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::performInvalidationTask): |
| |
| 2018-09-21 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Accelerated animations don't get suspended |
| https://bugs.webkit.org/show_bug.cgi?id=189783 |
| <rdar://problem/43033568> |
| |
| Reviewed by Dean Jackson. |
| |
| Test: webanimations/accelerated-animation-suspension.html |
| |
| We used to set the flag that marked the timeline as suspended prior to notifying animations that they need to be suspended. |
| However, since the timeline was marked as suspended, querying the running state of the animations would indicate that the |
| animations weren't running since a suspended timeline would identify its animations as not running. As such we would fail |
| to pause the accelerated animations because they were already not marked as running. We now set the suspended flag on the |
| timeline _after_ suspending its animations. |
| |
| We also fix a bug in the new internals.acceleratedAnimationsForElement() test function so that we read from the actual |
| CA animations and not from a stale list of animations which would not indicate the correct animation speeds. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::suspendAnimations): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::acceleratedAnimationsForTesting): |
| |
| 2018-09-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| TransformationMatrix::toColumnMajorFloatArray() should return a std::array<> object |
| https://bugs.webkit.org/show_bug.cgi?id=189823 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Alias the TransformationMatrix::FloatMatrix4 type to |
| std::array<float, 16>. Instead of filling out the array object that's |
| passed in through a reference parameter, return the std::array<> |
| object from the function. |
| |
| * Modules/webvr/VRFrameData.cpp: |
| (WebCore::matrixToArray): |
| * Modules/webvr/VRStageParameters.cpp: |
| (WebCore::VRStageParameters::sittingToStandingTransform const): |
| * platform/graphics/texmap/TextureMapperShaderProgram.cpp: |
| (WebCore::TextureMapperShaderProgram::setMatrix): |
| * platform/graphics/transforms/TransformationMatrix.cpp: |
| (WebCore::TransformationMatrix::toColumnMajorFloatArray const): |
| * platform/graphics/transforms/TransformationMatrix.h: |
| |
| 2018-09-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| FloatQuad point getters should return const references |
| https://bugs.webkit.org/show_bug.cgi?id=189821 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Be pedantic and have the FloatQuad point getters return const references |
| to the FloatPoint member variables, instead of technically creating |
| copies of them (though much of this copying is eliminated when the |
| getters are inlined). |
| |
| * platform/graphics/FloatQuad.h: |
| (WebCore::FloatQuad::p1 const): |
| (WebCore::FloatQuad::p2 const): |
| (WebCore::FloatQuad::p3 const): |
| (WebCore::FloatQuad::p4 const): |
| |
| 2018-09-20 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] DocumentTimeline::updateAnimations() is called endlessly |
| https://bugs.webkit.org/show_bug.cgi?id=189784 |
| <rdar://problem/41705679> |
| |
| Reviewed by Dean Jackson. |
| |
| Test: webanimations/accelerated-animation-interruption-display-none.html |
| |
| We have code that keeps queueing pending accelerated actions for an animation that does not have a renderer until it has one |
| so that we can deal with situations where animations are ready to commited before its composited renderer is available. This |
| code ended up running continuously when an element with an accelerated animation had its renderer removed without the animation |
| being removed itself, such as setting "display: none" on an element with an acceelerated CSS Animation targeting it. |
| |
| We fix this by queueing up a "Stop" accelerated action when updating the accelerated state if there is no renderer for the current |
| animation target. Then, we no longer re-queue pending accelerated actions if the last queued operation is "Stop". This ensures that |
| we no longer queue actions endlessly when there is no longer a visible animation. |
| |
| To test this, we add a new internals.numberOfAnimationTimelineInvalidations() method that indicates the number of times the current |
| document's animation timeline was invalidated. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::updateAnimations): |
| (WebCore::DocumentTimeline::numberOfAnimationTimelineInvalidationsForTesting const): |
| * animation/DocumentTimeline.h: |
| * animation/KeyframeEffectReadOnly.cpp: |
| (WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState): If the animation target does not have a renderer and it's still |
| marked as running, enqueue a "Stop" accelerated action. |
| (WebCore::KeyframeEffectReadOnly::addPendingAcceleratedAction): If we enqueue a "Stop" accelerated action, remove any other queued |
| action so that we only process the "Stop" action, which would have superseded all previously queued actions anyway. |
| (WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Only re-queue pending accelerated actions when a composited renderer |
| is not yet available if we don't have a "Stop" action queued. |
| * testing/Internals.cpp: |
| (WebCore::Internals::numberOfAnimationTimelineInvalidations const): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-09-21 Yacine Bandou <yacine.bandou@softathome.com> |
| |
| [EME] Fix typo in WebM sanitization variable |
| https://bugs.webkit.org/show_bug.cgi?id=189789 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This commit corrects a typo in the name of a local variable, sanitizedBuffer |
| instead of sanitazedBuffer. |
| |
| * Modules/encryptedmedia/InitDataRegistry.cpp: |
| (WebCore::extractKeyIDsWebM): |
| |
| 2018-09-20 Dean Jackson <dino@apple.com> |
| |
| Restrict the total combined size of backdrop filters |
| https://bugs.webkit.org/show_bug.cgi?id=189812 |
| <rdar://problem/44532782> |
| |
| Reviewed by Simon Fraser. |
| |
| If the total area of all backdrop filters on the page gets |
| too large, the universe collapses in on itself and we enter |
| the Quantum Realm (i.e. crash horribly). |
| |
| Put a hard limit on the total coverage, and ignore any backdrop |
| filters after the limit. This might break some content, but |
| such content is likely not doing things in the most optimal manner. |
| There isn't any reason to have a backdrop larger than the size of |
| the screen, because you'd be better off applying a foreground |
| filter to the main content and showing something above it. |
| |
| Tests: css3/filters/backdrop/resource-use-add-more-layers.html |
| css3/filters/backdrop/resource-use-excessive.html |
| css3/filters/backdrop/resource-use-ok.html |
| css3/filters/backdrop/resource-use-remove-some-layers.html |
| |
| * platform/graphics/ca/GraphicsLayerCA.cpp: Pick a fairly small maximum size. We |
| can consider increasing this if necessary, and as devices with less RAM are |
| upgraded. |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): Gather the accumulated size |
| of backdrop filters into the commit state as we are recursing through the tree. |
| (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Force any layer |
| with backdrop filters, or any that is removing backdrop filters, into an update. |
| (WebCore::GraphicsLayerCA::updateBackdropFilters): Update the logic to first |
| check if this backdrop layer causes us to exceed the total allowed size, and if |
| it does, forbid it from getting the GraphicsLayer that composits the backdrop. |
| |
| * platform/graphics/ca/GraphicsLayerCA.h: Remove const from some parameters so |
| that we can use the CommitState to hold the accumulated size. |
| |
| 2018-09-20 Benjamin Poulain <benjamin@webkit.org> |
| |
| Adopt safe-area-insets on ImageDocument |
| https://bugs.webkit.org/show_bug.cgi?id=189774 |
| |
| Reviewed by Tim Horton. |
| rdar://problem/44624432 |
| |
| By having the safe-area insets on the image, we ensure that they only |
| grow the document if there is not enough space. This also ensures the image |
| does not have parts under UI elements. |
| |
| * html/ImageDocument.cpp: |
| (WebCore::ImageDocument::createDocumentStructure): |
| (WebCore::ImageDocument::imageUpdated): |
| |
| 2018-09-20 Zalan Bujtas <zalan@apple.com> |
| |
| Release assert under RenderView::pageOrViewLogicalHeight |
| https://bugs.webkit.org/show_bug.cgi?id=189798 |
| <rdar://problem/43659749> |
| |
| Reviewed by Simon Fraser. |
| |
| Only the mainframe's render view is sized to the page while printing. |
| Use the matching check (see RenderView::layout) when accessing m_pageLogicalSize. |
| |
| Test: printing/crash-while-formatting-subframe-for-printing.html |
| |
| * rendering/RenderView.cpp: |
| (WebCore::RenderView::pageOrViewLogicalHeight const): |
| |
| 2018-09-20 Sihui Liu <sihui_liu@apple.com> |
| |
| REGRESSION(r196265): WKWebView fires mouseover, mouseenter, and mouseleave events even when it's in a background window |
| https://bugs.webkit.org/show_bug.cgi?id=187545 |
| <rdar://problem/42401575> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| When the window is not active, we should only update the scrollbar for mouse events. GTK |
| apps have different expectation on this behavior. |
| |
| Test: fast/events/inactive-window-no-mouse-event.html |
| |
| * page/EventHandler.cpp: |
| (WebCore::EventHandler::handleMouseMoveEvent): |
| (WebCore::EventHandler::shouldSendMouseEventsToInactiveWindows const): |
| * page/EventHandler.h: |
| |
| 2018-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r235976. |
| |
| Broke ARM |
| |
| Reverted changeset: |
| |
| "Use a Variant instead of a union in CSSSelector" |
| https://bugs.webkit.org/show_bug.cgi?id=188559 |
| https://trac.webkit.org/changeset/235976 |
| |
| 2018-09-20 Oriol Brufau <obrufau@igalia.com> |
| |
| Fix 'border' serialization with both common and uncommon values |
| https://bugs.webkit.org/show_bug.cgi?id=189597 |
| |
| Reviewed by Simon Fraser. |
| |
| Remove CommonValueMode enum and make borderPropertyValue always return null |
| when there are uncommon values (the previous ReturnNullOnUncommonValues mode). |
| |
| Test: fast/css/getPropertyValue-border.html |
| Test: fast/dom/css-shorthand-common-value.html |
| |
| * css/StyleProperties.cpp: |
| (WebCore::StyleProperties::getPropertyValue const): |
| (WebCore::StyleProperties::borderPropertyValue const): |
| (WebCore::StyleProperties::asText const): |
| * css/StyleProperties.h: |
| |
| 2018-09-20 Justin Michaud <justin_michaud@apple.com> |
| |
| Implement CSS Custom Properties and Values Skeleton |
| https://bugs.webkit.org/show_bug.cgi?id=189694 |
| |
| Reviewed by Simon Fraser. |
| |
| Add feature flag, CSS.registerProperty binding and registered property set in Document.h |
| for the css custom properties and values api. |
| |
| Test: css-properties-values-api/registerProperty.html |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSRegisteredCustomProperty.h: Added. |
| * css/DOMCSSCustomPropertyDescriptor.h: Added. |
| * css/DOMCSSCustomPropertyDescriptor.idl: Added. |
| * css/DOMCSSNamespace.h: |
| * css/DOMCSSRegisterCustomProperty.cpp: Added. |
| (WebCore::DOMCSSRegisterCustomProperty::registerProperty): |
| (WebCore::DOMCSSRegisterCustomProperty::from): |
| (WebCore::DOMCSSRegisterCustomProperty::supplementName): |
| * css/DOMCSSRegisterCustomProperty.h: Added. |
| * css/DOMCSSRegisterCustomProperty.idl: Added. |
| * css/parser/CSSParserContext.cpp: |
| * dom/Document.cpp: |
| (WebCore::Document::registerCSSProperty): |
| * dom/Document.h: |
| * features.json: |
| * page/RuntimeEnabledFeatures.h: |
| (WebCore::RuntimeEnabledFeatures::setCSSCustomPropertiesAndValuesEnabled): |
| (WebCore::RuntimeEnabledFeatures::cssCustomPropertiesAndValuesEnabled const): |
| |
| 2018-09-20 Justin Michaud <justin_michaud@apple.com> |
| |
| JS bindings generator should support EnabledAtRuntime for static methods |
| https://bugs.webkit.org/show_bug.cgi?id=189729 |
| |
| Reviewed by Chris Dumez. |
| |
| Add support for EnabledAtRuntime to static methods in the JS bindings |
| code generator. |
| |
| * bindings/scripts/CodeGeneratorJS.pm: |
| (GenerateRuntimeEnableConditionalStringForExposed): |
| (GenerateRuntimeEnableConditionalString): |
| (GetRuntimeEnabledStaticProperties): |
| (GenerateConstructorHelperMethods): |
| * bindings/scripts/test/JS/JSTestGlobalObject.cpp: |
| (WebCore::JSTestGlobalObjectConstructor::initializeProperties): |
| (WebCore::JSTestGlobalObject::finishCreation): |
| (WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody): |
| (WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStatic): |
| * bindings/scripts/test/JS/JSTestObj.cpp: |
| (WebCore::JSTestObjConstructor::initializeProperties): |
| (WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStaticGetter): |
| (WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStatic): |
| (WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter): |
| (WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStatic): |
| (WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody): |
| (WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStatic): |
| * bindings/scripts/test/TestGlobalObject.idl: |
| * bindings/scripts/test/TestObj.idl: |
| |
| 2018-09-20 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] Update the parser according to the new region syntax. |
| https://bugs.webkit.org/show_bug.cgi?id=189767 |
| |
| Reviewed by Eric Carlson. |
| |
| The majority of the code added in this patch is adopted from the Chromium project, which has added |
| support for the new region syntax. The complete parser specification can be found at |
| https://w3c.github.io/webvtt/#file-parsing. One small difference in behavior is that the new parser |
| will not add regions with empty id. |
| |
| No new tests, covered by existing tests. |
| |
| * html/track/WebVTTParser.cpp: |
| (WebCore::WebVTTParser::getNewRegions): |
| (WebCore::WebVTTParser::parse): |
| (WebCore::WebVTTParser::collectRegionSettings): |
| (WebCore::WebVTTParser::collectWebVTTBlock): |
| (WebCore::WebVTTParser::checkAndRecoverCue): |
| (WebCore::WebVTTParser::checkAndCreateRegion): |
| (WebCore::WebVTTParser::checkAndStoreRegion): |
| (WebCore::WebVTTParser::collectMetadataHeader): Deleted. |
| (WebCore::WebVTTParser::createNewRegion): Deleted. |
| * html/track/WebVTTParser.h: |
| |
| 2018-09-20 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [GStreamer][MSE] Add a default sample duration |
| https://bugs.webkit.org/show_bug.cgi?id=189788 |
| |
| Some WebM files don't provide sample durations, so we need to provide |
| a safe default in order for them to be playable. |
| |
| Reviewed by Michael Catanzaro. |
| |
| * platform/graphics/gstreamer/MediaSampleGStreamer.cpp: |
| (WebCore::MediaSampleGStreamer::MediaSampleGStreamer): |
| |
| 2018-09-20 Alicia Boya GarcÃa <aboya@igalia.com> |
| |
| [MSE] Use some tolerance when deciding whether a frame should be appended to the decode queue |
| https://bugs.webkit.org/show_bug.cgi?id=189782 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Ideally, container formats should use exact timestamps and frames |
| should not overlap. Unfortunately, there are lots of files out there |
| where this is not always the case. |
| |
| This is particularly a problem in WebM, where timestamps are expressed |
| in a power of 10 timescale, which forces some rounding. |
| |
| This patch makes SourceBuffer allow frames with a small overlaps |
| (<=1ms) as those usually found in WebM. 1 ms is chosen because it's |
| the default time scale of WebM files. |
| |
| * Modules/mediasource/SourceBuffer.cpp: |
| (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): |
| |
| 2018-09-20 Yacine Bandou <yacine.bandou@softathome.com> |
| |
| [EME] Add WebM sanitization |
| https://bugs.webkit.org/show_bug.cgi?id=189740 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| This patch adds support for sanitizing the WebM initialization data, |
| ensures there are no bogus values. |
| See https://www.w3.org/TR/encrypted-media/#dom-mediakeysession-generaterequest. |
| |
| Tests: imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html |
| |
| * Modules/encryptedmedia/InitDataRegistry.cpp: |
| (WebCore::sanitizeWebM): Added implementation, check if the initialization data doesn't empty and its size |
| should be less than 64KB, return the buffer copy if it is ok, otherwise a nullptr. |
| (WebCore::extractKeyIDsWebM): Added implementation. |
| |
| 2018-09-20 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer] Utilities cleanups |
| https://bugs.webkit.org/show_bug.cgi?id=189699 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The GstMappedBuffer now has a move constructor so that it can be easily |
| reused in the webaudiosrc element. The now-unused corresponding |
| buffer-mapping utilities are removed from the code-base. |
| |
| The HTTP source element used to handle a GstBuffer in its private |
| structure but this is no longer required since data is now pushed |
| in chunks, see bug #182829. |
| |
| * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: |
| (webKitWebAudioSrcLoop): |
| * platform/graphics/gstreamer/GStreamerCommon.cpp: |
| (WebCore::createGstBuffer): Deleted. |
| (WebCore::createGstBufferForData): Deleted. |
| (WebCore::getGstBufferDataPointer): Deleted. |
| (WebCore::mapGstBuffer): Deleted. |
| (WebCore::unmapGstBuffer): Deleted. |
| * platform/graphics/gstreamer/GStreamerCommon.h: |
| (WebCore::GstMappedBuffer::create): New method returning a |
| reference to a newly created GstMappedBuffer instance. |
| * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: |
| (webKitWebSrcStop): Remove reference to unused GstBuffer. |
| (CachedResourceStreamingClient::dataReceived): Ditto. |
| |
| 2018-09-20 Simon Fraser <simon.fraser@apple.com> |
| |
| Fix crash under FontCache::purgeInactiveFontData() when a memory warning fires |
| https://bugs.webkit.org/show_bug.cgi?id=189722 |
| rdar://problem/44182860 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| Hashing of FontPlatformData for cachedFonts() is somewhat broken because CFEqual() on CTFont |
| can return false when the fonts are actually the same, and have the same CFHash(). This |
| can result in multiple entries in cachedFonts() with the same Font. |
| |
| Then in FontCache::purgeInactiveFontData(), the loop that appends fonts to fontsToDelete |
| gets the value by reference, and WTFMoves it into fontsToDelete. This nulls out all |
| the entries sharing the same value, leaving null entries in the hash table. |
| We later crash at font->hasOneRef() when using one of those null entries. |
| |
| Fix by making a copy of the RefPtr<Font> in the loop, so the WTFMove doesn't nuke |
| the hash table entries. The entries will get removed at cachedFonts().remove() lower down. |
| |
| * platform/graphics/FontCache.cpp: |
| (WebCore::FontCache::purgeInactiveFontData): |
| |
| 2018-09-20 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Provide a way to query accelerated animations for internal testing |
| https://bugs.webkit.org/show_bug.cgi?id=189762 |
| |
| Reviewed by Dean Jackson. |
| |
| Expose a new internals.acceleratedAnimationsForElement(element) method to allow layout tests to query the current list |
| of accelerated animations for a given element. Currently only the animated property and animation speed are exposed, which |
| will allow us to identify missing, running and paused accelerated animations. |
| |
| * animation/DocumentTimeline.cpp: |
| (WebCore::DocumentTimeline::acceleratedAnimationsForElement const): |
| * animation/DocumentTimeline.h: |
| * platform/graphics/GraphicsLayer.h: |
| (WebCore::GraphicsLayer::acceleratedAnimationsForTesting const): |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::acceleratedAnimationsForElement): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-09-19 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Improve node statistics for rare data |
| https://bugs.webkit.org/show_bug.cgi?id=189775 |
| |
| Reviewed by Simon Fraser. |
| |
| Report reasons we created NodeRareData and ElementRareData in node statistics. |
| |
| Added NodeRareData::useTypes and ElementRareData::useTypes which returns OptionSet<NodeRareData::UseType> |
| indicating which instance member of the rare data is currently in use. |
| |
| * dom/Element.cpp: |
| * dom/Element.h: |
| * dom/ElementRareData.h: |
| (WebCore::defaultMinimumSizeForResizing): |
| (WebCore::ElementRareData::useTypes const): |
| * dom/Node.cpp: |
| (WebCore::stringForRareDataUseType): |
| (WebCore::Node::dumpStatistics): |
| * dom/NodeRareData.cpp: |
| * dom/NodeRareData.h: |
| (WebCore::NodeRareData::useTypes const): |
| |
| 2018-09-19 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r235917): 2% regression in Dromaeo CSS selector on MacBookPro11,4 |
| https://bugs.webkit.org/show_bug.cgi?id=189738 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| The regression was caused by the regundant walk to the parent element. Removed it to fix the regression. |
| |
| * cssjit/SelectorCompiler.cpp: |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthChildParentCheckAndRelationUpdate): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthLastChildParentCheckAndRelationUpdate): |
| |
| 2018-09-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add optional cap on partitioned cache max age |
| https://bugs.webkit.org/show_bug.cgi?id=189711 |
| <rdar://problem/39246837> |
| |
| Reviewed by Antti Koivisto and Chris Dumez. |
| |
| Test: http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html |
| |
| * platform/network/NetworkStorageSession.h: |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| (WebCore::NetworkStorageSession::maxAgeCacheCap): |
| Checks if a max age cap is set and returns it if the request |
| represents a prevalent resource. |
| (WebCore::NetworkStorageSession::setCacheMaxAgeCapForPrevalentResources): |
| (WebCore::NetworkStorageSession::resetCacheMaxAgeCapForPrevalentResources): |
| New functionality to receive a max age cap setting in the session. |
| |
| 2018-09-19 Youenn Fablet <youenn@apple.com> |
| |
| Layout Test webrtc/video-mute.html is flaky. |
| https://bugs.webkit.org/show_bug.cgi?id=177501 |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by updated test expectation. |
| |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::createBlackPixelBuffer): Make sure the whole buffer is properly initialized. |
| |
| 2018-09-19 David Kilzer <ddkilzer@apple.com> |
| |
| WebCoreNSURLSession leaks an NSString (_sessionDescription) in -dealloc |
| <https://webkit.org/b/189742> |
| <rdar://problem/44589774> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * platform/network/cocoa/WebCoreNSURLSession.h: |
| (WebCoreNSURLSession._sessionDescription): Change type from |
| NSString * to RetainPtr<NSString>. |
| * platform/network/cocoa/WebCoreNSURLSession.mm: Remove |
| @synthesized statement for sessionDescription so that custom |
| methods can be implemented to handle RetainPtr<NSString>. |
| (-[WebCoreNSURLSession sessionDescription]): Add. |
| (-[WebCoreNSURLSession setSessionDescription:]): Add. |
| |
| 2018-09-19 Youenn Fablet <youenn@apple.com> |
| |
| Implement sender/receiver getStats |
| https://bugs.webkit.org/show_bug.cgi?id=189707 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for sender and receiver getStats. |
| Also add support for peer connection selector parameter. |
| |
| Add the plumbing of the selector to LibWebRTCMediaEndpoint. |
| Then make use of libwebrtc overloaded methods to retrieve the right stats. |
| |
| Covered by updated/rebased tests. |
| |
| * Modules/mediastream/PeerConnectionBackend.h: |
| * Modules/mediastream/RTCPeerConnection.cpp: |
| (WebCore::RTCPeerConnection::getStats): |
| * Modules/mediastream/RTCPeerConnection.h: |
| * Modules/mediastream/RTCPeerConnection.idl: |
| * Modules/mediastream/RTCRtpReceiver.cpp: |
| (WebCore::RTCRtpReceiver::RTCRtpReceiver): |
| (WebCore::RTCRtpReceiver::getStats): |
| * Modules/mediastream/RTCRtpReceiver.h: |
| (WebCore::RTCRtpReceiver::create): |
| (WebCore::RTCRtpReceiver::backend): |
| * Modules/mediastream/RTCRtpReceiver.idl: |
| * Modules/mediastream/RTCRtpSender.cpp: |
| (WebCore::RTCRtpSender::create): |
| (WebCore::RTCRtpSender::RTCRtpSender): |
| (WebCore::RTCRtpSender::getStats): |
| * Modules/mediastream/RTCRtpSender.h: |
| * Modules/mediastream/RTCRtpSender.idl: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::getStats): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::getStats): |
| (WebCore::backendFromRTPSender): |
| (WebCore::createReceiverForSource): |
| (WebCore::LibWebRTCPeerConnectionBackend::createReceiver): |
| (WebCore::LibWebRTCPeerConnectionBackend::videoReceiver): |
| (WebCore::LibWebRTCPeerConnectionBackend::audioReceiver): |
| (WebCore::LibWebRTCPeerConnectionBackend::addTrack): |
| (WebCore::LibWebRTCPeerConnectionBackend::addUnifiedPlanTransceiver): |
| (WebCore::LibWebRTCPeerConnectionBackend::addTransceiver): |
| (WebCore::LibWebRTCPeerConnectionBackend::newRemoteTransceiver): |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h: |
| |
| 2018-09-19 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (r236006): New waitingForKey() requirement breaks Modern EME tests. |
| https://bugs.webkit.org/show_bug.cgi?id=189720 |
| <rdar://problem/44572140> |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| Always call waitingForKey() after calling initializationDataEncountered(). |
| |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initializationDataEncountered): |
| |
| 2018-09-19 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer] Add support for AV1 decoding |
| https://bugs.webkit.org/show_bug.cgi?id=189647 |
| |
| Tweaked by Xabier Rodriguez Calvar <calvaris@igalia.com>. |
| Reviewed by Žan Doberšek. |
| |
| AV1 can be muxed in MP4 and WebM containers. The test is an adaptation from Chromium's unittest: |
| https://chromium.googlesource.com/chromium/src/+/master/content/browser/media/media_canplaytype_browsertest.cc |
| |
| Test: media/media-can-play-av1.html |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::supportsType): Add AV1 |
| support. The av01 codec has to be explicitely checked, along with |
| the presence of a compatible AV1 decoder. |
| |
| 2018-09-18 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Limit capturing extra metrics for Web Inspector when not required. |
| https://bugs.webkit.org/show_bug.cgi?id=189520 |
| |
| Reviewed by Alex Christensen. |
| |
| Respect the value of NetworkDataTask::shouldCaptureExtraNetworkLoadMetrics() to reduce the process |
| time when they are not needed. |
| |
| No new tests because there's no behavior change. |
| |
| * platform/network/curl/CurlContext.cpp: |
| (WebCore::CurlHandle::getNetworkLoadMetrics): |
| (WebCore::CurlHandle::addExtraNetworkLoadMetrics): |
| * platform/network/curl/CurlContext.h: |
| * platform/network/curl/CurlRequest.cpp: |
| (WebCore::CurlRequest::CurlRequest): |
| (WebCore::CurlRequest::updateNetworkLoadMetrics): |
| * platform/network/curl/CurlRequest.h: |
| (WebCore::CurlRequest::create): |
| * platform/network/curl/ResourceHandleCurl.cpp: |
| (WebCore::ResourceHandle::createCurlRequest): |
| |
| 2018-09-18 Megan Gardner <megan_gardner@apple.com> |
| |
| Support Images Module Level 4's double-position gradient color stop syntax |
| https://bugs.webkit.org/show_bug.cgi?id=186154 |
| <rdar://problem/44158152> |
| |
| Reviewed by Simon Fraser. |
| |
| The CSS spec for all gradients allows for each color stop to have two angles to be used for hints. |
| This makes pie chart and checkerboard conic gradients much simpler to write. |
| Any time you want to have a hard line in a gradient, this syntax simplifies the gradient specification. |
| |
| Test: fast/gradients/conic-two-hints.html |
| Test: fast/gradients/linear-two-hints-angle.html |
| Test: fast/gradients/linear-two-hints.html |
| Test: fast/gradients/radial-two-hints.html |
| |
| * css/parser/CSSPropertyParserHelpers.cpp: |
| (WebCore::CSSPropertyParserHelpers::consumeAngularGradientColorStops): Removed. |
| (WebCore::CSSPropertyParserHelpers::consumeGradientColorStops): |
| |
| 2018-09-18 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove the unused RenderLayerCompositor::enclosingCompositorFlushingLayers() |
| https://bugs.webkit.org/show_bug.cgi?id=189689 |
| |
| Reviewed by Alex Christensen. |
| |
| enclosingCompositorFlushingLayers() was added in r76196 but never used. Also use |
| a SetForScope<>. |
| |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::flushPendingLayerChanges): |
| (WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers const): Deleted. |
| * rendering/RenderLayerCompositor.h: |
| |
| 2018-09-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [macOS] Frequent leaks seen under WebCore::gpuIDForDisplayMask |
| https://bugs.webkit.org/show_bug.cgi?id=189685 |
| <rdar://problem/44541974> |
| |
| Reviewed by Per Arne Vollan. |
| |
| * platform/mac/PlatformScreenMac.mm: |
| (WebCore::gpuIDForDisplayMask): |
| |
| 2018-09-18 Youenn Fablet <youenn@apple.com> |
| |
| Implement RTCRtpReceiver getContributingSources/getSynchronizationSources |
| https://bugs.webkit.org/show_bug.cgi?id=189671 |
| |
| Reviewed by Eric Carlson. |
| |
| Introduce implementation of these two methods by calling the libwebrtc corresponding method. |
| Add corresponding IDL as per spec. |
| Covered by rebased WPT tests. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediastream/RTCRtpContributingSource.h: Added. |
| * Modules/mediastream/RTCRtpContributingSource.idl: Added. |
| * Modules/mediastream/RTCRtpReceiver.h: |
| (WebCore::RTCRtpReceiver::getContributingSources const): |
| (WebCore::RTCRtpReceiver::getSynchronizationSources const): |
| * Modules/mediastream/RTCRtpReceiver.idl: |
| * Modules/mediastream/RTCRtpReceiverBackend.h: |
| (WebCore::RTCRtpReceiverBackend::getContributingSources const): |
| (WebCore::RTCRtpReceiverBackend::getSynchronizationSources const): |
| * Modules/mediastream/RTCRtpSynchronizationSource.h: Added. |
| * Modules/mediastream/RTCRtpSynchronizationSource.idl: Added. |
| * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: |
| (WebCore::fillRTCRtpContributingSource): |
| (WebCore::toRTCRtpContributingSource): |
| (WebCore::toRTCRtpSynchronizationSource): |
| (WebCore::LibWebRTCRtpReceiverBackend::getContributingSources const): |
| (WebCore::LibWebRTCRtpReceiverBackend::getSynchronizationSources const): |
| * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2018-09-18 Youenn Fablet <youenn@apple.com> |
| |
| Enable Unified Plan by default |
| https://bugs.webkit.org/show_bug.cgi?id=189675 |
| |
| Reviewed by Eric Carlson. |
| |
| RTCRtpTransceiver.currentDirection is now gated by the unified plan runtime flag. |
| This will allow easy feature detection of unified plan support. |
| Covered by updated test. |
| |
| * Modules/mediastream/RTCRtpTransceiver.idl: |
| |
| 2018-09-18 Per Arne Vollan <pvollan@apple.com> |
| |
| [WebVTT] change "middle" to "center" for consistency with CSS |
| https://bugs.webkit.org/show_bug.cgi?id=158478 |
| |
| Reviewed by Eric Carlson. |
| |
| No new tests, covered by existing tests. |
| |
| * html/track/TextTrackCueGeneric.cpp: |
| (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): |
| * html/track/VTTCue.cpp: |
| (WebCore::centerKeyword): |
| (WebCore::VTTCue::initialize): |
| (WebCore::VTTCue::align const): |
| (WebCore::VTTCue::setAlign): |
| (WebCore::VTTCue::calculateDisplayParameters): |
| (WebCore::VTTCue::setCueSettings): |
| (WebCore::middleKeyword): Deleted. |
| * html/track/VTTCue.h: |
| * html/track/WebVTTParser.cpp: |
| (WebCore::WebVTTTreeBuilder::buildFromString): |
| |
| 2018-09-18 Chris Dumez <cdumez@apple.com> |
| |
| "DidFirstVisuallyNonEmptyLayout" callback does not get called when restoring a page from PageCache |
| https://bugs.webkit.org/show_bug.cgi?id=189681 |
| <rdar://problem/44526171> |
| |
| Reviewed by Alex Christensen and Zalan Bujtas. |
| |
| The "DidFirstVisuallyNonEmptyLayout" callback was not getting called when restoring a page from PageCache |
| because the FrameView is restored from PageCache and we would fail to restore its flags (such as |
| m_firstVisuallyNonEmptyLayoutCallbackPending) when entering Page Cache. We now call reset those flags that |
| are related to layout miletones when entering PageCache so that layout milestone events properly get sent |
| again when restoring from Page Cache. |
| |
| * history/CachedFrame.cpp: |
| (WebCore::CachedFrame::CachedFrame): |
| |
| 2018-09-18 Manuel Rego Casasnovas <rego@igalia.com> |
| |
| [css-grid] Static position should use content-box, not padding-box |
| https://bugs.webkit.org/show_bug.cgi?id=189698 |
| |
| Reviewed by Javier Fernandez. |
| |
| This is a recent change by the CSSWG: |
| https://github.com/w3c/csswg-drafts/issues/3020 |
| |
| The spec text (https://drafts.csswg.org/css-grid/#static-position): |
| "The static position of an absolutely-positioned child |
| of a grid container is determined as if it were the sole grid item |
| in a grid area whose edges coincide with the content edges |
| of the grid container." |
| |
| Test: imported/w3c/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html |
| |
| * rendering/RenderGrid.cpp: |
| (WebCore::RenderGrid::prepareChildForPositionedLayout): |
| Simple change to use border and padding. |
| |
| 2018-09-18 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [EME][GStreamer] The current EME implementation doesn't support the waitingforkey event |
| https://bugs.webkit.org/show_bug.cgi?id=185590 |
| |
| Reviewed by Philippe Normand. |
| |
| When decryptors are blocked waiting for the key, instruct the |
| player to run the Wait for key algorithm. As per spec, if we run |
| out of blocks pending to decrypt because we don't have the key, we |
| request running the algorithm again. |
| |
| Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: |
| (WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered): |
| (WebCore::MediaPlayerPrivateGStreamerBase::reportWaitingForKey): |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| (webkitMediaCommonEncryptionDecryptTransformInPlace): |
| (webkitMediaCommonEncryptionDecryptSinkEventHandler): |
| |
| 2018-09-12 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Update composedPath to match the latest spec |
| https://bugs.webkit.org/show_bug.cgi?id=180378 |
| <rdar://problem/42843004> |
| |
| Reviewed by Darin Adler. |
| |
| This patch makes the check for whether a given node in the event path be included in composedPath |
| pre-determined at the time of the event dispatching per https://github.com/whatwg/dom/issues/525. |
| This was a fix for the issue that if an event listener in a closed shadow tree removes a node in the |
| same tree in the event path, then composedPath called on its shadow host, for example, will include |
| the removed node since it's no longer in the closed shadow tree. |
| |
| Naively, implementing this behavior would require remembering the original document or shadow root |
| of each node in the event path as well as its parent shadow root, or worse which node is disclosed |
| to every other node at the time of computing the event path. |
| |
| This patch takes a more novel and efficient approach to implement the new behavior by adding a single |
| integer indicating the number of closed-mode shadow root ancestors of each node in the event path. |
| In computePathUnclosedToTarget, any node whose *depth* is greater than the context object is excluded. |
| |
| Consider the following example: |
| div ------- ShadowRoot (closed) |
| +- span +- slot |
| If an event is dispatched on span, then the event path would be [span, slot, ShadowRoot, div]. Then |
| the values of integers assigned to each node would be: [0, 1, 1, 0] respectively. When composedPath |
| is called on span or div, slot and ShadowRoot are excluded because they have a greater *depth* value. |
| |
| Unfortunately, this simplistic solution doesn't work when there are multiple shadow roots of the same |
| depth through which an event is dispatched as in: |
| section -- ShadowRoot (closed, SR2) |
| | +- slot (s2) |
| +div ------ ShadowRoot (closed, SR1) |
| +- span +- slot (s1) |
| If an event is dispatched on span, the event path would be [span, s1, SR1, div, s2, SR2, section]. |
| The values of integers assigned are: [0, 1, 1, 0, 1, 1, 0] respectively. When composedPath is called |
| on SR1, the simplistic approach would include s2 and SR2, which would be wrong. |
| |
| To account for this case, in computePathUnclosedToTarget, we traverse the event path upwards (i.e. |
| ancestors) and downwards (i.e. descendants) from the context object and decrease the *allowed depth* |
| of shadow trees when we traverse out of a shadow tree in either direction. When traversing upwards, |
| therefore, moving out of a shadow root to its host would would decrease the allowed depth. When |
| traversing dowards, moving from a slot element to its assigned node would decrease the allowed depth. |
| |
| Note that the depths can be negative when a composed event is dispatched inside a closed shadow tree, |
| and it gets out of its shadow host. |
| |
| Unfortunately, the latest DOM specification has a bug and doesn't match the behavior of Chrome. This |
| patch proposes a new algorithm which can be adopted in https://github.com/whatwg/dom/issues/684. |
| |
| Test: imported/w3c/web-platform-tests/shadow-dom/event-composed-path-after-dom-mutation.html |
| |
| * dom/EventContext.cpp: |
| (WebCore::EventContext::EventContext): |
| (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext): |
| (WebCore::TouchEventContext::TouchEventContext): |
| * dom/EventContext.h: |
| (WebCore::EventContext::closedShadowDepth const): Added. |
| * dom/EventPath.cpp: |
| (WebCore::WindowEventContext::WindowEventContext): |
| (WebCore::EventPath::buildPath): Compute the closed shadow tree's depths for each node in the path. |
| (WebCore::computePathUnclosedToTarget const): Implemented the aforementioned algorithm. |
| (WebCore::EventPath::EventPath): |
| |
| 2018-09-17 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t |
| https://bugs.webkit.org/show_bug.cgi?id=185339 |
| |
| Reviewed by Mark Lam. |
| |
| * fileapi/ThreadableBlobRegistry.cpp: |
| (WebCore::ThreadableBlobRegistry::blobSize): |
| * platform/cocoa/NetworkExtensionContentFilter.h: |
| * platform/cocoa/NetworkExtensionContentFilter.mm: |
| (WebCore::NetworkExtensionContentFilter::initialize): |
| (WebCore::NetworkExtensionContentFilter::willSendRequest): |
| (WebCore::NetworkExtensionContentFilter::responseReceived): |
| (WebCore::NetworkExtensionContentFilter::addData): |
| (WebCore::NetworkExtensionContentFilter::finishedAddingData): |
| (WebCore::NetworkExtensionContentFilter::handleDecision): |
| Use per-function BinarySemaphore instead of holding it in NetworkExtensionContentFilter's field. |
| |
| * platform/glib/FileMonitorGLib.cpp: |
| (WebCore::FileMonitor::FileMonitor): |
| (WebCore::FileMonitor::~FileMonitor): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange): |
| Use BinarySemaphore. And remove unused dispatch_semaphore_t. |
| |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): |
| (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): |
| (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): |
| (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): |
| (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): |
| (WebCore::SourceBufferPrivateAVFObjC::abort): |
| (WebCore::SourceBufferPrivateAVFObjC::setCDMSession): |
| (WebCore::SourceBufferPrivateAVFObjC::setCDMInstance): |
| Use Box<Semaphore> and Box<BinarySemaphore>. |
| |
| * platform/graphics/cocoa/WebCoreDecompressionSession.h: |
| * platform/graphics/cocoa/WebCoreDecompressionSession.mm: |
| (WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): |
| Remove unused dispatch_semaphore_t. |
| |
| * platform/network/cf/ResourceHandleCFNet.cpp: |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: |
| (WebCore::getRunLoop): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse): |
| (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace): |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h: |
| * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: |
| (-[WebCoreResourceHandleAsOperationQueueDelegate initWithHandle:messageQueue:]): |
| (-[WebCoreResourceHandleAsOperationQueueDelegate detachHandle]): |
| (-[WebCoreResourceHandleAsOperationQueueDelegate dealloc]): |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]): |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]): |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]): |
| (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]): |
| Use BinarySemaphore instead. |
| |
| 2018-09-17 Simon Fraser <simon.fraser@apple.com> |
| |
| Many modern media control tests leak documents in testing |
| https://bugs.webkit.org/show_bug.cgi?id=189437 |
| |
| Reviewed by Darin Adler. |
| |
| In order to accurately detect leaks in media controls tests which use lots of |
| SVGImages, we have to: |
| - Fire a zero-delay timer after the postTask, in order for ImagesLoader's m_derefElementTimer |
| to clear references to elements. |
| - Have releaseCriticalMemory() call CachedResourceLoader's garbageCollectDocumentResources() |
| to drop the last handle to the CachedResource for an SVGImage. |
| - Call WKBundleReleaseMemory() after the GC and timer, since we need garbageCollectDocumentResources() |
| to run again after that timer has fired. |
| |
| This should fix most of the spurious leak reports involving SVGImage documents. |
| |
| * page/MemoryRelease.cpp: |
| (WebCore::releaseCriticalMemory): |
| |
| 2018-09-17 Jer Noble <jer.noble@apple.com> |
| |
| Add support for HEVC codec types in Media Capabilities |
| https://bugs.webkit.org/show_bug.cgi?id=189565 |
| |
| Reviewed by Eric Carlson. |
| |
| Test: media/hevc-codec-parameters.html |
| |
| Add some utility methods for parsing HEVC codec strings, and using those parsed |
| values to query the platform for detailed support for HEVC decoding. |
| |
| Drive-by fix: Modify MediaEngineConfigurationFactory to allow for null function |
| pointers in the encode/decode factory pair. |
| |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/cocoa/VideoToolboxSoftLink.cpp: |
| * platform/cocoa/VideoToolboxSoftLink.h: |
| * platform/graphics/HEVCUtilities.cpp: Added. |
| (WebCore::parseHEVCCodecParameters): |
| * platform/graphics/HEVCUtilities.h: Added. |
| * platform/graphics/cocoa/HEVCUtilitiesCocoa.cpp: Added. |
| (WebCore::validateHEVCParameters): |
| * platform/graphics/cocoa/HEVCUtilitiesCocoa.h: Added. |
| * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp: Added. |
| (WebCore::videoCodecTypeFromRFC4281Type): |
| (WebCore::createMediaPlayerDecodingConfigurationCocoa): |
| * platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h: Added. |
| * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: |
| (WebCore::factories): |
| (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): |
| (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): |
| * testing/Internals.cpp: |
| (WebCore::Internals::parseHEVCCodecParameters): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-09-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: generate CSSKeywordCompletions from backend values |
| https://bugs.webkit.org/show_bug.cgi?id=189041 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Modified existing test inspector/css/getSupportedCSSProperties.html. |
| |
| * inspector/agents/InspectorCSSAgent.cpp: |
| (WebCore::InspectorCSSAgent::getSupportedCSSProperties): |
| Send alias and longhand information for all properties, and any known keyword values for |
| those applicable. This makes use of `CSSParserFastPaths::isValidKeywordPropertyAndValue` to |
| determine if a given keyword is a valid value for each property. This only generates a list |
| for properties who have no non-keyword values. |
| |
| * css/makeprop.pl: |
| * css/makevalues.pl: |
| Create additional helper functions/constants for retrieving strings of each CSS keyword. |
| |
| * css/CSSProperty.h: |
| (WebCore::CSSProperty::aliasesForProperty): |
| |
| * css/CSSPrimitiveValue.cpp: |
| (WebCore::valueName): |
| |
| * css/CSSValuePool.cpp: |
| (WebCore::CSSValuePool::CSSValuePool): |
| (WebCore::CSSValuePool::createIdentifierValue): |
| |
| 2018-09-17 Youenn Fablet <youenn@apple.com> |
| |
| track.onmute isn't called for a remote MediaStreamTrack when its counter part track is removed from the peer connection |
| https://bugs.webkit.org/show_bug.cgi?id=176281 |
| <rdar://problem/44525674> |
| |
| Reviewed by Eric Carlson. |
| |
| Listen to libwebrtc remove track callbacks. |
| Implement handling as per https://w3c.github.io/webrtc-pc/#process-remote-track-removal. |
| This triggers a mute event on the track. |
| |
| Test: webrtc/remove-track.html |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::LibWebRTCMediaEndpoint::removeRemoteTrack): |
| (WebCore::LibWebRTCMediaEndpoint::OnRemoveTrack): |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: |
| (WebCore::LibWebRTCPeerConnectionBackend::shouldOfferAllowToReceive const): |
| Drive by fix: Plan B code path does not mandate having an rtc backend for each sender. |
| |
| 2018-09-17 Simon Fraser <simon.fraser@apple.com> |
| |
| Add more Fullscreen logging |
| https://bugs.webkit.org/show_bug.cgi?id=189656 |
| |
| Reviewed by Jer Noble. |
| |
| Add some fullscreen logging so I can tell whether WebFullScreenManager ever releases |
| the fullscreen element. |
| |
| * platform/cocoa/VideoFullscreenModelVideoElement.mm: |
| (VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement): |
| (VideoFullscreenModelVideoElement::~VideoFullscreenModelVideoElement): |
| (VideoFullscreenModelVideoElement::setVideoElement): |
| |
| 2018-09-14 Simon Fraser <simon.fraser@apple.com> |
| |
| Add support for dumping the GraphicsLayer tree via notifyutil |
| https://bugs.webkit.org/show_bug.cgi?id=189639 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Make "notifyutil -p com.apple.WebKit.showGraphicsLayerTree" work. It dumps the GraphicsLayer tree |
| for each top-level document (GraphicsLayers are connected across frame boundaries, so this prints |
| the entire tree for each main frame). |
| |
| It uses WTFLogAlways rather than fprintf() so output shows on all platforms (other tree dumps should |
| be converted in the same way). |
| |
| * page/mac/PageMac.mm: |
| (WebCore::Page::platformInitialize): |
| * platform/graphics/GraphicsLayer.cpp: |
| (showGraphicsLayerTree): |
| * rendering/RenderLayerCompositor.cpp: |
| (showGraphicsLayerTreeForCompositor): |
| * rendering/RenderLayerCompositor.h: |
| * rendering/RenderObject.cpp: |
| (WebCore::printGraphicsLayerTreeForLiveDocuments): |
| * rendering/RenderObject.h: |
| |
| 2018-09-17 Christopher Reid <chris.reid@sony.com> |
| |
| [Curl] Add schema version and enable auto vacuum for cookie database. |
| https://bugs.webkit.org/show_bug.cgi?id=189669 |
| |
| Reviewed by Alex Christensen. |
| |
| Turning on auto incremental vacuuming and adding versioning to the database. Right now we |
| reset tables if there's an unknown schema or if the none is set. There is placeholder logic |
| in place to upgrade databases as the schema changes in the future. |
| |
| Tested by checking the database manually after launching MiniBrowser. |
| |
| * platform/network/curl/CookieJarDB.cpp: |
| (WebCore::CookieJarDB::openDatabase): |
| (WebCore::CookieJarDB::verifySchemaVersion): |
| (WebCore::CookieJarDB::deleteAllTables): |
| (WebCore::CookieJarDB::createPrepareStatement): |
| (WebCore::CookieJarDB::getPrepareStatement): |
| (WebCore::CookieJarDB::executeSimpleSql): |
| * platform/network/curl/CookieJarDB.h: |
| * platform/network/curl/NetworkStorageSessionCurl.cpp: |
| (WebCore::defaultSession): |
| * platform/sql/SQLiteDatabase.cpp: |
| (WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum): fixed a bug. |
| |
| 2018-09-14 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Re-order Node flags based on semantics |
| https://bugs.webkit.org/show_bug.cgi?id=189643 |
| |
| Reviewed by Simon Fraser. |
| |
| Re-ordered Node flags based on their category and subclasses of Node which use them. |
| |
| * dom/Node.h: |
| |
| 2018-09-17 Simon Fraser <simon.fraser@apple.com> |
| |
| Add more ResourceLoading logging, particularly in MemoryCache code |
| https://bugs.webkit.org/show_bug.cgi?id=189651 |
| |
| Reviewed by Tim Horton. |
| |
| Adding more logging to the ResourceLoading log channel, which I found useful |
| when trying to understand cached SVGImage lifetimes (bug 189437). |
| |
| * loader/cache/CachedResource.cpp: |
| (WebCore::CachedResource::deleteIfPossible): |
| * loader/cache/CachedResourceLoader.cpp: |
| (WebCore::CachedResourceLoader::requestResource): |
| (WebCore::CachedResourceLoader::garbageCollectDocumentResources): |
| * loader/cache/MemoryCache.cpp: |
| (WebCore::MemoryCache::add): |
| (WebCore::MemoryCache::pruneLiveResourcesToSize): |
| (WebCore::MemoryCache::pruneDeadResources): |
| (WebCore::MemoryCache::pruneDeadResourcesToSize): |
| (WebCore::MemoryCache::remove): |
| (WebCore::MemoryCache::dumpLRULists const): |
| |
| 2018-09-17 Jer Noble <jer.noble@apple.com> |
| |
| Enable USE_MEDIAREMOTE on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=189096 |
| |
| Reviewed by Eric Carlson. |
| |
| Migrate to using MediaRemote.framework on iOS from MediaPlayer.framework. This unifies the |
| Now Playing implementation on iOS and Mac. |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/audio/cocoa/MediaSessionManagerCocoa.cpp: Removed. |
| * platform/audio/cocoa/MediaSessionManagerCocoa.h: |
| * platform/audio/cocoa/MediaSessionManagerCocoa.mm: Renamed from Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm. |
| (PlatformMediaSessionManager::sharedManager): |
| (PlatformMediaSessionManager::sharedManagerIfExists): |
| (MediaSessionManagerCocoa::updateSessionState): |
| (MediaSessionManagerCocoa::beginInterruption): |
| (MediaSessionManagerCocoa::scheduleUpdateNowPlayingInfo): |
| (MediaSessionManagerCocoa::sessionWillBeginPlayback): |
| (MediaSessionManagerCocoa::sessionDidEndRemoteScrubbing): |
| (MediaSessionManagerCocoa::removeSession): |
| (MediaSessionManagerCocoa::sessionWillEndPlayback): |
| (MediaSessionManagerCocoa::clientCharacteristicsChanged): |
| (MediaSessionManagerCocoa::sessionCanProduceAudioChanged): |
| (MediaSessionManagerCocoa::nowPlayingEligibleSession): |
| (MediaSessionManagerCocoa::updateNowPlayingInfo): |
| * platform/audio/ios/MediaSessionManagerIOS.h: |
| (): Deleted. |
| * platform/audio/ios/MediaSessionManagerIOS.mm: |
| (WebCore::MediaSessionManageriOS::nowPlayingEligibleSession): Deleted. |
| (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Deleted. |
| (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Deleted. |
| (WebCore::MediaSessionManageriOS::removeSession): Deleted. |
| (WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Deleted. |
| (WebCore::MediaSessionManageriOS::clientCharacteristicsChanged): Deleted. |
| * platform/audio/mac/MediaSessionManagerMac.h: Removed. |
| |
| 2018-09-17 Frederic Wang <fwang@igalia.com> |
| |
| Build error in ImageBufferCG when compiled with IOSurfacePool |
| https://bugs.webkit.org/show_bug.cgi?id=189579 |
| |
| Reviewed by Tim Horton. |
| |
| IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing |
| compilation errors when files in the same unified source do not agree on the definition. |
| This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h |
| to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files. |
| Finally some minors changes to explicitly declare/define ImageBuffer are performed in order |
| to prevent future issues with Unified build rotating. |
| |
| No new tests, behavior unchanged. |
| |
| * html/HTMLCanvasElement.cpp: Explicitly include ImageBuffer.h since it's used in this file. |
| * platform/graphics/cg/ImageBufferDataCG.h: Move definition into Platform.h. |
| * platform/graphics/cocoa/IOSurface.h: Forward-declare ImageBuffer since it's used in this |
| header. |
| |
| 2018-09-17 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Respond with requested authentication scheme for authentication challenge. |
| https://bugs.webkit.org/show_bug.cgi?id=189318 |
| |
| Reviewed by Alex Christensen. |
| |
| Curl port depends on libcurl's authentication handling by enabling CURLAUTH_ANY. With this |
| mode, the round-trip communication between the client and the server is handled by libcurl |
| internally. That's okay for many cases. But when initial request has a credentials |
| (i.e. XMLHttpRequest), there's no valid chance to store credential to the storage because |
| the returned response is not 401. |
| |
| Passes following tests: |
| - http/tests/websocket/tests/hybi/httponly-cookie.pl |
| - http/tests/websocket/tests/hybi/secure-cookie-insecure-connection.pl |
| - http/tests/websocket/tests/hybi/secure-cookie-secure-connection.pl |
| - http/tests/xmlhttprequest/basic-auth-default.html |
| - http/tests/xmlhttprequest/cross-origin-authorization.html |
| - http/tests/xmlhttprequest/logout.html |
| - http/tests/xmlhttprequest/null-auth.php |
| - http/tests/xmlhttprequest/re-login-async.html |
| - http/tests/xmlhttprequest/re-login.html |
| - http/tests/xmlhttprequest/redirect-credentials-responseURL.html |
| - http/tests/xmlhttprequest/remember-bad-password.html |
| |
| * platform/network/ResourceHandle.h: |
| * platform/network/curl/CurlContext.cpp: |
| (WebCore::CurlHandle::setHttpAuthUserPass): |
| (WebCore::CurlHandle::enableHttpAuthentication): Deleted. |
| * platform/network/curl/CurlContext.h: |
| * platform/network/curl/CurlRequest.cpp: |
| (WebCore::CurlRequest::setAuthenticationScheme): |
| (WebCore::CurlRequest::setupTransfer): |
| * platform/network/curl/CurlRequest.h: |
| * platform/network/curl/ResourceHandleCurl.cpp: |
| (WebCore::ResourceHandle::start): |
| (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): |
| (WebCore::ResourceHandle::receivedCredential): |
| (WebCore::ResourceHandle::getCredential): |
| (WebCore::ResourceHandle::restartRequestWithCredential): |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| (WebCore::ResourceHandle::continueAfterWillSendRequest): |
| |
| 2018-09-17 Youenn Fablet <youenn@apple.com> |
| |
| Enable VCP for iOS and reenable it for MacOS |
| https://bugs.webkit.org/show_bug.cgi?id=189635 |
| <rdar://problem/43621029> |
| |
| Reviewed by Eric Carlson. |
| |
| Covered by exsiting and modified tests. |
| Instead of using libwebrtc YUV frames for black frames, use CVPixelBuffer to make it efficient. |
| Add internal API to know whether VCP is enabled so as to make capture-webrtc test pass on all platforms. |
| |
| * platform/mediastream/RealtimeOutgoingVideoSource.cpp: |
| (WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded): |
| * platform/mediastream/RealtimeOutgoingVideoSource.h: |
| * platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| (WebCore::createBlackPixelBuffer): |
| (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: |
| (WebCore::RealtimeOutgoingVideoSourceCocoa::createBlackFrame): |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: |
| * testing/Internals.cpp: |
| (WebCore::Internals::supportsVCPEncoder): |
| * testing/Internals.h: |
| * testing/Internals.idl: |
| |
| 2018-09-17 Chris Dumez <cdumez@apple.com> |
| |
| PSON: window.open() with 'noopener' should only process-swap cross-site, not cross-origin |
| https://bugs.webkit.org/show_bug.cgi?id=189602 |
| <rdar://problem/44430549> |
| |
| Reviewed by Geoff Garen. |
| |
| * loader/DocumentLoader.cpp: |
| (WebCore::DocumentLoader::setTriggeringAction): |
| * loader/DocumentLoader.h: |
| * loader/FrameLoadRequest.h: |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadURL): |
| (WebCore::FrameLoader::loadWithNavigationAction): |
| (WebCore::FrameLoader::loadWithDocumentLoader): |
| (WebCore::FrameLoader::loadPostRequest): |
| (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): |
| (WebCore::FrameLoader::loadDifferentDocumentItem): |
| Move NavigationAction's opener setting to loadWithNavigationAction() as this is a better bottleneck. |
| Otherwise, we'd have to set it at several call sites. Also move the NavigationAction around instead |
| of copying it. |
| |
| * loader/FrameLoader.h: |
| (WebCore::FrameLoader::loadWithNavigationAction): |
| * loader/NavigationAction.h: |
| (WebCore::NavigationAction::setShouldOpenExternalURLsPolicy): |
| * loader/PolicyChecker.cpp: |
| (WebCore::PolicyChecker::checkNavigationPolicy): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| |
| 2018-09-17 Darin Adler <darin@apple.com> |
| |
| Use OpaqueJSString rather than JSRetainPtr inside WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=189652 |
| |
| Reviewed by Saam Barati. |
| |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| (WebCore::jsValueWithDictionaryInContext): Use OpaqueJSString::create. |
| (WebCore::jsValueWithAVMetadataItemInContext): Use adoptCF. |
| |
| * platform/mac/SerializedPlatformRepresentationMac.mm: |
| (WebCore::jsValueWithDictionaryInContext): Use OpaqueJSString::create. |
| |
| 2018-09-08 Darin Adler <darin@apple.com> |
| |
| Streamline JSRetainPtr, fix leaks of JSString and JSGlobalContext |
| https://bugs.webkit.org/show_bug.cgi?id=189455 |
| |
| Reviewed by Keith Miller. |
| |
| * Modules/plugins/QuickTimePluginReplacement.mm: |
| (WebCore::jsValueWithDictionaryInContext): Adding a missing |
| JSStringRelease to fix a leak. |
| |
| 2018-09-15 Rob Buis <rbuis@igalia.com> |
| |
| XMLHttpRequest::createResponseBlob() should create a Blob with type for empty response |
| https://bugs.webkit.org/show_bug.cgi?id=189627 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Right now we return an empty Blob without type when the response is empty, but |
| it should always include the type [1]. |
| |
| Test: web-platform-tests/xhr/overridemimetype-blob.html |
| |
| [1] https://xhr.spec.whatwg.org/#blob-response |
| |
| * xml/XMLHttpRequest.cpp: |
| (WebCore::XMLHttpRequest::createResponseBlob): |
| |
| 2018-09-14 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Bug fix on some inaccurate values in NetworkLoadMetrics. |
| https://bugs.webkit.org/show_bug.cgi?id=189530 |
| |
| Reviewed by Alex Christensen. |
| |
| Curl port uses the start time libcurl provided. But there's a lug between main thread and Curl thread. |
| Record the start time of request instead of libcurl's start timing and use it to measure the metrics. |
| Also respondEnd was not correctly recorded and fixed. |
| |
| No new tests because it cannot be measured from DRT. |
| |
| * platform/network/ResourceHandleInternal.h: |
| * platform/network/curl/CurlContext.cpp: |
| (WebCore::CurlHandle::getNetworkLoadMetrics): |
| * platform/network/curl/CurlContext.h: |
| * platform/network/curl/CurlRequest.cpp: |
| (WebCore::CurlRequest::start): |
| (WebCore::CurlRequest::setupTransfer): |
| (WebCore::CurlRequest::didCompleteTransfer): |
| (WebCore::CurlRequest::updateNetworkLoadMetrics): |
| * platform/network/curl/CurlRequest.h: |
| (WebCore::CurlRequest::setStartTime): |
| * platform/network/curl/ResourceHandleCurl.cpp: |
| (WebCore::ResourceHandle::start): |
| (WebCore::ResourceHandle::restartRequestWithCredential): |
| (WebCore::ResourceHandle::platformLoadResourceSynchronously): |
| (WebCore::ResourceHandle::willSendRequest): |
| (WebCore::ResourceHandle::continueAfterWillSendRequest): |
| |
| 2018-09-14 Justin Fan <justin_fan@apple.com> |
| |
| WebGL 2 conformance: rgb-format-support.html |
| https://bugs.webkit.org/show_bug.cgi?id=189610 |
| <rdar://problem/44403343> |
| |
| Reviewed by Dean Jackson. |
| |
| Implementing getInternalformatParameter (emulating on macOS) and updating |
| renderbufferStorage{Multisample} for WebGL 2 conformance. |
| |
| Test: webgl/2.0.0/conformance2/rendering/rgb-format-support.html enabled. |
| |
| * html/canvas/WebGL2RenderingContext.cpp: |
| (WebCore::isRenderableInternalformat): |
| (WebCore::WebGL2RenderingContext::getInternalformatParameter): |
| (WebCore::WebGL2RenderingContext::renderbufferStorageMultisample): |
| (WebCore::WebGL2RenderingContext::renderbufferStorage): |
| (WebCore::WebGL2RenderingContext::baseInternalFormatFromInternalFormat): |
| (WebCore::WebGL2RenderingContext::isIntegerFormat): |
| * platform/graphics/GraphicsContext3D.h: |
| * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: |
| (WebCore::GraphicsContext3D::getInternalformativ): |
| (WebCore::GraphicsContext3D::renderbufferStorageMultisample): |
| |
| 2018-09-14 Justin Michaud <justin_michaud@apple.com> |
| |
| Add support for spreadMethod=reflect and repeat on SVG gradients (for CoreGraphics platforms) |
| https://bugs.webkit.org/show_bug.cgi?id=5968 |
| |
| Add support for spreadMethod=repeat and reflect. Also, the opacity of a gradient is now |
| the result of multiplying stop-opacity with the opacity of the color. |
| |
| Reviewed by Simon Fraser. |
| |
| Tests: svg/gradients/spreadMethod-expected.svg |
| svg/gradients/spreadMethod.svg |
| svg/gradients/spreadMethodAlpha-expected.svg |
| svg/gradients/spreadMethodAlpha.svg |
| svg/gradients/spreadMethodClose0-expected-mismatch.svg |
| svg/gradients/spreadMethodClose0.svg |
| svg/gradients/spreadMethodClose1-expected-mismatch.svg |
| svg/gradients/spreadMethodClose1.svg |
| svg/gradients/spreadMethodClose2-expected.svg |
| svg/gradients/spreadMethodClose2.svg |
| svg/gradients/spreadMethodDiagonal-expected.svg |
| svg/gradients/spreadMethodDiagonal.svg |
| svg/gradients/spreadMethodDiagonal2-expected.svg |
| svg/gradients/spreadMethodDiagonal2.svg |
| svg/gradients/spreadMethodDuplicateStop-expected.svg |
| svg/gradients/spreadMethodDuplicateStop.svg |
| svg/gradients/spreadMethodReversed-expected.svg |
| svg/gradients/spreadMethodReversed.svg |
| svg/gradients/stopAlpha-expected.svg |
| svg/gradients/stopAlpha.svg |
| |
| * platform/graphics/cg/GradientCG.cpp: |
| (WebCore::Gradient::paint): |
| * svg/SVGStopElement.cpp: |
| (WebCore::SVGStopElement::stopColorIncludingOpacity const): |
| |
| 2018-09-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, attempt to fix the iOSMac build after r236015. |
| |
| * platform/graphics/cv/PixelBufferResizer.mm: |
| (WebCore::PixelBufferResizer::PixelBufferResizer): |
| |
| 2018-09-11 Simon Fraser <simon.fraser@apple.com> |
| |
| Make GraphicsLayers ref-counted, so their tree can persist when disconnected from RenderLayerBackings |
| https://bugs.webkit.org/show_bug.cgi?id=189521 |
| |
| Reviewed by Tim Horton. |
| |
| Make GraphicsLayer be RefCounted<GraphicsLayer>. GraphicsLayers own their children, via a Vector<Ref<GraphicsLayer>>. |
| |
| RenderLayerBacking and other holders of GraphicsLayers use RefPtr<GraphicsLayer>. |
| |
| All the other changes are just to adapt to the new ownership patterns. |
| |
| I verified that no GraphicsLayers were leaked or abandoned after this change. |
| |
| No behavior change. |
| |
| * page/PageOverlayController.cpp: |
| (WebCore::PageOverlayController::layerWithDocumentOverlays): |
| (WebCore::PageOverlayController::layerWithViewOverlays): |
| (WebCore::PageOverlayController::installPageOverlay): |
| (WebCore::PageOverlayController::uninstallPageOverlay): |
| (WebCore::PageOverlayController::setPageOverlayNeedsDisplay): |
| (WebCore::PageOverlayController::didChangeViewSize): |
| (WebCore::PageOverlayController::didChangeDocumentSize): |
| (WebCore::PageOverlayController::didChangeSettings): |
| (WebCore::PageOverlayController::paintContents): |
| (WebCore::PageOverlayController::didChangeOverlayFrame): |
| (WebCore::PageOverlayController::didChangeOverlayBackgroundColor): |
| * page/PageOverlayController.h: |
| * page/mac/ServicesOverlayController.h: |
| (WebCore::ServicesOverlayController::Highlight::layer const): |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::Highlight::Highlight): |
| (WebCore::ServicesOverlayController::Highlight::invalidate): |
| (WebCore::ServicesOverlayController::Highlight::fadeIn): |
| (WebCore::ServicesOverlayController::Highlight::fadeOut): |
| (WebCore::ServicesOverlayController::Highlight::didFinishFadeOutAnimation): |
| (WebCore::ServicesOverlayController::determineActiveHighlight): |
| * platform/graphics/GraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::GraphicsLayer): |
| (WebCore::GraphicsLayer::willBeDestroyed): |
| (WebCore::GraphicsLayer::setChildren): |
| (WebCore::GraphicsLayer::addChild): |
| (WebCore::GraphicsLayer::addChildAtIndex): |
| (WebCore::GraphicsLayer::addChildBelow): |
| (WebCore::GraphicsLayer::addChildAbove): |
| (WebCore::GraphicsLayer::replaceChild): |
| (WebCore::GraphicsLayer::removeAllChildren): |
| (WebCore::GraphicsLayer::removeFromParent): |
| (WebCore::GraphicsLayer::setMaskLayer): |
| (WebCore::GraphicsLayer::noteDeviceOrPageScaleFactorChangedIncludingDescendants): |
| (WebCore::GraphicsLayer::distributeOpacity): |
| (WebCore::GraphicsLayer::traverse): |
| (WebCore::dumpChildren): |
| * platform/graphics/GraphicsLayer.h: |
| (WebCore::GraphicsLayer::children const): |
| (WebCore::GraphicsLayer::children): |
| (WebCore::GraphicsLayer::maskLayer const): |
| (WebCore::GraphicsLayer::replicaLayer const): |
| (WebCore::GraphicsLayer::beingDestroyed const): |
| (WebCore::GraphicsLayer:: const): Deleted. |
| * platform/graphics/GraphicsLayerFactory.h: |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::GraphicsLayerCA::setChildren): |
| (WebCore::GraphicsLayerCA::addChild): |
| (WebCore::GraphicsLayerCA::addChildAtIndex): |
| (WebCore::GraphicsLayerCA::addChildBelow): |
| (WebCore::GraphicsLayerCA::addChildAbove): |
| (WebCore::GraphicsLayerCA::replaceChild): |
| (WebCore::GraphicsLayerCA::setMaskLayer): |
| (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const): |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| (WebCore::GraphicsLayerCA::updateSublayerList): |
| (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::GraphicsLayerTextureMapper::setChildren): |
| (WebCore::GraphicsLayerTextureMapper::addChild): |
| (WebCore::GraphicsLayerTextureMapper::addChildAtIndex): |
| (WebCore::GraphicsLayerTextureMapper::addChildAbove): |
| (WebCore::GraphicsLayerTextureMapper::addChildBelow): |
| (WebCore::GraphicsLayerTextureMapper::replaceChild): |
| (WebCore::GraphicsLayerTextureMapper::setMaskLayer): |
| (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers): |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.h: |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect): |
| (WebCore::CoordinatedGraphicsLayer::addChild): |
| (WebCore::CoordinatedGraphicsLayer::addChildAtIndex): |
| (WebCore::CoordinatedGraphicsLayer::addChildAbove): |
| (WebCore::CoordinatedGraphicsLayer::addChildBelow): |
| (WebCore::CoordinatedGraphicsLayer::replaceChild): |
| (WebCore::CoordinatedGraphicsLayer::setMaskLayer): |
| (WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers): |
| (WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers): |
| (WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded): |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: |
| * platform/graphics/win/GraphicsLayerDirect2D.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::GraphicsLayerDirect2D::GraphicsLayerDirect2D): Deleted. |
| (WebCore::GraphicsLayerDirect2D::initialize): Deleted. |
| (WebCore::GraphicsLayerDirect2D::~GraphicsLayerDirect2D): Deleted. |
| (WebCore::GraphicsLayerDirect2D::setNeedsDisplay): Deleted. |
| (WebCore::GraphicsLayerDirect2D::setNeedsDisplayInRect): Deleted. |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::createGraphicsLayer): |
| (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): |
| (WebCore::RenderLayerBacking::updateConfiguration): |
| (WebCore::RenderLayerBacking::updateInternalHierarchy): |
| (WebCore::RenderLayerBacking::updateMaskingLayer): |
| (WebCore::RenderLayerBacking::updateChildClippingStrategy): |
| (WebCore::RenderLayerBacking::updateScrollingLayers): |
| * rendering/RenderLayerBacking.h: |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateCompositingLayers): |
| (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers): |
| (WebCore::RenderLayerCompositor::setCompositingParent): |
| (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): |
| (WebCore::RenderLayerCompositor::parentFrameContentLayers): |
| (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea): |
| (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea): |
| (WebCore::RenderLayerCompositor::updateLayerForHeader): |
| (WebCore::RenderLayerCompositor::updateLayerForFooter): |
| (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): |
| (WebCore::RenderLayerCompositor::ensureRootLayer): |
| (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged): |
| * rendering/RenderLayerCompositor.h: |
| |
| 2018-09-14 Eric Carlson <eric.carlson@apple.com> |
| |
| Support arbitrary video resolution in getUserMedia API |
| https://bugs.webkit.org/show_bug.cgi?id=178109 |
| <rdar://problem/35083128> |
| |
| Reviewed by Youenn Fablet. |
| |
| Support arbitrary video resolutions by configuring the camera to capture at the closest |
| larger size it supports and scaling/cropping frames as necessary. |
| |
| No new tests, existing tests updated. |
| |
| * Modules/mediastream/CanvasCaptureMediaStreamTrack.h: |
| * Modules/webaudio/MediaStreamAudioSource.cpp: |
| (WebCore::MediaStreamAudioSource::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::MediaStreamAudioSource::settings): Ditto. |
| (WebCore::MediaStreamAudioSource::capabilities const): Deleted. |
| (WebCore::MediaStreamAudioSource::settings const): Deleted. |
| * Modules/webaudio/MediaStreamAudioSource.h: |
| |
| * SourcesCocoa.txt: Add PixelBufferResizer. |
| |
| * WebCore.xcodeproj/project.pbxproj: Ditto. |
| |
| * platform/cocoa/CoreVideoSoftLink.h: |
| * platform/cocoa/VideoToolboxSoftLink.cpp: |
| * platform/cocoa/VideoToolboxSoftLink.h: |
| |
| * platform/graphics/cv/PixelBufferResizer.h: Added. |
| (WebCore::PixelBufferResizer::canResizeTo): |
| * platform/graphics/cv/PixelBufferResizer.mm: Added. |
| (WebCore::PixelBufferResizer::PixelBufferResizer): |
| (WebCore::PixelBufferResizer::resize): |
| |
| * platform/mediastream/RealtimeIncomingAudioSource.cpp: |
| (WebCore::RealtimeIncomingAudioSource::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::RealtimeIncomingAudioSource::settings): Ditto. |
| (WebCore::RealtimeIncomingAudioSource::capabilities const): Deleted. |
| (WebCore::RealtimeIncomingAudioSource::settings const): Deleted. |
| * platform/mediastream/RealtimeIncomingAudioSource.h: |
| |
| * platform/mediastream/RealtimeIncomingVideoSource.cpp: |
| (WebCore::RealtimeIncomingVideoSource::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::RealtimeIncomingVideoSource::settings): Ditto. |
| (WebCore::RealtimeIncomingVideoSource::capabilities const): Deleted. |
| (WebCore::RealtimeIncomingVideoSource::settings const): Deleted. |
| * platform/mediastream/RealtimeIncomingVideoSource.h: |
| |
| * platform/mediastream/RealtimeMediaSource.cpp: |
| (WebCore::RealtimeMediaSource::supportsConstraint): |
| (WebCore::RealtimeMediaSource::supportsConstraint const): Deleted. |
| * platform/mediastream/RealtimeMediaSource.h: |
| |
| * platform/mediastream/RealtimeVideoSource.cpp: |
| (WebCore::RealtimeVideoSource::presets): |
| (WebCore::RealtimeVideoSource::setSupportedPresets): |
| (WebCore::standardVideoSizes): |
| (WebCore::RealtimeVideoSource::updateCapabilities): Make non-const, it wasn't helpful. |
| (WebCore::presetSupportsFrameRate): |
| (WebCore::RealtimeVideoSource::supportsCaptureSize): |
| (WebCore::RealtimeVideoSource::shouldUsePreset): |
| (WebCore::RealtimeVideoSource::bestSupportedSizeAndFrameRate): |
| (WebCore::RealtimeVideoSource::setSizeAndFrameRate): |
| (WebCore::RealtimeVideoSource::addSupportedCapabilities const): Deleted. |
| * platform/mediastream/RealtimeVideoSource.h: |
| (WebCore::VideoPresetData::encode const): |
| (WebCore::VideoPresetData::decode): |
| (WebCore::VideoPreset::create): |
| (WebCore::VideoPreset::VideoPreset): |
| (WebCore::RealtimeVideoSource::prefersPreset): |
| (WebCore::RealtimeVideoSource::canResizeVideoFrames const): |
| (WebCore::RealtimeVideoSource::setDefaultSize): |
| (WebCore::RealtimeVideoSource::observedFrameRate const): |
| (WebCore::VideoPreset::encode const): Deleted. |
| (WebCore::VideoPreset::decode): Deleted. |
| |
| * platform/mediastream/mac/AVVideoCaptureSource.h: |
| (WebCore::AVVideoCaptureSource::videoPresets): Deleted. |
| * platform/mediastream/mac/AVVideoCaptureSource.mm: |
| (WebCore::AVVideoPreset::create): |
| (WebCore::AVVideoPreset::AVVideoPreset): |
| (WebCore::AVVideoCaptureSource::AVVideoCaptureSource): |
| (WebCore::AVVideoCaptureSource::settings): |
| (WebCore::AVVideoCaptureSource::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::AVVideoCaptureSource::setFrameRate): |
| (WebCore::AVVideoCaptureSource::prefersPreset): |
| (WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset): |
| (WebCore::AVVideoCaptureSource::frameDurationForFrameRate): |
| (WebCore::AVVideoCaptureSource::setupCaptureSession): |
| (WebCore::AVVideoCaptureSource::processNewFrame): |
| (WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): |
| (WebCore::AVVideoCaptureSource::isFrameRateSupported): |
| (WebCore::AVVideoCaptureSource::generatePresets): |
| (WebCore::updateSizeMinMax): Deleted. |
| (WebCore::updateAspectRatioMinMax): Deleted. |
| (WebCore::AVVideoCaptureSource::settings const): Deleted. |
| (WebCore::AVVideoCaptureSource::capabilities const): Deleted. |
| (WebCore::AVVideoCaptureSource::sizeForPreset): Deleted. |
| (WebCore::AVVideoCaptureSource::setPreset): Deleted. |
| (WebCore::AVVideoCaptureSource::setSizeAndFrameRate): Deleted. |
| (WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions): Deleted. |
| (WebCore::AVVideoCaptureSource::supportsSizeAndFrameRate): Deleted. |
| |
| * platform/mediastream/mac/CoreAudioCaptureSource.cpp: |
| (WebCore::CoreAudioCaptureSource::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::CoreAudioCaptureSource::settings): Ditto. |
| (WebCore::CoreAudioCaptureSource::capabilities const): Deleted. |
| (WebCore::CoreAudioCaptureSource::settings const): Deleted. |
| * platform/mediastream/mac/CoreAudioCaptureSource.h: |
| |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: |
| (WebCore::DisplayCaptureSourceCocoa::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::DisplayCaptureSourceCocoa::settings): Ditto. |
| (WebCore::DisplayCaptureSourceCocoa::capabilities const): Deleted. |
| (WebCore::DisplayCaptureSourceCocoa::settings const): Deleted. |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: |
| |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.h: |
| * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: |
| (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): |
| (WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): |
| (WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset): |
| * platform/mock/MockMediaDevice.h: |
| (WebCore::MockCameraProperties::decode): |
| |
| * platform/mock/MockRealtimeAudioSource.cpp: |
| (WebCore::MockRealtimeAudioSource::settings): Make non-const, it wasn't helpful. |
| (WebCore::MockRealtimeAudioSource::capabilities): Ditto. |
| (WebCore::MockRealtimeAudioSource::settings const): Deleted. |
| (WebCore::MockRealtimeAudioSource::capabilities const): Deleted. |
| * platform/mock/MockRealtimeAudioSource.h: |
| |
| * platform/mock/MockRealtimeMediaSourceCenter.cpp: |
| (WebCore::defaultDevices): Change video device presets to trigger resize code more often. |
| |
| * platform/mock/MockRealtimeVideoSource.cpp: |
| (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): |
| (WebCore::MockRealtimeVideoSource::generatePresets): |
| (WebCore::MockRealtimeVideoSource::capabilities): Make non-const, it wasn't helpful. |
| (WebCore::MockRealtimeVideoSource::settings): Ditto. |
| (WebCore::MockRealtimeVideoSource::capabilities const): Deleted. |
| (WebCore::MockRealtimeVideoSource::settings const): Deleted. |
| * platform/mock/MockRealtimeVideoSource.h: |
| |
| 2018-09-14 Frederic Wang <fwang@igalia.com> |
| |
| Bug 189541 - Build error in FontDescriptionKey::computeHash when compiling FontTaggedSettings and FontCascadeFonts together |
| https://bugs.webkit.org/show_bug.cgi?id=189541 |
| |
| Reviewed by Alex Christensen. |
| |
| FontDescriptionKey::computeHash() from In FontCache.h requires implicit instantiation of the |
| FontTaggedSettings::hash() template function. This instantiation may happen before |
| FontTaggedSettings::hash() is actually fully specialized in FontTaggedSettings.cpp. To avoid |
| compiler errors when FontCache.h and FontTaggedSettings.cpp are in the same translation unit, |
| we declare full specialization of the hash() functions in FontTaggedSettings.h. |
| |
| No new tests, behavior unchanged. |
| |
| * platform/graphics/FontCache.h: Explicitly include FontTaggedSettings to avoid possible future breakage. |
| * platform/graphics/FontTaggedSettings.h: Declare full specialization of FontTaggedSettings::hash(). |
| |
| 2018-09-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r235990. |
| |
| Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS |
| |
| Reverted changeset: |
| |
| "Enable USE_MEDIAREMOTE on iOS" |
| https://bugs.webkit.org/show_bug.cgi?id=189096 |
| https://trac.webkit.org/changeset/235990 |
| |
| 2018-09-14 Jer Noble <jer.noble@apple.com> |
| |
| Turn SourceBufferChangeTypeEnabled on by default |
| https://bugs.webkit.org/show_bug.cgi?id=189527 |
| |
| Reviewed by Eric Carlson. |
| |
| * page/Settings.yaml: |
| |
| 2018-09-14 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Record actions performed on ImageBitmapRenderingContext |
| https://bugs.webkit.org/show_bug.cgi?id=181341 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Test: inspector/canvas/recording-bitmaprenderer.html |
| |
| * html/canvas/ImageBitmapRenderingContext.idl: |
| |
| * inspector/InspectorCanvas.cpp: |
| (WebCore::shouldSnapshotBitmapRendererAction): |
| (WebCore::InspectorCanvas::recordAction): |
| |
| * inspector/agents/InspectorCanvasAgent.cpp: |
| (WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame): |
| |
| * page/PageConsoleClient.cpp: |
| (canvasRenderingContext): |
| |
| 2018-09-14 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r235954): Fix build failure on watchOS |
| <https://webkit.org/b/189605> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove `using WebCore::IndexedDB::KeyType;` from |
| Source/WebCore/Modules/indexeddb/IDBKey.h and fix all the |
| resulting build failures. |
| |
| * Modules/indexeddb/IDBKey.cpp: |
| (WebCore::IDBKey::IDBKey): |
| (WebCore::IDBKey::isValid const): |
| (WebCore::IDBKey::compare const): |
| * Modules/indexeddb/IDBKey.h: |
| (WebCore::IDBKey::createNumber): |
| (WebCore::IDBKey::createDate): |
| (WebCore::IDBKey::type const): |
| (WebCore::IDBKey::array const): |
| (WebCore::IDBKey::string const): |
| (WebCore::IDBKey::date const): |
| (WebCore::IDBKey::number const): |
| (WebCore::IDBKey::binary const): |
| (WebCore::IDBKey::compareTypes): |
| (WebCore::IDBKey::IDBKey): |
| * Modules/indexeddb/IDBKeyData.cpp: |
| (WebCore::IDBKeyData::IDBKeyData): |
| (WebCore::IDBKeyData::maybeCreateIDBKey const): |
| (WebCore::IDBKeyData::isolatedCopy): |
| (WebCore::IDBKeyData::encode const): |
| (WebCore::IDBKeyData::decode): |
| (WebCore::IDBKeyData::compare const): |
| (WebCore::IDBKeyData::loggingString const): |
| (WebCore::IDBKeyData::setArrayValue): |
| (WebCore::IDBKeyData::setBinaryValue): |
| (WebCore::IDBKeyData::setStringValue): |
| (WebCore::IDBKeyData::setDateValue): |
| (WebCore::IDBKeyData::setNumberValue): |
| (WebCore::IDBKeyData::isValid const): |
| (WebCore::IDBKeyData::operator== const): |
| * Modules/indexeddb/IDBKeyData.h: |
| (WebCore::IDBKeyData::IDBKeyData): |
| (WebCore::IDBKeyData::minimum): |
| (WebCore::IDBKeyData::maximum): |
| (WebCore::IDBKeyData::type const): |
| (WebCore::IDBKeyData::hash const): |
| (WebCore::IDBKeyData::string const): |
| (WebCore::IDBKeyData::date const): |
| (WebCore::IDBKeyData::number const): |
| (WebCore::IDBKeyData::binary const): |
| (WebCore::IDBKeyData::array const): |
| (WebCore::IDBKeyData::encode const): |
| (WebCore::IDBKeyData::decode): |
| * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: |
| (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey): |
| * bindings/js/IDBBindingUtilities.cpp: |
| (WebCore::toJS): |
| |
| 2018-09-14 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [EME] Add support the waitingforkey event |
| https://bugs.webkit.org/show_bug.cgi?id=189616 |
| |
| Reviewed by Philippe Normand. |
| |
| Crossplatform support to fire the waitingforkey event from the |
| player to the element. The element implements the W3C specified |
| algorithm. |
| |
| * html/HTMLMediaElement.cpp: |
| (WebCore::HTMLMediaElement::mediaPlayerWaitingForKey): |
| (WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary): |
| * html/HTMLMediaElement.h: |
| * platform/graphics/MediaPlayer.cpp: |
| (WebCore::MediaPlayer::waitingForKey): |
| * platform/graphics/MediaPlayer.h: |
| (WebCore::MediaPlayerClient::mediaPlayerWaitingForKey): |
| |
| 2018-09-14 Mike Gorse <mgorse@suse.com> |
| |
| builtins directory causes name conflict on Python 3 |
| https://bugs.webkit.org/show_bug.cgi?id=189552 |
| |
| Reviewed by Michael Catanzaro. |
| |
| No new tests (No behavior change). |
| |
| * CMakeLists.txt: builtins -> wkbuiltins. |
| * DerivedSources.make: builtins -> wkbuiltins. |
| |
| 2018-09-13 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Capturing event listeners are called during bubbling phase for shadow hosts |
| https://bugs.webkit.org/show_bug.cgi?id=174288 |
| <rdar://problem/33530455> |
| |
| Reviewed by Darin Adler. |
| |
| Implemented the new behavior proposed in https://github.com/whatwg/dom/pull/686 [1] to fix the problem |
| that capturing event listeners on a shadow host is invoked during bubbling phase when an event is |
| dispatched within its shadow tree. |
| |
| To see why this is a problem, suppose we fire a composed event at span#target in the following DOM tree: |
| section#hostParent |
| + div#host -- ShadowRoot |
| - p#parent |
| - span#target |
| Then capturing and bubbling event listeners on #target, #parent, #host, and #hostParent are invoked in |
| the following order in WebKit & Chrome right now: |
| |
| 1. #hostParent, capturing, eventPhase: CAPTURING_PHASE |
| 2. #parent, capturing, eventPhase: CAPTURING_PHASE |
| 3. #target, capturing, eventPhase: AT_TARGET |
| 4. #target, non-capturing, eventPhase: AT_TARGET |
| 5. #parent, non-capturing, eventPhase: BUBBLING_PHASE |
| 6. #host, capturing, eventPhase: AT_TARGET |
| 7. #host, non-capturing, eventPhase: AT_TARGET |
| 8. #hostParent, non-capturing, eventPhase: BUBBLING_PHASE |
| |
| This is counter-intuitive because capturing event listeners on #host isn't invoked until bubblign phase |
| started. A more natural ordering would be: |
| |
| 1. #hostParent, capturing, eventPhase: CAPTURING_PHASE |
| 2. #host, capturing, eventPhase: AT_TARGET |
| 3. #parent, capturing, eventPhase: CAPTURING_PHASE |
| 4. #target, capturing, eventPhase: AT_TARGET |
| 5. #target, non-capturing, eventPhase: AT_TARGET |
| 6. #parent, non-capturing, eventPhase: BUBBLING_PHASE |
| 7. #host, non-capturing, eventPhase: AT_TARGET |
| 8. #hostParent, non-capturing, eventPhase: BUBBLING_PHASE |
| |
| This also happens to be the order by which Gecko's current shadow DOM implementation invoke event listners. |
| This patch implements this new behavior using the spec-change proposed in [1]. Note that this patch also |
| impacts the invocation order of event listeners when there is no shadow tree. Namely, before this patch, |
| event listeners on the event's target is invoked in the registration order. After this patch, all capturing |
| event listeners are invoked before bubbling event listeners are invoked. |
| |
| To implement this behavior, this patch introduces EventTarget::EventInvokePhase indicating whether we're |
| in the capturing phase or bubbling phase to EventTarget::fireEventListeners. We can't use Event's eventPhase |
| enum because that's set to Event::Phase::AT_TARGET when we're at a shadow host. |
| |
| Test: fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html |
| |
| * Modules/modern-media-controls/media/media-controller-support.js: |
| (MediaControllerSupport.prototype.enable): Use capturing event listeners so that we can update the states of |
| media controls before author scripts recieve the event. |
| (MediaControllerSupport.prototype.disable): Ditto. |
| * dom/EventContext.cpp: |
| (WebCore::EventContext::handleLocalEvents const): |
| (WebCore::MouseOrFocusEventContext::handleLocalEvents const): |
| (WebCore::TouchEventContext::handleLocalEvents const): |
| * dom/EventContext.h: |
| * dom/EventDispatcher.cpp: |
| (WebCore::dispatchEventInDOM): Invoke capturing event listners even when target and current target are same. |
| This happens when the current target is a shadow host and event's target is in its shadow tree. Also merged |
| the special code path for the event's target with the code in the bubbling phase. |
| * dom/EventPath.cpp: |
| (WebCore::WindowEventContext::handleLocalEvents const): |
| * dom/EventTarget.cpp: |
| (WebCore::EventTarget::dispatchEvent): Invoke capturing and bubbling event listeners in the order. |
| (WebCore::EventTarget::fireEventListeners): |
| (WebCore::EventTarget::innerInvokeEventListeners): Renamed from fireEventListeners to match the spec. Use |
| EventInvokePhase to filter out event listeners so that we can invoke capturing event listners before bubbling |
| event listeners even when eventPhase is Event::Phase::AT_TARGET. |
| * dom/EventTarget.h: |
| * dom/Node.cpp: |
| (WebCore::Node::handleLocalEvents): |
| * dom/Node.h: |
| * html/HTMLFormElement.cpp: |
| (WebCore::HTMLFormElement::handleLocalEvents): |
| * html/HTMLFormElement.h: |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::dispatchEvent): |
| |
| 2018-09-13 Megan Gardner <megan_gardner@apple.com> |
| |
| Fix color stop blending in conic gradients for stops past 1 |
| https://bugs.webkit.org/show_bug.cgi?id=189532 |
| <rdar://problem/44158221> |
| |
| Reviewed by Simon Fraser. |
| |
| Calculation was wrong, fixed it, and wrote a test that failed |
| without the change, and passes with it. |
| |
| Test: fast/gradients/conic-repeating-last-stop.html |
| |
| * css/CSSGradientValue.cpp: |
| (WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange): |
| |
| 2018-09-13 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON): setting window.opener to null allows process swapping in cases that are not web-compatible |
| https://bugs.webkit.org/show_bug.cgi?id=189590 |
| <rdar://problem/44422725> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Set a flag on the navigation action to indicate if the page was opened via window.open() without 'noopener'. |
| |
| Test: http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html |
| |
| * loader/FrameLoader.cpp: |
| (WebCore::FrameLoader::loadURL): |
| * loader/NavigationAction.h: |
| (WebCore::NavigationAction::openedViaWindowOpenWithOpener const): |
| (WebCore::NavigationAction::setOpenedViaWindowOpenWithOpener): |
| * page/DOMWindow.cpp: |
| (WebCore::DOMWindow::createWindow): |
| * page/Page.h: |
| (WebCore::Page::openedViaWindowOpenWithOpener const): |
| (WebCore::Page::setOpenedViaWindowOpenWithOpener): |
| |
| 2018-09-13 Jer Noble <jer.noble@apple.com> |
| |
| Enable USE_MEDIAREMOTE on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=189096 |
| |
| Reviewed by Eric Carlson. |
| |
| Migrate to using MediaRemote.framework on iOS from MediaPlayer.framework. This unifies the |
| Now Playing implementation on iOS and Mac. |
| |
| * SourcesCocoa.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/audio/cocoa/MediaSessionManagerCocoa.cpp: Removed. |
| * platform/audio/cocoa/MediaSessionManagerCocoa.h: |
| * platform/audio/cocoa/MediaSessionManagerCocoa.mm: Renamed from Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm. |
| (PlatformMediaSessionManager::sharedManager): |
| (PlatformMediaSessionManager::sharedManagerIfExists): |
| (MediaSessionManagerCocoa::updateSessionState): |
| (MediaSessionManagerCocoa::beginInterruption): |
| (MediaSessionManagerCocoa::scheduleUpdateNowPlayingInfo): |
| (MediaSessionManagerCocoa::sessionWillBeginPlayback): |
| (MediaSessionManagerCocoa::sessionDidEndRemoteScrubbing): |
| (MediaSessionManagerCocoa::removeSession): |
| (MediaSessionManagerCocoa::sessionWillEndPlayback): |
| (MediaSessionManagerCocoa::clientCharacteristicsChanged): |
| (MediaSessionManagerCocoa::sessionCanProduceAudioChanged): |
| (MediaSessionManagerCocoa::nowPlayingEligibleSession): |
| (MediaSessionManagerCocoa::updateNowPlayingInfo): |
| * platform/audio/ios/MediaSessionManagerIOS.h: |
| (): Deleted. |
| * platform/audio/ios/MediaSessionManagerIOS.mm: |
| (WebCore::MediaSessionManageriOS::nowPlayingEligibleSession): Deleted. |
| (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Deleted. |
| (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Deleted. |
| (WebCore::MediaSessionManageriOS::removeSession): Deleted. |
| (WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Deleted. |
| (WebCore::MediaSessionManageriOS::clientCharacteristicsChanged): Deleted. |
| * platform/audio/mac/MediaSessionManagerMac.h: Removed. |
| |
| 2018-09-13 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove the workaround for friend class LazyNeverDestroyed<X> statements for MSVC |
| https://bugs.webkit.org/show_bug.cgi?id=189576 |
| |
| Reviewed by Alex Christensen. |
| |
| Old MSVC can't compile "friend class LazyNeverDestroyed<X>" |
| statements, but "friend LazyNeverDestroyed<X>". |
| |
| No new tests (No behavior change). |
| |
| * css/CSSInheritedValue.h: Removed the code for COMPILER(MSVC). |
| Removed 'class' keyword in "friend class LazyNeverDestroyed<X>" |
| statement. |
| * css/CSSInitialValue.h: Ditto. |
| * css/CSSPrimitiveValue.h: Ditto. |
| * css/CSSRevertValue.h: Ditto. |
| * css/CSSUnsetValue.h: Ditto. |
| |
| 2018-09-13 Ms2ger <Ms2ger@igalia.com> |
| |
| [GLib] Fix format string in KeyedEncoderGlib::beginObject(). |
| https://bugs.webkit.org/show_bug.cgi?id=189585 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This appears to fix the following assertion locally: |
| |
| GLib-CRITICAL **: g_variant_builder_add_value: assertion '!GVSB(builder)->expected_type || g_variant_is_of_type (value, GVSB(builder)->expected_type)' failed |
| |
| Covered by existing tests. |
| |
| * platform/glib/KeyedEncoderGlib.cpp: |
| (WebCore::KeyedEncoderGlib::beginObject): |
| |
| 2018-09-13 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r235953. |
| |
| Caused layout test crashes under GuardMalloc. |
| |
| Reverted changeset: |
| |
| "Make GraphicsLayers ref-counted, so their tree can persist |
| when disconnected from RenderLayerBackings" |
| https://bugs.webkit.org/show_bug.cgi?id=189521 |
| https://trac.webkit.org/changeset/235953 |
| |
| 2018-09-13 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove a MSVC workaround in XPath::Step::NodeTest |
| https://bugs.webkit.org/show_bug.cgi?id=189578 |
| |
| Reviewed by Alex Christensen. |
| |
| XPath::Step::NodeTest has a special code for MSVC bug workaround. |
| It has been introduced in 5 years ago in Bug 121082 Comment 19. |
| |
| I think it is safe just to remove the workaround. |
| |
| No new tests (No behavior change). |
| |
| * xml/XPathStep.h: Removed the MSVC workaround. |
| |
| 2018-09-13 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove a MSVC workaround in InspectorStyle::styleWithProperties |
| https://bugs.webkit.org/show_bug.cgi?id=189577 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests (No behavior change). |
| |
| * inspector/InspectorStyleSheet.cpp: |
| (WebCore::InspectorStyle::styleWithProperties const): Use 'auto' for the type of 'status'. |
| |
| 2018-09-13 Alex Christensen <achristensen@webkit.org> |
| |
| Use a Variant instead of a union in CSSSelector |
| https://bugs.webkit.org/show_bug.cgi?id=188559 |
| |
| Reviewed by Antti Koivisto. |
| |
| No change in behavior. This just makes some of the existing problems more obvious and easy to fix. |
| |
| I moved m_caseInsensitiveAttributeValueMatching to RareData because it's only used with RareData. |
| I only have m_isForPage when assertions are enabled because it's only used for an assertion. |
| The rest is pretty straightforward translating union syntax to Variant syntax. |
| I use RefPtr for now where I could use Ref because it's never null to make copying easier, but that's temporary. |
| |
| * css/CSSSelector.cpp: |
| (WebCore::CSSSelector::CSSSelector): |
| (WebCore::CSSSelector::createRareData): |
| (WebCore::CSSSelector::setAttribute): |
| (WebCore::CSSSelector::setArgument): |
| (WebCore::CSSSelector::setLangArgumentList): |
| (WebCore::CSSSelector::setSelectorList): |
| (WebCore::CSSSelector::setNth): |
| (WebCore::CSSSelector::matchNth const): |
| (WebCore::CSSSelector::nthA const): |
| (WebCore::CSSSelector::nthB const): |
| (WebCore::CSSSelector::RareData::RareData): |
| * css/CSSSelector.h: |
| (WebCore::CSSSelector::argument const): |
| (WebCore::CSSSelector::langArgumentList const): |
| (WebCore::CSSSelector::selectorList const): |
| (WebCore::CSSSelector::attribute const): |
| (WebCore::CSSSelector::attributeCanonicalLocalName const): |
| (WebCore::CSSSelector::setValue): |
| (WebCore::CSSSelector::CSSSelector): |
| (WebCore::CSSSelector::~CSSSelector): |
| (WebCore::CSSSelector::tagQName const): |
| (WebCore::CSSSelector::tagLowercaseLocalName const): |
| (WebCore::CSSSelector::value const): |
| (WebCore::CSSSelector::serializingValue const): |
| (WebCore::CSSSelector::attributeValueMatchingIsCaseInsensitive const): |
| (WebCore::CSSSelector::RareData::create): Deleted. |
| * css/parser/CSSParserImpl.cpp: |
| (WebCore::CSSParserImpl::parsePageSelector): |
| * css/parser/CSSParserSelector.h: |
| |
| 2018-09-13 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][Clang] error: type 'float' cannot be narrowed to 'LONG' (aka 'long') in initializer list in WheelEventWin.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=189575 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests (No behavior change). |
| |
| * platform/win/WheelEventWin.cpp: |
| (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use flooredIntPoint to convert FloatPoint to POINT. |
| |
| 2018-09-13 Youenn Fablet <youenn@apple.com> |
| |
| Introduce RTCRtpSendParameters |
| https://bugs.webkit.org/show_bug.cgi?id=189563 |
| |
| Reviewed by Eric Carlson. |
| |
| Introduce RTCRtpSendParameters to match the WebRTC specification. |
| Split RTCRtpPrameters fields accordingly and update call sites. |
| |
| Covered by updated test. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediastream/PeerConnectionBackend.h: |
| * Modules/mediastream/RTCRtpCodingParameters.h: Added |
| * Modules/mediastream/RTCRtpCodingParameters.idl: Added |
| * Modules/mediastream/RTCRtpDecodingParameters.h: Added |
| * Modules/mediastream/RTCRtpDecodingParameters.idl: Added |
| * Modules/mediastream/RTCRtpEncodingParameters.h: |
| * Modules/mediastream/RTCRtpEncodingParameters.idl: |
| * Modules/mediastream/RTCRtpParameters.h: |
| * Modules/mediastream/RTCRtpParameters.idl: |
| * Modules/mediastream/RTCRtpReceiver.cpp: |
| * Modules/mediastream/RTCRtpSendParameters.h: Added. |
| (WebCore::RTCRtpSendParameters::RTCRtpSendParameters): |
| * Modules/mediastream/RTCRtpSendParameters.idl: Added. |
| * Modules/mediastream/RTCRtpSender.cpp: |
| (WebCore::RTCRtpSender::getParameters): |
| (WebCore::RTCRtpSender::setParameters): |
| * Modules/mediastream/RTCRtpSender.h: |
| * Modules/mediastream/RTCRtpSender.idl: |
| * Modules/mediastream/RTCRtpSenderBackend.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp: |
| (WebCore::LibWebRTCRtpSenderBackend::getParameters const): |
| (WebCore::LibWebRTCRtpSenderBackend::setParameters): |
| * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: |
| (WebCore::toRTCRtpParameters): |
| (WebCore::toRTCRtpSendParameters): |
| (WebCore::fromRTCRtpSendParameters): |
| * Modules/mediastream/libwebrtc/LibWebRTCUtils.h: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2018-09-13 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [GStreamer][EME] decrypt-key-needed message renamed to drm-cdm-instance-needed |
| https://bugs.webkit.org/show_bug.cgi?id=189547 |
| |
| Reviewed by Philippe Normand. |
| |
| decrypt-key-needed message renamed to drm-cdm-instance-needed. |
| |
| * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: |
| (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Apart from |
| renaming the message, removed the class prefix for |
| dispatchCDMInstance. |
| * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: |
| (webkitMediaCommonEncryptionDecryptTransformInPlace): |
| |
| 2018-09-11 Ryosuke Niwa <rniwa@webkit.org> |
| |
| imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html hits assertion |
| https://bugs.webkit.org/show_bug.cgi?id=189493 |
| |
| Reviewed by Alex Christensen. |
| |
| The debug assertion was caused by RefPtr in FormAssociatedElement::formOwnerRemovedFromTree introduced |
| by r224390 and r223644 ref'ing ShadowRoot while calling removeDetachedChildren inside ~ShadowRoot. |
| When a form (or any other) element has more than one ref inside removeDetachedChildren, |
| addChildNodesToDeletionQueue calls notifyChildNodeRemoved in the tree oreder. |
| |
| However, when a form associated element of this form element appears later in the tree order, |
| FormAssociatedElement::formOwnerRemovedFromTree can traverse up ancestors including the ShadowRoot. |
| |
| Fixed the bug by using raw pointers instead. Luckily, there is no DOM mutations or other non-trivial |
| operations happening in this function so this should be safe. |
| |
| Test: imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html |
| |
| * html/FormAssociatedElement.cpp: |
| (WebCore::FormAssociatedElement::formOwnerRemovedFromTree): Fixed the bug. |
| |
| 2018-09-12 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Complete support for Paste as Quotation |
| https://bugs.webkit.org/show_bug.cgi?id=189504 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Tests: editing/pasteboard/4930986-1-paste-as-quotation.html |
| editing/pasteboard/4930986-2-paste-as-quotation.html |
| editing/pasteboard/4930986-3-paste-as-quotation.html |
| |
| * editing/Editor.cpp: |
| Added ClipboardEventKind::PasteAsQuotation. |
| (WebCore::eventNameForClipboardEvent): Map PasteAsQuotation to the "paste" DOM event name. |
| (WebCore::createDataTransferForClipboardEvent): Place the unquoted content in the event. |
| This means that currently event handlers can’t emulate pasting as quotation, because they |
| neither have the quoted content nor knowledge that quoting has been requested. We could |
| change this in the future if needed. |
| (WebCore::Editor::paste): Updated for change in pasteWithPasteboard’s argument type. |
| (WebCore::Editor::pasteAsQuotation): Added. Similar to paste, but passes |
| PasteOption::AsQuotation to pasteWithPasteboard. |
| (WebCore::Editor::quoteFragmentForPasting): Added. Quoting for pasting consists of enclosing |
| the fragment in a blockquote element with the "type" attribute set to "cite" and the |
| "class" attribute set to a well-known value, which is used to trigger special behavior in |
| ReplaceSelectionCommand. The behavior includes removing the "class" attribute in the end, |
| so eventually, we could stop using this form of in-band signaling. |
| * editing/Editor.h: Declared PasteOption enum class to encompass the existing allowPlainText |
| and MailBlockquoteHandling arguments to pasteWithPasteboard as well as the new AsQuotation |
| behavior. |
| |
| * editing/EditorCommand.cpp: |
| (WebCore::executePasteAsQuotation): Added. Similar to executing Paste. |
| (WebCore::createCommandMap): Added an entry for PasteAsQuotation, based on the Paste entry. |
| |
| * editing/cocoa/EditorCocoa.mm: |
| (WebCore::Editor::webContentFromPasteboard): Moved from EditorIOS.mm and EditorMac.mm to |
| here. |
| |
| * editing/gtk/EditorGtk.cpp: |
| (WebCore::Editor::pasteWithPasteboard): Updated for new OptionSet argument, added a call to |
| quote the fragment if needed. |
| |
| * editing/ios/EditorIOS.mm: |
| (WebCore::Editor::pasteWithPasteboard): Ditto. |
| (WebCore::Editor::webContentFromPasteboard): Moved to EditorCocoa.mm. |
| |
| * editing/mac/EditorMac.mm: |
| (WebCore::Editor::pasteWithPasteboard): Updated for new OptionSet argument, added a call to |
| quote the fragment if needed. |
| (WebCore::Editor::readSelectionFromPasteboard): Updated for new OptionSet argument to |
| pasteWithPasteboard. |
| (WebCore::Editor::webContentFromPasteboard): Moved to EditorCocoa.mm. |
| |
| * editing/win/EditorWin.cpp: |
| (WebCore::Editor::pasteWithPasteboard): Updated for new OptionSet argument, added a call to |
| quote the fragment if needed. |
| |
| * editing/wpe/EditorWPE.cpp: |
| (WebCore::Editor::pasteWithPasteboard): Ditto. |
| |
| 2018-09-11 Simon Fraser <simon.fraser@apple.com> |
| |
| Make GraphicsLayers ref-counted, so their tree can persist when disconnected from RenderLayerBackings |
| https://bugs.webkit.org/show_bug.cgi?id=189521 |
| |
| Reviewed by Tim Horton. |
| |
| Make GraphicsLayer be RefCounted<GraphicsLayer>. GraphicsLayers own their children, via a Vector<Ref<GraphicsLayer>>. |
| |
| RenderLayerBacking and other holders of GraphicsLayers use RefPtr<GraphicsLayer>. |
| |
| All the other changes are just to adapt to the new ownership patterns. |
| |
| I verified that no GraphicsLayers were leaked or abandoned after this change. |
| |
| No behavior change. |
| |
| * page/PageOverlayController.cpp: |
| (WebCore::PageOverlayController::layerWithDocumentOverlays): |
| (WebCore::PageOverlayController::layerWithViewOverlays): |
| (WebCore::PageOverlayController::installPageOverlay): |
| (WebCore::PageOverlayController::uninstallPageOverlay): |
| (WebCore::PageOverlayController::setPageOverlayNeedsDisplay): |
| (WebCore::PageOverlayController::didChangeViewSize): |
| (WebCore::PageOverlayController::didChangeDocumentSize): |
| (WebCore::PageOverlayController::didChangeSettings): |
| (WebCore::PageOverlayController::paintContents): |
| (WebCore::PageOverlayController::didChangeOverlayFrame): |
| (WebCore::PageOverlayController::didChangeOverlayBackgroundColor): |
| * page/PageOverlayController.h: |
| * page/mac/ServicesOverlayController.h: |
| (WebCore::ServicesOverlayController::Highlight::layer const): |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::Highlight::Highlight): |
| (WebCore::ServicesOverlayController::Highlight::invalidate): |
| (WebCore::ServicesOverlayController::Highlight::fadeIn): |
| (WebCore::ServicesOverlayController::Highlight::fadeOut): |
| (WebCore::ServicesOverlayController::Highlight::didFinishFadeOutAnimation): |
| (WebCore::ServicesOverlayController::determineActiveHighlight): |
| * platform/graphics/GraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::GraphicsLayer): |
| (WebCore::GraphicsLayer::willBeDestroyed): |
| (WebCore::GraphicsLayer::setChildren): |
| (WebCore::GraphicsLayer::addChild): |
| (WebCore::GraphicsLayer::addChildAtIndex): |
| (WebCore::GraphicsLayer::addChildBelow): |
| (WebCore::GraphicsLayer::addChildAbove): |
| (WebCore::GraphicsLayer::replaceChild): |
| (WebCore::GraphicsLayer::removeAllChildren): |
| (WebCore::GraphicsLayer::removeFromParent): |
| (WebCore::GraphicsLayer::setMaskLayer): |
| (WebCore::GraphicsLayer::noteDeviceOrPageScaleFactorChangedIncludingDescendants): |
| (WebCore::GraphicsLayer::distributeOpacity): |
| (WebCore::GraphicsLayer::traverse): |
| (WebCore::dumpChildren): |
| * platform/graphics/GraphicsLayer.h: |
| (WebCore::GraphicsLayer::children const): |
| (WebCore::GraphicsLayer::children): |
| (WebCore::GraphicsLayer::maskLayer const): |
| (WebCore::GraphicsLayer::replicaLayer const): |
| (WebCore::GraphicsLayer::beingDestroyed const): |
| (WebCore::GraphicsLayer:: const): Deleted. |
| * platform/graphics/GraphicsLayerFactory.h: |
| * platform/graphics/ca/GraphicsLayerCA.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::GraphicsLayerCA::setChildren): |
| (WebCore::GraphicsLayerCA::addChild): |
| (WebCore::GraphicsLayerCA::addChildAtIndex): |
| (WebCore::GraphicsLayerCA::addChildBelow): |
| (WebCore::GraphicsLayerCA::addChildAbove): |
| (WebCore::GraphicsLayerCA::replaceChild): |
| (WebCore::GraphicsLayerCA::setMaskLayer): |
| (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const): |
| (WebCore::GraphicsLayerCA::recursiveCommitChanges): |
| (WebCore::GraphicsLayerCA::updateSublayerList): |
| (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): |
| * platform/graphics/ca/GraphicsLayerCA.h: |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::GraphicsLayerTextureMapper::setChildren): |
| (WebCore::GraphicsLayerTextureMapper::addChild): |
| (WebCore::GraphicsLayerTextureMapper::addChildAtIndex): |
| (WebCore::GraphicsLayerTextureMapper::addChildAbove): |
| (WebCore::GraphicsLayerTextureMapper::addChildBelow): |
| (WebCore::GraphicsLayerTextureMapper::replaceChild): |
| (WebCore::GraphicsLayerTextureMapper::setMaskLayer): |
| (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers): |
| * platform/graphics/texmap/GraphicsLayerTextureMapper.h: |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect): |
| (WebCore::CoordinatedGraphicsLayer::addChild): |
| (WebCore::CoordinatedGraphicsLayer::addChildAtIndex): |
| (WebCore::CoordinatedGraphicsLayer::addChildAbove): |
| (WebCore::CoordinatedGraphicsLayer::addChildBelow): |
| (WebCore::CoordinatedGraphicsLayer::replaceChild): |
| (WebCore::CoordinatedGraphicsLayer::setMaskLayer): |
| (WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers): |
| (WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers): |
| (WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded): |
| * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: |
| * platform/graphics/win/GraphicsLayerDirect2D.cpp: |
| (WebCore::GraphicsLayer::create): |
| (WebCore::GraphicsLayerDirect2D::GraphicsLayerDirect2D): Deleted. |
| (WebCore::GraphicsLayerDirect2D::initialize): Deleted. |
| (WebCore::GraphicsLayerDirect2D::~GraphicsLayerDirect2D): Deleted. |
| (WebCore::GraphicsLayerDirect2D::setNeedsDisplay): Deleted. |
| (WebCore::GraphicsLayerDirect2D::setNeedsDisplayInRect): Deleted. |
| * rendering/RenderLayerBacking.cpp: |
| (WebCore::RenderLayerBacking::createGraphicsLayer): |
| (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): |
| (WebCore::RenderLayerBacking::updateConfiguration): |
| (WebCore::RenderLayerBacking::updateInternalHierarchy): |
| (WebCore::RenderLayerBacking::updateMaskingLayer): |
| (WebCore::RenderLayerBacking::updateChildClippingStrategy): |
| (WebCore::RenderLayerBacking::updateScrollingLayers): |
| * rendering/RenderLayerBacking.h: |
| * rendering/RenderLayerCompositor.cpp: |
| (WebCore::RenderLayerCompositor::updateCompositingLayers): |
| (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers): |
| (WebCore::RenderLayerCompositor::setCompositingParent): |
| (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): |
| (WebCore::RenderLayerCompositor::parentFrameContentLayers): |
| (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea): |
| (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea): |
| (WebCore::RenderLayerCompositor::updateLayerForHeader): |
| (WebCore::RenderLayerCompositor::updateLayerForFooter): |
| (WebCore::RenderLayerCompositor::updateOverflowControlsLayers): |
| (WebCore::RenderLayerCompositor::ensureRootLayer): |
| (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged): |
| * rendering/RenderLayerCompositor.h: |
| |
| 2018-09-12 Alex Christensen <achristensen@webkit.org> |
| |
| Expose fewer of URL's internal members |
| https://bugs.webkit.org/show_bug.cgi?id=189528 |
| |
| Reviewed by Chris Dumez. |
| |
| * loader/appcache/ApplicationCacheStorage.cpp: |
| (WebCore::urlHostHash): |
| * platform/URL.cpp: |
| (WebCore::URL::hostStart const): |
| (WebCore::protocolHostAndPortAreEqual): |
| (WebCore::hostsAreEqual): |
| * platform/URL.h: |
| (WebCore::URL::hostStart const): Deleted. |
| (WebCore::URL::hostEnd const): Deleted. |
| |
| 2018-09-12 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Implement correct total received bytes. |
| https://bugs.webkit.org/show_bug.cgi?id=189555 |
| |
| Reviewed by Alex Christensen. |
| |
| Curl port only reported total network received bytes before decoding. |
| |
| No new test. InspectorTest is only available for WebKitTestRunner. |
| |
| * platform/network/curl/CurlRequest.cpp: |
| (WebCore::CurlRequest::didReceiveData): |
| (WebCore::CurlRequest::updateNetworkLoadMetrics): |
| * platform/network/curl/CurlRequest.h: |
| |
| 2018-09-12 Youenn Fablet <youenn@apple.com> |
| |
| Split RTCRtpParameters idl and header file |
| https://bugs.webkit.org/show_bug.cgi?id=189524 |
| |
| Reviewed by Eric Carlson. |
| |
| This will be easier to manage and will allow to more easily introduce sender/receiver parameters. |
| No change of behavior. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * Modules/mediastream/RTCDegradationPreference.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCDegradationPreference.idl: Added. |
| * Modules/mediastream/RTCDtxStatus.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCDtxStatus.idl: Added. |
| * Modules/mediastream/RTCPriorityType.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCPriorityType.idl: Added. |
| * Modules/mediastream/RTCRtpCodecParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCRtpCodecParameters.idl: Added. |
| * Modules/mediastream/RTCRtpEncodingParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCRtpEncodingParameters.idl: Added. |
| * Modules/mediastream/RTCRtpFecParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCRtpFecParameters.idl: Added. |
| * Modules/mediastream/RTCRtpHeaderExtensionParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCRtpHeaderExtensionParameters.idl: Added. |
| * Modules/mediastream/RTCRtpParameters.h: |
| * Modules/mediastream/RTCRtpParameters.idl: |
| * Modules/mediastream/RTCRtpRtxParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h. |
| * Modules/mediastream/RTCRtpRtxParameters.idl: Added. |
| * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: |
| (WebCore::toRTCEncodingParameters): |
| (WebCore::fromRTCEncodingParameters): |
| (WebCore::toRTCHeaderExtensionParameters): |
| (WebCore::fromRTCHeaderExtensionParameters): |
| (WebCore::toRTCCodecParameters): |
| (WebCore::toRTCRtpParameters): |
| (WebCore::fromRTCRtpParameters): |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| |
| 2018-09-12 Ali Juma <ajuma@chromium.org> |
| |
| [IntersectionObserver] Implement rootMargin expansion |
| https://bugs.webkit.org/show_bug.cgi?id=189525 |
| |
| Reviewed by Simon Fraser. |
| |
| Expand the root intersection rectangle by the observer's rootMargin when computing |
| intersections. |
| |
| Test: imported/w3c/web-platform-tests/intersection-observer/root-margin.html |
| |
| * dom/Document.cpp: |
| (WebCore::expandRootBoundsWithRootMargin): |
| (WebCore::computeIntersectionRects): |
| * page/IntersectionObserver.h: |
| (WebCore::IntersectionObserver::rootMarginBox const): |
| * platform/graphics/FloatRect.h: |
| (WebCore::FloatRect::expand): |
| |
| 2018-09-12 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][Clang] error: non-constant-expression cannot be narrowed from type 'int' to 'SHORT' |
| https://bugs.webkit.org/show_bug.cgi?id=189542 |
| |
| Reviewed by Alex Christensen. |
| |
| No new tests (No behavior change). |
| |
| * platform/graphics/win/IntPointWin.cpp: |
| (WebCore::IntPoint::operator POINTS const): Narrowed m_x and m_y by using static_cast. |
| |
| 2018-09-12 Guillaume Emont <guijemont@igalia.com> |
| |
| Add IGNORE_WARNING_.* macros |
| https://bugs.webkit.org/show_bug.cgi?id=188996 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h: |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: |
| * accessibility/mac/AXObjectCacheMac.mm: |
| (WebCore::AXObjectCache::postPlatformNotification): |
| * accessibility/mac/AccessibilityObjectMac.mm: |
| (WebCore::AccessibilityObject::overrideAttachmentParent): |
| (WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): |
| * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: |
| (-[WebAccessibilityObjectWrapper renderWidgetChildren]): |
| (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): |
| (-[WebAccessibilityObjectWrapper role]): |
| (-[WebAccessibilityObjectWrapper roleDescription]): |
| * bridge/objc/WebScriptObject.mm: |
| * bridge/objc/objc_class.mm: |
| (JSC::Bindings::ObjcClass::fieldNamed const): |
| * crypto/CommonCryptoUtilities.cpp: |
| (WebCore::getCommonCryptoDigestAlgorithm): |
| * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: |
| (WebCore::encryptAES_GCM): |
| (WebCore::decyptAES_GCM): |
| * crypto/mac/SerializedCryptoKeyWrapMac.mm: |
| (WebCore::wrapSerializedCryptoKey): |
| (WebCore::unwrapSerializedCryptoKey): |
| * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: |
| * css/makeSelectorPseudoElementsMap.py: |
| * editing/TextIterator.cpp: |
| * editing/mac/EditorMac.mm: |
| (WebCore::Editor::pasteWithPasteboard): |
| (WebCore::Editor::takeFindStringFromSelection): |
| (WebCore::Editor::replaceNodeFromPasteboard): |
| * page/mac/EventHandlerMac.mm: |
| (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): |
| * page/mac/ServicesOverlayController.mm: |
| (WebCore::ServicesOverlayController::Highlight::paintContents): |
| * platform/LocalizedStrings.cpp: |
| (WebCore::formatLocalizedString): |
| * platform/ScreenProperties.h: |
| (WebCore::ScreenData::decode): |
| * platform/gamepad/mac/HIDGamepadProvider.cpp: |
| (WebCore::HIDGamepadProvider::stopMonitoringInput): |
| * platform/graphics/PlatformDisplay.cpp: |
| (WebCore::PlatformDisplay::sharedDisplay): |
| * platform/graphics/SurrogatePairAwareTextIterator.cpp: |
| * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: |
| (WebCore::MediaSelectionGroupAVFObjC::updateOptions): |
| * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: |
| (WebCore::CDMSessionAVStreamSession::update): |
| * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack const): |
| (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep): |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: |
| * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: |
| (WebCore::IGNORE_CLANG_WARNING_END): |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: |
| * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: |
| (-[WebAVSampleBufferErrorListener beginObservingRenderer:]): |
| (-[WebAVSampleBufferErrorListener stopObservingRenderer:]): |
| (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]): |
| (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): |
| (WebCore::IGNORE_CLANG_WARNING_END): |
| * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: |
| (PlatformCALayer::drawLayerContents): |
| * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp: |
| (WebCore::FontCascade::fontForCombiningCharacterSequence const): |
| * platform/graphics/cg/ImageDecoderCG.cpp: |
| (WebCore::ImageDecoderCG::createFrameImageAtIndex): |
| * platform/graphics/cocoa/GraphicsContextCocoa.mm: |
| (WebCore::GraphicsContext::drawLineForDocumentMarker): |
| * platform/graphics/cocoa/WebGLLayer.h: |
| (IGNORE_CLANG_WARNING): |
| * platform/graphics/mac/ComplexTextControllerCoreText.mm: |
| (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): |
| * platform/graphics/mac/IconMac.mm: |
| (WebCore::Icon::Icon): |
| * platform/graphics/mac/PDFDocumentImageMac.mm: |
| (WebCore::PDFDocumentImage::drawPDFPage): |
| * platform/graphics/mac/WebKitNSImageExtras.mm: |
| (-[NSImage _web_lockFocusWithDeviceScaleFactor:]): |
| * platform/ios/DragImageIOS.mm: |
| * platform/mac/DragImageMac.mm: |
| (WebCore::scaleDragImage): |
| (WebCore::createDragImageForLink): |
| * platform/mac/LegacyNSPasteboardTypes.h: |
| * platform/mac/LocalCurrentGraphicsContext.mm: |
| (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext): |
| * platform/mac/PasteboardMac.mm: |
| (WebCore::Pasteboard::createForCopyAndPaste): |
| (WebCore::Pasteboard::createForDragAndDrop): |
| (WebCore::setDragImageImpl): |
| * platform/mac/PlatformEventFactoryMac.mm: |
| (WebCore::globalPoint): |
| * platform/mac/SSLKeyGeneratorMac.mm: |
| * platform/mac/ScrollViewMac.mm: |
| (WebCore::ScrollView::platformContentsToScreen const): |
| (WebCore::ScrollView::platformScreenToContents const): |
| * platform/mac/ThemeMac.mm: |
| (WebCore::drawCellFocusRingWithFrameAtTime): |
| * platform/mac/WebPlaybackControlsManager.mm: |
| * platform/mac/WidgetMac.mm: |
| (WebCore::Widget::paint): |
| * platform/mediastream/RealtimeIncomingAudioSource.h: |
| * platform/mediastream/RealtimeIncomingVideoSource.h: |
| * platform/mediastream/RealtimeOutgoingAudioSource.h: |
| * platform/mediastream/RealtimeOutgoingVideoSource.h: |
| * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: |
| * platform/mediastream/libwebrtc/LibWebRTCProvider.h: |
| * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: |
| * platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: |
| * platform/network/cf/NetworkStorageSessionCFNet.cpp: |
| * platform/network/cf/ResourceHandleCFNet.cpp: |
| (WebCore::ResourceHandle::createCFURLConnection): |
| * platform/network/cf/SocketStreamHandleImplCFNet.cpp: |
| (WebCore::SocketStreamHandleImpl::reportErrorToClient): |
| * platform/network/create-http-header-name-table: |
| * platform/text/TextEncoding.cpp: |
| * testing/MockLibWebRTCPeerConnection.h: |
| * xml/XPathGrammar.cpp: |
| |
| 2018-09-12 Pablo Saavedra <psaavedra@igalia.com> |
| |
| Linking against libWPEWebKit-0.1.so is not posible when WPE is build with ENABLE_VIDEO=OFF and ENABLE_WEB_AUDIO=OFF |
| https://bugs.webkit.org/show_bug.cgi?id=189540 |
| |
| Reviewed by Philippe Normand. |
| |
| Related issues: |
| |
| This issue is related with changes in https://bugs.webkit.org/show_bug.cgi?id=183080 |
| This issue is introduced in https://bugs.webkit.org/show_bug.cgi?id=186547 |
| |
| No new tests, no changes in the functionality. |
| |
| * platform/GStreamer.cmake: |
| * platform/SourcesGLib.txt: |
| * platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp: |
| (WebCore::LibWebRTCProvider::webRTCAvailable): |
| |
| 2018-09-11 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed WPE build fix. |
| |
| * platform/network/soup/SocketStreamHandleImplSoup.cpp: |
| Add extra header inclusions to get this code building after the unified |
| sources system shifted it into a different translation unit. |
| |
| 2018-09-11 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] WebInspector doesn't display request headers added during processing. |
| https://bugs.webkit.org/show_bug.cgi?id=189531 |
| |
| Reviewed by Alex Christensen. |
| |
| While processing the request, Curl port network layer adds some headers to the request |
| such as cookies. Those headers should be displayed in the WebInspector. |
| |
| Tested on MiniBrowser. |
| |
| * platform/network/curl/CurlRequest.cpp: |
| (WebCore::CurlRequest::didReceiveHeader): |
| (WebCore::CurlRequest::didCompleteTransfer): |
| (WebCore::CurlRequest::updateNetworkLoadMetrics): |
| * platform/network/curl/CurlRequest.h: |
| |
| 2018-09-11 James Savage <james.savage@apple.com> |
| |
| Follow up to: |
| Expose -apple-system-container-border color to internal web views. |
| https://bugs.webkit.org/show_bug.cgi?id=189178. |
| |
| Reviewed by Timothy Hatcher. |
| |
| * rendering/RenderThemeMac.mm: |
| (WebCore::RenderThemeMac::systemColor const): Add a separate #if block for |
| Mojave. When I used CSSValueAppleSystemFindHighlightBackground as a template |
| for this change, I had to write out the condition in the first change, but |
| mistakenly thought I could reuse the block here. Turns out the versions were |
| different, and I could not. |
| |
| 2018-09-11 Youenn Fablet <youenn@apple.com> |
| |
| Remove MediaDevices NoInterfaceObject |
| https://bugs.webkit.org/show_bug.cgi?id=189512 |
| |
| Reviewed by Alex Christensen. |
| |
| Covered by rebased WPT tests. |
| |
| * Modules/mediastream/MediaDevices.idl: |
| |
| 2018-09-11 Jer Noble <jer.noble@apple.com> |
| |
| [MediaCapabilities] Implement MediaEngineConfigurationFactory registration |
| https://bugs.webkit.org/show_bug.cgi?id=189438 |
| |
| Reviewed by Eric Carlson. |
| |
| Implement a mechanism to register platform-specific MediaEngineConfigurationFactory methods, and a mechanism to iterate |
| over those registered factories when createDecodingConfiguration() and createEncodingConfiguration() are called. |
| |
| The Factory has been radically simplified; the concept of MediaEngineDecodingConfiguration |
| and MediaEngineEncodingConfiguration and its subclasess have been removed. Since the primary |
| objects representing video and audio configurations are IDLDictionaries, the native objects |
| are just structs full of POD types (and Strings). Since these have no dependencies on |
| higher-level HTML concepts, they can be moved into platform/ and accessed from there. This |
| patch also converts MediaCapabilitiesInfo to an Interface, so its implementation also can |
| become a struct and live in platform/. The MediaEngineDecodingConfigurationMock and |
| MediaEngineEncodingConfigurationMock have been consolidated in a single class which simply |
| parses MediaDecodingConfiguration and MediaEncodingConifguration objects (now that they live |
| in Platform) and return a MediaCapabilitiesInfo object (now that it does too). |
| |
| * Modules/mediacapabilities/MediaCapabilities.cpp: |
| (WebCore::isValidVideoConfiguration): |
| (WebCore::MediaCapabilities::decodingInfo): |
| (WebCore::MediaCapabilities::encodingInfo): |
| * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Removed. |
| * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: |
| * Modules/mediacapabilities/VideoConfiguration.idl: |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * platform/MediaCapabilitiesInfo.h: Copied from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. |
| * platform/mediacapabilities/AudioConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/AudioConfiguration.h. |
| * platform/mediacapabilities/MediaConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaConfiguration.h. |
| * platform/mediacapabilities/MediaDecodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.h. |
| * platform/mediacapabilities/MediaDecodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. |
| * platform/mediacapabilities/MediaEncodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.h. |
| * platform/mediacapabilities/MediaEncodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingType.h. |
| * platform/mediacapabilities/MediaEngineConfiguration.cpp: Removed. |
| * platform/mediacapabilities/MediaEngineConfiguration.h: Removed. |
| * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: |
| (WebCore::factories): |
| (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): |
| (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): |
| * platform/mediacapabilities/MediaEngineConfigurationFactory.h: |
| * platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Removed. |
| * platform/mediacapabilities/VideoConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/VideoConfiguration.h. |
| * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: |
| * platform/mock/MediaEngineConfigurationFactoryMock.cpp: Added. |
| (WebCore::canDecodeMedia): |
| (WebCore::canSmoothlyDecodeMedia): |
| (WebCore::canPowerEfficientlyDecodeMedia): |
| (WebCore::canEncodeMedia): |
| (WebCore::canSmoothlyEncodeMedia): |
| (WebCore::canPowerEfficientlyEncodeMedia): |
| (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration): |
| (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration): |
| * platform/mock/MediaEngineConfigurationFactoryMock.h: Renamed from Source/WebCore/platform/mediacapabilities/MediaEngineDecodingConfiguration.h. |
| * platform/mock/MediaEngineDecodingConfigurationMock.cpp: Removed. |
| * platform/mock/MediaEngineDecodingConfigurationMock.h: Removed. |
| * platform/mock/MediaEngineEncodingConfigurationMock.cpp: Removed. |
| * platform/mock/MediaEngineEncodingConfigurationMock.h: Removed. |
| |
| 2018-09-08 Ryosuke Niwa <rniwa@webkit.org> |
| |
| :first-child, :last-child, :nth-child, and :nth-of-type don't work on shadow root's children |
| https://bugs.webkit.org/show_bug.cgi?id=166748 |
| <rdar://problem/29649177> |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Added the support for matching positional pseudo classes. For now, we invalidate whenever a child node |
| of a non-UA ShadowRoot is mutated instead of a fine-grained style invalidation as done for regular elements. |
| |
| Tests: fast/shadow-dom/nth-node-on-shadow-child-invalidation.html |
| fast/shadow-dom/nth-node-on-shadow-child-no-jit.html |
| fast/shadow-dom/nth-node-on-shadow-child.html |
| |
| * css/SelectorChecker.cpp: |
| (WebCore::SelectorChecker::checkOne const): |
| * cssjit/SelectorCompiler.cpp: |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElementOrShadowRoot): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthChildParentCheckAndRelationUpdate): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChildOf): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthLastChildParentCheckAndRelationUpdate): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChild): |
| (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthLastChildOf): |
| * dom/ShadowRoot.cpp: |
| (WebCore::ShadowRoot::childrenChanged): Invalidate the subtree whenever a child node is mutated. |
| * dom/ShadowRoot.h: |
| * domjit/DOMJITHelpers.h: |
| (WebCore::DOMJIT::branchTestIsShadowRootFlagOnNode): Added. |
| (WebCore::DOMJIT::branchTestIsElementOrShadowRootFlagOnNode): Added. |
| |
| 2018-09-11 Per Arne Vollan <pvollan@apple.com> |
| |
| Addressing post-review feedback on r235619. |
| https://bugs.webkit.org/show_bug.cgi?id=187925 |
| |
| Unreviewed. |
| |
| * testing/Internals.cpp: |
| (WebCore::Internals::primaryScreenDisplayID): |
| * testing/Internals.h: |
| |
| 2018-09-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] [WK2] Support changing foreground colors via color panel |
| https://bugs.webkit.org/show_bug.cgi?id=189382 |
| <rdar://problem/44227311> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Small adjustments to support changing foreground text color using NSColorPanel in WebKit2. See comments below. |
| Tested by FontManagerTests.ChangeFontColorWithColorPanel. |
| |
| * editing/EditingStyle.cpp: |
| (WebCore::StyleChange::extractTextStyles): |
| |
| Support setting foreground text color with alpha by using a styled span element rather than a font element with |
| attributes. To do this, only populate `StyleChange::m_applyFontColor` if the color is opaque. This is because |
| the font element does not support `rgba()` syntax, so any font colors here with alpha that are serialized to |
| `rgba()` result in a garbage value for the computed color style. |
| |
| * editing/FontAttributeChanges.cpp: |
| (WebCore::FontAttributeChanges::editAction const): |
| |
| Add a helper to return the relevant EditAction describing this set of FontAttributeChanges. |
| |
| * editing/FontAttributeChanges.h: |
| (WebCore::FontChanges::isEmpty const): |
| |
| 2018-09-11 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| Shrink size of ResourseResponseBase |
| https://bugs.webkit.org/show_bug.cgi?id=189501 |
| |
| Reviewed by Simon Fraser. |
| |
| We reduce the size of ResourceResponseBase by the following two optimizations. |
| |
| 1. Use bitfields for bool flags and reorder them. |
| |
| 2. Use Markable<> in CacheControlDirectives, which is held by ResourceResponseBase. |
| |
| This patch reduces the size of ResourceResponseBase from 416 to 392 bytes. |
| |
| No behavior change. |
| |
| * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: |
| (WebCore::WebCoreAVFResourceLoader::responseReceived): |
| (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): |
| * platform/network/CacheValidation.h: |
| (WebCore::CacheControlDirectives::CacheControlDirectives): |
| * platform/network/ResourceResponseBase.cpp: |
| (WebCore::ResourceResponseBase::ResourceResponseBase): |
| (WebCore::ResourceResponseBase::contentRange const): |
| * platform/network/ResourceResponseBase.h: |
| (WebCore::ResourceResponseBase::decode): |
| |
| 2018-09-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix some -Wreturn-type warnings |
| |
| * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: |
| (WebCore::sourceFromNewReceiver): |
| * Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: |
| (WebCore::toRTCRtpTransceiverDirection): |
| (WebCore::fromRTCRtpTransceiverDirection): |
| |
| 2018-09-11 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a speculative build fix for r235888. |
| |
| * Modules/mediastream/MediaDevices.h: |
| Add class Document forward declaration. |
| |
| 2018-09-11 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Add Web API Statistics Collection |
| https://bugs.webkit.org/show_bug.cgi?id=187773 |
| <rdar://problem/44155162> |
| |
| Reviewed by Brent Fulgham. |
| |
| Added data collection for web API statistics, specifically regarding the canvas, font loads, |
| screen functions, and navigator functions. The data collection code is placed under a runtime |
| enabled feature flag. The statistics are stored in a ResourceLoadStatistics object and written |
| to a plist on disk. Added a new file CanvasActivityRecord.h and CanvasActivityRecord.cpp which |
| includes a struct to keep track of HTML5 canvas element read and writes. |
| |
| Tests: http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html |
| http/tests/webAPIStatistics/font-load-data-collection.html |
| http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html |
| http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html |
| |
| * Sources.txt: |
| * WebCore.xcodeproj/project.pbxproj: |
| * css/CSSFontFaceSource.cpp: |
| (WebCore::CSSFontFaceSource::load): |
| * css/CSSFontSelector.cpp: |
| (WebCore::CSSFontSelector::fontRangesForFamily): |
| (WebCore::CSSFontSelector::fallbackFontAt): |
| |
| The following are the functions where we'd like to record a canvas read. |
| |
| * html/HTMLCanvasElement.cpp: |
| (WebCore::HTMLCanvasElement::toDataURL): |
| (WebCore::HTMLCanvasElement::toBlob): |
| (WebCore::HTMLCanvasElement::getImageData): |
| (WebCore::HTMLCanvasElement::toMediaSample): |
| (WebCore::HTMLCanvasElement::captureStream): |
| |
| The following are the functions where we'd like to record a canvas write. |
| |
| * html/canvas/CanvasRenderingContext2D.cpp: |
| (WebCore::CanvasRenderingContext2D::measureText): |
| (WebCore::CanvasRenderingContext2D::drawTextInternal): |
| |
| The following files and functions handle the CanvasActivityRecord struct and |
| its respective functions. |
| |
| * loader/CanvasActivityRecord.cpp: Added. |
| (WebCore::CanvasActivityRecord::recordWrittenOrMeasuredText): |
| (WebCore::CanvasActivityRecord::mergeWith): |
| * loader/CanvasActivityRecord.h: Added. |
| (WebCore::CanvasActivityRecord::encode const): |
| (WebCore::CanvasActivityRecord::decode): |
| |
| * loader/DocumentThreadableLoader.cpp: |
| * loader/FrameLoader.cpp: |
| * loader/ResourceLoadObserver.cpp: |
| (WebCore::ResourceLoadObserver::logFontLoad): |
| (WebCore::ResourceLoadObserver::logCanvasRead): |
| (WebCore::ResourceLoadObserver::logCanvasWriteOrMeasure): |
| (WebCore::ResourceLoadObserver::logNavigatorAPIAccessed): |
| (WebCore::ResourceLoadObserver::logScreenAPIAccessed): |
| |
| Before, entries in the ResourceLoadStatistics involving HashSets used "origin" as the key. |
| Now the encodeHashSet function has been generalized to take any key to encode the entries |
| in the HashSet. Also added functionality to encode an OptionSet by converting it to its |
| raw bitmask state. |
| |
| * loader/ResourceLoadObserver.h: |
| * loader/ResourceLoadStatistics.cpp: |
| (WebCore::encodeHashSet): |
| (WebCore::encodeOriginHashSet): |
| (WebCore::encodeOptionSet): |
| (WebCore::encodeFontHashSet): |
| (WebCore::encodeCanvasActivityRecord): |
| (WebCore::ResourceLoadStatistics::encode const): |
| (WebCore::decodeHashSet): |
| (WebCore::decodeOriginHashSet): |
| (WebCore::decodeOptionSet): |
| (WebCore::decodeFontHashSet): |
| (WebCore::decodeCanvasActivityRecord): |
| (WebCore::ResourceLoadStatistics::decode): |
| (WebCore::navigatorAPIEnumToString): |
| (WebCore::screenAPIEnumToString): |
| (WebCore::appendNavigatorAPIOptionSet): |
| (WebCore::appendScreenAPIOptionSet): |
| (WebCore::ResourceLoadStatistics::toString const): |
| (WebCore::ResourceLoadStatistics::merge): |
| * loader/ResourceLoadStatistics.h: |
| * loader/ResourceTiming.cpp: |
| |
| The following are the navigator functions recorded for the web API statistics. |
| |
| * page/Navigator.cpp: |
| (WebCore::Navigator::appVersion const): |
| (WebCore::Navigator::userAgent const): |
| (WebCore::Navigator::plugins): |
| (WebCore::Navigator::mimeTypes): |
| (WebCore::Navigator::cookieEnabled const): |
| (WebCore::Navigator::javaEnabled const): |
| |
| The following are the screen functions recorded for the web API statistics. |
| |
| * page/Screen.cpp: |
| (WebCore::Screen::height const): |
| (WebCore::Screen::width const): |
| (WebCore::Screen::colorDepth const): |
| (WebCore::Screen::pixelDepth const): |
| (WebCore::Screen::availLeft const): |
| (WebCore::Screen::availTop const): |
| (WebCore::Screen::availHeight const): |
| (WebCore::Screen::availWidth const): |
| |
| 2018-09-11 Pablo Saavedra <psaavedra@igalia.com> |
| |
| playbackControlsManagerUpdateTimerFired and |
| m_playbackControlsManagerUpdateTimer must be |
| guarded with ENABLE(VIDEO), otherwise the following |
| error occurs with the VIDEO feature turned off: |
| |
| error: 'MediaElementSession' has not been declared |
| |
| Add missing #if ENABLE(VIDEO) Page.cpp and Page.h |
| https://bugs.webkit.org/show_bug.cgi?id=189500 |
| |
| Reviewed by Anders Carlsson. |
| |
| * page/Page.cpp: |
| (WebCore::Page::Page): |
| (WebCore::Page::schedulePlaybackControlsManagerUpdate): |
| * page/Page.h: |
| |
| 2018-09-11 Frederic Wang <fwang@igalia.com> |
| |
| Refactor filter list checking code |
| https://bugs.webkit.org/show_bug.cgi?id=185087 |
| |
| Reviewed by Antonio Gomes. |
| |
| No new tests, behavior unchanged. |
| |
| * page/animation/KeyframeAnimation.h: Add missing forward-declaration FilterOperations. |
| |
| == Rolled over to ChangeLog-2018-09-11 == |