Timeline
Sep 6, 2021:
- 11:34 PM Changeset in webkit [282073] by
-
- 1 edit2 adds in trunk/LayoutTests
Add layout test for performance of adding children to a shadow host
https://bugs.webkit.org/show_bug.cgi?id=229960
Reviewed by Ryosuke Niwa.
Add test for https://trac.webkit.org/changeset/281813/webkit
- fast/shadow-dom/host-child-append-performance-expected.txt: Added.
- fast/shadow-dom/host-child-append-performance.html: Added.
- 8:26 PM Changeset in webkit [282072] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Integration] Remove redundant NonRootInlineBox
https://bugs.webkit.org/show_bug.cgi?id=229967
Reviewed by Antti Koivisto.
Now that all the inline boxes generate runs, and we use those runs to do painint/hittest, this
helper structure is not needed anymore.
- layout/integration/LayoutIntegrationInlineContent.h:
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayRuns const): Deleted.
- layout/integration/LayoutIntegrationInlineContentBuilder.h:
- layout/integration/LayoutIntegrationLine.h:
(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::layoutBox const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::style const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::lineIndex const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::rect const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::setVerticalPositionIntegral): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::hasScrollableContent const): Deleted.
- 6:54 PM Changeset in webkit [282071] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening of two flaky tests and timeout.
Unreviewed test gardening.
- TestExpectations:
- platform/glib/TestExpectations:
- 6:14 PM Changeset in webkit [282070] by
-
- 2 edits in trunk/LayoutTests
[Gstreamer] Mark tests media/track/in-band/track-in-band-*-added-once.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=229973
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-06
- platform/glib/TestExpectations:
- 5:48 PM Changeset in webkit [282069] by
-
- 22 edits in trunk
Unreviewed, reverting r282058.
https://bugs.webkit.org/show_bug.cgi?id=229978
broken two css layout tests on iOS
Reverted changeset:
"Add a temporarily prefixed property for mask-mode, aliased to
-webkit-mask-source-type"
https://bugs.webkit.org/show_bug.cgi?id=229915
https://commits.webkit.org/r282058
- 5:41 PM Changeset in webkit [282068] by
-
- 4 edits in trunk/Tools
[ews] Invoke transfer-archive-to-s3 with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229972
Reviewed by Alexey Proskuryakov.
- CISupport/ews-build/steps.py:
(TransferToS3): Invoke with python 3.
- CISupport/ews-build/steps_unittest.py: Updated unit-tests.
- CISupport/Shared/transfer-archive-to-s3: Changed shebang to python 3.
- 5:16 PM Changeset in webkit [282067] by
-
- 32 edits8 deletes in trunk
Unreviewed, reverting r282057.
https://bugs.webkit.org/show_bug.cgi?id=229977
made a layout test extremely flaky
Reverted changeset:
"Add support for RTCSctpTransport"
https://bugs.webkit.org/show_bug.cgi?id=229292
https://commits.webkit.org/r282057
- 3:44 PM Changeset in webkit [282066] by
-
- 352 edits in trunk
Unreviewed, reverting r282025.
https://bugs.webkit.org/show_bug.cgi?id=229970
broken layout test on mac-debug-wk1
Reverted changeset:
"Allow layout tests to open popups by default"
https://bugs.webkit.org/show_bug.cgi?id=229881
https://commits.webkit.org/r282025
- 3:03 PM Changeset in webkit [282065] by
-
- 2 edits in trunk
[CMake] Prefer python3 over python2
https://bugs.webkit.org/show_bug.cgi?id=229969
Reviewed by Michael Catanzaro.
Use the CMake module FindPython instead of FindPythonInterp.
FindPython looks preferably for version 3 of Python. If not found, then it looks for version 2.
- Source/cmake/WebKitCommon.cmake:
- 12:48 PM Changeset in webkit [282064] by
-
- 6 edits1 add in trunk/Tools
[GTK] The Xvfb display server may fail to start sometimes causing tests to randomly crash
https://bugs.webkit.org/show_bug.cgi?id=229758
Reviewed by Philippe Normand.
Add a new function in XvfbDriver() to ensure that the display server
at a given display_id is replying as expected. Ask it for the screen
size at monitor 0 and compare the result with the one we expect to
have inside Xvfb. For doing this check a external python program is
called which does the query using GTK. Using a external program is
more robust against possible failures calling into GTK and also will
allow re-using this program also to check that the weston server is
also replying as expected for the weston driver (on a future patch).
If the Xvfb driver is not replying as expected then restart it and
try again, up to 3 retries.
Use this also on the weston driver to check that the Xvfb driver is
ready.
The code is both compatible with python2 and python3, when running on
python2 it will try first to use subprocess32 if available, otherwise
will use standard python2 subprocess without using the timeout feature.
- Scripts/webkitpy/common/system/executive_mock.py:
(MockProcess.init):
(MockProcess.communicate):
- Scripts/webkitpy/port/westondriver.py:
(WestonDriver._setup_environ_for_test):
- Scripts/webkitpy/port/westondriver_unittest.py:
(WestonXvfbDriverDisplayTest._xvfb_check_if_ready):
- Scripts/webkitpy/port/xvfbdriver.py:
(XvfbDriver):
(XvfbDriver.init):
(XvfbDriver.check_driver):
(XvfbDriver._xvfb_run):
(XvfbDriver._xvfb_screen_size):
(XvfbDriver._xvfb_stop):
(XvfbDriver._xvfb_check_if_ready):
(XvfbDriver._setup_environ_for_test):
(XvfbDriver.has_crashed):
(XvfbDriver.stop):
- Scripts/webkitpy/port/xvfbdriver_unittest.py:
(XvfbDriverTest.make_driver):
(XvfbDriverTest.assertDriverStartSuccessful):
(XvfbDriverTest.test_xvfb_start_and_ready):
(XvfbDriverTest.test_xvfb_start_arbitrary_worker_number):
(XvfbDriverTest.test_xvfb_not_replying):
- gtk/print-screen-size: Added.
- 12:30 PM Changeset in webkit [282063] by
-
- 3 edits2 adds in trunk
REGRESSION (r280017): Calling getBoundingClientRect() on an empty element with "break-before: column" in columns returns a rect with all zeros
https://bugs.webkit.org/show_bug.cgi?id=229747
Reviewed by Alan Bujtas.
Source/WebCore:
A zero-height element with
break-before: column
ends up with an offset which is exactly
equal to the column height, and therefore logically can be positioned at the bottom of one
column, or the top of the next. For elements with non-zero height, we have logic to avoid
putting the bottom of the box into the next column. Fix this logic for zero-height elements
to avoid the end column being less than the start column. This avoids an early return in
RenderMultiColumnSet::fragmentRectsForFlowContentRect() which resulted in a zero client rect.
Test: fast/multicol/newmulticol/client-rects-column-breakers.html
- rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::firstAndLastColumnsFromOffsets const):
LayoutTests:
- fast/multicol/newmulticol/client-rects-column-breakers-expected.txt: Added.
- fast/multicol/newmulticol/client-rects-column-breakers.html: Added.
- 12:04 PM Changeset in webkit [282062] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Garden tests related to the experimetal <attachment> element
https://bugs.webkit.org/show_bug.cgi?id=229966
All the tests fail for the same basic reason: this element is not
enabled on GLIB platforms, so all these failures should be tracked
under one bug.
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-06
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 11:42 AM Changeset in webkit [282061] by
-
- 8 edits in trunk/Source
Fix WebKitGTK build on MacOS
https://bugs.webkit.org/show_bug.cgi?id=225850
Patch by Dmitry Kalinkin <dmitry.kalinkin+webkit@gmail.com> on 2021-09-06
Reviewed by Michael Catanzaro.
Define HAVE_AUDIT_TOKEN only for Cocoa backend.
Source/WebKit:
Streamline other conditionals for consistency between headers and implementations.
- NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:
(WebKit::WebSWOriginStore::sendStoreHandle):
- Platform/IPC/unix/ConnectionUnix.cpp:
- Platform/IPC/IPCSemaphore.h:
- Platform/SharedMemory.h:
- UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::sendStoreHandleToProcess):
Source/WTF:
- wtf/PlatformHave.h:
- 10:49 AM Changeset in webkit [282060] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Use inline boxes in run vector for hit testing
https://bugs.webkit.org/show_bug.cgi?id=229933
Reviewed by Alan Bujtas.
Stop using nonRootInlineBoxes.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hitTest):
- 9:38 AM Changeset in webkit [282059] by
-
- 8 edits in trunk
[MSE] Prevent false-positive "stalled" event iff MSE used
https://bugs.webkit.org/show_bug.cgi?id=226882
<rdar://problem/79454993>
Reviewed by Alicia Boya Garcia.
Source/WebCore:
"progress" and "stalled" events make no sense in context of MSE:
https://github.com/w3c/media-source/issues/88
and hence they will likely be removed soon:
https://w3c.github.io/media-source/#h-note-19
This patch is authored by Pawel Lampe <pawel.lampe@gmail.com>.
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/711
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::progressEventTimerFired): Only fire the progess event if the player supports progress monitoring.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::supportsProgressMonitoring const): Forward call to the player private.
- platform/graphics/MediaPlayer.h: Added new supportsProgressMonitoring() method.
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::supportsProgressMonitoring const): Added method, defaulting to true to trigger the old behaviour.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: Return false on new supportsProgressMonitoring() method to prevent progress event triggering.
LayoutTests:
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-append-buffer-expected.txt: Updated expectations.
- 9:33 AM Changeset in webkit [282058] by
-
- 21 edits in trunk
Add a temporarily prefixed property for mask-mode, aliased to -webkit-mask-source-type
https://bugs.webkit.org/show_bug.cgi?id=229915
Reviewed by Antti Koivisto.
Source/WebCore:
In preparation for unprefixing the "mask" property, add -webkit-mask-mode. This is
almost an alias to the existing -webkit-mask-source-type, but takes a "match-source"
value rather than "auto".
To make it easier to have aliases with different parsing requirements, add support
in CSSProperties.json for "synonyms"; these are like aliases but they get their
own CSSPropertyID to allow for customized parsing. They share style builder code
with the related property.
FillLayer now uses MaskMode rather than MaskSourceType.
Test: fast/masking/parsing-mask-mode.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::maskSourceTypeToCSSValue):
(WebCore::maskModeToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::fillSourceTypeToCSSValue): Deleted.
- css/CSSProperties.json:
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillMaskMode):
(WebCore::CSSToStyleMap::mapFillMaskSourceType): Deleted.
- css/CSSToStyleMap.h:
- css/CSSValueKeywords.in:
- css/makeprop.pl:
(addProperty):
(generateFillLayerPropertyValueSetter):
(generateValueSetter):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWebkitMaskMode):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/style/FillLayer.cpp:
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator== const):
(WebCore::operator<<):
- rendering/style/FillLayer.h:
(WebCore::FillLayer::maskMode const):
(WebCore::FillLayer::isMaskModeSet const):
(WebCore::FillLayer::setMaskMode):
(WebCore::FillLayer::clearMaskMode):
(WebCore::FillLayer::initialFillMaskMode):
(WebCore::FillLayer::maskSourceType const): Deleted.
(WebCore::FillLayer::isMaskSourceTypeSet const): Deleted.
(WebCore::FillLayer::setMaskSourceType): Deleted.
(WebCore::FillLayer::clearMaskSourceType): Deleted.
(WebCore::FillLayer::initialFillMaskSourceType): Deleted.
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
Tools:
Allow the "synonym" key in CSSProperties.json.
- Scripts/webkitpy/style/checkers/jsonchecker.py:
(JSONCSSPropertiesChecker.check_codegen_properties):
LayoutTests:
- fast/masking/parsing-mask-mode-expected.txt: Added.
- fast/masking/parsing-mask-mode.html: Added.
- 9:14 AM Changeset in webkit [282057] by
-
- 32 edits8 adds in trunk
Add support for RTCSctpTransport
https://bugs.webkit.org/show_bug.cgi?id=229292
<rdar://problem/82394152>
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
- web-platform-tests/webrtc/RTCIceTransport-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:
- web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
- web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt:
- web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt:
- web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt:
- web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
- web-platform-tests/webrtc/idlharness.https.window-expected.txt:
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
Source/WebCore:
Expose RTSctpTransport API and getter from the peer connection.
Implement event mechanism and getters.
Additional work will be needed to make ice transport objects consistent between SCTP and senders/receivers.
Covered by rebased tests.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::updateSctpBackend):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCSctpTransport.cpp: Added.
(WebCore::RTCSctpTransport::RTCSctpTransport):
(WebCore::RTCSctpTransport::~RTCSctpTransport):
(WebCore::RTCSctpTransport::stop):
(WebCore::RTCSctpTransport::virtualHasPendingActivity const):
(WebCore::RTCSctpTransport::onStateChanged):
- Modules/mediastream/RTCSctpTransport.h: Added.
- Modules/mediastream/RTCSctpTransport.idl: Added.
- Modules/mediastream/RTCSctpTransportBackend.h: Added.
(WebCore::operator==):
- Modules/mediastream/RTCSctpTransportState.h: Added.
- Modules/mediastream/RTCSctpTransportState.idl: Added.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::SctpTransportState::SctpTransportState):
(WebCore::SctpTransportState::createBackend):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):
- Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp: Added.
(WebCore::toRTCSctpTransportState):
(WebCore::LibWebRTCSctpTransportBackendObserver::LibWebRTCSctpTransportBackendObserver):
(WebCore::LibWebRTCSctpTransportBackendObserver::updateState):
(WebCore::LibWebRTCSctpTransportBackendObserver::start):
(WebCore::LibWebRTCSctpTransportBackendObserver::stop):
(WebCore::LibWebRTCSctpTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCSctpTransportBackend::LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::~LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::dtlsTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::registerClient):
(WebCore::LibWebRTCSctpTransportBackend::unregisterClient):
- Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/EventTargetFactory.in:
LayoutTests:
- webrtc/datachannel/dtls10.html:
We should now check for the RTCSctpTransport's RTCDtlsTransport state
to identify whether connection is successful or not.
- 8:57 AM Changeset in webkit [282056] by
-
- 2 edits in trunk/LayoutTests
[GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229964
Unreviewed test gardening.
Flagged flaky timeout for webaudio/silent-audio-interrupted-in-background.html.
- platform/gtk/TestExpectations:
- 4:47 AM Changeset in webkit [282055] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer][MSE] Check ContentType parameters when checking supported types
https://bugs.webkit.org/show_bug.cgi?id=229859
Reviewed by Xabier Rodriguez-Calvar.
Some services like YouTube TV or Apple TV use ContentType parameters (channels, features, width, height,
framerate) to check for extra features or device maximum capabilities and just don't work if they're not
honored.
This patch checks that those parameters don't go over reasonable limits and reject support for the type
if they do.
This patch is an adaptation of the following downstream patches:
- https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/12c726290ac3395a0b7dd09861355e97be42e434 (authored by me)
- https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/b33dfe9fea5f991cf98884ef3bb3e3d9c660bc6b (authored by Pawel Lampe)
- platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::supportsFeatures const): Check the features parameter. Factored out as a method with the idea to add more checks it in the future.
(WebCore::GStreamerRegistryScanner::isContentTypeSupported const): Check the channels, features, width, height and framerate parameters against sane maximum values.
- platform/graphics/gstreamer/GStreamerRegistryScanner.h: Added supportsFeatures() method.
- 1:49 AM Changeset in webkit [282054] by
-
- 29 edits2 copies2 adds in trunk
Implement libwebrtc network manager GetMdnsResponder
https://bugs.webkit.org/show_bug.cgi?id=229757
Reviewed by Eric Carlson.
Source/WebCore:
Use libwebrtc mDNS support instead of applying it within PeerConnectionBackend.
This allows a better integration and is more consistent with the API and other browsers.
For instance mDNS candidates now show up in local descriptions.
We introduce RTCNetworkManager which is responsible for WebRTC network.
RTCNetworkManager is responsible of all peer connections of a document. It can thus reuse mDNS names from one connection to another.
When document goes away, RTCNetworkManager needs to unregister all mDNS names.
Update existing SDP and ICE candidate filtering code by only keeping debug assert that we do not leak private IP addresses in case ICE filtering is on.
WK1 does not support mDNS candidates. In that case, we expose private IP addresses.
Covered by updated and existing tests.
- Headers.cmake:
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::enableICECandidateFiltering):
(WebCore::PeerConnectionBackend::disableICECandidateFiltering):
(WebCore::PeerConnectionBackend::validateSDP const):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCController.cpp:
(WebCore::RTCController::add):
(WebCore::RTCController::disableICECandidateFilteringForAllOrigins):
(WebCore::RTCController::disableICECandidateFilteringForDocument):
(WebCore::RTCController::enableICECandidateFiltering):
- Modules/mediastream/RTCNetworkManager.h: Added.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::currentLocalDescription const):
(WebCore::LibWebRTCPeerConnectionBackend::pendingLocalDescription const):
(WebCore::LibWebRTCPeerConnectionBackend::localDescription const):
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::willBeRemovedFromFrame):
(WebCore::Document::suspend):
- dom/Document.h:
(WebCore::Document::rtcNetworkManager):
(WebCore::Document::setRTCNetworkManager):
- platform/mediastream/MDNSRegisterError.h: Added.
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::createPeerConnection):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
Source/WebKit:
Implement RTCNetworkManager API in LibWebRTCNetworkManager to handle per-document mDNS registrations.
Move part of WebRTCMonitor to LibWebRTCNetworkManager.
LibWebRTCNetworkManager is a WebRTCMonitor observer to get the list of networks.
Since libwebrtc is now doing the mDNS registration, we need to return a mDNS name even if registration failed.
We update WebMDNSRegister and NetworkMDNSRegister accordingly.
- NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
(WebKit::registerMDNSNameCallback):
(WebKit::NetworkMDNSRegister::registerMDNSName):
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp: Added.
(WebKit::LibWebRTCNetworkManager::getOrCreate):
(WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager):
(WebKit::LibWebRTCNetworkManager::~LibWebRTCNetworkManager):
(WebKit::LibWebRTCNetworkManager::unregisterMDNSNames):
(WebKit::LibWebRTCNetworkManager::StartUpdating):
(WebKit::LibWebRTCNetworkManager::StopUpdating):
(WebKit::LibWebRTCNetworkManager::GetMdnsResponder const):
(WebKit::LibWebRTCNetworkManager::networksChanged):
(WebKit::LibWebRTCNetworkManager::networkProcessCrashed):
(WebKit::LibWebRTCNetworkManager::CreateNameForAddress):
(WebKit::LibWebRTCNetworkManager::RemoveNameForAddress):
- WebProcess/Network/webrtc/LibWebRTCNetworkManager.h: Added.
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::LibWebRTCProvider::disableNonLocalhostConnections):
- WebProcess/Network/webrtc/LibWebRTCProvider.h:
- WebProcess/Network/webrtc/WebMDNSRegister.cpp:
(WebKit::WebMDNSRegister::finishedRegisteringMDNSName):
(WebKit::WebMDNSRegister::registerMDNSName):
- WebProcess/Network/webrtc/WebMDNSRegister.h:
- WebProcess/Network/webrtc/WebMDNSRegister.messages.in:
- WebProcess/Network/webrtc/WebRTCMonitor.cpp:
(WebKit::WebRTCMonitor::startUpdating):
(WebKit::WebRTCMonitor::stopUpdating):
(WebKit::WebRTCMonitor::networksChanged):
(WebKit::WebRTCMonitor::networkProcessCrashed):
- WebProcess/Network/webrtc/WebRTCMonitor.h:
(WebKit::WebRTCMonitor::addObserver):
(WebKit::WebRTCMonitor::removeObserver):
(WebKit::WebRTCMonitor::didReceiveNetworkList const):
(WebKit::WebRTCMonitor::networkList const):
(WebKit::WebRTCMonitor::ipv4 const):
(WebKit::WebRTCMonitor::ipv6 const):
LayoutTests:
Update tests given mDNS ICE candidates are now showing up in descriptions.
Make sure to consider mDNS candidates as if they are filtered.
- http/wpt/webrtc/resources/third-party-frame-ice-candidate-filtering-iframe.html:
- webrtc/datachannel/filter-ice-candidate.html:
- webrtc/filtering-ice-candidate-after-reload.html:
- 12:54 AM Changeset in webkit [282053] by
-
- 5 edits2 deletes in trunk
webgl/1.0.x/conformance/context/constants-and-properties.html fails
https://bugs.webkit.org/show_bug.cgi?id=223311
<rdar://problem/75772425>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-06
Reviewed by Antti Koivisto.
Source/WebCore:
Remove STENCIL_INDEX, it was removed from the spec 2017.
Fixes tests:
webgl/1.0.x/conformance/context/constants-and-properties.html
webgl/2.0.y/conformance2/context/constants-and-properties-2.html
- html/canvas/WebGLRenderingContextBase.idl:
- platform/graphics/GraphicsContextGL.h:
LayoutTests:
Mark the skipped tests as Pass until all 1.0.x/2.0.y tests
are unskipped.
Skip the 2.0.0/1.0.3 test that is invalid now.
- fast/canvas/webgl/constants-on-interface.html: Removed.
- fast/canvas/webgl/constants.html: Removed.
Remove failing tests that serve the same purpose.
They seem to, according to best effort inspection, test
the same properties.
Sep 5, 2021:
- 7:48 PM Changeset in webkit [282052] by
-
- 5 edits in trunk
In-page search results overlay broken if the result spans more than two elements
https://bugs.webkit.org/show_bug.cgi?id=229926
<rdar://82741616>
Reviewed by Tim Horton.
Source/WebCore:
pathsWithShrinkWrappedRects fails to form a closed path for adjoining rects when they are horizontally out-of-order.
e.g.
1: (60,0) (30x20)
2: (0,0) (30x20)
3: (30,0) (30x20)
Let's sort the rects horizontally too (as we already do y ordering in polygonsForRect).
- platform/graphics/PathUtilities.cpp:
(WebCore::polygonsForRect):
LayoutTests:
- fast/shrink-wrap/rect-shrink-wrap-expected.html:
- fast/shrink-wrap/rect-shrink-wrap.html: Add the out-of-order rect case.
- 4:47 PM Changeset in webkit [282051] by
-
- 2 edits in trunk/Source/WebCore
Let content with newlineCharacter be measured by FontCascade::widthForSimpleText
https://bugs.webkit.org/show_bug.cgi?id=229849
<rdar://problem/82708348>
Reviewed by Simon Fraser.
Apparently r281978 did not address it properly.
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):
- 12:17 PM Changeset in webkit [282050] by
-
- 9 edits in trunk
[LFC][Integration] Skip inline boxes in iterator
https://bugs.webkit.org/show_bug.cgi?id=229922
Reviewed by Alan Bujtas.
Source/WebCore:
Start including root and non-root inline boxes to the run vector.
Change the iterator to skip over these boxes.
The new boxes are not used for anything yet.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):
- layout/integration/LayoutIntegrationInlineContent.cpp:
(WebCore::LayoutIntegration::InlineContent::hasContent const):
- layout/integration/LayoutIntegrationInlineContent.h:
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::firstRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lastRun const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextTextRun):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextLeaf):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousLeaf):
LayoutTests:
- fast/repaint/iframe-on-subpixel-position-expected.txt:
- 10:47 AM Changeset in webkit [282049] by
-
- 2 edits in trunk/Source/WebCore
Remove unnecessary uses of Ref protect = m_backing from FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=229911
Reviewed by Anders Carlsson.
The only callers of these are from JS. So, JS will maintain a ref to
the FontFaceSet, and the FontFaceSet will maintain a ref to its
CSSFontFaceSet. So it doesn't need to be protected.
No new tests because there is no behavior change.
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::check):
(WebCore::FontFaceSet::status const):
- 10:03 AM Changeset in webkit [282048] by
-
- 16 edits in trunk/Source/WebKit
Use a strongly typed identifier for authentication challenge IDs
https://bugs.webkit.org/show_bug.cgi?id=229890
Reviewed by Anders Carlsson.
Add AuthenticationChallengeIdentifier and use it to replace uint64_t values that
represent authentication challenge identifiers.
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge const):
(WebKit::AuthenticationManager::coalesceChallengesMatching const):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::completeAuthenticationChallenge):
(WebKit::generateAuthenticationChallengeID): Deleted.
- Shared/Authentication/AuthenticationManager.h:
- Shared/Authentication/AuthenticationManager.messages.in:
- Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:
(WebKit::AuthenticationManager::initializeConnection):
- Shared/IdentifierTypes.h:
- UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
- UIProcess/Authentication/AuthenticationChallengeProxy.h:
(WebKit::AuthenticationChallengeProxy::create):
- UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm:
(WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc):
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
- UIProcess/Downloads/DownloadProxy.h:
- UIProcess/Downloads/DownloadProxy.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- 6:44 AM Changeset in webkit [282047] by
-
- 2 edits in trunk/Source/WebCore
Ensure fragmented flow state invalidation even when the cached fragmented flow is not present.
https://bugs.webkit.org/show_bug.cgi?id=229914
<rdar://82025006>
Reviewed by Antti Koivisto.
The cached fragmented flow is the byproduct of querying the enclosing fragment during layout/repaint.
Sometimes when the layout process, between 2 subsequent style change does not generate such cached fragmented flows
the invalidation process stops early and leaves subtrees in an inconsistent state.
Let's use the passed in fragmented flow when the cached value is not present.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::resetEnclosingFragmentedFlowAndChildInfoIncludingDescendants):
Sep 4, 2021:
- 9:55 AM Changeset in webkit [282046] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Play/pause button's icon does not update when pausing in full screen
https://bugs.webkit.org/show_bug.cgi?id=229904
Reviewed by Eric Carlson.
AVKit expects KVO notification of
rate
to update the play/pause icon.
However, with the changes in r280840,-[WebAVPlayerController setRate]
will be called by AVKit only. When a user taps the play/pause button,
-[WebAVPlayerController setRate:fromJavaScript:]
will be called, which
does not generate the KVO notification.
This patch fixes the issue by manually generate the KVO notification.
To be safe, this patch manually generates the KVO notification for
propertydefaultPlaybackRate
as well.
Tested manually.
- platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController setDefaultPlaybackRate:fromJavaScript:]):
(-[WebAVPlayerController setRate:fromJavaScript:]):
- 6:20 AM Changeset in webkit [282045] by
-
- 5 edits2 adds in trunk
REGRESSION(r275515): pointer-events:none may get stuck in LFC runs
https://bugs.webkit.org/show_bug.cgi?id=229854
rdar://81165275
Reviewed by Alan Bujtas.
Source/WebCore:
We only update run style with diff >= StyleDifference::Repaint but pointer-events changes don't require repaint.
Test: fast/events/pointer-events-mutation.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::styleDidChange):
Fix by pushing the new style to LFC unconditionally. This has no meaningful cost.
LayoutTests:
- fast/events/pointer-events-mutation-expected.txt: Added.
- fast/events/pointer-events-mutation.html: Added.
Sep 3, 2021:
- 9:34 PM Changeset in webkit [282044] by
-
- 1 edit3 deletes in trunk/LayoutTests
Test gardening after r281291
https://bugs.webkit.org/show_bug.cgi?id=228176
Unreviewed.
There is a fast/text/trak-optimizeLegibility-expected-mismatch.html.
- platform/ios/fast/text/trak-optimizeLegibility-expected.txt: Removed.
- platform/mac/fast/text/trak-optimizeLegibility-expected.txt: Removed.
- platform/win/fast/text/trak-optimizeLegibility-expected.txt: Removed.
- 9:21 PM Changeset in webkit [282043] by
-
- 11 edits in trunk/Source/WTF
Use USE(SYSTEM_MALLOC) macro in all cases
https://bugs.webkit.org/show_bug.cgi?id=229902
Reviewed by Yusuke Suzuki.
Convert old style macro check to USE() macro for USE_SYSTEM_MALLOC.
- wtf/FastMalloc.cpp:
- wtf/Gigacage.cpp:
- wtf/Gigacage.h:
- wtf/IsoMalloc.h:
- wtf/IsoMallocInlines.h:
- wtf/JSValueMalloc.cpp:
- wtf/PlatformUse.h:
- wtf/RAMSize.cpp:
- wtf/VMTags.h:
- wtf/WTFConfig.h:
- 8:24 PM Changeset in webkit [282042] by
-
- 5 edits1 add in trunk
[JSC] Make EnumeratorNextUpdateIndexAndMode clobberizing rule precise
https://bugs.webkit.org/show_bug.cgi?id=229898
rdar://82714439
Reviewed by Saam Barati.
JSTests:
- complex.yaml:
- complex/for-in-clobberize.js: Added.
Source/JavaScriptCore:
Clobberizing rule and AI does not match for EnumeratorNextUpdateIndexAndMode node.
We fix both cases: isSaneChain is not related to this node. So we should use isInBounds
as we are doing for HasIndexedProperty node.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- 7:58 PM Changeset in webkit [282041] by
-
- 2 edits in trunk/LayoutTests
[iOS] Regression(r282025) fast/forms/ios/remove-and-add-view-during-focus.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229908
Reviewed by Wenson Hsieh.
The test is calling window.open() and it was causing a sync IPC to the UIProcess and a call
to uiController.willCreateNewPageCallback. However, because the test wasn't calling
testRunner.setCanOpenWindows()
, it wasn't actually opening a popup.
Now that tests can open popups by default (since r282025), the popup actually opens and
its view becomes fist responder, which is confusing the test. To address the issue,
close the window as soon as it opens.
- fast/forms/ios/remove-and-add-view-during-focus.html:
- 5:32 PM Changeset in webkit [282040] by
-
- 3 edits in trunk/Tools
[ews] Invoke validate-changelog with python 3
https://bugs.webkit.org/show_bug.cgi?id=229872
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(ValidateChangeLogAndReviewer):
- CISupport/ews-build/steps_unittest.py: Added unit-tests.
- 5:29 PM Changeset in webkit [282039] by
-
- 38 edits1 copy3 adds in trunk
Addition of CSSNumericFactory in CSS Typed OM
https://bugs.webkit.org/show_bug.cgi?id=229699
Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-03
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-typed-om/factory-absolute-length-expected.txt:
- web-platform-tests/css/css-typed-om/factory-duration-expected.txt:
- web-platform-tests/css/css-typed-om/factory-frequency-expected.txt:
- web-platform-tests/css/css-typed-om/idlharness-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-normalization/normalize-numeric.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-normalization/positionvalue-normalization.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-serialization/crashtests/cssTransform-Internal-value-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-serialization/cssPositionValue-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPerspective.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssPositionValue-invalid-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRGB-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRotate.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssScale.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkew.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewX.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssSkewY.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssTranslate.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/equals.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/numeric-factory.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/to.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/toSum.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/append.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set-shorthand-expected.txt:
- web-platform-tests/css/css-typed-om/the-stylepropertymap/declared/set.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/append.tentative-expected.txt:
- web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set-shorthand-expected.txt:
- web-platform-tests/css/css-typed-om/the-stylepropertymap/inline/set.tentative-expected.txt:
Source/WebCore:
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/DOMCSSNamespace+CSSNumericFactory.idl: Added.
- css/typedom/CSSNumericFactory.cpp: Copied from Source/WebCore/css/typedom/CSSUnitValue.h.
(WebCore::CSSNumericFactory::from):
(WebCore::CSSNumericFactory::supplementName):
- css/typedom/CSSNumericFactory.h: Added.
- css/typedom/CSSNumericFactory.idl: Added.
- css/typedom/CSSUnitValue.h:
(isType):
- 5:05 PM Changeset in webkit [282038] by
-
- 1 copy in tags/Safari-612.2.4
Tag Safari-612.2.4.
- 4:58 PM Changeset in webkit [282037] by
-
- 4 edits in trunk/Source/JavaScriptCore
Unreviewed, non-unified JSC build fix following 241222@main.
- b3/B3ReduceLoopStrength.h:
- jit/JITOperations.h:
- wasm/WasmOperations.h:
- 4:40 PM Changeset in webkit [282036] by
-
- 2 edits in trunk/Source/WebKit
Fix for debug mode on MSVC after r281998
https://bugs.webkit.org/show_bug.cgi?id=229894
Unreviewed build fix for wincairo debug.
No new tests, build fix only.
Pull the #if out from inside the ASSERT.
- NetworkProcess/NetworkResourceLoader.cpp:
- 4:19 PM Changeset in webkit [282035] by
-
- 1 copy in tags/Safari-611.4.1.0.3
Tag Safari-611.4.1.0.3.
- 3:48 PM Changeset in webkit [282034] by
-
- 10 edits in trunk
Safari’s Privacy Report window is completely blank
https://bugs.webkit.org/show_bug.cgi?id=229847
<rdar://problem/80974688>
Reviewed by Chris Dumez.
Source/WebKit:
We should not wait for an IPC reply on a cached web process, because
it will cause long hangs.
In order to test this I added a new SPI to update the
cachedProcessSuspensionDelay (the usual timeout is 30 seconds). I also
moved the initial suspension timer call to be after the responsiveness
check, otherwise the cached process will be resumed very soon.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore _setCachedProcessSuspensionDelayForTesting:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::setCachedProcessSuspensionDelayForTesting):
(WebKit::WebProcessCache::addProcess):
(WebKit::WebProcessCache::CachedProcess::CachedProcess):
(WebKit::WebProcessCache::CachedProcess::startSuspensionTimer):
- UIProcess/WebProcessCache.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::sendResourceLoadStatisticsDataImmediately):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setCachedProcessSuspensionDelayForTesting):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
- 3:34 PM Changeset in webkit [282033] by
-
- 2 edits in branches/safari-611.4.1.0-branch/Source/WebCore
Cherry-pick r279832. rdar://problem/82733433
Unreviewed, partial revert of r279661 to address crashes on iOS Debug.
- page/DOMWindow.cpp: (WebCore::DOMWindow::removeAllEventListeners):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:34 PM Changeset in webkit [282032] by
-
- 2 edits in branches/safari-611.4.1.0-branch/Source/WebCore
Cherry-pick r279661. rdar://problem/82733433
Deploy smart pointers in DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=227584
Reviewed by David Kilzer.
Deployed Ref/RefPtr in more places in DOMWindow.
- page/DOMWindow.cpp: (WebCore::DOMWindow::performance const): (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld): (WebCore::DOMWindow::postMessage): (WebCore::DOMWindow::frameElement const): (WebCore::DOMWindow::focus): (WebCore::DOMWindow::blur): (WebCore::DOMWindow::close): (WebCore::DOMWindow::print): (WebCore::DOMWindow::stop): (WebCore::DOMWindow::alert): (WebCore::DOMWindow::confirmForBindings): (WebCore::DOMWindow::prompt): (WebCore::DOMWindow::outerHeight const): (WebCore::DOMWindow::outerWidth const): (WebCore::DOMWindow::innerHeight const): (WebCore::DOMWindow::innerWidth const): (WebCore::DOMWindow::screenX const): (WebCore::DOMWindow::screenY const): (WebCore::DOMWindow::scrollX const): (WebCore::DOMWindow::scrollY const): (WebCore::DOMWindow::closed const): (WebCore::DOMWindow::name const): (WebCore::DOMWindow::setName): (WebCore::DOMWindow::setStatus): (WebCore::DOMWindow::setDefaultStatus): (WebCore::DOMWindow::opener const): (WebCore::DOMWindow::disownOpener): (WebCore::DOMWindow::parent const): (WebCore::DOMWindow::top const): (WebCore::DOMWindow::consumeTransientActivation): (WebCore::DOMWindow::notifyActivated): (WebCore::DOMWindow::getMatchedCSSRules const): (WebCore::DOMWindow::scrollBy const): (WebCore::DOMWindow::allowedToChangeWindowGeometry const): (WebCore::DOMWindow::setTimeout): (WebCore::DOMWindow::clearTimeout): (WebCore::DOMWindow::setInterval): (WebCore::DOMWindow::requestAnimationFrame): (WebCore::DOMWindow::cancelAnimationFrame): (WebCore::DOMWindow::createImageBitmap): (WebCore::DOMWindow::isSecureContext const): (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary): (WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary): (WebCore::DOMWindow::incrementScrollEventListenersCount): (WebCore::DOMWindow::removeEventListener): (WebCore::DOMWindow::dispatchLoadEvent): (WebCore::DOMWindow::removeAllEventListeners): (WebCore::DOMWindow::setLocation): (WebCore::DOMWindow::createWindow): (WebCore::DOMWindow::open): (WebCore::DOMWindow::showModalDialog):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279661 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:27 PM Changeset in webkit [282031] by
-
- 7 edits in trunk/Source/WebKit
Simplify PCM::Client interface
https://bugs.webkit.org/show_bug.cgi?id=229887
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-03
Reviewed by Kate Cheney.
NetworkLoadParameters is a heavy object to have on an interface like this.
We really only need a URL, a RefPtr<JSON::Object> from which the HTTP method can be inferred
from whether it's null or not, and PcmDataCarried to give to processPCMRequest.
The NetworkLoadParameters generation is only needed in a networking implementation that uses NetworkSession,
so I moved it to PrivateClickMeasurementNetworkLoader::start.
I moved the debugModeEnabled calls to the callers of loadFromNetwork to simplify the interface and to
keep the responsibility for that in PrivateClickMeasurementManager instead of the loadFromNetwork function,
which should be simple and just take what it gets and give it to the network.
No change in behavior. Just moving things around.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:
(WebKit::PCM::ClientImpl::loadFromNetwork):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
(WebKit::generateNetworkLoadParameters): Deleted.
(WebKit::generateNetworkLoadParametersForHttpPost): Deleted.
(WebKit::generateNetworkLoadParametersForHttpGet): Deleted.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:
(WebKit::generateNetworkLoadParameters):
(WebKit::PrivateClickMeasurementNetworkLoader::start):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:
- 3:16 PM Changeset in webkit [282030] by
-
- 2 edits in trunk/Source/WebCore
Regression(r277571) Call to SQLiteDatabase::turnOnIncrementalAutoVacuum() from ITP fails
https://bugs.webkit.org/show_bug.cgi?id=229886
<rdar://82581507>
Reviewed by Alex Christensen.
Before r277571,
lastError()
was getting called after the call tostatement->columnInt(0)
and *before* the call tostatement.finalize()
. After r277571, the call tostatement.finalize()
became implicit, and gets called whenstatement
does out of scope. As a result,lastError()
was getting called *after* the statement finalization instead of after. This is an issue because
the code expects the last error to be forstatement->columnInt(0)
and thus expects SQLITE_ROW.
I moved thelastError()
call so that it now after betweenstatement->columnInt(0)
and the
implicit statement finalization, like it used to.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
- 3:12 PM Changeset in webkit [282029] by
-
- 2 edits in trunk
Disable GCC_OFFLINEASM_SOURCE_MAP
https://bugs.webkit.org/show_bug.cgi?id=229893
Unreviewed, this fixes build failures caused by invalid assembler sources.
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-03
- Source/cmake/OptionsCommon.cmake:
- 3:11 PM Changeset in webkit [282028] by
-
- 2 edits in trunk/LayoutTests
[Monterey Wk2 Debug] fast/history/visited-href-mutation.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=228200
Unreviewed test gardening/removal of no longer needed expectation.
- platform/mac-wk2/TestExpectations:
- 3:02 PM Changeset in webkit [282027] by
-
- 2 edits in trunk/LayoutTests
Test gardening after r281293
https://bugs.webkit.org/show_bug.cgi?id=228177
Unreviewed.
The macOS port of WebKitTestRunner acts as if it was linked after every OS version.
- platform/mac/TestExpectations:
- 2:48 PM Changeset in webkit [282026] by
-
- 16 edits in trunk
[Web App Manifest] Always fetch the first manifest if provided
https://bugs.webkit.org/show_bug.cgi?id=229059
<rdar://problem/82148333>
Reviewed by Brent Fulgham.
Source/WebCore:
Before this patch, WebKit only fetched/parsed/applied/etc. the web app manifest when
-[WKWebView _getApplicationManifestWithCompletionHandler:]
was called. This patch makes
WebKit do all that as soon as a<link rel="manifest">
(with a valid URL) is encountered.
This allows manifests that have specified a"theme_color"
to actually have an effect.
Tests: ApplicationManifest.AlwaysFetch
ApplicationManifest.OnlyFirstManifest
ApplicationManifest.NoManifest
ApplicationManifest.MediaAttriute
ApplicationManifest.DoesNotExist
ApplicationManifest.Blocked
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
- loader/DocumentLoader.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::loadApplicationManifest):
(WebCore::DocumentLoader::finishedLoadingApplicationManifest):
(WebCore::DocumentLoader::notifyFinishedLoadingApplicationManifest): Deleted.
Simplify the way that the UIProcess communicates with the WebProcess (and between WebKit and
WebCore). There's no need to have aHashMap
of callbacks since each document can only have
at most one web app manifest. Furthermore, instead of having aHashMap
in both WebKit and
WebCore, just pass along theCompletionHandler
to theDocumentLoader
for a single list
of completion callbacks (a list is needed because it's possible for a client to invoke
-[WKWebView _getApplicationManifestWithCompletionHandler:]
multiple times).
Source/WebKit:
Before this patch, WebKit only fetched/parsed/applied/etc. the web app manifest when
-[WKWebView _getApplicationManifestWithCompletionHandler:]
was called. This patch makes
WebKit do all that as soon as a<link rel="manifest">
(with a valid URL) is encountered.
This allows manifests that have specified a"theme_color"
to actually have an effect.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::finishedLoadingApplicationManifest): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::getApplicationManifest):
(WebKit::WebPage::didFinishLoadingApplicationManifest):
Simplify the way that the UIProcess communicates with the WebProcess (and between WebKit and
WebCore). There's no need to have aHashMap
of callbacks since each document can only have
at most one web app manifest. Furthermore, instead of having aHashMap
in both WebKit and
WebCore, just pass along theCompletionHandler
to theDocumentLoader
for a single list
of completion callbacks (a list is needed because it's possible for a client to invoke
-[WKWebView _getApplicationManifestWithCompletionHandler:]
multiple times).
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:
(TestWebKitAPI::TEST.ApplicationManifest.AlwaysFetch): Added.
(TestWebKitAPI::TEST.ApplicationManifest.OnlyFirstManifest): Added.
(TestWebKitAPI::TEST.ApplicationManifest.NoManifest): Added.
(TestWebKitAPI::TEST.ApplicationManifest.MediaAttriute): Added.
(TestWebKitAPI::TEST.ApplicationManifest.DoesNotExist): Added.
(TestWebKitAPI::TEST.ApplicationManifest.Blocked): Added.
LayoutTests:
- applicationmanifest/multiple-links.html:
- applicationmanifest/multiple-links-expected.txt:
- http/tests/security/contentSecurityPolicy/manifest-src-blocked.html:
- 2:47 PM Changeset in webkit [282025] by
-
- 352 edits in trunk
Allow layout tests to open popups by default
https://bugs.webkit.org/show_bug.cgi?id=229881
Reviewed by Darin Adler.
Tools:
Allow layout tests to open popups by default and drop testRunner.setCanOpenWindow().
- DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
- DumpRenderTree/TestRunner.h:
(TestRunner::setCallCloseOnWebViews):
- DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate webView:createWebViewWithRequest:]):
- DumpRenderTree/win/UIDelegate.cpp:
(UIDelegate::createWebViewWithRequest):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::setAcceptsEditing):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::createOtherPage):
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/TestInvocation.h:
LayoutTests:
Stop calling testRunner.setCanOpenWindow() as tests are now allowed to open
popups by default.
- animations/crash-on-removing-animation.html:
- editing/execCommand/show-modal-dialog-during-execCommand.html:
- editing/mac/input/unconfirmed-text-navigation-with-page-cache.html:
- fast/animation/request-animation-frame-during-modal.html:
- fast/animation/request-animation-frame-in-two-pages.html:
- fast/dom/DeviceMotion/no-page-cache.html:
- fast/dom/DeviceOrientation/no-page-cache.html:
- fast/dom/Document/early-document-access.html:
- fast/dom/Geolocation/window-close-crash.html:
- fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html:
- fast/dom/Window/Location/set-location-after-close.html:
- fast/dom/Window/child-window-focus.html:
- fast/dom/Window/closure-access-after-navigation-window.html:
- fast/dom/Window/dom-access-from-closure-window-with-gc.html:
- fast/dom/Window/dom-access-from-closure-window.html:
- fast/dom/Window/mozilla-focus-blur.html:
- fast/dom/Window/new-window-opener.html:
- fast/dom/Window/open-invalid-url.html:
- fast/dom/Window/open-window-min-size.html:
- fast/dom/Window/open-zero-size-as-default.html:
- fast/dom/Window/resources/rel-noopener.js:
- fast/dom/Window/resources/window-open-opener-cycle2.html:
- fast/dom/Window/resources/window-open-opener-cycle3.html:
- fast/dom/Window/setting-properties-on-closed-window.html:
- fast/dom/Window/window-early-properties.html:
- fast/dom/Window/window-open-activeWindow-null-frame.html:
- fast/dom/Window/window-open-opener-cycle.html:
- fast/dom/Window/window-open-pending-url.html:
- fast/dom/Window/window-open-self-as-opener.html:
- fast/dom/Window/window-opener-set-to-null.html:
- fast/dom/Window/window-property-invalid-characters-ignored.html:
- fast/dom/location-new-window-no-crash.html:
- fast/dom/open-and-close-by-DOM.html:
- fast/dom/window-domurl-crash.html:
- fast/dom/window-open-ephemeral.html:
- fast/events/attempt-scroll-with-no-scrollbars.html:
- fast/events/before-unload-navigate-different-window.html:
- fast/events/before-unload-open-window.html:
- fast/events/beforeunload-showModalDialog.html:
- fast/events/ios/submit-form-target-blank-using-return-key.html:
- fast/events/open-window-from-another-frame.html:
- fast/events/page-visibility-iframe-move-test.html:
- fast/events/pagehide-showModalDialog.html:
- fast/events/popup-allowed-from-gesture-initiated-event.html:
- fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
- fast/events/popup-blocked-from-fake-button-click.html:
- fast/events/popup-blocked-from-fake-focus.html:
- fast/events/popup-blocked-from-fake-user-gesture.html:
- fast/events/popup-blocked-from-history-reload.html:
- fast/events/popup-blocked-from-iframe-script.html:
- fast/events/popup-blocked-from-iframe-src.html:
- fast/events/popup-blocked-from-mousemove.html:
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
- fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
- fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
- fast/events/popup-blocked-from-untrusted-mouse-click.html:
- fast/events/popup-blocked-from-window-open.html:
- fast/events/popup-blocked-to-post-blank.html:
- fast/events/popup-blocking-click-in-iframe.html:
- fast/events/popup-blocking-timers1.html:
- fast/events/popup-blocking-timers2.html:
- fast/events/popup-blocking-timers3.html:
- fast/events/popup-blocking-timers5.html:
- fast/events/popup-blocking-timers6.html:
- fast/events/popup-when-select-change.html:
- fast/events/scroll-event-during-modal-dialog.html:
- fast/events/show-modal-dialog-onblur-onfocus.html:
- fast/events/unload-showModalDialog.html:
- fast/files/domurl-script-execution-context-crash.html:
- fast/forms/multiple-form-submission-protection-mouse.html:
- fast/forms/submit-to-blank-multiple-times.html:
- fast/frames/frame-crash-with-page-cache.html:
- fast/frames/page-hide-document-open.html:
- fast/frames/page-unload-document-open.html:
- fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html:
- fast/frames/restoring-page-cache-should-not-run-scripts.html:
- fast/frames/sandboxed-iframe-close-top-noclose.html:
- fast/frames/sandboxed-iframe-close-top.html:
- fast/frames/sandboxed-iframe-navigation-windowopen.html:
- fast/harness/page-cache-crash-on-data-urls.html:
- fast/harness/show-modal-dialog.html:
- fast/harness/use-page-cache.html:
- fast/history/history-subframe-with-name.html:
- fast/history/history_reload.html:
- fast/history/location-replace-hash.html:
- fast/history/page-cache-after-window-open.html:
- fast/history/page-cache-back-navigation-crash.html:
- fast/history/page-cache-with-opener.html:
- fast/history/window-open.html:
- fast/html/broadcast-channel-between-different-sessions.html:
- fast/images/animated-gif-window-resizing.html:
- fast/loader/cancel-load-during-port-block-timer.html:
- fast/loader/crash-copying-backforwardlist.html:
- fast/loader/fragment-navigation-base-blank.html:
- fast/loader/iframe-meta-refresh-base-blank.html:
- fast/loader/iframe-set-location-base-blank.html:
- fast/loader/image-in-page-cache.html:
- fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
- fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
- fast/loader/ping-error.html:
- fast/loader/refresh-iframe-base-blank.html:
- fast/loader/reload-zero-byte-plugin.html:
- fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html:
- fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry.html:
- fast/loader/stateobjects/popstate-fires-with-page-cache.html:
- fast/loader/stateobjects/pushstate-without-history.html:
- fast/loader/stateobjects/replacestate-in-iframe.html:
- fast/loader/url-selected-user-gesture.html:
- fast/loader/window-open-to-invalid-url-calls-policy-delegate.html:
- fast/loader/window-open-to-invalid-url-disallowed.html:
- fast/parser/xhtml-close-while-parsing.xhtml:
- fullscreen/full-screen-exit-when-popup.html:
- http/tests/app-privacy-report/app-attribution-post-request.html:
- http/tests/app-privacy-report/user-attribution-post-request.html:
- http/tests/appcache/crash-when-navigating-away-then-back.html:
- http/tests/appcache/identifier-test.html:
- http/tests/blink/sendbeacon/beacon-detached-no-crash.html:
- http/tests/cache/display-image-unset-allows-cached-image-load.html:
- http/tests/cache/history-navigation-no-resource-revalidation.html:
- http/tests/cache/history-only-cached-subresource-loads-max-age-https.html:
- http/tests/cache/history-only-cached-subresource-loads.html:
- http/tests/cache/reload-expired-only.html:
- http/tests/contentextensions/block-everything-unless-domain.html:
- http/tests/contentextensions/popups.html:
- http/tests/cookies/document-cookie-after-showModalDialog.html:
- http/tests/cookies/resources/cookie-utilities.js:
- http/tests/dom/new-window-can-target-opener.html:
- http/tests/dom/noopener-window-cannot-target-opener.html:
- http/tests/dom/noopener-window-not-targetable.html:
- http/tests/dom/noopener-window-not-targetable2.html:
- http/tests/dom/noreferrer-window-not-targetable.html:
- http/tests/dom/opened-window-not-targetable-after-disowning-opener.html:
- http/tests/dom/resources/new-window-can-target-opener-win.html:
- http/tests/dom/resources/noopener-window-cannot-target-opener-win.html:
- http/tests/dom/window-location-set-href-relative-url.html:
- http/tests/dom/window-open-about-blank-and-access-document.html:
- http/tests/dom/window-open-about-uppercase-blank-and-access-document.html:
- http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html:
- http/tests/dom/window-open-about-webkit-org-and-access-document.html:
- http/tests/download/anchor-load-after-download.html:
- http/tests/inspector/resources/protocol-test.js:
- http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
- http/tests/media/video-cancel-load.html:
- http/tests/misc/href-attribute-resolves-with-respect-to-document.html:
- http/tests/misc/iframe-reparenting-id-collision.html:
- http/tests/misc/set-window-opener-to-null.html:
- http/tests/misc/slow-preload-cancel.html:
- http/tests/misc/window-open-then-write.html:
- http/tests/misc/xml-document-origin.html:
- http/tests/navigation/anchor-blank-target-implies-rel-noopener.html:
- http/tests/navigation/new-window-redirect-history.html:
- http/tests/navigation/no-referrer-reset.html:
- http/tests/navigation/no-referrer-target-blank.html:
- http/tests/navigation/process-swap-window-open.html:
- http/tests/navigation/target-blank-opener-post.html:
- http/tests/navigation/target-blank-opener.html:
- http/tests/navigation/target-frame-from-window.html:
- http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html:
- http/tests/notifications/window-show-on-click.html:
- http/tests/plugins/plugin-document-has-focus.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
- http/tests/security/aboutBlank/security-context-window-open.html:
- http/tests/security/aboutBlank/window-open-self-about-blank.html:
- http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html:
- http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html:
- http/tests/security/aboutBlank/xss-DENIED-set-opener.html:
- http/tests/security/blob-null-url-location-origin.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html:
- http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window.html:
- http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html:
- http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-blocked.js:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window.html:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked.html:
- http/tests/security/cookies/cookie-theft-with-javascript-doc.html:
- http/tests/security/credentials-from-different-domains.html:
- http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials.html:
- http/tests/security/credentials-iframes.html:
- http/tests/security/cross-frame-access-call.html:
- http/tests/security/cross-origin-modal-dialog-base.html:
- http/tests/security/cross-origin-window-open-insert-script.html:
- http/tests/security/cross-origin-window-open-javascript-url.html:
- http/tests/security/cross-origin-worker-indexeddb.html:
- http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open.html:
- http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open.html:
- http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open.html:
- http/tests/security/dataURL/xss-DENIED-to-data-url-window-open.html:
- http/tests/security/frameNavigation/cross-origin-opener.html:
- http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html:
- http/tests/security/frameNavigation/not-opener.html:
- http/tests/security/frameNavigation/opener.html:
- http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html:
- http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html:
- http/tests/security/history-username-password.html:
- http/tests/security/inactive-document-with-empty-security-origin.html:
- http/tests/security/insecure-geolocation.html:
- http/tests/security/isolatedWorld/userGestureEvents.html:
- http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html:
- http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-window-open.html:
- http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open.html:
- http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html:
- http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html:
- http/tests/security/mixedContent/data-url-iframe-in-main-frame.html:
- http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html:
- http/tests/security/mixedContent/insecure-css-in-main-frame.html:
- http/tests/security/mixedContent/insecure-css-with-secure-cookies.html:
- http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies.html:
- http/tests/security/mixedContent/insecure-form-in-main-frame.html:
- http/tests/security/mixedContent/insecure-iframe-in-main-frame.html:
- http/tests/security/mixedContent/insecure-image-in-main-frame.html:
- http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html:
- http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html:
- http/tests/security/mixedContent/insecure-image-with-securecookie-block.html:
- http/tests/security/mixedContent/insecure-image-with-securecookie.html:
- http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
- http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html:
- http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
- http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
- http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html:
- http/tests/security/mixedContent/javascript-url-form-in-main-frame.html:
- http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
- http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
- http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html:
- http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html:
- http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html:
- http/tests/security/mixedcontent-geolocation-block-insecure-content.html:
- http/tests/security/mixedcontent-geolocation.html:
- http/tests/security/navigate-when-restoring-cached-page.html:
- http/tests/security/no-popup-from-sandbox-top.html:
- http/tests/security/no-popup-from-sandbox.html:
- http/tests/security/originHeader/origin-header-for-empty.html:
- http/tests/security/popup-allowed-by-sandbox-is-sandboxed-control.html:
- http/tests/security/popup-allowed-by-sandbox-is-sandboxed.html:
- http/tests/security/popup-allowed-by-sandbox-when-allowed.html:
- http/tests/security/popup-blocked-from-fake-event.html:
- http/tests/security/popup-blocked-from-window-open.html:
- http/tests/security/referrer-policy-nested-window-open.html:
- http/tests/security/referrer-policy-redirect-link-downgrade.html:
- http/tests/security/referrer-policy-redirect-link.html:
- http/tests/security/referrer-policy-subframe-window-open.html:
- http/tests/security/referrer-policy-window-open-subframe.html:
- http/tests/security/referrer-policy-window-open.html:
- http/tests/security/showModalDialog-sync-cross-origin-page-load.html:
- http/tests/security/showModalDialog-sync-cross-origin-page-load2.html:
- http/tests/security/top-level-unique-origin2.https.html:
- http/tests/security/window-events-clear-domain.html:
- http/tests/security/window-events-clear-port.html:
- http/tests/security/window-events-pass.html:
- http/tests/security/window-name-after-cross-origin-aux-frame-navigation.html:
- http/tests/security/window-name-after-same-origin-aux-frame-navigation.html:
- http/tests/security/window-named-valueOf.html:
- http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
- http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
- http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html:
- http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
- http/tests/security/xssAuditor/link-opens-new-window.html:
- http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
- http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html:
- http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html:
- http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html:
- http/tests/storageAccess/deny-storage-access-under-opener.html:
- http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html:
- http/tests/storageAccess/deny-without-prompt-preserves-gesture.html:
- http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html:
- http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html:
- http/tests/storageAccess/grant-with-prompt-preserves-gesture.html:
- http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
- http/tests/workers/service/Client-properties-auxiliary.html:
- http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
- http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
- http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:
- http/tests/xmlhttprequest/close-window.html:
- http/tests/xmlhttprequest/cross-origin-authorization-with-embedder.html:
- http/tests/xmlhttprequest/cross-origin-authorization.html:
- http/tests/xmlhttprequest/cross-origin-cookie-storage.html:
- http/tests/xmlhttprequest/cross-origin-no-authorization.html:
- http/tests/xmlhttprequest/request-from-popup.html:
- http/tests/xmlhttprequest/sync-xhr-in-beforeunload.html:
- http/tests/xmlhttprequest/sync-xhr-in-unload.html:
- imported/blink/fast/dom/Window/open-window-features-fuzz.html:
- imported/blink/fast/events/popup-forwarded-gesture.html:
- js/dom/function-constructor-this-value.html:
- js/instance-property-getter-other-instance.html:
- loader/go-back-cached-main-resource.html:
- loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done.html:
- loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done.html:
- loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done.html:
- media/crash-closing-page-with-media-as-plugin-fallback.html:
- platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure.html:
- plugins/access-after-page-destroyed-2.html:
- plugins/access-after-page-destroyed.html:
- plugins/destroy-during-npp-new-object-with-fallback-content.html:
- plugins/destroy-during-npp-new.html:
- plugins/geturlnotify-during-document-teardown.html:
- plugins/navigator-plugin-crash.html:
- plugins/open-and-close-window-with-plugin.html:
- plugins/plugin-initiate-popup-window.html:
- plugins/window-open.html:
- printing/print-close-crash.html:
- resources/testharnessreport.js:
- storage/domstorage/localstorage/access-storage-after-window-close.html:
- storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html:
- storage/domstorage/localstorage/set-value-in-storage-after-window-close.html:
- storage/domstorage/localstorage/window-open.html:
- storage/domstorage/sessionstorage/window-open.html:
- storage/indexeddb/modern/blob-cursor.html:
- storage/indexeddb/modern/blob-svg-image.html:
- tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:
- webarchive/adopt-attribute-styled-body-webarchive-expected.webarchive:
- webarchive/adopt-attribute-styled-body-webarchive.html:
- webarchive/adopt-attribute-styled-node-webarchive-expected.webarchive:
- webarchive/adopt-attribute-styled-node-webarchive.html:
- webarchive/adopt-inline-styled-node-webarchive-expected.webarchive:
- webarchive/adopt-inline-styled-node-webarchive.html:
- 2:46 PM Changeset in webkit [282024] by
-
- 8 edits in branches/safari-611.4.1.0-branch/Source
Versioning.
WebKit-7611.4.1.0.3
- 2:37 PM Changeset in webkit [282023] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Yarr::ByteTerm sometimes leaves fields uninitialized
https://bugs.webkit.org/show_bug.cgi?id=229891
Reviewed by Yusuke Suzuki.
- yarr/YarrInterpreter.h:
(JSC::Yarr::ByteTerm::ByteTerm):
Default initializeframeLocation
andinputPosition
.
(Also, use initializer list where possible.)
- 2:07 PM Changeset in webkit [282022] by
-
- 5 edits2 adds in trunk
AX: findModalNodes() and currentModalNode() should include modal <dialog>
https://bugs.webkit.org/show_bug.cgi?id=229815
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/dialog-showModal.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isModalElement const):
(WebCore::AXObjectCache::findModalNodes):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::handleModalChange):
- accessibility/AXObjectCache.h:
LayoutTests:
- accessibility/dialog-showModal-expected.txt: Added.
- accessibility/dialog-showModal.html: Added.
- platform/win/TestExpectations:
- 2:04 PM Changeset in webkit [282021] by
-
- 2 edits in trunk/LayoutTests
Test gardening after r281419
https://bugs.webkit.org/show_bug.cgi?id=149128
Unreviewed.
- platform/mac/TestExpectations:
- 1:33 PM Changeset in webkit [282020] by
-
- 8 edits1 add in trunk
iframes should get an opaque background when the embedding element and embedded root color-schemes do not match
https://bugs.webkit.org/show_bug.cgi?id=228124
<rdar://problem/80922070>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Add missing support file.
- web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame-ref.html: Added.
Source/WebCore:
Currently, iframes always have a transparent underlying background
color. The existing behavior is undesirable, as it can result in
scenarios where text in iframes is illegible, due to a mismatch between
the used color scheme of the embedding element and embedded root.
To address this problem, it has been resolved [1] that iframes should get
an opaque background when the embedding element and embedded root color-schemes
do not match. The background color used should be appropriate to the
embedded root color-scheme.
[1] https://drafts.csswg.org/css-color-adjust-1/#color-scheme-effect
Test: imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame-ref.html
- page/FrameView.cpp:
(WebCore::FrameView::updateBackgroundRecursively):
Ensure subframes have a base background color appropriate to their
color-scheme, rather than simply inheriting their parent's base
background color.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Moved root element background painting logic into RenderView.
- rendering/RenderView.cpp:
(WebCore::RenderView::shouldPaintBaseBackground const):
Paint the base background for the root element of an iframe if its used
color scheme does not match the color scheme of the embedding element.
- rendering/RenderView.h:
LayoutTests:
Remove failure expectations for newly passing tests.
- 1:29 PM Changeset in webkit [282019] by
-
- 1 edit2 adds in trunk/LayoutTests
Add a layout test for custom scrollbars with relative width/height values
https://bugs.webkit.org/show_bug.cgi?id=229871
Reviewed by Simon Fraser.
- fast/scrolling/scrollbar-size-with-relative-value-expected.html: Added.
- fast/scrolling/scrollbar-size-with-relative-value.html: Added.
- 1:22 PM Changeset in webkit [282018] by
-
- 24 edits3 copies6 adds in trunk
[JSC] Implement Temporal.TimeZone
https://bugs.webkit.org/show_bug.cgi?id=229703
Reviewed by Ross Kirsling.
JSTests:
- complex.yaml:
- complex/temporal-now-timezone-check.js: Added.
(shouldBe):
- complex/temporal-now-timezone-with-broken-tz.js: Added.
(shouldBe):
- stress/intl-enumeration.js:
- stress/temporal-timezone.js: Added.
(shouldBe):
(shouldThrow):
(let.text.of.failures.shouldThrow):
(reviver):
Source/JavaScriptCore:
This patch implements Temporal.TimeZone. While this patch does not implement features which requires Temporal.Instant,
we implement the core of Temporal.TimeZone, holding UTC offset or IANA TimeZone ID. This patch implements parsing TimeZoneNumericUTCOffset
to populate TimeZone from that format.
Since Temporal.TimeZone is implemented, we also support
Temporal.Now.timeZone()
, which returns current system TimeZone.
We also fix Intl enumeration not including "UTC". Since it is included in IANA TimeZones, we should include that.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/ISO8601.cpp:
(JSC::ISO8601::parseDecimalInt32):
(JSC::ISO8601::handleFraction):
(JSC::ISO8601::parseTimeZoneNumericUTCOffset):
(JSC::ISO8601::formatTimeZoneOffsetString):
- runtime/ISO8601.h:
- runtime/IntlObject.cpp:
(JSC::isValidTimeZoneNameFromICUTimeZone):
(JSC::canonicalizeTimeZoneNameFromICUTimeZone):
(JSC::intlAvailableTimeZones):
(JSC::availableTimeZones):
- runtime/IntlObject.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::timeZoneStructure):
- runtime/TemporalNow.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/TemporalNow.h:
- runtime/TemporalObject.cpp:
(JSC::createTimeZoneConstructor):
- runtime/TemporalTimeZone.cpp: Added.
(JSC::TemporalTimeZone::createFromID):
(JSC::TemporalTimeZone::createFromUTCOffset):
(JSC::TemporalTimeZone::createStructure):
(JSC::TemporalTimeZone::TemporalTimeZone):
(JSC::TemporalTimeZone::idForTimeZoneName):
(JSC::parseTemporalTimeZoneString):
(JSC::TemporalTimeZone::from):
- runtime/TemporalTimeZone.h: Copied from Source/JavaScriptCore/runtime/ISO8601.h.
- runtime/TemporalTimeZoneConstructor.cpp: Added.
(JSC::TemporalTimeZoneConstructor::create):
(JSC::TemporalTimeZoneConstructor::createStructure):
(JSC::TemporalTimeZoneConstructor::TemporalTimeZoneConstructor):
(JSC::TemporalTimeZoneConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/TemporalTimeZoneConstructor.h: Copied from Source/JavaScriptCore/runtime/ISO8601.h.
- runtime/TemporalTimeZonePrototype.cpp: Added.
(JSC::TemporalTimeZonePrototype::create):
(JSC::TemporalTimeZonePrototype::createStructure):
(JSC::TemporalTimeZonePrototype::TemporalTimeZonePrototype):
(JSC::TemporalTimeZonePrototype::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/TemporalTimeZonePrototype.h: Copied from Source/JavaScriptCore/runtime/ISO8601.h.
- runtime/VM.cpp:
- runtime/VM.h:
Source/WTF:
- wtf/text/IntegerToStringConversion.h: Support integer serialization into Vector.
- wtf/text/StringConcatenate.h: Extends StringConcatenate feature for Vector with UChar/LChar + N size.
- 1:18 PM Changeset in webkit [282017] by
-
- 5 edits2 adds in trunk
@font-face rules accessed over file: urls to a file which does not exist are not visible to document.fonts
https://bugs.webkit.org/show_bug.cgi?id=229639
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-font-loading/nonexistent-file-url-expected.txt:
Source/WebCore:
Because all the sources were failed, we were marking the whole CSSFontFace as failed, and then
not adding it to the CSSFontFaceSource. Unfortunately, this optimization is observable, so we
can't do it.
Tests: fast/text/font-file-failed.html
imported/w3c/web-platform-tests/css/css-font-loading/nonexistent-file-url.html
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
LayoutTests:
Keep a local copy of these tests, because WPT tests don't run from file: URLs, but layout tests do.
The behavior is different depending on the scheme of the main page.
- fast/text/font-file-failed-expected.txt: Added.
- fast/text/font-file-failed.html: Added.
- 1:08 PM Changeset in webkit [282016] by
-
- 4 edits2 adds in trunk
FontFaceSet.check() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229844
Reviewed by Sam Weinig.
Source/WebCore:
When content says "document.fonts.check(...)", the ".check(...)" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:
var f = document.fonts;
Modify style here
... f.check(...) ... <=== This needs to reflect the style changes.
Test: fast/text/FontFaceSet-check-after-style-update.html
- WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::check):
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::check):
LayoutTests:
This can't be a WPT test because it requires internals.invalidateFontCache().
- fast/text/FontFaceSet-check-after-style-update-expected.txt: Added.
- fast/text/FontFaceSet-check-after-style-update.html: Added.
- 1:03 PM Changeset in webkit [282015] by
-
- 3 edits2 adds in trunk
FontFaceSet.status needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229839
Reviewed by Sam Weinig.
Source/WebCore:
When content says "document.fonts.status", the ".status" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:
var f = document.fonts;
Modify style here
... f.status ... <=== This needs to reflect the style changes.
Test: fast/text/FontFaceSet-status-after-style-update.html
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::status const):
LayoutTests:
This is not a WPT test because it requires internals.invalidateFontCache().
- fast/text/FontFaceSet-status-after-style-update-expected.txt: Added.
- fast/text/FontFaceSet-status-after-style-update.html: Added.
- 12:46 PM Changeset in webkit [282014] by
-
- 18 edits3 adds in trunk
[JSC] Validate JSPropertyNameEnumerator via watchpoints
https://bugs.webkit.org/show_bug.cgi?id=229846
Reviewed by Keith Miller.
JSTests:
- stress/for-in-cacheable-dictionary.js: Added.
(shouldBe):
(collect):
- stress/for-in-invalidate.js: Added.
(shouldBe):
(collect):
- stress/for-in-uncacheable-dictionary.js: Added.
(shouldBe):
(collect):
Source/JavaScriptCore:
Looked into Elm-TodoMVC sampling profiler data and found that op_get_property_enumerator is taking enough amount of time.
And Instruments say validating JSPropertyNameEnumerator via traversing StructureChain is costly.
We are caching JSPropertyNameEnumerator only when we meet the condition: objects in prototype chain can ensure identity of
property names if structure is not changed. So we can use watchpoint based approach to invalidate JSPropertyNameEnumerator.
This patch injects structure transition watchpoints if possible. And when watchpoint is fired, we invalidate JSPropertyNameEnumerator
cached in StructureRareData, as if we are ensuring prototype chain condition for the other property accesses.
This offers 0.6% improvement in Speedometer2.
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
| Elm-TodoMVC |121.971667 |117.725000 |0.965183 | 0.000000 (significant) |
| VueJS-TodoMVC |26.246667 |26.035000 |0.991935 | 0.360614 |
| EmberJS-TodoMVC |126.196667 |126.653333 |1.003619 | 0.103138 |
| BackboneJS-TodoMVC |48.976667 |48.881667 |0.998060 | 0.474106 |
| Preact-TodoMVC |20.118333 |20.115000 |0.999834 | 0.989038 |
| AngularJS-TodoMVC |131.545000 |130.706667 |0.993627 | 0.015344 (significant) |
| Vanilla-ES2015-TodoMVC |63.725000 |63.773333 |1.000758 | 0.706560 |
| Inferno-TodoMVC |64.231667 |62.653333 |0.975427 | 0.000000 (significant) |
| Flight-TodoMVC |77.223333 |77.690000 |1.006043 | 0.268309 |
| Angular2-TypeScript-TodoMVC |39.686667 |39.500000 |0.995296 | 0.499678 |
| VanillaJS-TodoMVC |52.321667 |51.973333 |0.993342 | 0.077777 |
| jQuery-TodoMVC |224.908333 |225.761667 |1.003794 | 0.022136 |
| EmberJS-Debug-TodoMVC |339.858333 |339.886667 |1.000083 | 0.950320 |
| React-TodoMVC |86.545000 |86.070000 |0.994512 | 0.001518 (significant) |
| React-Redux-TodoMVC |146.010000 |142.855000 |0.978392 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.411667 |61.456667 |1.000733 | 0.631499 |
a mean = 255.96543
b mean = 257.53379
pValue = 0.0000034394
(Bigger means are better.)
1.006 times better
Results ARE significant
- bytecode/Watchpoint.cpp:
- bytecode/Watchpoint.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):
- runtime/StructureRareData.h:
- runtime/StructureRareDataInlines.h:
(JSC::StructureRareData::setCachedPropertyNameEnumerator):
(JSC::StructureChainInvalidationWatchpoint::install):
(JSC::StructureChainInvalidationWatchpoint::fireInternal):
(JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint):
(JSC::StructureRareData::invalidateWatchpointBasedValidation):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
- 12:26 PM Changeset in webkit [282013] by
-
- 2 edits in trunk/Source/WebKit
[GPUP] Temporarily allow access to power logging service
https://bugs.webkit.org/show_bug.cgi?id=229878
<rdar://82441564>
Reviewed by Brent Fulgham.
Temporarily allow access to power logging service in GPUP on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 12:22 PM Changeset in webkit [282012] by
-
- 5 edits in branches/safari-612.1.29-branch/Source/WebKit
Cherry-pick r282003. rdar://problem/82734034
Buffer large media XHRs in the NetworkProcess to reduce IPC overhead
https://bugs.webkit.org/show_bug.cgi?id=229813
<rdar://82406803>
Reviewed by Alex Christensen.
When playing back media through MSE, a significant amount of CPU time is spent sending
small chunks of loaded media across the XPC boundary, on the order of 16kb at a time out
of a 1-3MB resource. This large number of small XPC messages, each with a fixed cost, causes
a relatively large CPU overhead. Media loaded directly through a HTMLMediaElement already
is coalesced in the NetworkProcess on a 50ms timer.
Buffer all loads of large media resources, performed over fetch() or XHR, when those resources
have an expected length of more than 1MB, by coalescing them on the same 50ms timer as we use
for HTMLMediaElement-generated loads.
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponse):
- NetworkProcess/NetworkResourceLoader.h:
- WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::maximumBufferingTime):
- WebProcess/Network/WebLoaderStrategy.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [282011] by
-
- 2 edits in trunk/Source/WebKit
Fix race in RemoteRenderingBackend::allowsExitUnderMemoryPressure()
https://bugs.webkit.org/show_bug.cgi?id=229870
<rdar://82459484>
Reviewed by David Kilzer.
RemoteRenderingBackend::m_remoteResourceCache should only be used safely from RemoteRenderingBackend's work queue.
RemoteRenderingBackend::allowsExitUnderMemoryPressure() gets called on the main thread so we need to make sure we
dispatch to RemoteRenderingBackend's work queue before accessing m_remoteResourceCache.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::allowsExitUnderMemoryPressure const):
- 11:48 AM Changeset in webkit [282010] by
-
- 8 edits in branches/safari-612.1.29-branch/Source
Versioning.
WebKit-7612.1.29.5
- 11:15 AM Changeset in webkit [282009] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Fix WebKitAdditions directory traversal in offlineasm part 2
https://bugs.webkit.org/show_bug.cgi?id=229853
Reviewed by Mark Lam.
When DEPLOYMENT_LOCATION is YES, WEBKITADDITIONS_HEADERS_FOLDER_PATH is /usr/local/include/WebKitAdditions.
However, since Xcode implicitly changes it to ${SDKROOT}/usr/local/include/WebKitAdditions, we need to
pass the path with ${SDKROOT} if this path is used by non-Xcode.
In this patch, we replace --use-deployment-location with --webkit-additions-path=path and passing WebKitAdditions
path directly from Xcode. We define WK_WEBKITADDITIONS_INSTALL_PATH and WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH in
JavaScriptCore/Configurations/Base.xcconfig to populate this variable and pass WK_WEBKITADDITIONS_HEADERS_FOLDER_PATH
to the scripts.
We also fix offlineasm's path concatenation. It was using +, but this does not work if directory doesn't end with '/'.
We should use File.join when concatenating file paths.
- Configurations/Base.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
- offlineasm/asm.rb:
- offlineasm/generate_offset_extractor.rb:
- offlineasm/generate_settings_extractor.rb:
- offlineasm/parser.rb:
- 10:30 AM Changeset in webkit [282008] by
-
- 4 edits in trunk
REGRESSION(r280078): broke fast/images/exif-orientation-composited.html on windows
https://bugs.webkit.org/show_bug.cgi?id=228325
Reviewed by Javier Fernandez.
Source/WebCore:
The is to fix regression caused by r280078. After updating overridingLogicalWidth,
there is no need to reset the logicalWidth.
No test needed. Test fast/images/exif-orientation-composited.html is enough to cover
the affected code.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
LayoutTests:
- platform/win/TestExpectations:
- 10:27 AM Changeset in webkit [282007] by
-
- 2 edits in trunk/Source/WTF
[WK2] Turn on support for Cross-Origin-Opener-Policy / Cross-Origin-Embedder-Policy
https://bugs.webkit.org/show_bug.cgi?id=229818
Reviewed by Sam Weinig.
Turn on support for Cross-Origin-Opener-Policy / Cross-Origin-Embedder-Policy on WebKit2 now that
the feature is complete and all known issues have been fixed.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 10:10 AM Changeset in webkit [282006] by
-
- 8 edits in trunk/Source/WebKit
Clean up PrivateClickMeasurementManager interface
https://bugs.webkit.org/show_bug.cgi?id=229840
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-03
Reviewed by Kate Cheney.
Notably, PrivateClickMeasurementManager::store is now private, which makes it possible to use
the interface and have the store in a different process.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::simulateResourceLoadStatisticsSessionRestart):
(WebKit::NetworkProcess::firePrivateClickMeasurementTimerImmediately): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediatelyForTesting):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately): Deleted.
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::~PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::migratePrivateClickMeasurementFromLegacyStorage):
(WebKit::PrivateClickMeasurementManager::startTimerImmediatelyForTesting):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
- 9:47 AM Changeset in webkit [282005] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/content-security-policy/worker-src/service-* tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229875
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:42 AM Changeset in webkit [282004] by
-
- 139 edits in trunk
Drop calls to testRunner.setCloseRemainingWindowsWhenComplete() from layout tests
https://bugs.webkit.org/show_bug.cgi?id=229873
Reviewed by Sam Weinig.
Tools:
Drop testRunner.setCloseRemainingWindowsWhenComplete() implementation from WKTR and DRT
as it is a no-op.
- DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
LayoutTests:
Drop calls to testRunner.setCloseRemainingWindowsWhenComplete() from layout tests as it is
a no-op.
- fast/dom/Geolocation/window-close-crash.html:
- fast/dom/Window/closure-access-after-navigation-window.html:
- fast/dom/Window/dom-access-from-closure-window-with-gc.html:
- fast/dom/Window/dom-access-from-closure-window.html:
- fast/dom/Window/open-window-min-size.html:
- fast/dom/open-and-close-by-DOM.html:
- fast/dom/window-domurl-crash.html:
- fast/events/before-unload-navigate-different-window.html:
- fast/events/before-unload-open-window.html:
- fast/events/ios/submit-form-target-blank-using-return-key.html:
- fast/events/open-window-from-another-frame.html:
- fast/events/popup-allowed-from-gesture-initiated-event.html:
- fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
- fast/events/popup-blocked-from-fake-button-click.html:
- fast/events/popup-blocked-from-fake-focus.html:
- fast/events/popup-blocked-from-fake-user-gesture.html:
- fast/events/popup-blocked-from-history-reload.html:
- fast/events/popup-blocked-from-iframe-script.html:
- fast/events/popup-blocked-from-iframe-src.html:
- fast/events/popup-blocked-from-mousemove.html:
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
- fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
- fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
- fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
- fast/events/popup-blocked-from-untrusted-mouse-click.html:
- fast/events/popup-blocked-from-window-open.html:
- fast/events/popup-blocked-to-post-blank.html:
- fast/events/popup-blocking-click-in-iframe.html:
- fast/events/popup-when-select-change.html:
- fast/files/domurl-script-execution-context-crash.html:
- fast/forms/submit-to-blank-multiple-times.html:
- fast/frames/sandboxed-iframe-close-top-noclose.html:
- fast/frames/sandboxed-iframe-close-top.html:
- fast/history/window-open.html:
- fast/loader/cancel-load-during-port-block-timer.html:
- fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
- fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
- fast/loader/reload-zero-byte-plugin.html:
- fullscreen/full-screen-exit-when-popup.html:
- http/tests/contentextensions/block-everything-unless-domain.html:
- http/tests/contentextensions/popups.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html:
- http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window.html:
- http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html:
- http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-blocked.js:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window.html:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html:
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html:
- http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked.html:
- http/tests/security/cookies/cookie-theft-with-javascript-doc.html:
- http/tests/security/cross-origin-worker-indexeddb.html:
- http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html:
- http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html:
- http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html:
- http/tests/security/inactive-document-with-empty-security-origin.html:
- http/tests/security/insecure-geolocation.html:
- http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html:
- http/tests/security/mixedContent/data-url-iframe-in-main-frame.html:
- http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html:
- http/tests/security/mixedContent/insecure-css-in-main-frame.html:
- http/tests/security/mixedContent/insecure-css-with-secure-cookies.html:
- http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies.html:
- http/tests/security/mixedContent/insecure-form-in-main-frame.html:
- http/tests/security/mixedContent/insecure-iframe-in-main-frame.html:
- http/tests/security/mixedContent/insecure-image-in-main-frame.html:
- http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html:
- http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html:
- http/tests/security/mixedContent/insecure-image-with-securecookie-block.html:
- http/tests/security/mixedContent/insecure-image-with-securecookie.html:
- http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
- http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html:
- http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
- http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
- http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html:
- http/tests/security/mixedContent/javascript-url-form-in-main-frame.html:
- http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
- http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
- http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html:
- http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html:
- http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html:
- http/tests/security/mixedcontent-geolocation-block-insecure-content.html:
- http/tests/security/mixedcontent-geolocation.html:
- http/tests/security/originHeader/origin-header-for-empty.html:
- http/tests/security/popup-allowed-by-sandbox-is-sandboxed-control.html:
- http/tests/security/popup-allowed-by-sandbox-is-sandboxed.html:
- http/tests/security/popup-allowed-by-sandbox-when-allowed.html:
- http/tests/security/popup-blocked-from-fake-event.html:
- http/tests/security/popup-blocked-from-window-open.html:
- http/tests/security/referrer-policy-redirect-link-downgrade.html:
- http/tests/security/referrer-policy-redirect-link.html:
- http/tests/security/window-named-valueOf.html:
- http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
- http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
- http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html:
- http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
- http/tests/security/xssAuditor/link-opens-new-window.html:
- http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
- http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html:
- http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html:
- http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html:
- http/tests/storageAccess/deny-storage-access-under-opener.html:
- http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html:
- http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html:
- http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
- imported/blink/fast/events/popup-forwarded-gesture.html:
- js/dom/function-constructor-this-value.html:
- media/crash-closing-page-with-media-as-plugin-fallback.html:
- platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure.html:
- plugins/geturlnotify-during-document-teardown.html:
- plugins/navigator-plugin-crash.html:
- plugins/open-and-close-window-with-plugin.html:
- plugins/plugin-initiate-popup-window.html:
- printing/print-close-crash.html:
- 9:41 AM Changeset in webkit [282003] by
-
- 5 edits in trunk/Source/WebKit
Buffer large media XHRs in the NetworkProcess to reduce IPC overhead
https://bugs.webkit.org/show_bug.cgi?id=229813
<rdar://82406803>
Reviewed by Alex Christensen.
When playing back media through MSE, a significant amount of CPU time is spent sending
small chunks of loaded media across the XPC boundary, on the order of 16kb at a time out
of a 1-3MB resource. This large number of small XPC messages, each with a fixed cost, causes
a relatively large CPU overhead. Media loaded directly through a HTMLMediaElement already
is coalesced in the NetworkProcess on a 50ms timer.
Buffer all loads of large media resources, performed over fetch() or XHR, when those resources
have an expected length of more than 1MB, by coalescing them on the same 50ms timer as we use
for HTMLMediaElement-generated loads.
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
- NetworkProcess/NetworkResourceLoader.h:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::maximumBufferingTime):
- WebProcess/Network/WebLoaderStrategy.h:
- 9:39 AM Changeset in webkit [282002] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228642.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:28 AM Changeset in webkit [282001] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228642.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:24 AM Changeset in webkit [282000] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229874
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:15 AM Changeset in webkit [281999] by
-
- 4 edits in trunk/LayoutTests
[Mac] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=229766
<rdar://problem/82642738>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Merge flakiness fix from https://github.com/web-platform-tests/wpt/pull/30318.
- web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html:
LayoutTests:
Unskip test that should no longer be flaky.
- platform/mac/TestExpectations:
- 9:14 AM Changeset in webkit [281998] by
-
- 2 edits in trunk/Source/WebKit
Fix for debug mode with ENABLE_SERVICE_WORKER=OFF after r281706
https://bugs.webkit.org/show_bug.cgi?id=229845
Reviewed by Alex Christensen.
Put m_serviceWorkerFetchTask check into #if.
No new tests, is a build fix for having service workers off.
- NetworkProcess/NetworkResourceLoader.cpp:
- 9:10 AM Changeset in webkit [281997] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup.
https://bugs.webkit.org/show_bug.cgi?id=228642.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:02 AM Changeset in webkit [281996] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Media playback continues after backgrounding Safari
https://bugs.webkit.org/show_bug.cgi?id=229827
Reviewed by Eric Carlson.
In r277766, we make a video element ignore the background playback restriction
(HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction()
returns true)
if the video element can *potentially* enter picture-in-picture automatically
(either the video element is currently in the video fullscreen mode
or m_videoFullscreenStandby is true).
Unfortunately, this is not the correct fix if the OS has disabled the
"Start PiP Automatically" feature. The problem is that a video continues
playing after Safari is in the background.
Only when the video element is in the picture-in-picture mode, the video element
can ignore the background playback restriction.
The UI process will receive "didStartPictureInPicture" notification (if any)
and "applicationDidEnterBackground" notification in order. The UI process will
send IPC messages to the WebContent process regarding the notifications.
1) For the "didStartPictureInPicture" notification, the WebContent process will
modify the corresponding video element's presentation mode to picture-in-picture.
2) For the "applicationDidEnterBackground" notification, the WebContent process
will callPlatformMediaSession::beginInterruption()
to suspend media playback
if needed.
It is guaranteed that 1) happens before 2). Therefore, when
PlatformMediaSession::beginInterruption()
callsHTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction()
,
if the video element enters picture-in-picture ("Start PiP Automatically" is enabled),
m_videoFullscreenMode
must beVideoFullscreenModePictureInPicture
.
Therefore,HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction()
should return true whenm_videoFullscreenMode == VideoFullscreenModePictureInPicture
.
Tested manually.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
- 8:26 AM Changeset in webkit [281995] by
-
- 12 edits3 deletes in trunk
[css-writing-modes] Fix absolutely positioning with orthogonal writing modes
https://bugs.webkit.org/show_bug.cgi?id=228914
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: New wrong expected results.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Ditto.
- web-platform-tests/css/cssom/getComputedStyle-insets-absolute-expected.txt: Updated expectations.
- web-platform-tests/css/cssom/getComputedStyle-insets-fixed-expected.txt: Ditto.
Source/WebCore:
Computing the position of an absolutely positioned object was not well supported for those cases in which
the absolutely positioned child is orthogonal to its containing block, i.e. the child has horizontal writing mode
and the containing block vertical writing mode or viceversa.
This is a two level fix. First of all we had to modify the two methods that retrieve the static distance to use
the position of the perpendicular axis in those cases where we have orthogonal flows. The static distances are relative
to the container's writing mode, i.e., the inline distance of a vertical child inside a horizontal container is the child's
block position (same for a horizontal child inside a vertical container).
And the second fix was to adapt the methods that flip the position in the axis if needed. That is needed for those cases
in which we have orthogonal writing modes and either the child or the container have flipped blocks writing mode. In particular
we have to do it for the cases in which the positioned properties are not both auto because in those cases, neither
computeInlineStaticDistance() nor computeBlockStaticDistance() are called and thus no adjustment was made.
No need to add new tests because this fix unskips 48 WPT tests from css/css-writing-modes that work fine now. Apart from
that a good number of other subtests are also fixed by this patch.
- rendering/RenderBox.cpp:
(WebCore::isOrthogonal):
(WebCore::computeInlineStaticDistance): Add support for orthogonal writing modes.
(WebCore::computeLogicalLeftPositionedOffset): Ditto.
(WebCore::computeBlockStaticDistance): Ditto.
(WebCore::computeLogicalTopPositionedOffset): Ditto.
(WebCore::isVerticalLRChildInHorizontalTBParent): Deleted.
LayoutTests:
- TestExpectations: Removed 48 tests that are now passing.
- fast/repaint/selection-gap-flipped-absolute-child-expected.txt: Updated expectations.
- fast/writing-mode/table-percent-width-quirk-expected.txt: Ditto.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt: Removed.
- platform/ios/TestExpectations: Skipped several tests that show 1px diff in the result.
- platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Removed.
- platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Removed.
- 8:25 AM Changeset in webkit [281994] by
-
- 2 edits in trunk/Tools
Unreviewed iOS build fix after r281990.
- DumpRenderTree/mac/DumpRenderTree.mm:
(runTest):
- 8:11 AM Changeset in webkit [281993] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Update mock display resolution after Mac mock was updated
https://bugs.webkit.org/show_bug.cgi?id=229868
Reviewed by Philippe Normand.
r281880 added this test and swapped the resolutions of Mac's mock
SCREEN-1 and SCREEN-2. As r281305 did, this commit matches the
GStreamer mock with the mac one.
Fixes fast/mediastream/get-display-media-capabilities.html
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockDisplayCaptureSourceGStreamer::capabilities):
- 8:02 AM Changeset in webkit [281992] by
-
- 3 edits in trunk/Tools
[ews] Invoke apply-watchlist with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229864
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(ApplyWatchList):
- CISupport/ews-build/steps_unittest.py:
- 7:57 AM Changeset in webkit [281991] by
-
- 4 edits2 adds in trunk
Scrollbars on pointer-events: none element still intercepts events
https://bugs.webkit.org/show_bug.cgi?id=225229
Reviewed by Alan Bujtas.
Source/WebCore:
When hit-testing overflow scrollbars, and the resizer control, check visibleToHitTesting()
which consults the pointer-events property.
Test: fast/events/hittest-pointer-event-none-scrollbars.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::hitTestResizerInFragments const):
LayoutTests:
- fast/events/hittest-pointer-event-none-scrollbars-expected.txt: Added.
- fast/events/hittest-pointer-event-none-scrollbars.html: Added.
- 7:46 AM Changeset in webkit [281990] by
-
- 12 edits in trunk/Tools
WebKitTestRunner does not correctly close all auxiliary WebViews between tests
https://bugs.webkit.org/show_bug.cgi?id=229838
Reviewed by Alex Christensen.
I noticed when running imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https.html
in a loop that the number of WebContent processes would grow until we crash. The reason for that is that the
test opens a popup window and that popup wouldn't get closed between runs.
There was some logic in InjectedBundle::done() to close auxiliary pages but this relied on the injected
bundle API and thus only knows about pages that are in the same WebProcess. Nowadays, with process swapping,
it is common for auxiliary pages to end up in other WebProcesses. For this reason, I dropped the logic to
close auxiliary pages from InjectedBundle::done() and instead added similar logic in the UIProcess,
inside TestController::resetStateToConsistentValues().
Finally, I dropped most of the code related to testRunner.setCloseRemainingWindowsWhenComplete() while keeping
the method as a no-op for now so that I don't have to update all the layout tests in this patch (I'll follow
up). For WebKitTestRunner, testRunner.setCloseRemainingWindowsWhenComplete() was already a no-op as the data
member getting set was never queried. For DumpRenderTree, I just made this behavior the default as I don't see
any reason why we wouldn't want to close auxiliary pages between tests.
- DumpRenderTree/TestRunner.cpp:
(setCloseRemainingWindowsWhenCompleteCallback):
(TestRunner::staticFunctions):
- DumpRenderTree/TestRunner.h:
(TestRunner::setCanOpenWindows):
- DumpRenderTree/mac/DumpRenderTree.mm:
(runTest):
- DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::done):
- WebKitTestRunner/InjectedBundle/InjectedBundle.h:
(WTR::InjectedBundle::pageCount const):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::setCloseRemainingWindowsWhenComplete):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::closeOtherPage):
(WTR::TestController::createOtherPage):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::platformCreateOtherPage):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateOtherPage):
- 6:55 AM Changeset in webkit [281989] by
-
- 4 edits in trunk
[iOS 15] editing/caret/ios/caret-in-overflow-area.html is failing
https://bugs.webkit.org/show_bug.cgi?id=229830
rdar://82190832
Reviewed by Tim Horton.
Source/WebKit:
See Tools/ChangeLog for more details.
- Platform/spi/ios/TextInputSPI.h:
Tools:
In iOS 15, writing the "AutomaticMinimizationEnabled" default is no longer sufficient to ensure that only the
UCB is on-screen when the keyboard is shown after focusing an editable element with the hardware keyboard
attached in layout tests. Among other things, this causes editing/caret/ios/caret-in-overflow-area.html to fail
in newly created iOS simulators, or iOS simulators that have just had their content erased, due to the fact that
the full-height software keyboard is shown instead of the minimized UCB.
Address this by updating the workaround such that we directly call into TextInput SPI to enable automatic
keyboard minimization.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- 6:28 AM Changeset in webkit [281988] by
-
- 2 edits in trunk/Tools
Remove all WTR output before Content-Type:text/plain for WebRTC tests on BigSur
https://bugs.webkit.org/show_bug.cgi?id=229552
<rdar://problem/82390178>
Reviewed by Jonathan Bedard.
Previously we were removing stdout logging according certain patterns for webrtc tests.
Based on bot results, we now remove any stdout logging for WebRTC tests, but only for BigSur.
For that purpose, we add the empty string as detector when needed.
- Scripts/webkitpy/port/mac.py:
(MacPort.logging_detectors_to_strip_text_start):
- 6:12 AM Changeset in webkit [281987] by
-
- 9 edits in trunk/LayoutTests
Unreviewed, reverting r281973.
https://bugs.webkit.org/show_bug.cgi?id=229861
broke two ios-wk2 layout tests
Reverted changeset:
"Web Share tests are out of date"
https://bugs.webkit.org/show_bug.cgi?id=229489
https://commits.webkit.org/r281973
- 5:07 AM Changeset in webkit [281986] by
-
- 3 edits in trunk/Source/JavaScriptCore
Silence more -Wreturn-type warnings
https://bugs.webkit.org/show_bug.cgi?id=229858
Unreviewed.
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-09-03
- runtime/TemporalDuration.cpp:
(JSC::propertyName):
- runtime/TemporalObject.cpp:
(JSC::roundNumberToIncrement):
- 4:30 AM Changeset in webkit [281985] by
-
- 21 edits in trunk
Signaling state check when applying a local or remote description is no longer aligned with the WebRTC spec
https://bugs.webkit.org/show_bug.cgi?id=229138
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebasing tests.
Some tests are going from PASS to FAIL:
- LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html: we do not support yet rollback.
- LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer.html: is no longer throwing the right exception (and we are not supporting pranswer yet).
- LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription.html: we are throwing with a different exception.
- web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setDescription-transceiver-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-answer-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-pranswer-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-rollback-expected.txt:
- web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:
Source/WebCore:
These checks have been removed from the spec and are no longer valid.
Covered by rebased tests.
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::setLocalDescription):
(WebCore::PeerConnectionBackend::setRemoteDescription):
(WebCore::isLocalDescriptionTypeValidForState): Deleted.
(WebCore::isRemoteDescriptionTypeValidForState): Deleted.
- testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::MockLibWebRTCPeerConnection::SetLocalDescription):
(WebCore::MockLibWebRTCPeerConnection::SetRemoteDescription):
- testing/MockLibWebRTCPeerConnection.h:
LayoutTests:
- fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
- fast/mediastream/RTCPeerConnection-stable-expected.txt:
- 3:51 AM Changeset in webkit [281984] by
-
- 5 edits in trunk/Source
RemoteVideoSample needs CVPixelBufferRef to be kept alive, but relies on caller to retain it
<https://webkit.org/b/229806>
<rdar://problem/82684479>
Reviewed by Darin Adler.
Source/WebCore:
Covered by tests:
webrtc/video-mute.html
webrtc/video-unmute.html
- platform/graphics/RemoteVideoSample.cpp:
(WebCore::RemoteVideoSample::create):
- Pass CVPixelBufferRef to RemoteVideoSample constructor.
(WebCore::RemoteVideoSample::RemoteVideoSample):
- Change constructor to accept CVPixelBufferRef argument.
- platform/graphics/RemoteVideoSample.h:
(WebCore::RemoteVideoSample::RemoteVideoSample):
- Change constructor to accept CVPixelBufferRef argument.
- Add m_imageBuffer instance variable to hold on to the CVPixelBufferRef.
Source/WebKit:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::encodeFrame):
- Pass converted CVPixelBufferRef to RemoteVideoSample::create(). A similar change in an earlier patch for Bug 229661 caused test failures.
- 3:04 AM Changeset in webkit [281983] by
-
- 2 edits in trunk/Source/WebCore
Remove some SVG code from dirtyForLayoutFromPercentageHeightDescendants
https://bugs.webkit.org/show_bug.cgi?id=229805
Patch by Rob Buis <rbuis@igalia.com> on 2021-09-03
Reviewed by Darin Adler.
Remove some SVG code from dirtyForLayoutFromPercentageHeightDescendants
that was needed when we were using containingBlock but not anymore
now we use container in dirtyForLayoutFromPercentageHeightDescendants.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):
- 2:48 AM Changeset in webkit [281982] by
-
- 7 edits2 copies in trunk/Source/WebKit
Enable WebRTC relay for SafariViewController
https://bugs.webkit.org/show_bug.cgi?id=229768
Reviewed by Eric Carlson.
Use source application bundle identifier instead of attributed bundle identifier for nw_parameters_set_source_application_by_bundle_id.
Use attributed bundle identifier for nw_parameters_set_attributed_bundle_identifier.
Make sure to not set token data in case application bundle identifier is available.
This allows the OS to decide whether to relay the nw_connections or not.
Introduce a helper routine to share more code between UDP and TCP sockets.
Manually tested as testing relay would require non-localhost connections
and an application bundle identifier that would be known by the OS.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::NetworkRTCProvider):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
(WebKit::NetworkRTCProvider::applicationBundleIdentifier const):
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):
- NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h: Added.
- NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm: Added.
(WebKit::setNWParametersApplicationIdentifiers):
- Platform/spi/Cocoa/NWParametersSPI.h:
- WebKit.xcodeproj/project.pbxproj:
- 2:40 AM Changeset in webkit [281981] by
-
- 17 edits in trunk
Migrate to latest libwebrtc AddIceCandidate
https://bugs.webkit.org/show_bug.cgi?id=229700
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https-expected.txt:
Source/WebCore:
AddIceCandidate can now take a callback to return a RTCError which provides necessary information to reject the promise as needed.
Update binding code accordingly.
This allows to use a lambda that takes the promise instead of having the promise as a member of PeerConnectionBackend.
Covered by updated and rebased tests.
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::addIceCandidate):
(WebCore::PeerConnectionBackend::stop):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded): Deleted.
(WebCore::PeerConnectionBackend::addIceCandidateFailed): Deleted.
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addIceCandidate):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
(WebCore::LibWebRTCMediaEndpoint::addIceCandidate): Deleted.
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::doSetLocalDescription):
(WebCore::LibWebRTCPeerConnectionBackend::doSetRemoteDescription):
(WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
- testing/MockLibWebRTCPeerConnection.h:
LayoutTests:
- TestExpectations: mark failing test as flaky as an exception sometimes happen.
- fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
- fast/mediastream/RTCPeerConnection-addIceCandidate.html:
Update the test to match implementation, which makes it consistent with other browsers.
- 1:25 AM Changeset in webkit [281980] by
-
- 12 edits2 adds in trunk
Add a layout test to detect memory leaks when drawing images to a detached canvas
https://bugs.webkit.org/show_bug.cgi?id=229790
Reviewed by Darin Adler.
Source/WebCore:
Add an internal API to return the number of remote images which are cached
by WebProcess and GPUProcess. It can be used after rendering update is
finished to verify that there are no images cached because they are
referenced in a DispalyList of a detached canvas.
Test: fast/canvas/canvas-drawImage-detached-leak.html
- page/ChromeClient.h:
(WebCore::ChromeClient::remoteImagesCountForTesting const):
- testing/Internals.cpp:
(WebCore::Internals::remoteImagesCountForTesting const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
(WebKit::RemoteResourceCacheProxy::imagesCount const):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::remoteImagesCountForTesting const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::remoteImagesCountForTesting const):
- WebProcess/WebPage/WebPage.h:
LayoutTests:
Draw frames on an animated image to a detached canvas. Verify at the end
and after releasing all the image decoded frames that there are no remote
cached images.
- fast/canvas/canvas-drawImage-detached-leak-expected.txt: Added.
- fast/canvas/canvas-drawImage-detached-leak.html: Added.
- 12:25 AM Changeset in webkit [281979] by
-
- 5 edits2 adds in trunk
Use isRendererReplacedElement for SimplifiedBackwardsTextIterator
https://bugs.webkit.org/show_bug.cgi?id=229798
Patch by Frédéric Wang <fwang@igalia.com> on 2021-09-03
Reviewed by Darin Adler.
Source/WebCore:
TextIterator::advance() relies on isRendererReplacedElement to determine whether an element
should be treated as a replaced element and emit a comma ','. SimplifiedBackwardsTextIterator
has similar logic to check for replaced elements, but it has not been updated and is now
out-of-sync. This patch makes SimplifiedBackwardsTextIterator use the same function
isRendererReplacedElement, adding support for attachment (r200509), media (r158743),
element with a11y role "img" (r152388) as well as various control elements (r15966).
This makes the two iterators more consistent and facilitates code maintenance.
Tests: editing/text-iterator/backwards-text-iterator-attachment.html
editing/text-iterator/backwards-text-iterator.html
- editing/TextIterator.cpp:
(WebCore::SimplifiedBackwardsTextIterator::advance): Use isRendererReplacedElement.
LayoutTests:
Add new tests for SimplifiedBackwardsTextIterator, covering all new cases except media
elements. media-emits-object-replacement.html was added in r158743 but removed in r274810
with all the tests relying on ModernMediaControlsEnabled=false. Also, similar tests for
TextIterator (plainTextWithTextIterator) are note added, because its handleReplacedElement
function is more more complex and does not emit a comma by default.
- editing/text-iterator/backwards-text-iterator-attachment-expected.txt: Added.
- editing/text-iterator/backwards-text-iterator-attachment.html: Added. Checks that a comma
is emited for <attachment> element.
- editing/text-iterator/backwards-text-iterator-basic-expected.txt: Add the new result.
- editing/text-iterator/backwards-text-iterator-basic.html: Check the remaining cases besides
attachment and media.
Sep 2, 2021:
- 9:34 PM Changeset in webkit [281978] by
-
- 2 edits in trunk/Source/WebCore
Let content with newlineCharacter be measured by FontCascade::widthForSimpleText
https://bugs.webkit.org/show_bug.cgi?id=229849
Reviewed by Simon Fraser.
This logic was added as part of r281423 to make sure we properly compute the advance width of certain characters by
avoiding the simplified measuring codepath.
However in case of newlineCharacter/carriageReturn:
- they are treated as _space_ when preserved
- the _space_ character takes the simplified codepath
We should be fine taking the simplified codepath when such characters are present.
This also caused regression on certain text heavy micro-benchmarks on perf.webkit.org.
Let's restore the pre-r281423 (long time) behavior while figuring out what to do with such characters.
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):
- 8:36 PM Changeset in webkit [281977] by
-
- 5 edits in trunk/Tools
[GLIB] Install lcms2 in helper dependencies script
https://bugs.webkit.org/show_bug.cgi?id=229173
Reviewed by Carlos Alberto Lopez Perez.
lcms2 support is enabled by default since r274273.
- glib/dependencies/apt:
- glib/dependencies/dnf:
- glib/dependencies/pacman:
- gtk/dependencies/brew:
- 8:28 PM Changeset in webkit [281976] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Mark fast/text/trak-optimizeLegibility.html as ImageOnlyFailure rather than Skip
https://bugs.webkit.org/show_bug.cgi?id=229823
This test is not applicable for GLIB as nothing different is done when
optimizeLegibility is set, but at least it should not crash.
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-02
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 8:14 PM Changeset in webkit [281975] by
-
- 6 edits in trunk
The CSS Font Loading API shouldn't be able to delete a CSS-connected font
https://bugs.webkit.org/show_bug.cgi?id=229640
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-expected.txt:
Source/WebCore:
https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-delete
"1. If font is CSS-connected, return false and exit this algorithm immediately."
Tests: web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected.html
web-platform-tests/css/css-font-loading/fontfaceset-delete-css-connected-2.html
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::remove):
LayoutTests:
- 7:53 PM Changeset in webkit [281974] by
-
- 2 edits in trunk/Tools
[WPE] form-submission-steps API test is also flaky timing out like GTK
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 7:21 PM Changeset in webkit [281973] by
-
- 9 edits in trunk/LayoutTests
Web Share tests are out of date
https://bugs.webkit.org/show_bug.cgi?id=229489
Patch by Marcos Caceres <Marcos Caceres> on 2021-09-02
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
- web-platform-tests/web-share/canShare.https.html:
- web-platform-tests/web-share/share-consume-activation.https.html:
- web-platform-tests/web-share/share-empty.https.html:
- web-platform-tests/web-share/share-securecontext.http.html:
- web-platform-tests/web-share/share-simple-manual.https.html:
LayoutTests:
- platform/mac-wk2/imported/w3c/web-platform-tests/web-share/canShare.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/web-share/share-empty.https-expected.txt:
- 7:14 PM Changeset in webkit [281972] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC] Fix WebKitAdditions directory traversal in offlineasm
https://bugs.webkit.org/show_bug.cgi?id=229841
Reviewed by Mark Lam.
When DEPLOYMENT_LOCATION is YES, WebKitAdditions directory becomes /usr/local/include/WebKitAdditions.
This patch adds --use-deployment-location option to generate_offset_extractor.rb, generate_settings_extractor.rb,
and asm.rb. And they pass it to parser to change the include directory.
- JavaScriptCore.xcodeproj/project.pbxproj:
- offlineasm/asm.rb:
- offlineasm/generate_offset_extractor.rb:
- offlineasm/generate_settings_extractor.rb:
- offlineasm/parser.rb:
- 6:38 PM Changeset in webkit [281971] by
-
- 2 edits in trunk/Source/WebCore
Relative -webkit-scrollbar width value may lead to unstable layout
https://bugs.webkit.org/show_bug.cgi?id=229833.
<rdar://80336247>
Reviewed by Simon Fraser.
The way we resolve the relative property value for the webkit-scrollbar width (using the owning renderer’s width) can lead to unstable layout with
circular dependency. While -webkit-scrollbar itself is non-standard, Chrome supports it but not with relative width/height values. They are resolved to 0px.
Here we use the default platform value instead.
- rendering/RenderScrollbarPart.cpp:
(WebCore::calcScrollbarThicknessUsing): Do not try to resolve the relative length value.
(WebCore::RenderScrollbarPart::computeScrollbarWidth):
(WebCore::RenderScrollbarPart::computeScrollbarHeight):
- 6:17 PM Changeset in webkit [281970] by
-
- 3 edits2 adds in trunk
REGRESSION (r280767): Caret color is black after pasting rich text in Mail compose in dark mode
https://bugs.webkit.org/show_bug.cgi?id=229808
rdar://82600990
Reviewed by Tim Horton.
Source/WebKit:
Partially revert one of the changes in r280767 that makes caret-color follow the immediate container node of the
selection caret, rather than the focused element (which it previously used). This was effectively a drive-by fix
for a FIXME about allowingcaret-color
to match child containers inside the root editable container element.
While this matches behavior on macOS, this change also causes the caret color to become black when pasting rich
text copied in dark mode, since we writecaret-color: rgb(0, 0, 0);
to the pasteboard when copying the editing
style for rich text.
In the short term, we should restore old (pre-r280767)
caret-color
on iOS; in the slightly longer term, I've
filed bug #229809 to track unifying macOS and iOS caret-color behavior, with respect to nested editable
container nodes.
To retain the fix for rdar://81674787 without exhibiting the above bug, we use the selection's root editable
container (rather thanm_focusedElement
, which was used prior to r280767).
Test: editing/caret/ios/caret-color-in-nested-editable-containers.html
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPlatformEditorState const):
Also adjust this logic so that we only attempt the tree-walk to find the root editable element if the selection
has editable style.
LayoutTests:
Add a test to exercise the behavior of different
caret-color
values in nested editable elements.
- editing/caret/ios/caret-color-in-nested-editable-containers-expected.txt: Added.
- editing/caret/ios/caret-color-in-nested-editable-containers.html: Added.
- 6:10 PM Changeset in webkit [281969] by
-
- 5 edits1 add in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- platform/wincairo/editing/caret/caret-color-expected.txt:
- platform/wincairo/fast/css/font-face-weight-matching-expected.txt:
- platform/wincairo/fast/text/fixed-pitch-control-characters-expected.txt: Added.
- platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
- 5:57 PM Changeset in webkit [281968] by
-
- 2 edits in trunk/Tools
[webkit-patch] apply-watchlist command fails on python 3 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=229822
<rdar://problem/82691261>
Reviewed by Aakash Jain.
- Scripts/webkitpy/common/checkout/diff_parser.py:
(get_diff_converter): Potentially decode bytes.
- 4:54 PM Changeset in webkit [281967] by
-
- 16 edits9 adds in trunk
Changes to clip-path and filter SVG elements referenced by CSS don't trigger repaints
https://bugs.webkit.org/show_bug.cgi?id=204204
Reviewed by Antti Koivisto.
Source/WebCore:
Create a mechanism that allows SVG clipping and filter resources referenced from
CSS to trigger repaints when they change. This fixes bugs where change to the
SVG, via script or animations, failed to cause CSS-rendered elements that
reference them, via clip-path:url(#foo) or filter:url(#foo) to repaint.
The key is that SVGElement stores a set of SVGResourceElementClients, as it does for
element references which are the equivalent for intra-SVG resource refs.
RenderElementRareData holds a ReferencedSVGResources class, which stores a map
of resourceID -> SVGResourceElementClient, and its implementation of SVGResourceElementClients
triggers the repaint.
ReferencedSVGResources are updated after a style change, which works because
they only ever find elements, not SVG renderers.
Change filter and clip-path code go via ReferencedSVGResources to find their
appropriate filter element or clipping renderer, for cleanliness.
Tests: css3/filters/reference-filter-change-repaint.html
css3/masking/reference-clip-path-animate-transform-repaint.html
css3/masking/reference-clip-path-change-repaint.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildReferenceFilter): Remove some code related to looking
for resources in external documents, since this functionality was removed.
- rendering/ReferencedSVGResources.cpp: Added.
(WebCore::CSSSVGResourceElementClient::resourceChanged):
(WebCore::ReferencedSVGResources::ReferencedSVGResources):
(WebCore::ReferencedSVGResources::~ReferencedSVGResources):
(WebCore::ReferencedSVGResources::removeClientForTarget):
(WebCore::ReferencedSVGResources::referencedSVGResourceIDs):
(WebCore::ReferencedSVGResources::updateReferencedResources):
(WebCore::ReferencedSVGResources::elementForResourceID):
(WebCore::ReferencedSVGResources::referencedFilterElement):
(WebCore::ReferencedSVGResources::referencedClipperRenderer):
- rendering/ReferencedSVGResources.h: Added.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::ensureReferencedSVGResources):
(WebCore::RenderElement::clearReferencedSVGResources):
(WebCore::RenderElement::updateReferencedSVGResources):
- rendering/RenderElement.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):
- rendering/RenderObject.h:
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData): Deleted.
- rendering/svg/RenderSVGResource.cpp:
(WebCore::removeFromCacheAndInvalidateDependencies):
- svg/SVGElement.cpp:
(WebCore::SVGElement::referencingCSSClients const):
(WebCore::SVGElement::addReferencingCSSClient):
(WebCore::SVGElement::removeReferencingCSSClient):
- svg/SVGElement.h:
- svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::addReferencingCSSClient):
(WebCore::SVGElementRareData::removeReferencingCSSClient):
(WebCore::SVGElementRareData::referencingCSSClients const):
- svg/SVGResourceElementClient.h: Added.
LayoutTests:
Repaint tests that detect repaints when referenced clips or filters change.
- css3/filters/reference-filter-change-repaint-expected.txt: Added.
- css3/filters/reference-filter-change-repaint.html: Added.
- css3/masking/clip-path-reference-local-url-with-base.html:
- css3/masking/reference-clip-path-animate-transform-repaint-expected.txt: Added.
- css3/masking/reference-clip-path-animate-transform-repaint.html: Added.
- css3/masking/reference-clip-path-change-repaint-expected.txt: Added.
- css3/masking/reference-clip-path-change-repaint.html: Added.
- 4:39 PM Changeset in webkit [281966] by
-
- 2 edits in trunk/Tools
[GLIB] run-gtk-tests does not require GI outside the sandbox
https://bugs.webkit.org/show_bug.cgi?id=229836
Reviewed by Jonathan Bedard.
Some worker bots were failing without python3-gi installed, but it's
not required as the flatpak env provides it.
- Scripts/run-gtk-tests:
- 4:25 PM Changeset in webkit [281965] by
-
- 6 edits in trunk
Gracefully recover from WebAuthnProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=229828
Source/WebKit:
<rdar://82682650>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Chris Dumez.
When a WebAuthn process closes, it can't be connected with again, which causes persistent web process "crashes".
Let's start a new process when this happens instead.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _webAuthnProcessIdentifier]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
(WebKit::sharedProcess):
(WebKit::WebAuthnProcessProxy::singleton):
(WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Chris Dumez.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 4:21 PM Changeset in webkit [281964] by
-
- 6 edits in trunk
[ BigSur arm64 Debug EWS ] ASSERTION FAILED: m_uncommittedState.state == State::Provisional
https://bugs.webkit.org/show_bug.cgi?id=229769
<rdar://problem/82645706>
Reviewed by Alex Christensen.
Source/WebKit:
I am unable to reproduce the crash but we know that we're crashing when committing the load
after a process-swap, because the WebPageProxy doesn't know that a provisional load is going
on. One possible explanation for this, and the most likely one is that the WebPageProxy got
a DidFailProvisionalLoadForFrame IPC from the current process while the provisional load is
proceeding in the new provisional process. We had logic in WebPageProxy::didFailProvisionalLoadForFrame()
to try and discard such IPC but the check was relying on the navigationID and was therefore
fragile. I updated the check in didFailProvisionalLoadForFrame() to ignore all
DidFailProvisionalLoadForFrame IPCs for the main frame from the current process when there
is a ProvisionalPageProxy, without relying on the navigationID. This should be more robust
and will hopefully fix this flaky crash.
No new tests, unskipped existing tests.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
- UIProcess/WebPageProxy.h:
LayoutTests:
Unskip test that should no longer be flakily crashing in debug.
- platform/mac-wk2/TestExpectations:
- 4:10 PM Changeset in webkit [281963] by
-
- 20 edits in trunk
Reject non-IPv4 hostnames that end in numbers
https://bugs.webkit.org/show_bug.cgi?id=228826
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
- web-platform-tests/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt:
This test has its expectations change because, in our test infrastructure, it loads a url with host "www1.127.0.0.1" which this change now rejects.
When run from wpt.fyi this is not the case.
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/failure-expected.txt:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor.any-expected.txt:
- web-platform-tests/url/url-constructor.any.worker-expected.txt:
- web-platform-tests/url/url-origin.any-expected.txt:
- web-platform-tests/url/url-origin.any.worker-expected.txt:
Source/WTF:
This implements a recent change to the URL specification at https://github.com/whatwg/url/pull/619
Chrome has made the same change in https://crbug.com/1237032
Since there are no TLDs that are only numbers and some think it might be confusing to have a valid URL
like http://example.com.127.0.0.1/ we prevent URLs that end in a segment between dots that contains only
numbers from parsing successfully.
- wtf/URLParser.cpp:
(WTF::URLParser::parse):
(WTF::dnsNameEndsInNumber):
(WTF::URLParser::parseHostAndPort):
I give more information in the return type so one can tell what the code is doing.
We only check if it is valid or not, but for documentation purposes I think it's useful to return more information.
- wtf/URLParser.h:
Tools:
- TestWebKitAPI/Tests/WTF/URLParser.cpp:
(TestWebKitAPI::TEST_F):
Update expectations for a few strange URLs that are no longer valid.
LayoutTests:
- fast/url/ipv4-expected.txt:
- fast/url/ipv4.html:
- 4:06 PM Changeset in webkit [281962] by
-
- 2 edits in trunk/LayoutTests
[BigSur Release wk2] webgl/2.0.0/conformance2/textures/video/tex-2d-r8ui-red_integer-unsigned_byte.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229837.
Unreviewed test gardening.
- platform/mac-bigsur-wk2/TestExpectations:
- 4:03 PM Changeset in webkit [281961] by
-
- 3 edits4 adds4 deletes in trunk/Source/WebKit
Move PrivateClickMeasurementManager and PrivateClickMeasurementNetworkLoader into PrivateClickMeasurement directory
https://bugs.webkit.org/show_bug.cgi?id=229835
Reviewed by Tim Horton.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp.
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementNetworkLoader.cpp.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h: Renamed from Source/WebKit/NetworkProcess/PrivateClickMeasurementNetworkLoader.h.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- 3:44 PM Changeset in webkit [281960] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Gather logs for IOKit class
https://bugs.webkit.org/show_bug.cgi?id=228784
Reviewed by Brent Fulgham.
Add telemetry for an IOKit class on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 3:29 PM Changeset in webkit [281959] by
-
- 3 edits in trunk/LayoutTests
[ Mac EWS ] imported/w3c/web-platform-tests/beacon/beacon-redirect.https.window.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229832
Unreviewed test gardening.
- platform/ios-15/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 3:09 PM Changeset in webkit [281958] by
-
- 6 edits in trunk/Tools
[run-perf-tests] Add support for python3 and use it by default
https://bugs.webkit.org/show_bug.cgi?id=229783
Reviewed by Jonathan Bedard.
Make the script compatible with python3 and set it to use python3
by default. The script is still compatible with python2.
- CISupport/build-webkit-org/steps.py:
(RunAndUploadPerfTests):
- Scripts/run-perf-tests:
- Scripts/webkitpy/common/net/file_uploader.py:
(FileUploader._upload_data.callback):
(FileUploader):
- Scripts/webkitpy/performance_tests/perftestsrunner.py:
- Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.test_upload_json):
- 3:00 PM Changeset in webkit [281957] by
-
- 2 edits in trunk/LayoutTests
[ MacOS EWS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229831
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:59 PM Changeset in webkit [281956] by
-
- 4 edits in trunk/Tools
[contributors.json] Relocation (Part 6)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>
Reviewed by Yusuke Suzuki.
- WebKitBot/src/Commit.mjs: Use name instead of fullName.
- WebKitBot/src/Contributors.mjs: Load contributors from metadata/contributors.json,
parse as list instead of dictionary.
- WebKitBot/tests/Commit.test.mjs: Load contributors from metadata/contributors.json.
- 2:49 PM Changeset in webkit [281955] by
-
- 11 edits in trunk/Source
[iOS] Simplify date picker logic for datetime-local inputs
https://bugs.webkit.org/show_bug.cgi?id=229773
Reviewed by Darin Adler.
Source/WebCore:
- platform/DateComponents.cpp:
Add comments pointing to the specification for parsing date/time information.
Source/WebKit:
Currently, the date picker logic for getting/setting the value of a
datetime-local input relies on the numeric value of input. This
logic differs from logic for date, time, and month inputs, where we use
the string value of the input. This patch simplifies the code by using
string values for all the date/time input types.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
- UIProcess/ios/WebPageProxyIOS.mm:
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker initWithView:datePickerMode:]):
Set the format string for datetime-local inputs, matching the spec.
(-[WKDateTimePicker _sanitizeInputValueForFormatter:]):
Sanitize datetime-local values to remove seconds and milliseconds
information. UIKit does not support anything beyond minute granularity.
(-[WKDateTimePicker dateFormatterForPicker]):
(-[WKDateTimePicker _dateChanged]):
Always use setValueAsString, matching the other date/time inputs.
Time zone conversion before sending the date back to the web process
is no longer needed.
(-[WKDateTimePicker setDateTimePickerToInitialValue]):
Time zone conversion when retrieving the date from the web process is no
longer needed.
(-[WKDateTimePicker controlBeginEditing]):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
- 2:36 PM Changeset in webkit [281954] by
-
- 3 edits in trunk/LayoutTests
[ iOS & Win ] css3/filters/canvas-with-filter-after-repaint.html is flaky image failing.
https://bugs.webkit.org/show_bug.cgi?id=229829
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/win/TestExpectations:
- 2:17 PM Changeset in webkit [281953] by
-
- 2 edits in trunk/Tools
[webkit-patch] apply-watchlist command fails on python 3
https://bugs.webkit.org/show_bug.cgi?id=229822
<rdar://problem/82691261>
Reviewed by Aakash Jain.
- Scripts/webkitpy/common/checkout/diff_parser.py:
(DiffParser._parse_into_diff_files): Ensure all diff lines are strings.
- 2:09 PM Changeset in webkit [281952] by
-
- 2 edits in trunk/Tools
[webkitpy] WrappedPopen breaks process returncode
https://bugs.webkit.org/show_bug.cgi?id=229824
Reviewed by Carlos Alberto Lopez Perez.
- Scripts/webkitpy/common/system/executive.py:
(WrappedPopen.init): Define underlying object.
(WrappedPopen.returncode): Return underlying object's returncode.
- 1:41 PM Changeset in webkit [281951] by
-
- 8 edits in trunk
FontFaceSet.add() needs to throw when called on a CSS-connected font
https://bugs.webkit.org/show_bug.cgi?id=229641
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected-expected.txt:
Source/WebCore:
https://drafts.csswg.org/css-font-loading-3/#dom-fontfaceset-add
"2. If font is CSS-connected, throw an InvalidModificationError exception and exit this algorithm immediately."
Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-add-css-connected.html
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::add): Deleted.
- css/FontFaceSet.h:
LayoutTests:
- fast/text/font-face-set-document-expected.txt:
- fast/text/font-face-set-document.html:
- 1:31 PM Changeset in webkit [281950] by
-
- 2 edits in trunk/Source/WebCore
Leak of VTImageRotationSessionRef (176 bytes) in com.apple.WebKit.GPU.Development process
<https://webkit.org/b/229781>
<rdar://problem/82651897>
Reviewed by Darin Adler.
- platform/graphics/cv/ImageRotationSessionVT.mm:
(WebCore::ImageRotationSessionVT::initialize):
- Add missing adoptCF() to fix the leak.
- 1:13 PM Changeset in webkit [281949] by
-
- 8 edits in branches/safari-612.1.29.41-branch/Source
Versioning.
WebKit-7612.1.29.41.1
- 1:02 PM Changeset in webkit [281948] by
-
- 8 edits4 adds in trunk
[MSE][GPUP] SourceBufferPrivateAVFObjC does not work properly when audio and video exchange their track IDs
https://bugs.webkit.org/show_bug.cgi?id=229617
Reviewed by Jer Noble.
Source/WebCore:
When a page appends a new initialization segment with new track IDs, the
SourceBuffer
notifies itsSourceBufferPrivate
about that. If aSourceBuffer
has only
one audio track and one video track, theSourceBufferPrivate
will update its
hash map (m_trackBufferMap
), which maps track IDs to track buffers of audio and
video data.
In a special case that the new initialization segment switches the track IDs of
audio and video, e.g., currently audio and video have track IDs 2 and 1 respectively,
while the new initialization segment defines audio and video track IDs as 1 and 2,
the current implementation ofSourceBuffer/SourceBufferPrivate
will overwrite
one key in the hash map, and eventually the hash map will have only one key.
This patch fixes this bug by creating a new hash map instead of updating the hash
map in-place.
Test: media/media-source/media-source-init-segment-swap-track-ids.html
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::updateTrackIds):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
AudioTrackPrivate::EnabledChangedCallback
andVideoTrackPrivate::SelectedChangedCallback
should be called after the initialization segment is handled.
BecauseSourceBuffer
may update the track IDs of audio and video when processing the
initialization segment, and the hash map ofSourceBufferPrivate
will be changed accordingly.
We should not enqueue samples to the parser (in those callbacks) before the hash map change
is completed.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
Fix a minor issue in the log.
Source/WebKit:
Fix the bug in updating the hash map by creating a new one instead of
updating the hash map in-place.
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::updateTrackIds):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):
- WebProcess/GPU/media/SourceBufferPrivateRemote.h:
LayoutTests:
- media/media-source/content/test-fragmented-swap-track-ids-manifest.json: Added.
- media/media-source/content/test-fragmented-swap-track-ids.mp4: Added.
- media/media-source/media-source-init-segment-swap-track-ids-expected.txt: Added.
- media/media-source/media-source-init-segment-swap-track-ids.html: Added.
- 12:39 PM Changeset in webkit [281947] by
-
- 250 edits3 adds in trunk
Add support for CSSKeywordValue in CSS Typed OM
https://bugs.webkit.org/show_bug.cgi?id=229705
Patch by Johnson Zhou <qiaosong_zhou@apple.com> on 2021-09-02
Reviewed by Alex Christensen.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- css/typedom/CSSKeywordValue.cpp: Added.
(WebCore::CSSKeywordValue::create):
(WebCore::CSSKeywordValue::setValue):
- css/typedom/CSSKeywordValue.h: Added.
(WebCore::CSSKeywordValue::value):
(WebCore::CSSKeywordValue::CSSKeywordValue):
(isType):
- css/typedom/CSSKeywordValue.idl: Added.
- 12:18 PM Changeset in webkit [281946] by
-
- 2 edits in trunk/LayoutTests
[iOS14] imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-atomic-nowrap-001.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229821.
Unreviewed test gardening.
- platform/ios-14/TestExpectations:
- 12:14 PM Changeset in webkit [281945] by
-
- 2 edits in trunk/LayoutTests
[ BigSur arm64 EWS ] ASSERTION FAILED: !needsLayout() ./rendering/RenderView.cpp(305) : virtual void WebCore::RenderView::paint(WebCore::PaintInfo &, const WebCore::LayoutPoint &).
https://bugs.webkit.org/show_bug.cgi?id=229820
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:57 AM Changeset in webkit [281944] by
-
- 6 edits3 adds in trunk/Source/WebKit
Introduce PCM::Client for PrivateClickMeasurementManager
https://bugs.webkit.org/show_bug.cgi?id=229789
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Kate Cheney.
This makes it so that PrivateClickMeasurementManager can run in environments other than the NetworkProcess.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h: Added.
(WebKit::PCM::Client::~Client):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp: Added.
(WebKit::PCM::ClientImpl::ClientImpl):
(WebKit::PCM::ClientImpl::loadFromNetwork):
(WebKit::PCM::ClientImpl::broadcastConsoleMessage):
(WebKit::PCM::ClientImpl::featureEnabled const):
(WebKit::PCM::ClientImpl::debugModeEnabled const):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h: Added.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
(WebKit::PrivateClickMeasurementManager::featureEnabled const):
(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):
- NetworkProcess/PrivateClickMeasurementManager.h:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- 11:53 AM Changeset in webkit [281943] by
-
- 1 copy in branches/safari-612.1.29.41-branch
New branch.
- 11:41 AM Changeset in webkit [281942] by
-
- 2 edits in trunk/Tools
[GTK][WPE] Port API test runner to python3 (v2)
https://bugs.webkit.org/show_bug.cgi?id=229782
Unreviewed follow-up fix after r281919
Remove change on the shebang of run-perf-tests that doesn't belong to this patch,
not sure how this ended here, seems I messed it when working on the patch for bug 229783
- Scripts/run-perf-tests:
- 11:37 AM Changeset in webkit [281941] by
-
- 8 edits in trunk
[COOP] html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=229716
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/html/cross-origin-opener-policy/coop-navigate-same-origin-csp-sandbox-expected.txt:
Source/WebCore:
The COOP algorithm is relying on the response origin for some of the checks. We were computing the
response origin viaSecurityOrigin::create(response.url())
, which worked fine in most cases.
However, the response may contain a CSP header, which could set sandbox flags. If sandbox flags
are set, the response origin should be unique, not the origin of the response URL. This patch fixes
that.
No new tests, rebaselined existing WPT test.
- loader/DocumentLoader.cpp:
(WebCore::computeResponseOriginAndCOOP):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::contentSecurityPolicy const):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::ContentSecurityPolicy::didReceiveHeaders):
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::sandboxFlags const):
- 11:35 AM Changeset in webkit [281940] by
-
- 7 edits in trunk/Tools
Move few scripts from python 2 to python3
https://bugs.webkit.org/show_bug.cgi?id=229817
Reviewed by Jonathan Bedard.
- Scripts/clean-webkit: Changed shebang to python3.
- CISupport/test-result-archive: Ditto.
- CISupport/ews-build/steps.py: Ditto.
- CISupport/build-webkit-org/steps.py:
(DownloadBuiltProduct): Use python 3 instead of python 2.
(ArchiveTestResults): Ditto.
- CISupport/download-built-product: Ditto.
(CleanWorkingDirectory):
(DownloadBuiltProduct):
(ArchiveTestResults):
- CISupport/ews-build/steps_unittest.py: Updated unit-tests.
- 11:33 AM Changeset in webkit [281939] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] ScriptExecutable::newCodeBlockFor should handle exceptions more predictably
https://bugs.webkit.org/show_bug.cgi?id=229787
Reviewed by Mark Lam.
ScriptExecutable::newCodeBlockFor has four codepaths -- one for each of EvalExecutable, ProgramExecutable,
ModuleProgramExecutable, and FunctionExecutable. These all end up in bool CodeBlock::finishCreation(...),
but the first three overwrite the current exception with an OOM error while the last does not.
Furthermore, newCodeBlockFor handles exceptions via an out param, which is then returned by its single caller,
prepareForExecutionImpl.
Altogether, this results in some questionable checking of the returned exception against throwScope.exception()
at prepareForExecution's callsites in Interpreter and elsewhere.
This patch aims to make this exception handling clearer and more consistent by:
- not overwriting an existing exception with an OOM error
- doing away with the out param in favor of RETURN_IF_EXCEPTION
- bytecode/CodeBlock.h:
(JSC::ScriptExecutable::prepareForExecution):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::execute):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::virtualForWithFunction):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):
- runtime/ScriptExecutable.h:
- 11:31 AM Changeset in webkit [281938] by
-
- 3 edits in trunk/Tools
[contributors.json] Relocation (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>
Reviewed by Aakash Jain.
- CISupport/ews-build/steps.py:
(ValidateCommiterAndReviewer): Pull from metadata/contributors.json.
(ValidateCommiterAndReviewer.load_contributors_from_disk): Ditto.
(ValidateCommiterAndReviewer.load_contributors): Parse contributors.json as list instead of dictionary.
- CISupport/ews-build/steps_unittest.py:
- 10:51 AM Changeset in webkit [281937] by
-
- 2 edits in trunk/LayoutTests
Reset expectations for fast/mediastream/get-display-media-capabilities.html.
https://bugs.webkit.org/show_bug.cgi?id=229812.
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:32 AM Changeset in webkit [281936] by
-
- 2 edits in trunk/Websites/bugs.webkit.org
[contributors.json] Relocation (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>
Reviewed by Aakash Jain.
- committers-autocomplete.js: Use metadata/contributors.json.
(parseCommittersPy): Parse contributors.json as list instead of dictionary.
- 10:25 AM Changeset in webkit [281935] by
-
- 11 edits3 adds in trunk
[COOP] Cross origin isolation doesn't happen when going from an HTTP URL to a HTTPS one with COOP+COEP
https://bugs.webkit.org/show_bug.cgi?id=229745
<rdar://problem/82630927>
Reviewed by Alex Christensen.
Source/WebCore:
When calling obtainCrossOriginOpenerPolicy() / obtainCrossOriginEmbedderPolicy() to get the COOP / COEP
policy from a resource response, we should check if the response's URL is potentially trustworty to
determine if COOP/COEP apply, instead of relying on the current context's isSecureContext().
When navigating from a HTTP URL to a HTTPS one with COOP+COEP, we obviously want cross-origin isolation
to happen, even if the source context is not a secure context.
Test: http/wpt/cross-origin-opener-policy/non-secure-to-secure-context-navigation.https.html
- loader/CrossOriginEmbedderPolicy.cpp:
(WebCore::obtainCrossOriginEmbedderPolicy):
- loader/CrossOriginEmbedderPolicy.h:
- loader/CrossOriginOpenerPolicy.cpp:
(WebCore::obtainCrossOriginOpenerPolicy):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):
- workers/WorkerScriptLoader.h:
Source/WebKit:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::processResponse):
LayoutTests:
Add layout test coverage.
- http/wpt/cross-origin-opener-policy/non-secure-to-secure-context-navigation.https-expected.txt: Added.
- http/wpt/cross-origin-opener-policy/non-secure-to-secure-context-navigation.https.html: Added.
- http/wpt/cross-origin-opener-policy/resources/non-secure-to-secure-context-navigation-popup.html: Added.
- 10:23 AM Changeset in webkit [281934] by
-
- 2 edits in trunk/Source/WebCore
Remove optimistic assertion from r281860
https://bugs.webkit.org/show_bug.cgi?id=229751
This assertion was being hit in debug WK1 tests because of the way ResourceHandle updates timing data.
When it is hit, there is no issue. It is replacing data with equal data.
- page/PerformanceNavigationTiming.cpp:
(WebCore::PerformanceNavigationTiming::navigationFinished):
- 10:20 AM Changeset in webkit [281933] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix IndexedDoubleStore InlineAccess for 32 bits
https://bugs.webkit.org/show_bug.cgi?id=229772
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-09-02
Reviewed by Caio Araujo Neponoceno de Lima.
In IndexedDoubleStore inline access, the path if the value is NaN
is only being handled in 64 bits, thus introducing some wrong
results in 32 bits. This patch fixes:
stress/double-add-sub-mul-can-produce-nan.js
stress/pow-stable-results.js
stress/math-pow-stable-results.js
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateWithGuard):
- 9:42 AM Changeset in webkit [281932] by
-
- 3 edits in trunk/Websites/webkit.org
[contributors.json] Relocation (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=229690
<rdar://problem/82552403>
Reviewed by Aakash Jain.
- commit-review.md: Link to metadata/contributors.json.
- wp-content/themes/webkit/team.php: Load from metadata/contributors.json,
load list instead of dictionary.
- 9:41 AM Changeset in webkit [281931] by
-
- 2 edits in trunk/LayoutTests
[iOS] fast/mediastream/get-display-media-capabilities.html is a flaky failure and crash.
https://bugs.webkit.org/show_bug.cgi?id=229812.
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:39 AM Changeset in webkit [281930] by
-
- 13 edits in trunk
Add more inert checks for selection-related functionality
https://bugs.webkit.org/show_bug.cgi?id=229728
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt:
Source/WebCore:
Test: LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html
- dom/Position.cpp:
(WebCore::Position::nodeIsInertOrUserSelectNone):
(WebCore::Position::isCandidate const):
(WebCore::Position::nodeIsUserSelectNone): Deleted.
(WebCore::Position::nodeIsUserSelectAll):
- dom/Position.h:
- dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate const):
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::collectSelectionGeometriesInternal):
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionPositionInformation):
LayoutTests:
- 9:37 AM Changeset in webkit [281929] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] SHOULD NEVER BE REACHED ./Modules/mediastream/MediaStreamTrack.cpp(294) : WebCore::DoubleRange WebCore::capabilityDoubleRange(const WebCore::CapabilityValueOrRange &).
https://bugs.webkit.org/show_bug.cgi?id=229810
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Now test is skipping on iOS
- 9:33 AM Changeset in webkit [281928] by
-
- 7 edits in trunk
[CSS Cascade Layers] Support layer argument in @import rules
https://bugs.webkit.org/show_bug.cgi?id=229795
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/layer-import-expected.txt:
Source/WebCore:
Add support for
@import "style.css" layer;
@import "style.css" layer(foo);
- css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::create):
(WebCore::StyleRuleImport::StyleRuleImport):
Add layer name member.
- css/StyleRuleImport.h:
- css/parser/CSSParserImpl.cpp:
(WebCore::consumeCascadeLayerName):
Factor into a standalone function.
(WebCore::CSSParserImpl::consumeImportRule):
Parse layer and layer() arguments for @import.
(WebCore::CSSParserImpl::consumeLayerRule):
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::Builder::addRulesFromSheet):
Register the layers specified in import rules.
- 9:22 AM Changeset in webkit [281927] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] SHOULD NEVER BE REACHED ./Modules/mediastream/MediaStreamTrack.cpp(294) : WebCore::DoubleRange WebCore::capabilityDoubleRange(const WebCore::CapabilityValueOrRange &).
https://bugs.webkit.org/show_bug.cgi?id=229810
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:19 AM Changeset in webkit [281926] by
-
- 13 edits in trunk
Migrate LibWebRTCMediaEndpoint from OnRenegotiationNeeded to OnRenegotiationNeededEvent
https://bugs.webkit.org/show_bug.cgi?id=229562
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnection-setRemoteDescription-rollback-expected.txt:
We are making progress by going further in the test.
Source/WebCore:
OnRenegotiationNeededEvent is the more spec-aligned version of OnRenegotiationNeeded.
We switch to it and update to check for validity of the event by using the given eventId.
We can remove some state variables like m_negotiationNeeded given we use the backend with eventId to know whether we can send the event.
Covered by existing tests.
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::markAsNeedingNegotiation):
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::updateNegotiationNeededFlag):
(WebCore::RTCPeerConnection::chainOperation):
Update code to better align with spec steps.
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCRtpTransceiver.cpp:
(WebCore::RTCRtpTransceiver::stop):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::isNegotiationNeeded const):
(WebCore::LibWebRTCMediaEndpoint::OnNegotiationNeededEvent):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::isNegotiationNeeded const):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
- testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::MockLibWebRTCPeerConnection::AddTrack):
(WebCore::MockLibWebRTCPeerConnection::RemoveTrack):
- 8:42 AM Changeset in webkit [281925] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Evaluate default Editor to false when not found
https://bugs.webkit.org/show_bug.cgi?id=229791
Reviewed by Jonathan Bedard.
This makes the default editor to not be listed as valid in platforms
without the open command. This was causing the tests to fail for
GTK/WPE (on Linux).
In a future commit a proper solution might be adding proper support
for $EDITOR.
- Scripts/libraries/webkitcorepy/webkitcorepy/editor.py:
(Editor.bool):
- 8:32 AM Changeset in webkit [281924] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7613.1.2
- 8:15 AM Changeset in webkit [281923] by
-
- 3 edits in trunk/Tools
[buildbot] Only serve content through nginx
https://bugs.webkit.org/show_bug.cgi?id=229785
<rdar://problem/82653668>
Reviewed by Alexey Proskuryakov.
- CISupport/build-webkit-org/master.cfg: Only expose webserver to localhost.
- CISupport/ews-build/master.cfg: Ditto.
- 7:58 AM Changeset in webkit [281922] by
-
- 2 edits in trunk/Tools
[GLIB] Garden itp API test failure after r281886
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 7:50 AM Changeset in webkit [281921] by
-
- 5 edits in trunk
REGRESSION(r277763): [Debug][GLib] fast/mediastream timeouts
https://bugs.webkit.org/show_bug.cgi?id=229665
Patch by Philippe Normand <pnormand@igalia.com> on 2021-09-02
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The tests were timing out in Debug because of the unaccelerated PixelBuffer conversions
triggered from the GStreamer mock video source. Making the AlphaPremultiplication value
match between the source and destination buffers allows us to skip this expensive
conversion. A memcpy is now done if the source and destination parameters match, there is no
need to do pixel-per-pixel copies in this case.
- platform/graphics/PixelBufferConversion.cpp:
(WebCore::convertImagePixels):
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
LayoutTests:
- platform/glib/TestExpectations: Update expectations, some tests pass now, apart from two
getDisplayMedia tests, to be handled in another patch.
- 5:45 AM Changeset in webkit [281920] by
-
- 5 edits2 adds in trunk
Braille display is blank in contenteditable elements when the field is followed by another element.
https://bugs.webkit.org/show_bug.cgi?id=229713
rdar://82095237
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/mac/range-for-line-index.html
We were making the length of line ranges in text fields 1 more than the
number of characters in the line even when no line break character
existed, like in the case of a single line text field.
Clients like VoiceOver expect the length of the line ranges in text
fields to match the number of charaters in the line including the line
break if one exists.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::isHardLineBreak): Helper function used in doAXRangeForLine.
Determines whether the given VisiblePosition corresponds to a hard line
break.
(WebCore::AccessibilityRenderObject::doAXRangeForLine const):
Returns a PlainTextRange whose length matches the number of characters
in the given line, accounting for line break characters.
LayoutTests:
- accessibility/mac/range-for-line-index-expected.txt: Added.
- accessibility/mac/range-for-line-index.html: Added.
- platform/mac/accessibility/content-editable-as-textarea-expected.txt:
- platform/win/accessibility/content-editable-as-textarea-expected.txt:
- 4:45 AM Changeset in webkit [281919] by
-
- 10 edits in trunk/Tools
[GTK][WPE] Port API test runner to python3
https://bugs.webkit.org/show_bug.cgi?id=229782
Reviewed by Philippe Normand.
Port the GTK/WPE API test runner to be compatible with python3
and set it to run with python3 by default.
The runner is still compatible with python2 after this patch, so
we can land this without immediately requiring a restart of the CI.
- Scripts/run-gtk-tests:
(GtkTestRunner): Deleted.
(GtkTestRunner.init): Deleted.
(GtkTestRunner._ensure_accessibility_service_is_running): Deleted.
(GtkTestRunner._setup_testing_environment): Deleted.
(GtkTestRunner._tear_down_testing_environment): Deleted.
(GtkTestRunner.is_glib_test): Deleted.
(GtkTestRunner.is_google_test): Deleted.
(GtkTestRunner.is_qt_test): Deleted.
- Scripts/run-perf-tests:
- Scripts/run-wpe-tests:
(WPETestRunner): Deleted.
(WPETestRunner.init): Deleted.
(WPETestRunner.is_glib_test): Deleted.
(WPETestRunner.is_google_test): Deleted.
(WPETestRunner.is_qt_test): Deleted.
- glib/api_test_runner.py:
(TestRunner._get_tests_from_google_test_suite):
(TestRunner.run_tests):
(TestRunner.run_tests.number_of_tests):
- glib/common.py:
(parse_output_lines):
- glib/glib_test_runner.py:
(Message.create.read_string):
(Message):
(GLibTestRunner._read_from_pipe):
(GLibTestRunner._read_from_stderr):
(GLibTestRunner.run):
- 4:03 AM Changeset in webkit [281918] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GLib gardening
- platform/glib/TestExpectations: Remove duplicate test expectation landed by mistake.
- 3:42 AM Changeset in webkit [281917] by
-
- 2 edits2 adds in trunk/LayoutTests/imported/w3c
[CSS Cascade Layers] Import @import WPT tests
https://bugs.webkit.org/show_bug.cgi?id=229796
Reviewed by Youenn Fablet.
- web-platform-tests/css/css-cascade/layer-import-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-import.html: Added.
- web-platform-tests/css/css-cascade/w3c-import.log:
- 3:04 AM Changeset in webkit [281916] by
-
- 1 copy in releases/WebKitGTK/webkit-2.33.90
WebKitGTK 2.33.90
- 3:04 AM Changeset in webkit [281915] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.33.90 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.33.90.
- 3:04 AM Changeset in webkit [281914] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit
Unreviewed. Fix GTK distcheck build
- webkitglib-symbols.map: Bring back symbols removed in r281073.
- 2:11 AM Changeset in webkit [281913] by
-
- 3 edits2 adds in trunk
Absolutely positioned and negative z-index div with canvas child gets drawn with wrong stacking order
https://bugs.webkit.org/show_bug.cgi?id=217154
Patch by Rob Buis <rbuis@igalia.com> on 2021-09-02
Reviewed by Simon Fraser.
Source/WebCore:
Keep overlap map accurate.
Test: compositing/subtree-div-overlaps-multiple-negative-z-divs.html
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
LayoutTests:
Add test based on bug report test case.
- compositing/subtree-div-overlaps-multiple-negative-z-divs-expected.html: Added.
- compositing/subtree-div-overlaps-multiple-negative-z-divs.html: Added.
- 1:52 AM Changeset in webkit [281912] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Fix invalid exception checks in Temporal classes
https://bugs.webkit.org/show_bug.cgi?id=229793
Reviewed by Yusuke Suzuki.
- runtime/TemporalCalendarPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/TemporalDuration.cpp:
(JSC::TemporalDuration::fromObject):
(JSC::TemporalDuration::toDuration):
(JSC::TemporalDuration::with const):
- runtime/TemporalDurationPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 1:13 AM Changeset in webkit [281911] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, annotate executeJSCJITProbe with REFERENCED_FROM_ASM WTF_INTERNAL
- assembler/ProbeContext.h:
- 12:20 AM Changeset in webkit [281910] by
-
- 41 edits1 add in trunk/Source
Add more support for JIT operation validation testing.
https://bugs.webkit.org/show_bug.cgi?id=229534
rdar://81526335
Reviewed by Saam Barati.
Source/bmalloc:
- bmalloc/Gigacage.cpp:
(Gigacage::ensureGigacage):
- bmalloc/GigacageConfig.h:
Source/JavaScriptCore:
- Added a JITOperationValidation.h to tidy up the code for supporting JIT operation validation.
- Introduce a JITOperationAnnotation struct to record JIT operation function pointers, with an extra pointer field for a validation test function.
- Changed JSC_ANNOTATE_JIT_OPERATION to capture a JITOperationAnnotation struct instead of just a single operation pointer.
- Converted the static addPointers() function in JITOperationList.cpp into a member function of JITOperationList. This allows for the code to be more terse, as well as enables the use of an inverse map mechanism on debug builds only.
- Added more macros to help differentiate between different types of JIT operation functions.
- Made all JIT operation functions use extern "C" linkage to make it possible to write validation tests in assembly so that we can run them on a release build as well without taking too much time.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/JITOperationList.cpp:
(JSC::JITOperationList::addInverseMap):
(JSC::JITOperationList::addPointers):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
(JSC::JITOperationList::populatePointersInEmbedder):
(JSC::addPointers): Deleted.
- assembler/JITOperationList.h:
(JSC::JITOperationList::map const):
(JSC::JITOperationList::inverseMap const):
(JSC::JITOperationList::assertIsJITOperation):
(JSC::JITOperationList::assertIsJITOperationWithvalidation):
- assembler/JITOperationValidation.h: Added.
- assembler/MacroAssemblerARM64.cpp:
- assembler/MacroAssemblerARM64.h:
- assembler/MacroAssemblerARM64E.h:
- assembler/MacroAssemblerARMv7.cpp:
- assembler/MacroAssemblerMIPS.cpp:
- assembler/MacroAssemblerX86Common.cpp:
- b3/testb3.h:
- b3/testb3_1.cpp:
- b3/testb3_5.cpp:
- b3/testb3_7.cpp:
- dfg/DFGOSRExit.h:
- ftl/FTLLowerDFGToB3.cpp:
- jit/ExecutableAllocator.cpp:
(JSC::initializeJITPageReservation):
- jit/Repatch.cpp:
(JSC::retagOperationWithValidation):
(JSC::retagCallTargetWithValidation):
(JSC::readPutICCallTarget):
- jit/ThunkGenerators.cpp:
- jsc.cpp:
- llint/LLIntData.cpp:
- llint/LLIntThunks.cpp:
- runtime/CommonSlowPaths.h:
- runtime/JSCPtrTag.h:
(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):
(JSC::isTaggedJSCCodePtrImpl):
- runtime/MathCommon.h:
- runtime/Options.cpp:
(JSC::canUseJITCage):
- tools/JSDollarVM.cpp:
- yarr/YarrJIT.cpp:
Source/WebCore:
- bindings/js/WebCoreJITOperations.cpp:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJITDOMConstructor::prototypeForStructure):
- cssjit/SelectorCompiler.cpp:
- testing/js/WebCoreTestSupport.cpp:
Source/WTF:
- wtf/PlatformCallingConventions.h:
- wtf/PtrTag.h:
(WTF::PtrTagTraits::isTagged):
(WTF::isTaggedNativeCodePtrImpl):
(WTF::isTaggedWith):
(WTF::assertIsTaggedWith):