Timeline
May 3, 2021:
- 11:34 PM Changeset in webkit [276949] by
-
- 17 edits in trunk/Source/WebCore
ASSERTION FAILED: !m_needExceptionCheck while converting IDLSequence<T>
https://bugs.webkit.org/show_bug.cgi?id=223789
Patch by Frédéric Wang <fwang@igalia.com> on 2021-05-03
Reviewed by Mark Lam.
Add RETURN_IF_EXCEPTION after various toJS<T> calls since they can throw exception
for some types T.
- bindings/js/JSDOMConvertSequences.h:
(WebCore::JSConverter<IDLSequence<T>>::convert): Add RETURN_IF_EXCEPTION before appending
the result of toJS<T>.
(WebCore::JSConverter<IDLFrozenArray<T>>::convert): Ditto.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent): Add a throw scope and add RETURN_IF_EXCEPTION
before setting a dictionary value. Change the potentially unused variable.
(GenerateDefaultToJSONOperationDefinition): Add a RETURN_IF_EXCEPTION before setting a
value of the JSON object.
(NativeToJSValueMayThrow): Add "IDLDictionaryMember" as a possible context for which
exception may be thrown.
- bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:
(WebCore::convertDictionaryToJS): Update expectation.
- bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:
(WebCore::jsTestDefaultToJSONPrototypeFunction_toJSONBody): Ditto.
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:
(WebCore::jsTestDefaultToJSONFilteredByExposedPrototypeFunction_toJSONBody): Ditto.
- bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:
(WebCore::jsTestDefaultToJSONInheritPrototypeFunction_toJSONBody): Ditto.
- bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:
(WebCore::jsTestDefaultToJSONInheritFinalPrototypeFunction_toJSONBody): Ditto.
- bindings/scripts/test/JS/JSTestDerivedDictionary.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestDerivedDictionary2.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestEmptyDictionary.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestInheritedDictionary.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestInheritedDictionary2.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodePrototypeFunction_toJSONBody): Ditto.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
(WebCore::convertDictionaryToJS): Ditto.
- 11:33 PM Changeset in webkit [276948] by
-
- 7 edits in trunk
[GPUP] Move GPUProcess WebGL to Experimental Feature
https://bugs.webkit.org/show_bug.cgi?id=222836
rdar://75048190
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-03
Reviewed by Brent Fulgham.
Move the setting for WebGL in GPU process
to experimental features but disable it by default,
even on layout tests.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
- 10:54 PM Changeset in webkit [276947] by
-
- 16 edits1 copy in trunk/Source
Allow AppHighlight visibility to be toggled
https://bugs.webkit.org/show_bug.cgi?id=225276
Reviewed by Wenson Hsieh.
Source/WebCore:
Add supporting infrastructure to allow highlights to be turned on and off.
This is done with a simple state and a forced repaint on the areas that have highlights.
- Modules/highlight/Highlight.cpp:
(WebCore::Highlight::forceRepaint):
- Modules/highlight/Highlight.h:
- Modules/highlight/HighlightRegister.cpp:
(WebCore::HighlightRegister::setActive):
- Modules/highlight/HighlightRegister.h:
(WebCore::HighlightRegister::isActive):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::calculateHighlightColor const):
Source/WebKit:
Add supporting infrastructure to allow highlights to be turned on and off.
- Scripts/webkit/messages.py:
(headers_for_type):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex):
(WebKit::WebPageProxy::setAppHighlightsActive):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView targetForAction:withSender:]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAppHighlightsActive):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 10:25 PM Changeset in webkit [276946] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r276879) Add libstdc++fs to wtf libraries when using experimental fs headers
https://bugs.webkit.org/show_bug.cgi?id=225341
Reviewed by Chris Dumez.
After r276879, Filesystem.cpp uses std::filesystem directly. So,
expose the need for stdc++fs like was done in r268708 when std::fs was
used in WTR.
- wtf/CMakeLists.txt:
- 9:08 PM Changeset in webkit [276945] by
-
- 5 edits in trunk/Source
Use ImageBuffer scaling in RemoteLayerBackingStore, rather than handling scale in the class
https://bugs.webkit.org/show_bug.cgi?id=225081
Reviewed by Said Abou-Hallawa.
No new tests, no behavior change.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::backingStoreSize const): Deleted.
Make use of ImageBuffer's scaling support instead of scaling ourselves.
This will be helpful for future patches where the backing store's ImageBuffer
needs to know the presentation size, not just the backing store size.
We also do the back->front copy in scaled space now, which simplifies the code a bit.
We have to explicitly specify the source and destination rect for the copy, because
GraphicsContext::drawImageBuffer's implicit source rect is computed using
ImageBuffer::logicalSize(), which is a *truncated* IntSize.
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
Apply the device scale factor to the GraphicsContext that ImageBufferShareableBitmapBackend
adopts from ShareableBitmap. We don't need to flip because ShareableBitmap does that,
but it doesn't know anything about scales at all.
- 9:04 PM Changeset in webkit [276944] by
-
- 2 edits in trunk/Source/WebCore
Remove the quirk to disable "return to element fullscreen from picture-in-picture" for wowhead.com
https://bugs.webkit.org/show_bug.cgi?id=225322
Reviewed by Sam Weinig.
The quirk can be removed since wowhead.com has fixed the issue on the page.
Manually tested.
- page/Quirks.cpp:
(WebCore::Quirks::blocksReturnToFullscreenFromPictureInPictureQuirk const):
- 9:03 PM Changeset in webkit [276943] by
-
- 5 edits in trunk/Source/WebCore
Small cleanups in MediaPlayerPrivateMediaSourceAVFObjC and MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=225330
Reviewed by Eric Carlson.
Since we have removed
MediaPlayerPrivate::copyVideoTextureToPlatformTexture()in r273213,
some headers inMediaPlayerPrivateAVFoundationObjCandMediaPlayerPrivateMediaSourceAVFObjC
can be removed as well. This patch also has some small cleanups.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- platform/graphics/cocoa/WebCoreDecompressionSession.h:
- 7:37 PM Changeset in webkit [276942] by
-
- 3 edits1 add in trunk
Fix syntax error message for AUTOPLUSPLUS token.
https://bugs.webkit.org/show_bug.cgi?id=225308
rdar://76830934
Reviewed by Saam Barati.
JSTests:
- stress/prefix-plusplus-syntax-error-should-say-plusplus.js: Added.
Source/JavaScriptCore:
For the record, it's not easy to tell from the code why AUTOPLUSPLUS is needed.
It's needed to distinguish this:
`
statement ++ stuff ++ is a postfix operator applied tostatement.
`
from this:
`
statement
++stuff The\nbefore the ++ makes it a prefix operator applied tostuff`.
`
If we merely tokenize the ++ as a PLUSPLUS token, then it's unclear whether it acts
as a postfix or prefix token in the 2nd case above.
This is why the correct fix is not to get rid of the AUTOPLUSPLUS token, but to
teach the syntax error message to be aware of the AUTOPLUSPLUS token.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseUnaryExpression):
- 7:03 PM Changeset in webkit [276941] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: [Cocoa] Grid overlay area names aren't centered within areas.
https://bugs.webkit.org/show_bug.cgi?id=225176
Reviewed by Devin Rousso.
Grid area names were changed to be centered in their area in r275519. On iOS, the label was changed to treat the
provided point as the center, but the label was still being anchored in the top-left corner. This patch corrects
that by using the center of the area as the anchor point for the label.
- UIProcess/Inspector/ios/WKInspectorHighlightView.mm:
(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):
- 6:12 PM Changeset in webkit [276940] by
-
- 2 edits in trunk/Source/WebCore
Crash in WebCore::nextBoundary()
https://bugs.webkit.org/show_bug.cgi?id=225326
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-03
Reviewed by Ryosuke Niwa.
nextBoundary() creates a CharacterIterator and calls range() on it
without first checking if atEnd() has been reached, which can lead
to a null pointer dereference.
- editing/VisibleUnits.cpp:
(WebCore::nextBoundary):
- 6:02 PM Changeset in webkit [276939] by
-
- 1 copy in tags/Safari-611.2.7.1.3
Tag Safari-611.2.7.1.3.
- 5:38 PM Changeset in webkit [276938] by
-
- 1 copy in tags/Safari-611.2.7.0.2
Tag Safari-611.2.7.0.2.
- 5:29 PM Changeset in webkit [276937] by
-
- 1 copy in tags/Safari-612.1.12.2
Tag Safari-612.1.12.2.
- 4:53 PM Changeset in webkit [276936] by
-
- 4 edits in trunk
Restore pre-r276879 behavior for FileSystem::moveFile()
https://bugs.webkit.org/show_bug.cgi?id=225307
Reviewed by Sam Weinig.
Source/WTF:
Update FileSystem::moveFile() so that it now supports again moving a file across different
volumes by copying the file over and then deleting the source file.
I have verified locally that the function is now able to move a file to a different volumes.
Sadly, I don't think having an API test is feasible here as it requires pre-determined
volumes to be available.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::moveFile):
Tools:
Add API test to make sure that FileSystem::moveFile() is able to move directories since this
was the case prior to r276879.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 4:41 PM Changeset in webkit [276935] by
-
- 4 edits in trunk/Tools
[webkitpy] Support pickling platforminfo
https://bugs.webkit.org/show_bug.cgi?id=225230
<rdar://problem/77384913>
Rubber-stamped by Aakash Jain.
- Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.init): Define default arguments.
(PlatformInfo.display_name): Use default platform module if platform_module undefined.
(PlatformInfo._win_version_str): Ditto.
- Scripts/webkitpy/common/system/platforminfo_unittest.py:
(TestPlatformInfo.test_real_code):
- Scripts/webkitpy/common/system/systemhost.py:
(SystemHost.init): Use default platforminfo sys and platform modules.
- 4:25 PM Changeset in webkit [276934] by
-
- 1 copy in tags/Safari-612.1.11.8
Tag Safari-612.1.11.8.
- 4:20 PM Changeset in webkit [276933] by
-
- 8 edits in branches/safari-612.1.11-branch/Source
Revert "Versioning."
This reverts commit r276930
- 3:53 PM Changeset in webkit [276932] by
-
- 4 edits in trunk
WKWebView: WKURLSchemeHandler request don't have Range headers for custom scheme videos
https://bugs.webkit.org/show_bug.cgi?id=203302
<rdar://63750321>
Reviewed by Jer Noble and Geoff Garen.
Source/WebCore:
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::startLoading):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
- 3:29 PM Changeset in webkit [276931] by
-
- 1 copy in tags/Safari-612.1.11.9
Tag Safari-612.1.11.9.
- 3:21 PM Changeset in webkit [276930] by
-
- 8 edits in branches/safari-612.1.11-branch/Source
Versioning.
WebKit-7612.1.11.9
- 3:02 PM Changeset in webkit [276929] by
-
- 2 edits in branches/safari-611.2.7.1-branch/Source/WebKit
Cherry-pick r276514. rdar://problem/77473523
Web Inspector: [Cocoa] WKInspectorResourceURLSchemeHandler needs to serialize cleanup actions
https://bugs.webkit.org/show_bug.cgi?id=224986
<rdar://76768454>
Reviewed by Devin Rousso.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm: (-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]): Do cleanup on the main queue so that it can be serialized with reads.
(-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
Ensure that all removals from the map are processed before doing a lookup.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:59 PM Changeset in webkit [276928] by
-
- 8 edits in branches/safari-611.2.7.1-branch/Source
Versioning.
WebKit-7611.2.7.1.3
- 2:38 PM Changeset in webkit [276927] by
-
- 2 edits in trunk/Source/WebKit
Add macOS Safari sandbox exception for com.apple.CFNetwork preferences
https://bugs.webkit.org/show_bug.cgi?id=225184
<rdar://69305108>
Patch by Zhenchao Li <zhenchao_li@apple.com> on 2021-05-03
Reviewed by Per Arne Vollan
rdar://69305108 Add macOS Safari sandbox exception for com.apple.CFNetwork preferences
- Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 2:37 PM Changeset in webkit [276926] by
-
- 2 edits in trunk/Source/WebCore
[iOS][FCR] Missing fill color on slider ticks
https://bugs.webkit.org/show_bug.cgi?id=225318
<rdar://problem/77100313>
Reviewed by Wenson Hsieh.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintSliderTicks):
Slider ticks should fill in blue as the knob passes them.
- 2:24 PM Changeset in webkit [276925] by
-
- 2 edits in trunk/Source/WTF
Unreviewed attempt to fix JSCOnly build with recent clang after r276879
https://bugs.webkit.org/show_bug.cgi?id=225327
- wtf/PlatformJSCOnly.cmake:
- 2:21 PM Changeset in webkit [276924] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r274461): [macOS wk1] fast/repaint/canvas-object-fit.html is flakey text failing
https://bugs.webkit.org/show_bug.cgi?id=223283
Reviewed by Ryosuke Niwa.
WK1 repaint tests are sensitive to the timing of paints, which are controlled by
WebViewLayerFlushScheduler layerFlushCallback() timing, which in turn is affected by the
state of -[NSWindow autodisplay], which DumpRenderTree sets to NO, but we flip to YES
when we see composited layers (which canvas triggers).
To avoid this fragile mess, have the test trigger compositing early on by making the 2D
canvas context, then wait for a frame before the repaint part of the test.
- fast/repaint/canvas-object-fit.html:
- platform/mac-wk1/TestExpectations:
- 2:11 PM Changeset in webkit [276923] by
-
- 2 edits in trunk/Tools
REGRESSION(r275810): [WebKitTestRunner] fast/text/basic/004.html fails after running fast/layoutformattingcontext tests
https://bugs.webkit.org/show_bug.cgi?id=225087
Reviewed by Don Olmstead.
fast/layoutformattingcontext tests enable some internal debug
settings by using the test file header. These settings weren't
reset after running the tests.
r275810 changed resetPreferencesToConsistentValues not to call
WKPreferencesResetAllInternalDebugFeatures.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
Call WKPreferencesResetAllInternalDebugFeatures.
- 1:34 PM Changeset in webkit [276922] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
REGRESSION(r266511): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-restartIce.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=216159
Unreviewed test gardening.
Rebaseline this test as the output has changed since it was marked
failing. We will need to monitor results to see if it is still flaky.
- web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt:
- 1:22 PM Changeset in webkit [276921] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, reverting r276913.
Commit can cause double release
Reverted changeset:
"Transfer ownership to ARC in
speechSynthesisGetDefaultVoiceIdentifierForLocale"
https://bugs.webkit.org/show_bug.cgi?id=225312
https://commits.webkit.org/r276913
- 1:17 PM Changeset in webkit [276920] by
-
- 2 edits in trunk/LayoutTests
[ Big Sur ] webrtc/video-vp8-videorange.html is faling on macmini8,1
https://bugs.webkit.org/show_bug.cgi?id=225257
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:13 PM Changeset in webkit [276919] by
-
- 2 edits in trunk/Source/WebKit
[iOS][FCR] Grouped <select> options should appear inline in the menu
https://bugs.webkit.org/show_bug.cgi?id=225314
<rdar://problem/76785797>
Reviewed by Wenson Hsieh.
Currently, <select> options within an <optgroup> element are presented
within an expandable/collapsible submenu. However, to better match the
visual style across the rest of the system, the grouped options should
appear inline in the root menu, and groups should be separated by a
visual separator.
Covered by existing tests. A testing-only method was updated to reflect
the changes.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPicker createMenu]):
Used UIMenuOptionsDisplayInline to present submenus inline in the root
menu. This option separates submenus using a visual separator.
Since inline submenus do not support a title, and <optgroup> elements
can be labeled, the group title is displayed as a disabled action at
the top of the submenu.
Removed logic to promote the grouped submenu to the root menu in the
case where only one submenu contains all options, since the submenu
now appears inline, and an additional tap is no longer necessary to
view the options.
(-[WKSelectPicker actionForOptionIndex:]):
Updated this testing-only method to account for the potential existence
of an additional action representing a group title.
- 12:58 PM Changeset in webkit [276918] by
-
- 13 edits in trunk/Source
[macCatalyst] "Enter Full Screen" button in media controls disappears
https://bugs.webkit.org/show_bug.cgi?id=225210
<rdar://problem/77010150>
Reviewed by Eric Carlson.
In order for the "Enter Full Screen" media controls button to stay visible the
<video>
must returntrueforHTMLMediaElement::webkitSupportsFullscreen, which calls into
MediaPlayerPrivate::supportsFullscreen. On macOS and iOS, this will always returntrue
because of
ENABLE(FULLSCREEN_API), but on macCatalyst that's not enabled, so we instead
useDeprecatedGlobalSettings::avKitEnabled, but this is only set in the WebProcess (and
WK1). With the GPUProcess enabled, this value is not set, so theRemoteMediaPlayerProxy
will instead getfalse.
This patch removes
DeprecatedGlobalSettings::avKitEnabledsince it's enabled on WK1 and
non-GPUProcess WK2, and the related iOS-only SPI appears to not be used anywhere internally,
instead having callsites just checkHAVE(AVKIT).
Source/WebCore:
- page/DeprecatedGlobalSettings.h:
(WebCore::DeprecatedGlobalSettings::setAVKitEnabled): Deleted.
(WebCore::DeprecatedGlobalSettings::avKitEnabled): Deleted.
- page/DeprecatedGlobalSettings.cpp:
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen const):
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::supportsVideoFullscreen const):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::supportsVideoFullscreen):
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferencesPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences avKitEnabled]): Deleted.
(-[WebPreferences setAVKitEnabled:]): Deleted.
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
- 12:56 PM Changeset in webkit [276917] by
-
- 3 edits in branches/safari-611.2.7.0-branch/Source/WebKit
Cherry-pick r276852. rdar://problem/77468295
prefers-reduced-motion is not reactive on iOS
https://bugs.webkit.org/show_bug.cgi?id=222381
<rdar://75933915>
Reviewed by Brent Fulgham.
With CFPrefs direct mode, there is a race between the notification that an accessibility preference has been changed
by the user, and the the in-memory Accessibility preference cache in the WebContent process. We resolve this by using
new SPI to clear the cached Accessibility settings when we are notified of an accessibility change so they always
reflect the user's most recent setting.
- Platform/spi/Cocoa/AccessibilitySupportSPI.h:
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::setPreferenceValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276852 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:53 PM Changeset in webkit [276916] by
-
- 8 edits in branches/safari-611.2.7.0-branch/Source
Versioning.
WebKit-7611.2.7.0.2
- 12:15 PM Changeset in webkit [276915] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Build with VIDEO=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=225316
Patch by Philippe Normand <pnormand@igalia.com> on 2021-05-03
Reviewed by Adrian Perez de Castro.
- platform/audio/PlatformMediaSession.cpp:
(WebCore::isPlayingAudio): Guard against invalid media types, when video is disabled we can
safely return false here as well.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h: Include what we use (UniqueRef).
- 12:00 PM Changeset in webkit [276914] by
-
- 2 edits in trunk/Tools
Add committer status for "Tim Nguyen" in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=225320
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 11:51 AM Changeset in webkit [276913] by
-
- 2 edits in trunk/Source/WebCore
Transfer ownership to ARC in speechSynthesisGetDefaultVoiceIdentifierForLocale
https://bugs.webkit.org/show_bug.cgi?id=225312
<rdar://problem/77458746>
Reviewed by Chris Fleizach.
To fix memory leak of defaultVoiceURI.
- platform/mac/PlatformSpeechSynthesizerMac.mm:
(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):
- 11:35 AM Changeset in webkit [276912] by
-
- 3 edits in trunk/Tools
editing/selection/ios/become-key-window-when-focusing-editable-area.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=225274
rdar://77042575
Reviewed by Tim Horton.
This test is timing out on recent versions of iOS because the
-becomeKeyWindowsubclassing hook is no longer
invoked when calling-makeKeyWindow, in the case where theUIWindowwas already the key window. The iOS
version of WebKitTestRunner on iOS was dependent on this behavior becausesetWindowIsKey(false)on
PlatformWebViewdid not actually cause the test runner window to resign from being the key window. Instead, it
only set the boolean flagPlatformWebView::m_windowIsKey, whichWebKitTestRunnerWindowthen uses to override
the value of-[WebKitTestRunnerWindow isKeyWindow](effectively side-stepping platform key window state).
We can fix this by refactoring
PlatformWebView::setWindowIsKeyto actually make theWebKitTestRunnerWindow
resign key window when callingsetWindowIsKey(false). Compared to macOS, doing this on iOS is a bit tricky
since-[UIWindow resignKeyWindow]is purely a subclassing hook that is invoked when the window loses its
status as the key window. However, we can work around this limitation by creating a separateUIWindowand
making that window key instead (which implicitly makes our currentWebKitTestRunnerWindowresign key window).
- WebKitTestRunner/PlatformWebView.h:
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::setWindowIsKey):
Install the other
UIWindowand make it key in order to resign the current key window. Note that this window is
placed just offscreen, so that simulated taps and other gestures will continue to go to the original window.
(-[WebKitTestRunnerWindow isKeyWindow]): Deleted.
Stop overriding the platform key window state with the simulated test runner state, since we now correctly
update platform key window state when settingm_windowIsKey. This adjustment is also necessary to ensure that
we actually end up in the!isKey && m_window.keyWindowcase above.
- 11:22 AM Changeset in webkit [276911] by
-
- 4 edits in trunk/Tools
[webkitcorepy] Pass logging level to child processes
https://bugs.webkit.org/show_bug.cgi?id=225311
<rdar://problem/77457646>
Reviewed by Stephanie Lewis.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:
(Process.main): Set root logging level.
(TaskPool.init): Pass logging level to child process.
- 11:14 AM Changeset in webkit [276910] by
-
- 3 edits in branches/safari-612.1.12-branch/Source/WebKit
Cherry-pick r276826. rdar://problem/77463493
Remove some unneeded code.
https://bugs.webkit.org/show_bug.cgi?id=225216
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpAppHighlightMenusIfNeeded]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:00 AM Changeset in webkit [276909] by
-
- 3 edits in trunk/LayoutTests
macOS/iOS Debug ] http/wpt/crypto/unwrap-rsa-key-crash.any.html (layout-test) is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=225315
Unreviewed test gardening.
Updating test expectations to Pass Crash due to slowing down EWS.
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 10:43 AM WebKitGTK/2.32.x edited by
- (diff)
- 10:36 AM Changeset in webkit [276908] by
-
- 5 edits in trunk
Remove "no-preference" value for prefers-color-scheme media query
https://bugs.webkit.org/show_bug.cgi?id=212952
Patch by Tim Nguyen <ntim@apple.com> on 2021-05-03
Reviewed by Antti Koivisto.
WPT parsing tests still fail due to: https://bugs.webkit.org/show_bug.cgi?id=225282
Updated evaluation tests to usenot (prefers-color-scheme)instead.
Source/WebCore:
- css/MediaQueryEvaluator.cpp:
(WebCore::prefersColorSchemeEvaluate):
LayoutTests:
- css-dark-mode/older-systems/prefers-color-scheme.html:
- css-dark-mode/prefers-color-scheme.html:
- 10:28 AM Changeset in webkit [276907] by
-
- 3 edits in trunk
[GLIB] REGRESSION(r276879): Several tests are crashing or failing
https://bugs.webkit.org/show_bug.cgi?id=225292
Reviewed by Carlos Alberto Lopez Perez.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::fileIsDirectory): Return false if path is empty.
- 10:23 AM Changeset in webkit [276906] by
-
- 7 edits in trunk
Restore pre-r276879 behavior for FileSystem::deleteFile() and FileSystem::deleteEmptyDirectory()
https://bugs.webkit.org/show_bug.cgi?id=225289
Reviewed by Darin Adler.
Source/JavaScriptCore:
Fix build.
- Configurations/JavaScriptCore.xcconfig:
Source/WTF:
Restore pre-r276879 behavior for FileSystem::deleteFile() and FileSystem::deleteEmptyDirectory() to
reduce the risk of regressions. In particular, calling FileSystem::deleteFile() on an empty directory
now fails and calling FileSystem::deleteEmptyDirectory() on a non-directory now fails.
I have also gotten rid of the macOS-specific implementation of deleteEmptyDirectory() and merged the
needed behavior (Dealing with .DS_Store files) to the generic function.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::deleteEmptyDirectory):
- wtf/mac/FileSystemMac.mm:
(WTF::FileSystem::deleteEmptyDirectory): Deleted.
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 10:13 AM Changeset in webkit [276905] by
-
- 7 edits in trunk
[Metal ANGLE]: Fix conversions tests and remove failing test expectations
https://bugs.webkit.org/show_bug.cgi?id=225261
<rdar://77349615>
bool conversion workaround was being applied to all shaders. Correct shader translation to generate
better conversion code on platforms that don't need a workaround.
Conversions for basic types like vec2, ivec2, uvec2 were only using the first components when workaround
was active. Correct swizzle logic to get all components when doing a conversion.
Reviewed by Dean Jackson.
Source/ThirdParty/ANGLE:
- src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp:
- src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp:
(sh::CoerceSimple):
- src/compiler/translator/TranslatorMetalDirect/AstHelpers.h:
LayoutTests:
- webgl/2.0.0/deqp/data/gles2/shaders/conversions-expected.txt:
- webgl/2.0.0/deqp/data/gles3/shaders/conversions-expected.txt:
- 10:08 AM Changeset in webkit [276904] by
-
- 8 edits1 add in trunk/Source/WebCore
Move Style::ScopeOrdinal to a header of its own
https://bugs.webkit.org/show_bug.cgi?id=225302
Reviewed by Alan Bujtas.
Se we don't need to include StyleScope.h everywhere via Animation.h.
- WebCore.xcodeproj/project.pbxproj:
- animation/KeyframeEffect.cpp:
- css/DOMCSSRegisterCustomProperty.cpp:
- platform/animation/Animation.h:
- style/ElementRuleCollector.h:
- style/StyleScope.h:
(WebCore::Style::operator++): Deleted.
- style/StyleScopeOrdinal.h: Added.
(WebCore::Style::operator++):
- 9:38 AM Changeset in webkit [276903] by
-
- 31 edits2 adds in branches/safari-612.1.12-branch
Cherry-pick r276853. rdar://problem/77458363
[iOS] Add a heuristic to determine whether a synthetic click triggered any meaningful changes
https://bugs.webkit.org/show_bug.cgi?id=225240
rdar://77221196
Reviewed by Tim Horton.
Source/WebCore:
Add plumbing for a
ChromeClienthook that's called when a mousedown or mouseup event is either prevented by
the page, or handled with a default event handler on the element (e.g. when clicking a link).
Test: fast/events/ios/did-not-handle-meaningful-click.html
- page/ChromeClient.h: (WebCore::ChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent):
- page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): (WebCore::EventHandler::handleMouseDoubleClickEvent): (WebCore::EventHandler::handleMouseReleaseEvent):
Source/WebKit:
Add a simple heuristic to inform WKWebView iOS clients when a tap either failed to result in a synthetic click,
or resulted in a synthetic click that (probably) didn't have any "meaningful side effects". While this notion of
"meaningfulness" isn't well defined, the idea behind the heuristic is that it should distinguish between taps on
clickable elements like buttons or links that trigger some noticable change on the page, vs. taps on both
clickable or non-clickable elements that do not trigger any changes on the page.
For instance on a news-article-like page, this delegate method should be invoked when tapping on paragraph text
in the article, even if there is a click handler over the entire article or even body element. However, tapping
a link or a button on the same page should not cause this delegate method to be invoked. Additionally, if the
page explicitly prevents default behavior during a synthetic mouse event, this method should also *not* be
invoked.
This behavior is roughly similar to the existing delegate method
-_webView:didNotHandleTapAsClickAtPoint:,
except that this variant allows for more wiggle room around what constitutes a "meaningful" interaction with the
page.
- UIProcess/API/APIUIClient.h: (API::UIClient::didNotHandleTapAsMeaningfulClickAtPoint):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm: (-[WKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]):
See Tools/ChangeLog for more details about this testing hook.
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::didNotHandleTapAsMeaningfulClickAtPoint):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didNotHandleTapAsMeaningfulClickAtPoint):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didNotHandleTapAsMeaningfulClickAtPoint):
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.h: (WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::isProbablyMeaningfulClick):
Implement the core of the heuristic here. For now, it just examines the size of the click target. This isn't
going to satisfy the case where a page installs a click event handler on the body element (or a similar
element that encapsulates most of the page) and then performs hit-testing in their script, but it's somewhere to
start.
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::attemptSyntheticClick):
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTapFailed):
Tools:
Add test runner plumbing to test the new heuristic. Note that we can't just utilize the
WKUIDelegatePrivate
method directly, since we end up overriding the web view'sUIClientviaWKPageSetPageUIClient, so the call
tom_uiClient->didNotHandleTapAsMeaningfulClickAtPoint(point);ends up being a no-op.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::installDidNotHandleTapAsMeaningfulClickCallback): (WTR::TestRunner::callDidNotHandleTapAsMeaningfulClickCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::didNotHandleTapAsMeaningfulClick):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didNotHandleTapAsMeaningfulClick):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]):
LayoutTests:
- fast/events/ios/did-not-handle-meaningful-click-expected.txt: Added.
- fast/events/ios/did-not-handle-meaningful-click.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:58 AM Changeset in webkit [276902] by
-
- 4 edits2 adds in trunk
[Multi-column] Remove spanner placeholder when the spanner becomes nested
https://bugs.webkit.org/show_bug.cgi?id=225248
<rdar://77326189>
Reviewed by Antti Koivisto.
Source/WebCore:
Columns spanners (and their subtrees) are moved out of the RenderMultiColumnFlow subtree next to their RenderMultiColumnSet renderers.
Placeholder renderers are inserted at the original position e.g.
<div id=A style="column-count: 2;"><div id=B><div id=C style="column-span: all;"></div></div></div>
RenderBlockFlow (A) (<div column-count: 2>)
RenderMultiColumnFlow
RenderBlockFlow (B) (<div>)
RenderBlockFlow (C) (<div>)
RenderMultiColumnSpannerPlaceholder (placeholder for D)
RenderBlockFlow (D) (<div column-span: all>)
RenderMultiColumnSet
Now if (C) becomes a column spanner, we need to move the descendant spanner (D) back to its original position and move the subtree out starting from the outermost spanner (C).
RenderTreeUdpater normally solves this by tearing down the new spanner (and its subtree) when the 'column-spanner' property changes.
However this spanner property is essentially ignored for floats and out-of-flow boxes (we don't make them spanning the columns) and changing "float" and/or "position" makes
spanners active.
Test: fast/multicol/span/float-becomes-spanner-crash.html
- style/StyleChange.cpp:
(WebCore::Style::determineChange):
LayoutTests:
- TestExpectations:
- fast/multicol/span/float-becomes-spanner-crash-expected.txt: Added.
- fast/multicol/span/float-becomes-spanner-crash.html: Added.
- 8:58 AM Changeset in webkit [276901] by
-
- 9 edits2 adds in trunk
[iOS] Crash when tapping fields on cycle.travel
https://bugs.webkit.org/show_bug.cgi?id=225259
<rdar://problem/77386417>
Reviewed by Wenson Hsieh.
Source/WebKit:
The From/To fields on cycle.travel have a click handler that presents
a popover. The popover is presented by changing its display property
from "none" to "block", and contains an input element with the "autofocus"
attribute. After changing the popover element's display property, the
page focuses another element by calling focus().
In WebKit, focusing an element sends an IPC message from the WebProcess
to the UIProcess, so that UIProcess knows of the focused element and
can present the necessary UI. All relevant information about the element
is encoded in a FocusedElementInformation struct, which is populated by
WebPage::getFocusedElementInformation.
Prior to populating the FocusedElementInformation,
getFocusedElementInformation performs a layout if needed,
so that the information sent to the UIProcess is up-to-date. In this
instance, a layout is needed after the popover element's display
property is changed. Then, since the page immediately focuses another
element after the display change, WebKit calls
getFocusedElementInformation prior to the layout being performed.
getFocusedElementInformation then sees that a layout is needed, and
triggers the pending layout.
Now, since since the popover contains an element with "autofocus",
another element is focused as a post-layout task. This means that the
layout triggered by getFocusedElementInformation changes the focused
element. r256401 added an early return in this case, to prevent a null
pointer deref.
An early return in getFocusedElementInformation leaves the passed-in
FocusedElementInformation in an inconsistent state. In particular,
the FocusedElementInformation's elementContext is left with invalid
identifiers. Currently, all callers of getFocusedElementInformation do
not check whether the information is in a valid state. Consequently,
the caller (in this case, WebPage::elementDidFocus) proceeds to send
an IPC message with the FocusedElementInformation as one of the
arguments. Then, a release assert is hit as sending IPC messages with
invalid arguments is unsafe.
To fix, make getFocusedElementInformation return an optional
FocusedElementInformation, rather than populating a parameter that
could be left in an invalid state. Then, any early returns can return
WTF::nullopt, to signify that we were unable to generate a valid
FocusedElementInformation. Finally, whenever the method returns
nullopt, we do not send the IPC message (or in another case, send a
message with nullopt).
Test: fast/forms/focus-change-after-layout-update-during-focus-crash.html
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView updateCurrentFocusedElementInformation:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::requestFocusedElementInformation):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::elementDidFocus):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestFocusedElementInformation):
(WebKit::WebPage::focusedElementInformation):
LayoutTests:
- fast/forms/focus-change-after-layout-update-during-focus-crash-expected.txt: Added.
- fast/forms/focus-change-after-layout-update-during-focus-crash.html: Added.
- 8:54 AM Changeset in webkit [276900] by
-
- 9 edits in trunk/Source/JavaScriptCore
Add some missing exception checks before some jsCasts.
https://bugs.webkit.org/show_bug.cgi?id=225264
rdar://77381608
Reviewed by Saam Barati.
Introducing JSObject::getAs() and JSValue::getAs() convenience methods that will
check for an exception before doing a jsCast on the get result. We only need this
to placate the assertion in jsCast in the event a pending exception exists at the
time of the jsCast. If ASSERTs are not enabled, this will be a no-op. All clients
that use jsCast this way (and now use getAs instead) will already be doing an
exception check immediately after. Hence, they are already doing the right thing
in terms of handling exceptions. We're only placating the jsCast assertion here.
- runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::hostResolveImportedModule):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::getAs const):
- runtime/JSInternalPromise.cpp:
(JSC::JSInternalPromise::then):
- runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::dependencyKeysIfEvaluated):
(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::requestImportModule):
- runtime/JSObject.h:
(JSC::JSObject::getAs const):
- runtime/JSPromise.cpp:
(JSC::JSPromise::createDeferredData):
- runtime/VM.h:
- 8:02 AM Changeset in webkit [276899] by
-
- 30 edits in trunk
Remove default parameter values for color space and pixel format from ImageBuffer::create to make it clear everwhere we are explicitly requesting SRGB/BGRA8 buffers
https://bugs.webkit.org/show_bug.cgi?id=225288
Reviewed by Anders Carlsson.
Source/WebCore:
To make it super clear exactly what type of ImageBuffers we are creating, this
removes the default parameters for the scale, color space and pixel format from
the ImageBuffer::create() functions.
This allows us to easily see exactly where we are creating 8-bit sRGB buffers
and potentially losing non-sRGB and wide (> 8-bit) source data. In practice, many
of these sites are wrong and should be updated to use a color space and pixel
format matching the source they are going to be copying/buffering.
I did not update the ImageBuffer::createCompatibleBuffer, as it is less clear what
to do about them, or what exactly is meant by "compatible", as it seems to be
inconsistent from one to the other.
Ultimately, if we want to make it easy to create an ImageBuffer that has the same
underlying characteristics of whatever a GraphicsContext is drawing to, we will need
to update GraphicsContext to be able to provide scale, color space and pixel format
information directly. This will probably require some new mechanism for representing
color space that can either be a DestinationColorSpace or a platform specific color
space object (e.g. CGColorSpaceRef).
- Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):
- Modules/mediasession/MediaMetadata.cpp:
(WebCore::ArtworkImageLoader::notifyFinished):
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createImageBuffer):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createCompositingBuffer):
- html/canvas/ImageBitmapRenderingContext.cpp:
(WebCore::ImageBitmapRenderingContext::setOutputBitmap):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):
- html/shadow/MediaControlTextTrackContainerElement.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::indexForData):
(WebCore::InspectorCanvas::buildArrayForCanvasPattern):
- page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRectWithClip):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):
- platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::drawPattern):
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
- platform/graphics/ImageBuffer.h:
- platform/graphics/ShadowBlur.cpp:
(WebCore::ScratchBuffer::getScratchBuffer):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawShadowLayer):
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:
(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::imageBufferResult):
(WebCore::FilterEffect::convertImageDataToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::createImageBufferResult):
- platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:
(Nicosia::GCGLLayer::swapBuffersIfNeeded):
- platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents):
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::imageBuffer const):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
- rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::createImageBuffer):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImage):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::imageForCurrentSharingServicePickerItem):
Pass arguments explicitly that were previously default values.
Tools:
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
Pass arguments explicitly that were previously default values.
- 7:04 AM Changeset in webkit [276898] by
-
- 2 edits in trunk/Tools
Remove unused gtk_im_multicontext_get_slave from valgrind/suppressions.txt
https://bugs.webkit.org/show_bug.cgi?id=225300
Reviewed by Žan Doberšek.
- Scripts/valgrind/suppressions.txt:
- 5:51 AM ASanWebKit edited by
- (diff)
- 5:29 AM Changeset in webkit [276897] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Properly reset WebKitWebView's responsiveness flag
https://bugs.webkit.org/show_bug.cgi?id=225291
Reviewed by Alicia Boya Garcia.
Reset the web process responsiveness flag whenever the web process is terminated.
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewWebProcessTerminated):
(webkit_web_view_terminate_web_process):
- 4:00 AM Changeset in webkit [276896] by
-
- 24 edits2 adds in trunk
[WASM-Function-References] Add call_ref instruction
https://bugs.webkit.org/show_bug.cgi?id=222903
Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-05-03
Reviewed by Yusuke Suzuki.
JSTests:
Add basic tests for new call_ref instruction:
https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.
Add tests for calling same-instance wasm function, foreign-instance
wasm function and for calling imported js function.
- wasm.yaml:
- wasm/function-references/call_ref.js: Added.
(module):
(async basics):
(async indirectCall):
(async importHostCall):
- wasm/wasm.json:
Source/JavaScriptCore:
Add support for call_ref instruction from the typed function
references proposal: https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.
call_ref calls the given function references from the stack
and it does almost the same stuff as call_indirect but
it doesn't check signatures because wasm types system guaranties
correctness.
- bytecode/BytecodeList.rb:
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- llint/LowLevelInterpreter.asm:
- llint/WebAssembly.asm:
- runtime/Gate.h:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitIndirectCall):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addCallRef):
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::doWasmCallRef):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
- wasm/WasmSlowPaths.h:
- wasm/js/JSWebAssemblyTable.cpp:
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::WebAssemblyFunction):
- wasm/js/WebAssemblyFunction.h:
- wasm/js/WebAssemblyFunctionBase.cpp:
(JSC::WebAssemblyFunctionBase::WebAssemblyFunctionBase):
- wasm/js/WebAssemblyFunctionBase.h:
(JSC::WebAssemblyFunctionBase::offsetOfEntrypointLoadLocation):
- wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::WebAssemblyWrapperFunction):
- wasm/js/WebAssemblyWrapperFunction.h:
- wasm/wasm.json:
- 2:29 AM Changeset in webkit [276895] by
-
- 7 edits in trunk
Decoding an SVG off the main thread causes a crash
https://bugs.webkit.org/show_bug.cgi?id=206055
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline OffscreenCanvas SVG tests.
- web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.worker-expected.txt:
Source/WebCore:
Use BitmapImage::create instead of Image::create in ImageBitmap. This
bypasses use of SVGImage and PDFDocumentImage, which are not safe to
use off the main thread.
No new tests, rebaselined existing tests.
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createFromBuffer):
Use BitmapImage instead of Image.
- platform/graphics/Image.cpp:
(WebCore::Image::create):
Add main-thread assert on Image creation.
LayoutTests:
Enable OffscreenCanvas SVG tests.
- platform/glib/TestExpectations:
- 2:24 AM Changeset in webkit [276894] by
-
- 2 edits in trunk/Source/WebCore
getPropertyValue for url path doesn't return the "#" character
https://bugs.webkit.org/show_bug.cgi?id=215409
Patch by Rob Buis <rbuis@igalia.com> on 2021-05-03
Reviewed by Youenn Fablet.
Address post review comments.
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- 1:16 AM Changeset in webkit [276893] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r276633): fast/mediastream/media-stream-track-interrupted.html is consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=225204
<rdar://problem/77338070>
Reviewed by Eric Carlson.
Reverting to RecursiveLock since resuming a unit will make it notify to unmute sources.
Sources will want to restart audio, thus restarting the unit synchronously.
This triggers the unit to tell its clients that it is restarting, which creates a dead lock.
We should probably update the code to change this, but as a short term fix, we revert to a RecursiveLock.
Covered by fast/mediastream/media-stream-track-interrupted.html no longer timing out.
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
(WebCore::BaseAudioSharedUnit::audioSamplesAvailable):
- platform/mediastream/mac/BaseAudioSharedUnit.h:
- 1:12 AM Changeset in webkit [276892] by
-
- 16 edits in trunk
Use OptionSet for MediaProducer::MutedStateFlags
https://bugs.webkit.org/show_bug.cgi?id=224550
<rdar://problem/76960294>
Reviewed by Eric Carlson.
Source/WebCore:
Refactoring to improve type safety.
No change of behavior.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):
(WebCore::MediaStreamTrack::updateToPageMutedState):
- page/MediaProducer.h:
- page/Page.h:
(WebCore::Page::isAudioMuted const):
(WebCore::Page::isMediaCaptureMuted const):
- testing/Internals.cpp:
(WebCore::Internals::setPageMuted):
Source/WebKit:
Update to use new OptionSet MediaProducer::MutedStateFlags.
Fix a potential bug in case the page is video capture muted, covered by updated API test.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
- UIProcess/API/C/WKPage.cpp:
(WKPageSetMuted):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView setMicrophoneCaptureState:completionHandler:]):
(-[WKWebView setCameraCaptureState:completionHandler:]):
(-[WKWebView _setPageMuted:]):
- UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_set_is_muted):
- UIProcess/Cocoa/MediaUtilities.mm:
(WebKit::toWKMediaMutedState):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityState):
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST):
- 12:49 AM Changeset in webkit [276891] by
-
- 3 edits in trunk/LayoutTests
[GLIB][GTK] Unreviewed test gardening. Updated expectations with latest failures from GTK release bot.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 12:02 AM Changeset in webkit [276890] by
-
- 2 edits in trunk/Source/WebKit
IPC::Semaphore operations ASSERT when the semaphore has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=225142
<rdar://problem/76178000>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-05-03
Reviewed by Chris Dumez.
Add KERN_TERMINATED to the expected return values of semaphore_{signal,wait,timedwait} calls.
- Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:
(IPC::Semaphore::signal):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):
May 2, 2021:
- 8:11 PM Changeset in webkit [276889] by
-
- 1 edit139 adds in trunk/Websites/browserbench.org
Copy PerformanceTests/MotionMark to WebSites/browserbench.org/MotionMark1.2
https://bugs.webkit.org/show_bug.cgi?id=225287
Reviewed by Maciej Stachowiak and Ryosuke Niwa.
This patch copies the files, and also updates the version in WebSites/browserbench.org
to "1.2." It also updates the "about" page to include a description of the changes.
No existing links have been updated to point to this new version.
- MotionMark1.2/about.html: Added.
- MotionMark1.2/developer.html: Added.
- MotionMark1.2/index.html: Added.
- MotionMark1.2/resources/debug-runner/d3.min.js: Added.
- MotionMark1.2/resources/runner/benchmark-runner.js: Added.
(BenchmarkRunnerState.Utilities.createClass):
(this.next.currentSuite):
(this.next.currentTest):
(this.next.isFirstTest):
(this.next.next):
(this.next.frame.onload):
(this.next.prepareCurrentTest):
(this.next):
(BenchmarkRunner.Utilities.createClass):
(_appendFrame):
(_removeFrame):
(_runBenchmarkAndRecordResults):
(step):
(runAllSteps):
(this._runNextIteration):
(runMultipleIterations):
(_finalize):
- MotionMark1.2/resources/runner/crystal.svg: Added.
- MotionMark1.2/resources/runner/lines.svg: Added.
- MotionMark1.2/resources/runner/logo.svg: Added.
- MotionMark1.2/resources/runner/motionmark.css: Added.
(html,):
(body):
(body.showing-intro,):
(body.showing-test-container):
(body.images-loaded):
(@media screen and (min-width: 667px) body):
(@media screen and (min-width: 667px) body.showing-intro,):
(@media screen and (min-width: 1025px) body.showing-intro,):
(::selection):
(.hidden):
(section):
(section.selected):
(.logo):
(.logo svg):
(.logo div):
(body.images-loaded .logo svg):
(@media screen and (min-width: 667px) .logo svg):
(@media screen and (min-width: 667px) .logo div):
(section .body):
(section .body p):
(@media screen and (min-width: 667px) section .body):
(@media screen and (min-width: 667px) section button):
(button):
(body.images-loaded button):
(button:hover):
(button:active):
(button:disabled):
(@media print button):
(.portrait-orientation-check):
(@media screen and (max-device-width: 1025px) and (orientation: portrait) .portrait-orientation-check):
(@media screen and (max-device-width: 1025px) and (orientation: portrait) .landscape-orientation-check):
(@keyframes background-fade):
(@keyframes background-color):
(12%, 20%):
(22%, 30%):
(32%, 40%):
(42%, 50%):
(52%, 60%):
(62%, 70%):
(72%, 80%):
(82%, 90%):
(92%, 100%):
(@keyframes foreground-color):
(#intro, #about):
(#intro):
(body.images-loaded #intro):
(#about .body):
(#about li):
(#about button):
(#about h3):
(#about #log):
(#about #log li):
(@media screen and (min-width: 667px) #about .body):
(@media screen and (min-width: 667px) #about ol, #about ul):
(#intro a, #about a,):
(.frame-container):
(.frame-container > iframe):
(body.small .frame-container):
(body.medium .frame-container):
(body.large .frame-container):
(#results):
(#results .body):
(#results .score-container):
(#results .table-container):
(#results .table-container > div):
(#results .score):
(#results .confidence):
(#results table):
(#results table td,):
(#results table td.suites-separator):
(#results table tr:nth-child(even)):
(#results #results-header):
(#results #results-score):
(#results #results-data span):
(#results #results-header td,):
(#results #results-score td,):
(#results #results-score td):
(@media screen and (min-width: 667px) #results .score,):
(.detail span):
(body.small .detail .small,):
(#overlay):
(@supports (-webkit-backdrop-filter: blur(10px))):
(#overlay > div):
(#overlay > div div):
- MotionMark1.2/resources/runner/motionmark.js: Added.
(ResultsDashboard.Utilities.createClass):
(this._processData.push):
(this._processData._processData):
(this._processData.findRegression):
(this._processData.):
(this._processData.calculateScore):
(this._processData.get data):
(this._processData.get results):
(this._processData.get options):
(this._processData.get version):
(this._processData._getResultsProperty):
(this._processData.get score):
(this._processData.get scoreLowerBound):
(this._processData.get scoreUpperBound):
(this._processData):
(ResultsTable.Utilities.createClass):
(this.clear.clear):
(this.clear._addHeader):
(this.clear._addBody):
(this.clear._addEmptyRow):
(this.clear):
(this.clear._addIteration):
(this.clear.showIterations):
(window.benchmarkRunnerClient.initialize):
(window.benchmarkRunnerClient.willStartFirstIteration):
(window.benchmarkRunnerClient.didRunSuites):
(window.benchmarkRunnerClient.didRunTest):
(window.benchmarkRunnerClient.didFinishLastIteration):
(window.sectionsManager.showSection):
(window.sectionsManager.setSectionVersion):
(window.sectionsManager.setSectionScore):
(window.sectionsManager.populateTable):
(window.benchmarkController.initialize):
(window.benchmarkController.determineCanvasSize):
(window.benchmarkController.addOrientationListenerIfNecessary):
(window.benchmarkController._orientationChanged):
(window.benchmarkController.updateStartButtonState):
(window.benchmarkController._startBenchmark):
(window.benchmarkController.startBenchmark):
(window.benchmarkController.showResults):
(window.benchmarkController.handleKeyPress):
(window.benchmarkController.hideDebugInfo):
(window.benchmarkController.data.onclick):
(window.benchmarkController.button.onclick):
(window.benchmarkController.showDebugInfo):
(window.benchmarkController.selectResults):
- MotionMark1.2/resources/runner/tests.js: Added.
(Headers.details.text):
(Suite):
(suiteFromName):
- MotionMark1.2/resources/statistics.js: Added.
(Pseudo.resetRandomSeed):
(Pseudo.random):
(Statistics.sampleMean):
(Statistics.unbiasedSampleStandardDeviation):
(Statistics.geometricMean):
(Statistics.cdf):
(Statistics.erf):
(Statistics.largestDeviationPercentage):
(Experiment.Utilities.createClass):
(this.reset.reset):
(this.reset.get sampleCount):
(this.reset.sample):
(this.reset.mean):
(this.reset.standardDeviation):
(this.reset.cdf):
(this.reset.percentage):
(this.reset.concern):
(this.reset.score):
(this.reset):
(Regression.Utilities.createClass):
(valueAt):
(setBest):
(_calculateRegression):
(bootstrap):
- MotionMark1.2/resources/strings.js: Added.
- MotionMark1.2/tests/3d/resources/webgl.js: Added.
(Stage.call.initialize):
(Stage.call._getFunctionSource):
(Stage.call._resetIfNecessary):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call.complexity):
(Stage.call):
- MotionMark1.2/tests/3d/resources/webgpu.js: Added.
(constant.float.uniforms.register):
(Stage.call.initialize):
(Stage.call._getFunctionSource):
(Stage.call._resetIfNecessary):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call.complexity):
(Stage.call):
(new.WebGLStage.waitUntilReady):
(new.WebGLStage):
- MotionMark1.2/tests/3d/triangles-webgl.html: Added.
- MotionMark1.2/tests/3d/triangles-webgpu.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-canvas-images.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-css-images.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-css-shapes.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-svg-images.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
- MotionMark1.2/tests/bouncing-particles/bouncing-tagged-images.html: Added.
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
(_draw):
(BouncingCanvasParticlesStage.call.initialize):
(BouncingCanvasParticlesStage.call.createParticle):
(BouncingCanvasParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
(applyRotation):
(applyClipping):
(_draw):
(animate):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.animate):
(BouncingParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
(this._color1.Stage.randomColor._applyFill):
(this._color1.Stage.randomColor._drawShape):
(this._color1.Stage.randomColor._draw):
(this._color1.Stage.randomColor):
(BouncingCanvasParticlesStage.call.initialize):
(BouncingCanvasParticlesStage.call.createParticle):
(BouncingCanvasParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
(switch):
(this._move._createSpan):
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-particles.js: Added.
(BouncingParticle):
(BouncingParticle.prototype.get center):
(BouncingParticle.prototype.animate):
(initialize):
(parseShapeParameters):
(animate):
(tune):
(complexity):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
(BouncingSvgParticlesStage.call.initialize):
(BouncingSvgParticlesStage.call.createParticle):
(BouncingSvgParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
(_applyClipping):
(_move):
(animate):
(BouncingParticlesStage.call._createDefs):
(BouncingParticlesStage.call._ensureDefsIsCreated):
(BouncingParticlesStage.call._createClipStar):
(BouncingParticlesStage.call.ensureClipStarIsCreated):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
(this._move._createShape):
(this._move._applyFill):
(this._move):
(BouncingSvgParticlesStage.call.initialize):
(BouncingSvgParticlesStage.call.createGradient):
(BouncingSvgParticlesStage.call.createParticle):
(BouncingSvgParticlesStage.call.particleWillBeRemoved):
(BouncingSvgParticlesStage.call):
- MotionMark1.2/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.img.onload):
(BouncingParticlesStage.call._loadImage):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
(new.BouncingTaggedImagesStage.waitUntilReady):
(new.BouncingTaggedImagesStage):
- MotionMark1.2/tests/bouncing-particles/resources/image1.jpg: Added.
- MotionMark1.2/tests/bouncing-particles/resources/image2.jpg: Added.
- MotionMark1.2/tests/bouncing-particles/resources/image3.jpg: Added.
- MotionMark1.2/tests/bouncing-particles/resources/image4.jpg: Added.
- MotionMark1.2/tests/bouncing-particles/resources/image5.jpg: Added.
- MotionMark1.2/tests/dom/compositing-transforms.html: Added.
- MotionMark1.2/tests/dom/focus.html: Added.
- MotionMark1.2/tests/dom/leaves.html: Added.
- MotionMark1.2/tests/dom/multiply.html: Added.
- MotionMark1.2/tests/dom/particles.html: Added.
- MotionMark1.2/tests/dom/resources/compositing-transforms.js: Added.
(this._move._move):
(this._move.animate):
(this._move):
(BouncingParticlesStage.call.initialize):
(BouncingParticlesStage.call.createParticle):
(BouncingParticlesStage.call.particleWillBeRemoved):
(BouncingParticlesStage.call):
- MotionMark1.2/tests/dom/resources/dom-particles.js: Added.
(Particle.call.reset):
(Particle.call.move):
(Particle.call):
(ParticlesStage.call.initialize):
(ParticlesStage.call.createParticle):
(ParticlesStage.call.willRemoveParticle):
(ParticlesStage.call):
- MotionMark1.2/tests/dom/resources/focus.js: Added.
(FocusElement.Utilities.createClass):
(hide):
(show):
(animate):
(Stage.call.initialize):
(Stage.call.complexity):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call.getBlurValue):
(Stage.call.getOpacityValue):
(Stage.call):
- MotionMark1.2/tests/dom/resources/leaves.js: Added.
(SuperLeaf.call.move):
(SuperLeaf.call):
(switch):
- MotionMark1.2/tests/dom/resources/multiply.js: Added.
(switch):
- MotionMark1.2/tests/master/canvas-stage.html: Added.
- MotionMark1.2/tests/master/design.html: Added.
- MotionMark1.2/tests/master/focus.html: Added.
- MotionMark1.2/tests/master/image-data.html: Added.
- MotionMark1.2/tests/master/leaves.html: Added.
- MotionMark1.2/tests/master/multiply.html: Added.
- MotionMark1.2/tests/master/resources/canvas-stage.js: Added.
(initialize):
(tune):
(animate):
(complexity):
- MotionMark1.2/tests/master/resources/canvas-tests.js: Added.
(CanvasLineSegment.Utilities.createClass):
(draw):
(CanvasArc.Utilities.createClass):
(CanvasLinePoint.Utilities.createClass):
(randomPoint):
(SimpleCanvasStage.call.initialize):
(SimpleCanvasStage.call.animate):
(SimpleCanvasStage.call):
(switch):
- MotionMark1.2/tests/master/resources/compass.svg: Added.
- MotionMark1.2/tests/master/resources/compass100.png: Added.
- MotionMark1.2/tests/master/resources/console.svg: Added.
- MotionMark1.2/tests/master/resources/console100.png: Added.
- MotionMark1.2/tests/master/resources/contribute.svg: Added.
- MotionMark1.2/tests/master/resources/contribute100.png: Added.
- MotionMark1.2/tests/master/resources/debugger.svg: Added.
- MotionMark1.2/tests/master/resources/debugger100.png: Added.
- MotionMark1.2/tests/master/resources/design.js: Added.
(initialize):
(tune):
(animate):
(complexity):
- MotionMark1.2/tests/master/resources/focus.js: Added.
(FocusElement.Utilities.createClass):
(this.animate.hide):
(this.animate.show):
(this.animate.animate):
(this.animate):
(Stage.call.initialize):
(Stage.call.complexity):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
- MotionMark1.2/tests/master/resources/image-data.js: Added.
(initialize):
(_loadImage):
(tune):
(_createTestElement):
(_refreshElement):
(animate):
(_getRandomNeighboringPixelIndex):
(complexity):
(new.ImageDataStage.waitUntilReady):
(new.ImageDataStage):
- MotionMark1.2/tests/master/resources/inspector.svg: Added.
- MotionMark1.2/tests/master/resources/inspector100.png: Added.
- MotionMark1.2/tests/master/resources/layout.svg: Added.
- MotionMark1.2/tests/master/resources/layout100.png: Added.
- MotionMark1.2/tests/master/resources/leaves.js: Added.
(Particle.call.reset):
(Particle.call.animate):
(Particle.call.move):
(Particle.call):
(initialize):
(img.onload):
(_loadImage):
(animate):
(createParticle):
(willRemoveParticle):
(new.ParticlesStage.waitUntilReady):
(new.ParticlesStage):
- MotionMark1.2/tests/master/resources/multiply.js: Added.
(initialize):
(_addTile):
(complexity):
(tune):
(animate):
- MotionMark1.2/tests/master/resources/particles.js: Added.
(Particle):
(Particle.prototype.reset):
(Particle.prototype.animate):
(Particle.prototype.move):
(animate):
(tune):
(complexity):
- MotionMark1.2/tests/master/resources/performance.svg: Added.
- MotionMark1.2/tests/master/resources/performance100.png: Added.
- MotionMark1.2/tests/master/resources/script.svg: Added.
- MotionMark1.2/tests/master/resources/script100.png: Added.
- MotionMark1.2/tests/master/resources/shortcuts.svg: Added.
- MotionMark1.2/tests/master/resources/shortcuts100.png: Added.
- MotionMark1.2/tests/master/resources/standards.svg: Added.
- MotionMark1.2/tests/master/resources/standards100.png: Added.
- MotionMark1.2/tests/master/resources/storage.svg: Added.
- MotionMark1.2/tests/master/resources/storage100.png: Added.
- MotionMark1.2/tests/master/resources/styles.svg: Added.
- MotionMark1.2/tests/master/resources/styles100.png: Added.
- MotionMark1.2/tests/master/resources/suits.js: Added.
(this.initialize.initialize):
(this.initialize.reset):
(this.initialize.move):
(this.initialize):
(ParticlesStage.call.initialize):
(ParticlesStage.call.createParticle):
(ParticlesStage.call.willRemoveParticle):
(ParticlesStage.call):
- MotionMark1.2/tests/master/resources/timeline.svg: Added.
- MotionMark1.2/tests/master/resources/timeline100.png: Added.
- MotionMark1.2/tests/master/suits.html: Added.
- MotionMark1.2/tests/resources/main.js: Added.
(Sampler.Utilities.createClass):
(record):
(processSamples):
(Controller.Utilities.createClass):
(set isFrameLengthEstimatorEnabled):
(start):
(recordFirstSample):
(mark):
(containsMark):
(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(didFinishInterval):
(tune):
(shouldStop):
(results):
(_processComplexitySamples):
(_processMarks):
(_processControllerSamples):
(_getComplexity):
(_getFrameLength):
(Stage.Utilities.createClass):
(Stage.Utilities.createClass.initialize):
(Stage.Utilities.createClass.get element):
(Stage.Utilities.createClass.get size):
(Stage.Utilities.createClass.complexity):
(Stage.Utilities.createClass.tune):
(Stage.Utilities.createClass.animate):
(Stage.Utilities.createClass.clear):
(random):
(randomBool):
(randomSign):
(randomInt):
(randomPosition):
(randomSquareSize):
(randomVelocity):
(randomAngle):
(randomColor):
(randomStyleMixBlendMode):
(randomStyleFilter):
(randomElementInArray):
(rotatingColor):
(dateFractionalValue):
(dateCounterValue):
(randomRotater):
(Rotater.Utilities.createClass):
(get interval):
(next):
(degree):
(rotateZ):
(rotate):
(Benchmark.Utilities.createClass):
(get stage):
(get timestamp):
(backgroundColor):
(run):
(waitUntilReady):
(_animateLoop):
- MotionMark1.2/tests/resources/math.js: Added.
(this._gain.error.sample):
(this._gain.error.reset):
(this._gain.error):
(PIDController.Utilities.createClass):
(_yPosition):
(_distanceUltimate):
(_distance):
(_gainIncrement):
(_updateStage):
(_tuneP):
(_tunePID):
(_tune):
(_saturate):
(tune):
- MotionMark1.2/tests/resources/stage.css: Added.
(html):
(body):
(#stage):
(#center-text):
- MotionMark1.2/tests/resources/star.svg: Added.
- MotionMark1.2/tests/resources/yin-yang.png: Added.
- MotionMark1.2/tests/resources/yin-yang.svg: Added.
- MotionMark1.2/tests/simple/resources/simple-canvas-paths.js: Added.
(CanvasLineSegment.Utilities.createClass):
(this._lineWidth.Stage.randomInt.draw):
(this._lineWidth.Stage.randomInt):
(CanvasLinePoint.Utilities.createClass):
(draw):
(CanvasQuadraticSegment.Utilities.createClass):
(CanvasQuadraticPoint.Utilities.createClass):
(CanvasBezierSegment.Utilities.createClass):
(CanvasBezierPoint.Utilities.createClass):
(CanvasArcToSegment.Utilities.createClass):
(CanvasArcToSegmentFill.Utilities.createClass):
(CanvasArcToSegment.call.draw):
(CanvasArcToSegment.call):
(CanvasArcSegment.Utilities.createClass):
(CanvasArcSegmentFill.Utilities.createClass):
(CanvasArcSegment.call.draw):
(CanvasArcSegment.call):
(CanvasRect.Utilities.createClass):
(CanvasRectFill.Utilities.createClass):
(CanvasRect.call.draw):
(CanvasRect.call):
(CanvasEllipse.Utilities.createClass):
(CanvasEllipseFill.Utilities.createClass):
(CanvasEllipse.call.draw):
(CanvasEllipse.call):
(CanvasStroke.Utilities.createClass):
(this._object.new.draw):
(this._object.new):
(CanvasFill.Utilities.createClass):
(SimpleCanvasStage.call.animate):
(SimpleCanvasStage.call):
(SimpleCanvasStage.call.initialize):
(SimpleCanvasPathStrokeStage.call.initialize):
(SimpleCanvasPathStrokeStage.call):
(initialize):
(animate):
(switch):
- MotionMark1.2/tests/simple/resources/simple-canvas.js: Added.
(tune):
(animate):
(complexity):
- MotionMark1.2/tests/simple/resources/tiled-canvas-image.js: Added.
(CanvasImageTile.Utilities.createClass):
(getImageData):
(putImageData):
(Stage.call.initialize):
(Stage.call._setupTiles):
(Stage.call._nextTilePosition):
(Stage.call.tune):
(Stage.call._drawBackground):
(Stage.call.animate):
(Stage.call.complexity):
(Stage.call):
- MotionMark1.2/tests/simple/simple-canvas-paths.html: Added.
- MotionMark1.2/tests/simple/tiled-canvas-image.html: Added.
- MotionMark1.2/tests/svg/suits.html: Added.
- MotionMark1.2/tests/svg/suits.js: Added.
(this.initialize.move):
(this.initialize):
(this.initialize.reset):
(switch):
- MotionMark1.2/tests/template/resources/template-canvas.js: Added.
(TemplateCanvasObject):
(TemplateCanvasObject.prototype._draw):
(TemplateCanvasObject.prototype.animate):
(Stage.call.initialize):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
(new.TemplateCanvasStage.waitUntilReady):
(new.TemplateCanvasStage):
- MotionMark1.2/tests/template/resources/template-css.js: Added.
(Stage.call.initialize):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
- MotionMark1.2/tests/template/resources/template-svg.js: Added.
(Stage.call.initialize):
(Stage.call.tune):
(Stage.call.animate):
(Stage.call):
- MotionMark1.2/tests/template/template-canvas.html: Added.
- MotionMark1.2/tests/template/template-css.html: Added.
- MotionMark1.2/tests/template/template-svg.html: Added.
- MotionMark1.2/tests/text/design-6.html: Added.
- MotionMark1.2/tests/text/design-6.js: Added.
(switch):
(dataset.forEach):
- MotionMark1.2/tests/text/design.html: Added.
- MotionMark1.2/tests/text/design.js: Added.
(switch):
(dataset.forEach):
- 12:08 PM Changeset in webkit [276888] by
-
- 3 edits2 adds in trunk
getPropertyValue for url path doesn't return the "#" character
https://bugs.webkit.org/show_bug.cgi?id=215409
Patch by Rob Buis <rbuis@igalia.com> on 2021-05-02
Reviewed by Sam Weinig.
Source/WebCore:
Adapt url serializing in SVG to match Firefox and Chrome.
Test: svg/css/computed-style-url-serializing.html
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
LayoutTests:
Add test for this.
- svg/css/computed-style-url-serializing-expected.txt: Added.
- svg/css/computed-style-url-serializing.html: Added.
- 12:01 PM Changeset in webkit [276887] by
-
- 8 edits in trunk/Source
Add support for DestinationColorSpace::DisplayP3 in preparation for DisplayP3 canvas
https://bugs.webkit.org/show_bug.cgi?id=225280
Reviewed by Anders Carlsson.
Add new ENABLE_DESTINATION_COLOR_SPACE_DISPLAY_P3 macro to declare which ports
support P3 backing stores. Currently, only the Apple/Cocoa ports support it.
Source/WebCore:
When ENABLE(DESTINATION_COLOR_SPACE_DISPLAY_P3), also define ColorSpaceDestination::DisplayP3.
This is not currently used, but will be in subsequent changes.
- platform/graphics/ColorConversion.cpp:
(WebCore::converColorComponents):
- platform/graphics/ColorSpace.cpp:
(WebCore::operator<<):
- platform/graphics/ColorSpace.h:
(WebCore::callWithColorType):
- platform/graphics/cg/ColorSpaceCG.h:
(WebCore::cachedCGColorSpace):
Source/WTF:
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
- 9:59 AM Changeset in webkit [276886] by
-
- 5 edits49 copies6 adds4 deletes in trunk/Source/WebCore
[LFC] Rename block(inline/table/flex)formattingContext directories to block(inline/table/flex)
https://bugs.webkit.org/show_bug.cgi?id=225275
Reviewed by Antti Koivisto.
The formattingContext postfix is redundant as they are all under the /formattingContexts directory.
- CMakeLists.txt:
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 9:45 AM Changeset in webkit [276885] by
-
- 12 edits3 deletes in trunk/LayoutTests
Consider removing imported/w3c/canvas and canvas/philip (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=225269
Reviewed by Simon Fraser.
Remove imported/w3c/canvas/* and canvas/philip/* and related expecations
and results. They are out of date copies of tests now bundled as part of
WPT in imported/w3c/web-platform-tests/html/canvas/element and are no
longer useful.
Part 2 removes the remaining copy in imported/w3c/canvas.
LayoutTests/imported/w3c:
- canvas: Removed.
LayoutTests:
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/canvas: Removed.
- platform/ios-wk1/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- platform/mac/imported/w3c/canvas: Removed.
- platform/win/TestExpectations:
- platform/wpe/TestExpectations:
- 9:36 AM Changeset in webkit [276884] by
-
- 11 edits5 deletes in trunk/LayoutTests
Consider removing imported/w3c/canvas and canvas/philip (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=225269
Reviewed by Simon Fraser.
Remove imported/w3c/canvas/* and canvas/philip/* and related expecations
and results. They are out of date copies of tests now bundled as part of
WPT in imported/w3c/web-platform-tests/html/canvas/element and are no
longer useful.
Part 1 just removes canvas/philip to make it more reasonable to review
and land.
- canvas/philip: Removed.
- http/tests/canvas/philip: Removed.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/canvas/philip: Removed.
- platform/mac/TestExpectations:
- platform/mac/canvas/philip: Removed.
- platform/win/TestExpectations:
- platform/win/canvas/philip: Removed.
- platform/wincairo/TestExpectations:
- platform/wpe/TestExpectations:
- 9:04 AM Changeset in webkit [276883] by
-
- 5 edits in trunk/Source/WebCore
[Perf] Creation of many video elements slows over time
https://bugs.webkit.org/show_bug.cgi?id=225273
Reviewed by Eric Carlson.
In PerformanceTests/Media/VideoElementCreation.html, 1000 video elements are created
per test, and the test reports how long each batch of 1000 element took to create. A
typical run shows the amount of time to run each batch slows over time. The underlying
cause appears to be the cost it takes to iterate over each MediaElementSession inside
PlatformMediaSessionManager and subclasses.
Before a HTMLMediaElement has a src (or after it's emptied) there's no reason for its
MediaElementSession to be tracked by the PlatformMediaSessionManager. It can't play,
pause, be interrupted, or accept remote control commands. So PlatformMediaSession will
be changed so that it does not add itself to the list of its manager's sessions at
creation time; instead a new method, setActive(bool), is added and will be called at
an appropriate time by its clients, HTMLMediaElement and AudioContext.
HTMLMediaElement will activate its mediaSession just before creating its MediaPlayer
inside prepareForLoad() or loadNextSourceChild(), and will deactivate after tearing
down its MediaPlayer inside mediaLoadingFailed().
AudioContext will activate its mediaSession during its own initialization, and deactivate
inside close().
Before this change, on this machine, VideoElementCreation.html showed an incresing time
to video element creation, levelling out at ~400ms per 1000 elements. After this change,
VideoElelementCreation.html shows a constant time to video element creation, averaging
between 4ms and 7ms per 1000 elements.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::close):
(WebCore::AudioContext::lazyInitialize):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::mediaLoadingFailed):
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::setActive):
- platform/audio/PlatformMediaSession.h: