Timeline
Jul 21, 2020:
- 10:08 PM Changeset in webkit [264693] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Unreviewed build fix after r264685; copy headers to the correct path during a DEPLOYMENT_LOCATION build.
- Configurations/libwebm.xcconfig:
- libwebrtc.xcodeproj/project.pbxproj:
- 9:45 PM Changeset in webkit [264692] by
-
- 56 edits in trunk
Remove live ranges from Editor.h and EditorClient.h
https://bugs.webkit.org/show_bug.cgi?id=214261
Reviewed by Sam Weinig.
Source/WebCore:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::misspellingRange const): Update since
rangeForTextCheckingResult no longer returns a live range.
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
Update since rangeOfString no longer returns a live range.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilityTextOperationForParameterizedAttribute): Use makeSimpleRange.
- dom/Document.cpp:
(WebCore::acceptsEditingFocus): Use makeRangeSelectingNodeContents
since shouldBeginEditing no longer takes a live range.
- dom/Range.h: Exxported makeSimpleRange for use outside WebCore.
- dom/SimpleRange.cpp:
(WebCore::makeSimpleRange): Added. Takes two optional boundary points and
returns an optional range.
- dom/SimpleRange.h: Added the above.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired): Removed calls to
crateLiveRange since markAllMisspellingsAndBadGrammarInRanges no
longer takes live ranges.
(WebCore::AlternativeTextController::applyDictationAlternative):
Updates since shouldInsertText no longer takes a live range.
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs): Updated since
shouldMoveRangeAfterDelete no longer takes live ranges.
- editing/Editor.cpp:
(WebCore::Editor::canDeleteRange const): Updated to not take a
live range.
(WebCore::Editor::deleteWithDirection): Updated since
addRangeToKillRing no longer takes a live range.
(WebCore::Editor::pasteAsPlainTextWithPasteboard): Updated since
shouldInsertText no longer takes a live range.
(WebCore::Editor::shouldInsertFragment): No longer take a live range.
(WebCore::Editor::replaceSelectionWithText): Updated since
selectedRange no longer returns a live range.
(WebCore::Editor::selectedRange): Do not return a live range.
(WebCore::Editor::shouldDeleteRange const): Do not take a live range.
(WebCore::Editor::shouldInsertText const): Ditto.
(WebCore::Editor::shouldApplyStyle): Ditto. Also take a const& to
the style instead of a non-const*.
(WebCore::Editor::applyStyleToSelection): Pass a style reference
and a non-live range.
(WebCore::Editor::applyParagraphStyleToSelection): Updated for
the change above.
(WebCore::Editor::insertTextWithoutSendingTextEvent): No need to
pass a live range any more.
(WebCore::Editor::insertLineBreak): Ditto.
(WebCore::Editor::insertParagraphSeparator): Ditto.
(WebCore::Editor::performCutOrCopy): Updated to not use live range.
(WebCore::Editor::performDelete): Ditto.
(WebCore::Editor::shouldEndEditing): Do not take a live range.
(WebCore::Editor::shouldBeginEditing): Ditto.
(WebCore::Editor::willWriteSelectionToPasteboard): Ditto.
(WebCore::Editor::selectComposition): Update since compositionRange
is not a live range.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Update since
we don't need to pass live ranges to markAllMisspellingsAndBadGrammarInRanges.
(WebCore::Editor::markMisspellingsOrBadGrammar): Don't return a
live range in tthe out argument.
(WebCore::Editor::markMisspellings): Ditto.
(WebCore::Editor::markBadGrammar): Update for the above.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Do not
take live ranges for the arguments.
(WebCore::Editor::replaceRangeForSpellChecking): Do not take a live range.
(WebCore::Editor::markAndReplaceFor): Update since shouldInsertText does
not take a live range any more.
(WebCore::Editor::changeBackToReplacedString): Update to not use live
ranges as much.
(WebCore::Editor::markMisspellingsAndBadGrammar): Updae since
we don't need to pass live ranges to markAllMisspellingsAndBadGrammarInRanges.
(WebCore::Editor::rangeForPoint): Don't return a live range.
(WebCore::Editor::compositionRange const): Ditto.
(WebCore::Editor::transpose): Updated since we don't pass a live range.
(WebCore::Editor::firstRectForRange const): Don't take a live range.
(WebCore::Editor::shouldChangeSelection const): Updated since we don't
need to pass a live range.
(WebCore::Editor::findString): Ditto.
(WebCore::start): Added. Helper to make rangeOfString easier to read.
(WebCore::end): Ditto.
(WebCore::makeBoundaryPointAfterNodeContents): Ditto.
(WebCore::makeBoundaryPointAfterNode): Ditto.
(WebCore::collapseIfRootsDiffer): Ditto.
(WebCore::Editor::rangeOfString): Updated to not take or return a
live range and not use it internally either.
(WebCore::isFrameInRange): Don't take a live range.
(WebCore::Editor::countMatchesForText): Don't take or return live ranges.
(WebCore::Editor::contextRangeForCandidateRequest const): Don't return
a live range.
(WebCore::Editor::rangeForTextCheckingResult const): Ditto.
(WebCore::Editor::handleAcceptedCandidate): Update for the above.
(WebCore::Editor::adjustedSelectionRange): Don't return a live range.
- editing/Editor.h: Updated for all the chagnes above.
- editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity): Updated to reduce the use of
live ranges.
(WebCore::unionRanges): Updated to no longer take or return a live
range. Still uses live ranges in the algorithm for now.
(WebCore::executeDeleteToMark): Updated since selectedRange no longer
returns a live range.
(WebCore::executeSelectToMark): Update to use the new unionRanges.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::shouldDeleteSelection const): Updated
since shouldDeleteRange no longer requires a live range.
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::getPasteboardTypesAndDataForAttachment): Updated
for changes to use fewer live ranges.
(WebCore::Editor::writeSelectionToPasteboard): Ditto.
(WebCore::Editor::writeSelection): Ditto.
(WebCore::Editor::replaceSelectionWithAttributedString): Ditto.
- editing/gtk/EditorGtk.cpp:
(WebCore::Editor::pasteWithPasteboard): Ditto.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::writeImageToPasteboard): Ditto.
(WebCore::Editor::pasteWithPasteboard): Ditto.
- editing/libwpe/EditorLibWPE.cpp:
(WebCore::createFragmentFromPasteboardData): Ditto.
(WebCore::Editor::pasteWithPasteboard): Ditto.
- editing/mac/EditorMac.mm:
(WebCore::Editor::pasteWithPasteboard): Ditto.
(WebCore::Editor::replaceNodeFromPasteboard): Ditto.
(WebCore::Editor::dataSelectionForPasteboard): Ditto.
- editing/win/EditorWin.cpp:
(WebCore::Editor::pasteWithPasteboard): Ditto.
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
Removed a WTFMove that messes up the return value optimization.
Noticed while fixing errors caused by live range changes.
- loader/EmptyClients.cpp: Updated for changes to EditorClient.
- page/ContextMenuController.cpp:
(WebCore::insertUnicodeCharacter): Updated to use fewer live ranges.
(WebCore::ContextMenuController::contextMenuItemSelected): DItto.
- page/DragController.cpp:
(WebCore::DragController::concludeEditDrag): Ditto.
(WebCore::DragController::startDrag): Ditto.
- page/EditorClient.h: Don't take or return live ranges.
- page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEventForKey): Simplified
since we don't need to use a live range.
- page/FocusController.cpp:
(WebCore::relinquishesEditingFocus): Changed argument type to be
more specific, and changed to not use a live range.
(WebCore::FocusController::setFocusedElement): Updated for the above.
- page/Frame.cpp:
(WebCore::Frame::rangeForPoint): Updated to not use live ranges.
- page/Page.cpp:
(WebCore::Page::findStringMatchingRanges): Updated to not use
live ranges as much.
(WebCore::Page::rangeOfString): Ditto.
(WebCore::Page::findMatchesForText): Ditto.
- testing/Internals.cpp:
(WebCore::Internals::rangeOfString): Updated since return value
of the Editor member function is no longer a live range.
(WebCore::Internals::countMatchesForText): Ditto.
Source/WebKit:
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView rectForPage:]): Use NSZeroRect.
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldDeleteRange): Updated for live
range changes and also removed gratuitous call to notImplemented
since the function is implemented.
(WebKit::WebEditorClient::shouldBeginEditing): Ditto.
(WebKit::WebEditorClient::shouldEndEditing): Ditto.
(WebKit::WebEditorClient::shouldInsertNode): Ditto.
(WebKit::WebEditorClient::shouldInsertText): Ditto.
(WebKit::WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::WebEditorClient::shouldApplyStyle): Ditto.
(WebKit::WebEditorClient::shouldMoveRangeAfterDelete): Ditto.
(WebKit::WebEditorClient::didBeginEditing): Ditto.
(WebKit::WebEditorClient::didEndEditing): Ditto.
(WebKit::WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebKit::WebEditorClient::getClientPasteboardData): Ditto.
(WebKit::WebEditorClient::performTwoStepDrop): Ditto.
(WebKit::WebEditorClient::overflowScrollPositionChanged): Ditto.
(WebKit::WebEditorClient::subFrameScrollPositionChanged): Ditto.
(WebKit::WebEditorClient::setInputMethodState): Ditto.
- WebProcess/WebCoreSupport/WebEditorClient.h: Updated
for changes to EditorClient.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getMarkedRangeAsync): Updated to reduce
the use of local values and live ranges.
(WebKit::WebPage::getSelectedRangeAsync): Ditto.
(WebKit::WebPage::characterIndexForPointAsync): Ditto.
(WebKit::WebPage::firstRectForCharacterRangeAsync): Ditto.
(WebKit::WebPage::setCompositionAsync): Ditto.
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::getPlatformEditorState const): Ditto.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPlatformEditorState const): Ditto.
(WebKit::WebPage::selectWithGesture): Ditto.
(WebKit::WebPage::autocorrectionContext): Ditto.
(WebKit::focusedElementPositionInformation): Ditto.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]):
Updated since compositionRange is no longer a live range.
Source/WebKitLegacy/mac:
- DOM/DOMRange.mm:
(kit): Added an overload to convert to a live range so we don't have
to touch every call site.
- DOM/DOMRangeInternal.h: Added the above.
- WebCoreSupport/WebEditorClient.h: Updated for changes to EditorClient.
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::shouldDeleteRange): Changed types to not use live ranges.
(WebEditorClient::shouldApplyStyle): Ditto.
(WebEditorClient::shouldMoveRangeAfterDelete): Ditto.
(WebEditorClient::shouldBeginEditing): Ditto.
(WebEditorClient::shouldEndEditing): Ditto.
(WebEditorClient::shouldInsertText): Ditto.
(WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebEditorClient::getClientPasteboardData): Ditto.
(WebEditorClient::shouldInsertNode): Ditto.
(WebEditorClient::performTwoStepDrop): Ditto.
- WebView/WebFrame.mm:
(-[WebFrame _firstRectForDOMRange:]): Update to not use live range.
(-[WebFrame _scrollDOMRangeToVisible:]): Ditto.
(-[WebFrame _rangeByAlteringCurrentSelection:direction:granularity:]): Ditto.
(-[WebFrame _markDOMRange]): Ditto.
(-[WebFrame _selectionRangeForFirstPoint:secondPoint:]): Ditto.
(-[WebFrame _selectionRangeForPoint:]): Ditto.
(-[WebFrame selectedDOMRange]): Ditto.
(-[WebFrame elementRangeContainingCaretSelection]): Ditto.
(-[WebFrame wordRangeContainingCaretSelection]): Ditto.
(-[WebFrame rangeByMovingCurrentSelection:]): Ditto.
(-[WebFrame rangeByExtendingCurrentSelection:]): Ditto.
(-[WebFrame markedTextDOMRange]): Ditto.
- WebView/WebHTMLView.mm:
(-[WebHTMLView _selectedRange]): Update to not use live range.
(-[WebHTMLView firstRectForCharacterRange:]): Use NSZeroRect.
(-[WebHTMLView countMatchesForText:inDOMRange:options:limit:markMatches:]):
Update to not use live range.
- WebView/WebTextCompletionController.mm:
(-[WebTextCompletionController doCompletion]): Ditto.
- WebView/WebTextIterator.mm:
(-[WebTextIterator currentRange]): Ditto.
- WebView/WebView.mm:
(-[WebView textIteratorForRect:]): Ditto.
(-[WebView editableDOMRangeForPoint:]): Ditto.
(-[WebView selectedDOMRange]): Ditto.
Source/WebKitLegacy/win:
- DOMCoreClasses.cpp:
(DOMWindow::DOMWindow): Added ref for underlying WebCore::DOMWindow.
(DOMWindow::~DOMWindow): Added deref for underlying WebCore::DOMWindow.
(DOMRange::DOMRange): Added ref for underlying live range.
(DOMRange::~DOMRange): Added deref for underlying live range.
(DOMRange::createInstance): Added overload for creating a DOMRange from
a SimpleRange that creates the live range.
(DOMNamedNodeMap::DOMNamedNodeMap): Added ref for underlying live range.
(DOMNamedNodeMap::~DOMNamedNodeMap): Added deref for underlying live range.
- DOMCoreClasses.h: Added createInstance overload as described above.
- WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::shouldBeginEditing): Updated for changes to not use
live ranges. Also removed unnecessary notImplemented calls.
(WebEditorClient::shouldEndEditing): Ditto.
(WebEditorClient::discardedComposition): Ditto.
(WebEditorClient::canceledComposition): Ditto.
(WebEditorClient::didWriteSelectionToPasteboard): Ditto.
(WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebEditorClient::getClientPasteboardData): Ditto.
(WebEditorClient::shouldDeleteRange): Ditto.
(WebEditorClient::shouldInsertNode): Ditto.
(WebEditorClient::shouldInsertText): Ditto.
(WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebEditorClient::shouldApplyStyle): Ditto.
(WebEditorClient::didApplyStyle): Ditto.
(WebEditorClient::shouldMoveRangeAfterDelete): Ditto.
- WebCoreSupport/WebEditorClient.h: Updated for changes to
EditorClient.
- WebView.cpp:
(WebView::prepareCandidateWindow): Updated to not use live ranges.
(WebView::onIMERequestCharPosition): Ditto.
(WebView::compositionRangeForTesting): Ditto.
(WebView::firstRectForCharacterRangeForTesting): Ditto.
(WebView::selectedRangeForTesting): Ditto.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Removed duplicate install of Ahem.ttf that was leading new versions
of Xcode to fail when trying to build this.
- 9:07 PM Changeset in webkit [264691] by
-
- 13 edits in trunk
[WebGL2] Implement multiple render target entry points
https://bugs.webkit.org/show_bug.cgi?id=211156
Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-21
Reviewed by Myles C. Maxfield.
Source/WebCore:
Implement the drawBuffers and clearBuffer entry points. Integrate
the clearBuffer APIs with preserveDrawingBuffer:false's
auto-clearing.
Covered by existing WebGL conformance tests.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::drawBuffers):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::clearBufferfi):
(WebCore::WebGL2RenderingContext::validateClearBuffer):
(WebCore::WebGL2RenderingContext::updateBuffersToAutoClear):
- html/canvas/WebGL2RenderingContext.h:
- html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::clearIfComposited):
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
LayoutTests:
Rebaseline one layout test which is now fully passing, and another
which now properly detects errors.
- fast/canvas/webgl/webgl2/sequences-expected.txt:
- webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
- 7:47 PM Changeset in webkit [264690] by
-
- 5 edits2 adds in trunk
REGRESSION (r258871): Shift + click to extend selection loses currently selected text
https://bugs.webkit.org/show_bug.cgi?id=214617
<rdar://problem/64980223>
Reviewed by Megan Gardner.
Source/WebCore:
After the changes in r258871, shift clicking sometimes fails to preserve the existing selected text range on
macOS and iOS. The logic inEventHandler::handleMousePressEventSingleClickuses thetextDistancehelper
method to count the number of characters between the start of the current selection to the newly selected
extent, as well as the number of characters between the end of the current selection and the newly selected
extent position. It compares these two character counts, and attempts to choose the new selection extents in
such a way that maximizes the amount of selected text.
However, after r258871,
textDistanceusescharacterCountinstead ofTextIterator::rangeLength. Unlike the
former,rangeLengthis robust in the case where the start position comes after the end position (in document
order), since the process of creating a liveRangeobject swaps the start and end if needed. This isn't the
case when usingSimpleRange. Instead, when given a simple range where the start comes after the end,
characterCountwill iterate text in the DOM, starting from the start position and ending at the end of the
document rather than the end position. The result is thatcharacterCountactually counts the number of
characters between the start position and the end of the document, rather than the number of characters between
the two positions.
In the context of this bug, if the start of the current selection is "far away" (in terms of character count)
from the end of the document and the new extent position comes after end of the current selection, we will end
up choosing the end (instead of the start) as one of the new extents of the updated selection.
To fix this (as well as other similar issues that might've arisen when replacing uses of
TextIterator::rangeLengthwithcharacterCount), simply teachcharacterCountto flip the start and end
positions if the end position of theSimpleRangecomes before the start.
Test: editing/selection/shift-click-includes-existing-selection.html
- editing/TextIterator.cpp:
(WebCore::characterCount):
LayoutTests:
Add a new layout test to verify that the bug does not occur.
- editing/mac/spelling/autocorrection-contraction-expected.txt:
Rebaseline an existing layout test, restoring the test expectations to what they were prior to r258871. It seems
that the more recently added expectations (while not seemingly incorrect) were dependent oncharacterCount
computing the number of characters from the start position to the end of the document, rather than the end.
- editing/selection/shift-click-includes-existing-selection-expected.txt: Added.
- editing/selection/shift-click-includes-existing-selection.html: Added.
- resources/ui-helper.js:
(window.UIHelper.activateAt.return.new.Promise):
(window.UIHelper.activateAt):
(window.UIHelper.activateElement):
Add an optional
modifiersargument to theactivateAtandactivateElementhelper methods, which can be used
to simulate key modifiers being held while synthesizing the "activation" (i.e. tap or click).
- 7:09 PM Changeset in webkit [264689] by
-
- 3 edits in trunk/Source/WebCore
Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=214623
- platform/network/curl/CertificateInfo.h:
- platform/network/curl/CertificateInfoCurl.cpp:
(WebCore::CertificateInfo::summary const):
(WebCore::CertificateInfo::summaryInfo const): Deleted.
- 6:40 PM Changeset in webkit [264688] by
-
- 20 edits1 move1 delete in trunk/Source/JavaScriptCore
Simplify DisallowScope, DisallowGC, and DisallowVMReentry implementations.
https://bugs.webkit.org/show_bug.cgi?id=214539
<rdar://problem/65795729>
Reviewed by Keith Miller.
Previously, DisallowScope needed to support enabling and disabling. This was
only needed to enable the implementation of ObjectInitializationScope. Now, we
can make the DisallowGC and DisallowVMReentry inside ObjectInitializationScope
optional with WTF::Optional. With that we can simplify these scopes and make
them true RAII scope objects.
This patch also does the following:
- Renamed DisallowVMReentry to DisallowVMEntry. The scope can be used to disable VM entry completely. There's no need to restrict it to only re-entries.
- Enforcement of DisallowVMReentry is now done in the LLInt's doVMEntry() instead of the VMEntryScope's constructor. This is a stronger guarantee.
If Options::crashOnDisallowedVMEntry() is true, the VM will crash if it sees
an attempt to enter the VM while disallowed.
If Options::crashOnDisallowedVMEntry() is false, an attempt to call into the VM
while disallowed will return immediately with an undefined result without
invoking any script.
By default, Options::crashOnDisallowedVMEntry() is true if ASSERT_ENABLED is
true.
- Change DisallowScope and DisallowGC to be based on ASSERT_ENABLED instead of NEBUG.
- Make DisallowVMEntry always enforceable, not just when ASSERT_ENABLED. It's enforcement action depends on Options::crashOnDisallowedVMEntry() as described above.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- heap/DeferGC.cpp:
- heap/DeferGC.h:
(JSC::DisallowGC::DisallowGC):
(JSC::DisallowGC::initialize):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_check_vm_entry_permission):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/DisallowScope.h:
(JSC::DisallowScope::DisallowScope):
(JSC::DisallowScope::~DisallowScope):
(JSC::DisallowScope::isInEffectOnCurrentThread):
(JSC::DisallowScope::enable): Deleted.
(JSC::DisallowScope::disable): Deleted.
(JSC::DisallowScope::enterScope): Deleted.
(JSC::DisallowScope::exitScope): Deleted.
- runtime/DisallowVMEntry.h: Copied from Source/JavaScriptCore/runtime/DisallowVMReentry.h.
(JSC::DisallowVMEntryImpl::DisallowVMEntryImpl):
(JSC::DisallowVMEntryImpl::~DisallowVMEntryImpl):
(JSC::DisallowVMEntryImpl::isEngaged const):
(JSC::DisallowVMEntryImpl::release):
(JSC::DisallowVMReentry::DisallowVMReentry): Deleted.
(JSC::DisallowVMReentry::initialize): Deleted.
(JSC::DisallowVMReentry::scopeReentryCount): Deleted.
(JSC::DisallowVMReentry::setScopeReentryCount): Deleted.
- runtime/DisallowVMReentry.cpp: Removed.
- runtime/DisallowVMReentry.h: Removed.
- runtime/InitializeThreading.cpp:
(JSC::initialize):
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
- runtime/ObjectInitializationScope.cpp:
(JSC::ObjectInitializationScope::ObjectInitializationScope):
(JSC::ObjectInitializationScope::notifyAllocated):
(JSC::ObjectInitializationScope::notifyInitialized):
- runtime/ObjectInitializationScope.h:
(JSC::ObjectInitializationScope::vm const):
(JSC::ObjectInitializationScope::ObjectInitializationScope):
(JSC::ObjectInitializationScope::~ObjectInitializationScope):
(JSC::ObjectInitializationScope::notifyAllocated):
(JSC::ObjectInitializationScope::notifyInitialized):
- runtime/OptionsList.h:
- runtime/RegExpMatchesArray.h:
(JSC::tryCreateUninitializedRegExpMatchesArray):
- runtime/VM.h:
- runtime/VMEntryScope.cpp:
(JSC::VMEntryScope::VMEntryScope):
- 6:11 PM Changeset in webkit [264687] by
-
- 4 edits in trunk/Tools
Safari does not present CertificateInfo for service-worker served documents
https://bugs.webkit.org/show_bug.cgi?id=206403
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-21
Reviewed by Brady Eidson.
This is actually just a failing test that reproduces the issue 100% of the time.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- TestWebKitAPI/cocoa/HTTPServer.h:
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::cancel):
(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::m_protocol):
(TestWebKitAPI::HTTPServer::totalRequests const):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::Connection::terminate):
(TestWebKitAPI::Connection::cancel):
(TestWebKitAPI::Connection::terminate const): Deleted.
- 6:10 PM Changeset in webkit [264686] by
-
- 11 edits1 move in trunk/Source/WebCore
Remove unneeded CertificateInfoBase
https://bugs.webkit.org/show_bug.cgi?id=214623
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-21
Reviewed by Brady Eidson.
I need to make CertificateInfo::isolatedCopy and this class was making it messy.
It has no shared functionality, so I removed it.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
- platform/network/CertificateInfoBase.h: Removed.
- platform/network/CertificateSummary.h: Copied from Source/WebCore/platform/network/CertificateInfoBase.h.
(WebCore::CertificateInfoBase::containsNonRootSHA1SignedCertificate const): Deleted.
(WebCore::CertificateInfoBase::summaryInfo const): Deleted.
(WebCore::CertificateInfoBase::isEmpty const): Deleted.
- platform/network/cf/CertificateInfo.h:
- platform/network/cf/CertificateInfoCFNet.cpp:
(WebCore::CertificateInfo::summary const):
(WebCore::CertificateInfo::summaryInfo const): Deleted.
- platform/network/curl/CertificateInfo.h:
- platform/network/soup/CertificateInfo.h:
(WebCore::CertificateInfo::summary const):
(WebCore::CertificateInfo::summaryInfo const): Deleted.
- 5:25 PM Changeset in webkit [264685] by
-
- 34 edits5 copies9 adds in trunk
[Cocoa] Add experimental MSE WebM parser
https://bugs.webkit.org/show_bug.cgi?id=214529
Source/ThirdParty/libwebrtc:
<rdar://problem/65782467>
Reviewed by Eric Carlson.
Add the vp9_header_parser from libwebrtc to the project, and add its
symbols to the list of exported symbols. Because this header wants to
be installed to a "common/vp9_header_parser.h" path, split up the default
CopyHeadersInstallPhase into two separate CopyFiles build phases that
put headers into different locations.
- Configurations/libwebm.xcconfig:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Source/third_party/libwebm/common/vp9_header_parser.h:
(vp9_parser::Vp9HeaderParser::color_range const):
(vp9_parser::Vp9HeaderParser::subsampling_x const):
(vp9_parser::Vp9HeaderParser::subsampling_y const):
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Reviewed by Eric Carlson.
Test: media/media-source/media-source-webm.html
Add an experimental MSE WebM parser to SourceBufferPrivateAVFObjC. This will require extensive refactoring
of SourceBufferPrivateAVFObjC, to extract out the parser into a new, virtualized class. This new parser can
take advantage of new C++>11 features such as lambdas to clean up some problematic existing code. The new
virtualized SourceBufferParser class uses passed-in Function objects, rather than pure-virtual Client classes
to notify it's parent object when the parser encounters initialization- or media-data.
Because SourceBufferPrivateAVFObjC will now have to deal with AudioTrackPrivate and VideoTrackPrivate objects
that are not necessarily Audio- and VideoTrackPrivateMediaSourceAVFObjC subclasses, move those classes notification
features up into Audio- and VideoTrackPrivate, again using a Function object rather than a client class.
Add a new SourceBufferParserWebM and associated AudioTrackPrivateWebM and VideoTrackPrivateWebM classes, which
use libwebm via libwebrtc to parse appended buffers. SourceBufferParserWebM feeds passed-in data into a
libwebm-provided parser of its own. It then builds up tracks and samples based on callbacks from that same parser,
constructing CMSampleBuffers and VideoTrackPrivate objects out of the underlying libwebm primitives.
Because WebM uses a UUID as its track identifier, the representation of a "trackID" inside WebCore must be
increased from an int to a uint64_t, or trackIDs will be truncated or zeroed when passed between classes and
when converted to and from AtomStrings.
This early implementation is not yet able to pass the WebM WPT media-source/ tests, as we only have a VP9 decoder
available, and those tests use both VP8 and Vorbis.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebMParserEnabled):
(WebCore::RuntimeEnabledFeatures::webMParserEnabled const):
- platform/graphics/AudioTrackPrivate.h:
(WebCore::AudioTrackPrivate::setEnabled):
(WebCore::AudioTrackPrivate::setEnabledChangedCallback):
- platform/graphics/VP9Utilities.cpp:
(WebCore::isValidVPColorPrimaries):
(WebCore::isValidVPTransferCharacteristics):
(WebCore::isValidVPMatrixCoefficients):
(WebCore::parseVPCodecParameters):
- platform/graphics/VP9Utilities.h:
- platform/graphics/VideoTrackPrivate.h:
(WebCore::VideoTrackPrivate::setSelected):
(WebCore::VideoTrackPrivate::setSelectedChangedCallback):
- platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled):
- platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::update):
- platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
(WebCore::CDMSessionAVStreamSession::update):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
(WebCore::MediaSampleAVFObjC::create):
(WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h: Added.
(isType):
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: Added.
(-[WebAVStreamDataParserListener initWithParser:parent:]):
(-[WebAVStreamDataParserListener dealloc]):
(-[WebAVStreamDataParserListener invalidate]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(WebCore::SourceBufferParserAVFObjC::isContentTypeSupported):
(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
(WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC):
(WebCore::SourceBufferParserAVFObjC::appendData):
(WebCore::SourceBufferParserAVFObjC::flushPendingMediaData):
(WebCore::SourceBufferParserAVFObjC::setShouldProvideMediaDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::shouldProvideMediadataForTrackID):
(WebCore::SourceBufferParserAVFObjC::resetParserState):
(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError):
(WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::create):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::didEncounterErrorDuringParsing):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::resetParserState):
(WebCore::SourceBufferPrivateAVFObjC::destroyParser):
(WebCore::SourceBufferPrivateAVFObjC::clearTracks):
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo const):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::parser const):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):
(WebCore::SourceBufferPrivateAVFObjC::flush):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
- platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
- platform/graphics/cocoa/AudioTrackPrivateWebM.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
(WebCore::AudioTrackPrivateWebM::create):
(WebCore::AudioTrackPrivateWebM::AudioTrackPrivateWebM):
(WebCore::AudioTrackPrivateWebM::id const):
(WebCore::AudioTrackPrivateWebM::label const):
(WebCore::AudioTrackPrivateWebM::language const):
(WebCore::AudioTrackPrivateWebM::trackIndex const):
- platform/graphics/cocoa/AudioTrackPrivateWebM.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
- platform/graphics/cocoa/SourceBufferParser.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
(WebCore::SourceBufferParser::isContentTypeSupported):
(WebCore::SourceBufferParser::create):
- platform/graphics/cocoa/SourceBufferParser.h: Added.
(WebCore::SourceBufferParser::setDidParseInitializationDataCallback):
(WebCore::SourceBufferParser::setDidEncounterErrorDuringParsingCallback):
(WebCore::SourceBufferParser::setDidProvideMediaDataCallback):
(WebCore::SourceBufferParser::setWillProvideContentKeyRequestInitializationDataForTrackIDCallback):
(WebCore::SourceBufferParser::setDidProvideContentKeyRequestInitializationDataForTrackIDCallback):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: Added.
(WebCore::isWebmParserAvailable):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::flushPendingMediaData):
(WebCore::SourceBufferParserWebM::setShouldProvideMediaDataForTrackID):
(WebCore::SourceBufferParserWebM::shouldProvideMediadataForTrackID):
(WebCore::SourceBufferParserWebM::resetParserState):
(WebCore::SourceBufferParserWebM::trackDataForTrackNumber):
(WebCore::SourceBufferParserWebM::OnElementBegin):
(WebCore::SourceBufferParserWebM::OnEbml):
(WebCore::SourceBufferParserWebM::OnSegmentBegin):
(WebCore::SourceBufferParserWebM::OnInfo):
(WebCore::SourceBufferParserWebM::OnClusterBegin):
(WebCore::SourceBufferParserWebM::OnTrackEntry):
(WebCore::SourceBufferParserWebM::OnBlockBegin):
(WebCore::SourceBufferParserWebM::OnBlockEnd):
(WebCore::SourceBufferParserWebM::OnSimpleBlockBegin):
(WebCore::SourceBufferParserWebM::OnSimpleBlockEnd):
(WebCore::SourceBufferParserWebM::OnBlockGroupBegin):
(WebCore::SourceBufferParserWebM::OnBlockGroupEnd):
(WebCore::convertToColorPrimaries):
(WebCore::convertToTransferCharacteristics):
(WebCore::convertToMatrixCoefficients):
(WebCore::convertSubsamplingXYToChromaSubsampling):
(WebCore::createFormatDescriptionFromVP9HeaderParser):
(WebCore::SourceBufferParserWebM::OnFrame):
- platform/graphics/cocoa/SourceBufferParserWebM.h: Added.
(WebCore::SourceBufferParserWebM::status const):
(WebCore::SourceBufferParserWebM::type const):
(isType):
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::isVP9DecoderAvailable):
(WebCore::validateVPParameters):
- platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:
(WebCore::VideoTrackPrivateWebM::create):
(WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM):
(WebCore::VideoTrackPrivateWebM::id const):
(WebCore::VideoTrackPrivateWebM::label const):
(WebCore::VideoTrackPrivateWebM::language const):
(WebCore::VideoTrackPrivateWebM::trackIndex const):
- platform/graphics/cocoa/VideoTrackPrivateWebM.h:
Source/WebKit:
<rdar://problem/65782467>
Reviewed by Eric Carlson.
Add an Experimental setting to enable the MSE WebM parser (off by default).
- Shared/WebPreferences.yaml:
LayoutTests:
<rdar://problem/65782467>
Reviewed by Eric Carlson.
- media/media-source/content/test-vp9-manifest.json: Added.
- media/media-source/content/test-vp9.webm: Added.
- media/media-source/media-source-webm-expected.txt: Added.
- media/media-source/media-source-webm.html: Added.
- 5:21 PM Changeset in webkit [264684] by
-
- 7 edits in trunk/Source/WebCore
Safari is unresponsive after playing a video of youtube.com playlist in picture-in-picture mode
https://bugs.webkit.org/show_bug.cgi?id=214616
Reviewed by Eric Carlson.
Remove the function setPreparedToReturnVideoLayerToInline() from
MediaControlsHost.idl and replace all the calls to that function
in Javascript code with a call in HTMLVideoElement::fullscreenModeChanged().
Calling setPreparedToReturnVideoLayerToInline() in the Javascript code of
modern media controls can be problematic because the host object might have
been destroyed when the webkitpresentationmodechanged event is fired.
During the exit fullscreen/picture-in-picture transaction, missing a call to
setPreparedToReturnVideoLayerToInline() will block the transaction,
and the UI process will be stuck in a bad state.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::setPreparedToReturnVideoLayerToInline): Deleted.
- Modules/mediacontrols/MediaControlsHost.h:
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handlePresentationModeChange):
- Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype.handleEvent):
(MediaController.prototype._returnMediaLayerToInlineIfNeeded): Deleted.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::fullscreenModeChanged):
- 5:09 PM Changeset in webkit [264683] by
-
- 3 edits in trunk/LayoutTests
Web Inspector: inspector/canvas/memory.html is failing on macOS Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=214619
Reviewed by Devin Rousso.
- inspector/canvas/memory-expected.txt:
- inspector/canvas/memory.html:
Canvas memory costs are not the same as on Intel macOS. Change the test to
simply check that the memory cost increases from zero-ish to not-zero.
- 4:55 PM WebKitGTK/2.28.x edited by
- (diff)
- 4:54 PM WebKitGTK/2.28.x edited by
- (diff)
- 4:45 PM Changeset in webkit [264682] by
-
- 5 edits in trunk/Source
REGRESSION (WebSQL disablement): Fudget app is unresponsive on launch
https://bugs.webkit.org/show_bug.cgi?id=214620
<rdar://problem/65443085>
Reviewed by Geoffrey Garen.
Source/WebCore:
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isFudget):
Source/WebKitLegacy/mac:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
Add Fudget to the list of apps that can use WebSQL until linked on or after iOS 14.
- 2:33 PM Changeset in webkit [264681] by
-
- 2 edits in trunk/Source/WebKit
watchOS: Web Content process crashes when it tries to open files
https://bugs.webkit.org/show_bug.cgi?id=214614
<rdar://problem/65900517>
Reviewed by Darin Adler.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
Allow reading kern.maxfilesperproc, as it is allowed on macOS and in the Network process sandbox, and libc needs it.
- 2:10 PM Changeset in webkit [264680] by
-
- 2 edits in trunk/Tools
ImageDiff: Set ALWAYS_SEARCH_USER_PATHS to NO
https://bugs.webkit.org/show_bug.cgi?id=214613
<rdar://problem/65883815>
Reviewed by Dan Bernstein.
- ImageDiff/cg/Configurations/Base.xcconfig:
- 2:10 PM Changeset in webkit [264679] by
-
- 4 edits in trunk/Source/JavaScriptCore
llint_slow_path_get_private_name() should not be using PropertySlot::InternalMethodType::VMInquiry.
https://bugs.webkit.org/show_bug.cgi?id=214603
Reviewed by Yusuke Suzuki.
VMInquiry means (1) the get operation should not call back into JS, (2) it should
not throw any exceptions (except for OutOfMemoryError or StackOverflowError which
can be thrown at any time), or have any side effects that is observable from JS
code. In this case, llint_slow_path_get_private_name() is just implementating
PrivateFieldGet (https://tc39.es/proposal-class-fields/#sec-privatefieldget) and
should actually be using PropertySlot::InternalMethodType::GetOwnProperty
(according to https://tc39.es/proposal-class-fields/#sec-privatefieldfind).
This patch makes the above change, and also adds an assert in JSObject::getPrivateField
to ensure that no one calls it for a VMInquiry since it is not supported.
Also added a PropertySlot::isVMInquiry() convenience query method.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/JSObjectInlines.h:
(JSC::JSObject::getPrivateField):
- runtime/PropertySlot.h:
(JSC::PropertySlot::isVMInquiry const):
- 2:09 PM Changeset in webkit [264678] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Layout tests exiting early with crashes
https://bugs.webkit.org/show_bug.cgi?id=214612
<rdar://problem/65897905>
Reviewed by Brent Fulgham.
This is caused by the WebContent process making a syscall not allowed by the sandbox.
- WebProcess/com.apple.WebProcess.sb.in:
- 2:07 PM Changeset in webkit [264677] by
-
- 2 edits in trunk/Source/WebKit
WebKit::ColorSpaceData::decode() does not need default: case
<https://webkit.org/b/214587>
<rdar://problem/65777868>
Reviewed by Darin Adler.
- Shared/mac/ColorSpaceData.mm:
(WebKit::ColorSpaceData::decode):
- Remove default: case and add ASSERT_NOT_REACHED() and
move
return false;to bottom of the method.
- 2:05 PM Changeset in webkit [264676] by
-
- 2 edits in trunk/Source/WebCore
Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=214595
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Adrian Perez de Castro.
- platform/UserAgentQuirks.cpp:
(WebCore::UserAgentQuirks::stringForQuirk):
- 2:02 PM Changeset in webkit [264675] by
-
- 2 edits in trunk/Source/WebKit
Unable to call WKScriptMessageHandlerWithReply's replyHandler with a nil errorMessage in Swift
https://bugs.webkit.org/show_bug.cgi?id=214581
<rdar://problem/65639342>
Reviewed by Brady Eidson.
- UIProcess/API/Cocoa/WKScriptMessageHandlerWithReply.h: Modify the block
signature to allow nil for either argument.
- 1:35 PM Changeset in webkit [264674] by
-
- 3 edits2 adds in trunk
Use CatchScope in microtask execution
https://bugs.webkit.org/show_bug.cgi?id=214600
<rdar://problem/65881165>
Reviewed by Mark Lam.
Source/WebCore:
Test: js/dom/microtask-drain-should-use-catch-scope.html
Use CatchScope to suppress JSC_validateExceptionChecks.
- bindings/js/JSMicrotaskCallback.h:
(WebCore::JSMicrotaskCallback::call):
LayoutTests:
- js/dom/microtask-drain-should-use-catch-scope-expected.txt: Added.
- js/dom/microtask-drain-should-use-catch-scope.html: Added.
- 12:36 PM Changeset in webkit [264673] by
-
- 4 edits in trunk/Source/JavaScriptCore
Fix FinalizationRegistry GC finalizer interation
https://bugs.webkit.org/show_bug.cgi?id=214586
<rdar://65854264>
Reviewed by Mark Lam and Yusuke Suzuki.
Turns out when you remove the ith element from a Vector and you
increment the index anyway you skip things... Use the helper
functions instead. This fixes an ASAN crash on our
FinalizationRegistry tests.
- heap/Heap.cpp:
(JSC::Heap::finalizeUnconditionalFinalizers):
- runtime/DeferredWorkTimer.cpp:
(JSC::DeferredWorkTimer::addPendingWork):
(JSC::DeferredWorkTimer::hasPendingWork):
(JSC::DeferredWorkTimer::hasDependancyInPendingWork):
(JSC::DeferredWorkTimer::cancelPendingWork):
- runtime/JSFinalizationRegistry.cpp:
(JSC::JSFinalizationRegistry::finalizeUnconditionally):
(JSC::JSFinalizationRegistry::takeDeadHoldingsValue):
- 12:29 PM Changeset in webkit [264672] by
-
- 2 edits in trunk/Source/JavaScriptCore
Disable NO_SMT by default
https://bugs.webkit.org/show_bug.cgi?id=214607
Reviewed by Filip Pizlo.
- runtime/OptionsList.h:
- 12:15 PM Changeset in webkit [264671] by
-
- 2 edits in trunk/Source/JavaScriptCore
Debug build is failing after r264537 on Linux
https://bugs.webkit.org/show_bug.cgi?id=214596
Reviewed by Yusuke Suzuki.
Removing
ASSERT_UNDER_CONTEXPR_CONTEXT(0)to avoid compilation
failure of Debug builds on Linux.
- runtime/IntlObject.cpp:
(JSC::relevantExtensionKeyString):
- 12:10 PM Changeset in webkit [264670] by
-
- 2 edits in trunk/Source/WebKit
Frequent Network error messages: "ResourceLoadStatisticsDatabaseStore::topPrevalentResourceWithUserInteractionDaysSinceUserInteractionStatement query failed to step, error message: no more rows available"
https://bugs.webkit.org/show_bug.cgi?id=214597
<rdar://65884740>
Reviewed by John Wilander.
We should not log an error message when no rows are returned when running
telemetry queries, because this is not an error.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::getMedianOfPrevalentResourcesWithUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::getTopPrevelentResourceDaysSinceUI const):
Remove unnecessary error logging and only check for telemetry results if the
query returns a row.
- 12:03 PM Changeset in webkit [264669] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: unable to save files that are base64 encoded
https://bugs.webkit.org/show_bug.cgi?id=214601
Reviewed by Brian Burg.
- UserInterface/Models/SourceCode.js:
(WI.SourceCode.prototype.get base64Encoded): Added.
Expose if the current content is base64 encoded. The current content is already exposed.
- UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForSourceCode):
Include the base64 encoded state in the save data.
- 11:54 AM Changeset in webkit [264668] by
-
- 2 edits in trunk/JSTests
REGRESSION(r264330): infinite loop in JSC stress tests using cloop
https://bugs.webkit.org/show_bug.cgi?id=214491
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Saam Barati.
Run the test only if JIT is enabled.
- stress/validate-does-gc-with-return-early-from-infinite-loop.js:
(vm.useJIT):
- 11:51 AM Changeset in webkit [264667] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: Styles: don't blur the add class input when a class is added
https://bugs.webkit.org/show_bug.cgi?id=214604
Reviewed by Brian Burg.
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
(WI.GeneralStyleDetailsSidebarPanel.prototype._addClassInputKeyPressed):
(WI.GeneralStyleDetailsSidebarPanel.prototype._addClassInputBlur):
(WI.GeneralStyleDetailsSidebarPanel.prototype._addClassFromInput): Added.
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ .class-list-container):
Drive-by: don't show a scrollbar unless needed.
- 11:48 AM Changeset in webkit [264666] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(?): file names are not shown in the open resource dialog
https://bugs.webkit.org/show_bug.cgi?id=214605
Reviewed by Brian Burg.
When a
DocumentFragmentis added to a parent node, the children of theDocumentFragment
are added as children of the parent instead of theDocumentFragmentitself, effectively
emptying theDocumentFragment, meaning that adding thatDocumentFragmentto a parent
node again will basically do nothing as there are no children for thatDocumentFragment.
- UserInterface/Views/GeneralTreeElement.js:
(WI.GeneralTreeElement.prototype._updateTitleElements):
Because the_mainTitleElement/_subtitleElementis cleared (removeChildren), if the
_mainTitle/_subtitleis aDocumentFragmentnothing will be added due to the above.
Instead, if the_mainTitle/_subtitleis aDocumentFragment, change it to be the
textContentof the_mainTitleElement/_subtitleElementso that the above does not
happen and so that future calls to_updateTitleElementswon't make any changes the
_mainTitle/_subtitleis now aStringwhich matches thetextContent.
- 11:26 AM Changeset in webkit [264665] by
-
- 10 edits in trunk
NetworkConnectionToWebProcess should not handle NetworkRTCProvider messages
https://bugs.webkit.org/show_bug.cgi?id=214547
Reviewed by Alex Christensen.
Source/WebKit:
Normally NetworkRTCProvider is created when starting to monitor the network.
In case network process is crashing though, there might be requests to open RTC socket on the new network process which has not started to monitor the network.
In that case, we will go through NetworkConnectionToWebProcess as NetworkRTCProvider is not yet created.
To properly handle this case, on web process side, we send an IPC message to explictly create the NetworkRTCProvider.
Once done, we set the IPC connection to the socket factory which will start sending messages to open sockets if needed.
Until its connection is set, the socket factory will buffer messages to open sockets.
Covered by test no longer crashing in debug.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::createRTCProvider):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:
(WebKit::LibWebRTCNetwork::setAsActive):
(WebKit::LibWebRTCNetwork::setConnection):
(WebKit::LibWebRTCNetwork::setSocketFactoryConnection):
- WebProcess/Network/webrtc/LibWebRTCNetwork.h:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::setConnection):
(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
LayoutTests:
- platform/mac/TestExpectations:
- 11:13 AM Changeset in webkit [264664] by
-
- 12 edits in trunk
Fetch/XHR loads done by extensions should opt out of response sanitisation done in network process
https://bugs.webkit.org/show_bug.cgi?id=214588
Source/WebKit:
<rdar://problem/65060560>
Reviewed by Alex Christensen.
Send to network process the CORS disabling patterns.
Disable sanitization for fetch/xhr loads whose pages have a matching pattern.
Covered by API test.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::setCORSDisablingPatterns):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::shouldDisableCORSForRequestTo const):
(WebKit::NetworkProcess::setCORSDisablingPatterns):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::shouldSanitizeResponse):
(WebKit::NetworkResourceLoader::sanitizeResponseIfPossible):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::parseAndAllowAccessToCORSDisablingPatterns):
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::updateCORSDisablingPatterns):
(WebKit::WebPage::synchronizeCORSDisablingPatternsWithNetworkProcess):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection):
Tools:
Reviewed by Alex Christensen.
Update test to check for header. Minor modernization of the JS script to impriove readability.
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
- 10:46 AM Changeset in webkit [264663] by
-
- 29 edits4 copies1 add in trunk
Use AVRoutePickerView when available for choosing AirPlay devices
https://bugs.webkit.org/show_bug.cgi?id=213497
<rdar://problem/58610662>
Reviewed by Jer Noble.
Source/WebCore:
Use an AVRoutePickerView, the replacement for AVOutputDeviceMenuController, when
it is available to allow a user to pick an AirPlay device. To do this, create an
AVPlaybackTargetPicker abstract base and create a concrete class from the
AVOutputDeviceMenuController-specific code from MediaPlaybackTargetPickerMac, and
create a new concrete class using AVRoutePickerView.
Tested manually because these changes require an AirPlay device.
- Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the view to the
target picker.
- Modules/mediasession/WebMediaSessionManagerClient.h:
- Modules/remoteplayback/RemotePlayback.cpp:
(WebCore::RemotePlayback::playbackTargetPickerWasDismissed): Drive-by fix: return
early if there are no pending promises.
- SourcesCocoa.txt: Add new files.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- platform/graphics/MediaPlaybackTargetPicker.cpp:
(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker): Add new parameter.
- platform/graphics/MediaPlaybackTargetPicker.h:
- platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h.
- platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm: Copied from Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm.
(WebCore::AVOutputDeviceMenuControllerTargetPicker::AVOutputDeviceMenuControllerTargetPicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::~AVOutputDeviceMenuControllerTargetPicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::devicePicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::availableDevicesDidChange):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::currentDeviceDidChange):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::showPlaybackTargetPicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::startingMonitoringPlaybackTargets):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::stopMonitoringPlaybackTargets):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::invalidatePlaybackTargets):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::externalOutputDeviceAvailable):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::outputContext):
(-[WebAVOutputDeviceMenuControllerHelper initWithCallback:]):
(-[WebAVOutputDeviceMenuControllerHelper clearCallback]):
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/AVPlaybackTargetPicker.h: Added.
(WebCore::AVPlaybackTargetPicker::AVPlaybackTargetPicker):
(WebCore::AVPlaybackTargetPicker::client const):
- platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.h: Added.
- platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm: Added.
(WebCore::AVRoutePickerViewTargetPicker::isAvailable):
(WebCore::AVRoutePickerViewTargetPicker::AVRoutePickerViewTargetPicker):
(WebCore::AVRoutePickerViewTargetPicker::~AVRoutePickerViewTargetPicker):
(WebCore::AVRoutePickerViewTargetPicker::outputContextInternal):
(WebCore::AVRoutePickerViewTargetPicker::devicePicker):
(WebCore::AVRoutePickerViewTargetPicker::routeDetector):
(WebCore::AVRoutePickerViewTargetPicker::showPlaybackTargetPicker):
(WebCore::AVRoutePickerViewTargetPicker::startingMonitoringPlaybackTargets):
(WebCore::AVRoutePickerViewTargetPicker::stopMonitoringPlaybackTargets):
(WebCore::AVRoutePickerViewTargetPicker::externalOutputDeviceAvailable):
(WebCore::AVRoutePickerViewTargetPicker::outputContext):
(WebCore::AVRoutePickerViewTargetPicker::invalidatePlaybackTargets):
(WebCore::AVRoutePickerViewTargetPicker::availableDevicesDidChange):
(WebCore::AVRoutePickerViewTargetPicker::currentDeviceDidChange):
(WebCore::AVRoutePickerViewTargetPicker::devicePickerWasDismissed):
(-[WebAVRoutePickerViewHelper initWithCallback:]):
(-[WebAVRoutePickerViewHelper dealloc]):
(-[WebAVRoutePickerViewHelper clearCallback]):
(-[WebAVRoutePickerViewHelper routePickerViewDidEndPresentingRoutes:]):
(-[WebAVRoutePickerViewHelper notificationHandler:]):
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac):
(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac):
(WebCore::MediaPlaybackTargetPickerMac::externalOutputDeviceAvailable):
(WebCore::MediaPlaybackTargetPickerMac::playbackTarget):
(WebCore::MediaPlaybackTargetPickerMac::routePicker):
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPickerMac::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::invalidatePlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::pickerWasDismissed):
(WebCore::MediaPlaybackTargetPickerMac::availableDevicesChanged):
(WebCore::MediaPlaybackTargetPickerMac::currentDeviceChanged):
(WebCore::MediaPlaybackTargetPickerMac::devicePicker): Deleted.
(-[WebAVOutputDeviceMenuControllerHelper initWithCallback:]): Deleted.
(-[WebAVOutputDeviceMenuControllerHelper clearCallback]): Deleted.
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]): Deleted.
- platform/mock/MediaPlaybackTargetPickerMock.cpp:
(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):
- platform/mock/MediaPlaybackTargetPickerMock.h:
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm: Soft link AVRoutePickerView.
- pal/spi/cocoa/AVKitSPI.h: Declare AVRoutePickerView.
Source/WebKit:
- UIProcess/WebPageProxy.h:
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformView const): Add new override.
Source/WebKitLegacy/mac:
- WebView/WebMediaPlaybackTargetPicker.h:
(WebMediaPlaybackTargetPicker::~WebMediaPlaybackTargetPicker): Deleted.
- WebView/WebMediaPlaybackTargetPicker.mm:
(WebMediaPlaybackTargetPicker::create):
(WebMediaPlaybackTargetPicker::WebMediaPlaybackTargetPicker):
(WebMediaPlaybackTargetPicker::invalidate):
(WebMediaPlaybackTargetPicker::platformView const): New override.
- WebView/WebView.mm:
(-[WebView _devicePicker]): Pass view to WebMediaPlaybackTargetPicker factory.
Source/WTF:
- wtf/PlatformHave.h: Define HAVE_AVROUTEPICKERVIEW.
Tools:
- TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:
(TestWebKitAPI::TEST): Test AVOutputContextOutputDevicesDidChangeNotification.
Don't check AVRouteDetectorMultipleRoutesDetectedDidChangeNotification on watchOS,
we don't use it there.
- 10:37 AM Changeset in webkit [264662] by
-
- 5 edits in trunk
webgl/2.0.0/conformance2/state/gl-object-get-calls.html results appears to show an out of bounds access bug.
https://bugs.webkit.org/show_bug.cgi?id=214557
Patch by James Darpinian <James Darpinian> on 2020-07-21
Reviewed by Myles C. Maxfield.
The WebGL 2 function getActiveUniformBlockName was accidentally untested because an
unrelated bug caused the test to exit before reaching the part that tested it. The
other bug is fixed now, and this change fixes getActiveUniformBlockName to actually
work.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
- 10:28 AM Changeset in webkit [264661] by
-
- 8 edits2 deletes in trunk
REGRESSION(r264486): ASSERTION FAILED: ASSERT_NOT_REACHED() in NetworkProcessPlatformStrategies::createBlobRegistry
https://bugs.webkit.org/show_bug.cgi?id=214425
Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-21
Reviewed by Youenn Fablet.
Source/WebCore:
In SerializedScriptValue.cpp, some kind of wrappers will not be created when global object is not
JSDOMGlobalObject, so they would not be created for IDB before r264486. After r264486, IDB uses
JSIDBSerializationGlobalObject, which is JSDOMGlobalObject, so those wrappers start to be created. To restore
the old behavior, adding checks for JSIDBSerializationGlobalObject in SerializedScriptValue.cpp.
Modify and re-enable test: LayoutTests/storage/indexeddb/structured-clone.html
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readRTCCertificate):
(WebCore::CloneDeserializer::readTerminal):
LayoutTests:
Remove storage/indexeddb/structured-clone-private.html as blob is not supported in IDB for private browsing.
Also storage/indexeddb/structured-clone.html already covers the code paths for structured clone in IDB.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/win/TestExpectations:
- storage/indexeddb/resources/structured-clone.js:
(testFile):
- storage/indexeddb/structured-clone-expected.txt:
- storage/indexeddb/structured-clone-private-expected.txt: Removed.
- storage/indexeddb/structured-clone-private.html: Removed.
- 10:18 AM Changeset in webkit [264660] by
-
- 2 edits in trunk/LayoutTests
[ iOS WK2 ] fast/scrolling/ios/autoscroll-input-when-very-zoomed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214598
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-21
- platform/ios-wk2/TestExpectations:
- 9:36 AM Changeset in webkit [264659] by
-
- 8 edits in trunk/Source
[Cocoa] Adopt VTRegisterSupplementalVideoDecoderIfAvailable
https://bugs.webkit.org/show_bug.cgi?id=214585
<rdar://problem/65863651>
Reviewed by Youenn Fablet.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/VideoToolboxSoftLink.cpp:
- platform/cocoa/VideoToolboxSoftLink.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::registerSupplementalVP9Decoder):
Source/WebKit:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::enableVP9Decoder):
- 9:35 AM Changeset in webkit [264658] by
-
- 5 edits2 adds in trunk
[UI Events] Make mousemove cancelable
https://bugs.webkit.org/show_bug.cgi?id=214513
<rdar://problem/64267520>
Reviewed by Simon Fraser.
Source/WebCore:
This patch makes the mousemove event cancelable.
The event was initially specified to be non-cancelable in DOM Level 2 Events, but was changed to reflect existing interoperability between browsers.
The most user facing behavior change here is that when the mousemove event is prevent-defaulted (canceled) content selection is not possible.
Chrome is aligned with the latest version of the spec, the mousemove event is cancelable.
However they also have a TODO right at where the drag would happen:
TODO(crbug.com/346473): Since there is no default action for the mousemove
event we should consider doing drag&drop even when js cancels the
mouse move event.
Firefox preforms the drag(select) operation but not sure if it’s because their mousemove event is still non-cancelable or whether they already went ahead with what the TODO says.
Test: fast/text/selection-is-prevent-defaulted.html
- dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
LayoutTests:
- fast/text/selection-is-prevent-defaulted-expected.txt: Added.
- fast/text/selection-is-prevent-defaulted.html: Added.
- platform/mac/fast/events/objc-event-api-expected.txt:
- 9:13 AM Changeset in webkit [264657] by
-
- 47 edits2 adds in trunk
Added OfflineAudioContext constructor
https://bugs.webkit.org/show_bug.cgi?id=214577
Patch by Clark Wang <clark_wang@apple.com> on 2020-07-21
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Re-baselined existing tests. Lots of failures that fail because of unsupported sampleRate range.
- web-platform-tests/webaudio/idlharness.https.window-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-null-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/adding-events-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-connection-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/set-target-conv-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt:
Source/WebCore:
Added OfflineAudioContext constructor and OfflineAudioContextOptions files.
Re-baselined existing tests. Lots of failures that fail because of unsupported sampleRate range.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::create):
- Modules/webaudio/OfflineAudioContext.h:
- Modules/webaudio/OfflineAudioContext.idl:
- Modules/webaudio/OfflineAudioContextOptions.h: Added.
- Modules/webaudio/OfflineAudioContextOptions.idl: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 9:07 AM Changeset in webkit [264656] by
-
- 4 edits in trunk/Source/WebCore
Make AnyStepHandling an enum class
https://bugs.webkit.org/show_bug.cgi?id=214423
Patch by Rob Buis <rbuis@igalia.com> on 2020-07-21
Reviewed by Darin Adler.
Correct some post commit comments.
- html/HTMLInputElement.h:
- html/InputType.h:
- html/StepRange.h:
- 8:46 AM Changeset in webkit [264655] by
-
- 2 edits in trunk/LayoutTests
[ Release Mac wk2 ] svg/animations/smil-leak-element-instances.svg is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214579
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-21
- platform/mac-wk2/TestExpectations:
- 8:42 AM Changeset in webkit [264654] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Resync filter_analyzer.cc up to upstream libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=214592
<rdar://problem/65247051>
Reviewed by Eric Carlson.
- Source/webrtc/modules/audio_processing/aec3/filter_analyzer.cc:
- 7:00 AM Changeset in webkit [264653] by
-
- 2 edits in trunk/Source/WebKit
[GTK] WebKitSettings:enable-private-browsing missing G_PARAM_DEPRECATED
https://bugs.webkit.org/show_bug.cgi?id=214554
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Carlos Garcia Campos.
- UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_class_init):
- 5:46 AM Changeset in webkit [264652] by
-
- 1 copy in releases/WPE WebKit/webkit-2.29.1
WPE WebKit 2.29.1
- 5:44 AM Changeset in webkit [264651] by
-
- 4 edits in trunk
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.29.1 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.29.1.
- 5:18 AM Changeset in webkit [264650] by
-
- 4 edits in trunk
Fix ITP data summary when using the memory store and blocking all third-party cookies
https://bugs.webkit.org/show_bug.cgi?id=214401
Reviewed by Michael Catanzaro.
Source/WebKit:
The memory store behaves differently than the database one, it only includes prevalent resources in the list,
while the database store includes all resources when cooking blocking policy is All.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const): Only check isPrevalentResource if
third party cookie blocking mode is not All to decide whether to include the domain in the report.
Tools:
Fix GetResourceLoadStatisticsDataSummary test to actually use the memory store.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
- 2:04 AM Changeset in webkit [264649] by
-
- 2 edits in trunk/LayoutTests
Unreviewed WPE/GTK gardening
- platform/glib/TestExpectations:
imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html
is passing since r264607.
- 2:03 AM Changeset in webkit [264648] by
-
- 4 edits in trunk
[GStreamer][1.18] mediastreamsrc element hits assert in gst -core
https://bugs.webkit.org/show_bug.cgi?id=214150
Reviewed by Philippe Normand.
Source/WebCore:
Removed track pointers from observers cause the object was
self-referencing a couple of times. Observers are 1-1 with the
source so there is no need to keep an owned reference and there is
no danger of incorrect dereferencing.
Turned finalize into dispose as the work is doing is more removing
the references with other objects, which what the dispose is
about. Called the parent on that, which as missing as well.
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(WebKitMediaStreamTrackObserver::WebKitMediaStreamTrackObserver):
(WebKitMediaStreamObserver::WebKitMediaStreamObserver):
(webkitMediaStreamSrcConstructed):
(webkitMediaStreamSrcDispose):
(webkit_media_stream_src_class_init):
LayoutTests:
As result of this bug
fast/mediastream/MediaStream-removeTrack-while-playing.html begins
to crash in debug mode in an assertion. When a track is removed
the observer is not removed and when it dies there are null
objects in the observer weak hash set. Still, if you do a quick
patch to remove the observer, things can still crash as track
removal is racy and in release there' other crash. All this needs
to be taclked as a general approach to fix track removal.
- platform/glib/TestExpectations: Added
fast/mediastream/MediaStream-removeTrack-while-playing.html as
Pass Crash for release and crash for debug.
- 1:08 AM Changeset in webkit [264647] by
-
- 23 edits in trunk
[GTK] Prepare unit tests for GTK4
https://bugs.webkit.org/show_bug.cgi?id=214251
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Make it possible to test input methods.
- UIProcess/API/glib/InputMethodFilter.h:
- UIProcess/API/gtk/InputMethodFilterGtk.cpp:
(WebKit::InputMethodFilter::filterKeyEvent): Added to receive the key event properties instead of the GdkEvent.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSynthesizeMouseEvent): Create a GdkEvent for right clicks since it's needed by GTK3 API.
(webkitWebViewBaseSynthesizeKeyEvent): Send key press and release events to the IM filter.
Tools:
In GTK4 there isn't GTK_WINDOW_POPUP and we can't create GdkEvents, so we need to use toplevel windows
everywhere and use the new internal api to synthesize events.
- TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(testContextMenuDownloadActions):
(testBlobDownload):
- TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
- TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp:
(testOptionMenuSimple):
(testOptionMenuGroups):
(testOptionMenuActivate):
(testOptionMenuSelect):
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewCreateNavigationData):
(testWebViewJavaScriptDialogs):
(testWebViewOpenWindowNoDefaultSize):
(testWebViewMouseTarget):
(testWebViewGeolocationPermissionRequests):
(testWebViewUserMediaEnumerateDevicesPermissionCheck):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
(testWebViewPointerLockPermissionRequest):
(testWebViewFileChooserRequest):
(testWebViewColorChooserRequest):
- TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
(testWebExtensionInputElementIsUserEdited):
(testInstallMissingPluginsPermissionRequest):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp:
(testFindControllerHide):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:
(testAutoplayPolicy):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewFullScreen):
(testWebViewSubmitForm):
(testWebViewSnapshot):
(testWebViewIsPlayingAudio):
(testWebViewPreferredSize):
- TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:
(testContextMenuDefaultMenu):
(testPopupEventSignal):
(testContextMenuKey):
(testContextMenuPopulateMenu):
(testContextMenuCustomMenu):
(testContextMenuSubMenu):
(testContextMenuDismissed):
(testContextMenuWebExtensionMenu):
(testContextMenuWebExtensionNode):
(testContextMenuLiveStream):
(beforeAll):
- TestWebKitAPI/Tests/WebKitGtk/TestDOMDOMWindow.cpp:
(signalsNotifyCallback):
- TestWebKitAPI/Tests/WebKitGtk/TestInspector.cpp:
(testInspectorDefault):
(testInspectorManualAttachDetach):
(testInspectorCustomContainerDestroyed):
- TestWebKitAPI/Tests/WebKitGtk/TestInspectorServer.cpp:
(testInspectorServerPageList):
- TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp:
(testPrintCustomWidget):
- TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
- TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
- TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:
(WebViewTest::quitMainLoopAfterProcessingPendingEvents):
(WebViewTest::showInWindow):
(WebViewTest::mouseMoveTo):
(WebViewTest::clickMouseButton):
(WebViewTest::keyStroke):
- TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp:
(WebViewTest::showInWindow):
- TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
(TestWebKitAPI::toWebKitGLibAPI):
(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
(TestWebKitAPI::PlatformWebView::simulateRightClick):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):
- 1:06 AM Changeset in webkit [264646] by
-
- 4 edits in trunk
[FreeType] Add support for text-underline-offset and text-decoration-thickness
https://bugs.webkit.org/show_bug.cgi?id=214550
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Get the underline position and thickness from the font if it's scalable and set them in font metrics.
- platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::scaledFontScaleFactor):
(WebCore::fontUnitsPerEm):
(WebCore::Font::platformInit):
LayoutTests:
Remove expectations for tests that are now passing.
- platform/gtk/TestExpectations:
- 1:03 AM Changeset in webkit [264645] by
-
- 2 edits in trunk/Source/WebCore
[GTK][WPE] imported blink large gradient tests are crashing on debug builds
https://bugs.webkit.org/show_bug.cgi?id=214192
Reviewed by Žan Doberšek.
The assert is:
ASSERT(cairo_surface_status(m_surface.get()) == CAIRO_STATUS_SUCCESS);
and the status we are getting is CAIRO_STATUS_INVALID_SIZE, because we are reaching the cairo image size
limit. We should check the size before trying to create the image surface. This patch fixes the crash, but not
the tests themselves that will still fail due to the cairo limitation.
- platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:
(WebCore::ImageBufferCairoImageSurfaceBackend::create): Return early if the image size is bigger than the
maximum allowed by cairo.
- 12:38 AM Changeset in webkit [264644] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreview non-unified source build fix
- runtime/IntlDisplayNames.cpp: Add missing <unicode/ucurr.h> header.
Jul 20, 2020:
- 10:16 PM Changeset in webkit [264643] by
-
- 4 edits in trunk/Source/JavaScriptCore
TryGetById clobberize rules are wrong.
https://bugs.webkit.org/show_bug.cgi?id=163834
<rdar://problem/65625807>
Reviewed by Keith Miller.
Theoretically, TryGetById can do the same things GetById does i.e. reify lazy
properties, read the stack, etc. Hence, its clobberize rule should be clobberTop
just like GetById. However, in practice, we don't currently use @tryGetById to
access anything on the stack (and probably never will). But as a conservative
measure, we'll just treat TryGetById like it can. In clobberize terms, this
means we declare TryGetById as doing read(World) (just like GetById) instead of
read(Heap).
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- 5:53 PM Changeset in webkit [264642] by
-
- 3 edits3 adds in trunk
Revert r262776 for existing apps using UIWebView/WebView
https://bugs.webkit.org/show_bug.cgi?id=214528
<rdar://problem/65468982>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-20
Reviewed by Tim Horton.
Source/WebCore:
r262776 removed Content-Type: application/x-www-form-urlencoded from POST requests with unspecified content type.
This matches the behavior of Chrome, Firefox, and WKWebView and is a change we want to make.
This doesn't match behavior of iOS 13 UIWebView, though, and given its state of being supported for compatibility until removed,
we are going to keep it behaving as it always has.
Updated WK1 test expectations.
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
LayoutTests:
- platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt: Added.
- platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Added.
- 5:33 PM Changeset in webkit [264641] by
-
- 2 edits in trunk
[CMake] Do not use ${DEVELOPER_MODE} directly, as it may be undefined
Unreviewed build fix.
Instead of using ${DEVELOPER_MODE} directly, which might be undefined an cause errors, set
first ENABLE_DEVELOPER_MODE based on its value with SET_AND_EXPOSE_TO_BUILD(), and then use
the ${ENABLE_DEVELOPER_MODE} expansion in the rest of the file.
- Source/cmake/OptionsWPE.cmake:
- 5:11 PM Changeset in webkit [264640] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix duplicate forward declaration introduced by merge conflict
https://bugs.webkit.org/show_bug.cgi?id=209779
- runtime/IntlRelativeTimeFormat.h:
- 5:04 PM Changeset in webkit [264639] by
-
- 23 edits1 copy7 adds in trunk
[ECMA-402] Implement Intl.DisplayNames
https://bugs.webkit.org/show_bug.cgi?id=209779
Reviewed by Ross Kirsling.
JSTests:
- stress/intl-displaynames.js: Added.
(shouldBe):
(shouldThrow):
(vm.icuVersion):
- stress/intl-parse-unicode-subtags.js: Added.
(shouldBe):
(shouldThrow):
(vm.icuVersion):
- test262/config.yaml:
Source/JavaScriptCore:
This patch implements Intl.DisplayNames behind useIntlDisplayNames=1 flag.
Intl.DisplayNames can offer readable "display-name" for ICU language, script, region, currency codes.
For example, it can offer "United States" string for "US" region code.
We use ICU ULocaleDisplayNames to implement it, except for currency since ULocaleDisplayNames is not supporting
currency correctly: it ignores "long", "short", and "narrow" style configurations. We need to call ucurr_getName
directly.
This patch appropriately adds unicode-language-id parsing in IntlLocale.cpp so that we can validate language id
when it is passed toIntl.DisplayNames#ofas defined in the spec.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/CommonIdentifiers.h:
- runtime/IntlDisplayNames.cpp: Added.
(JSC::IntlDisplayNames::create):
(JSC::IntlDisplayNames::createStructure):
(JSC::IntlDisplayNames::IntlDisplayNames):
(JSC::IntlDisplayNames::finishCreation):
(JSC::IntlDisplayNames::initializeDisplayNames):
(JSC::IntlDisplayNames::of const):
(JSC::IntlDisplayNames::resolvedOptions const):
(JSC::IntlDisplayNames::styleString):
(JSC::IntlDisplayNames::typeString):
(JSC::IntlDisplayNames::fallbackString):
- runtime/IntlDisplayNames.h: Copied from Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.h.
- runtime/IntlDisplayNamesConstructor.cpp: Added.
(JSC::IntlDisplayNamesConstructor::create):
(JSC::IntlDisplayNamesConstructor::createStructure):
(JSC::IntlDisplayNamesConstructor::IntlDisplayNamesConstructor):
(JSC::IntlDisplayNamesConstructor::finishCreation):
(JSC::constructIntlDisplayNames):
(JSC::callIntlDisplayNames):
(JSC::IntlDisplayNamesConstructorSupportedLocalesOf):
- runtime/IntlDisplayNamesConstructor.h: Added.
- runtime/IntlDisplayNamesPrototype.cpp: Added.
(JSC::IntlDisplayNamesPrototype::create):
(JSC::IntlDisplayNamesPrototype::createStructure):
(JSC::IntlDisplayNamesPrototype::IntlDisplayNamesPrototype):
(JSC::IntlDisplayNamesPrototype::finishCreation):
(JSC::IntlDisplayNamesPrototypeFuncOf):
(JSC::IntlDisplayNamesPrototypeFuncResolvedOptions):
- runtime/IntlDisplayNamesPrototype.h: Added.
- runtime/IntlLocale.cpp:
(JSC::isUnicodeLanguageSubtag): Deleted.
(JSC::isUnicodeScriptSubtag): Deleted.
(JSC::isUnicodeRegionSubtag): Deleted.
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
- runtime/IntlObject.cpp:
(JSC::createDisplayNamesConstructor):
(JSC::IntlObject::finishCreation):
(JSC::isUnicodeLanguageSubtag):
(JSC::isUnicodeScriptSubtag):
(JSC::isUnicodeRegionSubtag):
(JSC::isUnicodeVariantSubtag):
(JSC::isUnicodeLanguageId):
(JSC::isWellFormedCurrencyCode):
- runtime/IntlObject.h:
(JSC::intlDisplayNamesAvailableLocales):
- runtime/IntlRelativeTimeFormat.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::displayNamesStructure):
- runtime/OptionsList.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
Source/WTF:
- wtf/text/StringView.h:
- 4:54 PM Changeset in webkit [264638] by
-
- 4 edits in trunk/Source/WebCore
An airplaying video can enter picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=214556
Reviewed by Eric Carlson.
WebAVPlayerController replaces the AVPlayerController used by AVKit. Its property
"pictureInPicturePossible" will always be YES after VideoFullscreenInterfaceAVKit::doSetup()
sets it, even after the video enters picture-in-picture.
This patch fixes the issue by checking whether the video is airplaying (isExternalPlaybackActive)
in -[WebAVPlayerController isPictureInPicturePossible].
AVPlayerController has the logic to change the property "pictureInPicturePossible" to NO
after a video enters picture-in-picture, but we cannot use AVPlayerController's value of
"pictureInPicturePossible" as the property value of WebAVPlayerController. Because the value of
"-[AVPlayerController isPictureInPicturePossible]" depends on the value of
"[[AVAudioSession sharedInstance] isPiPAvailable]", which is always NO in the UI process.
(AVAudioSession related code is in the web process).
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::doSetup):
- platform/ios/WebAVPlayerController.h:
- platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController setAllowsPictureInPicture:]):
(-[WebAVPlayerController isPictureInPicturePossible]):
- 4:48 PM Changeset in webkit [264637] by
-
- 5 edits in trunk/Source
Add OK button to Date/Time form controls.
https://bugs.webkit.org/show_bug.cgi?id=214195
Source/WebCore:
Reviewed by Darin Adler.
- en.lproj/Localizable.strings:
Source/WebKit:
<rdar://problem/65006000>
Reviewed by Darin Adler.
Add 'OK' button to add clarity to UI, and increase the default size of the control to
ensure space for both buttons. Also fixed a crash that happened when closing the control before
the animation completed.
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimeContextMenuViewController preferredContentSize]):
(-[WKDateTimePicker contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKDateTimePicker contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKDateTimePicker contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKDateTimePicker ok:]):
- 4:43 PM Changeset in webkit [264636] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-610.1.24
- 4:36 PM Changeset in webkit [264635] by
-
- 8 edits in trunk/Source
REGRESSION (r264242): [ macOS ] imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate.any.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=214572
Unreviewed, reverting r264242.
Source/JavaScriptCore:
- runtime/JSRunLoopTimer.cpp:
(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop):
- runtime/JSRunLoopTimer.h:
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
- runtime/PromiseTimer.cpp:
(JSC::PromiseTimer::doWork):
(JSC::PromiseTimer::runRunLoop):
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::create):
(JSC::VM::tryCreate):
(JSC::VM::setRunLoop):
- runtime/VM.h:
(JSC::VM::runLoop const):
Source/WebCore:
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
- 4:32 PM Changeset in webkit [264634] by
-
- 5 edits in trunk/LayoutTests
Reduce number of iterations for weakref tests
https://bugs.webkit.org/show_bug.cgi?id=214567
Reviewed by Mark Lam.
These tests seem to time out on the watch series 3 simulator. Let's reduce the number of
iterations and see if it impacts the flakiness of the test.
- js/script-tests/weakref-async-is-collected.js:
(turnEventLoop):
- js/script-tests/weakref-eventually-collects-values.js:
(turnEventLoop):
- js/script-tests/weakref-microtasks-dont-collect.js:
(turnEventLoop):
- js/script-tests/weakref-weakset-consistency.js:
(turnEventLoop):
- 4:28 PM Changeset in webkit [264633] by
-
- 4 edits in trunk
[JSC] eval?.() should be indirect eval
https://bugs.webkit.org/show_bug.cgi?id=214568
Reviewed by Keith Miller.
JSTests:
- test262/expectations.yaml:
Mark two test cases as passing.
Source/JavaScriptCore:
eval?.() is specified as indirect eval, but (virtually) all implementations assumed it should be direct eval.
I raised this topic in today's TC39 meeting and we've decided to keep the spec as it is.
- parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):
Don't use EvalFunctionCallNode for optional call of eval.
- 4:27 PM Changeset in webkit [264632] by
-
- 8 edits in branches/safari-610.1.23-branch/Source
Versioning.
WebKit-610.1.23
- 4:24 PM Changeset in webkit [264631] by
-
- 2 edits in trunk/JSTests
Turn on FinalizationRegistry test262 tests
https://bugs.webkit.org/show_bug.cgi?id=214576
Reviewed by Ross Kirsling.
- test262/config.yaml:
- 4:18 PM Changeset in webkit [264630] by
-
- 14 edits1 add in trunk/Source
Non unified build fixes, midsummer 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=213616
Unreviewed build fix.
Source/JavaScriptCore:
- b3/air/AirTmpInlines.h:
(JSC::B3::Air::TmpWidth::widths): Moved from AirTmpWidth.h
- b3/air/AirTmpWidth.cpp: Included AirTmpInlines.h
- b3/air/AirTmpWidth.h: TmpWidth::widths() moved out from here.
- runtime/ExceptionFuzz.cpp: Add missing inclusion of JSCJSValueInlines.h
- runtime/StructureIDTable.cpp: Add missing inclusions of wtf/DataLog.h
and wtf/RawPointer.h
- runtime/VMTraps.cpp: Ditto.
Source/WebCore:
No new tests needed.
- inspector/InspectorInstrumentationWebKit.h: Forward-declare ResourceLoader class.
Source/WebKit:
- NetworkProcess/soup/WebSocketTaskSoup.cpp: Add missing inclusion of NetworkProcess.h
Source/WTF:
- wtf/text/StringParsingBuffer.h: Add missing inclusion of wtf/text/StringView.h,
and removed other now-unneeded header inclusions.
- 4:15 PM Changeset in webkit [264629] by
-
- 1 copy in branches/safari-610.1.23-branch
New branch.
- 3:57 PM Changeset in webkit [264628] by
-
- 2 edits in trunk/LayoutTests
[ Release Mac wk2 ] svg/animations/smil-leak-list-property-instances.svg is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214574
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-20
- platform/mac-wk2/TestExpectations:
- 3:53 PM Changeset in webkit [264627] by
-
- 10 edits2 adds in trunk
REGRESSION (r261874): Typing near the bottom of a scrollable document causes the scroll position to jump
https://bugs.webkit.org/show_bug.cgi?id=214426
<rdar://problem/65302701>
Reviewed by Simon Fraser.
Source/WebCore:
After the changes in r261874, any content size changes that trigger
FrameView::adjustViewSizecause the scroll
position to be clamped to its minimum and maximum limits after the next layout pass. In the context of edit
commands, this means that the scroll position may jump erratically, since many edit commands can temporarily
leave the DOM in a state where the content size is unstable.
For example, in the test case below, deleting the only character in a div element on its own line first involves
emptying the text node underneath the div (causing it to have no height), before inserting a BR element in its
place (which restores a nonzero height). After the text node is emptied (but before we insert the BR element),
the content size of view changes due to a layout update while creating visible positions (under
VisiblePosition::canonicalPosition). If we happen to be scrolled all the way to the bottom of the main frame,
this means we'll scroll up, due to the maximum scroll position temporarily decreasing. A similar effect happens
when inserting the first character on a line, wherein the div is empty after BR element is removed but before it
is replaced with a text node.
To mitigate this, introduce a mechanism to temporarily avoid updating the scroll position, and use it when
executing edit commands. See below for more details.
Test: editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible.html
- editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::apply):
- editing/Editor.cpp:
(WebCore::Editor::willApplyEditing const):
(WebCore::Editor::appliedEditing):
Add logic to specifically handle typing commands here, since we handle typing commands by adding them to the
latest "open" typing command, rather than go through the more standard codepaths in EditCommandComposition
above.
- editing/Editor.h:
- page/FrameView.cpp:
(WebCore::FrameView::reset):
(WebCore::FrameView::topContentDirectionDidChange):
(WebCore::FrameView::handleDeferredScrollbarsUpdate):
(WebCore::FrameView::handleDeferredPositionScrollbarLayers):
Split existing logic for handling deferred scrollbar updates and deferred calls to
positionScrollbarLayers
into two separate methods, with separate boolean flags.topContentDirectionDidChangesets both of these flags
(which preserves existing behavior), whiledecrementProhibitsScrollingWhenChangingContentSizeCountjust
requests a scrollbar update.
(WebCore::FrameView::didLayout):
(WebCore::FrameView::didFinishProhibitingScrollingWhenChangingContentSize):
After decrementing
m_prohibitsScrollingWhenChangingContentSizeCountback to zero, ensure that the scroll
position ultimately remains clamped to the minimum and maximum values by either immediately calling
updateScrollbarswith the current scroll position if layout and style are up to date, or by scheduling a
deferred scrollbar update if that is not the case.
(WebCore::FrameView::handleDeferredScrollbarsUpdateAfterDirectionChange): Deleted.
Rename this to just
handleDeferredScrollbarsUpdate.
- page/FrameView.h:
- platform/ScrollView.cpp:
(WebCore::ScrollView::setContentsSize):
(WebCore::ScrollView::prohibitScrollingWhenChangingContentSizeForScope):
(WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::ProhibitScrollingWhenChangingContentSizeForScope):
(WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::~ProhibitScrollingWhenChangingContentSizeForScope):
Introduce a new token object,
ProhibitScrollingWhenChangingContentSizeForScope, which increments a count on
ScrollViewwhen created and decrements the count when destroyed. While this counter is greater than zero, we
will avoid scrolling as a result of changing content size.
- platform/ScrollView.h:
(WebCore::ScrollView::incrementProhibitsScrollingWhenChangingContentSizeCount):
(WebCore::ScrollView::decrementProhibitsScrollingWhenChangingContentSizeCount):
LayoutTests:
Add a test to verify that the scroll position doesn't change when deleting and then reinserting the only
character on a line (i.e.divelement) in a contenteditable element. This test also verifies that deleting
lines in a way that decreases the height of the document still clamps the scroll position by scrolling up.
- editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible-expected.txt: Added.
- editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible.html: Added.
- platform/mac-wk1/TestExpectations:
Mark the test as failing in WebKit1 for now, which will require some additional work.
- 3:38 PM Changeset in webkit [264626] by
-
- 3 edits in trunk/Tools
[ews] Use -q while unzipping layout-test-results.zip
https://bugs.webkit.org/show_bug.cgi?id=214571
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
- BuildSlaveSupport/ews-build/steps_unittest.py:
- 3:34 PM Changeset in webkit [264625] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] css3/blending/blend-mode-clip-accelerated-blending-canvas.html is passing and expectations need to be removed
https://bugs.webkit.org/show_bug.cgi?id=214570
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-20
- platform/ios/TestExpectations:
- 3:20 PM Changeset in webkit [264624] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: developerExtrasEnabled should be respected when opening local Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=214573
<rdar://problem/65848496>
Reviewed by David Kilzer.
Ensure that WKPreferences.developerExtrasEnabled is true prior to opening a Web Inspector
window. This matches the check in WebCore when deciding to show "Inspect Element" menu item.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
- 3:16 PM Changeset in webkit [264623] by
-
- 2 edits in trunk/Source/WebKit
[WPE] WebPopupItem should always be forward declared as struct
https://bugs.webkit.org/show_bug.cgi?id=214569
Unreviewed build fix.
No new tests needed.
- UIProcess/API/wpe/WebKitWebViewClient.h: Forward-declare WebPopupItem as a struct.
- 3:12 PM Changeset in webkit [264622] by
-
- 3 edits2 adds in trunk
CSS clip-path is applied to the <svg> root element in the view-box coordinates
https://bugs.webkit.org/show_bug.cgi?id=214418
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-20
Reviewed by Darin Adler.
Source/WebCore:
We need to transfer the bounding box of the SVG element renderer from the
SVG coordinates system to the CSS coordinates before calculating the clip
path. Then we need to transfer the clip path back to the SVG coordinates
before applying it to the GraphicsContext. The GraphicsContext is already
transformed by the localToPrentTransform.
Test: svg/in-html/svg-view-box-css-clip-path.html
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::clipContextToCSSClippingArea):
LayoutTests:
- svg/in-html/svg-view-box-css-clip-path-expected.html: Added.
- svg/in-html/svg-view-box-css-clip-path.html: Added.
- 3:01 PM Changeset in webkit [264621] by
-
- 67 edits6 copies2 moves22 adds1 delete in trunk
[JSC] update test262 (July 2020 edition)
https://bugs.webkit.org/show_bug.cgi?id=214575
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml:
- test262/harness/atomicsHelper.js:
- test262/harness/testIntl.js:
(testWithIntlConstructors):
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js:
- test262/test/built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js:
- test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:
(testWithTypedArrayConstructors): Deleted.
- test262/test/built-ins/Atomics/waitAsync/bigint/negative-index-throws.js:
- test262/test/built-ins/Atomics/waitAsync/bigint/out-of-range-index-throws.js:
- test262/test/built-ins/Atomics/waitAsync/bigint/poisoned-object-for-timeout-throws-agent.js:
(262.agent.receiveBroadcast):
(1n.then.async agentCount):
- test262/test/built-ins/Atomics/waitAsync/bigint/poisoned-object-for-timeout-throws.js:
- test262/test/built-ins/Atomics/waitAsync/bigint/symbol-for-timeout-throws-agent.js:
(1n.then.async agentCount):
- test262/test/built-ins/Atomics/waitAsync/negative-index-throws.js:
- test262/test/built-ins/Atomics/waitAsync/null-for-timeout.js:
- test262/test/built-ins/Atomics/waitAsync/out-of-range-index-throws.js:
- test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws-agent.js:
(262.agent.receiveBroadcast):
(1.then.async agentCount):
- test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws.js:
- test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-ok.js:
- test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-timed-out.js:
- test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-string-not-equal.js:
- test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-string-timed-out.js:
- test262/test/built-ins/Atomics/waitAsync/symbol-for-index-throws.js:
- test262/test/built-ins/Atomics/waitAsync/symbol-for-timeout-throws-agent.js:
(1.then.async agentCount):
- test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-index-coercion.js:
- test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-timeout-coercion.js:
- test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-value-coercion.js:
- test262/test/built-ins/JSON/stringify/replacer-array-proxy.js:
- test262/test/built-ins/Promise/allSettled/resolve-from-same-thenable.js:
- test262/test/built-ins/Promise/any/iter-returns-true-reject.js:
- test262/test/built-ins/Promise/any/iter-returns-undefined-reject.js:
- test262/test/built-ins/Promise/prototype/finally/resolved-observable-then-calls.js:
(then):
- test262/test/built-ins/Promise/prototype/finally/species-constructor.js:
(then):
- test262/test/built-ins/Promise/prototype/finally/species-symbol.js: Removed.
- test262/test/built-ins/Promise/prototype/finally/subclass-reject-count.js:
(FooPromise.reject.finally):
(then.ERROR.catch): Deleted.
- test262/test/built-ins/Promise/prototype/finally/subclass-resolve-count.js:
(then):
- test262/test/intl402/DateTimeFormat/constructor-options-fractionalSecondDigits-valid.js:
(toString):
(valueOf): Deleted.
- test262/test/intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js:
- test262/test/intl402/DateTimeFormat/prototype/formatRange/date-undefined-throws.js:
- test262/test/intl402/DateTimeFormat/prototype/formatRange/fractionalSecondDigits.js:
- test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-undefined-throws.js:
- test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/fractionalSecondDigits.js:
- test262/test/intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js:
- test262/test/intl402/DisplayNames/ctor-custom-prototype.js:
- test262/test/intl402/DisplayNames/ctor-default-prototype.js:
- test262/test/intl402/DisplayNames/instance-extensible.js:
- test262/test/intl402/DisplayNames/locales-symbol-length.js:
- test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js:
- test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js:
- test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js:
(fallback.toString):
(fallback.valueOf):
(fallback.Symbol.toPrimitive):
(options.fallback.toString): Deleted.
(options.fallback.valueOf): Deleted.
(options.fallback.Symbol.toPrimitive): Deleted.
- test262/test/intl402/DisplayNames/options-fallback-valid.js:
- test262/test/intl402/DisplayNames/options-localeMatcher-valid.js:
- test262/test/intl402/DisplayNames/options-random-properties-unchecked.js:
- test262/test/intl402/DisplayNames/options-style-valid.js:
- test262/test/intl402/DisplayNames/options-type-invalid-throws.js:
- test262/test/intl402/DisplayNames/options-type-valid.js:
- test262/test/intl402/DisplayNames/proto-from-ctor-realm.js:
- test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js:
- test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js:
- test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js:
- test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js:
- test262/test/language/computed-property-names/class/static/method-number.js:
- test262/test/language/computed-property-names/class/static/method-string.js:
- test262/test/language/computed-property-names/class/static/method-symbol.js:
- test262/test/language/expressions/optional-chaining/early-errors-tail-position-template-string-esi.js: Removed.
- test262/test/language/expressions/optional-chaining/early-errors-tail-position-template-string.js: Removed.
- test262/test/language/expressions/optional-chaining/eval-optional-call.js:
(fn):
- test262/test262-Revision.txt:
Tools:
test262 is now using 'main' as the default branch. Fix our import script to reflect that.
- Scripts/test262/Import.pm:
(processCLI):
- 2:52 PM Changeset in webkit [264620] by
-
- 11 edits in trunk
Fixes to match BaseAudioContext.idl to spec
https://bugs.webkit.org/show_bug.cgi?id=214487
Patch by Clark Wang <clark_wang@apple.com> on 2020-07-20
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Re-baselined existing tests that now pass.
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic-expected.txt:
Source/WebCore:
Removed unrestricted keyword from certain attributes and parameters in BaseAudioContext.
Changed createPanner to call new PannerNode constructor, removed old PannerNode constructor.
Re-baselined existing tests that now pass.
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::createPanner):
- Modules/webaudio/BaseAudioContext.idl:
- Modules/webaudio/PannerNode.cpp:
- Modules/webaudio/PannerNode.h:
LayoutTests:
Changed test for default panningModel to equalpower to match spec, Chrome and Firefox.
- webaudio/pannernode-basic-expected.txt:
- webaudio/pannernode-basic.html:
- 2:32 PM Changeset in webkit [264619] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening, skip flaky test webgl/2.0.0/conformance2/state/gl-object-get-calls.html.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 2:24 PM Changeset in webkit [264618] by
-
- 2 edits in trunk/Tools
[jhbuild] GStreamer broken in minimal environment
https://bugs.webkit.org/show_bug.cgi?id=214552
Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Carlos Alberto Lopez Perez.
- jhbuild/jhbuildrc_common.py:
(init): Don't set GST_PLUGIN_SYSTEM_PATH when using the minimal moduleset, because in this
case we actually have to rely on the host GStreamer installation. GStreamer is not part of
the minimal moduleset.
- 2:03 PM Changeset in webkit [264617] by
-
- 32 edits2 copies2 moves25 adds in trunk
Add support for FinalizationRegistries
https://bugs.webkit.org/show_bug.cgi?id=199888
Reviewed by Yusuke Suzuki.
JSTests:
Shamelessly copy v8's tests and refactor them to work with conservative GC.
- stress/resources/v8-mjsunit.js: Added.
(MjsUnitAssertionError):
(MjsUnitAssertionError.prototype.toString):
(catch):
(classOf):
(ValueOf):
(prettyPrinted):
(prettyPrintedArrayElement):
(failWithMessage):
(formatFailureText):
(fail):
(deepObjectEquals):
(deepEquals):
(assertSame):
(assertNotSame):
(assertEquals):
(assertNotEquals):
(assertEqualsDelta):
(assertArrayEquals):
(assertPropertiesEqual):
(assertToStringEquals):
(assertTrue):
(assertFalse):
(assertNull):
(assertNotNull):
(executeCode):
(checkException):
(assertThrows):
(assertThrowsEquals):
(assertThrowsAsync):
(assertInstanceof):
(assertDoesNotThrow):
(assertUnreachable):
(assertContains):
(assertMatches):
(concatenateErrors):
(assertPromiseResult):
(OptimizationStatus):
(assertUnoptimized):
(assertOptimized):
(isNeverOptimizeLiteMode):
(isNeverOptimize):
(isAlwaysOptimize):
(isInterpreted):
(isOptimized):
(isTurboFanned):
(MjsUnitAssertionError.prepareStackTrace):
- stress/v8-cleanup-from-different-realm.js: Added.
(let.timeout_func):
- stress/v8-cleanup-proxy-from-different-realm.js: Added.
(let.timeout_func):
- stress/v8-finalization-registry-basics.js: Added.
(TestConstructFinalizationRegistry):
(TestFinalizationRegistryConstructorCallAsFunction):
(TestConstructFinalizationRegistryCleanupNotCallable):
(TestConstructFinalizationRegistryWithNonCallableProxyAsCleanup):
(TestRegisterTargetAndHoldingsSameValue):
(TestRegisterWithoutFinalizationRegistry):
(TestUnregisterWithNonExistentKey):
(TestUnregisterWithNonFinalizationRegistry):
(TestWeakRefConstructorWithNonObject):
(TestWeakRefWithProxy):
- stress/v8-finalizationregistry-and-weakref.js: Added.
(let.cleanup):
(setTimeout):
- stress/v8-finalizationregistry-keeps-holdings-alive.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js: Added.
(let.cleanup0):
(let.cleanup1):
(let.timeout_func):
- stress/v8-multiple-dirty-finalization-registries.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-reentrant-gc-from-cleanup.js: Added.
(let.reentrant_gc):
(setTimeout):
- stress/v8-stress-finalizationregistry-dirty-enqueue.js: Added.
(i.registries.push.new.FinalizationRegistry):
(registries.forEach):
- stress/v8-undefined-holdings.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-unregister-after-cleanup.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-unregister-before-cleanup.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-unregister-called-twice.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-unregister-inside-cleanup2.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-unregister-inside-cleanup3.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-unregister-many.js: Added.
(let.cleanup):
(let.timeout_func):
- stress/v8-weak-unregistertoken.js: Added.
(FR.new.FinalizationRegistry):
(tryAgain):
Source/JavaScriptCore:
This patch adds support for FinalizationRegistries. There are two
main parts to this patch, the first is refactoring PromiseTimer a
more general into DeferredWorkTimer. This allows us to finally
have a "real" setTimeout on the jsc command line. The second part
is adding all the new classes needed for FinalizationRegistries.
The refactoring is mostly a rename but does two main new
things. The first is that it now notifies the VM we have finished
a synchronuous JS execution, so that WeakRefs can be
collected. The second is that it now catches any exceptions and
forwards the to a new method on the global object method
table. For WebCore, this reports the exception to the console. For
API users, this calls their exceptionHandler block. For the CLI,
it exits with exit status 3 (our general exception exit
status). Unfortunately, there's not currently an ergonomic way to
pass the expected exception from the CLI arguments to this handler
so that's not supported here.
In order to support FinalizationRegistry this patch adds a "new"
class JSDestructibleInternalFieldObjectImpl, which allows us to
have a destructible object with internal fields. Since the order
of collection doesn't matter we currently use C++ HashTables on
the FinalizationRegistry. Since users can unregister objects while
the callback is pending we have a hash table for the live entries
and a second hash table for the dead ones. Lastly, because users
are not requred to provide a token for unregistration we have two
extra Vectors containing the live/dead objects that are not
unregisterible.
- API/JSAPIGlobalObject.cpp:
- API/JSAPIGlobalObject.mm:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- heap/Heap.cpp:
(JSC::Heap::finalizeUnconditionalFinalizers):
- jsc.cpp:
(functionSetTimeout):
(functionFinalizationRegistryLiveCount):
(functionFinalizationRegistryDeadCount):
(main):
(checkUncaughtException):
(checkException):
(GlobalObject::reportUncaughtExceptionAtEventLoop):
(runJSC):
- runtime/ArrayIteratorPrototype.cpp:
- runtime/CommonIdentifiers.h:
- runtime/DeferredWorkTimer.cpp: Renamed from Source/JavaScriptCore/runtime/PromiseTimer.cpp.
(JSC::DeferredWorkTimer::DeferredWorkTimer):
(JSC::DeferredWorkTimer::doWork):
(JSC::DeferredWorkTimer::runRunLoop):
(JSC::DeferredWorkTimer::addPendingWork):
(JSC::DeferredWorkTimer::hasPendingWork):
(JSC::DeferredWorkTimer::hasDependancyInPendingWork):
(JSC::DeferredWorkTimer::cancelPendingWork):
(JSC::DeferredWorkTimer::scheduleWorkSoon):
- runtime/DeferredWorkTimer.h: Renamed from Source/JavaScriptCore/runtime/PromiseTimer.h.
- runtime/FinalizationRegistryConstructor.cpp: Added.
(JSC::FinalizationRegistryConstructor::finishCreation):
(JSC::FinalizationRegistryConstructor::FinalizationRegistryConstructor):
(JSC::callFinalizationRegistry):
(JSC::constructFinalizationRegistry):
- runtime/FinalizationRegistryConstructor.h: Copied from Source/JavaScriptCore/API/JSAPIGlobalObject.cpp.
- runtime/FinalizationRegistryPrototype.cpp: Added.
(JSC::FinalizationRegistryPrototype::finishCreation):
(JSC::getFinalizationRegistry):
(JSC::protoFuncFinalizationRegistryRegister):
(JSC::protoFuncFinalizationRegistryUnregister):
- runtime/FinalizationRegistryPrototype.h: Copied from Source/JavaScriptCore/API/JSAPIGlobalObject.cpp.
- runtime/IdentifierInlines.h:
(JSC::Identifier::Identifier):
- runtime/JSFinalizationRegistry.cpp: Added.
(JSC::JSFinalizationRegistry::createStructure):
(JSC::JSFinalizationRegistry::create):
(JSC::JSFinalizationRegistry::finishCreation):
(JSC::JSFinalizationRegistry::visitChildren):
(JSC::JSFinalizationRegistry::destroy):
(JSC::JSFinalizationRegistry::finalizeUnconditionally):
(JSC::JSFinalizationRegistry::runFinalizationCleanup):
(JSC::JSFinalizationRegistry::takeDeadHoldingsValue):
(JSC::JSFinalizationRegistry::registerTarget):
(JSC::JSFinalizationRegistry::unregister):
(JSC::JSFinalizationRegistry::liveCount):
(JSC::JSFinalizationRegistry::deadCount):
(JSC::JSFinalizationRegistry::toStringName):
- runtime/JSFinalizationRegistry.h: Added.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reportUncaughtExceptionAtEventLoop):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::stackOverflowFrameCallee const):
(JSC::JSGlobalObject::arrayIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::mapIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::setIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::stringIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::mapSetWatchpointSet):
(JSC::JSGlobalObject::setAddWatchpointSet):
(JSC::JSGlobalObject::arraySpeciesWatchpointSet):
(JSC::JSGlobalObject::arrayJoinWatchpointSet):
(JSC::JSGlobalObject::numberToStringWatchpointSet):
- runtime/JSInternalFieldObjectImpl.h:
- runtime/JSInternalFieldObjectImplInlines.h:
(JSC::Base>::visitChildren):
(JSC::JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildren): Deleted.
- runtime/JSPromise.cpp:
(JSC::JSPromise::resolve):
(JSC::JSPromise::reject):
- runtime/StructureIDTable.cpp:
(JSC::StructureIDTable::allocateID):
(JSC::StructureIDTable::deallocateID):
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
- runtime/VM.h:
- wasm/js/JSWebAssembly.cpp:
(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):
- wasm/js/JSWebAssemblyCodeBlock.h:
Source/WebCore:
Refactor things for changing PromiseDeferredTimer to DeferredWorkTimer.
Also, add globalObject hook for reporting uncaught exceptions from JSC's
runloop callbacks.
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::reportUncaughtExceptionAtEventLoop):
- bindings/js/JSDOMGlobalObject.h:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::compileStreaming):
(WebCore::JSDOMWindowBase::instantiateStreaming):
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::addTimerSetNotification):
(WebCore::WorkerScriptController::removeTimerSetNotification):
- workers/WorkerRunLoop.cpp:
- worklets/WorkletScriptController.cpp:
LayoutTests:
- js/script-tests/weakref-finalizationregistry.js: Added.
(makeWeakRef):
(turnEventLoop):
(async test):
- js/weakref-finalizationregistry-expected.txt: Added.
- js/weakref-finalizationregistry.html: Added.
- 1:19 PM Changeset in webkit [264616] by
-
- 4 edits in trunk/Source/JavaScriptCore
JSC build scripts should be quiet by default
https://bugs.webkit.org/show_bug.cgi?id=214535
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-20
Reviewed by Saam Barati.
There's no need for these scripts to print "Nothing changed" when they don't do anything.
- offlineasm/asm.rb:
- offlineasm/generate_offset_extractor.rb:
- offlineasm/generate_settings_extractor.rb:
- 1:18 PM Changeset in webkit [264615] by
-
- 3 edits in trunk/Source/WebCore
[CG] Flushing ImageBuffer IOSurface cached image can happen when creating an image for encoding only
https://bugs.webkit.org/show_bug.cgi?id=214515
<rdar://problem/65735991>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-20
Reviewed by Simon Fraser.
Drawing an empty rectangle after changing the bytes of the IOSurface was
a hack to force CG to regenerate the IOSurface cached image. This hack
was added to solve the bug in which we were getting stale data url from
the ImageBuffer after calling its putImageData() function.
Drawing the ImageBuffer to a GraphicsContext or getting its data url starts
by getting a native image from the IOSurface. The stale cached image problem
was seen only in getting the data url but when not drawing the ImageBuffer.
So to save the cost of flushing the cached image, we will delay doing the
empty rectangle hack till toCFData() is called. toCFData() is called for
all ImageBuffer data retrieval functions including toDataURL().
This gives a 15% progression to the Images test on MacBookPro15,2 because
the Images test does not call toDataURL() so it does not require flushing
the IOSurface cached image. It calls getImageData(), alter the image data
and then calls putImageData().
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::toCFData const):
(WebCore::ImageBufferIOSurfaceBackend::putImageData):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- 1:16 PM Changeset in webkit [264614] by
-
- 4 edits in trunk/Tools
[build.webkit.org] Update reference to webkit-test-results in TestFailures
https://bugs.webkit.org/show_bug.cgi?id=214499
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
- BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:
- BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
- 1:12 PM Changeset in webkit [264613] by
-
- 5 edits in trunk/Source/WebKit
REGRESSION(r263551) Main thread often hangs while saving cookies
https://bugs.webkit.org/show_bug.cgi?id=214564
<rdar://problem/65779712>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-20
Reviewed by Geoffrey Garen.
I had assumed that CFNetwork wouldn't write cookies on the main thread, but I was wrong.
That change caused spins, so let's just do the work on the WebsiteDataStore's queue instead.
- UIProcess/API/APIHTTPCookieStore.h:
- UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm:
(API::HTTPCookieStore::flushDefaultUIProcessCookieStore):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::dispatchOnQueue):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 1:04 PM Changeset in webkit [264612] by
-
- 3 edits in trunk/Tools
Reduce logging in ews django app
https://bugs.webkit.org/show_bug.cgi?id=214562
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-app/ews/models/build.py:
(Build.update_build):
- BuildSlaveSupport/ews-app/ews/models/step.py:
(Step.save_step):
(Step.update_step):
- 12:58 PM Changeset in webkit [264611] by
-
- 2 edits in trunk/Source/WebCore
Streamline URLDecomposition::setHash
https://bugs.webkit.org/show_bug.cgi?id=214561
Reviewed by Anders Carlsson.
- html/URLDecomposition.cpp:
(WebCore::URLDecomposition::setHash): No need to cast to StringView since we
already have a StringView. Also don't need a local variable.
- 12:52 PM Changeset in webkit [264610] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] MediaSampleAVFObjC::createImageSample depends on function argument evaluation order
https://bugs.webkit.org/show_bug.cgi?id=214560
Reviewed by Anders Carlsson.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::deallocateVectorBuffer): Renamed from releaseUint8Vector.
(WebCore::MediaSampleAVFObjC::createImageSample): Rearranged code so that we don't call both
data() and releaseBuffer() on the same vector in the same function call; that isn't safe because
the order of argument evaluation is not guaranteed, and so data() could be called after the
buffer is released. Also added code to deallocate the buffer if CVPixelBufferCreateWithBytes
fails. The old code would have leaked it in that case. Also made some style tweaks to use
adoptCF more consistently to handle reference counting, and slightly optimized a loop to
only get the array count once.
- 12:47 PM Changeset in webkit [264609] by
-
- 33 edits in trunk
[ iOS macOS ] http/tests/resourceLoadStatistics/grandfathering-database.html is a rare flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=213553
<rdar://problem/64696432>
Reviewed by Darin Adler.
Tools:
Registering to receive an ITP statistics processing callback should be
synchronous, otherwise processing could happen before ITP has
registered that it should be reported to the test runner.
To avoid this mistake in the future, this patch removes the
async version of this call from TestInvocation.cpp, because it should
never be used.
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::installStatisticsDidModifyDataRecordsCallback):
Update this function to look like
installStatisticsDidScanDataRecordsCallback. It is simpler to let ITP
know to send the callback response when installing the callback
instead of requiring a separate function call.
(WTR::TestRunner::installStatisticsDidScanDataRecordsCallback):
Register for a callback synchronously.
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
Remove setStatisticsNotifyPagesWhenDataRecordsWereScanned from the idl
file so it does not accidentally get called in a layout test in the
future.
LayoutTests:
Remove unnecessary calls to register for a statistics processing
callback, now that it is done synchronously as a part of the installing function.
- http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html:
- http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html:
- http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html:
- http/tests/resourceLoadStatistics/count-third-party-script-loads.html:
- http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database.html:
- http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html:
- http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html:
- http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html:
- http/tests/resourceLoadStatistics/many-inserts-only-insert-once.html:
- http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database.html:
- http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown.html:
- http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database.html:
- http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html:
The testing contents should be part of the callback for setEnableFeature
to ensure setup finishes before the test is run.
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html:
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html:
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:
- http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
- http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html:
- http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-database.html:
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads.html:
- http/tests/resourceLoadStatistics/resources/util.js:
(setEnableFeature):
This call is unnecessary as the parameters are cleared in
WKWebsiteDataStoreStatisticsResetToConsistentState.
- 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:
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html:
- platform/ios-wk2/TestExpectations:
- 12:32 PM Changeset in webkit [264608] by
-
- 2 edits in trunk/Tools
Adding James Darpinian to contributors.
- Scripts/webkitpy/common/config/contributors.json:
- 11:30 AM Changeset in webkit [264607] by
-
- 10 edits2 adds1 delete in trunk
[GStreamer] Add support for canvas captureStream, tests failing since they were added in r213598
https://bugs.webkit.org/show_bug.cgi?id=169811
Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Darin Adler.
Source/WebCore:
Hook captureStream support in GStreamer ports. The only missing bits were:
- create a MediaSample from a BGRA buffer
- convert a MediaSample to a RGBA buffer (used only for layout tests)
- set video width and height tags not only on video capture tracks (tracks created from captureStream are not GStreamer capture device tracks)
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: Refactor createImageSample to
use unsigned for dimensions.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::createImageSample):
(WebCore::MediaSampleGStreamer::getRGBAImageData const):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(mediaStreamTrackPrivateGetTags):
LayoutTests:
Unflag passing tests and rebaseline one platform-specific WPT test expectation which differs
from the default by only one line.
- platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Added.
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Removed.
- platform/wpe/TestExpectations:
- 11:28 AM Changeset in webkit [264606] by
-
- 4 edits in trunk
Fix buggy assert in h265_vps_sps_pps_tracker.cc
https://bugs.webkit.org/show_bug.cgi?id=214545
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
- Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 11:12 AM Changeset in webkit [264605] by
-
- 2 edits in trunk/Tools
[webkitpy] Build with arm64e when on Apple Internal
https://bugs.webkit.org/show_bug.cgi?id=214553
<rdar://problem/65745597>
Reviewed by Tim Horton.
- Scripts/webkitpy/port/mac.py:
(MacPort._build_driver_flags): Use arm64e instead of arm64 for Internal builds.
- 9:58 AM Changeset in webkit [264604] by
-
- 6 edits in trunk
GenerateCertificateAsync should be called on signaling thread
https://bugs.webkit.org/show_bug.cgi?id=214447
Reviewed by Geoffrey Garen.
Source/WebCore:
As per debug assert, GenerateCertificateAsync is expected to be called in the signaling thread.
Covered by unskipped test.
- Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
(WebCore::LibWebRTCCertificateGenerator::generateCertificate):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::prepareCertificateGenerator):
We can pass generator to a background thread as it is allocated once and does not get freed.
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 9:26 AM Changeset in webkit [264603] by
-
- 5 edits in trunk/Tools
Add lock icon to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=214438
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-20
Reviewed by Darin Adler.
- MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
- MiniBrowser/mac/BrowserWindow.xib:
- MiniBrowser/mac/BrowserWindowController.h:
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController showCertificate:]):
(-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]):
(-[WK2BrowserWindowController updateLockButtonIcon:]):
- 8:17 AM Changeset in webkit [264602] by
-
- 4 edits in trunk/Source/WebKit
WebPageProxyIdentifier parameter of WebPageProxy::CreateNewPage() should not be Optional
<https://webkit.org/b/214542>
<rdar://problem/65768644>
Reviewed by Darin Adler.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::createNewPage):
- UIProcess/WebPageProxy.messages.in:
- Remove Optional<> wrapper for WebPageProxyIdentifier parameter since the value is used unconditionally.
- 7:24 AM Changeset in webkit [264601] by
-
- 10 edits1 add1 delete in trunk
Unreviewed, reverting r264596.
https://bugs.webkit.org/show_bug.cgi?id=214551
hits Debug asserts
Reverted changeset:
"[GStreamer] Add support for canvas captureStream, tests
failing since they were added in r213598"
https://bugs.webkit.org/show_bug.cgi?id=169811
https://trac.webkit.org/changeset/264596
- 7:13 AM Changeset in webkit [264600] by
-
- 16 edits in trunk/Source/WebCore
Make AnyStepHandling an enum class
https://bugs.webkit.org/show_bug.cgi?id=214423
Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.
Make AnyStepHandling an enum class since this is more readable
and allows us to have less includes in header files.
- html/BaseDateAndTimeInputType.cpp:
- html/DateInputType.cpp:
- html/DateTimeLocalInputType.cpp:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
- html/HTMLInputElement.h:
- html/InputType.cpp:
(WebCore::InputType::rangeUnderflow const):
(WebCore::InputType::rangeOverflow const):
(WebCore::InputType::minimum const):
(WebCore::InputType::maximum const):
(WebCore::InputType::isInRange const):
(WebCore::InputType::isOutOfRange const):
(WebCore::InputType::stepMismatch const):
(WebCore::InputType::validationMessage const):
(WebCore::InputType::getAllowedValueStep const):
(WebCore::InputType::stepUp):
(WebCore::InputType::stepUpFromRenderer):
- html/InputType.h:
- html/MonthInputType.cpp:
- html/NumberInputType.cpp:
- html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
(WebCore::RangeInputType::fallbackValue const):
(WebCore::RangeInputType::sanitizeValue const):
- html/StepRange.cpp:
(WebCore::StepRange::parseStep):
- html/StepRange.h:
- html/TimeInputType.cpp:
- html/WeekInputType.cpp:
- html/shadow/SliderThumbElement.cpp:
(WebCore::sliderPosition):
(WebCore::SliderThumbElement::setPositionFromPoint):
- 6:51 AM Changeset in webkit [264599] by
-
- 9 edits in trunk
LayoutTests/imported/w3c:
Setting URL.hash to '#' should preserve '#'
https://bugs.webkit.org/show_bug.cgi?id=214318
Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.
Update improved test expectation.
- web-platform-tests/url/url-setters-expected.txt:
Source/WebCore:
Setting URL.hash to '#' should set empty fragment
https://bugs.webkit.org/show_bug.cgi?id=214318
Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.
Setting URL.hash to '#' should set empty fragment
identifier [1], unlike setting it to the empty string
which drops the fragment identifier.
Behavior matches Chrome and Firefox.
[1] https://html.spec.whatwg.org/#dom-hyperlink-hash
Test: imported/w3c/web-platform-tests/url/url-setters.html
- html/URLDecomposition.cpp:
(WebCore::URLDecomposition::setHash):
LayoutTests:
Setting URL.hash to '#' should preserve '#'
https://bugs.webkit.org/show_bug.cgi?id=214318
Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.
Update test expectations to new behavior.
- fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
- fast/dom/DOMURL/set-href-attribute-hash.html:
- fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt:
- fast/dom/HTMLAnchorElement/set-href-attribute-hash.html:
- 6:41 AM Changeset in webkit [264598] by
-
- 3 edits in trunk/Source/WebKit
Some classes have final destructors but are non-final
https://bugs.webkit.org/show_bug.cgi?id=214549
Reviewed by Youenn Fablet.
No new tests needed.
- NetworkProcess/ServiceWorker/WebSWServerConnection.h: Mark WebSWServerConnection
class as final.
- WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: Ditto.
- 6:37 AM Changeset in webkit [264597] by
-
- 3 edits2 deletes in trunk/Tools
[Flatpak SDK] Update to FDO 19.08.12 release
https://bugs.webkit.org/show_bug.cgi?id=214184
Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Žan Doberšek.
Bump to the latest 19.08 release, which ships GCC 9.3.0. Hence we can remove the
corresponding downstream patch. And the Bluez patch which was left around but not longer
applied in the FDO junction. Also integrate a non-related WPEBackend-FDO git master ref bump.
- buildstream/elements/freedesktop-sdk.bst:
- buildstream/patches/fdo-0001-Update-gcc-to-9.3.0.patch: Removed.
- buildstream/patches/fdo/0003-Add-Bluez.patch: Removed.
- buildstream/elements/sdk/wpebackend-fdo.bst:
- 5:37 AM Changeset in webkit [264596] by
-
- 10 edits2 adds1 delete in trunk
[GStreamer] Add support for canvas captureStream, tests failing since they were added in r213598
https://bugs.webkit.org/show_bug.cgi?id=169811
Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Darin Adler.
Source/WebCore:
Hook captureStream support in GStreamer ports. The only missing bits were:
- create a MediaSample from a BGRA buffer
- convert a MediaSample to a RGBA buffer (used only for layout tests)
- set video width and height tags not only on video capture tracks (tracks created from captureStream are not GStreamer capture device tracks)
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: Refactor createImageSample to
use unsigned for dimensions.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::createImageSample):
(WebCore::MediaSampleGStreamer::getRGBAImageData const):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(mediaStreamTrackPrivateGetTags):
LayoutTests:
Unflag passing tests and rebaseline one platform-specific WPT test expectation which differs
from the default by only one line.
- platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Added.
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Removed.
- platform/wpe/TestExpectations:
- 3:26 AM Changeset in webkit [264595] by
-
- 5 edits in trunk
[GStreamer] ImageDecoder hits more Debug ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=214191
Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Process decoded video samples from the decoder parent thread, in order to guarantee the
underlying RefPtrs stored in the ImageDecoderGStreamerSample keep a consistent owning
runloop.
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):
(WebCore::ImageDecoderGStreamer::setHasEOS):
(WebCore::ImageDecoderGStreamer::notifySample):
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::pushEncodedData):
- platform/graphics/gstreamer/ImageDecoderGStreamer.h:
LayoutTests:
- platform/glib/TestExpectations: Unflag no-longer-crashing tests.
- 2:40 AM Changeset in webkit [264594] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GTK gardening
- platform/gtk/TestExpectations: Unflag now-stable webrtc tests, no longer flaky since r263836.
- 1:37 AM Changeset in webkit [264593] by
-
- 3 edits in trunk/Source/WebCore
Use forward template declarations for ColorComponents instead of including ColorComponents.h
https://bugs.webkit.org/show_bug.cgi?id=214540
Reviewed by Darin Adler.
- platform/graphics/ColorMatrix.h:
- platform/graphics/ColorTypes.h:
- 1:24 AM Changeset in webkit [264592] by
-
- 2 edits in trunk/Source/WebKit
valgrind claims uninitialized memory when opening inspector (WebKit::InspectorBrowserAgent::enable(WTF::String&))
https://bugs.webkit.org/show_bug.cgi?id=209468
Reviewed by Michael Catanzaro.
Initialize m_targetAgent.
- UIProcess/Inspector/WebPageInspectorController.h: