| 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 == |