Timeline
Jun 25, 2018:
- 10:47 PM Changeset in webkit [233191] by
-
- 6 edits25 adds in trunk/LayoutTests
Import WPT fetch destination tests
https://bugs.webkit.org/show_bug.cgi?id=186984
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/fetch/api/request/destination/fetch-destination-iframe.https-expected.txt: Added.
- web-platform-tests/fetch/api/request/destination/fetch-destination-iframe.https.html: Added.
- web-platform-tests/fetch/api/request/destination/fetch-destination-no-load-event.https.html: Added.
- web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https-expected.txt: Added.
- web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https.html: Added.
- web-platform-tests/fetch/api/request/destination/fetch-destination.https.html: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy.es: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy.es.headers: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy.html: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy.png: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy.ttf: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy_audio.mp3: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy_audio.oga: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy_video.mp4: Added.
- web-platform-tests/fetch/api/request/destination/resources/dummy_video.ogv: Added.
- web-platform-tests/fetch/api/request/destination/resources/empty.https.html: Added.
- web-platform-tests/fetch/api/request/destination/resources/fetch-destination-worker-iframe.js: Added.
(event.request.url.includes.):
(event.request.url.includes):
- web-platform-tests/fetch/api/request/destination/resources/fetch-destination-worker-no-load-event.js: Added.
(event.request.url.includes):
- web-platform-tests/fetch/api/request/destination/resources/fetch-destination-worker.js: Added.
(event.request.url.includes):
- web-platform-tests/fetch/api/request/destination/resources/importer.js: Added.
- web-platform-tests/fetch/api/request/destination/resources/w3c-import.log: Added.
- web-platform-tests/fetch/api/request/destination/w3c-import.log: Added.
LayoutTests:
Skipping tests for WK1 since they use service worker.
- TestExpectations: Skipping timing out tests.
- platform/ios-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 9:58 PM Changeset in webkit [233190] by
-
- 2 edits in trunk/Tools
Log a message when fetching attachment data from the status server
https://bugs.webkit.org/show_bug.cgi?id=187032
Reviewed by Zalan Bujtas.
Currently we silently fetch from the status server an attachment when fetching
the attachment from Bugzilla fails due to an access denied error. Instead we
should emit a message when fetching data from the status server to indicate
that webkit-patch/EWS is still processing the command/trying to obtain the
patch.
- Scripts/webkitpy/common/net/statusserver.py:
(StatusServer._fetch_attachment_page):
- 7:05 PM Changeset in webkit [233189] by
-
- 18 edits in trunk/Source/WebCore
Adjust WEBCORE_EXPORT annotations for LTO
https://bugs.webkit.org/show_bug.cgi?id=186944
<rdar://problem/41384880>
Reviewed by David Kilzer.
Adjust a number of places that result in WebKit's
'check-for-weak-vtables-and-externals' script reporting weak external
symbols:
ERROR: WebCore has a weak external symbol in it (/Volumes/Data/dev/webkit/OpenSource/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore)
ERROR: A weak external symbol is generated when a symbol is defined in multiple compilation units and is also marked as being exported from the library.
ERROR: A common cause of weak external symbols is when an inline function is listed in the linker export file.
...
These cases are caused by inline methods being marked with WTF_EXPORT
(or related macro) or with an inline function being in a class marked
as such, and when enabling LTO builds.
For the most part, address these by removing the WEBCORE_EXPORT
annotation from inline methods. In some cases, move the implementation
out-of-line because it's the class that has the WEBCORE_EXPORT on it
and removing the annotation from the class would be too disruptive.
Finally, in other cases, move the implementation out-of-line because
check-for-weak-vtables-and-externals still complains when keeping the
implementation inline and removing the annotation; this seems to
typically (but not always) happen with destructors.
No new tests. There is no changed functionality. Only the annotation
and treatment of inline methods are altered.
- animation/AnimationTimeline.h:
(WebCore::AnimationTimeline::pause):
- page/CacheStorageProvider.h:
(): Deleted.
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::reportSynchronousScrollingReasonsChanged):
(WebCore::ScrollingTree::reportExposedUnfilledArea):
- platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::hasActiveNowPlayingSession const):
(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingTitle const):
(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingDuration const):
(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingElapsedTime const):
(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingInfoUniqueIdentifier const):
(WebCore::PlatformMediaSessionManager::registeredAsNowPlayingApplication const):
- platform/audio/mac/CARingBuffer.cpp:
(WebCore::CARingBuffer::~CARingBuffer):
- platform/audio/mac/CARingBuffer.h:
(WebCore::CARingBuffer::~CARingBuffer): Deleted.
- platform/cocoa/VideoFullscreenModelVideoElement.h:
- platform/gamepad/GamepadProvider.h:
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::displayListAsText const):
(WebCore::GraphicsLayer::setIsTrackingDisplayListReplay):
(WebCore::GraphicsLayer::isTrackingDisplayListReplay const):
(WebCore::GraphicsLayer::replayDisplayListAsText const):
- platform/mac/PlaybackSessionInterfaceMac.h:
- platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::setAudioFactory):
(WebCore::RealtimeMediaSourceCenter::unsetAudioFactory):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::setActive):
(WebCore::LibWebRTCProvider::createDecoderFactory):
(WebCore::LibWebRTCProvider::createEncoderFactory):
(WebCore::LibWebRTCProvider::disableEnumeratingAllNetworkInterfaces):
(WebCore::LibWebRTCProvider::enableEnumeratingAllNetworkInterfaces):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::willCacheResponseAsync):
- testing/MockGamepadProvider.h:
- workers/service/server/SWServer.h:
(WebCore::SWServer::Connection::~Connection):
- 6:22 PM Changeset in webkit [233188] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Adjust static position for out-of-flow positioned boxes.
https://bugs.webkit.org/show_bug.cgi?id=187000
Reviewed by Antti Koivisto.
The static position of an out-of-flow positioned box is the the position where box would go
if it was in-flow positioned. This position needs to the resolved in the containing block's coordinate system.
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPositionForOutOfFlowPositioned):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition):
- 5:43 PM Changeset in webkit [233187] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dark Mode: Box Model section should have dark background
https://bugs.webkit.org/show_bug.cgi?id=186976
Reviewed by Brian Burg.
Replace all instances of black text on white background with the default text and background colors.
- UserInterface/Views/BoxModelDetailsSectionRow.css:
(@media (prefers-dark-interface)):
(.details-section .row.box-model):
(.details-section .row.box-model .label):
(.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)):
(.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content),):
(.details-section .row.box-model .margin):
(.details-section .row.box-model .border):
- 5:40 PM Changeset in webkit [233186] by
-
- 5 edits3 copies1 move2 adds1 delete in trunk/Source/WTF
Unreviewed, rolling out r233120.
caused regression in ios API tests
Reverted changeset:
"[Cocoa] reduce unnecessary use of .mm source files in WTF,
spruce up some implementation details"
https://bugs.webkit.org/show_bug.cgi?id=186924
https://trac.webkit.org/changeset/233120
- 5:38 PM Changeset in webkit [233185] by
-
- 2 edits in trunk/LayoutTests
LayoutTest imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.worker.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=187025
Unreviewed test gardening, update Test Expectations to [Pass Failure Slow]
- 4:56 PM Changeset in webkit [233184] by
-
- 13 edits in trunk
JSImmutableButterfly can't be allocated from a subspace with HeapCell::Kind::Auxiliary
https://bugs.webkit.org/show_bug.cgi?id=186878
<rdar://problem/40568659>
Reviewed by Mark Lam.
Source/JavaScriptCore:
This patch fixes a bug in our JSImmutableButterfly implementation uncovered by
our stress GC bots. Before this patch, JSImmutableButterfly was allocated
with HeapCell::Kind::Auxiliary. This is wrong. Things that are JSCells must be
allocated from HeapCell::Kind::JSCell. The way this broke on the stress GC
bots is that our conservative marking won't do cell marking for things that
are Auxiliary. This means that if the stack is the only thing pointing to a
JSImmutableButterfly when a GC took place, that JSImmutableButterfly would
not be visited. This patch fixes this bug. This patch also extends our conservative
marking to understand that there may be interior pointers to things that are HeapCell::Kind::JSCell.
- bytecompiler/NodesCodegen.cpp:
(JSC::ArrayNode::emitBytecode):
- heap/HeapUtil.h:
(JSC::HeapUtil::findGCObjectPointersForMarking):
- runtime/JSImmutableButterfly.h:
(JSC::JSImmutableButterfly::subspaceFor):
LayoutTests:
Make these test not susceptible to conservative scan leaks by ensuring at least
one object gets collected when we allocate many of them. Before, these were just
testing that a fixed number of objects were collected.
- editing/selection/navigation-clears-editor-state-expected.txt:
- editing/selection/navigation-clears-editor-state.html:
- fast/dom/reference-cycle-leaks.html:
- fast/misc/resources/test-observegc.js:
- fast/misc/test-observegc-expected.txt:
- platform/mac-wk2/plugins/refcount-leaks-expected.txt:
- plugins/refcount-leaks-expected.txt:
- plugins/refcount-leaks.html:
- 4:56 PM Changeset in webkit [233183] by
-
- 2 edits in trunk/Source/WebCore
Remove RELEASE_ASSERT added in r230875.
<rdar://problem/40860061> and https://bugs.webkit.org/show_bug.cgi?id=187022
Reviewed by Brent Fulgham.
There's actually more than one way for a network session to be destroyed, and that can happen
asynchronously and unpredictably.
And the request to start up a WebSocket and do its handshake is also asynchronous and unpredictable
It's an expected race.
If the NetworkStorageSession cannot be found then the WebSocket handshake should just fail.
- platform/network/SocketStreamHandleImpl.cpp:
(WebCore::cookieDataForHandshake): If the NetworkStorageSession cannot be found, return std::nullopt.
(WebCore::SocketStreamHandleImpl::platformSendHandshake): If the cookieData is null, fail the handshake.
- 4:54 PM Changeset in webkit [233182] by
-
- 4 edits in trunk/Source/WebCore
[iPad apps on macOS] Web process crashes when attempting to play embedded YouTube video in News
https://bugs.webkit.org/show_bug.cgi?id=187011
<rdar://problem/40906808>
Reviewed by Tim Horton.
Disable remote media commands when running iOS WebKit on macOS. The iOS flavor of RemoteCommandListener
currently throws an exception when attempting to soft-link the MediaPlayer framework, which prevents video from
being played altogether. For a followup tracking touch bar integration in iOS WebKit on macOS, see:
<rdar://problem/39164732>.
Manually tested by playing a YouTube video in News.
- platform/RemoteCommandListener.cpp:
- platform/ios/RemoteCommandListenerIOS.h:
- platform/ios/RemoteCommandListenerIOS.mm:
- 4:40 PM Changeset in webkit [233181] by
-
- 2 edits in trunk/Source/WebKit
WKThumbnailView fallback background is blindingly bright in Dark Mode
https://bugs.webkit.org/show_bug.cgi?id=187017
<rdar://problem/41036209>
Reviewed by Simon Fraser.
- UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView initWithFrame:]):
(-[_WKThumbnailView wantsUpdateLayer]):
(-[_WKThumbnailView updateLayer]):
Use a semantic color for the WKThumbnailView background color
instead of flat white.
- 4:37 PM Changeset in webkit [233180] by
-
- 14 edits in trunk
Resource Load Statistics: Make WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains() wait for the network process before calling its callback
https://bugs.webkit.org/show_bug.cgi?id=186903
<rdar://problem/41350182>
Reviewed by Chris Dumez.
Source/WebKit:
This patch stores the callback sent to
WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains(),
sets up a context ID, and sends that ID to the network process when
asking it to update cookie partitioning and blocking. The network
process then tells the UI process when it's done, at which point the
callback is called.
This change is meant to address layout test flakiness.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::updatePrevalentDomainsToPartitionOrBlockCookies):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToPartitionOrBlockCookies):
(WebKit::NetworkProcessProxy::didUpdatePartitionOrBlockCookies):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains):
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updatePrevalentDomainsToPartitionOrBlockCookies):
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
- UIProcess/WebsiteData/WebsiteDataStore.h:
LayoutTests:
- http/tests/storageAccess/grant-storage-access-under-opener-expected.txt:
- http/tests/storageAccess/grant-storage-access-under-opener.html:
Moved the code block to the page's body instead of its head.
Added an initial console log statement. The reason for these
changes is that we're seeing flaky timeouts with no output.
- 4:07 PM Changeset in webkit [233179] by
-
- 2 edits in trunk/Source/WebKit
Allow access to APTDevice in iOS WebContent process
https://bugs.webkit.org/show_bug.cgi?id=187021
<rdar://problem/41339769>
Reviewed by Youenn Fablet.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 3:34 PM Changeset in webkit [233178] by
-
- 8 edits in trunk/Source
Unreviewed, rolling out r233087.
Causes 5% Mac PLT regression.
Reverted changeset:
"Recalc styles every time defaultAppearance changes."
https://bugs.webkit.org/show_bug.cgi?id=186866
https://trac.webkit.org/changeset/233087
- 3:29 PM Changeset in webkit [233177] by
-
- 2 edits1 add in trunk/Source/WebKit
Add a sandbox profile to Hangout plug-in
https://bugs.webkit.org/show_bug.cgi?id=187005
<rdar://problem/41428391>
Reviewed by Brent Fulgham.
Add a sandbox profile so that this plug-in can be run when UIProcess is sandboxed.
- Resources/PlugInSandboxProfiles/com.google.googletalkbrowserplugin.sb: Added.
- WebKit.xcodeproj/project.pbxproj:
- 2:29 PM Changeset in webkit [233176] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r229722): WebKitLegacy clients can crash when loading alternate page
https://bugs.webkit.org/show_bug.cgi?id=187008
Reviewed by Chris Dumez.
The new call to 'clearProvisionalLoadForPolicyCheck' added in r229722 broke loading
behavior in WebKitLegacy.
- We can now enter 'cancelPolicyCheckIfNeeded' without a Frame loader, in what appears to be a recursive call during the load cancellation (the 'm_waitingForContentPolicy' and 'm_waitingForNavigationPolicy' have already been nulled). It seems like we should return early here, or perhaps just move the RELEASE_ASSERT inside the case where we have an active policy check happening.
- We also enter FrameLoader::checkContentPolicy without an active document loader. We should recognize this case and handle it, rather than trying to dereference a nullptr document loader.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded): Move the RELEASE_ASSERT inside the
conditional where the frameLoader is actually used.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkContentPolicy): Recognize that the activeDocumentLoader may
be nullptr at this point, and take appropriate action (rather than crashing).
- 2:28 PM Changeset in webkit [233175] by
-
- 4 edits in trunk/Tools
[ews-build] Add support for Bindings-tests-EWS
https://bugs.webkit.org/show_bug.cgi?id=187014
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/factories.py:
(BindingsFactory): Added RunBindingsTests build step to BindingsFactory.
- BuildSlaveSupport/ews-build/steps.py:
(RunBindingsTests): Added build-step for running Bindings tests.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- 2:27 PM Changeset in webkit [233174] by
-
- 2 edits in trunk/LayoutTests
performance-api/performance-observer-no-document-leak.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=186938
<rdar://problem/41379336>
Unreviewed, skip test again as it is apparently still flaky.
- 2:15 PM Changeset in webkit [233173] by
-
- 3 edits in trunk/Source/WebCore
MatchedPropertiesCacheItem wastes 388KB of vector capacity on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=186990
Reviewed by Antti Koivisto.
MatchedPropertiesCacheItem.matchedProperties was appended to, so it allocated capacity
in 16-size chunks. Instead, assign to it so it only allocates as much capacity as is needed.
Copy-constructing is more wasteful, since it copies the 64-chunk size from the right-hand side.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::addToMatchedPropertiesCache):
- css/StyleResolver.h:
(WebCore::StyleResolver::MatchedPropertiesCacheItem::MatchedPropertiesCacheItem):
- 2:14 PM Changeset in webkit [233172] by
-
- 3 edits3 adds in trunk
NetworkLoadChecker should not check CORS for 304 responses triggered by WebProcess revalidation
https://bugs.webkit.org/show_bug.cgi?id=186939
<rdar://problem/40941725>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/cors/resources/cache-304.py: Added.
- web-platform-tests/cors/script-304-expected.txt: Added.
- web-platform-tests/cors/script-304.html: Added.
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::validateResponse):
- 2:04 PM Changeset in webkit [233171] by
-
- 2 edits in trunk/Source/WebCore
Null dereference crash un ApplicationCacheGroup::startLoadingEntry()
https://bugs.webkit.org/show_bug.cgi?id=187012
<rdar://problem/40793716>
Reviewed by Youenn Fablet.
m_entryLoader can be null because ApplicationCacheResourceLoader::create() return null when
CachedResourceLoader::requestRawResource() fails synchronously. In such case, the completion
handler gets called with a ApplicationCacheResourceLoader::Error::CannotRequestResource error.
To address the issue, we capture the request's URL in the lambda and use it instead of trying
to get the URL from the loader's resource.
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::startLoadingEntry):
- 1:31 PM Changeset in webkit [233170] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r233140): Windows build failure due to incomplete FrameView and RenderBox types
https://bugs.webkit.org/show_bug.cgi?id=186997
- animation/KeyframeEffectReadOnly.cpp:
- 1:30 PM Changeset in webkit [233169] by
-
- 3 edits in trunk/LayoutTests
performance-api/performance-observer-no-document-leak.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=186938
<rdar://problem/41379336>
Unreviewed, move the call to gc() inside the setInterval() so we keep
trying to gc() until the frame / document are destroyed (instead of
only doing a single garbage collection).
- TestExpectations:
- performance-api/performance-observer-no-document-leak.html:
- 1:16 PM Changeset in webkit [233168] by
-
- 2 edits in trunk/Source/WebKit
Adjust UNEXPORTED_SYMBOL_LDFLAGS for LTO
https://bugs.webkit.org/show_bug.cgi?id=186949
<rdar://problem/41386438>
Reviewed by David Kilzer.
When building with LTO, WebKit's
'check-for-weak-vtables-and-externals' script reports weak external
symbols:
ERROR: WebKit has a weak external symbol in it (.../OpenSource/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit)
ERROR: A weak external symbol is generated when a symbol is defined in multiple compilation units and is also marked as being exported from the library.
ERROR: A common cause of weak external symbols is when an inline function is listed in the linker export file.
ERROR: symbol ZTCNSt3118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE
ERROR: symbol ZTCNSt3118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE
ERROR: symbol ZTCNSt3118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE
ERROR: symbol ZTTNSt3118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
ERROR: symbol ZTVNSt3115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE
ERROR: symbol ZTVNSt3118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE
Command /bin/sh failed with exit code 1
Address these by adding those symbols to UNEXPORTED_SYMBOL_LDFLAGS in
WebKit.xcconfig.
- Configurations/WebKit.xcconfig:
- 1:12 PM Changeset in webkit [233167] by
-
- 3 edits1 add in trunk
constructArray() should set m_numValuesInVector to the specified length.
https://bugs.webkit.org/show_bug.cgi?id=187010
<rdar://problem/41392167>
Reviewed by Filip Pizlo.
JSTests:
- stress/regress-187010.js: Added.
Source/JavaScriptCore:
Its client will fill in the storage vector with some values using initializeIndex()
and expects m_numValuesInVector to be set to the length i.e. the number of values
to be initialized.
- runtime/JSArray.cpp:
(JSC::constructArray):
- 1:00 PM Changeset in webkit [233166] by
-
- 3 edits3 adds in trunk/Tools
[ews-build] Add support for Style-EWS
https://bugs.webkit.org/show_bug.cgi?id=186955
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/factories.py:
(Factory): Base class for all the factory.
- BuildSlaveSupport/ews-build/loadConfig.py: Initialize factory with required parameters.
- BuildSlaveSupport/ews-build/runUnittests.py: Added, script to run all the unit tests.
- BuildSlaveSupport/ews-build/steps.py: Added.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- 12:54 PM Changeset in webkit [233165] by
-
- 6 edits in trunk/Source/WebKit
Make sure API::IconLoadingClient::getLoadDecisionForIcon()'s completion handler gets called
https://bugs.webkit.org/show_bug.cgi?id=187007
<rdar://problem/41293989>
Reviewed by Brady Eidson.
Make sure API::IconLoadingClient::getLoadDecisionForIcon()'s completion handler gets called by
switching its type to WTF::CompletionHandler instead of WTF::Function. This also has the benefit
of destroying our captured objects when the completion handler gets called by the client on the
main thread instead of whatever thread the ObjC block gets released on.
- UIProcess/API/APIIconLoadingClient.h:
(API::IconLoadingClient::getLoadDecisionForIcon):
- UIProcess/API/glib/WebKitIconLoadingClient.cpp:
- UIProcess/API/mac/WKView.mm:
(-[WKView maybeInstallIconLoadingClient]):
- UIProcess/Cocoa/IconLoadingDelegate.h:
- UIProcess/Cocoa/IconLoadingDelegate.mm:
(WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon):
- 12:24 PM Changeset in webkit [233164] by
-
- 7 edits1 copy1 add in trunk
REGRESSION: hardware-accelerated animation fails on inline element
https://bugs.webkit.org/show_bug.cgi?id=186981
<rdar://problem/41418697>
Reviewed by Dean Jackson.
Source/WebCore:
Ensure we only queue accelerated actions when we have a renderer so we don't attempt
to start an accelerated animation too soon.
Test: webanimations/opacity-animation-yields-compositing-span.html
- animation/KeyframeEffectReadOnly.cpp:
(WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState):
LayoutTests:
- platform/mac/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
- platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
- webanimations/opacity-animation-yields-compositing-expected.txt:
- webanimations/opacity-animation-yields-compositing-span-expected.txt:
- webanimations/opacity-animation-yields-compositing-span.html: Added.
- webanimations/opacity-animation-yields-compositing.html:
- 12:23 PM Changeset in webkit [233163] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r233140): v2: Windows build failure due to incomplete DocumentAnimationScheduler type
<https://webkit.org/b/186997>
- dom/Document.cpp:
(WebCore::Document::prepareForDestruction):
(WebCore::Document::windowScreenDidChange):
- dom/Document.h:
- DocumentAnimationScheduler is behind the USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) macro, which is disabled on Windows.
- This also reverts my fix in r233144 since it didn't work.
- 12:19 PM Changeset in webkit [233162] by
-
- 29 edits1 copy4 adds in trunk
Add API to control mock media devices
https://bugs.webkit.org/show_bug.cgi?id=186958
Reviewed by Eric Carlson.
Source/WebCore:
Refactor code to introduce a MockDevice structure that can be used in multiple processes.
Update mock sources and center to use MockDevice.
Add API to update mock media devices.
Make MediaDevices an ActiveDOMObject so that it does not get collected when ondevicechange is set.
Test: fast/mediastream/device-change-event-2.html
- Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::MediaDevices):
(WebCore::MediaDevices::stop):
(WebCore::MediaDevices::scheduledEventTimerFired):
(WebCore::MediaDevices::hasPendingActivity const):
(WebCore::MediaDevices::activeDOMObjectName const):
(WebCore::MediaDevices::canSuspendForDocumentSuspension const):
- Modules/mediastream/MediaDevices.h:
- Modules/mediastream/MediaDevices.idl:
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/RealtimeMediaSourceCenter.h:
- platform/mock/MockMediaDevice.h: Added.
(WebCore::MockMicrophoneProperties::encode const):
(WebCore::MockMicrophoneProperties::decode):
(WebCore::MockCameraProperties::encode const):
(WebCore::MockCameraProperties::decode):
(WebCore::MockDisplayProperties::encode const):
(WebCore::MockDisplayProperties::decode):
(WebCore::MockMediaDevice::isMicrophone const):
(WebCore::MockMediaDevice::isCamera const):
(WebCore::MockMediaDevice::isDisplay const):
(WebCore::MockMediaDevice::type const):
(WebCore::MockMediaDevice::encode const):
(WebCore::MockMediaDevice::decodeMockMediaDevice):
(WebCore::MockMediaDevice::decode):
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::startProducingData):
- platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::defaultDevices):
(WebCore::devices):
(WebCore::deviceMap):
(WebCore::deviceListForDevice):
(WebCore::MockRealtimeMediaSource::createCaptureDevice):
(WebCore::MockRealtimeMediaSource::resetDevices):
(WebCore::MockRealtimeMediaSource::setDevices):
(WebCore::MockRealtimeMediaSource::addDevice):
(WebCore::MockRealtimeMediaSource::removeDevice):
(WebCore::MockRealtimeMediaSource::captureDeviceWithPersistentID):
(WebCore::MockRealtimeMediaSource::audioDevices):
(WebCore::MockRealtimeMediaSource::videoDevices):
(WebCore::MockRealtimeMediaSource::displayDevices):
(WebCore::MockRealtimeMediaSource::MockRealtimeMediaSource):
(WebCore::MockRealtimeMediaSource::initializeCapabilities):
(WebCore::MockRealtimeMediaSource::initializeSettings):
(WebCore::MockRealtimeMediaSource::settings const):
(WebCore::MockRealtimeMediaSource::supportedConstraints):
- platform/mock/MockRealtimeMediaSource.h:
(WebCore::MockRealtimeMediaSource::device const):
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::singleton):
(WebCore::MockRealtimeMediaSourceCenter::setMockRealtimeMediaSourceCenterEnabled):
(WebCore::MockRealtimeMediaSourceCenter::setDevices):
(WebCore::MockRealtimeMediaSourceCenter::addDevice):
(WebCore::MockRealtimeMediaSourceCenter::removeDevice):
- platform/mock/MockRealtimeMediaSourceCenter.h:
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
(WebCore::MockRealtimeVideoSource::initializeCapabilities):
(WebCore::MockRealtimeVideoSource::drawText):
(WebCore::MockRealtimeVideoSource::generateFrame):
- platform/mock/MockRealtimeVideoSource.h:
(WebCore::MockRealtimeVideoSource::mockCamera const):
(WebCore::MockRealtimeVideoSource::mockScreen const):
Source/WebKit:
Add API to clear, set, remove and reset mock media devices.
The mock media center of UIProcess and all WebProcesses are updated.
- CMakeLists.txt:
- UIProcess/API/C/WKMockMediaDevice.cpp: Added.
(typeFromString):
(WKAddMockMediaDevice):
(WKClearMockMediaDevices):
(WKRemoveMockMediaDevice):
(WKResetMockMediaDevices):
- UIProcess/API/C/WKMockMediaDevice.h: Added.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::addMockMediaDevice):
(WebKit::WebProcessPool::clearMockMediaDevices):
(WebKit::WebProcessPool::removeMockMediaDevice):
(WebKit::WebProcessPool::resetMockMediaDevices):
- UIProcess/WebProcessPool.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::addMockMediaDevice):
(WebKit::WebProcess::clearMockMediaDevices):
(WebKit::WebProcess::removeMockMediaDevice):
(WebKit::WebProcess::resetMockMediaDevices):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
Tools:
Add test runner API to clear/add/remove/reset mock media devices.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::addMockMediaDevice):
(WTR::TestRunner::addMockCameraDevice):
(WTR::TestRunner::addMockMicrophoneDevice):
(WTR::TestRunner::addMockScreenDevice):
(WTR::TestRunner::clearMockMediaDevices):
(WTR::TestRunner::removeMockMediaDevice):
(WTR::TestRunner::resetMockMediaDevices):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::addMockMediaDevice):
(WTR::TestController::clearMockMediaDevices):
(WTR::TestController::removeMockMediaDevice):
(WTR::TestController::resetMockMediaDevices):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- fast/mediastream/device-change-event-2-expected.txt: Added.
- fast/mediastream/device-change-event-2.html: Added.
- 11:53 AM Changeset in webkit [233161] by
-
- 3 edits1 add in trunk
Add missing exception check in RegExpObjectInlines.h's collectMatches.
https://bugs.webkit.org/show_bug.cgi?id=187006
<rdar://problem/41418412>
Reviewed by Keith Miller.
JSTests:
- stress/regress-187006.js: Added.
Source/JavaScriptCore:
- runtime/RegExpObjectInlines.h:
(JSC::collectMatches):
- 11:52 AM Changeset in webkit [233160] by
-
- 3 edits in trunk/Tools
[ews-build] Add support for try Buildbot try schedulers
https://bugs.webkit.org/show_bug.cgi?id=186948
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/config.json: Use Try_Userpass scheduler.
- BuildSlaveSupport/ews-build/loadConfig.py: Updated to use try scheduler.
- 11:43 AM Changeset in webkit [233159] by
-
- 2 edits in trunk/Source/WebKit
[iPad apps on macOS] Click events are broken in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=186964
<rdar://problem/41369145>
Reviewed by Tim Horton.
Tapping in WKWebView currently does not dispatch click events to the page. This is because the long press loupe
gesture (in the text interaction assistant) has a delay of 0 when running iOS apps on macOS, but on iOS, it's
0.5. The zero delay on macOS means that the loupe gesture will be recognized before the synthetic click gesture;
this, in turn, causes the synthetic click gesture to be excluded by the loupe gesture. To address this, we
simply allow the click and loupe gesture to recognize simultaneously.
Additionally, a new hover gesture was added recently to handle macOS cursor types when hovering over selectable
text. This patch also allows other gestures to recognize alongside hover gestures, which matches macOS behavior.
We don't have the capacity to write automated tests for this yet; I manually tested text selection, editing in
some text form controls, as well as clicking on links, buttons, and other elements with click event handlers.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
- 11:30 AM Changeset in webkit [233158] by
-
- 6 edits in trunk/Source/JavaScriptCore
Add API for configuring the number of threads used by DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=186859
<rdar://problem/41093519>
Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-06-25
Reviewed by Filip Pizlo.
Add new private APIs for limiting the number of threads to be used by
the DFG and FTL compilers. It was already possible to configure the
limit through JSC Options, but now it can be changed at runtime, even
in the case when the VM is already running.
Add a test for both cases: when trying to configure the limit before
and after the Worklist has been created, but in order to simulate the
first scenario, we must guarantee that the test runs at the very
beginning, so I also added a check for that.
- API/JSVirtualMachine.mm:
(+[JSVirtualMachine setNumberOfDFGCompilerThreads:]):
(+[JSVirtualMachine setNumberOfFTLCompilerThreads:]):
- API/JSVirtualMachinePrivate.h:
- API/tests/testapi.mm:
(runJITThreadLimitTests):
(testObjectiveCAPIMain):
- dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::finishCreation):
(JSC::DFG::Worklist::createNewThread):
(JSC::DFG::Worklist::setNumberOfThreads):
- dfg/DFGWorklist.h:
- 10:58 AM Changeset in webkit [233157] by
-
- 3 edits in trunk/Source/WTF
Fix ASAN_ENABLED in GCC
https://bugs.webkit.org/show_bug.cgi?id=186957
Reviewed by Michael Catanzaro.
ASAN_ENABLED used to rely on Clang-specific features for detection.
This patch enables ASAN_ENABLED to work on GCC too.
It also fixes compilation errors and warnings that were triggered when
compiling code guarded by ASAN_ENABLED in gcc.
- wtf/Compiler.h:
- wtf/Vector.h:
(WTF::VectorBuffer::endOfBuffer):
- 10:42 AM Changeset in webkit [233156] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dark Mode: color outline is too dark
https://bugs.webkit.org/show_bug.cgi?id=186975
Reviewed by Brian Burg.
Make the outline lighter than the background.
- UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(.hover-menu > svg > :matches(path, rect)):
- 10:39 AM Changeset in webkit [233155] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Adjust webrtc library for LTO
https://bugs.webkit.org/show_bug.cgi?id=186952
<rdar://problem/41387815>
Reviewed by Youenn Fablet.
There are a number of files in webrtc that have main() functions (in
particular, rtpcat.cc and click_annotate.cc). When compiling with LTO,
these symbols are exposed to each other, leading to the following
build failure:
Ld libwebrtc.dylib
duplicate symbol _main in:
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
BUILD FAILED
Address this by removing the indicated files from the build.
- libwebrtc.xcodeproj/project.pbxproj:
- 10:38 AM Changeset in webkit [233154] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dark Mode: Media query names are unreadable
https://bugs.webkit.org/show_bug.cgi?id=186974
Reviewed by Brian Burg.
Change media query names from dark blue to light blue.
- UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
(.cm-s-default .cm-attribute):
- 10:35 AM Changeset in webkit [233153] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dark Mode: Network headers colors are too dim
https://bugs.webkit.org/show_bug.cgi?id=186985
Reviewed by Brian Burg.
Increasing the luminance of network header colors by increasing lightness and brightness.
- UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(:root):
- 10:34 AM Changeset in webkit [233152] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Dark Mode: Font guideline colors are too bright
https://bugs.webkit.org/show_bug.cgi?id=186986
Reviewed by Brian Burg.
Make the guidelines less distractive from the font glyphs.
- UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(.content-view.resource.font .preview > .line):
(.content-view.resource.font .metric.top):
(.content-view.resource.font .metric.baseline):
(.content-view.resource.font .metric.middle):
(.content-view.resource.font .metric.xheight):
(.content-view.resource.font .metric.bottom):
- 9:48 AM Changeset in webkit [233151] by
-
- 2 edits in trunk/Tools
[WinCairo] Unreviewed build fix for r233088.
- BuildSlaveSupport/built-product-archive:
(extractBuiltProduct):
"move" throws instead of overwriting, so just use "copy" instead.
- 9:31 AM Changeset in webkit [233150] by
-
- 2 edits in trunk/Tools
[test262-runner] Sort the list of failing files in the HTML report
https://bugs.webkit.org/show_bug.cgi?id=186998
Patch by Leo Balter <Leo Balter> on 2018-06-25
Reviewed by Michael Saboff.
- Scripts/test262/Runner.pm:
(printHTMLResults): The current list of failing files it not ordered and it's hard to read.
This small patch will sort the list.
- 9:22 AM Changeset in webkit [233149] by
-
- 2 edits in trunk/Source/WebKit
[Mac] Web Automation: include correct key code with synthesized NSEvents used for keystrokes
https://bugs.webkit.org/show_bug.cgi?id=186937
Reviewed by Timothy Hatcher.
In some cases, a missing keyCode for an ASCII letter/number can cause synthesized
NSEvents to not be converted into a key equivalent action like copy: or paste:.
- UIProcess/Automation/mac/WebAutomationSessionMac.mm:
Drive by, always initialize keyCode.
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
(WebKit::keyCodeForCharKey): Compute the keyCode as defined by HLTB headers.
This only needs to be computed for characters with physical keys, excluding the
number pad and some traditional virtual keys that do not usually have glyphs.
- 8:57 AM Changeset in webkit [233148] by
-
- 3 edits in trunk/Source/WebCore
AutoTableLayout wastes 52KB of Vector capacity on nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=186710
Reviewed by Zalan Bujtas.
Call resizeToFit() to only allocate enough capacity for the number of columns.
- rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::fullRecalc):
(WebCore::AutoTableLayout::insertSpanCell): Whitespace fix.
- rendering/AutoTableLayout.h:
- 8:38 AM Changeset in webkit [233147] by
-
- 10 edits in trunk/PerformanceTests
[MotionMark] Add support for version numbers
https://bugs.webkit.org/show_bug.cgi?id=186479
Reviewed by Said Abou-Hallawa.
Add support for displaying the version number as well as including it in the JSON results.
When loading the front page, script replaces any element with classname version with the
version number of the benchmark, which is stored in Strings.version.
The JSON structure for the results includes a new version property:
{
"version": "1.0",
"options": { ... },
"data": [ ... ]
}
When dragging a results file, the version listed will come from the JSON file. Older
results will not have had the version property, in which case it will default to "1.0".
- MotionMark/index.html: Update title to some other default. Script will update it.
Include the version number in the logo title.
- MotionMark/developer.html: Ditto.
- MotionMark/about.html: Ditto.
- MotionMark/resources/runner/motionmark.js:
(ResultsDashboard): Update constructor to include version. This is used when serializing
results out to JSON, and displaying the results panel in developer mode.
(ResultsDashboard._processData): When running the benchmark, include benchmark version string
in the results object.
(ResultsDashboard.version):
(window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
benchmark version string to the dashboard, which holds the results.
(window.sectionsManager.setSectionVersion): Helper function to update the element in the
section with the class name version.
(window.benchmarkController.initialize): Populate all DOM elements with class name "version"
with the version string. Update the page title.
(window.benchmarkController.showResults): When showing results, update the version string
based on what is included in the JSON results, which would be the same as the benchmark version.
- MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
in a div and include the version string.
- MotionMark/resources/strings.js: Add strings for the page title template, and the version.
- MotionMark/resources/debug-runner/motionmark.css:
- MotionMark/resources/debug-runner/motionmark.js:
(window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
benchmark version string to the dashboard, which holds the results.
(window.benchmarkController.initialize): Populate all DOM elements with class name "version"
with the version string. Update the page title. When dragging in JSON results, look for
version to pass to the dashboard. If it doesn't exist, default to "1.0".
(window.benchmarkController.showResults): When showing results, update the version string
based on what is included in the JSON results, instead of the current benchmark version.
- MotionMark/resources/debug-runner/tests.js: Update page title template.
- 8:15 AM Changeset in webkit [233146] by
-
- 5 edits in trunk/Tools
[WSL] Start writing the Sphinx document
https://bugs.webkit.org/show_bug.cgi?id=186310
Rubberstamped by Filip Pizlo.
Very early work, just has the lexer and a few fragments of the parser so far.
Also fixing some minor mistake in the formal rules.
- 8:01 AM Changeset in webkit [233145] by
-
- 4 edits in trunk/Source/WebCore
[LFC] Adjust static position with containing block's content box top/left
https://bugs.webkit.org/show_bug.cgi?id=186999
Reviewed by Antti Koivisto.
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition):
- layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::contentBox const):
- layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::contentBoxTop const):
(WebCore::Display::Box::contentBoxLeft const):
- 5:43 AM Changeset in webkit [233144] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r233140): Windows build failure due to incomplete DocumentAnimationScheduler type
<https://webkit.org/b/186997>
- dom/Document.cpp:
- dom/Document.h:
- Attempt to fix Windows build failure by moving include of DocumentAnimationScheduler.h from Document.cpp to Document.h.
- 3:58 AM Changeset in webkit [233143] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Remove useless workaround
https://bugs.webkit.org/show_bug.cgi?id=186921
Reviewed by Xabier Rodriguez-Calvar.
In bug 67407 a workaround was added for GStreamer 0.10. With 1.x
the media/video-reverse-play-duration.html test passes without any
workaround needed. The other test mentioned in that bug was
removed, it seems.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
- 3:22 AM Changeset in webkit [233142] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, address Darin's comment
https://bugs.webkit.org/show_bug.cgi?id=186757
- page/linux/ResourceUsageThreadLinux.cpp:
(WebCore::cpuPeriod):
- 3:00 AM Changeset in webkit [233141] by
-
- 7 edits in trunk
[Web Animations] Make imported/mozilla/css-animations/test_animation-pausing.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183826
<rdar://problem/40997412>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark progressions in the Mozilla CSS Animations tests.
- css-animations/test_animation-pausing-expected.txt:
Source/WebCore:
The CSS Animations Level 2 specification defines that calling pause() on a CSSAnimation object is "sticky"
until a call to play() is made, meaning that any changes to the running state via the CSS animation-play-state
property is overridden by the stickiness of the pause() call. In this patch we add an m_stickyPaused flag which
is set in API calls to pause() and play(). While this flag is true, changes to the animation-play-state property
to the "running" value are ignored.
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
(WebCore::CSSAnimation::bindingsPlay):
(WebCore::CSSAnimation::bindingsPause):
- animation/CSSAnimation.h:
LayoutTests:
This test now passes reliably.
- 2:54 AM Changeset in webkit [233140] by
-
- 12 edits2 adds in trunk
[Web Animations] Ensure animations are updated prior to requestAnimationFrame callbacks
https://bugs.webkit.org/show_bug.cgi?id=186997
<rdar://problem/41419414>
Reviewed by Dean Jackson.
LayoutTests/imported/mozilla:
Mark progressions in the Mozilla CSS Animations tests.
- css-animations/test_animation-pausing-expected.txt:
Source/WebCore:
Some sub-tests of imported/mozilla/css-animations/test_animation-pausing.html clearly expect that animations
would be resolved prior to firing a requestAnimationFrame() callback, as the HTML5 event loop mandates. But until
now, both DocumentTimeline and ScriptedAnimationController would make calls to DisplayRefreshMonitorManager::scheduleAnimation()
that were not coordinated and so the order in which the DocumentTimeline and ScriptedAnimationController callbacks
were performed was not guaranteed.
In this patch we add a new DocumentAnimationScheduler class which is created by a Document to manage this specific
situation. Now DocumentTimeline and ScriptedAnimationController use this supporting object instead of being their
own DisplayRefreshMonitorClient and call scheduleWebAnimationsResolution() and scheduleScriptedAnimationResolution()
respectively to indicate the need to schedule an animation through the DisplayRefreshMonitorManager to serve the specific
needs of either, or both, classes. Then DocumentAnimationScheduler ensures that Web Animations resolution happens
prior to requestAnimationFrame callbacks when both are scheduled.
In the future we should be able to move more code from DocumentTimeline and ScriptedAnimationController over to
DocumentAnimationScheduler, such as support for throttling and using a timer-based fallback, but this patch provides
the minimal functionality required to provide a sounder foundation.
- Modules/webvr/VRDisplay.cpp:
(WebCore::VRDisplay::requestAnimationFrame):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/DocumentAnimationScheduler.cpp: Added.
(WebCore::DocumentAnimationScheduler::create):
(WebCore::DocumentAnimationScheduler::DocumentAnimationScheduler):
(WebCore::DocumentAnimationScheduler::detachFromDocument):
(WebCore::DocumentAnimationScheduler::scheduleWebAnimationsResolution):
(WebCore::DocumentAnimationScheduler::scheduleScriptedAnimationResolution):
(WebCore::DocumentAnimationScheduler::displayRefreshFired):
(WebCore::DocumentAnimationScheduler::windowScreenDidChange):
(WebCore::DocumentAnimationScheduler::createDisplayRefreshMonitor const):
- animation/DocumentAnimationScheduler.h: Copied from Source/WebCore/animation/CSSAnimation.h.
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::create):
(WebCore::DocumentTimeline::DocumentTimeline):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::windowScreenDidChange): Deleted.
(WebCore::DocumentTimeline::createDisplayRefreshMonitor const): Deleted.
- animation/DocumentTimeline.h:
- dom/Document.cpp:
(WebCore::Document::prepareForDestruction):
(WebCore::Document::windowScreenDidChange):
(WebCore::Document::requestAnimationFrame):
(WebCore::Document::animationScheduler):
(WebCore::Document::timeline):
- dom/Document.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::documentAnimationSchedulerDidFire):
(WebCore::ScriptedAnimationController::windowScreenDidChange): Deleted.
(WebCore::ScriptedAnimationController::displayRefreshFired): Deleted.
(WebCore::ScriptedAnimationController::createDisplayRefreshMonitor const): Deleted.
- dom/ScriptedAnimationController.h:
(WebCore::ScriptedAnimationController::create):
- 2:26 AM Changeset in webkit [233139] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Remove unnecessary PLATFORM guards
https://bugs.webkit.org/show_bug.cgi?id=186995
Reviewed by Mark Lam.
- assembler/AssemblerCommon.h:
(JSC::isIOS):
Add constexpr.
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
StackFrame works in all the platforms. If StackFrame::demangle failed,
it just returns std::nullopt. And it is correctly handled in this code.
- 12:05 AM Changeset in webkit [233138] by
-
- 10 edits in trunk
Source/WebCore:
[GCrypt] Zero-prefix (if necessary) output of RSA-based encryption and signing operations
https://bugs.webkit.org/show_bug.cgi?id=186967
Reviewed by Michael Catanzaro.
Output for RSA-based encryption and signing operations should match the
length of the RSA key. The way we retrieve the MPI data means libgcrypt
can ignore the high-bit zero values and leave us with a valid result
that's shorter in length compared to the RSA key. For instance, if the
output MPI fits into 2040 bits while a 2048-bit key was used we'll end
up with MPI data that will be fitted into a 255-byte Vector, one byte
short of the expected output length.
To avoid this, mpiZeroPrefixedData() is now used when retrieving output
of these RSA operations, and the value of the key size in bytes is
passed to it. This efficiently prepares the output Vector and then
copies the MPI data into it, respecting the MPI data length as well as
the desired length of the output.
No new tests -- relevant tests are now stable (i.e. not sporadically
failing anymore), associated expectations are removed.
- crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp:
(WebCore::gcryptDerive): Also use mpiZeroPrefixedData().
- crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:
(WebCore::gcryptEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
- crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp:
(WebCore::gcryptSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
- crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp:
(WebCore::gcryptEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
- crypto/gcrypt/CryptoAlgorithmRSA_PSSGCrypt.cpp:
(WebCore::gcryptSign):
(WebCore::CryptoAlgorithmRSA_PSS::platformSign):
- crypto/gcrypt/GCryptUtilities.h:
(WebCore::mpiZeroPrefixedData):
LayoutTests:
[GCrypt] Zero-prefix (if necessary) RSA-OAEP encryption, RSA-PSS signing output
https://bugs.webkit.org/show_bug.cgi?id=186967
Reviewed by Michael Catanzaro.
- platform/gtk/TestExpectations: Remove flaky failures for RSA-OAEP and RSA-PSS tests.
- platform/wpe/TestExpectations: Ditto.
Jun 24, 2018:
- 11:31 PM Changeset in webkit [233137] by
-
- 3 edits in trunk/Source/WebDriver
Unreviewed. Fix WebDriver tests after r233077.
WebDriver process is crashing because GVariant doesn't allow to pass a nullptr array when using @ modifier.
- SessionHost.h:
- glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::buildSessionCapabilities const): Receive a GVariantBuilder and return true if there are
session capabilities.
(WebDriver::SessionHost::startAutomationSession): Remove the @ modifier and use a GVariantBuilder instead, or
nullptr if there aren't session capabilities.
- 9:40 PM Changeset in webkit [233136] by
-
- 2 edits in trunk/Source/WebCore
Fix the DUMP_NODE_STATISTICS code so that it compiles
https://bugs.webkit.org/show_bug.cgi?id=186982
Reviewed by Anders Carlsson.
The DUMP_NODE_STATISTICS code had bitrotted. ENTITY_NODE no longer exists.
liveNodeSet needs to be a static function with a NeverDestroyed<>.
- dom/Node.cpp:
(WebCore::Node::dumpStatistics):
(WebCore::Node::trackForDebugging):
(WebCore::Node::~Node):
- 6:52 PM Changeset in webkit [233135] by
-
- 3 edits2 adds in trunk
Fix the composition underline to be transformed by -apple-color-filter
https://bugs.webkit.org/show_bug.cgi?id=186983
rdar://problem/40515558
Reviewed by Zalan Bujtas.
Source/WebCore:
Transform the composition underline color with the color filter.
Test: css3/color-filters/color-filter-composition-underline-color.html
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCompositionUnderline const):
LayoutTests:
- css3/color-filters/color-filter-composition-underline-color-expected.html: Added.
- css3/color-filters/color-filter-composition-underline-color.html: Added.
- 12:01 PM Changeset in webkit [233134] by
-
- 2 edits in trunk/Source/bmalloc
[bmalloc][Linux] Remove static initializers for PerProcess<>::s_object
https://bugs.webkit.org/show_bug.cgi?id=186966
Reviewed by Anders Carlsson.
chrome/tools/linux/dump-static-initializers.py can dump static initializers
in the binary and we found that PerProcess<>::s_object initialization is done
by static initializers in GCC + Linux environments. The example is the following.
Scavenger.cpp (initializer offset 0x38c210 size 0x3e)
_GLOBALsub_I_Scavenger.cpp+0x1e
_GLOBALsub_I_Scavenger.cpp+0x2d
_GLOBALsub_I_Scavenger.cpp+0x3c
_GLOBALsub_I_Scavenger.cpp+0xf
guard variable for bmalloc::PerProcess<bmalloc::AllIsoHeaps>::s_object@@Base-0x3f0d8
guard variable for bmalloc::PerProcess<bmalloc::Environment>::s_object@@Base-0x3f0e8
guard variable for bmalloc::PerProcess<bmalloc::PerHeapKind<bmalloc::Heap> >::s_object@@Base-0x3c600
guard variable for bmalloc::PerProcess<bmalloc::Scavenger>::s_object@@Base-0x38ce8
We can remove this by initializing
nullptr, which leads to constexpr initialization.
After this change, Linux JSCOnly libJavaScriptCore.so has no static initializers.
- bmalloc/PerProcess.h:
- 9:59 AM Changeset in webkit [233133] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix GTK debug build after r233131
https://bugs.webkit.org/show_bug.cgi?id=186899
<rdar://problem/38222248>
This assertion was intended to be removed.
- UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):