Commit Graph

240929 Commits

Author SHA1 Message Date
Wenson Hsieh 58daa961d4 [iOS] Remove support for the meaningful tap heuristic
https://bugs.webkit.org/show_bug.cgi?id=229298
rdar://82130066

Reviewed by Tim Horton.

Source/WebCore:

See WebKit ChangeLog for more details.

* page/ChromeClient.h:
(WebCore::ChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):

Source/WebKit:

Remove all support for the meaningful tap heuristic, which was used to allow users to toggle tab pill visibility
in earlier versions of the Safari redesign. As of the latest iOS 15 beta, this heuristic is no longer necessary,
so we don't need this SPI support anymore.

* UIProcess/API/APIUIClient.h:
(API::UIClient::didNotHandleTapAsClick):
(API::UIClient::didTapAtPoint): Deleted.
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
* UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _didTapAtPoint:withResult:]): Deleted.
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didTapAtPoint): Deleted.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didTapAtPoint): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didTapAtPoint): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::isPlayingMediaDidChange):
* WebProcess/WebPage/WebPage.h:

Drive-by fix: initialize `m_appHighlightsVisible` using the correct type.

(WebKit::WebPage::platformNeedsLayoutForEditorState const):
(WebKit::WebPage::prepareToRunModalJavaScriptDialog):
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.
(WebKit::WebPage::platformIsPlayingMediaDidChange): Deleted.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::attemptSyntheticClick):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTapFailed):
(WebKit::WebPage::clearSelectionAfterTapIfNeeded):
(WebKit::isProbablyMeaningfulClick): Deleted.
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent): Deleted.
(WebKit::WebPage::platformIsPlayingMediaDidChange): Deleted.

Tools:

Remove test runner support for testing the meaningful tap heuristic.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::installDidHandleTapCallback): Deleted.
(WTR::TestRunner::callDidHandleTapCallback): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::didHandleTap): Deleted.
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didHandleTap): Deleted.
* WebKitTestRunner/TestInvocation.h:
* WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView _didTapAtPoint:withResult:]): Deleted.

LayoutTests:

Remove all layout tests that exercised the meaningful tap heuristic.

* fast/events/ios/did-not-handle-meaningful-click-expected.txt: Removed.
* fast/events/ios/did-not-handle-meaningful-click.html: Removed.
* fast/events/ios/meaningful-click-when-focusing-body-expected.txt: Removed.
* fast/events/ios/meaningful-click-when-focusing-body.html: Removed.
* fast/events/ios/meaningful-click-when-playing-media-expected.txt: Removed.
* fast/events/ios/meaningful-click-when-playing-media.html: Removed.
* fast/events/ios/meaningful-click-when-tapping-draggable-content-expected.txt: Removed.
* fast/events/ios/meaningful-click-when-tapping-draggable-content.html: Removed.
* fast/events/ios/non-meaningful-click-when-tapping-document-expected.txt: Removed.
* fast/events/ios/non-meaningful-click-when-tapping-document.html: Removed.


Canonical link: https://commits.webkit.org/240704@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 23:17:35 +00:00
Aditya Keerthi 13a9afce1f Remove __has_include guard for _UIDatePickerOverlayPresentation
https://bugs.webkit.org/show_bug.cgi?id=227298
rdar://79970171

Reviewed by Tim Horton.

Source/WebKit:

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker showDateTimePicker]):

Source/WTF:

* wtf/PlatformHave.h:


Canonical link: https://commits.webkit.org/240703@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 23:13:51 +00:00
Alex Christensen d1222c022d Use Vector<SandboxExtension::Handle> instead of SandboxExtension::HandleArray
https://bugs.webkit.org/show_bug.cgi?id=229100

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-19
Reviewed by Chris Dumez.

No change in behavior.  Just more modern code.

* GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::decode):
* GPUProcess/GPUProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
* Platform/IPC/FormDataReference.h:
(IPC::FormDataReference::encode const):
(IPC::FormDataReference::decode):
* Shared/Cocoa/LoadParametersCocoa.mm:
(WebKit::LoadParameters::platformDecode):
* Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::createHandlesForResources):
(WebKit::SandboxExtension::createReadOnlyHandlesForFiles):
(WebKit::SandboxExtension::createHandlesForMachLookup):
(WebKit::SandboxExtension::createHandlesForIOKitClassExtensions):
(WebKit::SandboxExtension::consumePermanently):
(WebKit::SandboxExtension::HandleArray::HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::~HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::allocate): Deleted.
(WebKit::SandboxExtension::HandleArray::append): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[]): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[] const): Deleted.
(WebKit::SandboxExtension::HandleArray::size const): Deleted.
(WebKit::SandboxExtension::HandleArray::encode const): Deleted.
(WebKit::SandboxExtension::HandleArray::decode): Deleted.
* Shared/Databases/IndexedDB/WebIDBResult.cpp:
(WebKit::WebIDBResult::encode const):
(WebKit::WebIDBResult::decode):
* Shared/Databases/IndexedDB/WebIDBResult.h:
(WebKit::WebIDBResult::WebIDBResult):
(WebKit::WebIDBResult::handles const):
* Shared/LoadParameters.h:
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::Handle::decode):
(WebKit::SandboxExtension::createReadOnlyHandlesForFiles):
(WebKit::SandboxExtension::consumePermanently):
(WebKit::SandboxExtension::HandleArray::at): Deleted.
(WebKit::SandboxExtension::HandleArray::HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::~HandleArray): Deleted.
(WebKit::SandboxExtension::HandleArray::allocate): Deleted.
(WebKit::SandboxExtension::HandleArray::append): Deleted.
(WebKit::SandboxExtension::HandleArray::size const): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[] const): Deleted.
(WebKit::SandboxExtension::HandleArray::operator[]): Deleted.
(WebKit::SandboxExtension::HandleArray::begin): Deleted.
(WebKit::SandboxExtension::HandleArray::end): Deleted.
(WebKit::SandboxExtension::HandleArray::begin const): Deleted.
(WebKit::SandboxExtension::HandleArray::end const): Deleted.
(WebKit::SandboxExtension::HandleArray::encode const): Deleted.
(WebKit::SandboxExtension::HandleArray::decode): Deleted.
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded):
(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions):
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::performDragOperation):
* UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::willCreateMediaStream):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::performDragOperation):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView dropInteraction:performDrop:]):
* WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:
(WebKit::MediaDeviceSandboxExtensions::MediaDeviceSandboxExtensions):
(WebKit::MediaDeviceSandboxExtensions::encode const):
(WebKit::MediaDeviceSandboxExtensions::decode):
* WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getPathnamesForType):
* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::consumeNetworkExtensionSandboxExtensions):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::performDragControllerAction):
(WebKit::WebPage::extendSandboxForFilesFromOpenPanel):
(WebKit::WebPage::consumeSandboxExtensions):
(WebKit::WebPage::consumeNetworkExtensionSandboxExtensions):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::unblockPreferenceService):
(WebKit::WebProcess::unblockServicesRequiredByAccessibility):

Canonical link: https://commits.webkit.org/240702@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 23:02:50 +00:00
Simon Fraser 3bb6a43138 Replace the uint64_t used to identify taps with an ObjectIdentifier<> type
https://bugs.webkit.org/show_bug.cgi?id=229278

Reviewed by Wenson Hsieh.

Interaction code used "uint64_t requestID" to identify taps, but there are other
things that used "uint64_t requestID", which may result in bugs.

Fix by using a strongly typed ObjectIdentifier<TapIdentifierType> to identify taps.
This is defined in IdentifierTypes.h since I expect to add more of them.

* Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
* Shared/IdentifierTypes.h: Added.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary):
(WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap):
(WebKit::PageClientImpl::didGetTapHighlightGeometries):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
(-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]):
(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]):
(-[WKContentView nextTapIdentifier]):
(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _singleTapIdentified:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::potentialTapAtPosition):
(WebKit::WebPageProxy::tapHighlightAtPosition):
(WebKit::WebPageProxy::didGetTapHighlightGeometries):
(WebKit::WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary):
(WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::tapHighlightAtPosition):


Canonical link: https://commits.webkit.org/240701@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 22:48:25 +00:00
Megan Gardner 59d9110764 Turn on TestWebKitAPI.WKAttachmentTests.CopyAndPasteBetweenWebViews as it is now passing again.
https://bugs.webkit.org/show_bug.cgi?id=204969

Reviewed by Tim Horton.

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):


Canonical link: https://commits.webkit.org/240700@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 22:32:47 +00:00
Andres Gonzalez 3ccce48b8c Rename AccessibilityUIElement::setSelectedVisibleTextRange to setSelectedTextMarkerRange for naming consistency and maintainability.
https://bugs.webkit.org/show_bug.cgi?id=229290
<rdar://problem/82128453>

Reviewed by Chris Fleizach.

Tools:

Renamed this method for consistency and to reflect what it is actually
doing. The goal is to avoid confusion with methods for VisiblePosition,
VisibleSelection and so forth, which are Core objects not exposed to AX
clients.

* DumpRenderTree/AccessibilityUIElement.cpp:
(setSelectedTextMarkerRangeCallback):
(AccessibilityUIElement::setSelectedTextMarkerRange):
(AccessibilityUIElement::getJSClass):
(setSelectedVisibleTextRangeCallback): Deleted.
(AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::setSelectedTextMarkerRange):
(AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::setSelectedTextMarkerRange):
(AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.
* WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
(WTR::AccessibilityUIElement::setSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange): Deleted.

LayoutTests:

Updated all test files to use new name.

* accessibility/mac/selected-visible-position-range.html:
* accessibility/mac/selection-sync.html:
* accessibility/mac/wk1-set-selected-text-marker-range-input-element.html:


Canonical link: https://commits.webkit.org/240699@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 22:28:50 +00:00
Megan Gardner 4ab0a388c6 Remove old unused code and out of date comments.
https://bugs.webkit.org/show_bug.cgi?id=229210

Reviewed by Anders Carlsson.

Source/WebKitLegacy/ios:

* WebKit.iOS.exp:

Source/WebKitLegacy/mac:

* WebView/WebView.mm:
* WebView/WebViewPrivate.h:


Canonical link: https://commits.webkit.org/240698@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 22:25:01 +00:00
Alan Bujtas faacac5f27 [Line layout] "zero width space" (U+200B) is a breaking space
https://bugs.webkit.org/show_bug.cgi?id=227858

Reviewed by Antti Koivisto.

This is a workaround for handling mismatching prior-context content in break iterators.

* layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):


Canonical link: https://commits.webkit.org/240697@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 22:23:31 +00:00
Alan Bujtas ff3d8c9e9c [LFC][IFC] Add support for negative horizontal margin (inline box)
https://bugs.webkit.org/show_bug.cgi?id=227837

Reviewed by Antti Koivisto.

When building up the line for line breaking, each inline item is placed adjacent with no gaps
in-between the neighboring entries. They are considered atomic with their margins, padding, borders and content width.
Later when we form the inline runs out of these entries, we offset them by their horizontal margin values.

* layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::appendInlineBoxStart):
* layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):
* layout/integration/LayoutIntegrationCoverage.h:


Canonical link: https://commits.webkit.org/240696@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 21:59:52 +00:00
David Kilzer ad480671ae [WTF] Fix static analyzer warnings for clang tidy bugprone-move-forwarding-reference checker
<https://webkit.org/b/229114>

Reviewed by Darin Adler.

* wtf/Deque.h:
(WTF::inlineCapacity>::appendAndBubble):
* wtf/Scope.h:
(WTF::ScopeExit::ScopeExit):
* wtf/ScopedLambda.h:
(WTF::scopedLambda):
* wtf/SharedTask.h:
(WTF::createSharedTask):
- Replace WTFMove() with std::forward<>().


Canonical link: https://commits.webkit.org/240695@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 21:25:12 +00:00
Alan Bujtas 6ed0b8b3e0 [LFC][IFC] Add support for overflow-wrap: anywhere
https://bugs.webkit.org/show_bug.cgi?id=227695

LayoutTests/imported/w3c:

Reviewed by Antti Koivisto.

* web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-span-002-expected.txt:
* web-platform-tests/css/css-text/parsing/overflow-wrap-computed-expected.txt:
* web-platform-tests/css/css-text/parsing/overflow-wrap-valid-expected.txt:
* web-platform-tests/css/css-text/parsing/word-wrap-computed-expected.txt:
* web-platform-tests/css/css-text/parsing/word-wrap-valid-expected.txt:

Source/WebCore:

Reviewed by Antti Koivisto.

Adjust the line breaking logic in IFC to support "overflow-wrap: anywhere".
From the line breaking point of view, "anywhere" and "break-word" work the same way
(i.e. an unbreakable content can be broken at an arbitrary position if there are no other, previous break points in the line).

https://drafts.csswg.org/css-text-3/#overflow-wrap-property

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator OverflowWrap const):
* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
* layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::breakWords const):
* rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.h:

LayoutTests:

Reviewed by Antti Koivisto.

* TestExpectations: Progressions.


Canonical link: https://commits.webkit.org/240694@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281259 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 20:02:53 +00:00
Alex Christensen 607c7b06a9 Remove more non-inclusive language from Source
https://bugs.webkit.org/show_bug.cgi?id=229230

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-19
Reviewed by Myles C. Maxfield.

Source/WebCore:

No change in behavior.

* WebCore.order:
* features.json:

Source/WebInspectorUI:

* UserInterface/External/three.js/three.js:
(return.parseTrackName):
(parseTrackName):
* UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WI.ConsoleMessageView.prototype._formatWithSubstitutionString.isAllowedProperty):
(WI.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty): Deleted.
* UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):

Source/WebKit:

* mac/WebKit2.order:

Source/WebKitLegacy/mac:

* WebKit.order:
* WebView/WebViewPrivate.h:

Source/WTF:

* icu/unicode/uspoof.h:
This comment change comes from upstream ICU.
* wtf/URL.h:

Canonical link: https://commits.webkit.org/240693@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281258 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 19:58:33 +00:00
Jonathan Bedard 76c1578a6e [run-webkit-tests] Handle json crash logs (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229288
<rdar://problem/77074039>

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/common/system/crashlogs.py:
(CrashLogs._parse_darwin_crash_log): Attempt to parse crash logs as json, since Monterey .ips
(CrashLogs._find_newest_log_darwin.is_crash_log):
* Scripts/webkitpy/common/system/crashlogs_unittest.py:


Canonical link: https://commits.webkit.org/240692@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281257 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 19:46:00 +00:00
Eric Hutchison 0f110e3188 [iOS 15 wk2] storage/indexeddb/dont-wedge-private.html is a flaky failure.
rdar://82134088.

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240691@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281255 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 18:56:19 +00:00
Simon Fraser 7453a87420 Rename Element::clientRect() which does not return a value in web-exposed "client" coordinates
https://bugs.webkit.org/show_bug.cgi?id=229243

Reviewed by Wenson Hsieh.

The result of Element::clientRect() is in the coordinate space of the root view,
not in the space of the Element's Frame, so does not match the other functions on Element
with "client" in the name.

Rename to Element::boundingBoxInRootViewCoordinates() for clarity.

Source/WebCore:

* dom/Element.cpp:
(WebCore::Element::boundingBoxInRootViewCoordinates const):
(WebCore::Element::clientRect const): Deleted.
* dom/Element.h:
* html/MediaElementSession.cpp:
(WebCore::isElementMainContentForPurposesOfAutoplay):
(WebCore::isElementRectMostlyInMainFrame):
* page/Page.cpp:
(WebCore::Page::editableElementsInRect const):

Source/WebKit:

* WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
(WebKit::WebValidationMessageClient::showValidationMessage):
(WebKit::WebValidationMessageClient::updateValidationBubbleStateIfNeeded):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::contextForElement const):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::isObscuredElement):
(WebKit::WebPage::textInputContextsInRect):

Source/WebKitLegacy/mac:

* WebCoreSupport/WebValidationMessageClient.mm:
(WebValidationMessageClient::showValidationMessage):
(WebValidationMessageClient::updateValidationBubbleStateIfNeeded):

Canonical link: https://commits.webkit.org/240690@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281254 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 18:24:00 +00:00
Adrien Destugues 9cabb795d1 Merge commit '788086b3b8ba5a5894f8cfe1094ed237351b2dea' into Haiku 2021-08-19 20:21:07 +02:00
Ayumi Kojima a78af2f28c [ Win EWS ] http/tests/security/no-javascript-refresh-spaces.py is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229300

Unreviewed test gardening.

* platform/win/TestExpectations:

Canonical link: https://commits.webkit.org/240689@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 18:12:29 +00:00
Tim Nguyen 60860019ca Top layer: handle display: contents and non out-of-flow position values
https://bugs.webkit.org/show_bug.cgi?id=229093

Reviewed by Simon Fraser.

From: https://fullscreen.spec.whatwg.org/#new-stacking-layer
If its specified display property is contents, it computes to block.
If its specified position property is not absolute or fixed, it computes to absolute.

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-display-contents.html

Source/WebCore:

* style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):

LayoutTests:

* TestExpectations:

Canonical link: https://commits.webkit.org/240688@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 18:05:00 +00:00
Tim Nguyen 3f4560b093 Re-import html/semantics/interactive-elements/the-dialog-element WPT - August 19th 2021
https://bugs.webkit.org/show_bug.cgi?id=229297

Unreviewed.

Also removed LayoutTests/imported/blink/dialog since the tests are now in the WPT repo.

LayoutTests/imported/w3c:

* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-descendant-selector-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-descendant-selector-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-descendant-selector.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-descendant-selector.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-does-not-inherit-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-does-not-inherit-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-does-not-inherit.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-does-not-inherit.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none-expected.html: Added.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-display-none.html: Added.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-style-change-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-dynamic-style-change-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-dynamic-style-change.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-dynamic-style-change.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-in-flow-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-in-flow-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-in-flow.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-in-flow.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-stacking-order-expected.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-stacking-order-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-stacking-order.html: Renamed from LayoutTests/imported/blink/dialog/backdrop-stacking-order.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering.html:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-cancel-with-input.html:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialogs-with-no-backdrop-expected.html: Renamed from LayoutTests/imported/blink/dialog/dialogs-with-no-backdrop-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialogs-with-no-backdrop.html: Renamed from LayoutTests/imported/blink/dialog/dialogs-with-no-backdrop.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dont-share-style-to-top-layer-expected.html: Renamed from LayoutTests/imported/blink/dialog/dont-share-style-to-top-layer-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dont-share-style-to-top-layer.html: Renamed from LayoutTests/imported/blink/dialog/dont-share-style-to-top-layer.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/element-removed-from-top-layer-has-original-position-expected.html: Renamed from LayoutTests/imported/blink/dialog/element-removed-from-top-layer-has-original-position-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/element-removed-from-top-layer-has-original-position.html: Renamed from LayoutTests/imported/blink/dialog/element-removed-from-top-layer-has-original-position.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-not-highlighted-expected.html: Renamed from LayoutTests/imported/blink/dialog/inert-node-is-not-highlighted-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-not-highlighted.html: Renamed from LayoutTests/imported/blink/dialog/inert-node-is-not-highlighted.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-backdrop-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-backdrop-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-backdrop.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-backdrop.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-display-contents-expected.html: Added.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-display-contents.html: Added.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-generated-content-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-generated-content-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-generated-content.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-generated-content.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-replaced-renderer-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-replaced-renderer.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-table-column-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-in-table-column.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-sibling-expected.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-sibling-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-sibling.html: Renamed from LayoutTests/imported/blink/dialog/modal-dialog-sibling.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/removed-element-is-removed-from-top-layer-expected.html: Renamed from LayoutTests/imported/blink/dialog/removed-element-is-removed-from-top-layer-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/removed-element-is-removed-from-top-layer.html: Renamed from LayoutTests/imported/blink/dialog/removed-element-is-removed-from-top-layer.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/dialog.css: Renamed from LayoutTests/imported/blink/dialog/resources/dialog.css.
(.pseudodialog):
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-containing-block-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-containing-block-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-containing-block.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-containing-block.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-display-none-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-display-none-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-display-none.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-display-none.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-nesting-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-nesting-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-nesting.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-nesting.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-correct-order-remove-readd-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-correct-order-remove-readd-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-correct-order-remove-readd.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-correct-order-remove-readd.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-dynamic-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-dynamic-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-dynamic.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-dynamic.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking-expected.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking-expected.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-stacking.html: Renamed from LayoutTests/imported/blink/dialog/top-layer-stacking.html.
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:

LayoutTests:

02c0e1b2b1

* TestExpectations:

Canonical link: https://commits.webkit.org/240687@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281251 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 17:45:42 +00:00
Dean Jackson c2ddfc9093 Build fix after r281245.
Link with Metal.framework.

* Configurations/WebCoreTestSupport.xcconfig:

Canonical link: https://commits.webkit.org/240686@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281250 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 17:23:25 +00:00
Eric Hutchison e3f59141d2 [Mac, iOS] imported/w3c/web-platform-tests/html/rendering/replaced-elements/images/revoked-blob-print.html is an image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=229291.

Unreviewed test gardening.

* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/240685@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281248 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:43:04 +00:00
Simon Fraser 684e7ccfec Rename EventHandler::sendScrollEvent() to scheduleScrollEvent() since the event is not sent synchronously
https://bugs.webkit.org/show_bug.cgi?id=229256

Reviewed by Geoffrey Garen.

Rename EventHandler::sendScrollEvent() and FrameView::sendScrollEvent()
to scheduleScrollEvent() since the event dispatch happens via the next rendering update.

Source/WebCore:

* page/EventHandler.cpp:
(WebCore::EventHandler::scheduleScrollEvent):
(WebCore::EventHandler::sendScrollEvent): Deleted.
* page/EventHandler.h:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::scheduleScrollEvent):
(WebCore::FrameView::sendScrollEvent): Deleted.
* page/FrameView.h:

Source/WebKitLegacy/mac:

* WebView/WebFrame.mm:
(-[WebFrame sendScrollEvent]):


Canonical link: https://commits.webkit.org/240684@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:38:07 +00:00
Simon Fraser c2dc92bc38 Fix the typo in horiontalRubberbandAmountInContentCoordinates
https://bugs.webkit.org/show_bug.cgi?id=229255

Reviewed by Tim Horton.

* UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]):


Canonical link: https://commits.webkit.org/240683@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:32:22 +00:00
Kyle Piddington 38045a526a WebGL via Metal experimental feature does not correctly toggle metal backend
https://bugs.webkit.org/show_bug.cgi?id=229267
<rdar://81855735>

Source/WebCore:

Patch by Kyle Piddington <kpiddington@apple.com> on 2021-08-19
Reviewed by Dean Jackson.

GraphicsContextGLAttributes defines 'useMetal' as 'true' by default.
Since this branch was only checking if Metal was enabled via the
setting, rather than checking the status of the flag, the metal backend
was never disabled, even when requested.

Tests: webgl/webgl-metal-disabled.html
       webgl/webgl-metal-enabled.html

* WebCore.xcodeproj/project.pbxproj:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
* testing/Internals.cpp:
(WebCore::Internals::requestedMetal):
* testing/Internals.h:
* testing/Internals.idl:
* testing/Internals.mm:
(WebCore::Internals::platformSupportsMetal):

LayoutTests:

Add tests to verify WebGL feature flag works as intended.

Patch by Kyle Piddington <kpiddington@apple.com> on 2021-08-19
Reviewed by Dean Jackson.

* webgl/webgl-metal-disabled-expected.txt: Added.
* webgl/webgl-metal-disabled.html: Added.
* webgl/webgl-metal-enabled-expected.txt: Added.
* webgl/webgl-metal-enabled.html: Added.

Canonical link: https://commits.webkit.org/240682@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281245 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:28:04 +00:00
Simon Fraser 4b3f1b1dbe Avoid DOMRect overhead in VTTRegion
https://bugs.webkit.org/show_bug.cgi?id=229249

Reviewed by Eric Carlson.

Use Element::boundingClientRect() instead of Element::getBoundingClientRect() to
avoid DOMRect overhead. No behavior change.

* html/track/VTTRegion.cpp:
(WebCore::VTTRegion::displayLastTextTrackCueBox):
(WebCore::VTTRegion::willRemoveTextTrackCueBox):


Canonical link: https://commits.webkit.org/240681@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281244 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:26:00 +00:00
Simon Fraser bb08f50b2c Rename WebPageProxy::headerHeight() and related to make it clear they are for printing
https://bugs.webkit.org/show_bug.cgi?id=229242

Reviewed by Tim Horton.

Disambiguate WebPageProxy::headerHeight(), used for printing, from FrameView::headerHeight()
which is not.

* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::headerHeightForPrinting):
(WebKit::WebPageProxy::footerHeightForPrinting):
(WebKit::WebPageProxy::drawHeaderForPrinting):
(WebKit::WebPageProxy::drawFooterForPrinting):
(WebKit::WebPageProxy::headerHeight): Deleted.
(WebKit::WebPageProxy::footerHeight): Deleted.
(WebKit::WebPageProxy::drawHeader): Deleted.
(WebKit::WebPageProxy::drawFooter): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]):
(-[WKPrintingView drawPageBorderWithSize:]):


Canonical link: https://commits.webkit.org/240680@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281243 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:23:36 +00:00
Simon Fraser 3acef9f0cc Use a Ref<> argument to keep WebPage alive in TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition()
https://bugs.webkit.org/show_bug.cgi?id=229239

Reviewed by Tim Horton.

Replace a manual ref()/deref() with a makeRef() argument to the function.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):


Canonical link: https://commits.webkit.org/240679@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281242 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:10:36 +00:00
Antti Koivisto 3bc9b62c49 TextDecorationPainter should not depend on LegacyInlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=228814

Reviewed by Alan Bujtas.

Source/WebCore:

Use the inline iterator instead.

* layout/integration/LayoutIntegrationLineIterator.h:
(WebCore::LayoutIntegration::LineIterator::isFirst const):
(WebCore::LayoutIntegration::PathLine::baselineType const):
* layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:
(WebCore::LayoutIntegration::LineIteratorLegacyPath::baselineType const):
* layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::baselineType const):
* layout/integration/LayoutIntegrationRunIterator.cpp:
(WebCore::LayoutIntegration::RunIterator::line const):
(WebCore::LayoutIntegration::PathRun::line const):
(WebCore::LayoutIntegration::PathRun::style const):
(WebCore::LayoutIntegration::textRunFor):
* layout/integration/LayoutIntegrationRunIterator.h:
(WebCore::LayoutIntegration::PathTextRun::renderer const):
* layout/integration/LayoutIntegrationRunIteratorModernPath.h:
* rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::maxLogicalBottomForTextDecorationLine const): Deleted.
(WebCore::LegacyInlineFlowBox::minLogicalTopForTextDecorationLine const): Deleted.
* rendering/LegacyInlineFlowBox.h:
* rendering/LegacyInlineTextBox.cpp:
(WebCore::LegacyInlineTextBox::paintMarkedTextDecoration):
* rendering/LegacyLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::enclosingRendererWithTextDecoration const): Deleted.
* rendering/RenderElement.h:
* rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::paintTextDecoration):
* rendering/TextDecorationPainter.h:
(WebCore::TextDecorationPainter::setTextRunIterator):
(WebCore::TextDecorationPainter::setInlineTextBox): Deleted.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeAffectsVisualOverflow const):
* style/InlineTextBoxStyle.cpp:
(WebCore::isAncestorAndWithinBlock):
(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):

Moved from LegacyInlineFlowBox.

(WebCore::enclosingRendererWithTextDecoration):

Moved from RenderElement.

(WebCore::computeUnderlineOffset):
(WebCore::visualOverflowForDecorations):
* style/InlineTextBoxStyle.h:

LayoutTests:

Fix the expected results to not depend on inline culling (which this patch ignores).

* fast/text/text-underline-first-line-decoration-expected.html:
* fast/text/text-underline-vertical-first-line-decoration-expected.html:


Canonical link: https://commits.webkit.org/240678@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281241 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:08:54 +00:00
Antti Koivisto 076e424ee7 Move MarkedTextStyle into StyledMarkedText scope
https://bugs.webkit.org/show_bug.cgi?id=228956

Reviewed by Alan Bujtas.

As StyledMarkedText::Style.
Also other cleanups and a file rename to match the type.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/LegacyInlineTextBox.cpp:
(WebCore::LegacyInlineTextBox::paint):
* rendering/StyledMarkedText.cpp: Renamed from Source/WebCore/rendering/MarkedTextStyle.cpp.
(WebCore::resolveStyleForMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText):
(WebCore::StyledMarkedText::subdivideAndResolve):
(WebCore::coalesceAdjacent):
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualBackground):
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualForeground):
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualDecorations):
* rendering/StyledMarkedText.h: Renamed from Source/WebCore/rendering/MarkedTextStyle.h.


Canonical link: https://commits.webkit.org/240677@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281240 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 16:05:09 +00:00
Simon Fraser 1233b298ef Use an OptionSet<MapCoordinatesMode> in place of MapCoordinatesFlags
https://bugs.webkit.org/show_bug.cgi?id=229170

Reviewed by Antti Koivisto.

Replace MapCoordinatesFlags with OptionSet<MapCoordinatesMode>. No behavior
change.

* html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::mapAbsoluteToLocalPoint const):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint const):
* rendering/RenderBoxModelObject.h:
* rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::mapLocalToContainer const):
* rendering/RenderFragmentedFlow.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::RenderGeometryMap):
(WebCore::RenderGeometryMap::pushMappingsToAncestor):
* rendering/RenderGeometryMap.h:
(WebCore::RenderGeometryMap::mapCoordinatesFlags const):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::mapLocalToContainer const):
* rendering/RenderInline.h:
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::mapAbsoluteToLocalPoint const):
* rendering/RenderMultiColumnFlow.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::absoluteBoundingBoxRect const):
(WebCore::RenderObject::localToAbsolute const):
(WebCore::RenderObject::absoluteToLocal const):
(WebCore::RenderObject::absoluteToLocalQuad const):
(WebCore::RenderObject::mapLocalToContainer const):
(WebCore::RenderObject::mapAbsoluteToLocalPoint const):
(WebCore::RenderObject::localToContainerQuad const):
(WebCore::RenderObject::localToContainerPoint const):
* rendering/RenderObject.h:
(WebCore::RenderObject::localToAbsolute):
(WebCore::RenderObject::absoluteToLocal):
(WebCore::RenderObject::localToAbsoluteQuad const):
* rendering/RenderObjectEnums.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton const):
* rendering/RenderView.cpp:
(WebCore::RenderView::mapLocalToContainer const):
(WebCore::RenderView::mapAbsoluteToLocalPoint const):
* rendering/RenderView.h:
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::mapLocalToContainer const):
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::mapLocalToContainer const):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::mapLocalToContainer const):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::mapLocalToContainer const):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::mapLocalToContainer const):
* rendering/svg/RenderSVGText.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::mapLocalToContainer):


Canonical link: https://commits.webkit.org/240676@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281239 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 15:51:31 +00:00
Simon Fraser 1a0710fa55 Remove duplicate LayerTreeAsText enums and use an OptionSet<>
https://bugs.webkit.org/show_bug.cgi?id=229226

Reviewed by Antti Koivisto.

GraphicsLayerClient had enum LayerTreeAsTextBehaviorFlags and Frame had an anonymous
enum and typedef unsigned LayerTreeFlags. Clean up by adding LayerTreeAsTextOptions.h
and using OptionSet<LayerTreeAsTextOptions> everywhere.

* Headers.cmake:
* WebCore.xcodeproj/project.pbxproj:
* page/Frame.h:
* page/PageOverlayController.cpp:
(WebCore::PageOverlayController::shouldSkipLayerInDump const):
* page/PageOverlayController.h:
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpLayer const):
(WebCore::dumpChildren):
(WebCore::GraphicsLayer::dumpProperties const):
(WebCore::GraphicsLayer::layerTreeAsText const):
(showGraphicsLayerTree):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::dumpLayer):
(WebCore::GraphicsLayer::layerTreeAsText):
(WebCore::GraphicsLayer::dumpAdditionalProperties const):
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::shouldSkipLayerInDump const):
(WebCore::GraphicsLayerClient::shouldDumpPropertyForLayer const):
* platform/graphics/LayerTreeAsTextOptions.h: Added.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::dumpAdditionalProperties const):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::dumpInnerLayer):
(WebCore::CoordinatedGraphicsLayer::dumpAdditionalProperties const):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldSkipLayerInDump const):
(WebCore::RenderLayerBacking::shouldDumpPropertyForLayer const):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
* rendering/RenderLayerCompositor.h:
* testing/Internals.cpp:
(WebCore::toLayerTreeAsTextOptions):
(WebCore::Internals::layerTreeAsText const):
(WebCore::Internals::pageOverlayLayerTreeAsText const):
(WebCore::toLayerTreeFlags): Deleted.
* testing/MockPageOverlayClient.cpp:
(WebCore::MockPageOverlayClient::layerTreeAsText):
* testing/MockPageOverlayClient.h:


Canonical link: https://commits.webkit.org/240675@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 15:47:35 +00:00
Simon Fraser 37d3271063 Use an enum for the forVisitedLink argument to BuilderState::colorFromPrimitiveValue()
https://bugs.webkit.org/show_bug.cgi?id=229224

Reviewed by Alex Christensen.

Convert the bool argument to an enum class.

* css/makeprop.pl:
(colorFromPrimitiveValue):
* style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueCaretColor):
(WebCore::Style::BuilderCustom::applyValueStrokeColor):
* style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::colorFromPrimitiveValue const):
* style/StyleBuilderState.h:


Canonical link: https://commits.webkit.org/240674@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281237 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 15:46:32 +00:00
Ayumi Kojima d325825efb [ Win EWS ] fast/forms/* tests are flaky crashing FAULTING_IP: WebKit!WebCore::FontCache::lastResortFallbackFont+ec [C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\platform\graphics\win\FontCacheWin.cpp @ 424].
https://bugs.webkit.org/show_bug.cgi?id=229009

Unreviewed test gardening.

* platform/win/TestExpectations:

Canonical link: https://commits.webkit.org/240673@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281236 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 15:32:57 +00:00
Kate Cheney e9284a8d85 Unable to load downloaded HTML files in Safari
https://bugs.webkit.org/show_bug.cgi?id=229254
<rdar://problem/82051114>

Reviewed by Brent Fulgham.

Check quarantine bits for webarchive files only.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::isQuarantinedAndNotUserApproved):


Canonical link: https://commits.webkit.org/240672@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281235 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 13:05:50 +00:00
Kate Cheney 5c0a223847 [App Privacy Report] Some HTTP Redirects from non app initiated requests are marked app initiated
https://bugs.webkit.org/show_bug.cgi?id=229202
<rdar://problem/79467871>

Reviewed by Brent Fulgham.

Source/WebKit:

Tests: http/tests/app-privacy-report/app-attribution-media-redirect.html
       http/tests/app-privacy-report/user-attribution-media-redirect.html

The request returned in the completion handler of
NetworkDataTaskCocoa::willPerformHTTPRedirection does not always have
the attribution property of the original request. We should pass it
along and set it.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

LayoutTests:

Layout test coverage. This bug was only reproducing with media-related
loading, so these tests redirect to load an mp4.

* http/tests/app-privacy-report/app-attribution-media-redirect-expected.txt: Added.
* http/tests/app-privacy-report/app-attribution-media-redirect.html: Added.
* http/tests/app-privacy-report/user-attribution-media-redirect-expected.txt: Added.
* http/tests/app-privacy-report/user-attribution-media-redirect.html: Added.


Canonical link: https://commits.webkit.org/240671@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281234 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 12:57:59 +00:00
Philippe Normand 30c7db35a5 Unreviewed, GStreamer gardening
* platform/glib/TestExpectations: http/tests/images/image-supports-video.html no longer crashes.

Canonical link: https://commits.webkit.org/240670@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 12:23:58 +00:00
commit-queue@webkit.org c404cde4d5 Adjust fallback SandboxExtension std::optional<Handle> construction
https://bugs.webkit.org/show_bug.cgi?id=229233

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-08-19
Reviewed by Carlos Garcia Campos.

In r240512, std::optional<> was adopted as the return type for handle
creation methods in the SandboxExtension class. For no-op methods,
the construction of these return values was done using empty initializer
lists.

The changes here should match pre-r240512 behavior by creating empty
Handle objects and using those to implicitly construct the returning
std::optional<> object. In addition, this avoids compilation breakage
with GCC 8 where ambiguity between possible std::optional<> constructors
is detected.

* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleWithoutResolvingPath):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):
(WebKit::SandboxExtension::createHandleForGenericExtension):

Canonical link: https://commits.webkit.org/240669@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 12:20:30 +00:00
Youenn Fablet de533112e9 RTCPeerConnection::m_transceiverSet does not need to be allocated separately from its RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=229183

Reviewed by Eric Carlson.

No change of behavior.

* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::getStats):
(WebCore::RTCPeerConnection::doClose):
(WebCore::RTCPeerConnection::addInternalTransceiver):
(WebCore::RTCPeerConnection::getSenders const):
(WebCore::RTCPeerConnection::getReceivers const):
(WebCore::RTCPeerConnection::getTransceivers const):
* Modules/mediastream/RTCPeerConnection.h:


Canonical link: https://commits.webkit.org/240668@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281231 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 09:17:16 +00:00
Tim Nguyen 5eafb0096d Port HTMLDetailsElement to use modern event handling code
https://bugs.webkit.org/show_bug.cgi?id=228863

Reviewed by Antti Koivisto.

No behaviour change, follows: https://html.spec.whatwg.org/#details-notification-task-steps

* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::parseAttribute):
(WebCore::HTMLDetailsElement::toggleOpen):
(WebCore::detailToggleEventSender): Deleted.
(WebCore::HTMLDetailsElement::~HTMLDetailsElement): Deleted.
(WebCore::HTMLDetailsElement::dispatchPendingEvent): Deleted.
* html/HTMLDetailsElement.h:


Canonical link: https://commits.webkit.org/240667@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 09:15:03 +00:00
Tim Nguyen c6e00ea3b0 Implement ::backdrop pseudo element
https://bugs.webkit.org/show_bug.cgi?id=227801

Reviewed by Antti Koivisto.

This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
Some imported blink tests now start passing, some still need proper top layer support.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt:

Source/JavaScriptCore:

* inspector/protocol/CSS.json:

Source/WebCore:

* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
* css/CSSSelector.h:
* css/SelectorPseudoElementTypeMap.in:
* css/dialog.css:
(dialog::backdrop):
(::backdrop):
* inspector/agents/InspectorCSSAgent.cpp:
(WebCore::protocolValueForPseudoId):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::backdropRenderer const):
(WebCore::RenderElement::setBackdropRenderer):
* rendering/RenderElement.h:
* rendering/RenderObject.h:
* rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* rendering/style/RenderStyleConstants.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateAfterDescendants):
* rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):
* rendering/updating/RenderTreeUpdaterGeneratedContent.h:
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolvePseudoStyle):

Source/WebInspectorUI:

* UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.displayNameForPseudoId):

LayoutTests:

* TestExpectations:


Canonical link: https://commits.webkit.org/240666@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 09:02:02 +00:00
Carlos Garcia Campos 6d32f07ec6 document.hasFocus() returns true for unfocused pages
https://bugs.webkit.org/show_bug.cgi?id=229139

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-08-19
Reviewed by Adrian Perez de Castro.

Source/WebCore:

We are always claiming to be focused when the document in the active window even if the page is not actually
focused.

* dom/Document.cpp:
(WebCore::Document::hasFocus const): Check also that page is focused.

Tools:

Add a unit tests to check document.hasFocus() returns false when a web view is in the active window, but not focused.

* TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST): Ensure web view is focused as required by credentials container.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewDocumentFocus):
(beforeAll):
* TestWebKitAPI/cocoa/TestWKWebView.h:
* TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView focus]):

Canonical link: https://commits.webkit.org/240665@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 08:46:05 +00:00
Youenn Fablet 000e136d67 Rename MediaPlayer::setVisible to MediaPlayer::setPageIsVisible
https://bugs.webkit.org/show_bug.cgi?id=228837
<rdar://problem/81857023>

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior, just renaming a method to make its name more accurate.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::visibilityStateChanged):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::setPageIsVisible):
(WebCore::MediaPlayer::setVisible): Deleted.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setVisibleForCanvas):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::setPageIsVisible):
(WebCore::MediaPlayerPrivateAVFoundation::setVisible): Deleted.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setPageIsVisible):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Deleted.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPageIsVisible):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVisible): Deleted.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::setPageIsVisible):
(WebCore::MediaPlayerPrivateMediaFoundation::setVisible): Deleted.
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::setPageIsVisible):
(WebCore::MockMediaPlayerMediaSource::setVisible): Deleted.
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::willBeDestroyed):
(WebCore::RenderVideo::updatePlayer):

Source/WebKit:

* GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::setPageIsVisible):
(WebKit::RemoteMediaPlayerProxy::setVisible): Deleted.
* GPUProcess/media/RemoteMediaPlayerProxy.h:
* GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
* WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::setPageIsVisible):
(WebKit::MediaPlayerPrivateRemote::setVisible): Deleted.
* WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Source/WebKitLegacy/win:

* FullscreenVideoController.cpp:
(FullscreenVideoController::exitFullscreen):


Canonical link: https://commits.webkit.org/240664@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 08:40:05 +00:00
Youenn Fablet f29bd3d68a RTCRtpTransceiver does not need an ice transport
https://bugs.webkit.org/show_bug.cgi?id=229186

Reviewed by Eric Carlson.

No change of behavior, we are removing a member from RTCRtpTransceiver which is unused.
We are also updating RTCIceTransport as it does not need to have virtual methods yet.

* Modules/mediastream/RTCIceTransport.cpp:
(WebCore::RTCIceTransport::~RTCIceTransport):
* Modules/mediastream/RTCIceTransport.h:
* Modules/mediastream/RTCIceTransport.idl:
* Modules/mediastream/RTCRtpTransceiver.cpp:
(WebCore::RTCRtpTransceiver::RTCRtpTransceiver):
* Modules/mediastream/RTCRtpTransceiver.h:


Canonical link: https://commits.webkit.org/240663@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 08:22:22 +00:00
Youenn Fablet 5e82c74643 Add support for RTCDtlsTransport
https://bugs.webkit.org/show_bug.cgi?id=229133

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/RTCDtlsTransport-getRemoteCertificates-expected.txt:
* web-platform-tests/webrtc/RTCDtlsTransport-state-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-connectionSetup-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-helper-test-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
* web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
* web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:
* web-platform-tests/webrtc/protocol/bundle.https-expected.txt:
* web-platform-tests/webrtc/protocol/crypto-suite.https-expected.txt:

Source/ThirdParty/libwebrtc:

* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:

Source/WebCore:

RTCDtlsTransport is an object representing the transport used by RTCRtp senders and receivers.
Add WebIDL and backend implementation.
In particular, we set sender/receiver transports as per spec when setting the descriptions.
Add support for state and certificates access. Add support for statechange event.

Covered by rebased tests.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/RTCDtlsTransport.cpp: Added.
(WebCore::RTCDtlsTransport::RTCDtlsTransport):
(WebCore::RTCDtlsTransport::~RTCDtlsTransport):
(WebCore::RTCDtlsTransport::getRemoteCertificates):
(WebCore::RTCDtlsTransport::stop):
(WebCore::RTCDtlsTransport::virtualHasPendingActivity const):
(WebCore::RTCDtlsTransport::onStateChanged):
(WebCore::RTCDtlsTransport::onError):
* Modules/mediastream/RTCDtlsTransport.h: Added.
* Modules/mediastream/RTCDtlsTransport.idl: Added.
* Modules/mediastream/RTCDtlsTransportBackend.h: Added.
(WebCore::operator==):
* Modules/mediastream/RTCDtlsTransportState.h: Added.
* Modules/mediastream/RTCDtlsTransportState.idl: Added.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getOrCreateDtlsTransport):
(WebCore::RTCPeerConnection::updateTransceiverTransports):
(WebCore::RTCPeerConnection::updateTransceiversAfterSuccessfulLocalDescription):
(WebCore::RTCPeerConnection::updateTransceiversAfterSuccessfulRemoteDescription):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCRtpReceiver.cpp:
* Modules/mediastream/RTCRtpReceiver.h:
* Modules/mediastream/RTCRtpReceiver.idl:
* Modules/mediastream/RTCRtpReceiverBackend.h:
* Modules/mediastream/RTCRtpSender.cpp:
* Modules/mediastream/RTCRtpSender.h:
* Modules/mediastream/RTCRtpSender.idl:
* Modules/mediastream/RTCRtpSenderBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.cpp: Added.
(WebCore::toRTCDtlsTransportState):
(WebCore::LibWebRTCDtlsTransportBackendObserver::LibWebRTCDtlsTransportBackendObserver):
(WebCore::LibWebRTCDtlsTransportBackendObserver::updateState):
(WebCore::LibWebRTCDtlsTransportBackendObserver::start):
(WebCore::LibWebRTCDtlsTransportBackendObserver::stop):
(WebCore::LibWebRTCDtlsTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCDtlsTransportBackendObserver::OnError):
(WebCore::LibWebRTCDtlsTransportBackend::LibWebRTCDtlsTransportBackend):
(WebCore::LibWebRTCDtlsTransportBackend::~LibWebRTCDtlsTransportBackend):
(WebCore::LibWebRTCDtlsTransportBackend::registerClient):
(WebCore::LibWebRTCDtlsTransportBackend::unregisterClient):
* Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.h: Added.
* Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:
(WebCore::LibWebRTCRtpReceiverBackend::rtpDtlsTransportBackend):
* Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::LibWebRTCRtpSenderBackend::rtpDtlsTransportBackend):
* Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
* Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventTargetFactory.in:


Canonical link: https://commits.webkit.org/240662@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 07:36:49 +00:00
Fujii Hironori 46e67944fa [WinCairo] Unreviewed test gardening
* platform/wincairo/TestExpectations:

Canonical link: https://commits.webkit.org/240661@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 07:05:35 +00:00
David Kilzer a5704ce5be Bug 229264: Leak of CMBufferQueueRef (up to 752 bytes each) in com.apple.WebKit.GPU.Development process
<https://webkit.org/b/229264>
<rdar://problem/82101153>

Reviewed by Anders Carlsson.

Covered by running layout tests with --leaks plus future patch
to check for leaks in the GPU process.

* platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:
(WebCore::VideoSampleBufferCompressor::initialize):
- Use adoptCF() to fix the leak since CMBufferQueueCreate()
  returns a retained object.


Canonical link: https://commits.webkit.org/240660@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281223 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 04:04:19 +00:00
Yusuke Suzuki 298ab9b86d [JSC] Remove op_has_indexed_property related code
https://bugs.webkit.org/show_bug.cgi?id=229271

Reviewed by Saam Barati.

After our new for-in protocol, op_has_indexed_property is removed.
As a result, we can remove many ByValInfo code that is used only
for op_has_indexed_property.

* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::emitLoadForArrayMode): Deleted.
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileHasIndexedProperty): Deleted.
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileHasIndexedProperty): Deleted.
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitDoubleLoad): Deleted.
(JSC::JIT::emitContiguousLoad): Deleted.
(JSC::JIT::emitArrayStorageLoad): Deleted.


Canonical link: https://commits.webkit.org/240659@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281222 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 03:42:16 +00:00
David Kilzer b2984f80cf Bug 229265: run-webkit-tests --leaks should check for leaks in the GPU process
<https://webkit.org/b/229265>
<rdar://problem/82101453>

Reviewed by Alex Christensen.

Source/WebKit:

* UIProcess/API/C/WKPage.cpp:
(WKPageGetGPUProcessIdentifier): Add.
* UIProcess/API/C/WKPagePrivate.h:
(WKPageGetGPUProcessIdentifier): Add.
- Add function to return the PID for the GPU process.

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::findAndDumpWebKitProcessIdentifiers):
- Include the GPU process PID if it's enabled when sending a
  list of PIDs back to run-webkit-tests.
(WTR::TestController::gpuProcessName): Add.
* WebKitTestRunner/TestController.h:
(WTR::TestController::databaseProcessName): Delete.
- The implementation was removed a while ago.
(WTR::TestController::gpuProcessName): Add.


Canonical link: https://commits.webkit.org/240658@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281221 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 03:40:37 +00:00
David Kilzer a0d143005e Leak of CMSampleBufferRef (up to 2.25 KB each) in com.apple.WebKit.GPU.Development process
<https://webkit.org/b/229262>
<rdar://problem/82076765>

Reviewed by Darin Adler.

Covered by running layout tests with --leaks plus future patch
to check for leaks in the GPU process.

* platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
- Update signature to return RetainPtr<CMSampleBufferRef>.

* platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
- Update signature to return RetainPtr<CMSampleBufferRef>.
- Rename `sampleBuffer` to `rawSampleBuffer` to match similar
  pattern used in other code, then use `sampleBuffer` to store
  `rawSampleBuffer` wrapped in a RetainPtr<>.
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
- Add get() to `buffer` variable since it is now a RetainPtr<>.


Canonical link: https://commits.webkit.org/240657@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281220 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 03:34:19 +00:00
Carlos Alberto Lopez Perez 2b922756bc [GTK][WPE] Gardening of layout tests
Unreviewed test gardening.

Mark expected failures after r281108 and others and update list of flaky tests.
Rebaseline tests after r281136, r281127 and r281097.

* platform/glib/TestExpectations:
* platform/glib/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Added.
* platform/gtk/TestExpectations:
* platform/gtk/fast/repaint/line-layout-block-shrink-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/rotate-by-added-angle-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/width-by-max-px-em-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/css/css-typed-om/width-by-min-px-em-expected.txt: Added.

Canonical link: https://commits.webkit.org/240656@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-19 01:15:03 +00:00