Timeline
Mar 16, 2020:
- 10:27 PM Changeset in webkit [258541] by
-
- 6 edits in trunk
Remove the zero-delay ScrollingCoordinatorMac commit timer
https://bugs.webkit.org/show_bug.cgi?id=209164
Reviewed by Zalan Bujtas.
Source/WebCore:
The scrolling tree on macOS should just commit at rendering update time. There's no need
for a separate zero-delay timer.
Tested by existing tests.
- page/scrolling/mac/ScrollingCoordinatorMac.h:
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::pageDestroyed):
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorMac::commitTreeState): Deleted.
LayoutTests:
Dumping layers just made this test flakey. It's enough to test for scroll events on the overflow.
- tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-expected.txt:
- tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
- 10:22 PM Changeset in webkit [258540] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] JSMapIterator and JSSetIterator are CellType
https://bugs.webkit.org/show_bug.cgi?id=209168
<rdar://problem/59705631>
Reviewed by Saam Barati.
They are JSCell, not JSObject since they are not used as a user-observable set/map iterators in JSC.
However, their JSType is ObjectType. They should use CellType instead.
- runtime/JSMapIterator.h:
- runtime/JSSetIterator.h:
- 10:09 PM Changeset in webkit [258539] by
-
- 5 edits in trunk/Source
Add a bit more UIHitTesting logging, and make it possible to dump EventRegions from WebKit
https://bugs.webkit.org/show_bug.cgi?id=209058
Reviewed by Antti Koivisto.
Source/WebCore:
Export operator<<(TextStream&, const EventRegion&) so it can be used from Webkit.
- rendering/EventRegion.h:
Source/WebKit:
Add a UIHitTesting log.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
- 9:44 PM Changeset in webkit [258538] by
-
- 2 edits in trunk/Source/WebCore
Remove a 'using namespace WebCore' in MediaSessionManagerCocoa
https://bugs.webkit.org/show_bug.cgi?id=209162
Reviewed by Simon Fraser.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
Unified source cleanliness. Not currently causing any trouble, but
it did when I changed something locally!
- 7:30 PM WebKitGTK/2.28.x edited by
- (diff)
- 6:32 PM Changeset in webkit [258537] by
-
- 3 edits in trunk/LayoutTests
WPE and GTK gardening.
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 6:01 PM Changeset in webkit [258536] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION(r257380): Web Inspector: deleting node causes TreeOutline to lose focus
https://bugs.webkit.org/show_bug.cgi?id=208364
<rdar://problem/59871772>
Reviewed by Devin Rousso.
Maintain keyboard focus within TreeOutline when selection changes.
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype.select):
- 5:32 PM Changeset in webkit [258535] by
-
- 1 copy in tags/Safari-610.1.7.4
Tag Safari-610.1.7.4.
- 5:31 PM Changeset in webkit [258534] by
-
- 8 edits in branches/safari-610.1.7-branch/Source
Versioning.
- 5:30 PM Changeset in webkit [258533] by
-
- 2 edits in trunk/Source/WebCore/PAL
Build fix.
- pal/spi/cocoa/AVFoundationSPI.h:
r258314 was missing a nullability annotation.
- 5:14 PM Changeset in webkit [258532] by
-
- 3 edits2 adds in trunk
A change event gets dispatched when textarea gets changed without focus
https://bugs.webkit.org/show_bug.cgi?id=202144
Patch by ChangSeok Oh <ChangSeok Oh> on 2020-03-16
Reviewed by Ryosuke Niwa.
Source/WebCore:
A crash happens in WebCore::ValidationMessage::buildBubbleTree. An immediate reason
is that DOM tree is modified in buildBubbleTree triggered by a timer.
The function calls document.updateLayout() that causes a change event
for textarea to fire when something changed in the textarea.
This bug is not reproduced on Mac because buildBubbleTree is not called.
See ValidationMessage::setMessage.
On the other hand, the root cause of this issue is triggering the change event
for textarea even if it is not focused when a change is made. This behavior
is different to what Gecko and Chromium do. When loading the test, they do not
trigger the change event although the textarea is filled by the script
since the textarea is not focused. Only when we manually make a change (meaning
the textarea is focused by user input), the event gets dispatched. To fix it,
setChangedSinceLastFormControlChangeEvent(true) is moved below the focus check
in HTMLTextAreaElement::subtreeHasChanged();
Test: fast/forms/textfield-onchange-without-focus.html
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::subtreeHasChanged):
LayoutTests:
The test should be identical to the extected result without crash.
- fast/forms/textfield-onchange-without-focus-expected.html: Added.
- fast/forms/textfield-onchange-without-focus.html: Added.
- 5:12 PM Changeset in webkit [258531] by
-
- 13 edits1 add in trunk
JavaScript identifier grammar supports unescaped astral symbols, but JSC doesn’t
https://bugs.webkit.org/show_bug.cgi?id=208998
Reviewed by Michael Saboff.
JSTests:
- stress/unicode-identifiers-with-surrogate-pairs.js: Added.
(let.c.of.chars.eval.foo):
(throwsSyntaxError):
(let.c.of.continueChars.throwsSyntaxError.foo):
Source/JavaScriptCore:
This patch fixes a bug in the parser that allows for surrogate pairs when parsing identifiers.
It also makes a few other changes to the parser:
1) When looking for keywords we just need to check that subsequent
character cannot be a identifier part or an escape start.
2) The only time we call parseIdentifierSlowCase is when we hit an
escape start or a surrogate pair so we can optimize that to just
copy everything up slow character into our buffer.
3) We shouldn't allow for asking if a UChar is an identifier start/part.
- KeywordLookupGenerator.py:
(Trie.printSubTreeAsC):
(Trie.printAsC):
- parser/Lexer.cpp:
(JSC::isNonLatin1IdentStart):
(JSC::isIdentStart):
(JSC::isSingleCharacterIdentStart):
(JSC::cannotBeIdentStart):
(JSC::isIdentPart):
(JSC::isSingleCharacterIdentPart):
(JSC::cannotBeIdentPartOrEscapeStart):
(JSC::Lexer<LChar>::currentCodePoint const):
(JSC::Lexer<UChar>::currentCodePoint const):
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
(JSC::Lexer<T>::scanRegExp):
(JSC::isIdentPartIncludingEscapeTemplate): Deleted.
(JSC::isIdentPartIncludingEscape): Deleted.
- parser/Lexer.h:
(JSC::Lexer::setOffsetFromSourcePtr): Deleted.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::printUnexpectedTokenText):
- parser/ParserTokens.h:
Source/WTF:
- wtf/text/WTFString.cpp:
(WTF::String::fromCodePoint):
- wtf/text/WTFString.h:
LayoutTests:
Fix broken test that asserted a non-ID_START codepoint was a start codepoint and
an ID_START codepoint was not a valid codepoint...
- js/script-tests/unicode-escape-sequences.js:
- js/unicode-escape-sequences-expected.txt:
- 5:03 PM Changeset in webkit [258530] by
-
- 2 edits in trunk/Source/WebKit
Crash under WebCookieCache::clearForHost()
https://bugs.webkit.org/show_bug.cgi?id=209149
<rdar://problem/60453086>
Reviewed by Darin Adler.
Alternative fix for Bug 209149 based on comments from Darin.
- WebProcess/WebPage/WebCookieCache.cpp:
(WebKit::WebCookieCache::clearForHost):
(WebKit::WebCookieCache::pruneCacheIfNecessary):
- 4:56 PM Changeset in webkit [258529] by
-
- 2 edits in trunk/Source/WebKit
Fix the macCatalyst build after r258525
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions):
- 4:34 PM Changeset in webkit [258528] by
-
- 6 edits in trunk/Source/WebCore
Update touch event regions once per frame
https://bugs.webkit.org/show_bug.cgi?id=209153
Reviewed by Zalan Bujtas.
Call document->updateTouchEventRegions() once at the end of Page::updateRendering() instead
of relying on a timer.
Also rename the functions called from Internal to make it clear they are testing-only.
Page::scrollingStateTreeAsText() needs to eagerly update event regions because they are input
to the scrolling tree.
- dom/Document.cpp:
(WebCore::Document::Document):
- page/Page.cpp:
(WebCore::Page::scrollingStateTreeAsText):
(WebCore::Page::touchEventRectsForEventForTesting):
(WebCore::Page::passiveTouchEventListenerRectsForTesting):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::touchEventRectsForEvent): Deleted.
(WebCore::Page::passiveTouchEventListenerRects): Deleted.
- page/Page.h:
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):
- testing/Internals.cpp:
(WebCore::Internals::touchEventRectsForEvent):
(WebCore::Internals::passiveTouchEventListenerRects):
- 4:16 PM Changeset in webkit [258527] by
-
- 2 edits in trunk/Tools
Add personal email to Tools/Scripts/webkitpy/common/config/contributors.json
https://bugs.webkit.org/show_bug.cgi?id=209151
Reviewed by Yusuke Suzuki.
- Scripts/webkitpy/common/config/contributors.json:
- 4:12 PM Changeset in webkit [258526] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209154
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 4:02 PM Changeset in webkit [258525] by
-
- 45 edits1 delete in trunk/Source
Move most of TextIterator off of live ranges
https://bugs.webkit.org/show_bug.cgi?id=209129
Reviewed by Antti Koivisto.
Source/WebCore:
- Change almost all arguments and return values of functions in TextIterator.h to use SimpleRange instead of live ranges. Exceptions are an overload of plainText TextIterator::rangeLength, TextIterator::rangeFromLocationAndLength, TextIterator::getLocationAndLengthFromRange, and TextIterator::subrange. Those five are a little trickier to convert, so I will do them each in separate patches.
- Go with the flow in adding an include of Node.h to BoundaryPoint.h. I had avoided this in the initial version, but now it seems practical to just leave it that way. This led to removing BoundaryPoint.cpp and moving all functions to the header.
- Converted many member functions of the Position class from using int to unsigned for offsets. The DOM specifies unsigned for offsets, but for some reason we used int for them a lot historically, even though negative numbers don't make sense. New classes like StaticRange, SimpleRange, and BoundaryPoint are already using unsigned exclusively and we'll eventually convert everything.
- Remove includes of SimpleRange.h from files that also include TextIterator.h, now that TextIterator.h pulls it in.
- Sources.txt: Removed BoundaryPoint.cpp.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange): Updated to pass a reference
to a range rather than a pointer, after null-checking it.
(WebCore::AXObjectCache::lengthForRange): Ditto.
(WebCore::AXObjectCache::nextBoundary): Ditto.
(WebCore::AXObjectCache::previousBoundary): Ditto.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::stringForRange const): Ditto.
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Ditto.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange const): Ditto.
- accessibility/AccessibilityObjectInterface.h: Removed an extra include.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Updated to pass a reference to a range rather than a pointer, after null-checking it.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]): Ditto.
- dom/BoundaryPoint.cpp: Removed.
- dom/BoundaryPoint.h: Removed redundant includes and forward declarations
since we're now committing to including "Node.h" here. Moved functions
all out of the .cpp file and made them inlines.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::collectTextRanges): Pass a reference to
a range instead of a pointer.
- dom/Position.cpp:
(WebCore::Position::Position): Take unsigned.
(WebCore::Position::moveToPosition): Ditto.
(WebCore::Position::moveToOffset): Ditto.
(WebCore::Position::parentAnchoredEquivalent const): Cast to unsigned.
(WebCore::Position::anchorTypeForLegacyEditingPosition): Take unsigned.
(WebCore::Position::previous const): Use unsigned.
(WebCore::Position::next const): Ditto.
(WebCore::Position::uncheckedPreviousOffset): Take unsigned.
(WebCore::Position::uncheckedPreviousOffsetForBackwardDeletion): Ditto.
(WebCore::Position::uncheckedNextOffset): Ditto.
(WebCore::Position::atLastEditingPositionForNode const): Cast to unsigned.
(WebCore::Position::atEndOfTree const): Ditto.
(WebCore::Position::rendersInDifferentPosition const): Added casts to
unsigned and also removed unneeded redundant checks. In a place where
we had already checked that both nodes were the same and both offsets
were different, we were checking the types of both nodes (but they are
the same so only need to check one) and we were checking that both
offsets were different (but we already knew they were different).
(WebCore::searchAheadForBetterMatch): Use unsigned.
(WebCore::Position::getInlineBoxAndOffset const): Ditto.
(WebCore::Position::equals const): Removed a cast to int.
(WebCore::makeBoundaryPoint): Moved this function here so now it can be
used in more places.
- dom/Position.h: Changed many argument types to unsigned. Moved declarations
of all the functions up above all the inline implementations of the functions
to separate interface from implementation a bit better. Wrote a FIXME about
the name createLegacyEditingPosition. Moved makeBoundaryPoint here and exported
it from WebCore so we can use it from more places.
- dom/Range.cpp:
(WebCore::createLiveRange): Moved these functions here from SimpleRange.cpp
because a live range is more advanced concept, so makes more sense for live
range to know about simple range rather than vice versa.
- dom/Range.h: Removed some unneeded includes and forward declarations.
Added a FIXME about renaming to LiveRange. Moved the createLiveRange
functions here. Moved declarations of functions above inline function bodies.
- dom/SimpleRange.cpp:
(WebCore::createLiveRange): Moved to Range.cpp.
- dom/SimpleRange.h: Exported the constructor. Removed unneeded overload
that takes a Range*.
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
Refactored code a bit and use unsigned.
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical): Use unsigned.
- editing/Editing.cpp:
(WebCore::visibleImageElementsInRangeWithNonLoadedImages): Use a reference
to a range rather than a pointer.
- editing/Editing.h: Added a forward declaration of Range that now seems to
be needed to compile.
- editing/Editor.cpp:
(WebCore::Editor::selectedText const): Call makeBoundaryPoint twice here to
convert two Position objects into a SimpleRange.
- editing/HTMLInterchange.cpp: Removed some extra includes.
(WebCore::convertHTMLTextToInterchangeFormat): Use variadic
StringBuilder::append.
- editing/TextIterator.cpp:
(WebCore::firstNode): Added. We use this instead of Range::firstNode.
If we find we need it outside TextIterator we can find a header for it.
Not sure it would be great to add it to in BoundaryPoint.h, nor is it
obviously better as a BoundaryPoint member function.
(WebCore::TextIterator::TextIterator): Cut down on the extra constructors
and have the single remaining one take a SimpleRange.
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
Ditto. Also change some int to unsigned.
(WebCore::CharacterIterator::CharacterIterator): Ditto.
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Ditto.
(WebCore::WordAwareIterator::WordAwareIterator): Ditto.
(WebCore::TextIterator::rangeLength): Since this is one of the functions
that still takes a live range pointer, updated it to check for null and
pass a reference rather than a pointer.
(WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
(WebCore::hasAnyPlainText): Removed now-unneeded call to createLiveRange.
(WebCore::plainText): Updated the main implementation to take a SimpleRange,
eliminating the version that takes two Position objects, but keeping the
one that takes a live range pointer for now.
(WebCore::plainTextReplacingNoBreakSpace): Removed all but the one, and
have that one take a SimpleRange.
- editing/TextIterator.h: Removed the include of SimpleRange.h. Also
Updated for the changes above, eliminating five different constructors
that take a live range and also overloads that take two Position objects.
- editing/TextManipulationController.cpp:
(WebCore::ParagraphContentIterator::ParagraphContentIterator):
Call makeBoundaryPoint twice here to convert two Position objects into
a SimpleRange.
- editing/VisibleSelection.cpp: Removed an include.
- editing/VisibleUnits.cpp:
(WebCore::suffixLengthForRange): Pass a reference to a range known to
not be null.
(WebCore::previousBoundary): Ditto.
(WebCore::nextBoundary): Ditto.
- editing/cocoa/DataDetection.mm:
(WebCore::buildQuery): Take a SimpleRange.
(WebCore::DataDetection::detectContentInRange): Added a null check on
a live range and pass a reference to it.
- editing/cocoa/DictionaryLookup.mm:
(WebCOre::DictionaryLookup::rangeAtHitTestResult): Ditto.
- editing/cocoa/HTMLConverter.mm:
(WebCore::editingAttributedStringFromRange): Pass a reference to a range
known to not be null.
- page/TextIndicator.cpp:
(WebCore::estimatedTextColorsForRange): Ditto.
(WebCore::containsOnlyWhiteSpaceText): Ditto.
- page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot const): Ditto.
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::selectedText const): Added a null check on
a live range and pass a reference to it.
Source/WebKit:
- WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
(-[WKDOMTextIterator initWithRange:]): Leave _textIterator as a nullptr
if the passed-in range is nil since we no longer offer a way to create
an empty TextIterator; other clients don't seem to need one.
(-[WKDOMTextIterator advance]): Add a null check.
(-[WKDOMTextIterator atEnd]): Ditto.
(-[WKDOMTextIterator currentRange]): Ditto.
(-[WKDOMTextIterator currentTextPointer]): Ditto.
(-[WKDOMTextIterator currentTextLength]): Ditto.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: Removed include.
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales): Pass
a reference to a range known not to be null.
- WebProcess/WebPage/WebPage.cpp: Removed an include.
- WebProcess/WebPage/ios/WebPageIOS.mm: Removed a "using naemsapce WebCore".
Added two local functions
(WebKit::plainTextForContext): Added. Helper for just this file where calling
plainTextReplacingNoBreakSpace on a possibly null Range is common.
(WebKit::plainTextForDisplay): Ditto. This one passes true for isDisplayString.
Not entirely clear how carefully we chose which of the two to call, or if there
is sufficient test coverage.
(WebKit::WebPage::platformEditorState const): Use plainTextForContext
and plainTextForDisplay.
(WebKit::WebPage::getSelectionContext): Ditto.
(WebKit::WebPage::getRectsAtSelectionOffsetWithText): Use plainTextForDisplay.
(WebKit::WebPage::requestDictationContext): Use plainTextForContext.
(WebKit::WebPage::replaceSelectedText): Ditto.
(WebKit::WebPage::replaceDictatedText): Ditto.
(WebKit::WebPage::requestAutocorrectionData): Ditto.
(WebKit::WebPage::applyAutocorrectionInternal): Ditto.
(WebKit::WebPage::autocorrectionContext): Ditto.
(WebKit::dataDetectorLinkPositionInformation): Use plainTextForDisplay.
(WebKit::WebPage::requestDocumentEditingContext): Use RetainPtr instead of
autorelease. Use makeBoundaryPoint to convert Position objects to SimpleRange.
Source/WebKitLegacy/mac:
- WebView/WebFrame.mm: Removed an include.
- WebView/WebHTMLView.mm:
(-[WebHTMLView _legacyAttributedStringFrom:offset:to:offset:]):
Add casts to unsigned.
- WebView/WebTextIterator.mm:
(-[WebTextIterator initWithRange:]): Leave _private->_textIterator
as a nullptr if the passed-in range is nil since we no longer offer
a way to create an empty TextIterator; other clients don't seem to
need one.
(-[WebTextIterator advance]): Check _private->_textIterator for null.
(-[WebTextIterator atEnd]): Ditto.
(-[WebTextIterator currentRange]): Ditto.
(-[WebTextIterator currentTextPointer]): Ditto.
(-[WebTextIterator currentTextLength]): Ditto.
(-[WebTextIterator currentNode]): Ditto.
(-[WebTextIterator currentText]): Ditto.
- 3:49 PM Changeset in webkit [258524] by
-
- 1 delete in branches/safari-610.1.7.3-branch
Delete branch.
- 3:41 PM Changeset in webkit [258523] by
-
- 1 copy in branches/safari-610.1.7.3-branch
New branch.
- 3:10 PM Changeset in webkit [258522] by
-
- 3 edits2 adds in trunk
Crash in CSSValue::isPrimitiveValue
https://bugs.webkit.org/show_bug.cgi?id=208309
Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-03-16
Reviewed by Ryosuke Niwa.
Source/WebCore:
Added a NULL check before dereferencing value in ApplyStyleCommand::computedFontSize
Test: editing/execCommand/primitive-value.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::computedFontSize):
LayoutTests:
Added a testcase attached to bugzilla issue 208309, with little modification.
- editing/execCommand/primitive-value-expected.txt: Added.
- editing/execCommand/primitive-value.html: Added.
- 3:04 PM Changeset in webkit [258521] by
-
- 4 edits in trunk
Crash under WebCookieCache::clearForHost()
https://bugs.webkit.org/show_bug.cgi?id=209149
<rdar://problem/60453086>
Reviewed by Alex Christensen.
Source/WebKit:
Make sure WebCookieCache::pruneCacheIfNecessary() keeps alive the host String it is passing
to WebCookieCache::clearForHost(). Previously, it was merely deferencing a HashSet iterator
and passing that to clearForHost(). However, clearForHost() would then drop the String from
the HashSet and the host would no longer be valid.
Change covered by new API test.
- WebProcess/WebPage/WebCookieCache.cpp:
(WebKit::WebCookieCache::pruneCacheIfNecessary):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm:
(TEST):
- 2:50 PM Changeset in webkit [258520] by
-
- 8 edits3 deletes in trunk
Remove support for WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=208894
<rdar://problem/60297590>
Reviewed by Brent Fulgham.
This project provided support for facilities that are now handled
elsewhere and is no longer needed.
.:
- .gitignore:
- Source/PlatformWin.cmake:
- Source/cmake/OptionsAppleWin.cmake:
Tools:
- Scripts/copy-webkitlibraries-to-product-directory:
WebKitLibraries:
- Makefile:
- WebKitSystemInterface.h: Removed.
- win/include/WebKitSystemInterface/WebKitSystemInterface.h: Removed.
- win/lib32/WebKitSystemInterface.lib: Removed.
- 2:41 PM Changeset in webkit [258519] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Always include System.framework in WebKitLegacy's CPLUSPLUSFLAGS
https://bugs.webkit.org/show_bug.cgi?id=209147
Reviewed by Darin Adler.
- Configurations/Base.xcconfig:
- Configurations/WebKitLegacy.xcconfig:
Bring WebKitLegacy's xcconfigs in line with all the other projects,
adding System.framework globally, and in Base.xcconfig.
- 2:11 PM Changeset in webkit [258518] by
-
- 8 edits in trunk
[macOS] Accessibility sandbox regressions
https://bugs.webkit.org/show_bug.cgi?id=209065
Source/WebCore/PAL:
Reviewed by Brent Fulgham.
Add Accessibility notification name.
- pal/spi/cocoa/NSAccessibilitySPI.h:
Source/WebKit:
<rdar://problem/60202450>
Reviewed by Brent Fulgham.
When Accessibility is enabled, the WebContent process needs access to the preference service, since Accessibility
is relying on some advanced features of the service. Also, when CF prefs direct mode is enabled, the WebContent
sandbox needs to explicitly allow reading of the various plist files.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
- WebProcess/com.apple.WebProcess.sb.in:
Tools:
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm:
(TEST):
- TestWebKitAPI/Tests/WebKit/GrantAccessToPreferencesService.mm:
(TEST):
- 1:54 PM Changeset in webkit [258517] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] imported/w3c/web-platform-tests/mediacapture-streams/MediaStream tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209148
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:21 PM Changeset in webkit [258516] by
-
- 3 edits2 adds in trunk
Color Picker crashes on touch
https://bugs.webkit.org/show_bug.cgi?id=209086
Reviewed by Darin Adler.
Source/WebCore:
Vector sizing lost in refactor. Not perfomance sensitive code, so just expanding vector as needed.
Test: fast/forms/color/color-input-activate-crash.html
- html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestedColors const):
LayoutTests:
- fast/forms/color/color-input-activate-crash-expected.txt: Added.
- fast/forms/color/color-input-activate-crash.html: Added.
- 1:11 PM Changeset in webkit [258515] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Crash under -[WKPreferenceObserver init]
https://bugs.webkit.org/show_bug.cgi?id=209145
Reviewed by Darin Adler.
Handle the case when calling [NSUserDefaults initWithSuiteName:] did not succeed.
No new tests, since I have not been able to reproduce.
- UIProcess/Cocoa/PreferenceObserver.mm:
(-[WKPreferenceObserver init]):
- 12:57 PM Changeset in webkit [258514] by
-
- 3 edits in trunk/LayoutTests
IndexedDB hits assertion with crypto/workers/subtle/aes-indexeddb.html
https://bugs.webkit.org/show_bug.cgi?id=202648
<rdar://problem/56059602>
Unreviewed test gardening.
- TestExpectations:
- platform/ios-simulator/TestExpectations:
- 12:56 PM Changeset in webkit [258513] by
-
- 5 edits in trunk/Source/WebKit
Remove unused IPC messages from DrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=209090
<rdar://problem/60333300>
Reviewed by Wenson Hsieh.
Do not compile the following three unused messages in DrawingAreaProxy when
building for a Cocoa platform target.
DrawingAreaProxy::Update
DrawingAreaProxy::DidUpdateBackingStoreState
DrawingAreaProxy::ExitAcceleratedCompositingMode
- UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxy::update):
(WebKit::DrawingAreaProxy::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxy::exitAcceleratedCompositingMode):
- UIProcess/DrawingAreaProxy.messages.in:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::exitAcceleratedCompositingMode): Deleted.
- 12:50 PM Changeset in webkit [258512] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Only set CF prefs direct mode for the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=209091
<rdar://problem/60337842>
Reviewed by Brent Fulgham.
Currently, we enable CF prefs direct mode in XPCServiceMain. This is incorrect, it should only be enabled
for the WebContent process.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceMain):
- 11:49 AM Changeset in webkit [258511] by
-
- 8 edits in trunk/Source
Remove FrameView::scheduleRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=209109
Reviewed by Antti Koivisto.
FrameView::scheduleRenderingUpdate() called through to compositor(), but that just
turned around to call scheduleRenderingUpdate() via Page. So Remove it and change
callers to call Page::scheduleRenderingUpdate() directly.
Source/WebCore:
- page/FrameView.cpp:
(WebCore::FrameView::setViewExposedRect):
(WebCore::FrameView::scheduleRenderingUpdate): Deleted.
- page/FrameView.h:
- page/Page.cpp:
(WebCore::Page::scheduleRenderingUpdate):
- page/Page.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::scheduleRenderingUpdate):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
- 11:42 AM Changeset in webkit [258510] by
-
- 3 edits in trunk/Source/WebCore
Commit Xcode-modified xcfilelist.
New WebXR idl files.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- 11:42 AM Changeset in webkit [258509] by
-
- 3 edits in trunk/Source/WebCore
Factor some post-updateRendering code into its own function
https://bugs.webkit.org/show_bug.cgi?id=209108
Reviewed by Antti Koivisto.
Make a new function to hold code that needs to do post update-rendering work.
It asserts that the layout is clean at the end.
- page/Page.cpp:
(WebCore::Page::updateRendering):
(WebCore::Page::doAfterUpdateRendering):
- page/Page.h:
- 10:34 AM Changeset in webkit [258508] by
-
- 27 edits2 adds in trunk
ASSERTION FAILURE: !result.innerNode() (request.resultIsElementList() && result.listBasedTestResult().size()) in RenderLayer::hitTestContents() https://bugs.webkit.org/show_bug.cgi?id=209112
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update test result now that more sub-tests are passing.
- web-platform-tests/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint-expected.txt:
Source/WebCore:
Fix rect-based hit testing (e.g. used in the impl of document.elementsFromPoint()) of ::before
and ::after pseudo elements. Same issue as in r133330, updateHitTestResult() and addNodeToRectBasedTestResult()
are using different "hit" nodes. In particular, RenderObject::updateHitTestResult() knows how to
reason about ::before and ::after pseudo elements, but addNodeToRectBasedTestResult() cannot.
Standardize the concept of the node used for hit testing from something-specifically added to RenderBlock
in r133330 to all renderers. Have both updateHitTestResult() and addNodeToRectBasedTestResult()
make use of this concept so that they consider the same hit node.
Test: fast/dom/nodesFromRect/pseudo-empty-svg-image-crash.html
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hitTest):
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::nodeAtPoint):
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::nodeAtPoint):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::nodeAtPoint):
Update code to call nodeForHitTest() to keep the code behavior we have today. Note that RenderElement::element()
and RenderText::textNode() just cast the return value of RenderObject::node().
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeForHitTest const): Remove special case for RenderView now that I added RenderView::nodeForHitTest().
Moreover, this special case was returning the document even though RenderView::updateHitTestResult() hit
test the document element. See remarks for RenderView::nodeForHitTest() for more details.
- rendering/RenderBlock.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::nodeAtPoint): Use nodeForHitTest(). This fixes the bug. Currently, updateHitTestResult()
knows that when RenderObject::node() is nullptr and the parent renderer is for generated content that it can
walk up the hierarchy to find the hit PseudoElement. But in the call to addNodeToListBasedTestResult(), RenderObject::element()
was passed, which is nullptr for an anonymous node, and addNodeToListBasedTestResult() doesn't have enough info
to know that this means generated content was hit and hence it is not able to find the PseudoElement. This
disagreement caused the assertion failure because updateHitTestResult() would update the inner node, but
addNodeToListBasedTestResult() would not add a node to the set.
- rendering/RenderInline.cpp:
(WebCore::RenderInline::hitTestCulledInline): Use nodeForHitTest().
(WebCore::RenderInline::updateHitTestResult): Update code as needed to use nodeForHitTest(). Also while I
am here fix up code style of comment and rename the local from element to node to match the return value
of nodeForHitTest().
- rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::nodeForHitTest const): Added.
(WebCore::RenderMultiColumnSet::updateHitTestResult): Update code as needed to use nodeForHitTest().
- rendering/RenderMultiColumnSet.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::nodeForHitTest const): Added.
(WebCore::RenderObject::updateHitTestResult): Update code as needed to use nodeForHitTest().
- rendering/RenderObject.h:
- rendering/RenderTable.cpp:
(WebCore::RenderTable::nodeAtPoint): Ditto.
- rendering/RenderView.cpp:
(WebCore::RenderView::nodeForHitTest const): Added. This overrides RenderBlock::nodeForHitTest(), which
following r155370 was returning the document as the hit test node even though RenderView::updateHitTestResult()
considered the document element as the hit node for a RenderView. As a result of this change, the rect-based
hit testing no longer returns the document (seen in test results as #document) in the list of nodes.
(WebCore::RenderView::updateHitTestResult): Update code as needed to use nodeForHitTest().
- rendering/RenderView.h:
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::hitTestFlow): Ditto.
- rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtFloatPoint): Ditto.
- rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtFloatPoint): Ditto.
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::nodeAtFloatPoint): Ditto.
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::nodeAtPoint): Ditto.
LayoutTests:
Add a new test for an pseudo element.
Also update tests now that I added the RenderView::nodeForHitTest(), which returns the
same hit test node (the document element) as used in RenderView::updateHitTestResult().
Currently RenderView::nodeForHitTest() would actually fall back to RenderBlock::nodeForHitTest(),
which returned the document (seen in the test resutls as #document).
- fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html: Update test to match new results.
- fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html: Ditto.
- fast/dom/nodesFromRect/pseudo-empty-svg-image-crash-expected.txt: Added.
- fast/dom/nodesFromRect/pseudo-empty-svg-image-crash.html: Added.
- 10:24 AM Changeset in webkit [258507] by
-
- 3 edits in trunk/Source/WebKit
WebPage::GetDataSelectionForPasteboard should validate its
sizevariable
<https://webkit.org/b/209092>
<rdar://problem/60181345>
Reviewed by Brent Fulgham.
- Platform/IPC/Connection.h:
(MESSAGE_CHECK_WITH_RETURN_VALUE_BASE): Add.
- Variant of MESSAGE_CHECK_BASE() that takes a return value.
- UIProcess/mac/WebPageProxyMac.mm:
(MESSAGE_CHECK_WITH_RETURN_VALUE): Add.
(WebKit::WebPageProxy::dataSelectionForPasteboard):
- Use new MESSAGE_CHECK_WITH_RETURN_VALUE() macro to update
check for handle.isNull() and to add check for
sizevariable. - Add static_cast<size_t>() to
sizevariable to denote type change.
- 9:51 AM Changeset in webkit [258506] by
-
- 3 edits in trunk/Source/WebCore
Make CoreAudioCaptureSourceFactoryIOS an AudioSession::InterruptionObserver
https://bugs.webkit.org/show_bug.cgi?id=209138
Reviewed by Eric Carlson.
Instead of listening to Audiosession interruptions, CoreAudioCaptureSourceFactoryIOS is now relying on AudioSession directly.
This allows removing some duplicate code.
No change of behavior.
- platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
- platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
(-[WebCoreAudioCaptureSourceIOSListener initWithCallback:]):
(WebCore::CoreAudioCaptureSourceFactoryIOS::CoreAudioCaptureSourceFactoryIOS):
(WebCore::CoreAudioCaptureSourceFactoryIOS::~CoreAudioCaptureSourceFactoryIOS):
(-[WebCoreAudioCaptureSourceIOSListener handleInterruption:]): Deleted.
- 9:44 AM Changeset in webkit [258505] by
-
- 2 edits in trunk/Tools
Unreviewed infrastructure fix.
- BuildSlaveSupport/ews-build/config.json: Temporarily remove ews114
while the hardware is out for repair.
- 9:41 AM Changeset in webkit [258504] by
-
- 14 edits2 adds in trunk
Apply rotation at source level if WebRTC sink ask so
https://bugs.webkit.org/show_bug.cgi?id=205645
Reviewed by Eric Carlson.
Source/WebCore:
Add a virtual method to RealtimeMediaSource to pass the information that the sink prefers the frames to be rotated before sending them.
Source/WebKit:
Implement RealtimeMediaSource setShouldApplyRotation by sending IPC to capture process.
In capture process, if rotation should be applied, use an ImageRotationSessionVT session to apply it before sending the video frame.
This allows WebProcess to no longer need an ImageRotationSessionVT for WebRTC.
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::setShouldApplyRotation):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::rotatePixelBuffer):
(WebKit::UserMediaCaptureManagerProxy::setShouldApplyRotation):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::setShouldApplyRotation):
LayoutTests:
- webrtc/video-rotation-no-cvo-expected.txt: Added.
- webrtc/video-rotation-no-cvo.html: Added.
- 9:36 AM Changeset in webkit [258503] by
-
- 4 edits2 adds in trunk
Audio is not played from an audio element when the srcObject object has unstarted video tracks
https://bugs.webkit.org/show_bug.cgi?id=207041
<rdar://problem/59084745>
Reviewed by Eric Carlson.
Source/WebCore:
In case MediaPlayer is an audio element, we should just make it as if there is no video track in the stream.
Test: imported/w3c/web-platform-tests/webrtc/audio-video-element-playing.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeVideoTrack const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::didPassCORSAccessCheck const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
LayoutTests:
- webrtc/audio-video-element-playing-expected.txt: Added.
- webrtc/audio-video-element-playing.html: Added.
- 9:34 AM Changeset in webkit [258502] by
-
- 3 edits2 adds in trunk
RTCRtpSender of kind video should have a null dtmf attribute
https://bugs.webkit.org/show_bug.cgi?id=209135
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCRtpSender.https-expected.txt: Added.
- web-platform-tests/webrtc/RTCRtpSender.https.html: Added.
Source/WebCore:
Test: imported/w3c/web-platform-tests/webrtc/RTCRtpSender.https.html
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::dtmf):
- 9:22 AM Changeset in webkit [258501] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] (r258249) fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html is a flaky failure (209052)
https://bugs.webkit.org/show_bug.cgi?id=209052
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:14 AM Changeset in webkit [258500] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=209139
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:09 AM Changeset in webkit [258499] by
-
- 4 edits113 adds in trunk/LayoutTests
[WebXR] Import wpt tests
https://bugs.webkit.org/show_bug.cgi?id=208989
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- web-platform-tests/webxr/META.yml: Added.
- web-platform-tests/webxr/ar-module/idlharness.https.window.html: Added.
- web-platform-tests/webxr/ar-module/idlharness.https.window.js: Added.
(async idl_array):
- web-platform-tests/webxr/ar-module/w3c-import.log: Added.
- web-platform-tests/webxr/ar-module/xrDevice_isSessionSupported_immersive-ar.https.html: Added.
- web-platform-tests/webxr/ar-module/xrDevice_requestSession_immersive-ar.https.html: Added.
- web-platform-tests/webxr/ar-module/xrSession_environmentBlendMode.https.html: Added.
- web-platform-tests/webxr/dom-overlay/ar_dom_overlay.https.html: Added.
- web-platform-tests/webxr/dom-overlay/w3c-import.log: Added.
- web-platform-tests/webxr/events_input_source_recreation.https.html: Added.
- web-platform-tests/webxr/events_input_sources_change.https.html: Added.
- web-platform-tests/webxr/events_referenceSpace_reset_immersive.https.html: Added.
- web-platform-tests/webxr/events_referenceSpace_reset_inline.https.html: Added.
- web-platform-tests/webxr/events_session_select.https.html: Added.
- web-platform-tests/webxr/events_session_select_subframe.https.html: Added.
- web-platform-tests/webxr/events_session_squeeze.https.html: Added.
- web-platform-tests/webxr/exclusive_requestFrame_nolayer.https.html: Added.
- web-platform-tests/webxr/gamepads-module/idlharness.https.window.html: Added.
- web-platform-tests/webxr/gamepads-module/idlharness.https.window.js: Added.
(async idl_array):
- web-platform-tests/webxr/gamepads-module/w3c-import.log: Added.
- web-platform-tests/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html: Added.
- web-platform-tests/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html: Added.
- web-platform-tests/webxr/getInputPose_handedness.https.html: Added.
- web-platform-tests/webxr/getInputPose_pointer.https.html: Added.
- web-platform-tests/webxr/getViewerPose_emulatedPosition.https.html: Added.
- web-platform-tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html: Added.
- web-platform-tests/webxr/hit-test/ar_hittest_subscription_states.https.html: Added.
- web-platform-tests/webxr/hit-test/w3c-import.log: Added.
- web-platform-tests/webxr/hit-test/xrRay_constructor.https.html: Added.
- web-platform-tests/webxr/hit-test/xrRay_matrix.https.html: Added.
- web-platform-tests/webxr/idlharness.https.window.html: Added.
- web-platform-tests/webxr/idlharness.https.window.js: Added.
(async idl_array):
- web-platform-tests/webxr/navigator_xr_sameObject.https.html: Added.
- web-platform-tests/webxr/render_state_vertical_fov_immersive.https.html: Added.
- web-platform-tests/webxr/render_state_vertical_fov_inline.https.html: Added.
- web-platform-tests/webxr/resources/w3c-import.log: Added.
- web-platform-tests/webxr/resources/webxr_check.html: Added.
- web-platform-tests/webxr/resources/webxr_math_utils.js: Added.
(let.transform_point_by_matrix):
(let.normalize_quaternion):
(let.conjugate_quaternion):
(let.multiply_quaternions):
(let.normalize_perspective):
(let.transform_point_by_quaternion):
- web-platform-tests/webxr/resources/webxr_test_asserts.js: Added.
(const.assert_point_approx_equals):
(const.assert_point_significantly_not_equals):
(const.assert_transform_approx_equals):
(const.assert_matrix_approx_equals):
(const.assert_matrix_significantly_not_equals):
(const.assert_ray_approx_equals):
- web-platform-tests/webxr/resources/webxr_test_constants.js: Added.
- web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js: Added.
(createFakeWorld):
- web-platform-tests/webxr/resources/webxr_util.js: Added.
(xr_promise_test):
(async let):
(async xr_session_promise_test):
(async promise_simulate_user_activation):
- web-platform-tests/webxr/w3c-import.log: Added.
- web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https.html: Added.
- web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https.html: Added.
- web-platform-tests/webxr/webxr-supported-by-feature-policy.html: Added.
- web-platform-tests/webxr/webxr_availability.http.sub.html: Added.
- web-platform-tests/webxr/webxr_feature_policy.https.html: Added.
- web-platform-tests/webxr/webxr_feature_policy.https.html.headers: Added.
- web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html: Added.
- web-platform-tests/webxr/xrDevice_disconnect_ends.https.html: Added.
- web-platform-tests/webxr/xrDevice_isSessionSupported_immersive.https.html: Added.
- web-platform-tests/webxr/xrDevice_isSessionSupported_immersive_unsupported.https.html: Added.
- web-platform-tests/webxr/xrDevice_isSessionSupported_inline.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_immersive_no_gesture.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_immersive_unsupported.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_no_mode.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html: Added.
- web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html: Added.
- web-platform-tests/webxr/xrFrame_getPose.https.html: Added.
- web-platform-tests/webxr/xrFrame_getViewerPose_getPose.https.html: Added.
- web-platform-tests/webxr/xrFrame_lifetime.https.html: Added.
- web-platform-tests/webxr/xrFrame_session_sameObject.https.html: Added.
- web-platform-tests/webxr/xrInputSource_add_remove.https.html: Added.
- web-platform-tests/webxr/xrInputSource_emulatedPosition.https.html: Added.
- web-platform-tests/webxr/xrInputSource_profiles.https.html: Added.
- web-platform-tests/webxr/xrInputSource_sameObject.https.html: Added.
- web-platform-tests/webxr/xrPose_transform_sameObject.https.html: Added.
- web-platform-tests/webxr/xrReferenceSpace_originOffset.https.html: Added.
- web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html: Added.
- web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https.html: Added.
- web-platform-tests/webxr/xrRigidTransform_constructor.https.html: Added.
- web-platform-tests/webxr/xrRigidTransform_inverse.https.html: Added.
- web-platform-tests/webxr/xrRigidTransform_matrix.https.html: Added.
- web-platform-tests/webxr/xrRigidTransform_sameObject.https.html: Added.
- web-platform-tests/webxr/xrSession_cancelAnimationFrame.https.html: Added.
- web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html: Added.
- web-platform-tests/webxr/xrSession_end.https.html: Added.
- web-platform-tests/webxr/xrSession_features_deviceSupport.https.html: Added.
- web-platform-tests/webxr/xrSession_input_events_end.https.html: Added.
- web-platform-tests/webxr/xrSession_prevent_multiple_exclusive.https.html: Added.
- web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html: Added.
- web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https.html: Added.
- web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html: Added.
- web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html: Added.
- web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html: Added.
- web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html: Added.
- web-platform-tests/webxr/xrSession_sameObject.https.html: Added.
- web-platform-tests/webxr/xrSession_viewer_availability.https.html: Added.
- web-platform-tests/webxr/xrSession_viewer_referenceSpace.https.html: Added.
- web-platform-tests/webxr/xrSession_visibilityState.https.html: Added.
- web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html: Added.
- web-platform-tests/webxr/xrView_eyes.https.html: Added.
- web-platform-tests/webxr/xrView_match.https.html: Added.
- web-platform-tests/webxr/xrView_oneframeupdate.https.html: Added.
- web-platform-tests/webxr/xrView_sameObject.https.html: Added.
- web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html: Added.
- web-platform-tests/webxr/xrViewport_valid.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_constructor.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_framebuffer_draw.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_framebuffer_scale.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https.html: Added.
- web-platform-tests/webxr/xrWebGLLayer_viewports.https.html: Added.
LayoutTests:
- TestExpectations: Mark all of them as skipped.
- 8:49 AM Changeset in webkit [258498] by
-
- 35 edits89 adds in trunk
[WebXR] IDLs, stubs and build configuration for WPE
https://bugs.webkit.org/show_bug.cgi?id=208702
Reviewed by Dean Jackson.
.:
Added a new compile flag for WEBXR which depends on WEBGL.
For the WPE port, added OpenXR detection and USE_OPENXR define to be
used in the sources. It also adds a dependency between USE_OPENXR and
ENABLE_WEBXR.
Largely based on previous work by Žan Doberšek.
- Source/cmake/FindOpenXR.cmake: Added.
- Source/cmake/OptionsWPE.cmake: Added mandatory OpenXR dependency if
WEBXR is enabled exposing USE_OPENXR to the build.
- Source/cmake/WebKitFeatures.cmake: Added ENABLE_WEBXR.
- Source/cmake/tools/vsprops/FeatureDefines.props: Ditto.
- Source/cmake/tools/vsprops/FeatureDefinesCairo.props: Ditto.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default.
Source/WebCore:
Added the IDLs defined by the spec with very basic empty implementations to get them
built. Apart from that a very basic implementation of the required platform code using
OpenXR API was also added.
No new tests as no new functionality was really added (empty implementations). However
follow up patches will import the already available WPT tests for WebXR.
Largely based on previous work by Žan Doberšek.
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default.
- DerivedSources.make:
- Modules/webxr/NavigatorWebXR.cpp: Added.
(WebCore::NavigatorWebXR::xr):
(WebCore::NavigatorWebXR::from):
- Modules/webxr/NavigatorWebXR.h: Added.
- Modules/webxr/NavigatorWebXR.idl: Added.
- Modules/webxr/WebXRBoundedReferenceSpace.cpp: Added.
(WebCore::WebXRBoundedReferenceSpace::boundsGeometry const):
- Modules/webxr/WebXRBoundedReferenceSpace.h: Added.
- Modules/webxr/WebXRBoundedReferenceSpace.idl: Added.
- Modules/webxr/WebXRFrame.cpp: Added.
(WebCore::WebXRFrame::create):
(WebCore::WebXRFrame::WebXRFrame):
(WebCore::WebXRFrame::session const):
(WebCore::WebXRFrame::getViewerPose):
(WebCore::WebXRFrame::getPose):
- Modules/webxr/WebXRFrame.h: Added.
- Modules/webxr/WebXRFrame.idl: Added.
- Modules/webxr/WebXRInputSource.cpp: Added.
(WebCore::WebXRInputSource::create):
(WebCore::WebXRInputSource::WebXRInputSource):
(WebCore::WebXRInputSource::handedness const):
(WebCore::WebXRInputSource::targetRayMode const):
(WebCore::WebXRInputSource::targetRaySpace const):
(WebCore::WebXRInputSource::gripSpace const):
(WebCore::WebXRInputSource::profiles const):
- Modules/webxr/WebXRInputSource.h: Added.
- Modules/webxr/WebXRInputSource.idl: Added.
- Modules/webxr/WebXRInputSourceArray.cpp: Added.
(WebCore::WebXRInputSourceArray::length const):
(WebCore::WebXRInputSourceArray::item const):
- Modules/webxr/WebXRInputSourceArray.h: Added.
- Modules/webxr/WebXRInputSourceArray.idl: Added.
- Modules/webxr/WebXRPose.cpp: Added.
(WebCore::WebXRPose::create):
(WebCore::WebXRPose::WebXRPose):
(WebCore::WebXRPose::transform const):
(WebCore::WebXRPose::emulatedPosition const):
- Modules/webxr/WebXRPose.h: Added.
- Modules/webxr/WebXRPose.idl: Added.
- Modules/webxr/WebXRReferenceSpace.cpp: Added.
(WebCore::WebXRReferenceSpace::WebXRReferenceSpace):
(WebCore::WebXRReferenceSpace::getOffsetReferenceSpace):
- Modules/webxr/WebXRReferenceSpace.h: Added.
- Modules/webxr/WebXRReferenceSpace.idl: Added.
- Modules/webxr/WebXRRenderState.cpp: Added.
(WebCore::WebXRRenderState::create):
(WebCore::WebXRRenderState::WebXRRenderState):
(WebCore::WebXRRenderState::depthNear const):
(WebCore::WebXRRenderState::depthFar const):
(WebCore::WebXRRenderState::inlineVerticalFieldOfView const):
(WebCore::WebXRRenderState::baseLayer const):
- Modules/webxr/WebXRRenderState.h: Added.
- Modules/webxr/WebXRRenderState.idl: Added.
- Modules/webxr/WebXRRigidTransform.cpp: Added.
(WebCore::WebXRRigidTransform::create):
(WebCore::WebXRRigidTransform::WebXRRigidTransform):
(WebCore::WebXRRigidTransform::position const):
(WebCore::WebXRRigidTransform::orientation const):
(WebCore::WebXRRigidTransform::matrix const):
(WebCore::WebXRRigidTransform::inverse const):
- Modules/webxr/WebXRRigidTransform.h: Added.
- Modules/webxr/WebXRRigidTransform.idl: Added.
- Modules/webxr/WebXRSession.cpp: Added.
(WebCore::WebXRSession::environmentBlendMode const):
(WebCore::WebXRSession::visibilityState const):
(WebCore::WebXRSession::renderState const):
(WebCore::WebXRSession::inputSources const):
(WebCore::WebXRSession::updateRenderState):
(WebCore::WebXRSession::requestReferenceSpace):
(WebCore::WebXRSession::requestAnimationFrame):
(WebCore::WebXRSession::cancelAnimationFrame):
(WebCore::WebXRSession::end):
(WebCore::WebXRSession::activeDOMObjectName const):
(WebCore::WebXRSession::stop):
- Modules/webxr/WebXRSession.h: Added.
- Modules/webxr/WebXRSession.idl: Added.
- Modules/webxr/WebXRSpace.cpp: Added.
(WebCore::WebXRSpace::WebXRSpace):
- Modules/webxr/WebXRSpace.h: Added.
- Modules/webxr/WebXRSpace.idl: Added.
- Modules/webxr/WebXRSystem.cpp: Added.
(WebCore::WebXRSystem::create):
(WebCore::WebXRSystem::WebXRSystem):
(WebCore::WebXRSystem::isSessionSupported):
(WebCore::WebXRSystem::requestSession):
(WebCore::WebXRSystem::activeDOMObjectName const):
(WebCore::WebXRSystem::stop):
- Modules/webxr/WebXRSystem.h: Added.
- Modules/webxr/WebXRSystem.idl: Added.
- Modules/webxr/WebXRView.cpp: Added.
(WebCore::WebXRView::create):
(WebCore::WebXRView::WebXRView):
(WebCore::WebXRView::eye const):
(WebCore::WebXRView::projectionMatrix const):
(WebCore::WebXRView::transform const):
- Modules/webxr/WebXRView.h: Added.
- Modules/webxr/WebXRView.idl: Added.
- Modules/webxr/WebXRViewerPose.cpp: Added.
(WebCore::WebXRViewerPose::create):
(WebCore::WebXRViewerPose::views const):
- Modules/webxr/WebXRViewerPose.h: Added.
- Modules/webxr/WebXRViewerPose.idl: Added.
- Modules/webxr/WebXRViewport.cpp: Added.
(WebCore::WebXRViewport::create):
(WebCore::WebXRViewport::x const):
(WebCore::WebXRViewport::y const):
(WebCore::WebXRViewport::width const):
(WebCore::WebXRViewport::height const):
- Modules/webxr/WebXRViewport.h: Added.
- Modules/webxr/WebXRViewport.idl: Added.
- Modules/webxr/WebXRWebGLLayer.cpp: Added.
(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::WebXRWebGLLayer::antialias const):
(WebCore::WebXRWebGLLayer::ignoreDepthValues const):
(WebCore::WebXRWebGLLayer::framebuffer const):
(WebCore::WebXRWebGLLayer::framebufferWidth const):
(WebCore::WebXRWebGLLayer::framebufferHeight const):
(WebCore::WebXRWebGLLayer::getViewport):
(WebCore::WebXRWebGLLayer::getNativeFramebufferScaleFactor):
- Modules/webxr/WebXRWebGLLayer.h: Added.
- Modules/webxr/WebXRWebGLLayer.idl: Added.
- Modules/webxr/XREnvironmentBlendMode.h: Added.
- Modules/webxr/XREnvironmentBlendMode.idl: Added.
- Modules/webxr/XREye.h: Added.
- Modules/webxr/XREye.idl: Added.
- Modules/webxr/XRFrameRequestCallback.h: Added.
- Modules/webxr/XRFrameRequestCallback.idl: Added.
- Modules/webxr/XRHandedness.h: Added.
- Modules/webxr/XRHandedness.idl: Added.
- Modules/webxr/XRInputSourceEvent.cpp: Added.
(WebCore::XRInputSourceEvent::create):
(WebCore::XRInputSourceEvent::XRInputSourceEvent):
(WebCore::XRInputSourceEvent::frame const):
(WebCore::XRInputSourceEvent::inputSource const):
(WebCore::XRInputSourceEvent::buttonIndex const):
- Modules/webxr/XRInputSourceEvent.h: Added.
- Modules/webxr/XRInputSourceEvent.idl: Added.
- Modules/webxr/XRInputSourcesChangeEvent.cpp: Added.
(WebCore::XRInputSourcesChangeEvent::create):
(WebCore::XRInputSourcesChangeEvent::XRInputSourcesChangeEvent):
(WebCore::XRInputSourcesChangeEvent::session const):
(WebCore::XRInputSourcesChangeEvent::added const):
(WebCore::XRInputSourcesChangeEvent::removed const):
- Modules/webxr/XRInputSourcesChangeEvent.h: Added.
- Modules/webxr/XRInputSourcesChangeEvent.idl: Added.
- Modules/webxr/XRReferenceSpaceEvent.cpp: Added.
(WebCore::XRReferenceSpaceEvent::create):
(WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent):
(WebCore::XRReferenceSpaceEvent::referenceSpace const):
(WebCore::XRReferenceSpaceEvent::transform const):
- Modules/webxr/XRReferenceSpaceEvent.h: Added.
- Modules/webxr/XRReferenceSpaceEvent.idl: Added.
- Modules/webxr/XRReferenceSpaceType.h: Added.
- Modules/webxr/XRReferenceSpaceType.idl: Added.
- Modules/webxr/XRRenderStateInit.h: Added.
- Modules/webxr/XRRenderStateInit.idl: Added.
- Modules/webxr/XRSessionEvent.cpp: Added.
(WebCore::XRSessionEvent::create):
(WebCore::XRSessionEvent::XRSessionEvent):
(WebCore::XRSessionEvent::session const):
- Modules/webxr/XRSessionEvent.h: Added.
- Modules/webxr/XRSessionEvent.idl: Added.
- Modules/webxr/XRSessionInit.h: Added.
- Modules/webxr/XRSessionInit.idl: Added.
- Modules/webxr/XRSessionMode.h: Added.
- Modules/webxr/XRSessionMode.idl: Added.
- Modules/webxr/XRTargetRayMode.h: Added.
- Modules/webxr/XRTargetRayMode.idl: Added.
- Modules/webxr/XRVisibilityState.h: Added.
- Modules/webxr/XRVisibilityState.idl: Added.
- Modules/webxr/XRWebGLLayerInit.h: Added.
- Modules/webxr/XRWebGLLayerInit.idl: Added.
- PlatformWPE.cmake: Added OpenXR libraries and include paths.
- Sources.txt: Added new cpp files.
- WebCore.xcodeproj/project.pbxproj: Added new files.
- bindings/IDLTypes.h: Added SequenceStorageType.
- bindings/js/JSDOMConvertSequences.h:
- bindings/js/WebCoreBuiltinNames.h:
- dom/EventNames.h:
- dom/EventNames.in: Added WebXR events.
- dom/EventTargetFactory.in: Added WebXR event targets.
- page/RuntimeEnabledFeatures.h: Added new runtime feature for WebXR.
(WebCore::RuntimeEnabledFeatures::setWebXREnabled):
(WebCore::RuntimeEnabledFeatures::webXREnabled const):
- platform/xr/PlatformXR.cpp: Added.
- platform/xr/PlatformXR.h: Added.
- platform/xr/openxr/PlatformXR.cpp: Added.
(PlatformXR::createStructure): Utility function to create OpenXR structs.
(PlatformXR::resultToString): Translates OpenXR error codes to strings.
(PlatformXR::Instance::Impl::Impl):
(PlatformXR::Instance::Impl::~Impl):
(PlatformXR::Instance::singleton):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default.
Source/WebKit:
Added WebXR to the list of experimental features.
- Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default.
- Shared/WebPreferences.yaml: Added WebXR feature.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultWebXREnabled): Set WebXR to off by default unless HAVE_SYSTEM_FEATURE_FLAGS.
- Shared/WebPreferencesDefaultValues.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default.
Tools:
- Scripts/webkitperl/FeatureList.pm: Added WebXR.
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR, off by default.
- 8:27 AM Changeset in webkit [258497] by
-
- 2 edits in trunk/Source/WebCore
[Cairo] Path copy constructor and operator must also copy over CTM
https://bugs.webkit.org/show_bug.cgi?id=183327
Patch by Zan Dobersek <zdobersek@igalia.com> on 2020-03-16
Reviewed by Carlos Garcia Campos.
Cairo implementations of Path copy constructor and assignment operator
must also copy over the current transformation matrix that's maintained
on the source path's cairo_t context.
cairo_copy_path() copies the current path off of a Cairo context, but
during that also transforms every point on the path through inverse of
the CTM, back into user coordinates. For copying to be done correctly,
the copied path must be transformed through the CTM when it's appended
to the target Cairo context. For that reason the CTM has to be copied
over from source to target context before the path is copied and
appended.
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::Path):
(WebCore::Path::operator=):
- 8:26 AM Changeset in webkit [258496] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add telemetry for message filtering
https://bugs.webkit.org/show_bug.cgi?id=208925
<rdar://problem/58885485>
Reviewed by Darin Adler.
On iOS, add telemetry for message filtering in the WebContent process' sandbox.
No new tests, no behavior change.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 8:19 AM Changeset in webkit [258495] by
-
- 4 edits in trunk
[Cocoa] Limit set of classes that can be decoded when a preference has changed
https://bugs.webkit.org/show_bug.cgi?id=208012
Reviewed by Brent Fulgham.
Source/WebKit:
As a hardening measure, limit the set of ObjectiveC classes that can be decoded in the WebContent process
as a result of a preference change.
API tests: WebKit.PreferenceChangesDictionary
WebKit.PreferenceChangesData
WebKit.PreferenceChangesDate
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::notifyPreferencesChanged):
Tools:
- TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:
(TEST):
- 6:15 AM Changeset in webkit [258494] by
-
- 11 edits3 adds in trunk
Unique origins should not be Potentially Trustworthy
https://bugs.webkit.org/show_bug.cgi?id=209049
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt:
Source/WebCore:
Unique origins should not be considered trustworthy as per https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy.
Test: http/tests/security/iframe-unique-origin.https.html
- dom/Document.cpp:
(WebCore::Document::isSecureContext const):
Removed check for top level origins as we make all unique origins not trusted.
- page/SecurityOrigin.cpp:
Source/WebKit:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::hasNavigatedAwayFromAppBoundDomain):
We should only check this for the main frame since this is tied to the page.
Tools:
- TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
(TestWebKitAPI::TEST_F):
LayoutTests:
- editing/async-clipboard/resources/sanitize-when-reading-markup-iframe.html: Added.
- editing/async-clipboard/sanitize-when-reading-markup.html:
Updating test to use HTTP instead of data URL for iFrame since clipboard is SecureContext.
- http/tests/security/iframe-unique-origin.https-expected.txt: Added.
- http/tests/security/iframe-unique-origin.https.html: Added.
- 6:15 AM Changeset in webkit [258493] by
-
- 14 edits in trunk
Remove the use of empty WebRTC sources for receiver tracks
https://bugs.webkit.org/show_bug.cgi?id=209061
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnection-track-stats.https-expected.txt:
Source/WebCore:
We no longer need to create receivers with empty sources since we now always have a libwebrtc receiver from which we can get the track.
We remove that code path.
This sldo allows using the right track parameters from the start, like track id.
Covered by existing and rebased tests.
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addPendingTrackEvent):
(WebCore::LibWebRTCMediaEndpoint::collectTransceivers):
(WebCore::LibWebRTCMediaEndpoint::newTransceiver):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::createReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiverFromTrackOrKind):
(WebCore::LibWebRTCPeerConnectionBackend::newRemoteTransceiver):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
- Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:
(WebCore::LibWebRTCRtpReceiverBackend::createSource):
- Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
- platform/mediastream/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource):
- platform/mediastream/RealtimeIncomingAudioSource.h:
- platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
- platform/mediastream/RealtimeIncomingVideoSource.h:
- testing/MockLibWebRTCPeerConnection.h:
(WebCore::MockMediaStreamTrack::state const):
(WebCore::MockRtpReceiver::SetObserver):
- 5:41 AM Changeset in webkit [258492] by
-
- 13 edits in trunk
[Cairo][SVG] marker-mid isn't shown on a joint of rectilinearly connected line-to path segments
https://bugs.webkit.org/show_bug.cgi?id=113849
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Marker-mid of svg is not displayed because path elements that added to
cairo backend are optimized. If the new line_to has same slope with
the previous path element, then the path element is joined to previous
path element.
Example:
added path elements : moveto(-5,-2), lineto(0,-2), lineto(5,-2)
cairo_path_data : moveto(-5,-2), lineto(5, -2)
This patch stores all of path informations separately in order to avoid
this problem. When generating positions of markers, we use stored path
informations instead of cairo_path_data.
When a new operation can't be directly stored in an ElementPath, we fallback to use cairo_path_data() in
Path::apply().
- platform/graphics/Path.h: Add new constructor that receives a cairo context, make ensureCairoPath() private
and add m_elements member.
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::platformPathForGlyph const): Create a cairo context for the path and use the new constructor
that receives a RefPtr<cairo_t>&&.
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::Path): Initialize m_elements to an empty vector when created without a cairo context.
(WebCore::Path::operator=): Also copy m_elements.
(WebCore::Path::clear): Initialize m_elements to an empty vector.
(WebCore::Path::translate): Apply the translate to elements in m_elements.
(WebCore::Path::appendElement): Helper to add an operation to m_elements.
(WebCore::Path::moveToSlowCase): Call appendElement() if m_elements is not nullopt.
(WebCore::Path::addLineToSlowCase): Ditto.
(WebCore::Path::addRect): Ditto.
(WebCore::Path::addQuadCurveToSlowCase): Ditto.
(WebCore::Path::addBezierCurveToSlowCase): Ditto.
(WebCore::Path::addArcSlowCase): Set m_elements to nullopt.
(WebCore::Path::addArcTo): Ditto.
(WebCore::Path::addEllipse): Ditto.
(WebCore::Path::addPath): Ditto.
(WebCore::Path::closeSubpath): Call appendElement() if m_elements is not nullopt.
(WebCore::Path::applySlowCase const): Use elements from m_elements if it's not nullopt, otherwise fallback to
use cairo_path_data.
(WebCore::Path::transform): Apply the transform to elements in m_elements.
LayoutTests:
Remove svg/custom/local-url-reference-marker.html from expectations and rebaseline other tests.
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/svg/import/text-path-01-b-manual-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/import/text-path-02-b-manual-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/painting/marker-008-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
- platform/gtk/svg/text/text-path-01-b-expected.png:
- platform/gtk/svg/text/text-path-01-b-expected.txt:
- platform/wpe/TestExpectations:
- 5:17 AM Changeset in webkit [258491] by
-
- 624 edits2 copies2 adds in trunk/LayoutTests
[Gtk] Update pixel test baseline in svg/ subdirectory
https://bugs.webkit.org/show_bug.cgi?id=209137
Ruber-stamped by Žan Doberšek.
Update pixel test baseline, reflecting the status quo with WebKit ToT.
- platform/gtk/svg: > 600 modifications of the -expected.png files.
- platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-06-f-expected.png: Added.
- platform/gtk/svg/filters/filter-refresh-expected.png: Copied from LayoutTests/platform/gtk/svg/filters/feImage-reference-invalidation-expected.png.
- platform/gtk/svg/hixie/error/015-expected.png: Copied from LayoutTests/platform/gtk/svg/zoom/page/absolute-sized-document-no-scrollbars-expected.png.
- platform/gtk/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-1-expected.png: Added.
- 4:08 AM Changeset in webkit [258490] by
-
- 1 edit27 adds in trunk/LayoutTests
[Gtk] Add missing pixel test results in svg/ subdirectory
https://bugs.webkit.org/show_bug.cgi?id=209136
Reviewed by Žan Doberšek.
Add pixel tests results based on current WebKit ToT.
No Gtk bot is running pixel tests, but it is still helpful to have an
updated pixel test baseline for local development. Many SVG tests
still depend on the pixel test output as only way to catch
regressions. This should be changed in future, but for now we should
at least have an accurate baseline.
- platform/gtk/svg/animations/animate-marker-orienttype-1-expected.png: Added.
- platform/gtk/svg/animations/animate-marker-orienttype-2-expected.png: Added.
- platform/gtk/svg/animations/animate-marker-orienttype-3-expected.png: Added.
- platform/gtk/svg/animations/animate-viewport-overflow-2-expected.png: Added.
- platform/gtk/svg/animations/animate-viewport-overflow-expected.png: Added.
- platform/gtk/svg/animations/avoid-calculating-for-non-animating-elements-expected.png: Added.
- platform/gtk/svg/css/shape-rendering-parsing-expected.png: Added.
- platform/gtk/svg/custom/non-scaling-stroke-markers-expected.png: Added.
- platform/gtk/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.png: Added.
- platform/gtk/svg/custom/use-on-symbol-inside-pattern-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGClipPath-prefixed-influences-hitTesting-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGClipPath-prefixed-path-influences-hitTesting-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGClipPathElement-prefixed-css-transform-influences-hitTesting-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGClipPathElement-prefixed-transform-influences-hitTesting-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.png: Added.
- platform/gtk/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Added.
- platform/gtk/svg/filters/feBlend-all-blendmodes-expected.png: Added.
- platform/gtk/svg/filters/filter-image-ref-root-expected.png: Added.
- platform/gtk/svg/hixie/text/001-expected.png: Added.
- platform/gtk/svg/in-html/overflow-repaint-expected.png: Added.
- platform/gtk/svg/overflow/overflow-scroll-on-outermost-svg-element-expected.png: Added.
- platform/gtk/svg/text/scaled-font-expected.png: Added.
- platform/gtk/svg/text/text-hkern-expected.png: Added.
- platform/gtk/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.png: Added.
- platform/gtk/svg/text/text-vkern-on-horizontal-text-expected.png: Added.
- 2:29 AM Changeset in webkit [258489] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=209105
Unreviewed gardening.
- platform/gtk/TestExpectations:
- 1:11 AM Changeset in webkit [258488] by
-
- 2 edits in trunk/Source/WebCore
Remove addHTTPOriginIfNeeded calls
https://bugs.webkit.org/show_bug.cgi?id=209127
Patch by Rob Buis <rbuis@igalia.com> on 2020-03-16
Reviewed by Darin Adler.
Remove addHTTPOriginIfNeeded calls since they are get requests and navigations and the spec [1]
indicates that the Origin header should not be written out, making these calls no-ops.
[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::loadURL):
- 12:20 AM Changeset in webkit [258487] by
-
- 16 edits in trunk/Source
Simplify ChromeClient.createWindow
https://bugs.webkit.org/show_bug.cgi?id=209123
Patch by Rob Buis <rbuis@igalia.com> on 2020-03-16
Reviewed by Darin Adler.
Source/WebCore:
Simplify ChromeClient.createWindow by removing the FrameLoadRequest parameter.
It was only passed for its ResourceRequest member, which can also be obtained
from the NavigationAction parameter.
- loader/EmptyClients.h:
- loader/FrameLoader.cpp:
(WebCore::createWindow):
- page/Chrome.cpp:
(WebCore::Chrome::createWindow const):
- page/Chrome.h:
- page/ChromeClient.h:
- page/ContextMenuController.cpp:
(WebCore::openNewWindow):
Source/WebKit:
Adapt to API change.
- WebProcess/Inspector/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):
Mar 15, 2020:
- 7:58 PM Changeset in webkit [258486] by
-
- 4 edits in trunk
KeyedDecoderGeneric fails to allocate Vector while decoding broken data
https://bugs.webkit.org/show_bug.cgi?id=207324
Reviewed by Darin Adler.
Source/WebCore:
There were three crash bugs in it.
KeyedDecoderGeneric was trying to allocate a buffer without
ensuring the size wouldn't exceed the decoding data size by using
bufferIsLargeEnoughToContain.
It was trying to push an itme into the top dictionary of emtpy
m_dictionaryStack when EndObject tag would appear without the
preceding BeginObject tag.
It was trying to push an item into the top array of empty
m_arrayStack when EndArray tag would appear without the preceding
BeginArray tag.
Tests: TestWebKitAPI: KeyedCoding.DecodeRandomData
- platform/generic/KeyedDecoderGeneric.cpp:
(WebCore::readString):
(WebCore::KeyedDecoderGeneric::KeyedDecoderGeneric):
Check bufferIsLargeEnoughToContain(size) before allocating a Vector with size.
Check if m_dictionaryStack and m_arrayStack are empty.
Tools:
- TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp:
(TestWebKitAPI::generateRandomData): Added.
(TestWebKitAPI::KeyedCoding.DecodeRandomData): Added a new test decoding random data.
- 7:33 PM Changeset in webkit [258485] by
-
- 4 edits in trunk/LayoutTests
WPE gardening.
Updated a test baseline with new message after changed from
js-test-pre to js-test.
Unreviewed test gardening.
- platform/gtk/TestExpectations: Updated an expectation with new bug
number.
- platform/wpe/TestExpectations:
- platform/wpe/fast/frames/sandboxed-iframe-navigation-allowed-expected.txt:
- 7:08 PM Changeset in webkit [258484] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
[ANGLE] Source/ThirdParty/ANGLE/src/common/utilities.cpp:10: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
https://bugs.webkit.org/show_bug.cgi?id=209014
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-15
Reviewed by Darin Adler.
Silence compiler warning.
- changes.diff:
- src/common/utilities.cpp:
- 6:41 PM Changeset in webkit [258483] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
[ANGLE] Source/ThirdParty/ANGLE/src/libANGLE/Display.h:221:73: warning: implicitly-declared ‘egl::AttributeMap& egl::AttributeMap::operator=(const egl::AttributeMap&)’ is deprecated [-Wdeprecated-copy]
https://bugs.webkit.org/show_bug.cgi?id=209015
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-15
Reviewed by Darin Adler.
Suppress compiler warning. If this were WebKit code, I might take the time to fix it, but
with third-party code it's probably best to just turn off warnings that upstream is not
using.
- CMakeLists.txt:
- 6:17 PM Changeset in webkit [258482] by
-
- 6 edits in trunk/Source/WebCore
[DRT] InternalSettingsGenerated::resetToConsistentState() may override TestOptions::enableBackForwardCache
https://bugs.webkit.org/show_bug.cgi?id=207481
<rdar://problem/59331661>
Reviewed by Darin Adler.
Add a support for a new excludeFromInternalSetting option in Settings.yaml and use it for
'usesBackForwardCache' setting. This means that script will no longer be able to toggle
this particular setting via internals.settings JS API. Tests wanting to turn on the
back / forward cache are supposed to use the following:
<!-- webkit-test-runner [ enableBackForwardCache=true ] -->
Using internals.settings JS API to turn on the back/forward cache would not work well
with WebKit2 because of process-swap-on-navigation. Support for it in WK1 / DRT was
causing flakiness because of a conflict between the 2 ways of enabling the setting.
- Scripts/GenerateSettings.rb:
- Scripts/SettingsTemplates/InternalSettingsGenerated.cpp.erb:
- Scripts/SettingsTemplates/InternalSettingsGenerated.h.erb:
- Scripts/SettingsTemplates/InternalSettingsGenerated.idl.erb:
- page/Settings.yaml:
- 2:28 PM Changeset in webkit [258481] by
-
- 2 edits in trunk/LayoutTests
Regression r258439: quicklook/multi-sheet-numbers-09.html is failing consistently on iOS
https://bugs.webkit.org/show_bug.cgi?id=209128
Partially revert r258439.
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 8:33 AM Changeset in webkit [258480] by
-
- 6 edits2 adds in trunk
[LFC][TFC] Add basic column span support for content box width
https://bugs.webkit.org/show_bug.cgi?id=209120
<rdar://problem/60463424>
Reviewed by Antti Koivisto.
Source/WebCore:
Take the column spanning into account when computing the content width for the table cell.
[content box width = column width(1) + column width(2) + .. + column width(spanning value) + ((spanning value - 1) * horizontal spacing)]
Test: fast/layoutformattingcontext/table-colspan-simple.html
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::positionTableCells):
- layout/tableformatting/TableFormattingContext.h:
- layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
- layout/tableformatting/TableGrid.h:
(WebCore::Layout::TableGrid::CellInfo::startColumn const):
(WebCore::Layout::TableGrid::CellInfo::endColumn const):
(WebCore::Layout::TableGrid::CellInfo::startRow const):
(WebCore::Layout::TableGrid::CellInfo::endRow const):
(WebCore::Layout::TableGrid::CellInfo::columnSpan const):
(WebCore::Layout::TableGrid::CellInfo::rowSpan const):
LayoutTests:
- fast/layoutformattingcontext/table-colspan-simple-expected.html: Added.
- fast/layoutformattingcontext/table-colspan-simple.html: Added.
- 3:51 AM Changeset in webkit [258479] by
-
- 4 edits in trunk/Source/JavaScriptCore
reportZappedCellAndCrash should handle PreciseAllocation in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=209042
Reviewed by Mark Lam.
This patch adds support of PreciseAllocation cells to reportZappedCellAndCrash, since now it is frequently used
as a lower-tier cells in IsoSubspace.
- heap/IsoSubspace.h:
- heap/IsoSubspaceInlines.h:
(JSC::IsoSubspace::forEachLowerTierFreeListedPreciseAllocation):
- runtime/JSCell.cpp:
(JSC::reportZappedCellAndCrash):
- 3:16 AM Changeset in webkit [258478] by
-
- 37 edits2 adds in trunk
Should not use variable-length-array (VLA)
https://bugs.webkit.org/show_bug.cgi?id=209043
Reviewed by Mark Lam.
PerformanceTests:
- MediaTime/Configurations/Base.xcconfig:
Source/bmalloc:
- Configurations/Base.xcconfig:
Source/JavaScriptCore:
This patch disables variable-length-array (VLA). If this feature uses user-input, user can
control the stack height consumed by C++ code. This patch avoids using VLA. To achieve that,
- We set
-Wvlawarning option to trigger warnings if it is used. - Introduce MarkedJSValueRefArray for API. This replaces
JSValueRef arguments[variableLength]use case. MarkedJSValueRefArray registers itself to JSC GC so that GC can mark it as a strong root.
- API/JSContext.mm:
(+[JSContext currentArguments]):
- API/JSValue.mm:
(-[JSValue callWithArguments:]):
(-[JSValue constructWithArguments:]):
(-[JSValue invokeMethod:withArguments:]):
- API/MarkedJSValueRefArray.cpp: Added.
(JSC::MarkedJSValueRefArray::MarkedJSValueRefArray):
(JSC::MarkedJSValueRefArray::~MarkedJSValueRefArray):
(JSC::MarkedJSValueRefArray::visitAggregate):
- API/MarkedJSValueRefArray.h: Added.
- API/tests/minidom.c:
(print):
- API/tests/testapi.cpp:
(TestAPI::markedJSValueArrayAndGC):
(testCAPIViaCpp):
- Configurations/Base.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
(JSC::Heap::addMarkedJSValueRefArray):
- heap/Heap.h:
- heap/MarkedSpace.h:
(JSC::MarkedSpace::activeWeakSetsBegin): Deleted.
(JSC::MarkedSpace::activeWeakSetsEnd): Deleted.
(JSC::MarkedSpace::newActiveWeakSetsBegin): Deleted.
(JSC::MarkedSpace::newActiveWeakSetsEnd): Deleted.
- runtime/ArgList.h:
Source/WebCore:
- Configurations/Base.xcconfig:
- crypto/mac/SerializedCryptoKeyWrapMac.mm:
(WebCore::wrapSerializedCryptoKey):
(WebCore::unwrapSerializedCryptoKey):
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):
- platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
(WebCore::updateDisplayID):
(WebCore::ScreenDisplayCaptureSourceMac::screenCaptureDevices):
Source/WebCore/PAL:
- Configurations/Base.xcconfig:
Source/WebInspectorUI:
- Configurations/Base.xcconfig:
Source/WebKit:
- Configurations/Base.xcconfig:
- UIProcess/_WKTouchEventGenerator.mm:
(-[_WKTouchEventGenerator touchDown:touchCount:]):
(-[_WKTouchEventGenerator liftUp:touchCount:]):
(-[_WKTouchEventGenerator moveToPoints:touchCount:duration:]):
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
Source/WTF:
- Configurations/Base.xcconfig:
- wtf/UUID.cpp:
(WTF::bootSessionUUIDString):
Tools:
- ContentExtensionTester/Configurations/Base.xcconfig:
- lldb/lldbWebKitTester/Configurations/Base.xcconfig: