⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Feb 24, 2022:

9:10 PM Changeset in webkit [290493] by achristensen@apple.com
  • 4 edits in trunk

Unreviewed, reverting r290371.

Caused assertion

Reverted changeset:

"Call WKNavigationDelegate.didFailProvisionalNavigation even
after a cross-origin navigation with COOP"
​https://bugs.webkit.org/show_bug.cgi?id=237071
​https://commits.webkit.org/r290371

8:56 PM Changeset in webkit [290492] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after r290454.

7:10 PM Changeset in webkit [290491] by Matt Woodrow
  • 3 edits in trunk/Source/WebCore

Simplify grid RTL handling
​https://bugs.webkit.org/show_bug.cgi?id=236694

Reviewed by Dean Jackson.

The previous code stored columns in logical order (column 0 is the rightmost physical column), but the positions were offset
using the physical left border, padding and content distribution offset. This hybrid physical/logical coordinate space
made for tricky conversions into the final coordinate space.
This changes the stored column positions to use purely logical coordinates, and does a single direction swap (by subtracting
from the width) at the end.

No tests added, this refactoring is covered by a large number of existing WPTs.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::populateGridPositionsForDirection):
(WebCore::RenderGrid::resolveAutoStartGridPosition const):
(WebCore::RenderGrid::resolveAutoEndGridPosition const):
(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):
(WebCore::RenderGrid::logicalOffsetForOutOfFlowChild const):
(WebCore::RenderGrid::gridAreaPositionForOutOfFlowChild const):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
(WebCore::RenderGrid::translateRTLCoordinate const):
(WebCore::RenderGrid::logicalOffsetForChild const):
(WebCore::RenderGrid::translateOutOfFlowRTLCoordinate const): Deleted.

  • rendering/RenderGrid.h:
6:38 PM Changeset in webkit [290490] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS ] editing/pasteboard/dom-paste/dom-paste-same-origin.html is a flaky timeout/failure
​https://bugs.webkit.org/show_bug.cgi?id=237174

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations:
6:25 PM Changeset in webkit [290489] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.4

Tag Safari-614.1.5.4.

6:22 PM Changeset in webkit [290488] by Russell Epstein
  • 3 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290288. rdar://problem/89062166

Allow adattributiond to start on iOS devices
​https://bugs.webkit.org/show_bug.cgi?id=237009
<rdar://89062166>

Reviewed by Per Arne Vollan.

There were three more problems preventing it from starting:

  1. The code signature said to look for a sandbox profile with "webkit" in the name, but the profile had "WebKit" in the name. These names are case sensitive.
  2. The sandbox profile would not let it load the WebKit framework, so dyld would fail and the process would fail to launch. I added the framework directories that the XPC services are allowed to access.
  3. Once it started, it would crash inside WTF::initializeMainThread when calling WTF::pageSize which requires access to the hw.pagesize_compat syscall. As a starting point, I'm going to allow all the syscalls that the network process currently has access to, which is enough to get it to respond without crashing.
  4. We need access to com.apple.diagnosticd and com.apple.analyticsd in order to be able to generate crash reports. This is quite useful. Yes, I know I said there were only three problems, but the 4th is so useful I thought I'd put it in the list.
  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
  • Scripts/process-entitlements.sh:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290288 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:21 PM Changeset in webkit [290487] by Russell Epstein
  • 1 delete in tags/Safari-614.1.5.4

Remove tag.

6:04 PM Changeset in webkit [290486] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ EWS ] imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-twice.html is a flaky ASSERTION FAILED / failure
​https://bugs.webkit.org/show_bug.cgi?id=237172

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/mac/TestExpectations:
5:59 PM Changeset in webkit [290485] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.0.7

Tag Safari-613.1.17.0.7.

5:52 PM Changeset in webkit [290484] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.4

Tag Safari-614.1.5.4.

5:46 PM Changeset in webkit [290483] by Russell Epstein
  • 7 edits
    1 add in branches/safari-614.1.5-branch

Cherry-pick r290442. rdar://problem/89345853

[MacCatalyst] REGRESSION(r290091): sometimes can crash if WKWebView is deallocated before the next visible content rect update
​https://bugs.webkit.org/show_bug.cgi?id=237126
<rdar://problem/89345853>

Reviewed by Tim Horton.

Source/WebKit:

Tests: WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame

WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _acquireResizeAssertionForReason:]): (-[WKWebView _invalidateResizeAssertions]): Added.
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView dealloc]): Make sure to -invalidate any remaining assertions in -dealloc as required by _UIInvalidatable.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewResize.mm: Added. (TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame): (TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds):
  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290442 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:44 PM Changeset in webkit [290482] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Port CaptivePortalMode preferences to AnyHost in order to support CFPrefs Direct Mode propagation
​https://bugs.webkit.org/show_bug.cgi?id=237098

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-02-24
Reviewed by Brent Fulgham.

Move our CaptivePortalMode preference to AnyHost in order to correctly support
CFPrefs Direct Mode propagation. We also now dispatch a CFNotification to ensure our preference
observer is always notified of the change.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults findPreferenceChangesAndNotifyForKeys:toValuesForKeys:]):

  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::setPreferenceValue):

  • UIProcess/API/Cocoa/_WKSystemPreferences.mm:

(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::captivePortalModeConfigUpdateCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebProcessPool.h:
5:43 PM Changeset in webkit [290481] by Aditya Keerthi
  • 11 edits in trunk

[iOS] Add support for replacing WKFoundTextRanges
​https://bugs.webkit.org/show_bug.cgi?id=237151
rdar://89258687

Reviewed by Wenson Hsieh.

Source/WebKit:

Implement protocol methods to support replacement.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::replaceFoundTextRangeWithString):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView replaceFoundTextInRange:inDocument:withText:]):
(-[WKContentView supportsTextReplacement]):

Restrict replacement to editable web views.

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::replaceFoundTextRangeWithString):

Use a TemporarySelectionChange to select and replace the desired range.

  • WebProcess/WebPage/WebFoundTextRangeController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::replaceFoundTextRangeWithString):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add a test that replaces found ranges.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(TEST):

5:42 PM Changeset in webkit [290480] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.4

5:41 PM Changeset in webkit [290479] by Kyle Piddington
  • 487 edits
    1 copy
    3 moves
    17 adds
    18 deletes in trunk/Source/ThirdParty/ANGLE

Roll ANGLE to Feb 18 2022 (78c64dd74ee5)
​https://bugs.webkit.org/show_bug.cgi?id=235746

Reviewed by Dean Jackson.

The changelog has been rewritten to avoid
confusion. The following commits are integrated in this
roll:

78c64dd74 Roll SwiftShader from 13f7365e81be to b4a56a893496 (11 revisions)
00c4dc93a Python3: Update generate_test_spec_json.py
d98f4812c FrameCapture: Capture empty buffer generation.
7a4fd4212 Roll Chromium from d984ec3b132a to 6594a8d1e6cf (1749 revisions)
b1bdce5f2 Roll VK-GL-CTS from 834c2e16ae1c to d321c7ec84de (7 revisions)
f996d4d87 Vulkan: Fix DynamicBuffer cache reuse.
8dc9e83e3 Translator: Fix RunAtTheEndOfShader w.r.t discard
00169174c gl.xml: Remove GL_BLEND_EQUATION_EXT from GetPName.
8ade4c2f7 Vulkan: Add overlay and stats for descriptor set caches.
671fcf732 Vulkan: Add a feature to retain SPIR-V debug info
1315bc816 Vulkan: Refactor DynamicBuffer::allocate.
8d966f7dd Vulkan: Simplify SubAllocation data types.
57b8b9332 Roll vulkan-deps from 9fb91023eb58 to 4d9fe6bf1f0c (8 revisions)
ae9c94f1b Add instructions to build RenderDoc for Android on Windows
38723c28c Vulkan: Allocate space for default attrib only if it is enabled
ad462491f Refine suppression for GLSLTest.SwizzledChainedAssignIncrement.
8cb586671 Vulkan: Add uniform descriptor set caching test.
bfbe86613 Fix UpdateChromeANGLE on mac for debug angle
a0d558f09 Vulkan: Fix D/S invalidation for MSAA EGL configs
3b8910625 Roll Chromium DEPS manually.
fb6303a15 Update docs for checkout with 'fetch' tool.
afacf7f99 Roll vulkan-deps from 956ca5369840 to 9fb91023eb58 (10 revisions)
2893effa4 validationESEXT: Implement ValidateGetCompressedTexImageANGLE.
b1075951d vk_helpers: Adjust CopyImageToBuffer extent to block size.
d77f64b35 Roll SwiftShader from 5f1c00bda1c1 to 13f7365e81be (5 revisions)
bdedf146d TextureVk: Implement getCompressedTexImage.
5f3f13f69 Vulkan: Invalidate D/S for multisampled EGL configs too
eeddb0504 Metal: Incorrect parenthization for assignment expressions
ed39d49a2 Metal: Fix Hang in WebGL CTS Occlusionquery_strict test
760253ce2 Vulkan: replace uniforms FastIntegerMap with FastUnorderedMap
931863370 Vulkan: Check Serial is valid in SyncHelperNativeFence
904a47975 Python3 upgrades
c590a1aa9 Roll VK-GL-CTS from 2d1377ec02b5 to 834c2e16ae1c (1 revision)
3adace153 Don't expose detailed driver version info to webGL
255fec892 Remove reference to policy_testserver.py
e2f8ff32c Tests: Add State of Survival trace
a5badc3ef [infra] Update active lucicfg experiments.
cf4b50c5b Vulkan: Retain images before changeLayoutAndQueue
3b8b1f709 Roll SwiftShader from cbd31d271e4c to 5f1c00bda1c1 (12 revisions)
f3b6af597 Roll vulkan-deps from 3a6f074dbd38 to 956ca5369840 (55 revisions)
ad4fae642 Roll Chromium from c9825531290b to d984ec3b132a (580 revisions)
e50455877 Debug Overlay Demo
527ceb73c Vulkan: Switch XFB counter buffer to suballocation
a0bc9dab4 Vulkan: Switch stencilBlitResolveNoShaderExport to suballocation
d36df8d73 Unicode support for system_utils on Windows
54d428dd5 Tests: Add MARVEL Strike Force trace
1e29ba626 Vulkan: Enable overlay by default with debug layers
19f405318 Vulkan: Enable subgroup feature in GenerateMipmap.comp
2efbfd058 Roll VK-GL-CTS from 071bfca11aa9 to 2d1377ec02b5 (11 revisions)
c6f5a5bbe Roll Chromium from c0b2804cbd93 to c9825531290b (658 revisions)
06edae72b Vulkan: Allow duplicated block name in different shader interface
6cced91b3 FrameCapture: Remove destroyed contexts from share group
f7f269560 Vulkan: Fix two bugs exposed by moving mEmptyBuffer to suballocation
9b7a77b08 Double batch timeout for sanitizer tests.
4b45576d4 Keep ANGLE_base_vertex_base_instance available for ES 2.0
d285d6a72 Vulkan: Use VK_EXT_depth_clip_control
3f0a28ba6 Add entry points for EGL_KHR_partial_update
3b4548bb6 Traces: Add restricted_trace_perf.py script for Android
a3c785fc1 GL: Remove avoid_dxt1_srgb_texture_format feature
fd378ce5a Rebind program on glUseProgramStages
3a72994ea Vulkan: Add an end2end test
0a320d16f GetImageTest: Enable on Vulkan SwiftShader.
568724918 Roll Chromium from bf99b2cc0f6b to c0b2804cbd93 (526 revisions)
d5df23318 Vulkan: Disable EGLContextSharingTestNoSyncTextureUploads on Pixel6
038adcae4 Vulkan: Render the overlay in the graphics pipeline
b39add311 Roll VK-GL-CTS from b594e2aabae9 to 071bfca11aa9 (1 revision)
419bca3f5 Vulkan: Use Vulkan API directly for BufferPool's buffer allocation
6fd2588df Update GL_MAX_CLIP_DISTANCES_EXT validation
734365a71 Vulkan: improve command buffer reset performance
118ce6aae Support to open d3d12 shared handles
a0e3a5fb9 Roll SwiftShader from 0915ab4bddf7 to cbd31d271e4c (3 revisions)
f63d5f1c1 Revert "Don't build dEQP tests on MSVC temporarily"
4b6a5a84b Roll Chromium from 60719c9cd084 to bf99b2cc0f6b (543 revisions)
670a6e476 Ignore invalid texture type error
91f92540c Metal: Fix multisample resolves.
823522375 Vulkan: Fix incorrect DescriptorSet's bufferInfo in XFB emulation path
37f59b850 Roll VK-GL-CTS from 97ceb2222747 to b594e2aabae9 (64 revisions)
02ce52d26 Test: Add Lords Mobile trace
33d17b7fc Fix perf test runner script.
4349904b0 Add keying on backend to ANGLE Display caching.
9cfd87244 Allow surface creation in DisplayVkNull
a91d56033 Roll SwiftShader from e576ca6011cd to 0915ab4bddf7 (6 revisions)
4716e0fe8 Roll Chromium from 817a527fde8c to 60719c9cd084 (571 revisions)
71d06198c Vulkan: Fix vkCmdClearAttachments vs multiview
1b9774f57 Vulkan: Force submit updates to immutable textures
a39618436 Vulkan: Bind aligned default uniform buffer size.
6207fe88d Vulkan: Minor cleanup to DynamicDescriptorPool.
5b43a30e3 Overlay: Rearrange the font image
70c510eb2 Vulkan: Use common storage for descriptor set descs.
50fb842d5 Expand SwiftShader Win/ASAN suppression.
520458769 Vulkan: StreamVertexDataWithDivisor write beyond buffer boundary
d635feb11 [fuchsia] Tests using additional_manifest_fragments are CFv1.
8622810c4 Roll SwiftShader from ad6d7f84f2a1 to e576ca6011cd (19 revisions)
d066f9a34 Roll Chromium from 26dacbf4b527 to 817a527fde8c (500 revisions)
2df2a9ec2 Add instructions to enable Debug Overlay On Android
236a3d0f0 Tests: Add Dead Trigger 2 trace
1acfe6597 Test: Add Last Shelter: Survival trace
8b81742dd Vulkan: Move shader resources descriptor set update.
02ad19e36 Vulkan: Fix vkCmdResolveImage offsets
d9fcebb8a Vulkan: Make framebuffer fetch syncval errors more specific
939da2945 Tests: Add Magic Rush: Heroes trace
9208dcc65 Revert "Vulkan: Enable framebuffer fetch on SwiftShader"
44deda4c2 Tests: Add Dragon Mania Legends trace
959d4be5f Vulkan: Remove buffer get method from descriptors desc.
b2006a222 Roll SwiftShader from 2b76a13c38ae to ad6d7f84f2a1 (1 revision)
06150ab2f Roll Chromium from 55ed02951fa2 to 26dacbf4b527 (583 revisions)
f65e7c3ca Vulkan: Take base level into account in image views
6d30de10d Metal: Fix ANGLEUniformBlock alignment
ac20272f6 Vulkan: Fix present region rectangles
2eeb87488 Vulkan: Enable framebuffer fetch on SwiftShader
2ab8f48fe Allow glCopyTexImage2D from BGRX and RGBX to GL_LUMINANCE
c48e35b94 Add more info in BlitFramebuffer error message
2b00f4f5a Fix bug in protected content validation
706f8a311 Support gl internal format for creating EGLImage from VkImage
da87b1dbc Fix GLES Display creation on ChromeOS when Vulkan is enabled
7820ca23e Vulkan: Binding available buffer range to descriptor.
8710d7fe2 Roll SwiftShader from 6014f10de554 to 2b76a13c38ae (3 revisions)
0aca45c1f Roll Chromium from 8894f7c632dd to 55ed02951fa2 (509 revisions)
1608a9567 Vulkan: Revert client vertex data streaming to use DynamicBuffer
9e3232998 FrameCapture: Regen framebuffers on Reset
e897bf9ae Remove gl_PerVertex-related suppression
3dbba51df Reland "Vulkan: Enable ANGLE_texture_multisample"
83a3f654a Revert "Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang"
4ac0f1436 Vulkan: Fix gl_LastFragData transformation
f1159253d Expand suppression of Mimap tests to any Win/Swiftshader config.
e56f0e293 Vulkan: Check program fetch status when switching framebuffers
600ffa6ec Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang
4a65040b6 Add new Vulkan uniform update test.
464396c7b Roll vulkan-deps from fe093f4789c2 to 3a6f074dbd38 (8 revisions)
4c9f4519b Roll SwiftShader from 4998c7b3a2b8 to 6014f10de554 (6 revisions)
6e7a7a03e Roll Chromium from a210f891a450 to 8894f7c632dd (1053 revisions)
b756b2c27 Suppress flaky Mipmap/Multithreading tests on Win/SwS/ASAN
812d5fffa Metal: End the current render pass at glInvalidateFramebuffer.
7d7cca47f Vulkan: Update default FBO when fetch in use
25120c560 Mac: Try to diagnose crashes inside Core Animation.
139f4bd46 Revert "Vulkan: Enable ANGLE_texture_multisample"
494887100 Metal: Remove emulatedInstanceID
57933493d Roll vulkan-deps from 9ee740d2e9ef to fe093f4789c2 (5 revisions)
72529c197 Vulkan: Fix a few framebuffer fetch bugs
fe56532f5 Vulkan: Enable ANGLE_texture_multisample
bc3be5a83 Vulkan: Add a dedicated suballocation garbage list
be2da2343 Vulkan: Initialize exectuable with invalid uniform serial.
33427a4b3 Vulkan: Fix vkCmdResolveImage extents
293c0b516 Vulkan: Cache commonly used 6 ushorts stream index array data
38fada351 Vulkan: Add support for OES_primitive_bounding_box
91b383e82 Translator: Emit warning when identifier has double underscores
945a09d10 Vulkan: Fix off-by-one in DynamicBuffer.
d6fb76a68 [fuchsia] Don't try to use calling executable path to load .so's
868c0739f Vulkan: Fix image base/max level respecification case.
0a6c4310e Vulkan: Fix incorrect gl_SamplePosition on ES3.2
693b48a07 Roll SwiftShader from 4db20a80409b to 4998c7b3a2b8 (1 revision)
d1b1ef9af Roll vulkan-deps from 69f4b9c09e48 to 9ee740d2e9ef (3 revisions)
3c727e44e Allow GL_RGBX8_ANGLE for texture copy destination
069269540 Roll Chromium from 97a33ab1a078 to a210f891a450 (477 revisions)
f810e9989 Use a temporary timeout multipler for trace tests.
508a8a027 Remove old spellings for SYNC-HAZARD-WRITE_AFTER_READ skips
2d3ce72d1 Refactor shared library load to avoid allocations.
665ddccd8 Vulkan: Emulate dithering
29d087df4 Fix ANGLE_rgbx_internal_format's extension file name
471f18521 D3D11: Fix underflow with computing small strides.
84470eb3d Roll SwiftShader from 518c5780ac4f to 4db20a80409b (3 revisions)
b934fad92 Roll Chromium from 4d71de73b37d to 97a33ab1a078 (625 revisions)
a4a4fec8b Roll vulkan-deps from f703f3cc0975 to 69f4b9c09e48 (10 revisions)
69263b388 Roll vulkan-deps from 746e518a0b0e to f703f3cc0975 (1 revision)
55ef2b4f7 Update one more SYNC-HAZARD-WRITE_AFTER_READ skip
168e0ae50 Vulkan: Refactor descriptor pool code.
a994ea994 Update SYNC-HAZARD-WRITE_AFTER_READ skip
e03f17535 EGL: mutable_render_buffer deferredFlush fix
e27bb3972 Roll vulkan-deps from a19b5047ffca to 746e518a0b0e (5 revisions)
8a1f8af4d Turn on the Vulkan backend on ChromeOS
9bf5716c8 Tests: Add War Planet Online trace.
287057b3b FrameCapture: Don't track coherent buffers before capture starts.
42c8b29d0 Tests: Add Dead By Daylight trace.
46b420f66 Roll SwiftShader from bca23447ad46 to 518c5780ac4f (7 revisions)
078f7ea06 Roll Chromium from 8ff0cb4f71d8 to 4d71de73b37d (550 revisions)
c4a9d4169 Metal: Refactor to build without SPIR-V
701d51b10 Vulkan: Add SmallBufferPool for small allocations
66e01ae5a Expand error message on BindTexture validation failure
706e44b06 Tests: Add PUBG Mobile launch trace
df19e35a0 Vulkan: Use queue for mGarbageQueue
4e644b330 Vulkan: Remove ProgramExecutableVk back-pointers.
b3ed47809 Change Windows display initialization from ANSI to wide version
602b957b8 Enable robustnessEXT for SwiftShader.
8b966cfc5 Roll vulkan-deps from ae6a4b829252 to a19b5047ffca (9 revisions)
322d118fc Roll SwiftShader from 711968667748 to bca23447ad46 (4 revisions)
47d63b4e3 Roll Chromium from 7b890e4b915b to 8ff0cb4f71d8 (485 revisions)
2ad5f350c Vulkan: Fix texture array level redefinition
45237a047 Metal: Fix undefined behavior of depth write
aadc64343 Vulkan: Fix to correctly redefine gl_PerVertex in GS
25e8f02b0 [infra] Use python3 for run_presubmit recipe.
a79708899 Vulkan: Use queue instead of vector for mSharedGarbageList
39f66a9c1 Vulkan: Support different SCBs for outside and inside RP
cb96c236a Revert "Vulkan: Enable framebuffer fetch on SwiftShader."
7c1346bdc Vulkan: Consolidate uniforms code in ProgramExecutableVk.
b2d55742b Program: Add generic uniform update methods.
374e0c439 ProgramPipeline: Remove mHas members.
0dc0dc2a4 Re-land: "Vulkan: Remove "fillProgramStateMap"."
510723193 Vulkan: Enable framebuffer fetch on SwiftShader.
1316d1534 Roll vulkan-deps from 4ec99dddf407 to ae6a4b829252 (11 revisions)
f44159cdb Roll SwiftShader from 366db5aedd90 to 711968667748 (8 revisions)
83ca1fbc5 Roll Chromium from 94c8695167c4 to 7b890e4b915b (100 revisions)
54f8a8f71 Roll Chromium from 35ed79e6a83b to 94c8695167c4 (935 revisions)
aaac31b48 Unskip dEQP.GLES3/functional_shaders_operator_unary_operator_minus_*
c5498b957 FrameCapture: Reset immutable buffers correctly.
8474c8e1c FrameCapture: Add Renderbuffers to mStartingResources.
5f0badf45 Vulkan: Prevent out of bounds read in divisor emulation path.
526c93ddf FrameCapture: Detect GL_MAP_COHERENT_BIT_EXT correctly.
f5dc2a951 Roll vulkan-deps from 238eaa6f9d25 to 4ec99dddf407 (7 revisions)
8fc4d3b1e Roll SwiftShader from e823eef17385 to 366db5aedd90 (2 revisions)
d7585c22a Capture/Replay: don't capture MS depth renderbuffer pixels
d6dd0cb52 EGL: EGL_KHR_lock_surface3 backend
6a14e328b Revert "Vulkan: Remove "fillProgramStateMap"."
bd87cc1ca Skip flaky CopyTextureTest.CopyOutsideMipmap
c7f31b8ae Expand TransformFeedbackTest.SpanMultipleRenderPasses suppression
296783294 Vulkan: Fix advertised precision ranges
38deffe40 Vulkan: Remove "fillProgramStateMap".
540b2e46a Fix MultithreadingTestES3.MultithreadFenceDraw skip on SwiftShader
73c823108 Update the Capture and Replay docs
85e2991f2 Fix couple LSAN detected leaks in unit and end2end tests
adb802383 On invalidate, only sync the relevant framebuffer binding
a20cd8b73 Fix initialization for ETC2 punchthrough alpha formats
cac4e54a6 Mark GL_RGBX8_ANGLE format as filterable.
64c49da36 Roll Chromium from b7f974a39665 to 35ed79e6a83b (570 revisions)
096c268bd Add a few overrides for Samsung
339a6d181 Roll vulkan-deps from c9b583de6eb8 to 238eaa6f9d25 (8 revisions)
0f00fbae2 Translator: Make vec/matrix size getters unsigned
ca3b28b4b Metal: Fix compressed texture initialization and add DXT1 test
4a5a559d6 Update Metal/iOS status from "planned" to "in progress".
a0fbcb375 Vulkan: Remove flush from SyncHelperNativeFence::serverWait
038d28772 Roll VK-GL-CTS from bfede065f419 to 97ceb2222747 (3 revisions)
29e254689 Account for EGL 1.5 version when dealing with robustness
78d482e56 Add standalone ANGLE Pixel 6 experimental bots
a5e22715e Vulkan: Fixed TC shader and gl_PerVertex block interaction
a64d52fd2 Add ANGLE_FORMAT_PRINTF() for catching format errors
31bb03fe2 Add more tests for program pipelines.
e6ed6977c Roll SwiftShader from 2e74d5dc03df to e823eef17385 (4 revisions)
a4b312c01 Roll vulkan-deps from 70b3eb7a5ab4 to c9b583de6eb8 (1 revision)
515f60bd6 FrameCapture: Keep MEC Setup resources in Reset.
034b50587 Roll Chromium from d5bf6f7f9376 to b7f974a39665 (478 revisions)
1ab6c9f69 Hide ES 3.0+ extensions from ES 2.0 clients
2caa9d4fe Vulkan: Add missing glGetProgramPipelineiv parameters handling
d23549689 Vulkan: Rename BufferHelper::initFor* to allocateFor*
a83f7e91c Vulkan: inline some of the BufferSuballocation APIs
1b5efe51a Vulkan: Rename SubAllocation to Suballocation
659725aaa Metal: Cleanup texture caps init
3064920a9 Capture/Replay: Serialize ActiveTexturesCache.
161643215 Roll vulkan-deps from d1b842fca80d to 70b3eb7a5ab4 (4 revisions)
7ff95f28d Roll Chromium from b24759852b71 to d5bf6f7f9376 (533 revisions)
1bd1a3db1 Metal: Canvas resizing causes webpage to run out of memory
15439f8e4 Vulkan: Remove BufferMemoryAllocator
dcac02ac1 Revert "Enable robustnessEXT for SwiftShader."
ef3fffd6f Fix running tests with empty test set.
e5c9b3859 Add object label in glBindTexture() error message
b53607981 Vulkan: Support fetching from default FBO
ff5368cd2 Mark a context as shared if using global textures/semaphores
fc6b747df EGL: Fallback to native device if no display available
55d127703 Metal: Cleanup autogenerated format table
cb7ff65c1 Roll SwiftShader from f6bdbed95b37 to 2e74d5dc03df (7 revisions)
eda5aa0be Roll vulkan-deps from 4cda77455291 to d1b842fca80d (6 revisions)
17f912bd6 Roll Chromium from 8cf5fa683fa3 to b24759852b71 (537 revisions)
00a2a2f3e Merge metal format table updates from Webkit
af8dd1c38 Update documentation link
f071aaaf3 Use first test name instead of shard index for TestArtifacts
7dda50fc0 Add frontend for ANDROID_extension_pack_es31a
28f223acb Vulkan: Add missing ESSL 3.2 builtin functions
400175d8e Copy shader buffers into pipeline executables.
892511fc3 Isolate LinkValidateProgramInterfaceBlocks.
fdadc420a Fix non-bot mode sharding on Android and disable elsewhere.
fa3241b70 Vulkan: Move shader_framebuffer_fetch to FeaturesVk
9012c1288 Add Microsoft vendor Id parsing to SystemInfo
453cd955a Add EGL_ANGLE_platform_angle_display_id to D3D11 backend.
a1858b024 Tests: Add Respawnables trace.
b803b60df Enable robustnessEXT for SwiftShader.
31942507f Fix export_targets Windows presubmit with Vulkan Loader.
8eafe4912 Roll SwiftShader from d7117384b0ee to f6bdbed95b37 (1 revision)
c31e14d9c Roll vulkan-deps from d891854a594a to 4cda77455291 (30 revisions)
4572a1764 Add support for GL_MESA_framebuffer_flip_y 3/*
a76550078 Roll Chromium from 86a4c63b080e to 8cf5fa683fa3 (329 revisions)
9b231f090 Vulkan: Fix incorrect bit test when mipmapping
158ecba6a Vulkan: Remove cached Impl pointers from ContextVk.
5adee9161 Wrap some global vulkan methods which depend on env variables
652e3db46 use vpython3 in run_gtest_angle_test.py
770c81b91 Roll SwiftShader from cd848cd695a4 to d7117384b0ee (2 revisions)
9cfb4dd91 Roll Chromium from c00f3886d7aa to 86a4c63b080e (890 revisions)
0aae0d7ad Update PrintSystemInfo with missing fields.
6601b8d2e Vulkan: Fix storage buffer limits on geom/tess without Vulkan support
c4c73e827 Fix RobustBufferAccessBehaviourTest.
30254d349 Ignore VUID-RuntimeSpirv-NonWritable-06341 warning
158d47831 Vulkan: Suppress VVL message about allocation exceeding heap size
28f05f41e Capture/Replay: Add annotation for crashing test
6e2ab29d1 Avoid data race in overflow check.
4f3a50e55 Roll Chromium from 3fcf884156d8 to c00f3886d7aa (595 revisions)
6312da1ab Vulkan: Disable GL_KHR_parallel_shader_compile
9f3c306ec Fix collection of systemDeviceId on Mac/M1
9b1a6d8a4 Vulkan: Invalidate depth/stencil unconditionally
bd64b3eaa Move pipeline uniforms into the executable.
985db6409 Fix test harness config parsing in Compressed Tex tests.
f4b0a95f4 Metal: Implement EXT_shader_texture_lod
814a78af5 Roll Chromium from 3668290e6162 to 3fcf884156d8 (108 revisions)
d4412d0a0 Roll Chromium from 3d4921afbcfd to 3668290e6162 (378 revisions)
2f4f5f8aa Add EGL_ANGLE_platform_angle_device_id for the Metal backend.
0ab15998c Translator: Don't promote precision for assignment operation lvalues
cd157aae5 Revert "Use STL container for vulkan memory allocator"
89467fa56 Roll Chromium from 597c376626be to 3d4921afbcfd (999 revisions)
d4c8209b3 Fix validation of copyImageSubData related to texture completeness
4a819ee26 Update code generation script to work with specified generators
96fd9b72d Fix validation of glCompressedTexImage3D
926b43e75 Reland: Frontend: separate lock in swap prep
2d1051778 Enable a few features for Samsung
345cdcb0f Rename features for consistency.
b0e15ee48 Decide GL_KHR_parallel_shader_compile in backends
a026d0536 Add support for subgroupSize of 16 in Debug Overlay Module
f180ecc96 Supress TransformFeedbackPausedDrawThenResume on Mac AMD
5ec02c8f4 Roll SwiftShader from b57a3aaee927 to cd848cd695a4 (1 revision)
7f8e7c38e Roll vulkan-deps from 328da0f26e8e to d891854a594a (9 revisions)
0b02a592f Metal: Generated Metal shaders do not compile offline
6a2558333 Metal: Fix transform feedback issue
37cde9e99 Update GLES31 expectations file
e38dab0aa Add missing implementation for glGetnUniformuiv()
74e03b9af Expose the registryID of GPUs on Mac via SystemInfo
9d11a341c Vulkan: Fix Vulkan SCB vs multiple subpasses
b90bcb9c8 Roll vulkan-deps from 57e7495dc76d to 328da0f26e8e (4 revisions)
9f1dc3e99 Roll Chromium from b91f3880e3ec to 597c376626be (567 revisions)
acd8fc76b Vulkan: Distinguish RP and outside-RP command buffer types
eea784687 Tests: Add Angry Birds 2 launch trace
095d7c0a0 Translator: Clean up spec const / driver uniform types
5c9bd7bac Update Mac goldctl
4111f9ef1 Add standalone ANGLE Mac AMD experimental bot
9d042d686 Cleanup after iOS build fixes
99b021a15 infra: Add TSAN and UBSAN tests to CQ.
b0feea4e4 Suppress failing test on Vulkan/Intel/Linux.
60a8b5930 Vulkan: Remove std::unique_ptr usage from BufferVk::mBuffer
217dc204e Broaden TSAN EGL multithread suppression.
ae1a56b67 Vulkan: Turn on GL_EXT_shader_framebuffer_fetch for ARM
9d668d6c4 Revert "Frontend: separate lock in swap prep"
b2dac79d9 Fix typo in EGLPrintInfo end2end Test
462cdb08e Capture/Replay: Reset FBOs, RBOs, VAOs
4472b3b0d Fix TSAN suppressions.
40c5cb255 Frontend: separate lock in swap prep
c2a296149 Test Expectations: Use file order as override priority.
ece463808 tests/EGLProtectedContentTest: Add QueryContext test.
1e2856fdc Update freetype-py wheel
a203e1263 Roll SwiftShader from 0b901607cad4 to b57a3aaee927 (1 revision)
8ab13284a Roll vulkan-deps from 09edcd7c680b to 57e7495dc76d (27 revisions)
6f80fa0c3 Roll Chromium from 8712e27d7e28 to b91f3880e3ec (349 revisions)
2ebdd23b6 Cleanup TextureCubeTestES3.CubeMapPixelUnpackBuffer
caf6433ad Vulkan: Rename releaseStagingBuffer to releaseStagedUpdate
93159c020 Vulkan: Remove DynamicShadowBuffer implementation
cf3812921 Revert "Re-skip MSRTT tests on Linux/AMD/Vulkan"
3263eb01f Vulkan: Switch GPU translated vertex buffer to NonHostVisible
8589c456a Vulkan: Remove mStagingBuffer from ImageHelper and ContextVk
6da1ac814 Vulkan: Switch ReadPixels from DynamicBuffer to shared pool
ad27d5d6f Reland "Vulkan: Consolidate all vertex conversion buffers to shared pool"
535a90347 Suppress headers includes privacy checks for iOS executables
a61a7f597 Vulkan: Use correct aspectMask
4e85bdd99 Revert "Vulkan: Consolidate all vertex conversion buffers to shared pool"
cca412cd8 Vulkan: Consolidate all vertex conversion buffers to shared pool
02f6226b7 Avoid using GetCWD() on MacOS when possible
a0d0a1d65 Roll SwiftShader from c73969d73ff9 to 0b901607cad4 (6 revisions)
e98b62727 Roll Chromium from b1dc46c0f1be to 8712e27d7e28 (483 revisions)
fd0142714 Vulkan: Match chromaFilter to min/mag for YUV AHBs
ccabfd140 out\Debug -> out/Debug, like in other places
abf17f018 Metal: Support depth filtering queries for D32, D24S8
f13f440e6 Reland: Metal: Fix Webkit warnings in ANGLE build
39e1a2b2e Suppress Vulkan/SwiftShader/AsyncQueue ASAN flakes.
7126c3a3c Capture/Replay: Limit caps for QC/SwS
0e49a3dd4 Vulkan: Add std::move support for BufferHelper
43b0e92b5 Vulkan: Consolidate mHostVisibleBufferPool and mMapInvalidate
42cb6147f Revert workarounds for exception handler code-gen with CFG enabled
e4c7efeaf Capture/Replay: Fix GN build on iOS.
cabc3b982 Move atomic counter uniform range counter to executable.
e9e9a2c6a Do not pass mInstance to vkGetInstanceProcAddr
beda24596 Add support for GL_MESA_framebuffer_flip_y 2/*
c984dad5f FrameCapture: Don't remove protection from shared pages.
d76515b89 Roll SwiftShader from 433b1bf9bff2 to c73969d73ff9 (4 revisions)
1b2cb4222 Roll Chromium from 1a9dad30c65b to b1dc46c0f1be (497 revisions)
cfc4db346 Metal: Provoking vertex support for Metal DrawArrays
a00b6ca46 Roll Chromium from 04d22dcbc0f6 to 1a9dad30c65b (190 revisions)
5bd459618 Roll Chromium from 70ce2f66c417 to 04d22dcbc0f6 (183 revisions)
aad7ddb28 Skip VulkanPerformanceCounterTest.InvalidateDrawDisable
0a6b78974 Add macOS support to update_chrome_angle.py
4b3e3ed5f Re-skip MSRTT tests on Linux/AMD/Vulkan
39810def0 Roll Chromium from c764378a1f24 to 70ce2f66c417 (145 revisions)
9aca4285f Traces: Fix path in retrace script.
0331738b4 Fix extension download script, and update data.
58aeec65c Capture/Replay: GN cleanups.
85de4f81e Capture/Replay: Fix TODO in test utils.
b6399ac94 Traces: Finish writing restricted trace doc updates.
fed9ba44f Roll vulkan-deps from c32df39c11ce to 09edcd7c680b (1 revision)
65cc408c3 Roll Chromium from e45e6e1a55ae to c764378a1f24 (157 revisions)
a400e76d0 Vulkan: Don't expose MSRTT without VK_KHR_depth_stencil_resolve
9f74ec615 Skip angle_end2end_tests failing on Linux AMD RX 5500 XT
b7d2f4478 Roll Chromium from d09758fa672c to e45e6e1a55ae (153 revisions)
6f1c39b52 Vulkan: Restore color attachment mask-related blend states
95f6e6865 Roll SwiftShader from 87c78ac5eb86 to 433b1bf9bff2 (2 revisions)
a026169c9 Roll Chromium from 0635acc4de22 to d09758fa672c (93 revisions)
0a28c6c61 Capture/Replay: Capture some MultiDrawIndirect parameters
5f53268ce Capture/Replay: Gather Program sources directly from call
a92036893 Roll Chromium from 52c4c43d687f to 0635acc4de22 (149 revisions)
fce481863 Roll SwiftShader from f354daff5a2b to 87c78ac5eb86 (2 revisions)
6c9b79ead Roll Chromium from 16dc16f9ec67 to 52c4c43d687f (244 revisions)
4d893a935 Re-land: "Trace Tests: Remove auto-generated code."
542f7d808 Vulkan: Copy buffer data to correct cube map face
582651bee Roll vulkan-deps from fbeca8f4ea6a to c32df39c11ce (3 revisions)
5e0d97877 Roll Chromium from 274ab850e849 to 16dc16f9ec67 (303 revisions)
2ebd583ed Android: Remove setenv from common path
14af7a8da Log subprocess output in run_perf_tests.py
2f3e6cc07 Vulkan: Remove mShadowBuffer from BufferVk class.
7dfa69e69 Unskip MRTSigned and MRTUnsigned BlendIntegerTest
993f38896 Roll Chromium from 9ca41364d3dc to 274ab850e849 (341 revisions)
0e9353f60 Skip RenderbufferDrawStencilThenUnresolveStencil on Linux Vulkan AMD
bc9d2d7de Vulkan: Consolidate BufferHelper's code paths into one
4114fe23c Vulkan: Simplify transform feedback emulation logic
32d9e186d Roll vulkan-deps from 5568048d205e to fbeca8f4ea6a (4 revisions)
ab288fea5 Upgrade restricted traces. (Re-land)
c1f478fe0 Frame Capture: Allow for no FBO when running MEC.
eba2e620f Capture/Replay: Fix uniform program indexing.
73e764dc6 Suppress capture/replay tests.
1da7e3afb Revert "Metal: Fix Webkit warnings in ANGLE build"
bdaa046fe Roll Chromium from 81decb7250e1 to 9ca41364d3dc (272 revisions)
a7e0d520f Temporarily skip failing tests on Chromium
171bc07e2 Don't silently drop out-of-range bits in BitSetT
eca427b28 Vulkan: Add mutex to protect mVirtualBlock
c1598640b Vulkan: Improve mid-RP clear warning message
4a03668d7 Address comment in CL 3347143
cf8ac00a5 Vulkan: Fix MSRTT w.r.t stencil-only unresolve
c07df6fe8 Disable vulkan device select layer for msan build

5:29 PM Changeset in webkit [290478] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.9

4:53 PM Changeset in webkit [290477] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Take down shared worker context connection less aggressively when it becomes idle
​https://bugs.webkit.org/show_bug.cgi?id=237156

Reviewed by Darin Adler.

Take down shared worker context connection less aggressively when it becomes idle. Give it 5
seconds before shutting it down in case it ends up being used again in the near future.

This is similar to what we do for service workers.

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:

(WebKit::WebSharedWorkerServer::shutDownSharedWorker):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:

(WebKit::WebSharedWorkerServerToContextConnection::WebSharedWorkerServerToContextConnection):
(WebKit::WebSharedWorkerServerToContextConnection::addSharedWorkerObject):
(WebKit::WebSharedWorkerServerToContextConnection::removeSharedWorkerObject):
(WebKit::WebSharedWorkerServerToContextConnection::idleTerminationTimerFired):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
4:53 PM Changeset in webkit [290476] by Jonathan Bedard
  • 14 edits in trunk/Tools

[Python3] Remove shebangs from webkitpy files
​https://bugs.webkit.org/show_bug.cgi?id=237167
<rdar://problem/89444955>

Reviewed by Dewei Zhu.

  • Tools/Scripts/webkitpy/browserperfdash/browserperfdash_runner.py: Remove shebang.
  • Tools/Scripts/webkitpy/browserperfdash/browserperfdash_unittest.py: Ditto.
  • Tools/Scripts/webkitpy/common/attribute_saver.py: Ditto.
  • Tools/Scripts/webkitpy/common/attribute_saver_unittest.py: Ditto.
  • Tools/Scripts/webkitpy/common/net/bugzilla/test_expectation_updater.py: Ditto.
  • Tools/Scripts/webkitpy/common/net/bugzilla/test_expectation_updater_unittest.py: Ditto.
  • Tools/Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: Ditto.
  • Tools/Scripts/webkitpy/layout_tests/views/buildbot_results.py: Ditto.
  • Tools/Scripts/webkitpy/w3c/test_converter.py: Ditto.
  • Tools/Scripts/webkitpy/w3c/test_importer.py: Ditto.
  • Tools/Scripts/webkitpy/w3c/test_parser.py: Ditto.
  • Tools/Scripts/webkitpy/xcode/sdk.py: Ditto.
  • Tools/Scripts/webkitpy/xcode/sdk_unittest.py: Ditto.

Canonical link: ​https://commits.webkit.org/247774@main

4:28 PM Changeset in webkit [290475] by Robert Jenner
  • 3 edits in trunk/LayoutTests

REGRESSION(r290358): [ Debug EWS ] ASSERTION FAILED: sample && sample->pixelBuffer()
​https://bugs.webkit.org/show_bug.cgi?id=237164

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
4:17 PM Changeset in webkit [290474] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.7

4:04 PM Changeset in webkit [290473] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ EWS ] webgl/pending/conformance/textures/misc/tex-image-video-repeated.html is a flaky timeout
​https://bugs.webkit.org/show_bug.cgi?id=237166

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:44 PM Changeset in webkit [290472] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash
​https://bugs.webkit.org/show_bug.cgi?id=237165

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:26 PM Changeset in webkit [290471] by Ryan Haddad
  • 4 edits
    1 delete in trunk/Source/WTF

Unreviewed, reverting r290452.

Caused failues with clean builds

Reverted changeset:

"[XCBuild] WTF's SPI dependencies are copied via a folder
reference and do not emit task outputs"
​https://bugs.webkit.org/show_bug.cgi?id=237129
​https://commits.webkit.org/r290452

3:24 PM Changeset in webkit [290470] by jer.noble@apple.com
  • 87 edits in trunk/Source

Source/WebCore:
[Refactor] Adopt LoggerHelper in Logging EME classes
​https://bugs.webkit.org/show_bug.cgi?id=234319

Reviewed by Eric Carlson.

In order to pass down a logger() and logIdentifier() to the platform/
classes, modify LegacyCDMSessionClient to be a CanMakeWeakPtr class,
so it can be passed around by reference and automatically invalidated
when the client is destroyed. Then modify LegacyCDMSessionClient to
provide a logger() and logIdentifier() to callers.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::CDM):

  • Modules/encryptedmedia/CDM.h:

(WebCore::CDM::logIdentifier const):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::updateKeyStatuses):
(WebCore::MediaKeySession::sessionClosed):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):

  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/encryptedmedia/legacy/LegacyCDM.cpp:

(WebCore::LegacyCDM::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivate.h:
  • Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp:

(WebCore::LegacyCDMPrivateClearKey::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.h:
  • Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.cpp:

(WebCore::CDMPrivateMediaPlayer::createSession):

  • Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.h:
  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::CDMSessionClearKey):

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::create):
(WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::close):
(WebCore::WebKitMediaKeySession::generateKeyRequest):
(WebCore::WebKitMediaKeySession::update):
(WebCore::WebKitMediaKeySession::sendMessage):
(WebCore::WebKitMediaKeySession::sendError):
(WebCore::WebKitMediaKeySession::logChannel const):

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.cpp:

(WebCore::WebKitMediaKeys::createSession):

  • Modules/encryptedmedia/legacy/WebKitMediaKeys.h:
  • platform/encryptedmedia/CDMFactory.h:
  • platform/encryptedmedia/CDMInstance.h:

(WebCore::CDMInstance::setLogIdentifier):
(WebCore::CDMInstance::setLogger): Deleted.

  • platform/encryptedmedia/CDMInstanceSession.h:

(WebCore::CDMInstanceSession::setLogIdentifier):
(WebCore::CDMInstanceSession::setLogger): Deleted.

  • platform/encryptedmedia/CDMPrivate.h:

(WebCore::CDMPrivate::setLogIdentifier):
(WebCore::CDMPrivate::setLogger): Deleted.

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMFactoryClearKey::createCDM):

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/LegacyCDMSession.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::createSession):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::createSession):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMFactoryFairPlayStreaming::createCDM):
(WebCore::CDMPrivateFairPlayStreaming::CDMPrivateFairPlayStreaming):
(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):
(WebCore::CDMPrivateFairPlayStreaming::createInstance):
(WebCore::CDMPrivateFairPlayStreaming::setLogger): Deleted.

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::createSession):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::CDMInstanceFairPlayStreamingAVFObjC):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setServerCertificate):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::externalProtectionStatusDidChangeForContentKeyRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::CDMInstanceSessionFairPlayStreamingAVFObjC):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setLogger): Deleted.
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setLogger): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:

(WebCore::CDMSessionAVContentKeySession::logClassName const):

  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession):
(WebCore::CDMSessionAVContentKeySession::generateKeyRequest):
(WebCore::CDMSessionAVContentKeySession::releaseKeys):
(WebCore::CDMSessionAVContentKeySession::update):
(WebCore::CDMSessionAVContentKeySession::addParser):
(WebCore::CDMSessionAVContentKeySession::removeParser):
(WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage):

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:

(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::update):
(WebCore::CDMSessionAVFoundationObjC::playerDidReceiveError):
(WebCore::CDMSessionAVFoundationObjC::logChannel const):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:

(WebCore::CDMSessionAVStreamSession::logClassName const):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession):
(WebCore::CDMSessionAVStreamSession::~CDMSessionAVStreamSession):
(WebCore::CDMSessionAVStreamSession::generateKeyRequest):
(WebCore::CDMSessionAVStreamSession::releaseKeys):
(WebCore::CDMSessionAVStreamSession::update):
(WebCore::CDMSessionAVStreamSession::addParser):
(WebCore::CDMSessionAVStreamSession::removeParser):
(WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):

  • platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:

(WebCore::CDMSessionMediaSourceAVFObjC::logger const):
(WebCore::CDMSessionMediaSourceAVFObjC::logIdentifier const):

  • platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:

(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
(WebCore::CDMSessionMediaSourceAVFObjC::logChannel const):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMFactoryThunder::createCDM):

  • platform/graphics/gstreamer/eme/CDMThunder.h:
  • testing/LegacyMockCDM.cpp:

(WebCore::LegacyMockCDM::createSession):
(WebCore::MockCDMSession::MockCDMSession):

  • testing/LegacyMockCDM.h:
  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::createCDM):

  • testing/MockCDMFactory.h:

Source/WebKit:
[Refactor] Adopt LoggerHelper in Legacy EME classes
​https://bugs.webkit.org/show_bug.cgi?id=234319

Reviewed by Eric Carlson.

  • GPUProcess/media/RemoteCDMFactoryProxy.cpp:

(WebKit::RemoteCDMFactoryProxy::createCDM):
(WebKit::RemoteCDMFactoryProxy::logger const):

  • GPUProcess/media/RemoteCDMFactoryProxy.h:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp:

(WebKit::RemoteCDMInstanceProxy::create):
(WebKit::RemoteCDMInstanceProxy::RemoteCDMInstanceProxy):
(WebKit::RemoteCDMInstanceProxy::createSession):

  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteCDMInstanceProxy.messages.in:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::create):
(WebKit::RemoteCDMInstanceSessionProxy::RemoteCDMInstanceSessionProxy):
(WebKit::RemoteCDMInstanceSessionProxy::setLogIdentifier):

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.h:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:
  • GPUProcess/media/RemoteCDMProxy.cpp:

(WebKit::RemoteCDMProxy::create):
(WebKit::RemoteCDMProxy::RemoteCDMProxy):
(WebKit::RemoteCDMProxy::setLogIdentifier):

  • GPUProcess/media/RemoteCDMProxy.h:

(WebKit::RemoteCDMProxy::logger const):
(WebKit::RemoteCDMProxy::logIdentifier const):

  • GPUProcess/media/RemoteCDMProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::logger const):

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.cpp:

(WebKit::RemoteLegacyCDMProxy::createSession):

  • GPUProcess/media/RemoteLegacyCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:

(WebKit::RemoteLegacyCDMSessionProxy::create):
(WebKit::RemoteLegacyCDMSessionProxy::RemoteLegacyCDMSessionProxy):

  • GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::createSession):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteCDM.cpp:

(WebKit::RemoteCDM::setLogIdentifier):

  • WebProcess/GPU/media/RemoteCDM.h:
  • WebProcess/GPU/media/RemoteCDMConfiguration.h:

(WebKit::RemoteCDMConfiguration::encode const):
(WebKit::RemoteCDMConfiguration::decode):

  • WebProcess/GPU/media/RemoteCDMFactory.cpp:

(WebKit::RemoteCDMFactory::createCDM):

  • WebProcess/GPU/media/RemoteCDMFactory.h:
  • WebProcess/GPU/media/RemoteCDMInstance.cpp:

(WebKit::RemoteCDMInstance::createSession):

  • WebProcess/GPU/media/RemoteCDMInstanceSession.cpp:

(WebKit::RemoteCDMInstanceSession::setLogIdentifier):

  • WebProcess/GPU/media/RemoteCDMInstanceSession.h:
  • WebProcess/GPU/media/RemoteLegacyCDM.cpp:

(WebKit::RemoteLegacyCDM::createSession):

  • WebProcess/GPU/media/RemoteLegacyCDM.h:
  • WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:

(WebKit::RemoteLegacyCDMSession::create):
(WebKit::RemoteLegacyCDMSession::RemoteLegacyCDMSession):

  • WebProcess/GPU/media/RemoteLegacyCDMSession.h:
3:08 PM Changeset in webkit [290469] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r290356-r290351?): [ iOS15 ] 3 imported/w3c/web-platform-tests/service-workers/service-worker/* tests are constant text failures.
​https://bugs.webkit.org/show_bug.cgi?id=237160

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations:
2:53 PM Changeset in webkit [290468] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r290351-r290356?): [ iOS EWS ] imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https.html is a constant text failure
​https://bugs.webkit.org/show_bug.cgi?id=237162

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:53 PM Changeset in webkit [290467] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Delete SessionStorageQuotaManager
​https://bugs.webkit.org/show_bug.cgi?id=237132

Reviewed by Chris Dumez.

The code is unused since r289474.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::addSessionStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::removeSessionStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath): Deleted.
(WebKit::NetworkProcess::storageQuotaManager): Deleted.

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::SessionStorageQuotaManager::SessionStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::defaultQuota const): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::ensureOriginStorageQuotaManager): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::existingStorageQuotaManagers): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::cacheRootPath const): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::setIDBRootPath): Deleted.
(WebKit::NetworkProcess::SessionStorageQuotaManager::idbRootPath const): Deleted.

2:45 PM Changeset in webkit [290466] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r290356-r290351?):[ iOS EWS ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html is a constant text failure
​https://bugs.webkit.org/show_bug.cgi?id=237161

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:35 PM Changeset in webkit [290465] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS EWS ]imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-049.htmlis a flaky crash
​https://bugs.webkit.org/show_bug.cgi?id=237159

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:33 PM Changeset in webkit [290464] by Jonathan Bedard
  • 7 edits in trunk/Tools

[Python3] Change shebang for various scripts
​https://bugs.webkit.org/show_bug.cgi?id=237155
<rdar://problem/89436097>

Reviewed by Ryan Haddad.

  • Tools/Scripts/lint-webkitpy: Change shebang to Python 3.
  • Tools/Scripts/open-layout-test: Ditto.
  • Tools/Scripts/run-imagediff: Ditto.
  • Tools/Scripts/run-minibrowser: Ditto.
  • Tools/Scripts/run-webkit-httpd: Ditto.
  • Tools/Scripts/test-webkit-scripts: Ditto.

Canonical link: ​https://commits.webkit.org/247762@main

2:32 PM Changeset in webkit [290463] by rniwa@webkit.org
  • 2 edits in trunk

Explain visit children and opaque roots in Introduction.md
​https://bugs.webkit.org/show_bug.cgi?id=236894

Reviewed by Saam Barati.

Added the descriptions of visit children and opaque roots
as well as how to add IDL files.

  • Introduction.md:
2:26 PM Changeset in webkit [290462] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION (r289765-r289784): [iOS] Flaky crash under WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree()
​https://bugs.webkit.org/show_bug.cgi?id=236794

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:23 PM Changeset in webkit [290461] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Python3] Make report-non-inclusive-language Python 3 compatible
​https://bugs.webkit.org/show_bug.cgi?id=237154
<rdar://problem/89434987>

Reviewed by Aakash Jain.

  • Tools/Scripts/report-non-inclusive-language: Make Python 3 compatible.

Canonical link: ​https://commits.webkit.org/247760@main

1:59 PM Changeset in webkit [290460] by Russell Epstein
  • 1 copy in tags/Safari-614.1.3.6

Tag Safari-614.1.3.6.

1:57 PM Changeset in webkit [290459] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.8

Tag Safari-613.1.17.1.8.

1:43 PM Changeset in webkit [290458] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS15 ] fast/events/autoscroll-in-iframe-body.html is a flaky failure.
​https://bugs.webkit.org/show_bug.cgi?id=237150

Unreviewed Test Gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-24

  • platform/ios/TestExpectations: Flaky Failure expectation while investigating
1:19 PM Changeset in webkit [290457] by Oriol Brufau
  • 9 edits in trunk

[css-cascade] Support 'revert' in @keyframes
​https://bugs.webkit.org/show_bug.cgi?id=237073

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Expect tests to pass.

  • web-platform-tests/css/css-cascade/revert-val-006-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-007-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-008-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-010-expected.txt:

Source/WebCore:

Resolver::styleForKeyframe was constructing a RenderStyle with only the
styles specified in the @keyframes. But not taking into account the UA
and user rules that affect the element meant that 'revert' was broken.
Since Builder::applyProperty didn't find the declarations from other
origins, 'revert' just behaved as 'unset'.

This patch solves it by detecting if the @keyframes has a 'revert' value
and in that case it collects the UA and user rules so that it can be
resolved properly.

Tests: imported/w3c/web-platform-tests/css/css-cascade/revert-val-006.html

imported/w3c/web-platform-tests/css/css-cascade/revert-val-007.html
imported/w3c/web-platform-tests/css/css-cascade/revert-val-008.html
imported/w3c/web-platform-tests/css/css-cascade/revert-val-010.html

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addAuthorKeyframeRules):

  • style/ElementRuleCollector.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):

1:16 PM Changeset in webkit [290456] by Devin Rousso
  • 15 edits in trunk/Source

REGRESSION(r290436): fix build failures
​https://bugs.webkit.org/show_bug.cgi?id=237149

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/cocoa/PaymentSessionErrorCocoa.mm:

(WebCore::PaymentSessionError::sessionError const):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):
Replace PAL::get_PassKitCore_*() with #define declared in <pal/cocoa/PassKitSoftLink.h>.

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:
  • pal/spi/cocoa/PassKitInstallmentsSPI.h:

Undo some of the changes in r290436 by re-adding the old #import pre-r290436 when we do
not have PassKit modularization (i.e. HAVE(PASSKIT_MODULARIZATION)). This way, the code
is the same as it was for older releases.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:

Declare some #define for convenience (and so that if we need to change from PassKitCore
in the future we don't have to change any callsites).

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSError):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate _willFinishWithError:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKContactFields):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
Replace PAL::get_PassKitCore_*() with #define declared in <pal/cocoa/PassKitSoftLink.h>.

Source/WTF:

  • wtf/PlatformHave.h:

Rename HAVE_PASSKIT_UI to HAVE_PASSKIT_MODULARIZATION so that it also involes PassKitCore.

1:14 PM Changeset in webkit [290455] by Megan Gardner
  • 6 edits
    13 adds in trunk

Add percent decoding to Scroll to Text Fragment parsing.
​https://bugs.webkit.org/show_bug.cgi?id=236818

Reviewed by Chris Dumez.

Source/WebCore:

Leverage URL parser to percent decode parsed text directives in
scroll to text fragment implementation.

Tests: http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-emoji.html

http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-sentence.html
http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start.html

  • dom/FragmentDirectiveParser.cpp:

(WebCore::FragmentDirectiveParser::parseFragmentDirective):

Source/WTF:

Expose bits of URL parser to allow percent decoding elsewhere.

  • wtf/URLParser.h:

LayoutTests:

  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-emoji-expected.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-emoji.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-expected.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-sentence-expected.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start-sentence.html: Added.
  • http/wpt/html/dom/scroll-to-text-fragment/scroll-to-text-fragment-start.html: Added.
1:10 PM Changeset in webkit [290454] by Alan Bujtas
  • 20 edits in trunk

[IFC][Integration] Enable non-paginated vertical-rl writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236897

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • fast/repaint/vertical-text-repaint-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
  • platform/ios/fast/backgrounds/border-radius-split-background-expected.txt:
  • platform/ios/fast/backgrounds/border-radius-split-background-image-expected.txt:
  • platform/ios/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/border-styles-vertical-rl-expected.txt:
  • platform/ios/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
  • platform/mac/fast/backgrounds/border-radius-split-background-expected.txt:
  • platform/mac/fast/backgrounds/border-radius-split-background-image-expected.txt:
  • platform/mac/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
  • platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-rl-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
1:08 PM Changeset in webkit [290453] by Jonathan Bedard
  • 6 edits
    1 delete in trunk/Tools

[Python3] Migrate Tools/CISupport to Python3
​https://bugs.webkit.org/show_bug.cgi?id=237148
<rdar://problem/89430395>

Reviewed by Aakash Jain.

  • Tools/CISupport/build-webkit-org/committer_auth_unittest_old.py: Removed.
  • Tools/CISupport/build-webkit-org/loadConfig_unittest.py: Change shebang to Python 3.
  • Tools/CISupport/build-webkit-org/make_passwords_json.py: Change shebang to Python 3,

make Python 3 compatible.

  • Tools/CISupport/ews-build/email_unittest.py: Change shebang to Python 3.
  • Tools/CISupport/ews-build/loadConfig_unittest.py: Ditto.
  • Tools/CISupport/win/kill-old-processes: Ditto.

Canonical link: ​https://commits.webkit.org/247753@main

1:08 PM Changeset in webkit [290452] by Elliott Williams
  • 4 edits
    1 copy in trunk/Source/WTF

[XCBuild] WTF's SPI dependencies are copied via a folder reference and do not emit task outputs
​https://bugs.webkit.org/show_bug.cgi?id=237129

Reviewed by Alexey Proskuryakov.

In ​https://bugs.webkit.org/show_bug.cgi?id=235744, a folder reference was used to copy
headers from spi/, but the build system needs explicit file references for all headers to
infer discovered dependency relationships for incremental builds. Add spi/ headers directly
to WTF.xcodeproj.

We now have a method for using build rules to make a native Headers phase nest headers
according to their source directories. Use it here and delete the per-directory Copy Files
phases.

WTF's unicode headers--used only by external builders--are copied to a different include
directory, so for organization simplicity, add a separate target to WTF.xcodeproj to track
them. This target is effectively headers-only as it has no source files.

  • Configurations/Base.xcconfig: Copy WK_WHICH_BUILD_SYSTEM settings from other projects.
  • Configurations/WTF.xcconfig: Set header folder paths.
  • Configurations/icu.xcconfig: Copied from Source/WTF/Configurations/WTF.xcconfig.
  • WTF.xcodeproj/project.pbxproj: Add icu target, add spi headers, add build rules.
12:35 PM Changeset in webkit [290451] by Russell Epstein
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.6

12:13 PM Changeset in webkit [290450] by Wenson Hsieh
  • 8 edits
    2 adds in trunk

Refactor logic for showing "Markup Image" and Quick Note items in the callout bar
​https://bugs.webkit.org/show_bug.cgi?id=237127
rdar://89396617

Reviewed by Megan Gardner.

Source/WebKit:

Use -buildMenuWithBuilder: to supply additional Quick Note and image analysis items, instead of adding them
directly to the shared menu controller. See below for more details.

Tests: ImageAnalysisTests.MenuControllerItems

WebKit.AppHighlightsInImageOverlays

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView didMoveToWindow]):

See below.

(-[WKWebView buildMenuWithBuilder:]):

Override this method and call into the content view via -buildMenuForWebViewWithBuilder: to populate the given
builder with either Quick Note or "Markup Image" items, if necessary. Note that overriding this method on
WKWebView is sufficient, since UIKit walks up the responder hierarchy starting from the first responder
(WKContentView) when populating menu items.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView targetForAction:withSender:]):

Move some logic for conditionally enabling the Quick Note items into -imageAnalysisMarkupMenu.

(-[WKContentView imageAnalysisMarkupMenu]):
(-[WKContentView _selectionChanged]):

Remove logic that updates the shared UIMenuController's menu items every time the selection changes. This is
no longer needed, since UIKit will always call into -buildMenuWithBuilder: when presenting the callout bar,
which allows us to lazily run logic to determine whether or not we should show the Quick Note and image analysis
items when the callout bar is shown, instead of keeping the menu controller's -menuItems array up to date upon
each selection change.

(-[WKContentView buildMenuForWebViewWithBuilder:]):

Consult -appHighlightMenu and -imageAnalysisMarkupMenu to populate the menu with inline UIMenus. Note that
these menus' items are always inlined into the callout bar as top-level items, since we explicitly specify
UIMenuOptionsDisplayInline when creating the menu.

(-[WKContentView menuWithInlineAction:identifier:handler:]):
(-[WKContentView appHighlightMenu]):

Refactor this, and -imageAnalysisMarkupMenu above to return a UIMenu with a single UIAction presented inline.

(-[WKContentView updateImageAnalysisMarkupMenuItems:]): Deleted.

Replaced with -imageAnalysisMarkupMenu.

(-[WKContentView canPerformImageAnalysisMarkup]): Deleted.
(-[WKContentView performImageAnalysisMarkup:]): Deleted.
(-[WKContentView setUpAdditionalMenuControllerActions]): Deleted.
(findMenuItemWithAction): Deleted.
(-[WKContentView updateAppHighlightMenuItems:]): Deleted.

Replaced with -appHighlightMenu.

(-[WKContentView createHighlightForCurrentQuickNoteWithRange:]): Deleted.
(-[WKContentView createHighlightForNewQuickNoteWithRange:]): Deleted.

Tools:

Adjust a couple of existing API tests. See comments below.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

Refactor ImageAnalysisTests.MenuControllerItems to exercise -buildMenuWithBuilder: instead of swizzling
UIMenuController methods and checking -menuItems.

(TestWebKitAPI::swizzledSetMenuItems): Deleted.
(): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:

Refactor WebKit.AppHighlightsInImageOverlays to exercise -buildMenuWithBuilder: instead of passing in actions
to -targetForAction:withSender:.

  • TestWebKitAPI/ios/TestUIMenuBuilder.h: Added.
  • TestWebKitAPI/ios/TestUIMenuBuilder.mm: Added.

Add a helper class that conforms to UIMenuBuilder. This is used in the two API tests above as an argument to
-buildMenuWithBuilder: in order to collect additional menu items that WKWebView adds to the callout bar.

(-[TestUIMenuBuilder init]):
(-[TestUIMenuBuilder system]):
(-[TestUIMenuBuilder menuForIdentifier:]):
(-[TestUIMenuBuilder findMatching:]):
(-[TestUIMenuBuilder containsActionWithTitle:]):
(-[TestUIMenuBuilder reset]):
(-[TestUIMenuBuilder actionForIdentifier:]):
(-[TestUIMenuBuilder commandForAction:propertyList:]):
(-[TestUIMenuBuilder replaceMenuForIdentifier:withMenu:]):
(-[TestUIMenuBuilder replaceChildrenOfMenuForIdentifier:fromChildrenBlock:]):
(-[TestUIMenuBuilder insertChildMenu:atStartOfMenuForIdentifier:]):
(-[TestUIMenuBuilder insertChildMenu:atEndOfMenuForIdentifier:]):
(-[TestUIMenuBuilder removeMenuForIdentifier:]):
(-[TestUIMenuBuilder insertSiblingMenu:beforeMenuForIdentifier:]):
(-[TestUIMenuBuilder insertSiblingMenu:afterMenuForIdentifier:]):
(-[TestUIMenuBuilder registerMenu:]):

12:08 PM Changeset in webkit [290449] by Chris Dumez
  • 5 edits in trunk/Source/JavaScriptCore

[Cocoa] Only clear ICU cache when time zone is changed
​https://bugs.webkit.org/show_bug.cgi?id=236996

Reviewed by Yusuke Suzuki.

We used to unconditionally invalidate the VM's DateCache in VMEntryScope in order to
make sure we always used the latest time zone from the host machine (in case it changed).
This overly aggressive invalidation was causing us to repeatedly go to the disk in order
to determine the host time zone. On Cocoa ports, we now listen to the
kCFTimeZoneSystemTimeZoneDidChangeNotification notification and only invalidate the
VM's DateCache in VMEntryScope if the host time zone has actually changed since the
last time.

  • runtime/JSDateMath.cpp:

(JSC::timeZoneChangeNotification):
(JSC::DateCache::DateCache):
(JSC::DateCache::resetIfNecessary):
(JSC::DateCache::reset): Deleted.

  • runtime/JSDateMath.h:
  • runtime/VM.h:

(JSC::VM::resetDateCacheIfNecessary):
(JSC::VM::resetDateCache): Deleted.

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

11:58 AM Changeset in webkit [290448] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.8

11:51 AM Changeset in webkit [290447] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Python3] Convert shebangs in generate_xcfilelists_lib
​https://bugs.webkit.org/show_bug.cgi?id=237147
<rdar://problem/89427981>

Reviewed by Alexey Proskuryakov.

  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/init.py: Change shebang to Python 3.
  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/application.py: Ditto.
  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/generators.py: Ditto.
  • Tools/Scripts/webkitpy/generate_xcfilelists_lib/util.py: Ditto.

Canonical link: ​https://commits.webkit.org/247750@main

11:47 AM Changeset in webkit [290446] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r273929) FrameState no longer gets a move constructor
​https://bugs.webkit.org/show_bug.cgi?id=237142

Reviewed by Darin Adler.

FrameState no longer gets an implicit move constructor since r273929 because a custom
destructor was added.

  • Shared/SessionState.h:
11:41 AM Changeset in webkit [290445] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix bad logging in SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion()
​https://bugs.webkit.org/show_bug.cgi?id=237146

Reviewed by Geoffrey Garen.

Fix bad logging in SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion().
It was logging an error even when the load succeeded.

  • workers/shared/SharedWorkerObjectConnection.cpp:

(WebCore::SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion):

11:33 AM Changeset in webkit [290444] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

Skip shadow-realm-import-value on ARM too
​https://bugs.webkit.org/show_bug.cgi?id=237139

Unreviewed gardening.

  • stress/shadow-realm-import-value.js:
11:31 AM Changeset in webkit [290443] by Kate Cheney
  • 32 edits in trunk

Update CSP console logging
​https://bugs.webkit.org/show_bug.cgi?id=232216
<rdar://problem/89322580>

Reviewed by Brent Fulgham.

Source/WebCore:

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::originalHeaders const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):

Source/WebKit:

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

  • NetworkProcess/NetworkLoadChecker.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
10:29 AM Changeset in webkit [290442] by Devin Rousso
  • 7 edits
    1 add in trunk

[MacCatalyst] REGRESSION(r290091): sometimes can crash if WKWebView is deallocated before the next visible content rect update
​https://bugs.webkit.org/show_bug.cgi?id=237126
<rdar://problem/89345853>

Reviewed by Tim Horton.

Source/WebKit:

Tests: WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame

WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _acquireResizeAssertionForReason:]):
(-[WKWebView _invalidateResizeAssertions]): Added.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):
Make sure to -invalidate any remaining assertions in -dealloc as required by _UIInvalidatable.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewResize.mm: Added.

(TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingFrame):
(TEST.WKWebViewResize.DoesNotAssertInDeallocAfterChangingBounds):

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
10:02 AM Changeset in webkit [290441] by J Pascoe
  • 2 edits in trunk/Tools

Add myself (John Pascoe) to watchlist for authentication and WebCrypto
​https://bugs.webkit.org/show_bug.cgi?id=237121
rdar://problem/89385797

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/watchlist:
9:55 AM Changeset in webkit [290440] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WTF

Fix debug build of WorkQueueGeneric after r290418
​https://bugs.webkit.org/show_bug.cgi?id=237143

Unreviewed build fix.

Correct the method signature of WorkQueue::assertIsCurrent in WorkQueueGeneric.cpp.

  • wtf/generic/WorkQueueGeneric.cpp:

(WTF::WorkQueue::assertIsCurrent const):
(WTF::WorkQueue::assertIsCurrent): Deleted.

9:47 AM Changeset in webkit [290439] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, add some logging to imported/w3c/web-platform-tests/workers/semantics/multiple-workers/004.html to debug flakiness

  • web-platform-tests/workers/semantics/multiple-workers/004.html:
9:31 AM Changeset in webkit [290438] by Alan Bujtas
  • 8 edits in trunk

[LFC][IFC] Non-orthogonal inline block boxes keep their baseline on ideographic lines
​https://bugs.webkit.org/show_bug.cgi?id=236946

Reviewed by Antti Koivisto.

Source/WebCore:

This is similar to the logic in RenderBlock::baselinePosition for inline block boxes.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

  • rendering/RenderBlock.h:

LayoutTests:

  • platform/mac/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Progression
9:19 AM Changeset in webkit [290437] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] verticalLogicalMargin returns incorrect values for vertical-rl
​https://bugs.webkit.org/show_bug.cgi?id=237138

Reviewed by Antti Koivisto.

This was caused by an accidental copy/paste.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::verticalLogicalMargin): also switch over to "switch".

8:46 AM Changeset in webkit [290436] by Devin Rousso
  • 16 edits in trunk/Source

[Apple Pay] switch from PassKit/* to PassKit[Core,UI]/*
​https://bugs.webkit.org/show_bug.cgi?id=237091
<rdar://problem/81085862>

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/cocoa/PaymentSessionErrorCocoa.mm:

(WebCore::PaymentSessionError::sessionError const):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:
  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSError):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate _willFinishWithError:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup):
(WebKit::toPKContactFields):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):
(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

  • WebProcess/ApplePay/cocoa/WebPaymentCoordinatorCocoa.mm:

(WebKit::WebPaymentCoordinator::platformAvailablePaymentNetworks):

Source/WTF:

  • wtf/PlatformHave.h:
8:42 AM Changeset in webkit [290435] by Devin Rousso
  • 12 edits
    1 delete in trunk

Web Inspector: merge WI.OverlayManager into WI.DOMNode
​https://bugs.webkit.org/show_bug.cgi?id=236533

Reviewed by Patrick Angle.

Source/WebInspectorUI:

There's really nothing substantial about WI.OverlayManager that requires it to exist. All
of the methods, members, etc. can be moved to WI.DOMNode, resulting in clearer calling
code (since callers currently have to provide a WI.DOMNode to WI.OverlayManager methods)
and fewer collections (e.g. it's no longer necessary to have a "list of nodes showing a grid
overlay").

  • UserInterface/Controllers/OverlayManager.js: Removed.
  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.resetDefaultLayoutOverlayConfiguration): Added.
(WI.DOMNode.prototype.get layoutOverlayShowing): moved from WI.OverlayManager.protytpe.hasVisibleOverlay.
(WI.DOMNode.prototype.set layoutContextType):
(WI.DOMNode.prototype.showLayoutOverlay): moved from WI.OverlayManager.protytpe.showOverlay.
(WI.DOMNode.prototype.hideLayoutOverlay): moved from WI.OverlayManager.protytpe.hideOverlay.
(WI.DOMNode.prototype.get layoutOverlayColor): moved from WI.OverlayManager.protytpe.getColorForNode.
(WI.DOMNode.prototype.set layoutOverlayColor): moved from WI.OverlayManager.protytpe.setColorForNode.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype._mainResourceDidChange):
Reset the index of the next default color to use for the next grid/flex DOM node.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.onattach):
(WI.DOMTreeElement.prototype.ondetach):
(WI.DOMTreeElement.prototype._layoutBadgeClicked):
(WI.DOMTreeElement.prototype._updateLayoutBadgeStatus):
(WI.DOMTreeElement.prototype._handleLayoutContextTypeChanged):

  • UserInterface/Views/NodeOverlayListSection.js:

(WI.NodeOverlayListSection.prototype.attached):
(WI.NodeOverlayListSection.prototype.detached):
(WI.NodeOverlayListSection.prototype.layout):
(WI.NodeOverlayListSection.prototype._handleOverlayStateChanged):
(WI.NodeOverlayListSection.prototype._handleToggleAllCheckboxChanged):
(WI.NodeOverlayListSection.prototype._updateToggleAllCheckbox):

  • UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js:

(WI.GridOverlayConfigurationDiagnosticEventRecorder):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayShown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayHidden):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._sampleCurrentOverlayConfiguration):

  • UserInterface/Controllers/GridOverlayDiagnosticEventRecorder.js:

(WI.GridOverlayDiagnosticEventRecorder):
(WI.GridOverlayDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayDiagnosticEventRecorder.prototype._handleGridOverlayShown):
Adopt the above changes:

  • Replace WI.OverlayManager.Event.* with WI.DOMNode.Event.* (and event.data.domNode with event.target).
  • Replace WI.overlayManager.*(domNode[, ...]) with domNode.*([...]).
  • Directly query WI.settings.gridOverlay*.value instead of getting them from the data in WI.DOMNode.Event.LayoutOverlayShown (formerly WI.OverlayManager.Event.OverlayShown).

LayoutTests:

  • inspector/dom/showFlexOverlay.html:
  • inspector/dom/showGridOverlay.html:

Replace direct DOMAgent calls with equivalent WI.DOMNode methods.

8:09 AM Changeset in webkit [290434] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290401 - [WPE][GTK] Paths should be canonicalized before calling bwrap
​https://bugs.webkit.org/show_bug.cgi?id=211131

Patch by Maxim Cournoyer <​maxim.cournoyer@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSymlinksRealPath): Relocate earlier in file,
add a 'bindOption' argument and use FileSystem::realPath instead
of realpath from the standard C library.
(WebKit::bindIfExists): Use the modified above procedure to
canonicalize the source path, and avoid adding bind mounts for
locations under /etc.

8:09 AM Changeset in webkit [290433] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290395 - Bubblewrap launcher doesn't bind font locations from XDG_DATA_DIRS
​https://bugs.webkit.org/show_bug.cgi?id=237089

Patch by Liliana Marie Prikler <​liliana.prikler@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindFonts): Expose font directories present in the
XDG_DATA_DIRS environment variable.

8:09 AM Changeset in webkit [290432] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.36/Source/JavaScriptCore

Merge r290359 - Ensure generated inline assembler that setups segments returns to previous state
​https://bugs.webkit.org/show_bug.cgi?id=236976

Reviewed by Yusuke Suzuki.

Use .previous in inline assembler in order to ensure that mixed emission of assembler
functions and other definitions correctly puts each of them in their rightful sections
in the output object code.

  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerX86Common.cpp:
8:08 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
8:08 AM Changeset in webkit [290431] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36/Source

Merge r290312 - When building introspection files, add CMAKE_C_FLAGS to the compiler flags.
​https://bugs.webkit.org/show_bug.cgi?id=232936

Patch by Alexander Kanavin <​alex@linutronix.de> on 2022-02-22
Reviewed by Michael Catanzaro.

g-ir-compiler is using a C compiler internally, so it needs to set
the proper flags for it.

  • PlatformGTK.cmake:
7:45 AM Changeset in webkit [290430] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

RELEASE_ASSERT(!renderer()); in WebCore::Node::~Node() + 479 (Node.cpp:366)
​https://bugs.webkit.org/show_bug.cgi?id=235380

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

RenderTreeUpdater::tearDownRenderers() browse the composed tree to tear down descendants.
However, element with a shadow root are handled specially in
ComposedTreeIterator::ComposedTreeIterator(), they have to be handled specially by calling
a tearDownLeftoverShadowHostChildren(). This patch does the same for slot elements which
are also handled specially in ComposedTreeIterator(). It also makes names within
tearDownLeftoverShadowHostChildren() more generic. This in particular fixes a release assert
when a slot with pseudo elements children is torn down.

Test: fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown.html

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers): Also call tearDownLeftoverShadowHostChildren
for a slot element and add a comment pointing to the method corresponding to these special
cases.
(WebCore::RenderTreeUpdater::tearDownLeftoverChildrenOfComposedTree): Renamed to remove "shadow host".

  • rendering/updating/RenderTreeUpdater.h: Ditto.

LayoutTests:

Add non-regression test.

  • fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown-expected.txt: Added.
  • fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown.html: Added.
7:13 AM Changeset in webkit [290429] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 2)
​https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Ryan Haddad.

  • Tools/Scripts/run-webkit-tests: Change shebang to Python 3.

Canonical link: ​https://commits.webkit.org/247736@main

6:40 AM Changeset in webkit [290428] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Adjust hittest coords when in flipped writing mode
​https://bugs.webkit.org/show_bug.cgi?id=237103

Reviewed by Antti Koivisto.

This is similar to what we do in LegacyInlineFlowBox::nodeAtPoint.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::flippedRectForWritingMode):
(WebCore::LayoutIntegration::flippedPointForWritingMode):
(WebCore::LayoutIntegration::LineLayout::hitTest):

6:27 AM Changeset in webkit [290427] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WTF

Merge r290417 - REGRESSION(r289683): [GTK][WPE] Scrolling with the mouse wheel doesn't work in twitter after r289683
​https://bugs.webkit.org/show_bug.cgi?id=237093

Reviewed by Carlos Garcia Campos.

Turn off by default for wpe/gtk and windows to investigate issue.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:49 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
4:47 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
4:32 AM Changeset in webkit [290426] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[GTK] WebGL ANGLE backend is broken after r290138
​https://bugs.webkit.org/show_bug.cgi?id=237133

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-24
Reviewed by Kimmo Kinnunen.

We removed some of the options that are already included in the
general library compilation, that fixes the backend.

  • PlatformGTK.cmake:
4:29 AM Changeset in webkit [290425] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

webrtc/video-replace-muted-track.html is unnecessary long to run
​https://bugs.webkit.org/show_bug.cgi?id=237086

Reviewed by Peng Liu.

  • platform/mac/TestExpectations: Unflake test since it is no longer flaky in bots.
  • webrtc/routines.js:

We were waiting for 360 iterations to validate no black frame is found in webrtc/routines.js.
This makes it last around 20 seconds.
Decrease the number of iterations to 40, around 2 seconds by decrementing counter from provided value
instead of incrementing value up to 400.

4:17 AM Changeset in webkit [290424] by alex
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed test gardening.

Another WebGL test with failing expected results in glib.

  • platform/glib/TestExpectations:
  • platform/glib/webgl/webgl-allow-shared-expected.txt: Removed.
4:11 AM Changeset in webkit [290423] by commit-queue@webkit.org
  • 13 edits in trunk/Source

LibWebRTCCodecs, -Proxy create and communicate the RemoteVideoFrameProxy incorrectly
​https://bugs.webkit.org/show_bug.cgi?id=237083

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-24
Reviewed by Youenn Fablet.
Source/WebCore:

Add functions to set media sample ownership identity if the underlying object
supports the feature.

  • platform/MediaSample.h:

(WebCore::MediaSample::setOwnershipIdentity):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::setOwnershipIdentity):

  • platform/graphics/cv/VideoFrameCV.h:
  • platform/graphics/cv/VideoFrameCV.mm:

(WebCore::VideoFrameCV::setOwnershipIdentity):

Source/WebKit:

LibWebRTCCodecsProxy should not call RemoteVideoFrameObjectHeap::createVideoFrame,
the function should be removed. Instead, LibWebRTCCodecsProxy should construct a
write reference to insert the media sample -> remote proxy mapping. Then
the result of the insert, a new reference, should be sent as part of the
RemoteVideoFrameProxy::Properties to the WP. This way the sent reference is
constructed as expected. Previously the reference was correct but matched just
by selecting the constants currently used (0). This works towards being able
to remove RemoteVideoFrameObjectHeap::createVideoFrame.

Split the completedDecoding to two:

  • completedDecoding used to send new RemoteVideoFrames
  • completedDecodingCV to send CoreVideo specific RemoteVideoSample instances (which will removed eventually).
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::Function<void):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::completedDecodingCV):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
3:57 AM Changeset in webkit [290422] by Martin Robinson
  • 11 edits in trunk

Implement logical properties for CSS overscroll-behavior
​https://bugs.webkit.org/show_bug.cgi?id=237080

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt: Update expectations for passing tests.
  • web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt: Ditto.
  • web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed-expected.txt: Ditto.
  • web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid-expected.txt: Ditto.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

Add support for overscroll-behavior-block and overscroll-behavior-inline, the logical versions
of the overscroll behavior properties.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

3:13 AM Changeset in webkit [290421] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Respect bytecode alignment in BytecodeRewriter
​https://bugs.webkit.org/show_bug.cgi?id=237092

Patch by Geza Lore <Geza Lore> on 2022-02-24
Reviewed by Yusuke Suzuki.

Note: This patch only affects bytecode generation on platforms which
set CPU(NEEDS_ALIGNED_ACCESS), which are ARMv7 and MIPS. On all other
platforms the generated bytecode is identical.

The previous BytecodeRewriter::removeBytecode method unconditionally
removed the given instruction, which could then break the required
alignment of subsequent wide ops. While this could be fixed by
inserting padding after the removal, all current uses of
removeBytecode are such that they constitute one half of a replace.
Instead of adding unnecessary padding, added an explicit
replaceBytecodeWithFragment method that removes the old instruction
and replaces it with the given fragment, while maintaining alignment
of the subsequent bytecode. This yields fewer nops. If removeBytecode
turns out to be necessary later, use replaceBytecodeWithFragment with
an empty fragment.

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::BytecodeGeneratorification::run):

  • bytecode/BytecodeRewriter.h:

(JSC::BytecodeRewriter::Fragment::align):
(JSC::BytecodeRewriter::insertFragmentAfter):
(JSC::BytecodeRewriter::replaceBytecodeWithFragment):

  • bytecompiler/BytecodeGeneratorBaseInlines.h:

(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32):

2:22 AM Changeset in webkit [290420] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WTF

Unreviewed. Fix compile warnings when asserts are disabled after r290418

  • wtf/Threading.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/WorkQueue.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

1:42 AM Changeset in webkit [290419] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GTK] Mark GLContextGLX.cpp as no-unify

  • SourcesGTK.txt:
1:03 AM Changeset in webkit [290418] by commit-queue@webkit.org
  • 20 edits in trunk

Thread safety analysis to assert "code is run sequentially" is not useful when code is mainly run with WorkQueues
​https://bugs.webkit.org/show_bug.cgi?id=236832

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-24
Reviewed by Antti Koivisto.

Source/WebKit:

Assert directly that the work queues are current instead of using ThreadAssertion.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::~RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
(WebKit::RemoteGraphicsContextGL::didComposite):
(WebKit::RemoteGraphicsContextGL::forceContextLost):
(WebKit::RemoteGraphicsContextGL::dispatchContextChangedNotification):
(WebKit::RemoteGraphicsContextGL::reshape):
(WebKit::RemoteGraphicsContextGL::prepareForDisplay):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):
(WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGL::markContextChanged):
(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToCanvasWithQualifiedIdentifier):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToCanvasWithQualifiedIdentifier):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToMediaSample):
(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):
(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:

(WebKit::RemoteGraphicsContextGL::workQueue const):

  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(moveErrorsToSyntheticErrorList):
(activeTexture):
(attachShader):
(bindAttribLocation):
(bindBuffer):
(bindFramebuffer):
(bindRenderbuffer):
(bindTexture):
(blendColor):
(blendEquation):
(blendEquationSeparate):
(blendFunc):
(blendFuncSeparate):
(checkFramebufferStatus):
(clear):
(clearColor):
(clearDepth):
(clearStencil):
(colorMask):
(compileShader):
(copyTexImage2D):
(copyTexSubImage2D):
(createBuffer):
(createFramebuffer):
(createProgram):
(createRenderbuffer):
(createShader):
(createTexture):
(cullFace):
(deleteBuffer):
(deleteFramebuffer):
(deleteProgram):
(deleteRenderbuffer):
(deleteShader):
(deleteTexture):
(depthFunc):
(depthMask):
(depthRange):
(detachShader):
(disable):
(disableVertexAttribArray):
(drawArrays):
(drawElements):
(enable):
(enableVertexAttribArray):
(finish):
(flush):
(framebufferRenderbuffer):
(framebufferTexture2D):
(frontFace):
(generateMipmap):
(getActiveAttrib):
(getActiveUniform):
(getAttribLocation):
(getBufferParameteri):
(getString):
(getFloatv):
(getIntegerv):
(getInteger64):
(getInteger64i):
(getProgrami):
(getBooleanv):
(getFramebufferAttachmentParameteri):
(getProgramInfoLog):
(getRenderbufferParameteri):
(getShaderi):
(getShaderInfoLog):
(getShaderPrecisionFormat):
(getShaderSource):
(getTexParameterf):
(getTexParameteri):
(getUniformfv):
(getUniformiv):
(getUniformuiv):
(getUniformLocation):
(getVertexAttribOffset):
(hint):
(isBuffer):
(isEnabled):
(isFramebuffer):
(isProgram):
(isRenderbuffer):
(isShader):
(isTexture):
(lineWidth):
(linkProgram):
(pixelStorei):
(polygonOffset):
(renderbufferStorage):
(sampleCoverage):
(scissor):
(shaderSource):
(stencilFunc):
(stencilFuncSeparate):
(stencilMask):
(stencilMaskSeparate):
(stencilOp):
(stencilOpSeparate):
(texParameterf):
(texParameteri):
(uniform1f):
(uniform1fv):
(uniform1i):
(uniform1iv):
(uniform2f):
(uniform2fv):
(uniform2i):
(uniform2iv):
(uniform3f):
(uniform3fv):
(uniform3i):
(uniform3iv):
(uniform4f):
(uniform4fv):
(uniform4i):
(uniform4iv):
(uniformMatrix2fv):
(uniformMatrix3fv):
(uniformMatrix4fv):
(useProgram):
(validateProgram):
(vertexAttrib1f):
(vertexAttrib1fv):
(vertexAttrib2f):
(vertexAttrib2fv):
(vertexAttrib3f):
(vertexAttrib3fv):
(vertexAttrib4f):
(vertexAttrib4fv):
(vertexAttribPointer):
(viewport):
(bufferData0):
(bufferData1):
(bufferSubData):
(readnPixels0):
(readnPixels1):
(texImage2D0):
(texImage2D1):
(texSubImage2D0):
(texSubImage2D1):
(compressedTexImage2D0):
(compressedTexImage2D1):
(compressedTexSubImage2D0):
(compressedTexSubImage2D1):
(drawArraysInstanced):
(drawElementsInstanced):
(vertexAttribDivisor):
(createVertexArray):
(deleteVertexArray):
(isVertexArray):
(bindVertexArray):
(copyBufferSubData):
(getBufferSubData):
(blitFramebuffer):
(framebufferTextureLayer):
(invalidateFramebuffer):
(invalidateSubFramebuffer):
(readBuffer):
(renderbufferStorageMultisample):
(texStorage2D):
(texStorage3D):
(texImage3D0):
(texImage3D1):
(texSubImage3D0):
(texSubImage3D1):
(copyTexSubImage3D):
(compressedTexImage3D0):
(compressedTexImage3D1):
(compressedTexSubImage3D0):
(compressedTexSubImage3D1):
(getFragDataLocation):
(uniform1ui):
(uniform2ui):
(uniform3ui):
(uniform4ui):
(uniform1uiv):
(uniform2uiv):
(uniform3uiv):
(uniform4uiv):
(uniformMatrix2x3fv):
(uniformMatrix3x2fv):
(uniformMatrix2x4fv):
(uniformMatrix4x2fv):
(uniformMatrix3x4fv):
(uniformMatrix4x3fv):
(vertexAttribI4i):
(vertexAttribI4iv):
(vertexAttribI4ui):
(vertexAttribI4uiv):
(vertexAttribIPointer):
(drawRangeElements):
(drawBuffers):
(clearBufferiv):
(clearBufferuiv):
(clearBufferfv):
(clearBufferfi):
(createQuery):
(deleteQuery):
(isQuery):
(beginQuery):
(endQuery):
(getQuery):
(getQueryObjectui):
(createSampler):
(deleteSampler):
(isSampler):
(bindSampler):
(samplerParameteri):
(samplerParameterf):
(getSamplerParameterf):
(getSamplerParameteri):
(fenceSync):
(isSync):
(deleteSync):
(clientWaitSync):
(waitSync):
(getSynci):
(createTransformFeedback):
(deleteTransformFeedback):
(isTransformFeedback):
(bindTransformFeedback):
(beginTransformFeedback):
(endTransformFeedback):
(transformFeedbackVaryings):
(getTransformFeedbackVarying):
(pauseTransformFeedback):
(resumeTransformFeedback):
(bindBufferBase):
(bindBufferRange):
(getUniformIndices):
(getActiveUniforms):
(getUniformBlockIndex):
(getActiveUniformBlockName):
(uniformBlockBinding):
(getActiveUniformBlockiv):
(getGraphicsResetStatusARB):
(getTranslatedShaderSourceANGLE):
(drawBuffersEXT):
(getInternalformativ):
(multiDrawArraysANGLE):
(multiDrawArraysInstancedANGLE):
(multiDrawElementsANGLE):
(multiDrawElementsInstancedANGLE):
(paintRenderingResultsToPixelBuffer):

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):
(WebKit::RemoteGPU::requestAdapter):

  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::stopListeningForIPC):
(WebKit::RemoteVideoFrameObjectHeap::releaseVideoFrame):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • Platform/IPC/StreamConnectionWorkQueue.cpp:

(IPC::StreamConnectionWorkQueue::assertIsCurrent const):

  • Platform/IPC/StreamConnectionWorkQueue.h:

(IPC::WTF_ASSERTS_ACQUIRED_CAPABILITY):

Source/WTF:

Thread safety analysis is not useful when code is mainly run with WorkQueues.
WorkQueue runnables might run in arbitrary thread, but still serially in a specific
"work queue". Thus current ThreadAssertion produces false assertions.

Make Thread and WorkQueue hold "is current" capability. This means the
assertIsCurrent(thread/workQueue) can establish that the caller holds the capabity,
e.g. that the caller is running in the particular thread or work queue.

Tested by new API tests.

  • wtf/Threading.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/WorkQueue.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueueBase::platformInitialize):
(WTF::WorkQueue::assertIsCurrent const):
(WTF::currentSequenceID):

  • wtf/generic/WorkQueueGeneric.cpp:

(WTF::WorkQueueBase::platformInitialize):
(WTF::WorkQueue::assertIsCurrent):
(WTF::currentSequenceID):

Tools:

Test the added functionality to be able to use assertIsCurrent(thread/workQueue).

Fix WTF_WorkQueue.DestroyDispatchedOnDispatchQueue test, it is now able to make the assertion correctly.

  • The object is created somewhere that is not the tested WorkQueue
  • The object is destroyed in the tested WorkQueue
  • Scripts/generate-gpup-webgl:
  • TestWebKitAPI/Tests/WTF/Threading.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

12:57 AM Changeset in webkit [290417] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

REGRESSION(r289683): [GTK][WPE] Scrolling with the mouse wheel doesn't work in twitter after r289683
​https://bugs.webkit.org/show_bug.cgi?id=237093

Reviewed by Carlos Garcia Campos.

Turn off by default for wpe/gtk and windows to investigate issue.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
12:56 AM Changeset in webkit [290416] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] WeakMapImpl do not need to take cellLock in visitOutputConstraints and main thread
​https://bugs.webkit.org/show_bug.cgi?id=200195

Reviewed by Mark Lam.

WeakMapImpl::visitOutputConstraints is called in the constraint solver, so the main thread is stopped.
WeakMapImpl::rehash can destroy the buffer, but it is only called on either the main thread or GC finalizer. As a result,
it never happens that destroying the buffer while touching it in visitOutputConstraints. We can remove the lock guarding
this buffer.

  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<BucketType>::visitOutputConstraints):

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::WeakMapImpl):
(JSC::WeakMapImpl::makeAndSetNewBuffer):
(JSC::WeakMapImpl::finishCreation): Deleted.

  • runtime/WeakMapImplInlines.h:

(JSC::WeakMapImpl<WeakMapBucket>::rehash):

12:55 AM Changeset in webkit [290415] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Small optimizations to TinyLRUCache
​https://bugs.webkit.org/show_bug.cgi?id=237117

Reviewed by Darin Adler.

Small optimizations to TinyLRUCache:

  • When trying to find an entry in the cache, start from the end of the vector since this is where the most recent entries are.
  • Use reverseFind() instead of a for loop to simplify the code a bit
  • Use Vector::uncheckedAppend() instead of Vector::append() to bypass capacity checks given that the vector has an inline capacity that is the size of the cache (vector capacity never grows or shrinks).
  • wtf/TinyLRUCache.h:

(WTF::TinyLRUCache::get):

Feb 23, 2022:

11:28 PM Changeset in webkit [290414] by commit-queue@webkit.org
  • 22 edits
    3 deletes in trunk

Unreviewed, reverting r290284.
​https://bugs.webkit.org/show_bug.cgi?id=237131

It is preventing the fuzzer from finding other bugs

Reverted changeset:

"Make input element UA shadow tree creation lazy"
​https://bugs.webkit.org/show_bug.cgi?id=236747
​https://commits.webkit.org/r290284

10:35 PM Changeset in webkit [290413] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

REGRESSION(r290175): Texture upload from video and user media is slower than expected for non-GPUP WebGL
​https://bugs.webkit.org/show_bug.cgi?id=237034

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-23
Reviewed by Youenn Fablet.

Add back the code-path to obtain the IOSurface backed CVPixelBuffers directly
via IPC transfer. This is used on macOS where WebGL is in WP.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::pixelBuffer):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::pixelBuffer const):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
10:16 PM Changeset in webkit [290412] by ntim@apple.com
  • 9 edits
    9 adds in trunk

Use of showModalDialog should appear as a warning in WI console
​https://bugs.webkit.org/show_bug.cgi?id=237046

Reviewed by Devin Rousso.

Source/WebCore:

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::showModalDialog):

LayoutTests:

Test gardening to take in account new console warning.

  • fast/animation/request-animation-frame-during-modal-expected.txt:
  • fast/dom/Window/open-window-min-size-expected.txt:
  • fast/events/show-modal-dialog-onblur-onfocus-expected.txt:
  • http/tests/cookies/document-cookie-after-showModalDialog-expected.txt:
  • http/tests/security/navigate-when-restoring-cached-page-expected.txt:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2-expected.txt:
  • platform/mac-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
7:18 PM Changeset in webkit [290411] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Modernize / simplify ScrollingStateTree a bit
​https://bugs.webkit.org/show_bug.cgi?id=237111

Reviewed by Simon Fraser.

Modernize / simplify ScrollingStateTree a bit.

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::nodeTypeAndParentMatch):
Simplify function body to be on one line and make function static since it doesn't
need an instance.

(WebCore::nodeWasReattachedRecursive):
Make function static since it doesn't need an instance.

(WebCore::ScrollingStateTree::createUnparentedNode):

  • Pass a reference instead of pointer

(WebCore::ScrollingStateTree::insertNode):

  • Use template deduction for Ref<>
  • Drop unnecessarily 0-check for parentID since stateNodeForID(parentID) would have returned null and we would have returned early a few lines above.

(WebCore::ScrollingStateTree::unparentNode):
(WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):

  • Use RefPtr type for protectedNode based on the variable naming. Previously, auto would have deduced to a raw pointer.

(WebCore::ScrollingStateTree::detachAndDestroySubtree):
(WebCore::ScrollingStateTree::clear):
Pass more references instead of pointers.

(WebCore::ScrollingStateTree::commit):
use auto and std::exchange() to make the code a bit more concise.

(WebCore::ScrollingStateTree::removeNodeAndAllDescendants):
Take a reference in parameter instead of a raw pointer since the pointer couldn't
be null.

(WebCore::ScrollingStateTree::recursiveNodeWillBeRemoved):

  • Take a reference in parameter instead of a raw pointer since the pointer couldn't

be null.

  • Rename currNode to currentNode per WebKit coding style.

(WebCore::ScrollingStateTree::willRemoveNode):
Take a reference in parameter instead of a raw pointer since the pointer couldn't
be null.

(WebCore::ScrollingStateTree::stateNodeForID const):
Rewrite function in a more concise way by calling HashMap::get() instead of HashMap::find().

(WebCore::reconcileLayerPositionsRecursive):

  • Make function static since it doesn't need an instance
  • Rename currNode to currentNode per WebKit coding style

(WebCore::ScrollingStateTree::reconcileViewportConstrainedLayerPositions):
Make function a bit more concise by not doing an early return.

(showScrollingStateTree):
Take in a reference instead of a raw pointer.

(WebCore::ScrollingStateTree::nodeTypeAndParentMatch const): Deleted.
(WebCore::ScrollingStateTree::nodeWasReattachedRecursive): Deleted.
(WebCore::ScrollingStateTree::reconcileLayerPositionsRecursive): Deleted.

  • page/scrolling/ScrollingStateTree.h:
6:25 PM Changeset in webkit [290410] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.3

Tag Safari-614.1.5.3.

6:24 PM Changeset in webkit [290409] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Release ] imported/w3c/web-platform-tests/html/user-activation/activation-trigger-pointerevent.html is a constant text failure
​https://bugs.webkit.org/show_bug.cgi?id=236126

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:51 PM Changeset in webkit [290408] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.3

5:43 PM Changeset in webkit [290407] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

Fix !ENABLE(SERVICE_WORKER) build after r290387
​https://bugs.webkit.org/show_bug.cgi?id=237119

Unreviewed build fix.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishRemoteWorkerContextConnectionToNetworkProcess):

5:31 PM Changeset in webkit [290406] by Robert Jenner
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r290351 and r290404.

Broke the build after revert of initial commit (r290348)
Rebases no longer needed due to revert

Reverted changesets:

"Use of showModalDialog should appear as a warning in WI
console"
​https://bugs.webkit.org/show_bug.cgi?id=237046
​https://commits.webkit.org/r290351

"Use of showModalDialog should appear as a warning in WI
console"
​https://bugs.webkit.org/show_bug.cgi?id=237046
​https://commits.webkit.org/r290404

5:24 PM Changeset in webkit [290405] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Adjust thread number for GC throughput
​https://bugs.webkit.org/show_bug.cgi?id=237122

Reviewed by Mark Lam.

Adjust numberOfGCMarkers from 4 to 3 to make GC and main thread througput better on M1 macOS.
3 makes sense since there is also a main thread when they are running concurrently to the
main thread.

It offers 1.2% improvement in Speedometer2 in M1Max MBP and 0.4% improvement in M1 MBP.


| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |107.445000 |102.856667 |0.957296 | 0.000000 (significant) |
| VueJS-TodoMVC |21.571667 |21.805000 |1.010817 | 0.403054 |
| EmberJS-TodoMVC |113.320000 |111.300000 |0.982174 | 0.000027 (significant) |
| BackboneJS-TodoMVC |39.981667 |39.318333 |0.983409 | 0.002346 (significant) |
| Preact-TodoMVC |15.516667 |15.648333 |1.008485 | 0.544754 |
| AngularJS-TodoMVC |117.010000 |115.346667 |0.985785 | 0.000495 (significant) |
| Vanilla-ES2015-TodoMVC |57.790000 |57.176667 |0.989387 | 0.000270 (significant) |
| Inferno-TodoMVC |55.275000 |53.755000 |0.972501 | 0.000000 (significant) |
| Flight-TodoMVC |53.875000 |53.941667 |1.001237 | 0.739556 |
| Angular2-TypeScript-TodoMVC |36.600000 |36.471667 |0.996494 | 0.743761 |
| VanillaJS-TodoMVC |48.058333 |47.671667 |0.991954 | 0.158193 |
| jQuery-TodoMVC |203.433333 |201.878333 |0.992356 | 0.009271 (significant) |
| EmberJS-Debug-TodoMVC |325.058333 |319.848333 |0.983972 | 0.000003 (significant) |
| React-TodoMVC |80.533333 |79.281667 |0.984458 | 0.000011 (significant) |
| React-Redux-TodoMVC |134.738333 |131.801667 |0.978205 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |56.780000 |56.168333 |0.989227 | 0.000514 (significant) |


a mean = 293.86568
b mean = 297.52900
pValue = 0.0266899465
(Bigger means are better.)
1.012 times better
Results ARE significant

  • runtime/Options.cpp:

(JSC::overrideDefaults):

5:12 PM Changeset in webkit [290404] by Robert Jenner
  • 1 edit
    9 adds in trunk/LayoutTests

Use of showModalDialog should appear as a warning in WI console
​https://bugs.webkit.org/show_bug.cgi?id=237046

Unreviewed test gardening. Rebase for wk1 mac and Windows tests.

  • platform/mac-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/mac-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/pagehide-showModalDialog-expected.txt: Added.
  • platform/wincairo-wk1/fast/events/unload-showModalDialog-expected.txt: Added.
4:52 PM Changeset in webkit [290403] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.7

Tag Safari-613.1.17.1.7.

4:51 PM Changeset in webkit [290402] by Russell Epstein
  • 1 copy in tags/Safari-614.1.3.5

Tag Safari-614.1.3.5.

4:49 PM Changeset in webkit [290401] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Paths should be canonicalized before calling bwrap
​https://bugs.webkit.org/show_bug.cgi?id=211131

Patch by Maxim Cournoyer <​maxim.cournoyer@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSymlinksRealPath): Relocate earlier in file,
add a 'bindOption' argument and use FileSystem::realPath instead
of realpath from the standard C library.
(WebKit::bindIfExists): Use the modified above procedure to
canonicalize the source path, and avoid adding bind mounts for
locations under /etc.

4:47 PM Changeset in webkit [290400] by Elliott Williams
  • 2 edits in trunk

[XCBuild] Don't automatically use the ../Internal/WebKit workspace
​https://bugs.webkit.org/show_bug.cgi?id=237115

Reviewed by Alexey Proskuryakov.

When the USE_WORKSPACE=YES Make flag was added in ​https://commits.webkit.org/246232@main, we
configured Make to automatically use the workspace at ../Internal/WebKit/WebKit.xcworkspace,
if it was available. The idea was to make it easier for workspace builds to automatically
detect dependencies needed by folks at Apple, like WebKitAdditions.

In practice, this has made workspace builds silently rely on code from outside of the WebKit
repo, and it's unintuitive since non-workspace Make builds do not do this.

  • Makefile.shared:
4:39 PM Changeset in webkit [290399] by Robert Jenner
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r290348.

Broke a test, slowing down EWS.

Reverted changeset:

"Create a DOMWindow::printWarningMessage method and start
using it in DOMWindow.cpp"
​https://bugs.webkit.org/show_bug.cgi?id=237047
​https://commits.webkit.org/r290348

4:37 PM Changeset in webkit [290398] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.7

4:34 PM Changeset in webkit [290397] by Russell Epstein
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.5

4:21 PM Changeset in webkit [290396] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Flip accumulatedOffset to take writing mode into account when hittesting across formatting contexts.
​https://bugs.webkit.org/show_bug.cgi?id=237094

Reviewed by Antti Koivisto.

Both paint and hittest need coord flip (vertical writing mode here) when jumping through formatting context boundaries.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::flippedContentOffsetIfNeeded):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

3:47 PM Changeset in webkit [290395] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Bubblewrap launcher doesn't bind font locations from XDG_DATA_DIRS
​https://bugs.webkit.org/show_bug.cgi?id=237089

Patch by Liliana Marie Prikler <​liliana.prikler@gmail.com> on 2022-02-23
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindFonts): Expose font directories present in the
XDG_DATA_DIRS environment variable.

3:18 PM Changeset in webkit [290394] by Chris Dumez
  • 94 edits in trunk

Adopt more widely the new URL constructor that takes in a String
​https://bugs.webkit.org/show_bug.cgi?id=237099

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::convertAndValidatePaymentMethodIdentifier):

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::completeURL const):

  • dom/Document.cpp:

(WebCore::Document::referrer):

  • html/DOMURL.cpp:

(WebCore::DOMURL::revokeObjectURL):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::didNavigateExtensionTab):
(WebCore::InspectorFrontendHost::inspectedPageDidNavigate):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::extractInnerURL):

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::willSendRequest):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(convertPlaybinURI):

  • platform/network/soup/URLSoup.cpp:

(WebCore::soupURIToURL):

  • platform/win/PasteboardWin.cpp:

(WebCore::filesystemPathFromUrlOrTitle):

  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::showPaymentUI):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::fromDatabaseKey):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

  • Shared/API/APISecurityOrigin.h:

(API::SecurityOrigin::createFromString):

  • Shared/API/APIURL.h:

(API::URL::parseURLIfNecessary const):

  • Shared/API/c/WKURLRequest.cpp:

(WKURLRequestCreateWithWKURL):

  • Shared/API/glib/WebKitURIRequest.cpp:

(webkit_uri_request_set_uri):

  • Shared/APIWebArchiveResource.mm:

(API::WebArchiveResource::WebArchiveResource):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):

  • Shared/curl/WebCoreArgumentCodersCurl.cpp:

(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::ArgumentCoder<SelectionData>::decode):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

  • UIProcess/API/C/WKOpenPanelResultListener.cpp:

(filePathsFromFileURLs):

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadURL):
(WKPageLoadURLWithShouldOpenExternalURLsPolicy):
(WKPageLoadURLWithUserData):
(WKPageLoadAlternateHTMLStringWithUserData):
(WKPageSetPrivateClickMeasurementTokenPublicKeyURLForTesting):
(WKPageSetPrivateClickMeasurementTokenSignatureURLForTesting):
(WKPageSetPrivateClickMeasurementAttributionReportURLsForTesting):

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsMergeStatistic):
(WKWebsiteDataStoreSetStatisticsExpiredStatistic):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsOnlyInDatabaseOnce):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration):
(WKWebsiteDataStoreStatisticsDeleteCookiesForTesting):
(WKWebsiteDataStoreStatisticsHasLocalStorage):
(WKWebsiteDataStoreStatisticsHasIsolatedSession):
(WKWebsiteDataStoreSetResourceLoadStatisticsToSameSiteStrictCookiesForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):
(WKWebsiteDataStoreSetResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):
(WKWebsiteDataStoreSetAppBoundDomainsForTesting):

  • UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.cpp:

(WKWebsiteDataStoreEnableCustomNetworkProxySettings):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
  • UIProcess/API/glib/WebKitCookieManager.cpp:

(webkit_cookie_manager_get_cookies):

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(webkit_security_origin_new_for_uri):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_load_alternate_html):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _uiEventAttribution]):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):

  • UIProcess/Cocoa/LegacyDownloadClient.mm:

(WebKit::LegacyDownloadClient::legacyDidStart):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::willPerformClientRedirect):
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect):

  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:

(-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isURLKnownHSTSHost const):

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::load):

  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::isMainOrTestInspectorPage):
(WebKit::WebInspectorUIProxy::openLocalInspectorFrontend):

  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformSave):

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformSave):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::sessionState const):
(WebKit::checkIfNavigationContainsDataTransfer):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::checkURLReceivedFromCurrentOrPreviousWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::assumeReadAccessToBaseURL):
(WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
(WebKit::WebsiteDataStore::initializeAppBoundDomains):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::decodeLegacySessionState):

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::validateMerchant):

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameAllowsFollowingLink):
(WKBundleFrameCopySuggestedFilenameForResourceWithURL):
(WKBundleFrameCopyMIMETypeForResourceWithURL):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageHasLocalDataForURL):
(WKBundlePageClearApplicationCacheForOrigin):
(WKBundlePageGetAppCacheUsageForOrigin):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setUserStyleSheetLocation):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::isValidFetch):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFormData):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::getResourceDataFromFrame):

  • webpushd/PushService.mm:

(WebPushD::PushService::didReceivePushMessage):

Source/WebKitLegacy/win:

  • MarshallingHelpers.cpp:
  • WebError.cpp:

(WebError::init):

  • WebFrame.cpp:

(WebFrame::loadData):

  • WebView.cpp:

(toURL):

Source/WTF:

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::aboutSrcDocURL):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::checkURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::testUserPassword):

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::mainDocumentRequest):
(TestWebKitAPI::subResourceRequest):
(TestWebKitAPI::requestInTopAndFrameURLs):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/curl/Cookies.cpp:

(TestWebKitAPI::Curl::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/SSLKeyGenerator.mm:
2:45 PM Changeset in webkit [290393] by W.D. Xiong
  • 2 edits in trunk

Add wdx's Github username to contributors.json
​https://bugs.webkit.org/show_bug.cgi?id=237106

Unreviewed.

  • metadata/contributors.json:
2:33 PM Changeset in webkit [290392] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Improve error message for missing pubKeyCredParams
​https://bugs.webkit.org/show_bug.cgi?id=235421
rdar://87884875

Reviewed by Brent Fulgham.

Source/WebCore:

We have seen confusion from library authors around the language
used in this error not indicating enough information about what
the problem is. This patch adds additional information, useful
to developers seeing this error.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::create const):

LayoutTests:

Update test to reflect new error message.

  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
1:40 PM Changeset in webkit [290391] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.2

Tag Safari-614.1.5.2.

12:59 PM Changeset in webkit [290390] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/bmalloc

[libpas] PlayStation uses 16k page size.
​https://bugs.webkit.org/show_bug.cgi?id=237096

Reviewed by Yusuke Suzuki.

Match the granule default size to system page size for our platform.

  • libpas/src/libpas/pas_internal_config.h:
12:57 PM Changeset in webkit [290389] by Wenson Hsieh
  • 2 edits in trunk/Tools

REGRESSION (288925?): [iOS] TestWebKitAPI.RequestTextInputContext.TextInteraction_FocusingReadOnlyElementShouldScrollToReveal is failing
​https://bugs.webkit.org/show_bug.cgi?id=237069
rdar://89325305

Reviewed by Kate Cheney.

This iOS API test occasionally fails in some test runners in automation, due to didScroll still being false at
the end of the test. While I was unable to reproduce (both locally, and using EWS test runners), from code
inspection this test appears to be inherently flaky since the scrolling is triggered via editor state updates
propagated through remote layer tree commits; however, the test only verifies that scrolling occurs after one
IPC round-trip between the web and UI processes (due to the call to -stringByEvaluatingJavaScript:).

Since the regression point is suspiciously close to r288925, it's possible that the optimizations introduced in
r288925 removed an extra sync IPC round-trip to the web process and back when requesting an autocorrection
context after element focus, which would make this flakiness easier to reproduce in some configurations.

In any case, one speculative fix for this test is to simply wait for the scrolling to occur, instead of assuming
that it occurs after a single IPC round-trip.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

12:34 PM Changeset in webkit [290388] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] LineLayout::firstLinePhysicalBaseline/lastLineLogicalBaseline should flip box baseline value for vertical-lr
​https://bugs.webkit.org/show_bug.cgi?id=237090

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstLinePhysicalBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineLogicalBaseline const):
(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):

12:12 PM Changeset in webkit [290387] by Chris Dumez
  • 18 edits in trunk/Source/WebKit

Share more code between service and shared workers for context connection establishment
​https://bugs.webkit.org/show_bug.cgi?id=237085

Reviewed by Youenn Fablet.

Share more code between service and shared workers for context connection establishment.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::ensureSWServer):

  • NetworkProcess/SharedWorker/WebSharedWorker.cpp:

(WebKit::WebSharedWorker::firstSharedWorkerObjectProcess const):

  • NetworkProcess/SharedWorker/WebSharedWorker.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:

(WebKit::WebSharedWorkerServer::didFinishFetchingSharedWorkerScript):
(WebKit::WebSharedWorkerServer::createContextConnection):
(WebKit::WebSharedWorkerServer::removeContextConnection):
(WebKit::WebSharedWorkerServer::shutDownSharedWorker):

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::establishSharedWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::WebProcessPool::establishSharedWorkerContextConnectionToNetworkProcess): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishRemoteWorkerContext):
(WebKit::WebProcessProxy::establishServiceWorkerContext): Deleted.
(WebKit::WebProcessProxy::establishSharedWorkerContext): Deleted.

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcess::establishSharedWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::WebProcess::establishServiceWorkerContextConnectionToNetworkProcess): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
11:28 AM Changeset in webkit [290386] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Mac EWS ] imported/w3c/web-platform-tests/workers/semantics/multiple-workers/004.html is a flaky text failure
​https://bugs.webkit.org/show_bug.cgi?id=237095

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Setting [ Pass Failure ] expectations for flaky test failure that is slowing down EWS.
11:26 AM Changeset in webkit [290385] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Subpixel] imported/w3c/web-platform-tests/css/css-flexbox/auto-margins-001.html fails at certain font sizes
​https://bugs.webkit.org/show_bug.cgi?id=217643
<rdar://problem/70464703>

Unreviewed gardening.

  • platform/ios-simulator-wk2/TestExpectations: It must have progressed at some point.
11:02 AM Changeset in webkit [290384] by J Pascoe
  • 5 edits in trunk/Source

Prevent use of PDFKit when using PDF.js
​https://bugs.webkit.org/show_bug.cgi?id=237052
rdar://89251696

Reviewed by Tim Horton.

Source/WebCore:

Add WEBCORE_EXPORT in order to use isPDFMIMEType.

  • platform/MIMETypeRegistry.h:

Source/WebKit:

PDFKit was still being used by embeds, this patch fixes that issue by treating
pdf embeds as frames if PDF.js is enabled and also prevents the loading of
the PDFKit plugin entirely by modifying shouldUsePDFPlugin.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::objectContentType):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::shouldUsePDFPlugin const):

10:36 AM Changeset in webkit [290383] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Catch OSError when sampling
​https://bugs.webkit.org/show_bug.cgi?id=237087
<rdar://problem/89357299>

Reviewed by Aakash Jain.

  • Tools/Scripts/webkitpy/port/darwin.py:

(DarwinPort.sample_process): Catch OSError when either sampling a
process or running spindump. These errors indicate the error gathering process
failed, but such a failure should not be fatal to the entire test run.

Canonical link: ​https://commits.webkit.org/247698@main

10:26 AM Changeset in webkit [290382] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] LineLayout::firstInlineBoxRect should flip the rect coordinates for vertical-rl
​https://bugs.webkit.org/show_bug.cgi?id=237036

Reviewed by Antti Koivisto and Darin Adler.

This is similar to what RenderInline::firstInlineBoxTopLeft does.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):

10:19 AM Changeset in webkit [290381] by J Pascoe
  • 11 edits in trunk

[WebAuthn] userHandle not marked nullable in _WKWebAuthenticationAssertionResponse
​https://bugs.webkit.org/show_bug.cgi?id=237043
rdar://89317740

Reviewed by Brent Fulgham.

Source/WebCore:

The userHandle is a nullable field on UserEntity. This patch changes
various API/SPI to allow passing null userHandle.

  • Modules/webauthn/AuthenticatorAssertionResponse.cpp:

(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

Source/WebKit:

The userHandle is a nullable field on UserEntity. This patch changes
various API/SPI to allow passing null userHandle.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:

Update forward declared SPI, reflecting userHandle as nullable.

  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponseInternal.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:

Update userHandle property to null.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(getAllLocalAuthenticatorCredentialsImpl):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):

Tools:

Create tests to check for null userHandle.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

10:14 AM Changeset in webkit [290380] by Antti Koivisto
  • 10 edits in trunk

[CSS Container Queries] offsetWidth/Height and similar should update layout for container queries
​https://bugs.webkit.org/show_bug.cgi?id=237079

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:

Source/WebCore:

Fix

css/css-contain/container-queries/inline-size-containment.html
css/css-contain/container-queries/inline-size-containment-vertical-rl.html

  • dom/Document.cpp:

(WebCore::Document::updateLayout):

Make iterative instead of recursive.

(WebCore::Document::updateLayoutIfDimensionsOutOfDate):

Check for query containers.
Call local updateLayout instead of the FrameViewLayoutContext one.

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::updateQueryContainerState):

Add protection against infinite layout/invalidation cycle with unstable layouts.

  • style/StyleScope.h:
10:09 AM Changeset in webkit [290379] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bot.

  • imported/blink/svg/paintorder/paintorder.svg:
10:02 AM Changeset in webkit [290378] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Test gardening for [CSS Blending] Non-separable blend modes don't work
​https://bugs.webkit.org/show_bug.cgi?id=131354

LayoutTests/imported/mozilla:

Unreviewed. Relanding with updated fuzzy data.

  • svg/blend-color.svg:
  • svg/blend-hue.svg:
  • svg/blend-luminosity.svg:

LayoutTests:

Unreviewed.

9:50 AM Changeset in webkit [290377] by Andres Gonzalez
  • 6 edits
    2 adds in trunk

Fix for assert crash in AccessibilityRenderObject::visiblePositionForIndex.
​https://bugs.webkit.org/show_bug.cgi?id=236795
rdar://89025180

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/native-text-control-attributed-string.html

In some cases like the one described in the bug, AccessibilityRenderObject::visiblePositionForIndex
is passed an index greater than the length of the text actually contained
in the text control. This triggers this assert that verifies that you can
round-trip from index to VisiblePosition and back to index. This patch
does a bounds check in the index and adjust if necessary.
The test exercise this method through the JS AccessibilityUIElement::attributedStringForRange
for both <input> of type text and password.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionForIndex const):

LayoutTests:

  • accessibility/native-text-control-attributed-string-expected.txt: Added.
  • accessibility/native-text-control-attributed-string.html: Added.
8:35 AM Changeset in webkit [290376] by Kocsen Chung
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.2

8:33 AM Changeset in webkit [290375] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] De-initialize GStreamer before terminating WebProcess
​https://bugs.webkit.org/show_bug.cgi?id=237084

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-23
Reviewed by Carlos Garcia Campos.

Source/WebKit:

Allowing the leak tracer to report/log leaks. There is an issue though, if the UIProcess
exits too early, the leak tracer reporting will be interrupted potentially too early. The
workaround is to have 2 tabs open in the GTK MiniBrowser, closing the one where media
handling and leak tracing was done and keeping the second tab open.

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

Tools:

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild): Do not add extra quotes to GST_TRACERS, this is not supposed
to store paths.

8:09 AM Changeset in webkit [290374] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GTK] Unreviewed, build fix for Debian Stable after r290366

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:

(webKitVideoSinkSetMediaPlayerPrivate):

8:00 AM Changeset in webkit [290373] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

RemoteSampleBufferDisplayLayer::enqueueSample should not change media samples owned by its object heap
​https://bugs.webkit.org/show_bug.cgi?id=237025
<rdar://problem/89343447>

Reviewed by Darin Adler.

Updated ​https://commits.webkit.org/r290358 according comments given during review.

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<std::nullptr_t>::encode):
(IPC::ArgumentCoder<std::nullptr_t>::decode):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:

(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::RemoteVideoFrameObjectHeapProxyProcessor):

  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:

(WebKit::SharedVideoFrameWriter::write):
(WebKit::SharedVideoFrameReader::SharedVideoFrameReader):

  • WebProcess/GPU/webrtc/SharedVideoFrame.h:

(WebKit::SharedVideoFrame::encode const):
(WebKit::SharedVideoFrame::decode):

7:54 AM Changeset in webkit [290372] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore
REGRESSION (r287574): ASSERTION FAILED: !m_impl
!m_shouldEnableAssertions m_impl->wasConstructedOnMainThread() == isMainThread() under WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack()

​https://bugs.webkit.org/show_bug.cgi?id=235168
<rdar://problem/87518939>

Reviewed by Alexey Proskuryakov.

Use runOnMainThread() from within WebCore, as it will dispatch to the correct thread when
running under iOS/WebKitLegacy.

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack):

7:20 AM Changeset in webkit [290371] by commit-queue@webkit.org
  • 4 edits in trunk

Call WKNavigationDelegate.didFailProvisionalNavigation even after a cross-origin navigation with COOP
​https://bugs.webkit.org/show_bug.cgi?id=237071
<rdar://88652375>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-23
Reviewed by Chris Dumez.

Source/WebKit:

There was an assumption that this callback wasn't needed in this case, but it is.
Covered by an API test that verifies the callback is received.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

6:59 AM Changeset in webkit [290370] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GLib] Add missing WebPage.h inclusion in WebProcessGLib.cpp
​https://bugs.webkit.org/show_bug.cgi?id=237081

Unreviewed, adding the WebPage.h header inclusion in WebProcessGLib.cpp
to avoid incomplete-type errors for the WebPage class under a certain
combination of unified sources.

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-02-23

  • WebProcess/glib/WebProcessGLib.cpp:
6:01 AM Changeset in webkit [290369] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Set ssh keepalive in run-jsc-stress-tests
​https://bugs.webkit.org/show_bug.cgi?id=237031

Reviewed by Adrian Perez de Castro.

If a remote goes down after an ssh connection has been established, we
need to be able to detect that. Keep the common ssh config options in
one constant and add ServerAliveInterval=30 to it.

While here, change sshRead to execute ssh directly (instead of
going through the shell). Similarly, don't open-code the read
loop, just call IO.read.

  • Scripts/run-jsc-stress-tests:
5:47 AM Changeset in webkit [290368] by youenn@apple.com
  • 4 edits in trunk/Source

RemoteVideoFrameObjectHeap::getVideoFrameBuffer can use base class pixelBuffer accessor
​https://bugs.webkit.org/show_bug.cgi?id=237020

Reviewed by Kimmo Kinnunen.

Source/WebCore:

No change of behavior.
Covered by existing tests.

  • platform/graphics/cv/VideoFrameCV.h:

(WebCore::VideoFrameC$V::pixelBuffer const: Mark it as final.

Source/WebKit:

Make use of pixelBuffer virtual method to simplify things.
Add a missing early return in case of not found pixel buffer.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::getVideoFrameBuffer):

5:19 AM Changeset in webkit [290367] by commit-queue@webkit.org
  • 4 edits in trunk

Fix GPUP WebGL generator script wrt uninitialised sized span
​https://bugs.webkit.org/show_bug.cgi?id=235889

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-23
Reviewed by Antti Koivisto.
Source/WebKit:

Regenerated.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):

Tools:

Fix the generator. The r290328 only edited the generated files.
Add a other hunk missing from r290175.

  • Scripts/generate-gpup-webgl:
4:27 AM Changeset in webkit [290366] by commit-queue@webkit.org
  • 8 edits
    4 adds in trunk

[GStreamer] Add WebKitDMABufVideoSink
​https://bugs.webkit.org/show_bug.cgi?id=236883

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-02-23
Reviewed by Philippe Normand.

.:

  • Source/cmake/FindGStreamer.cmake:

Also search for gstreamer-allocators-1.0, produce the relevant variables
containing include directories and cflags.

Source/WebCore:

Add custom WebKitDMABufVideoSink sink that is able to accept decoded
dmabuf or raw data in a range of RGB-like or YUV formats.

The sink is pretty straightforward, in large part mirroring the
WebKitGLVideoSink implementation. The formats that (at the moment) we
can correctly handle inside the TextureMapper-based graphics pipeline
are combined with both the dmabuf or raw memory type during the caps
construction. Like the GL counterpart, the received samples are passed
on to the associated MediaPlayerPrivateGStreamer object. The common
integration into the MediaPlayerPrivateGStreamer functionality is
encapsulated into the webKitVideoSinkSetMediaPlayerPrivate() function.

The MediaPlayerPrivateGStreamer implementation will be enhanced later to
properly handle samples conforming to either variant of these caps. But
the idea is that when using this sink, a dmabuf-containing sample will
pass the dmabuf to the graphics subsystem and a raw-data-containing
sample will copy the data into a dmabuf object (created or reused) and
then pass it on.

The WEBKIT_GST_DMABUF_SINK_FORCED_FALLBACK_CAPS_FORMAT environment
variable can be set to specify the desired exclusive format that this
sink should support. This is especially helpful to debug the correct
handling of different RGB or YUV formats inside the graphics pipeline.
When set, only raw data of the specified format is accepted, meaning the
pipeline upstream will perform any necessary conversion of the decoded
data into the desired format. Raw data is then packed into dmabufs and
sent into the pipeline for display, enabling the developer to examine
whether the given format is handled appropriately.

The sink element is registered in registerWebKitGStreamerElements().
This functionality will require The GStreamer allocators library, so the
necessary dependency glue is also provided.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp: Added.

(forcedFallbackCapsFormat):
(webKitDMABufVideoSinkConstructed):
(webKitDMABufVideoSinkFinalize):
(webKitDMABufVideoSinkGetProperty):
(webkit_dmabuf_video_sink_class_init):
(webKitDMABufVideoSinkSetMediaPlayerPrivate):
(webKitDMABufVideoSinkProbePlatform):

  • platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h: Added.
  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp: Added.

(webKitVideoSinkSetMediaPlayerPrivate):

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.h: Added.

Tools:

  • Scripts/webkitpy/style/checker.py:

Add two additional files under the GObject-style exceptions.

4:06 AM WebKitGTK/2.36.x edited by Carlos Garcia Campos
(diff)
4:06 AM Changeset in webkit [290365] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit

Merge r290360 - [GTK][WPE] PlatformDisplay::terminateEglDisplays() is never called
​https://bugs.webkit.org/show_bug.cgi?id=217655

Stop the run loop for GTK and WPE to ensure a normal exit, since we need
atexit handlers to be called to cleanup resources like EGL displays.

Reviewed by Carlos Garcia Campos.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::didClose):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

4:06 AM Changeset in webkit [290364] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore

Merge r290299 - Properly uninitialize EGL display before termination
​https://bugs.webkit.org/show_bug.cgi?id=236766

From the docs [1], if contexts or surfaces associated with display
is current to any thread, they are not released until they
are no longer current as a result of eglMakeCurrent.

So call eglMakeCurrent() to such effect.

[1] ​https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglMakeCurrent.xhtml

Reviewed by Carlos Garcia Campos.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::terminateEGLDisplay):

3:49 AM Changeset in webkit [290363] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps_unittest.py

Use python 3 f-strings in EWS - part 1
​https://bugs.webkit.org/show_bug.cgi?id=237053

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/steps_unittest.py: Used f-strings for formatting.

(ExpectMasterShellCommand.repr):
(BuildStepMixinAdditions._checkSpawnProcess):
(BuildStepMixinAdditions._send_email):
(TestStepNameShouldBeValidIdentifier.test_step_names_are_valid):
(test_success):
(test_unexpected_failure):

Canonical link: ​https://commits.webkit.org/247681@main

3:44 AM Changeset in webkit [290362] by alex
  • 2 edits
    6 deletes in trunk/LayoutTests

Unreviewed test gardening.

These tests had incorrect expected results with failing tests for
glib.

  • platform/glib/TestExpectations:
  • platform/glib/webgl/1.0.3/conformance/context/context-lost-restored-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-s3tc-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/misc/webgl-specific-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt: Removed.
  • platform/glib/webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt: Removed.
3:23 AM WebKitGTK/StableRelease edited by Adrian Perez de Castro
Add 2.36 page (diff)
3:22 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
1:59 AM Changeset in webkit [290361] by commit-queue@webkit.org
  • 12 edits in trunk

Thread safety analysis macros are confusing for non-Lock use-cases
​https://bugs.webkit.org/show_bug.cgi?id=237022

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-23
Reviewed by Chris Dumez.

Source/WebKit:

Use WTF_GUARDED_BY_CAPABILITY instead of WTF_GUARDED_BY_LOCK
for non-lock use-cases.

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:

Source/WTF:

Thread safety analysis proves that a capability is acquired or not acquired.
Change the semantics of thread safety analysis application in WebKit:

Before, we had only one capability, "lock".
After, we have arbitrary amount of capabilities, one of which is "lock".

Add thread safety analysis macros to support non-Lock use-cases better.

Non-lock use-case:
Before:

class WTF_CAPABILITY_LOCK ThreadAssertion { ... };
"WTF::ThreadAssertion is obviously not a lock but we use the lock capability machinery to obtain the analysis support.

It behaves like the lock capability and can be acquired."

After:

class WTF_CAPABILITY("is current") ThreadAssertion { ... };
"WTF::ThreadAssertion has a capability called 'is current' that can be acquired."

The documentation string "lock", "is current" will appear in the compile error messages to clarify the
violations.

  • wtf/ThreadAssertions.h:

(WTF::WTF_ASSERTS_ACQUIRED_CAPABILITY):

  • wtf/ThreadSafetyAnalysis.h:

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration):

  • TestWebKitAPI/Tests/WTF/ThreadAssertionsTest.cpp:

(TestWebKitAPI::WTF_REQUIRES_CAPABILITY):

1:32 AM Changeset in webkit [290360] by Pablo Saavedra
  • 5 edits in trunk/Source/WebKit

[GTK][WPE] PlatformDisplay::terminateEglDisplays() is never called
​https://bugs.webkit.org/show_bug.cgi?id=217655

Stop the run loop for GTK and WPE to ensure a normal exit, since we need
atexit handlers to be called to cleanup resources like EGL displays.

Reviewed by Carlos Garcia Campos.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::didClose):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::stopRunLoop):

1:28 AM Changeset in webkit [290359] by Adrian Perez de Castro
  • 5 edits in trunk/Source/JavaScriptCore

Ensure generated inline assembler that setups segments returns to previous state
​https://bugs.webkit.org/show_bug.cgi?id=236976

Reviewed by Yusuke Suzuki.

Use .previous in inline assembler in order to ensure that mixed emission of assembler
functions and other definitions correctly puts each of them in their rightful sections
in the output object code.

  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerX86Common.cpp:
1:12 AM Changeset in webkit [290358] by youenn@apple.com
  • 11 edits in trunk/Source/WebKit

RemoteSampleBufferDisplayLayer::enqueueSample should not change media samples owned by its object heap
​https://bugs.webkit.org/show_bug.cgi?id=237025

Reviewed by Darin Adler.

From past bugs, it is risky to change CMSampleBuffer dictionaries if they can be used on various threads (encoder, display layer...).
Instead, we create a new MediaSample that is wrapping the same CVPixelBufferRef, on which can safely apply setAsDisplayImmediately.

We introduce SharedVideoFrame as a replacement to RemoteVideoSample.
We beef up SharedVideoFrameWriter and SharedVideoFrameReader to handle any MediaSample,
with specific handling for remote frames, IOSurface frames or other in memory frames.
We make use of SharedVideoFrame in SampleBufferDisplayLayer, which allows to unify enqueueSample and enqueueCV in one IPC message,
which is easier to maintain.

We update call sites that create SharedVideoFrameReader to either take nullptr or a object heap reference when they will need it in the future.

Covered by existing tests.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:
12:50 AM Changeset in webkit [290357] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r289474): [iOS] ASSERTION FAILED: isMainThread() under WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions()
​https://bugs.webkit.org/show_bug.cgi?id=237066
<rdar://problem/89324810>

Reviewed by Chris Dumez.

We no longer need the assertion because the function can be called on non-main thread since r289474, where we
started to abort transactions for suspension on WorkQueue. To avoid confusion, rename mainThreadAbortResult to
suspensionAbortResult.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setSuspensionAbortResult):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::suspensionAbortResult const):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setMainThreadAbortResult): Deleted.
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::mainThreadAbortResult const): Deleted.

12:23 AM Changeset in webkit [290356] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Crash when calling WEBGL_lose_context.loseContext() after the context has been lost
​https://bugs.webkit.org/show_bug.cgi?id=236966

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-23
Reviewed by Dean Jackson.

Source/WebCore:

WebGLRenderingContextBase::forceLostContext() would
try to synthesize a GL error to the underlying
m_context. However, m_context is cleared when a real
context loss happens. This happens for example when we
simulate a GPU status failure or when we create too
many contexts. The m_context is not currently cleared
when the page simulates context lost via WEBGL_lose_contexts.loseContext().

Test: webgl/lose-context-after-context-lost.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::synthesizeGLError):

LayoutTests:

  • webgl/lose-context-after-context-lost-expected.txt: Added.
  • webgl/lose-context-after-context-lost.html: Added.
12:16 AM Changeset in webkit [290355] by youenn@apple.com
  • 7 edits in trunk/Source

Optimize RemoteVideoFrame handling in WebProcess WebRTC pipeline
​https://bugs.webkit.org/show_bug.cgi?id=236970

Reviewed by Eric Carlson.

Source/WebCore:

In case of remote video frame, directly get the remote video frame as a MediaSample in receive side.
On send side, wrap remote video frames as provider-based WebRTC video frames.
LibWebRTCCodecs will optimize the handling of remote frames for hardware encoders and no change will
happen for software encoders.
Covered by existing tests.

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

Source/WebKit:

Fix bug in LibWebRTCCodecsProxy that would make use of shared video frame instead of remote video frame when a shared video frame is available.
Use VideoFrame* as webrtc frame provider for encoding and decoding.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
12:05 AM Changeset in webkit [290354] by youenn@apple.com
  • 5 edits in trunk

Enable WebRTCRemoteVideoFrameEnabled by default in WebKitTestRunner
​https://bugs.webkit.org/show_bug.cgi?id=236969

Reviewed by Eric Carlson.

Tools:

  • WebKitTestRunner/TestOptions.cpp:

LayoutTests:

Disable WebRTCRemoteVideoFrameEnabled for those two tests until we figure out why they fail more with this option.

  • fast/mediastream/getUserMedia-to-canvas-1.html:
  • fast/mediastream/getUserMedia-to-canvas-2.html:
12:04 AM Changeset in webkit [290353] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after 247623@main
​https://bugs.webkit.org/show_bug.cgi?id=237074

  • bindings/js/WebAssemblyCachedScriptSourceProvider.h: Namespace.

Feb 22, 2022:

11:35 PM Changeset in webkit [290352] by Chris Dumez
  • 12 edits in trunk

http/wpt/push-api/onpush-disabled.html fails
​https://bugs.webkit.org/show_bug.cgi?id=236874
<rdar://problem/89176154>

Reviewed by Youenn Fablet.

Source/WebCore:

Before running the test, we would construct a new WKWebView with the Push API setting disabled.
We would then run the test, which would launch a service worker. Normally, we would expect the
service worker to inherit the settings from the WKWebView. However, it was not reliably
happening because the settings for the service worker are stored on the WebProcessPool and
WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess() was selecting a
random WebProcessPool object (the first one returned by processPools()).

To address the issue, we now pass the ProcessIdentifier of the client that requested the
service worker connection so that establishServiceWorkerContextConnectionToNetworkProcess() can
now prioritize the WebProcessPool of that process. Also, as an optimization, we now prioritize
this client process to run the service worker (assuming it is origin-clean).

No new tests, unskipped existing test.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::createContextConnection):

  • workers/service/server/SWServer.h:

Source/WebKit:

Before running the test, we would construct a new WKWebView with the Push API setting disabled.
We would then run the test, which would launch a service worker. Normally, we would expect the
service worker to inherit the settings from the WKWebView. However, it was not reliably
happening because the settings for the service worker are stored on the WebProcessPool and
WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess() was selecting a
random WebProcessPool object (the first one returned by processPools()).

To address the issue, we now pass the ProcessIdentifier of the client that requested the
service worker connection so that establishServiceWorkerContextConnectionToNetworkProcess() can
now prioritize the WebProcessPool of that process. Also, as an optimization, we now prioritize
this client process to run the service worker (assuming it is origin-clean).

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::ensureSWServer):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:

LayoutTests:

Unskip test that should no longer be flaky.

11:23 PM Changeset in webkit [290351] by ntim@apple.com
  • 9 edits in trunk

Use of showModalDialog should appear as a warning in WI console
​https://bugs.webkit.org/show_bug.cgi?id=237046

Reviewed by Devin Rousso and Darin Adler.

Source/WebCore:

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::showModalDialog):

LayoutTests:

Test gardening to take in account new console warning.

  • fast/animation/request-animation-frame-during-modal-expected.txt:
  • fast/dom/Window/open-window-min-size-expected.txt:
  • fast/events/show-modal-dialog-onblur-onfocus-expected.txt:
  • http/tests/cookies/document-cookie-after-showModalDialog-expected.txt:
  • http/tests/security/navigate-when-restoring-cached-page-expected.txt:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2-expected.txt:
11:18 PM Changeset in webkit [290350] by Chris Dumez
  • 37 edits in trunk/Source

Add a URL constructor that takes a String
​https://bugs.webkit.org/show_bug.cgi?id=237068

Reviewed by Darin Adler.

Source/JavaScriptCore:

Adopt the new URL(const String&) constructor.

  • API/JSAPIGlobalObject.mm:

(JSC::computeValidImportSpecifier):

Source/WebCore:

Adopt the new URL(const String&) constructor.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinatorInternal::processAppIdExtension):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::resolveModuleSpecifier):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::ScriptModuleLoader::moduleURL):
(WebCore::ScriptModuleLoader::responseURLFromRequestURL):
(WebCore::ScriptModuleLoader::importModule):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readTerminal):

  • contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::applyToRequest):

  • dom/Document.cpp:

(WebCore::Document::referrer):

  • html/URLInputType.cpp:

(WebCore::URLInputType::typeMismatchFor const):

  • loader/DocumentLoader.cpp:

(WebCore::microsoftTeamsRedirectURL):

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequestQuery):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createResource):

  • loader/archive/mhtml/MHTMLParser.cpp:

(WebCore::MHTMLParser::parseNextPart):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/Quirks.cpp:

(WebCore::isBBCDomain):
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::createFromString):
(WebCore::SecurityOrigin::create):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toURL const):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation const):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest):

  • platform/gtk/SelectionData.cpp:

(WebCore::SelectionData::setURIList):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setHTTPReferrer):

  • platform/network/cf/ResourceErrorCF.cpp:

(WebCore::ResourceError::platformLazyInit):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::didReceiveHeader):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::platformLazyInit):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeString):

  • testing/Internals.cpp:

(WebCore::Internals::sendH2Ping):

Source/WTF:

Add a URL constructor that takes a String to simplify our code base a bit.

  • wtf/URL.cpp:

(WTF::URL::truncatedForUseAsBase const):
(WTF::URL::fakeURLWithRelativePart):
(WTF::URL::fileURLWithFileSystemPath):

  • wtf/URL.h:

(WTF::URL::URL):
(WTF::URL::decode):

10:12 PM Changeset in webkit [290349] by Chris Dumez
  • 26 edits in trunk

Drop StringHasher::hashMemory() and use the modern Hasher instead
​https://bugs.webkit.org/show_bug.cgi?id=237049

Source/WebCore:

Reviewed by Sam Weinig and Darin Adler.

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::add):
(WebCore::IDBResourceIdentifierHash::hash):
(WebCore::IDBResourceIdentifier::hash const): Deleted.

  • dom/Attribute.h:

(WebCore::add):

  • dom/DocumentSharedObjectPool.cpp:

(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
(WebCore::attributeHash): Deleted.

  • dom/QualifiedName.cpp:

(WebCore::QualifiedName::QualifiedNameImpl::computeHash const):

  • dom/QualifiedName.h:

(WebCore::add):
(WebCore::hashComponents): Deleted.

  • dom/QualifiedNameCache.cpp:

(WebCore::QNameComponentsTranslator::hash):

  • page/GlobalWindowIdentifier.h:

(WebCore::add):
(WTF::GlobalWindowIdentifierHash::hash):
(WebCore::GlobalWindowIdentifier::hash const): Deleted.

  • page/SecurityOriginHash.h:

(WebCore::SecurityOriginHash::hash):

  • platform/ScriptExecutionContextIdentifier.h:

(WebCore::add):
(WebCore::ProcessQualified<UUID>::hash const): Deleted.
(WTF::computeHash): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::hash const):

  • platform/graphics/win/FontPlatformDataCGWin.cpp:

(WebCore::FontPlatformData::hash const):

  • svg/SVGElementInlines.h:

(WebCore::SVGAttributeHashTranslator::hash):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::hash const): Deleted.

  • workers/service/ServiceWorkerRegistrationKey.h:

(WebCore::add):
(WTF::ServiceWorkerRegistrationKeyHash::hash):

Source/WebKitLegacy/mac:

Reviewed by Sam Weinig and Darin Adler.

  • History/BinaryPropertyList.cpp:

(add):
(IntegerArrayHash::hash):

Source/WTF:

Reviewed by Sam Weinig and Darin Adler.

  • wtf/SchedulePair.h:

(WTF::SchedulePairHash::hash):

  • wtf/UUID.cpp:

(WTF::UUID::hash const): Deleted.

  • wtf/UUID.h:

(WTF::UUID::isHashTableDeletedValue const):
(WTF::add):
(WTF::UUIDHash::hash):

  • wtf/text/StringHasher.h:

(WTF::StringHasher::hashMemory): Deleted.

Tools:

Reviewed by Sam Weinig.

  • TestWebKitAPI/Tests/WTF/StringHasher.cpp:
10:01 PM Changeset in webkit [290348] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Create a DOMWindow::printWarningMessage method and start using it in DOMWindow.cpp
​https://bugs.webkit.org/show_bug.cgi?id=237047

Reviewed by Darin Adler.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):
(WebCore::DOMWindow::webkitRequestAnimationFrame):
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary):
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary):
(WebCore::DOMWindow::printConsoleMessage const):
(WebCore::DOMWindow::printErrorMessage const):
(WebCore::DOMWindow::printWarningMessage const):

  • page/DOMWindow.h:
9:11 PM Changeset in webkit [290347] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5.1

Tag Safari-614.1.5.1.

8:28 PM Changeset in webkit [290346] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

With DOM Rendering in GPU process, every display results in new IOSurface allocation
​https://bugs.webkit.org/show_bug.cgi?id=237063

Reviewed by Tim Horton.

We have to avoid ImageBufferRemoteIOSurfaceBackends in the web process from hanging on to
an IOSurface MachSendRight (via ImageBufferBackendHandle) all the time, because doing so
makes the IOSurface appear to be in-use, and therefore not eligible for swapping to,
or making volatile. In particular, swapToValidFrontBuffer() would always think
that the surfaces were in-use, resulting in permanent triple-buffering, and
allocation of a new buffer on every swap.

Fix by clearing the ImageBufferBackendHandles of all the buffers in the WP in
RemoteRenderingBackendProxy::swapToValidFrontBuffer(), so that the GPUP can accurately
gauge in-use-ness; we get back a handle to the new front buffer in the reply,
and this is the only one we need to keep hold of, since it gets transferred to
the UI process.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):

8:04 PM Changeset in webkit [290345] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Use non-inline messages for layer volatility-related IPC in RemoteRenderingBackend
​https://bugs.webkit.org/show_bug.cgi?id=237061

Reviewed by Wenson Hsieh.

There appears to be a rare issue where StreamClientConnection::sendSync() can hang sometimes,
which makes it impossible to do an entire MotionMark run (rdar://89313626). So avoid this
by making the MarkSurfaceNonVolatile and SwapToValidFrontBuffer use out-of-line encoding.

  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
7:54 PM Changeset in webkit [290344] by Russell Epstein
  • 9 edits in branches/safari-614.1.5-branch/Source

Versioning.

WebKit-7614.1.5.1

5:54 PM Changeset in webkit [290343] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Further restrict received IPC boolean values to 0 or 1
​https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396

Patch by Simon Lewis <​simon.lewis@apple.com> on 2022-02-22
Reviewed by Chris Dumez.

Return std::nullopt if a value larger than 1 is received.

  • Platform/IPC/ArgumentCoder.h:

(IPC::ArgumentCoder<bool>::decode):

5:34 PM Changeset in webkit [290342] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Share more code between dispatchSessionStorageEvents() and dispatchLocalStorageEvents()
​https://bugs.webkit.org/show_bug.cgi?id=237040

Reviewed by Geoffrey Garen.

  • storage/StorageEventDispatcher.cpp:

(WebCore::dispatchStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::dispatchSessionStorageEventsToWindows): Deleted.
(WebCore::dispatchLocalStorageEventsToWindows): Deleted.

5:26 PM Changeset in webkit [290341] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

CachedResourceLoader::allCachedSVGImages() reparses resource URLs unnecessarily
​https://bugs.webkit.org/show_bug.cgi?id=237002

Reviewed by Darin Adler.

Store URLs in the HashMaps instead of Strings since we have URLs initially and we
need URLs eventually. This avoids having to re-parse the URL unnecessarily, which
is fairly expensive.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::notifyFinished):

  • loader/cache/CachedResourceLoader.h:
4:44 PM Changeset in webkit [290340] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION(r289580): [ iOS macOS ] TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory is a constant timeout
​https://bugs.webkit.org/show_bug.cgi?id=236744

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm: Disable the test.

(TEST):

4:31 PM Changeset in webkit [290339] by Russell Epstein
  • 1 copy in tags/Safari-614.1.5

Tag Safari-614.1.5.

4:27 PM Changeset in webkit [290338] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

PingLoader is failing to call completion handler in error case
​https://bugs.webkit.org/show_bug.cgi?id=237062
<rdar://50157253>

Reviewed by Chris Dumez.

The completion handler was not being called in the case of a PingLoad being redirected to
a non-HTTP(S) scheme.

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::willPerformHTTPRedirection):

4:13 PM Changeset in webkit [290337] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for rdar://86037417.

  • platform/mac-wk2/TestExpectations:
3:36 PM Changeset in webkit [290336] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix watchOS build
​https://bugs.webkit.org/show_bug.cgi?id=237064

Unreviewed.

32-bit devices require some casts.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

3:07 PM Changeset in webkit [290335] by Elliott Williams
  • 4 edits
    1 delete in trunk/Source

Source/WebCore/PAL:
Replace legacy-build-copy-nested-headers.py with an xcodebuild invocation.
​https://bugs.webkit.org/show_bug.cgi?id=237011

Reviewed by Alexey Proskuryakov.

r290260 added a script to approximate how XCBuild copies headers to nested directories, for
use in legacy builds. Instead of that script, invoke xcodebuild -UseNewBuildSystem=YES
directly to copy nested headers to the build products directory. By taking the same
header-copying codepath, legacy builds can handle header edge cases (e.g. multiple headers
with the same basename) exactly as XCBuild does.

The child xcodebuild process saves incremental data to TARGET_TEMP_DIR, so it can rebuild
incrementally without clobbering the legacy build system's incremental data.

Apple production builds do not use the legacy build system, so this change is
engineering-only.

  • PAL.xcodeproj/project.pbxproj:

Source/WTF:
Replace legacy-build-copy-nested-headers.py with an xcodebuild invocation
​https://bugs.webkit.org/show_bug.cgi?id=237011

Reviewed by Alexey Proskuryakov.

  • Scripts/legacy-build-copy-nested-headers.py: Removed.
  • WTF.xcodeproj/project.pbxproj: Remove reference to legacy-build-copy-nested-headers.py.
3:02 PM Changeset in webkit [290334] by Ryan Haddad
  • 4 edits in trunk/Tools

Remove dormant queues from bot watchers dashboard
​https://bugs.webkit.org/show_bug.cgi?id=236809

Reviewed by Alexey Proskuryakov.

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js:
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css:

Canonical link: ​https://commits.webkit.org/247655@main

1:20 PM Changeset in webkit [290333] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo][WK2] animations/background-position.html is timing out
​https://bugs.webkit.org/show_bug.cgi?id=236630

Reviewed by Don Olmstead.

r289848 was a wrong fix causing some test failures. It called the
force repaint completion handler too early if m_waitDidUpdate was
true when the force repaint was requested. In such case, we should
wait for two DidUpdate messages before calling the completion
handler.

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::forceRepaintAsync):
(WebKit::DrawingAreaWC::didUpdate):

  • WebProcess/WebPage/wc/DrawingAreaWC.h:

Added m_isForceRepaintCompletionHandlerDeferred flag.

1:11 PM Changeset in webkit [290332] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Link to GitHub wiki
​https://bugs.webkit.org/show_bug.cgi?id=237048
<rdar://problem/89307995>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.main): Add GitHub wiki link.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

(TestSetup.test_github):

Canonical link: ​https://commits.webkit.org/247653@main

12:59 PM Changeset in webkit [290331] by Angelos Oikonomopoulos
  • 2 edits in trunk/Source/WTF

Ruby ERB.new compatibility fix
​https://bugs.webkit.org/show_bug.cgi?id=237035

Reviewed by Fujii Hironori.

ERB.new has changed its calling convention in newer ruby versions.
This was exposed by ​https://commits.webkit.org/247450@main, which
tried to silence the warning emitted by newer ruby versions.
Unfortunately, this resulted in failures with older ruby versions
(e.g.
​https://build.webkit.org/#/builders/46/builds/11387/steps/8/logs/stdio).

Use the compatibility hack suggested by RuboCop to get this working
across ruby versions (without any warnings).

  • Scripts/GeneratePreferences.rb:
12:54 PM Changeset in webkit [290330] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

null ptr deref via WebXRSystem::requestSession
​https://bugs.webkit.org/show_bug.cgi?id=235916

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-22
Reviewed by Dean Jackson.
Source/WebCore:

WebXRSystem::requestSession() null checks the document's global object via the method
Document::domWindow() and calls WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject()
which dereferences the global object via the method ScriptExecutionContext::globalObject().
The former is just getting a raw pointer from Document::m_domWindow which (once set) remains
non-null until the document is destroyed. The latter instead gets the DOM window via the
document's FrameDestructionObserver::m_frame which is null when document is detached from the
frame. Hence the two methods may disagree, leading to a null ptr deref in
WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject(). This patch works around that
issue by explicitly null checking the result of Document::::globalObject(). Additionally, it
makes the document (and its m_domWindow member) protected earlier in
WebXRSystem::requestSession() i.e. before passing them to potentially complex subroutines
immersiveSessionRequestIsAllowedForGlobalObject() and
inlineSessionRequestIsAllowedForGlobalObject().

Test: webxr/xr-requestSession-crash.html

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject const): null-check
document::globalObject() before deferencing it.
(WebCore::WebXRSystem::requestSession): protect document (and its m_domWindow member).

LayoutTests:

Add non-regression test.

  • webxr/xr-requestSession-crash-expected.txt: Added.
  • webxr/xr-requestSession-crash.html: Added.
12:49 PM Changeset in webkit [290329] by Chris Dumez
  • 114 edits in trunk/Source

Clean up / optimize even more call sites constructing vectors
​https://bugs.webkit.org/show_bug.cgi?id=236852

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::beginPaymentSession):

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::convert):

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::batchPutOperation):

  • Modules/gamepad/Gamepad.cpp:

(WebCore::Gamepad::Gamepad):

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::platformGamepadDisconnected):
(WebCore::GamepadManager::makeGamepadVisible):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::objectStoreNames const):
(WebCore::IDBDatabase::transaction):

  • Modules/indexeddb/IDBKeyData.h:

(WebCore::IDBKeyData::isDeletedValue const):
(WebCore::add):
(WebCore::IDBKeyDataHash::hash):
(WebCore::IDBKeyData::hash const): Deleted.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::indexNames const):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStoreNames const):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::activeRanges const):

  • Modules/mediasource/SampleMap.h:

(WebCore::DecodeOrderSampleMap::size const):

  • Modules/mediasource/SourceBufferList.h:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::getVoices):

  • Modules/speech/cocoa/WebSpeechRecognizerTask.mm:

(-[WebSpeechRecognizerTaskImpl callbackWithTranscriptions:isFinal:]):

  • Modules/speech/cocoa/WebSpeechRecognizerTaskMock.mm:

(-[WebSpeechRecognizerTaskMock audioSamplesAvailable:]):

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):

  • animation/KeyframeEffect.cpp:

(WebCore::processPropertyIndexedKeyframes):

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::ContentExtension):

  • css/CSSValueList.h:

(WebCore::CSSValueList::size const):

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::CSSCalcOperationNode::hoistChildrenWithOperator):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeContainerRule):

  • dom/DOMStringList.h:

(WebCore::DOMStringList::create):
(WebCore::DOMStringList::append):
(WebCore::DOMStringList::DOMStringList):

  • dom/EventPath.cpp:

(WebCore::EventPath::EventPath):

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::cancelFullscreen):

  • dom/LoadableScript.cpp:

(WebCore::LoadableScript::notifyClientFinished):

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroup::members const):

  • html/DirectoryFileListCreator.cpp:

(WebCore::toFileList):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::saveLastSelection):
(WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::detachBitmaps):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getAttachedShaders):

  • html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::processMeta):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::insertPhoneNumberLink):

  • html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::create):

  • loader/appcache/ApplicationCacheManifestParser.cpp:

(WebCore::parseApplicationCacheManifest):

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::deliverObservations):

  • page/TextIndicator.cpp:

(WebCore::initializeIndicator):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::parseSubResourceIntegrityIntoDigests):

  • platform/FileChooser.cpp:

(WebCore::FileChooser::chooseFile):
(WebCore::FileChooser::chooseFiles):
(WebCore::FileChooser::chooseMediaFiles):

  • platform/SharedBuffer.cpp:

(WebCore::FragmentedSharedBuffer::append):

  • platform/ThreadSafeDataBuffer.h:

(WebCore::add):

  • platform/audio/AudioDSPKernelProcessor.cpp:

(WebCore::AudioDSPKernelProcessor::initialize):

  • platform/audio/AudioResampler.cpp:

(WebCore::AudioResampler::AudioResampler):

  • platform/audio/DynamicsCompressorKernel.cpp:

(WebCore::DynamicsCompressorKernel::setNumberOfChannels):

  • platform/audio/MultiChannelResampler.cpp:

(WebCore::MultiChannelResampler::MultiChannelResampler):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::legibleMediaSelectionOptions const):

  • platform/gamepad/mac/Dualshock3HIDGamepad.cpp:

(WebCore::Dualshock3HIDGamepad::Dualshock3HIDGamepad):

  • platform/gamepad/mac/LogitechGamepad.cpp:

(WebCore::LogitechGamepad::LogitechGamepad):

  • platform/gamepad/mac/StadiaHIDGamepad.cpp:

(WebCore::StadiaHIDGamepad::StadiaHIDGamepad):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::addRepaintRect):

  • platform/graphics/PathUtilities.cpp:

(WebCore::PathUtilities::pathsWithShrinkWrappedRects):
(WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::bufferedSamplesForTrackId):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSkd):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::setRequestForKey):

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateKeyStatuses):

  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::frameInfos const):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:

(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::variationAxes const):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::writeString):

  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::setSupportedPresets):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFilesForIndexedDB):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::drawBoxSideFromPath):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::connectClippingStackLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::adjustOverflowScrollbarContainerLayers):

  • rendering/RenderThemeMac.mm:

(WebCore::paintAttachmentTitleBackground):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGStrokePaintingResource):

  • rendering/svg/SVGTextChunk.cpp:

(WebCore::SVGTextChunk::SVGTextChunk):

  • style/PageRuleCollector.cpp:

(WebCore::Style::PageRuleCollector::matchPageRules):

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pop):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertContainerName):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::RemoteSourceBufferProxy::updateTrackIds):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::fetchDiskCacheEntries):

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::getOriginsWithPushAndNotificationPermissions):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::allStorageAreaIdentifiers const):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:

(WebKit::TransientLocalStorageNamespace::origins const):
(WebKit::TransientLocalStorageNamespace::storageAreaIdentifiers const):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::finishOpening):
(WebKit::CacheStorage::Cache::keys const):

  • NetworkProcess/storage/SQLiteStorageArea.cpp:

(WebKit::SQLiteStorageArea::SQLiteStorageArea):

  • Platform/IPC/ArgumentCoders.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):
(API::m_clientNavigationActivity):

  • UIProcess/Cocoa/WKShareSheet.mm:

(appendFilesAsShareableURLs):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::restoreAppHighlightsAndScrollToIndex):

  • UIProcess/FrameLoadState.cpp:

(WebKit::FrameLoadState::didFinishLoad):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::parameters const):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::startDiscovery):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::removeAllItems):
(WebKit::WebBackForwardList::clear):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::removeProcessFromOriginCacheSet):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]):

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::showPaymentUI):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::updateTrackIds):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateDidReceiveInitializationSegment):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::createEncoder):

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFrameState):

  • WebProcess/WebCoreSupport/WebDeviceOrientationUpdateProvider.cpp:

(WebKit::WebDeviceOrientationUpdateProvider::deviceOrientationChanged):
(WebKit::WebDeviceOrientationUpdateProvider::deviceMotionChanged):

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:

(WebKit::WebPasteboardOverrides::overriddenTypes):

  • WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp:

(WebKit::WebSpeechSynthesisClient::voiceList):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::findStringMatches):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::drawRect):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::consumeSandboxExtensions):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleSelectionServiceClick):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::fetchWebsiteData):

Source/WTF:

  • wtf/WorkQueue.cpp:

(WTF::ConcurrentWorkQueue::apply):

  • wtf/cf/LanguageCF.cpp:

(WTF::platformUserPreferredLanguages):

12:45 PM Changeset in webkit [290328] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix GPUP WebGL generator script wrt uninitialised sized span
​https://bugs.webkit.org/show_bug.cgi?id=235889
<rdar://problem/88567612>

Reviewed by Chris Dumez.

Even though we check if the synchronous message was received successfully before using it,
if we didn't check then we might have a problem with pointing to uninitialized memory, which we then wouldn't use for anything.
To fix this hypothetical problem, I start out by pointing to initialized memory.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):

11:53 AM Changeset in webkit [290327] by Kocsen Chung
  • 3 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290317. rdar://problem/89206950

[WebAuthn] Fix lifetime issue on iOS
​https://bugs.webkit.org/show_bug.cgi?id=237018
rdar://89206950

Reviewed by Brent Fulgham.

Lifetime issues introduced in a recent refactor of performRequest were causing
replies from WebAuthenticatorCoordinatorProxy_MakeCredentialReply not to make it
back to the web content process. This patch fixes these, allowing requests to proceed.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::continueAfterRequest): (WebKit::WebAuthenticatorCoordinatorProxy::performRequest): Deleted. (WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable): Deleted. (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): Deleted.
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290317 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:41 AM Changeset in webkit [290326] by Nikolas Zimmermann
  • 13 edits
    2 moves in trunk/Source/WebCore

[LBSE] Rename RenderSVGTransformableContainer -> LegacyRenderSVGTransformableContainer
​https://bugs.webkit.org/show_bug.cgi?id=237023

Reviewed by Rob Buis.

Following the established procedure: rename RenderSVGTransformableContainer -> LegacyRenderSVGTransformableContainer.
In a follow-up patch RenderSVGTransformableContainer will be reintroduced for LBSE, inheriting from
RenderSVGContainer instead of LegacyRenderSVGContainer.

Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderObject.h:

(WebCore::RenderObject::isLegacySVGTransformableContainer const):
(WebCore::RenderObject::isSVGTransformableContainer const): Deleted.

  • rendering/svg/LegacyRenderSVGContainer.cpp:

(WebCore::LegacyRenderSVGContainer::layout):

  • rendering/svg/LegacyRenderSVGContainer.h:
  • rendering/svg/LegacyRenderSVGTransformableContainer.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp.

(WebCore::LegacyRenderSVGTransformableContainer::LegacyRenderSVGTransformableContainer):
(WebCore::LegacyRenderSVGTransformableContainer::calculateLocalTransform):
(WebCore::LegacyRenderSVGTransformableContainer::graphicsElement):

  • rendering/svg/LegacyRenderSVGTransformableContainer.h: Renamed from Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h.
  • rendering/svg/RenderSVGViewportContainer.h:
  • rendering/svg/SVGContainerLayout.cpp:
  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::transformToRootChanged):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::createElementRenderer):

  • svg/SVGGElement.cpp:

(WebCore::SVGGElement::createElementRenderer):

  • svg/SVGSwitchElement.cpp:

(WebCore::SVGSwitchElement::createElementRenderer):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::createElementRenderer):

11:34 AM Changeset in webkit [290325] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] Switch media player to playbin3
​https://bugs.webkit.org/show_bug.cgi?id=236884

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-22
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

With GStreamer 1.20 playbin3 is quite usable now, so give it a try as default playback
engine during the 2.38 cycle. If one wants to opt out, set the WEBKIT_GST_USE_PLAYBIN2
environment variable to 1.

No new tests, covered by existing media layout tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

Tools:

Replace WEBKIT_GST_USE_PLAYBIN3 with WEBKIT_GST_USE_PLAYBIN2 that allows to opt-out of
playbin3, if this is desired.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.setup_environ_for_server):

11:34 AM Changeset in webkit [290324] by Nikolas Zimmermann
  • 3 edits in trunk/Source/WebCore

[LBSE] Activate LBSE for <rect> painting
​https://bugs.webkit.org/show_bug.cgi?id=236194

Reviewed by Rob Buis.

Finally activate LBSE for <rect> elements -- painting <rect> elements
now works as expected in LBSE. Try using MiniBrowser and switch
from legacy engine to LBSE and back -- this now works just fine and
rebuilds the render tree / updates display.

Covered by existing tests, no change in behaviour.

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeStyle):
(WebCore::writeChildren):

  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::createElementRenderer):

11:31 AM Changeset in webkit [290323] by commit-queue@webkit.org
  • 26 edits
    2 adds in trunk

[GStreamer] Initial MediaRecorder implementation
​https://bugs.webkit.org/show_bug.cgi?id=236558

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-22
Reviewed by Xabier Rodriguez-Calvar.

.:

Enable MediaRecorder support if GStreamer >= 1.20 is available.

  • Source/cmake/FindGStreamer.cmake:
  • Source/cmake/GStreamerChecks.cmake:
  • Source/cmake/GStreamerDefinitions.cmake:
  • Source/cmake/GStreamerDependencies.cmake:

Source/WebCore:

Add a MediaRecorder backend based on the GStreamer Transcoder library. We anticipate the
scenario where the GstWebRTC backend might provide encoded streams to the recorder, in which
case transcoding is required. The transcoder library can operate in pass-through as well.

  • CMakeLists.txt:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::isTypeSupported):
(WebCore::MediaRecorder::createMediaRecorderPrivate):

  • Modules/mediarecorder/MediaRecorderProvider.cpp:

(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
(WebCore::MediaRecorderProvider::isSupported):

  • Modules/mediarecorder/MediaRecorderProvider.h:
  • loader/EmptyClients.cpp:
  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstEncodingProfile>):
(WTF::derefGPtr<GstEncodingProfile>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::initializeEncoders):

  • platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp: Added.

(WebCore::MediaRecorderPrivateGStreamer::create):
(WebCore::MediaRecorderPrivateGStreamer::MediaRecorderPrivateGStreamer):
(WebCore::MediaRecorderPrivateGStreamer::~MediaRecorderPrivateGStreamer):
(WebCore::MediaRecorderPrivateGStreamer::startRecording):
(WebCore::MediaRecorderPrivateGStreamer::stopRecording):
(WebCore::MediaRecorderPrivateGStreamer::fetchData):
(WebCore::MediaRecorderPrivateGStreamer::pauseRecording):
(WebCore::MediaRecorderPrivateGStreamer::resumeRecording):
(WebCore::MediaRecorderPrivateGStreamer::mimeType const):
(WebCore::MediaRecorderPrivateGStreamer::isTypeSupported):
(WebCore::MediaRecorderPrivateGStreamer::containerProfile):
(WebCore::MediaRecorderPrivateGStreamer::setSource):
(WebCore::MediaRecorderPrivateGStreamer::setSink):
(WebCore::MediaRecorderPrivateGStreamer::configureVideoEncoder):
(WebCore::MediaRecorderPrivateGStreamer::preparePipeline):
(WebCore::MediaRecorderPrivateGStreamer::processSample):
(WebCore::MediaRecorderPrivateGStreamer::notifyEOS):

  • platform/mediarecorder/MediaRecorderPrivateGStreamer.h: Added.
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcEnsureStreamCollectionPosted):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSignalEndOfStream):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Enable MediaRecorder if it was

enabled at build time in GStreamer ports.

LayoutTests:

Flag the remaining MediaRecorder test failures. Those will be adressed in follow-up patches.

  • http/wpt/mediarecorder/pause-recording.html:
  • platform/glib/TestExpectations:
11:25 AM Changeset in webkit [290322] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Extract revision from git svn dcommit
​https://bugs.webkit.org/show_bug.cgi?id=236849
<rdar://problem/89155179>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): Thoroughly mock dcommit

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main): Extract committed SVN revision from git svn dcommit command to accurately
match landed commits to the pull request that generated them.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:

(repository): Add revision to local commit.

Canonical link: ​https://commits.webkit.org/247644@main

11:04 AM Changeset in webkit [290321] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Hide PDF.js sidebar shown for long documents
​https://bugs.webkit.org/show_bug.cgi?id=236850

Reviewed by Chris Dumez.

Use the built-in PDF.js #pagemode=none parameter to do this: ​https://github.com/mozilla/pdf.js/wiki/Viewer-options

  • html/PDFDocument.cpp:

(WebCore::PDFDocument::createDocumentStructure):

11:02 AM Changeset in webkit [290320] by Antti Koivisto
  • 10 edits in trunk

[CSS container Queries] getComputedStyle should update style for invalid query containers
​https://bugs.webkit.org/show_bug.cgi?id=237038

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::hasValidStyleForProperty):

We always need to update style inside a query container since a change to it may affect descendants.

10:59 AM Changeset in webkit [290319] by Kate Cheney
  • 14 edits in trunk

Authenticated encryption console logging causing performance regressions
​https://bugs.webkit.org/show_bug.cgi?id=236987
<rdar://problem/89108253>

Reviewed by Chris Dumez.

Source/WebCore:

No new tests. Behavior confirmed by existing crypto/subtle tests.

For clients that use repeated unauthenticated AES encryption, console
logging may cause perf issues. We should log the authenticated
encryption warning once per context.

  • crypto/SubtleCrypto.cpp:

(WebCore::SubtleCrypto::addAuthenticatedEncryptionWarningIfNecessary):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::hasLoggedAuthenticatedEncryptionWarning const):
(WebCore::ScriptExecutionContext::setHasLoggedAuthenticatedEncryptionWarning):

LayoutTests:

  • crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt:
  • crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt:
  • crypto/subtle/aes-cbc-generate-key-encrypt-decrypt-expected.txt:
  • crypto/subtle/aes-cbc-import-key-decrypt-expected.txt:
  • crypto/subtle/aes-cbc-import-key-encrypt-expected.txt:
  • crypto/subtle/aes-ctr-encrypt-malformed-parameters-expected.txt:
  • crypto/subtle/aes-ctr-generate-key-encrypt-decrypt-expected.txt:
  • crypto/subtle/aes-ctr-import-key-encrypt-expected.txt:
  • platform/glib/crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt:
  • platform/glib/crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt:
10:29 AM Changeset in webkit [290318] by dino@apple.com
  • 2 edits in trunk/Tools

Filter some build output from JSC
​https://bugs.webkit.org/show_bug.cgi?id=236885

Reviewed by Simon Fraser.

Add some filter rules for recently added output. In particular:

  • whatever prints out the build command
  • python executables now having the version numbers in the binary
  • creating entitlements files
  • Scripts/filter-build-webkit:

(shouldIgnoreLine):

10:21 AM Changeset in webkit [290317] by J Pascoe
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Fix lifetime issue on iOS
​https://bugs.webkit.org/show_bug.cgi?id=237018
rdar://89206950

Reviewed by Brent Fulgham.

Lifetime issues introduced in a recent refactor of performRequest were causing
replies from WebAuthenticatorCoordinatorProxy_MakeCredentialReply not to make it
back to the web content process. This patch fixes these, allowing requests to proceed.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::continueAfterRequest):
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest): Deleted.
(WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable): Deleted.
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): Deleted.

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
9:55 AM Changeset in webkit [290316] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove an unneeded IOKit property
​https://bugs.webkit.org/show_bug.cgi?id=236867
<rdar://47695155>

Reviewed by Per Arne Vollan.

The relevant frameworks that used the IOPlatformUUID IOKit
property have been updated to no longer refer to it. We can
now safely remove it.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:53 AM Changeset in webkit [290315] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebCore

Cherry-pick r290311. rdar://problem/89261425

[Cocoa] Partial rollout of r289946, broke Netflix
​https://bugs.webkit.org/show_bug.cgi?id=237019
<rdar://89261425>

Reviewed by Eric Carlson.

Adopting AVContentKeySupport for AVSampleBufferDisplayLayer broke Netflix playback on Cocoa
ports. Disable that support by hard coding sampleBufferRenderersSupportKeySession() to
return false.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::sampleBufferRenderersSupportKeySession):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290311 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:50 AM Changeset in webkit [290314] by Aditya Keerthi
  • 7 edits in trunk

[iOS] Adopt new _UITextSearching method for range comparison
​https://bugs.webkit.org/show_bug.cgi?id=237012
rdar://88442811

Reviewed by Devin Rousso.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView offsetFromPosition:toPosition:inDocument:]):

Mark deprecation.

(-[WKWebView compareFoundRange:toRange:inDocument:]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView compareFoundRange:toRange:inDocument:]):

Implement the new comparison method using existing offset computation logic.

Tools:

Ensure TestSearchAggregator conforms to _UITextSearchAggregator.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(-[TestSearchAggregator initWithCompletionHandler:]):
(-[TestSearchAggregator allFoundRanges]):
(-[TestSearchAggregator invalidateFoundRange:inDocument:]):
(-[TestSearchAggregator invalidate]):
(textRangesForQueryString):
(-[TestSearchAggregator foundRanges]): Deleted.

9:44 AM Changeset in webkit [290313] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Re-style PDF.js form fields to match PDFKit
​https://bugs.webkit.org/show_bug.cgi?id=237041

Reviewed by Geoffrey Garen.

Remove black border on :hover, only display light blue background on hover, display blue focusring on :focus.

  • Modules/pdfjs-extras/style-cocoa.css:

(.annotationLayer :is():

9:42 AM Changeset in webkit [290312] by commit-queue@webkit.org
  • 4 edits in trunk/Source

When building introspection files, add CMAKE_C_FLAGS to the compiler flags.
​https://bugs.webkit.org/show_bug.cgi?id=232936

Patch by Alexander Kanavin <​alex@linutronix.de> on 2022-02-22
Reviewed by Michael Catanzaro.

g-ir-compiler is using a C compiler internally, so it needs to set
the proper flags for it.

  • PlatformGTK.cmake:
9:11 AM Changeset in webkit [290311] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Partial rollout of r289946, broke Netflix
​https://bugs.webkit.org/show_bug.cgi?id=237019
<rdar://89261425>

Reviewed by Eric Carlson.

Adopting AVContentKeySupport for AVSampleBufferDisplayLayer broke Netflix playback on Cocoa
ports. Disable that support by hard coding sampleBufferRenderersSupportKeySession() to
return false.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::sampleBufferRenderersSupportKeySession):

9:07 AM Changeset in webkit [290310] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: Only compute ariaTreeRows for isTree() objects
​https://bugs.webkit.org/show_bug.cgi?id=236994

Reviewed by Andres Gonzalez.

We only expose AXPropertyName::ARIATreeRows for isTree() objects, but compute it for every object, which is wasteful.

This patch also includes a drive-by fixing of setting AXPropertyName::IsTreeItem. Prior to this patch,
we never set this property. Also, we now only store AXPropertyName::ARIATreeItemContent for isTreeItem() objects.

The AXPropertyName::IsTreeItem fix makes test accessibility/roles-exposed.html closer to passing with ITM enabled.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeRows):
Remove unncessary tab character.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

9:05 AM Changeset in webkit [290309] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: Fix accessibility/aria-current-state-changed-notification.html in isolated tree mode
​https://bugs.webkit.org/show_bug.cgi?id=237014

Reviewed by Chris Fleizach.

We need to update AXPropertyName::CurrentValue when we get a AXCurrentStateChanged notification.

Fixes accessibility/aria-current-state-changed-notification.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:
8:08 AM Changeset in webkit [290308] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for crash in several AX LayoutTests in isolated tree mode.
​https://bugs.webkit.org/show_bug.cgi?id=237015

Reviewed by Chris Dumez.

Follow up to ​https://bugs.webkit.org/show_bug.cgi?id=236748.

The iteration over the object's children has to happen over a copy
because the children vector can change during the traversal of the tree.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):

8:05 AM Changeset in webkit [290307] by youenn@apple.com
  • 4 edits in trunk

http/wpt/mediarecorder/mute-tracks.html fails with WebRTCRemoteVideoFrameEnabled=true
​https://bugs.webkit.org/show_bug.cgi?id=237021

Reviewed by Kimmo Kinnunen.

Source/WebKit:

We were previously creating the black frame but still sending the remote read reference.
On GPUProcess side, we were then encoding the real frame instead of the black/muted frame.
Add a specific muted code path to fix the issue.

Covered by updated test.

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::videoSampleAvailable):

  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:

(WebKit::SharedVideoFrameReader::read):

LayoutTests:

  • http/wpt/mediarecorder/mute-tracks.html:
7:45 AM Changeset in webkit [290306] by ntim@apple.com
  • 14 edits
    6 adds in trunk

Make pointer-events checks for SVG take in account inert subtrees
​https://bugs.webkit.org/show_bug.cgi?id=235836

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Added tests for both inert attribute & modal dialog cases.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html: Added.
  • web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-svg-hittest.tentative.html: Added.

Source/WebCore:

Re-using visibleToHitTesting in SVG code isn't possible, because visibleToHitTesting removes visibility: hidden;
content from hit-testing, which we do not want to here, since pointer-events has values for SVG which still
allow clicking content regardless of their visibility value (pointer-events: painted/fill/stroke/all).

Instead, we add an inert-aware effectivePointerEvents, similar to effectiveUserSelect and re-use that across the codebase.

Tests: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html

imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderElement.h:

(WebCore::RenderElement::visibleToHitTesting const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerStyleChanged):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectivePointerEvents const):

  • rendering/svg/LegacyRenderSVGModelObject.cpp:

(WebCore::LegacyRenderSVGModelObject::checkIntersection):
(WebCore::LegacyRenderSVGModelObject::checkEnclosure):

  • rendering/svg/LegacyRenderSVGShape.cpp:

(WebCore::LegacyRenderSVGShape::nodeAtFloatPoint):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::nodeAtFloatPoint):

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::checkIntersection):
(WebCore::RenderSVGModelObject::checkEnclosure):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::nodeAtPoint):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::nodeAtFloatPoint):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::nodeAtPoint):

LayoutTests:

iOS doesn't support test_actions, so it needs different baselines.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt: Added.
7:42 AM Changeset in webkit [290305] by ntim@apple.com
  • 12 edits in trunk/Source

Rename RenderStyle::userSelectIncludingInert to RenderStyle::effectiveUserSelect
​https://bugs.webkit.org/show_bug.cgi?id=237033

Reviewed by Antti Koivisto.

This naming is consistent with other properties (effectiveDisplay/Appearance/PointerEvents/etc.).

Source/WebCore:

  • dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::canStartSelection const):

  • dom/Position.cpp:

(WebCore::Position::nodeIsUserSelectNone):
(WebCore::Position::nodeIsUserSelectAll):

  • page/EventHandler.cpp:

(WebCore::EventHandler::canMouseDownStartSelect):
(WebCore::EventHandler::selectCursor):

  • page/Frame.cpp:

(WebCore::Frame::rangeForPoint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionBackgroundColor const):
(WebCore::RenderElement::selectionColor const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::collectSelectionGeometriesInternal):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectiveUserSelect const):
(WebCore::RenderStyle::userSelectIncludingInert const): Deleted.

Source/WebKit:

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::isSelectableTextNode const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::selectionPositionInformation):

7:33 AM Changeset in webkit [290304] by Chris Dumez
  • 31 edits in trunk/Source

Move service worker and push API preference from RuntimeEnabledFeatures to Settings
​https://bugs.webkit.org/show_bug.cgi?id=236989

Reviewed by Youenn Fablet.

Move service worker and push API preference from RuntimeEnabledFeatures to Settings, since RuntimeEnabledFeatures is deprecated.

Source/WebCore:

  • Modules/push-api/PushEvent.idl:
  • Modules/push-api/PushManager.idl:
  • Modules/push-api/PushMessageData.idl:
  • Modules/push-api/PushSubscription.idl:
  • Modules/push-api/PushSubscriptionChangeEvent.idl:
  • Modules/push-api/PushSubscriptionOptions.idl:
  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
  • Modules/push-api/ServiceWorkerRegistration+PushAPI.idl:
  • dom/Document.cpp:

(WebCore::Document::suspend):
(WebCore::Document::resume):
(WebCore::Document::finishedParsing):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::unregisterReservedServiceWorkerClient):
(WebCore::DocumentLoader::loadMainResource):

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::serviceWorker):

  • page/NavigatorServiceWorker.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::pushAPIEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setPushAPIEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::serviceWorkerEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setServiceWorkerEnabled): Deleted.

  • workers/service/ExtendableEvent.idl:
  • workers/service/ExtendableMessageEvent.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClients.idl:
  • workers/service/ServiceWorkerContainer.idl:
  • workers/service/ServiceWorkerGlobalScope.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/service/ServiceWorkerWindowClient.idl:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _serviceWorkersEnabled:]):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnection):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateThrottleState):
(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
7:16 AM Changeset in webkit [290303] by Jonathan Bedard
  • 6 edits in trunk/LayoutTests

Unreviewed, reverting r290220.

Tests still fail with with fuzzy data

Reverted changeset:

"Test gardening for [CSS Blending] Non-separable blend modes
don't work"
​https://bugs.webkit.org/show_bug.cgi?id=131354
​https://commits.webkit.org/r290220

6:10 AM Changeset in webkit [290302] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update FDO junction for GDB 11.x
​https://bugs.webkit.org/show_bug.cgi?id=236979

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-22
Reviewed by Adrian Perez de Castro.

  • elements/freedesktop-sdk.bst: gdb 10 is crashy in the current SDK, but was fixed in the

upstream FDO SDK, by updating to the 11.x version.

5:35 AM Changeset in webkit [290301] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

Permission API: handle non-fully active documents
​https://bugs.webkit.org/show_bug.cgi?id=236952

LayoutTests/imported/w3c:

Web Platform Test
​https://github.com/web-platform-tests/wpt/pull/32921

Patch by Marcos Caceres <Marcos Caceres> on 2022-02-22
Reviewed by Youenn Fablet.

  • web-platform-tests/permissions/non-fully-active.https-expected.txt: Added.
  • web-platform-tests/permissions/non-fully-active.https.html: Added.
  • web-platform-tests/permissions/resources/empty.html: Added.

Source/WebCore:

Spec change:
​https://github.com/w3c/permissions/pull/365

Patch by Marcos Caceres <Marcos Caceres> on 2022-02-22
Reviewed by Youenn Fablet.

Test: imported/w3c/web-platform-tests/permissions/non-fully-active.https.html

  • Modules/permissions/PermissionStatus.cpp:

(WebCore::PermissionStatus::stateChanged):

  • Modules/permissions/Permissions.cpp:

(WebCore::Permissions::query):

5:21 AM Changeset in webkit [290300] by commit-queue@webkit.org
  • 25 edits
    1 copy
    70 adds in trunk

Initial support for Wasm/ESM-integration in the WebCore module loader
​https://bugs.webkit.org/show_bug.cgi?id=236268

Patch by Asumu Takikawa <​asumu@igalia.com> on 2022-02-22
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Add test suite for Wasm/ESM integration proposal to WPT Wasm WebAPI
tests.

  • web-platform-tests/wasm/webapi/esm-integration/execute-start.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/execute-start.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/exported-names.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/exported-names.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/invalid-bytecode.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/invalid-bytecode.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/js-wasm-cycle.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/module-parse-error.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/module-parse-error.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resolve-export.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resolve-export.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resolve-export.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/execute-start.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/exported-names.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/invalid-bytecode.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/invalid-module.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle.js: Added.

(f):

  • web-platform-tests/wasm/webapi/esm-integration/resources/js-wasm-cycle.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/log.js: Added.

(export.logExec):

  • web-platform-tests/wasm/webapi/esm-integration/resources/resolve-export.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-export-i64-global.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-export-to-wasm.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-error-from-wasm.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-from-wasm.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-func.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-func.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-global.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-global.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-memory.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-memory.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-table.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-import-table.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-js-cycle.js: Added.

(let.jsFunc):
(export.mutateBindings):

  • web-platform-tests/wasm/webapi/esm-integration/resources/wasm-js-cycle.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/worker-helper.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/worker.js: Added.
  • web-platform-tests/wasm/webapi/esm-integration/resources/worker.wasm: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-import.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-js-cycle.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-js-cycle.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker-import.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker-import.tentative.html: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker.tentative-expected.txt: Added.
  • web-platform-tests/wasm/webapi/esm-integration/worker.tentative.html: Added.

Source/JavaScriptCore:

Adjust WebAssemblySourceProvider to inherit from a new abstract base
class that exposes the data as a pointer and size, to allow
implementations other than a Vector. Also add initialization
and cleanup methods managed by RAII class.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • parser/SourceProvider.cpp:

(JSC::BaseWebAssemblySourceProvider::BaseWebAssemblySourceProvider):

  • parser/SourceProvider.h:

(JSC::BaseWebAssemblySourceProvider::lockUnderlyingBuffer):
(JSC::BaseWebAssemblySourceProvider::unlockUnderlyingBuffer):
(JSC::WebAssemblySourceProviderBufferGuard::WebAssemblySourceProviderBufferGuard):
(JSC::WebAssemblySourceProviderBufferGuard::~WebAssemblySourceProviderBufferGuard):

  • runtime/CachedTypes.cpp:

(JSC::CachedWebAssemblySourceProvider::encode):

  • tools/JSDollarVM.cpp:
  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):
(JSC::createSourceBufferFromValue):

Source/WebCore:

Add initial WebAssembly script support for WebCore module loading. It
does not yet support Wasm scripts in workers. Detection of Wasm
modules is currently done by MIME type, not by import assertions.

  • Headers.cmake:
  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::hasWasmMIMEType const):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateModule):

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):
(WebCore::ScriptModuleLoader::notifyFinished):

  • bindings/js/ScriptModuleLoader.h:
  • bindings/js/WebAssemblyCachedScriptSourceProvider.h: Added.
  • bindings/js/WebAssemblyScriptSourceCode.h: Copied from Source/JavaScriptCore/parser/SourceProvider.cpp.

(WebCore::WebAssemblyScriptSourceCode::WebAssemblyScriptSourceCode):
(WebCore::WebAssemblyScriptSourceCode::jsSourceCode const):

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedWebAssemblyMIMEType):

  • platform/MIMETypeRegistry.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::evaluateModule):

  • workers/WorkerOrWorkletScriptController.h:

Source/WTF:

Add preference flag for Wasm/ESM Integration.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Add Wasm module MIME type for HTTP tests, and add tests.

  • http/conf/mime.types:
  • http/tests/wasm/resources/empty-module.wasm: Added.
  • http/tests/wasm/wasm-esm-disabled-with-setting-expected.txt: Added.
  • http/tests/wasm/wasm-esm-disabled-with-setting.html: Added.
2:29 AM Changeset in webkit [290299] by Pablo Saavedra
  • 2 edits in trunk/Source/WebCore

Properly uninitialize EGL display before termination
​https://bugs.webkit.org/show_bug.cgi?id=236766

From the docs [1], if contexts or surfaces associated with display
is current to any thread, they are not released until they
are no longer current as a result of eglMakeCurrent.

So call eglMakeCurrent() to such effect.

[1] ​https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglMakeCurrent.xhtml

Reviewed by Carlos Garcia Campos.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::terminateEGLDisplay):

2:25 AM Changeset in webkit [290298] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Guard against dead remotes in numberOfProcessors
​https://bugs.webkit.org/show_bug.cgi?id=236643

Reviewed by Adrian Perez de Castro.

Instead of using only the first remote (and then defaulting to 1 when
it happens to not respond), try all the remotes in sequence.

Also, instead of trying the sysctl version on all hosts first and
only try nproc after sysctl has failed on all hosts, combine
sysctl and nproc in one command to speed things along.

This change also removes the numProcessors == 0 typo in the rescue
path.

  • Scripts/run-jsc-stress-tests:
2:14 AM Changeset in webkit [290297] by ysuzuki@apple.com
  • 6 edits in trunk

[JSC] ShadowRealm JSRemoteFunction creation should convert CopyNameAndLength errors to TypeError
​https://bugs.webkit.org/show_bug.cgi?id=237007

Reviewed by Alexey Shvayka.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

  1. Rename JSRemoteFunction::create to tryCreate since it can throw an error.
  2. Passing JSGlobalObject* as a first parameter to JSRemoteFunction::tryCreate since it can throw an error.
  3. Extract CopyNameAndLength part and convert errors to TypeError as specified.
  • jit/JITOperations.cpp:

(JSC::getWrappedValue):
(JSC::JSC_DEFINE_JIT_OPERATION):

  • runtime/JSRemoteFunction.cpp:

(JSC::wrapValue):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSRemoteFunction::tryCreate):
(JSC::JSRemoteFunction::copyNameAndLength):
(JSC::JSRemoteFunction::finishCreation):
(JSC::JSRemoteFunction::create): Deleted.

  • runtime/JSRemoteFunction.h:
2:08 AM Changeset in webkit [290296] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] TypeError from JSRemoteFunction should be generated by JSRemoteFunction's JSGlobalObject
​https://bugs.webkit.org/show_bug.cgi?id=237013

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

Our unwinding converts any errors inside JSRemoteFunction to TypeError. At that time, we should
use JSRemoteFunction's JSGlobalObject for this type error.

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator() const):
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):

1:57 AM WebKitGTK/2.36.x created by Carlos Garcia Campos
1:57 AM WebKitGTK/2.34.x edited by Carlos Garcia Campos
(diff)
1:47 AM Changeset in webkit [290295] by Chris Dumez
  • 18 edits in trunk/Source

Avoid having to iterate the whole frame tree(s) every time we need to dispatch storage events
​https://bugs.webkit.org/show_bug.cgi?id=236985

Reviewed by Darin Adler.

Avoid having to iterate the whole frame tree(s) every time we need to dispatch storage events,
by keeping track of window objects interested in storage events. A Window object is interested
in storage events if both of the following conditions is true:

  1. It has a Storage object (either localStorage or sessionStorage)
  2. It has a storage event listener registered.

This patch also refactors the code so that we share more logic between WebKit1 and WebKit2.

Source/WebCore:

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
(WebCore::InspectorDOMStorageAgent::clearDOMStorageItems):

  • loader/EmptyClients.cpp:
  • page/DOMWindow.cpp:

(WebCore::windowsInterestedInStorageEvents):
(WebCore::DOMWindow::forEachWindowInterestedInStorageEvents):
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::eventListenersDidChange):

  • page/DOMWindow.h:
  • page/DOMWindowProperty.h:
  • storage/Storage.cpp:

(WebCore::Storage::setItem):
(WebCore::Storage::removeItem):
(WebCore::Storage::clear):

  • storage/StorageArea.h:
  • storage/StorageEventDispatcher.cpp:

(WebCore::dispatchSessionStorageEventsToWindows):
(WebCore::dispatchLocalStorageEventsToWindows):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames): Deleted.
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames): Deleted.

  • storage/StorageEventDispatcher.h:

Source/WebKit:

  • WebProcess/WebStorage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):

  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
(WebKit::framesForEventDispatching): Deleted.

  • WebProcess/WebStorage/StorageAreaMap.h:

Source/WebKitLegacy:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::dispatchStorageEvent):

  • Storage/StorageAreaImpl.h:
1:42 AM Changeset in webkit [290294] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.36

Branch WebKitGTK for 2.36

1:24 AM Changeset in webkit [290293] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK] Can't run performance tests due to a11y errors
​https://bugs.webkit.org/show_bug.cgi?id=230705

Reviewed by Sergio Villar Senin.

Disable a11y in WTR since it's no longer nedded with ATSPI.

  • WebKitTestRunner/gtk/main.cpp:

(main):

  • WebKitTestRunner/wpe/main.cpp:

(main):

1:05 AM Changeset in webkit [290292] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

NSSharingServicePicker gets deallocated when using the standard share menu item
​https://bugs.webkit.org/show_bug.cgi?id=236998
<rdar://problem/89174827>

Reviewed by Wenson Hsieh.

The NSMenuItem should keep the NSSharingServicePicker alive.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getShareMenuItem):

12:47 AM Changeset in webkit [290291] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit

[GTK][WPE] Suspend web process after some time in the process cache
​https://bugs.webkit.org/show_bug.cgi?id=236971

Reviewed by Michael Catanzaro.

Implement platformSuspendProcess() and platformResumeProcess() for GTK and WPE ports.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::addProcess):
(WebKit::WebProcessCache::CachedProcess::CachedProcess):
(WebKit::WebProcessCache::CachedProcess::~CachedProcess):
(WebKit::WebProcessCache::CachedProcess::takeProcess):

  • UIProcess/WebProcessCache.h:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

Feb 21, 2022:

10:53 PM Changeset in webkit [290290] by rmorisset@apple.com
  • 20 edits
    1 add
    1 delete in trunk/Source

[JSC] Format the output of --reportTotalPhaseTimes=1 more nicely
​https://bugs.webkit.org/show_bug.cgi?id=237005

Reviewed by Saam Barati.

Source/JavaScriptCore:

Before this patch:
[B3] moveConstants total ms: 64.307583 max ms: 1.703167
[B3] lowerToAir total ms: 151.297782 max ms: 5.426375
[B3] generateToAir total ms: 1623.987166 max ms: 92.826750
[B3] simplifyCFG total ms: 11.760463 max ms: 1.088083
[B3] Air::lowerMacros total ms: 5.975679 max ms: 0.382000

After this patch:
total ms: 66.328 max ms: 2.283 [B3] moveConstants
total ms: 148.097 max ms: 5.361 [B3] lowerToAir
total ms: 1619.115 max ms: 96.307 [Total B3] generateToAir
total ms: 11.959 max ms: 1.185 [Air] simplifyCFG
total ms: 6.519 max ms: 0.697 [Air] Air::lowerMacros

Concretely there are two changes:

  • use FixedWidthDouble (also introduced to WTF in this patch) to line-up the total times. This makes it possible to see at a glance which phases are worth optimizing and which aren't.
  • Tag phases more precisely, and in particular replace [B3] by [Air] where relevant, and give different tags to measurements that correspond to groups of phases instead of a single phase (e.g. generateToAir).

(JSC::B3::compile):

  • b3/B3FixSSA.cpp:
  • b3/B3Generate.cpp:

(JSC::B3::prepareForGeneration):
(JSC::B3::generateToAir):

  • b3/B3PhaseScope.cpp:

(JSC::B3::PhaseScope::PhaseScope):

  • b3/B3PhaseScope.h:
  • b3/B3TimingScope.h: Removed.

(JSC::B3::TimingScope::TimingScope): Deleted.

  • b3/B3VariableLiveness.cpp:

(JSC::B3::VariableLiveness::VariableLiveness):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):

  • b3/air/AirLiveness.h:

(JSC::B3::Air::Liveness::Liveness):

  • b3/air/AirPhaseScope.cpp:

(JSC::B3::Air::PhaseScope::PhaseScope):

  • b3/air/AirPhaseScope.h:
  • tools/CompilerTimingScope.cpp:

Source/WTF:

Add FixedWidthDouble, which allows easily printing a double with some whitespace to pad it out if it is smaller than expected.
Its design roughly follows RawPointer which similarly allows special formatting of a kind of number.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/FixedWidthDouble.h: Added.

(WTF::FixedWidthDouble::FixedWidthDouble):
(WTF::FixedWidthDouble::value const):
(WTF::FixedWidthDouble::width const):
(WTF::FixedWidthDouble::precision const):

  • wtf/PrintStream.cpp:

(WTF::printInternal):

  • wtf/PrintStream.h:
10:43 PM Changeset in webkit [290289] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Use ArgumentParser for parsing args in generate-compile-commands
​https://bugs.webkit.org/show_bug.cgi?id=236995

Patch by Brandon Stewart <Brandon> on 2022-02-21
Reviewed by Alexey Proskuryakov.

Use argument parser instead of sys.argv[1] for getting build dir.

  • Scripts/generate-compile-commands:
8:57 PM Changeset in webkit [290288] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Allow adattributiond to start on iOS devices
​https://bugs.webkit.org/show_bug.cgi?id=237009
<rdar://89062166>

Reviewed by Per Arne Vollan.

There were three more problems preventing it from starting:

  1. The code signature said to look for a sandbox profile with "webkit" in the name, but the profile had "WebKit" in the name. These names are case sensitive.
  2. The sandbox profile would not let it load the WebKit framework, so dyld would fail and the process would fail to launch. I added the framework directories that the XPC services are allowed to access.
  3. Once it started, it would crash inside WTF::initializeMainThread when calling WTF::pageSize which requires access to the hw.pagesize_compat syscall. As a starting point, I'm going to allow all the syscalls that the network process currently has access to, which is enough to get it to respond without crashing.
  4. We need access to com.apple.diagnosticd and com.apple.analyticsd in order to be able to generate crash reports. This is quite useful.

Yes, I know I said there were only three problems, but the 4th is so useful I thought I'd put it in the list.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
  • Scripts/process-entitlements.sh:
8:57 PM Changeset in webkit [290287] by achristensen@apple.com
  • 6 edits in trunk/Source

Improve const correctness for SecurityOrigin accessors
​https://bugs.webkit.org/show_bug.cgi?id=236983

Reviewed by Chris Dumez.

Source/WebCore:

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::origin const):
(WebCore::CachedResource::origin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::origin const):
(WebCore::CachedResourceRequest::origin):

Source/WebKit:

  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::origin const):
(WebKit::WebNotification::origin):

8:03 PM Changeset in webkit [290286] by Wenson Hsieh
  • 14 edits in trunk

[iOS] Adjust some behaviors around the "Markup Image" action in the callout bar
​https://bugs.webkit.org/show_bug.cgi?id=236980

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the following behaviors around the "Markup Image" callout bar item on iOS:

  1. The item should be present as long as the selection range contains a single image item (not only if the

selection range exactly encompasses a single image element.

  1. The item should appear in the callout bar before other WebKit-client-provided menu controller items.

This patch also adds a new API test to exercise these behaviors and, in doing so, also refactors logic around
determining whether or not to show this item so that it's dependent on a WebKit internal feature instead of just
the system feature flag (with the default value of the internal feature being equal to whether or not the system
feature is enabled). This means we can run tests for these features without requiring the system feature flag to
be enabled.

See below for more details.

Test: ImageAnalysisTests.MenuControllerItems

  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::makeTextRecognitionResult):

Drive-by fix for some API tests: only attempt to send the platform image analysis result over IPC if it is a
VKCImageAnalysis. In some API tests, we use mock objects here instead, which currently causes the IPC message
send to fail due to encoding failure.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::defaultImageAnalysisMarkupEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Make the new internal feature flag default to the system feature flag.

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):

Consult a new delegate method (-actionSheetAssistantShouldIncludeCopyCroppedImageAction:) instead of checking
the system feature flag directly.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView updateImageAnalysisMarkupMenuItems:]):

Append the "Markup Image" item at the start of the list of additional menu items.

(-[WKContentView canPerformImageAnalysisMarkup]):

Check the internal feature instead of the system feature flag.

(-[WKContentView performImageAnalysisMarkup:]):

Now that this action can be triggered even when the current selection doens't encompass only a single image, we
need to use replaceWithPasteboardData() instead, passing in the element context of the image element we want
to replace.

(-[WKContentView actionSheetAssistantShouldIncludeCopyCroppedImageAction:]):

Only attempt to show the new items if the internal feature is enabled. Consulted by WKActionSheetAssistant
above.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

Check the internal feature instead of the system feature flag.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

Make a minor adjustment here to bail early only if we find multiple image elements in the selected range,
rather than bailing if we find anything that's not an image element.

Source/WTF:

Add a WebKit internal feature flag to control whether or not the "Markup Image" and related "Copy Cropped Image"
menu items should be enabled on iOS and macOS. This enables us to test these features in API and layout tests
without requiring the corresponding system feature flag to be enabled.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Add an API test to verify that "Markup Image" appears as the first non-default callout bar item when a single
image element is in the selection range. The test is comprised of three parts:

  1. Select just a single image, and expect the "Markup Image" item.
  2. Select all images in the document, and expect no "Markup Image" item.
  3. Select a single image and some surrounding text, and expect the "Markup Image" item.

See WebKit/ChangeLog for more details.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::createWebViewWithTextRecognitionEnhancements):
(TestWebKitAPI::swizzledSetMenuItems):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:

Add some text before and after each image so that we can select a single image alongside some text, and exercise
the changes in WebPage::getPlatformEditorState (see WebKit changes for more information).

7:57 PM Changeset in webkit [290285] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Ensure layer has backing during traversal
​https://bugs.webkit.org/show_bug.cgi?id=236858

Patch by Brandon Stewart <Brandon> on 2022-02-21
Reviewed by Simon Fraser.

Ensure the layer has a backing attached to it before trying to append
the node id.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::collectStationaryLayerRelatedOverflowNodes):

7:36 PM Changeset in webkit [290284] by Cameron McCormack
  • 22 edits
    3 adds in trunk

Make input element UA shadow tree creation lazy
​https://bugs.webkit.org/show_bug.cgi?id=236747

Reviewed by Aditya Keerthi.

Source/WebCore:

We currently delay InputType creation for parser inserted elements until
just after the attributes have been set, so that we don't wastefully
create an InputType and the UA shadow tree creation if a non-text
type="" was specified on the tag. We don't do anything similar for
script inserted input elements. We could make the InputType creation
lazy, but most of the wasted time is due to the shadow tree creation.

This patch makes InputType shadow tree creation lazy by delaying it
until one of the following happens:

  1. the element is inserted into the document
  2. the type="" or value="" attributes are changed before the element is inserted into the document
  3. any DOM methods that need access to the innerTextElement() are called on the element before the element is inserted into the document

Not all places where we call innerTextElement() on the
HTMLInputElement are safe to lazily create the shadow trees, so we
have two accessors:

  • innerTextElement() returns the inner text element if it's been created already
  • innerTextElementCreatingShadowSubtreeIfNeeded will perform the lazy shadow tree construction if it hasn't already been done

Since the existing
createShadowSubtreeAndUpdateInnerTextElementEditability function has
more responsibility than just creating the subtree and ensuring the
editability is set appropriately, it's renamed to a more manageable
createShadowSubtree.

This change is a 0.5% progression on Speedometer 2.

Test: fast/forms/lazy-shadow-tree-creation.html

  • html/BaseDateAndTimeInputType.h:
  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/ColorInputType.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/FileInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::createShadowSubtree):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/RangeInputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/SearchInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed createShadowSubtreeAndUpdateInnerTextElementEditability to
createShadowSubtree and remove the "isInnerTextElementEditable"
argument, since we can ask the element() for its value if needed.
createShadowSubtree is now also responsible for creating the shadow
root.

  • html/TextFieldInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed. Ensure all shadow tree state is up to date now that it can be
created later.

  • html/InputType.h:
  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::hasCreatedShadowSubtree const):
New functions to create the shadow subtree if it hasn't been done
already, and to query whether it's been done.

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::innerTextElementCreatingShadowSubtreeIfNeeded):

  • html/HTMLTextAreaElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::innerTextElementCreatingShadowSubtreeIfNeeded):

  • html/HTMLTextFormControlElement.h:
  • html/InputType.h:
  • html/InputType.cpp:

(WebCore::InputType::innerTextElementCreatingShadowSubtreeIfNeeded):
New functions to first create the shadow subtree before returning
innerTextElement(). HTMLTextAreaElement never lazily creates its
shadow subtree and so just returns innerTextElement().

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
Deleted. Just call through to m_inputType->createShadowTree()
directly.

(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::updateType):
Don't immediately create the shadow tree.

(WebCore::HTMLInputElement::didFinishInsertingNode):
Create the shadow subtree now that the element's been inserted. No
need to call dataListMayHaveChanged since
TextFieldInputType::createShadowSubtree will now do this.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::updateInnerTextValue):
Ensure the shadow subtree is created since we need to poke at it.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::forwardEvent):
Don't forward the event if the shadow tree hasn't been created yet.

(WebCore::HTMLTextFormControlElement::setSelectionRange):
Ensure the shadow tree has been created. This is needed if the
selection APIs are called on the input element before it's inserted
into the document.

(WebCore::HTMLTextFormControlElement::visiblePositionForIndex const):
Assert that the shadow tree has been created, since editing
functionality should only be needed if the element's been inserted
into the document.

(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Ensure the shadow tree has been created.

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
(WebCore::RangeInputType::handleKeydownEvent):
Ensure the shadow tree has been created in case the event will change
the value.

(WebCore::RangeInputType::sliderTrackElement const):
Only return the element if it's been created.

(WebCore::RangeInputType::typedSliderThumbElement const):
Assert that the element has been created.

(WebCore::RangeInputType::dataListMayHaveChanged):
Only try to re-layout if the shadow tree has been created.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::isEmptyValue const):
Avoid creating the shadow subtree.

(WebCore::TextFieldInputType::forwardEvent):
Move the element assertion up to be consistent with other functions.

(WebCore::TextFieldInputType::innerTextElement const):
Don't assert, since this now can legitimately return null.

  • html/FileInputType.cpp:

(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::disabledStateChanged):
(WebCore::RangeInputType::attributeChanged):
(WebCore::RangeInputType::setValue):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::disabledStateChanged):
(WebCore::TextFieldInputType::readOnlyStateChanged):
(WebCore::TextFieldInputType::updatePlaceholderText):
(WebCore::TextFieldInputType::updateAutoFillButton):
(WebCore::TextFieldInputType::dataListMayHaveChanged):
Don't update the shadow tree contents if it hasn't been created yet.
createShadowTree is responsible for ensuring it creates the shadow
tree contents reflecting the current state.

LayoutTests:

  • fast/forms/lazy-shadow-tree-creation-expected.html: Added.
  • fast/forms/lazy-shadow-tree-creation.html: Added.
  • fast/forms/lazy-shadow-tree-creation.js: Added.

(supportsType):
(makeAndAppendInput):

6:16 PM Changeset in webkit [290283] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Fix ShadowRealm unwinding
​https://bugs.webkit.org/show_bug.cgi?id=237001

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch fixes a crash bug found by test262. Regardless of it is RemoteFunction,
we should handle it as the same way to the other normal host functions except
for setting m_seenRemoteFunction = true flag. Previously, we are early returning,
this is wrong since we should stop unwinding if the caller is entry frame.

  • interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::operator() const):

6:12 PM Changeset in webkit [290282] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Temporal.PlainDate should validate input range
​https://bugs.webkit.org/show_bug.cgi?id=236936

Reviewed by Darin Adler.

JSTests:

  • stress/temporal-plaindate.js:

(shouldThrow):

Source/JavaScriptCore:

Implement ​https://tc39.es/proposal-temporal/#sec-temporal-isodatetimewithinlimits check in
PlainDate to validate input range. For example, 0x7fffffff year should be rejected since
it is larger than ECMAScript datetime representation value. This is checked via ISODateTimeWithinLimits
in the spec.

We also remove isValid assertions in ExactTime. This should not be checked in these accessors, rather,
we should call that function when we would like to check, since PlainDate can represent a bit smaller
value than ExactTime's minValue (minValue - nsPerDay).

We also extend ExactTime::fromISOPartsAndOffset to handle values via Int128 to accept int32_t range years.
By using Int128 for nanoseconds, we can even represent int32_t max / min years. And we remove
ASSERT(y >= -999999 && y <= 999999) check since this is not necessary.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::ExactTime::fromISOPartsAndOffset):
(JSC::ISO8601::isDateTimeWithinLimits):

  • runtime/ISO8601.h:

(JSC::ISO8601::ExactTime::ExactTime): Deleted.
(JSC::ISO8601::ExactTime::fromEpochSeconds): Deleted.
(JSC::ISO8601::ExactTime::fromEpochMilliseconds): Deleted.
(JSC::ISO8601::ExactTime::fromEpochMicroseconds): Deleted.
(JSC::ISO8601::ExactTime::epochSeconds const): Deleted.
(JSC::ISO8601::ExactTime::epochMilliseconds const): Deleted.
(JSC::ISO8601::ExactTime::epochMicroseconds const): Deleted.
(JSC::ISO8601::ExactTime::epochNanoseconds const): Deleted.
(JSC::ISO8601::ExactTime::nanosecondsFraction const): Deleted.
(JSC::ISO8601::ExactTime::asString const): Deleted.
(JSC::ISO8601::ExactTime::isValid const): Deleted.
(JSC::ISO8601::ExactTime::operator< const): Deleted.
(JSC::ISO8601::ExactTime::operator<= const): Deleted.
(JSC::ISO8601::ExactTime::operator== const): Deleted.
(JSC::ISO8601::ExactTime::operator!= const): Deleted.
(JSC::ISO8601::ExactTime::operator>= const): Deleted.
(JSC::ISO8601::ExactTime::operator> const): Deleted.

  • runtime/TemporalPlainDate.cpp:

(JSC::toPlainDate):

Source/WTF:

Add code to allow dataLog(Int128).

  • wtf/Int128.cpp:

(WTF::printInternal):

  • wtf/Int128.h:
6:01 PM Changeset in webkit [290281] by jonlee@apple.com
  • 9 edits in trunk/LayoutTests

Unreviewed gardening for the GPU Process bots.

  • css3/color-filters/color-filter-text-decoration-shadow.html:
  • fast/gradients/conic-gradient-alpha-unpremultiplied.html:
  • fast/gradients/conic-gradient-alpha.html:
  • fast/gradients/linear-two-hints-angle.html:
  • fast/scrolling/overflow-inside-foreignobject.html:
  • gpu-process/TestExpectations:
  • imported/blink/svg/custom/crisp-edges-leak.svg:
  • platform/ios/TestExpectations:
5:48 PM Changeset in webkit [290280] by jonlee@apple.com
  • 5 edits in trunk

Add test name to the image diff template
​https://bugs.webkit.org/show_bug.cgi?id=237003

Reviewed by Sam Weinig.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_image_diff_files):

LayoutTests:

Include the test name in the page. Workflow to update fuzzy match data becomes easier to copy-paste the name there instead of from the location bar.

  • fast/harness/image-diff-template-expected.txt:
  • fast/harness/image-diff-template.html:
5:42 PM Changeset in webkit [290279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix racy parallel build of WebKit2-4.0.gir
​https://bugs.webkit.org/show_bug.cgi?id=232935

Patch by Alexander Kanavin <​alex@linutronix.de> on 2022-02-21
Reviewed by Michael Catanzaro.

This is a target and not a command because it's used to build another .gir
and a .typelib, which would trigger two racy parallel builds when using command
(e.g. command would run twice, target runs only once).

  • PlatformGTK.cmake:
5:37 PM Changeset in webkit [290278] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Add test coverage for the pasteboard writing codepath added in r289839
​https://bugs.webkit.org/show_bug.cgi?id=236944

Reviewed by Aditya Keerthi.

Add test coverage for the changes in r289839 in the case where ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) is turned
on. To do this, we set the platform image analysis results to a new internal mock object,
FakeImageAnalysisResult, that returns a string for a given NSRange. This code is then exercised by several
existing layout tests that copy and paste text inside image overlays:

  • fast/images/text-recognition/image-overlay-line-wrapping.html
  • fast/images/text-recognition/image-overlay-text-without-leading-whitespace.html
  • fast/images/text-recognition/mac/copy-image-overlay-text-with-context-menu.html
  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

  • testing/Internals.h:
  • testing/Internals.mm:

(-[FakeImageAnalysisResult initWithString:]):
(-[FakeImageAnalysisResult _attributedStringForRange:]):
(WebCore::Internals::fakeImageAnalysisResultForTesting):

5:13 PM Changeset in webkit [290277] by mmaxfield@apple.com
  • 4 edits in trunk/Source

Sort WebCore and WebKit Xcode project files
​https://bugs.webkit.org/show_bug.cgi?id=237010

Unreviewed.

Source/WebCore:

No new tests because there is no behavior change.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:
5:07 PM Changeset in webkit [290276] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[WebGPU] Fix build
​https://bugs.webkit.org/show_bug.cgi?id=237008

Unreviewed.

If you add a header to PAL that WebKit needs to #include, you'd better mark the header as Private.

  • PAL.xcodeproj/project.pbxproj:
4:22 PM Changeset in webkit [290275] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

[iOS] Fix the internal build after rdar://88354008
​https://bugs.webkit.org/show_bug.cgi?id=236999

Unreviewed build fix.

Mark deprecated implementations.

  • UIProcess/API/ios/WKWebViewIOS.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
4:05 PM Changeset in webkit [290274] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix release build
​https://bugs.webkit.org/show_bug.cgi?id=237004

Unreviewed.

If you include WTF, you must have set NDEBUG in release builds.

  • Configurations/Base.xcconfig:
3:57 PM Clangd edited by Brandon
(diff)
3:53 PM clangd_screenshot.png attached to Clangd by Brandon
clangd autocomplete
3:50 PM Clangd edited by Brandon
(diff)
3:38 PM Clangd edited by Brandon
(diff)
3:24 PM Changeset in webkit [290273] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix iOS build
​https://bugs.webkit.org/show_bug.cgi?id=237000

The lowPower selector doesn't exist on iOS.

Unreviewed.

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):

3:11 PM Changeset in webkit [290272] by Adrian Perez de Castro
  • 8 edits
    8 copies in trunk

Rolled over to ChangeLog-2022-02-22

3:11 PM Changeset in webkit [290271] by Kocsen Chung
  • 2 edits in branches/safari-614.1.5-branch/Source/WebKit

Cherry-pick r290237. rdar://problem/58057431

Turn WebGL in GPU Process on by default
​https://bugs.webkit.org/show_bug.cgi?id=236382
rdar://58057431

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultUseGPUProcessForWebGLEnabled):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290237 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:56 PM Clangd created by Brandon
2:56 PM WikiStart edited by Brandon
Add wiki page for clangd (diff)
2:09 PM Changeset in webkit [290270] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 12: Migrate from C function callbacks to blocks
​https://bugs.webkit.org/show_bug.cgi?id=236934

Reviewed by Dean Jackson.

For all the C function pointer / userdata pairs, simply create a parallel entry point which accepts a block instead.

  • WebGPU/Adapter.mm:

(wgpuAdapterRequestDeviceWithBlock):

  • WebGPU/Buffer.mm:

(wgpuBufferMapAsyncWithBlock):

  • WebGPU/CommandEncoder.mm:

(wgpuCommandEncoderSetLabel):

  • WebGPU/ComputePipeline.mm:

(wgpuComputePipelineSetLabel):

  • WebGPU/Device.mm:

(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):

  • WebGPU/Instance.mm:

(wgpuInstanceRequestAdapterWithBlock):

  • WebGPU/Queue.mm:

(wgpuQueueOnSubmittedWorkDoneWithBlock):
(wgpuQueueSetLabel):

  • WebGPU/RenderPipeline.mm:

(wgpuRenderPipelineSetLabel):

  • WebGPU/ShaderModule.mm:

(wgpuShaderModuleGetCompilationInfoWithBlock):
(wgpuShaderModuleSetLabel):

  • WebGPU/Surface.mm:

(wgpuSurfaceGetPreferredFormat):

  • WebGPU/SwapChain.mm:

(wgpuSwapChainPresent):

  • WebGPU/WebGPUExt.h:
2:06 PM Changeset in webkit [290269] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] ShadowRealm wrapArgument should check exceptions
​https://bugs.webkit.org/show_bug.cgi?id=236984
JSTests:

Reviewed by Alexey Shvayka.

  • stress/exception-in-wrap-argument-for-shadow-realm.js: Added.

(shouldThrow):

Source/JavaScriptCore:

rdar://89226554

Reviewed by Alexey Shvayka.

We should check exceptions after wrapArgument.

  • runtime/JSRemoteFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

2:00 PM Changeset in webkit [290268] by ysuzuki@apple.com
  • 132 edits
    18 copies
    3 moves
    404 adds
    5 deletes in trunk/JSTests

[JSC] Update test262
​https://bugs.webkit.org/show_bug.cgi?id=236990

Reviewed by Alexey Shvayka.

  • test262/expectations.yaml:
  • test262/test262-Revision.txt:
1:34 PM Changeset in webkit [290267] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 11: Implement shader creation methods
​https://bugs.webkit.org/show_bug.cgi?id=236933

Reviewed by Dean Jackson.

This implements Device::createShaderModule() and Device::createComputePipeline(). The async versions (neither
the WebGPU nor the Metal flavor) aren't implemented yet; this is just the first basic implementation.

  • WebGPU/ComputePipeline.mm:

(WebGPU::createLibrary):
(WebGPU::createConstantValues):
(WebGPU::createFunction):
(WebGPU::createComputePipelineState):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/PipelineLayout.h:
  • WebGPU/PipelineLayout.mm:

(WebGPU::PipelineLayout::operator== const):
(WebGPU::PipelineLayout::operator!= const):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::findShaderModuleParameters):
(WebGPU::ShaderModule::createLibrary):
(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):
(WebGPU::CompilationMessageData::CompilationMessageData):
(WebGPU::convertMessages):
(WebGPU::ShaderModule::getCompilationInfo):
(WebGPU::ShaderModule::setLabel):
(WebGPU::ShaderModule::convertPipelineLayout):
(WebGPU::ShaderModule::ast const):
(WebGPU::ShaderModule::pipelineLayoutHint const):
(WebGPU::ShaderModule::entryPointInformation const):

1:32 PM Changeset in webkit [290266] by mmaxfield@apple.com
  • 23 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 10: Implement setLabel() and Metal accessors
​https://bugs.webkit.org/show_bug.cgi?id=236910

Reviewed by Dean Jackson.

By adding a few various trivial functions in classes that need them, this patch completely finishes the
implementation of CommandBuffer, QuerySet, RenderBundle, Sampler, and TextureView classes (other than
their creation functions).

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::setLabel):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::commandBuffer const):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):
(WebGPU::CommandBuffer::setLabel):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::setLabel):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):
(WebGPU::ComputePassEncoder::setLabel):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::computePipelineState const):

  • WebGPU/ComputePipeline.mm:

(WebGPU::ComputePipeline::ComputePipeline):
(WebGPU::ComputePipeline::setLabel):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::counterSampleBuffer const):

  • WebGPU/QuerySet.mm:

(WebGPU::QuerySet::QuerySet):
(WebGPU::QuerySet::setLabel):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):
(WebGPU::Queue::setLabel):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::indirectCommandBuffer const):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):
(WebGPU::RenderBundle::setLabel):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::setLabel):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):
(WebGPU::RenderPassEncoder::setLabel):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::renderPipelineState const):

  • WebGPU/RenderPipeline.mm:

(WebGPU::RenderPipeline::RenderPipeline):
(WebGPU::RenderPipeline::setLabel):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::setLabel):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::library const):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::ShaderModule):
(WebGPU::ShaderModule::setLabel):

  • WebGPU/Texture.h:

(WebGPU::Texture::texture const):

  • WebGPU/Texture.mm:

(WebGPU::Texture::Texture):
(WebGPU::Texture::setLabel):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::setLabel):

1:29 PM Changeset in webkit [290265] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Add explicit exception check after appendWithoutSideEffects
​https://bugs.webkit.org/show_bug.cgi?id=236986
rdar://88258776

Reviewed by Saam Barati.

JSTests:

  • stress/array-to-string-oom.js: Added.

Source/JavaScriptCore:

Add exception check after JSStringJoiner::appendWithoutSideEffects call since JSString::value can throw OOM error.

  • runtime/ArrayPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::append):

1:27 PM Changeset in webkit [290264] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 9: Basic implementation of bindings
​https://bugs.webkit.org/show_bug.cgi?id=236903

Reviewed by Dean Jackson.

This is a basic implementation of the BindGroup, BindGroupLayout, and PipelineLayout methods.
Eventually we'll want to suballocate multiple BindGroups so they coexist within the same Buffer,
but this is an initial simple implementation that doesn't do that.

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::vertexArgumentBuffer const):
(WebGPU::BindGroup::fragmentArgumentBuffer const):
(WebGPU::BindGroup::computeArgumentBuffer const):

  • WebGPU/BindGroup.mm:

(WebGPU::bufferIsPresent):
(WebGPU::samplerIsPresent):
(WebGPU::textureViewIsPresent):
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):
(WebGPU::BindGroup::setLabel):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::vertexArgumentEncoder const):
(WebGPU::BindGroupLayout::fragmentArgumentEncoder const):
(WebGPU::BindGroupLayout::computeArgumentEncoder const):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::isPresent):
(WebGPU::createArgumentDescriptor):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):
(WebGPU::BindGroupLayout::setLabel):
(WebGPU::BindGroupLayout::encodedLength const):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::buffer const):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::Buffer):

  • WebGPU/PipelineLayout.h:

(WebGPU::PipelineLayout::create):
(WebGPU::PipelineLayout::numberOfBindGroupLayouts const):
(WebGPU::PipelineLayout::bindGroupLayout const):

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):
(WebGPU::PipelineLayout::PipelineLayout):
(WebGPU::PipelineLayout::setLabel):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::samplerState const):

  • WebGPU/Sampler.mm:

(WebGPU::Sampler::Sampler):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::texture const):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

1:20 PM Changeset in webkit [290263] by Fujii Hironori
  • 7 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/font-face-implicit-local-font-expected.txt:
  • platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wincairo/fast/text/international/bidi-override-expected.txt:
  • platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
  • platform/wincairo/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
12:49 PM Changeset in webkit [290262] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 8: Basic implementation of device creation routines
​https://bugs.webkit.org/show_bug.cgi?id=236902

Reviewed by Dean Jackson.

This is a basic implementation of the Instance, Adapter, and Device methods. Device limits are not
implemented yet, so for now we claim every limits is 0.

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):
(WebGPU::Adapter::enumerateFeatures):
(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::hasFeature):
(WebGPU::deviceMeetsRequiredLimits):
(WebGPU::Adapter::requestDevice):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::destroy):
(WebGPU::Device::enumerateFeatures):
(WebGPU::Device::getLimits):
(WebGPU::Device::getQueue):
(WebGPU::Device::hasFeature):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(WebGPU::Device::setLabel):

  • WebGPU/Instance.mm:

(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):

12:42 PM Changeset in webkit [290261] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Support local library in existing path
​https://bugs.webkit.org/show_bug.cgi?id=236978
<rdar://problem/89237767>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall.register): Handle case where library is in an exisiting sys.path.

Canonical link: ​https://commits.webkit.org/247586@main

12:11 PM Changeset in webkit [290260] by Elliott Williams
  • 5 edits
    1 add
    1 delete in trunk/Source

[XCBuild] Use native build phases to copy PAL's headers
​https://bugs.webkit.org/show_bug.cgi?id=236683

Reviewed by Alexey Proskuryakov.

Replaces the "Copy PAL Headers" script with a native Headers phase. Xcode copies the headers
to a flattened directory, but we hack around this using build rules. This is a different
approach than we took with WTF <​https://bugs.webkit.org/show_bug.cgi?id=235744> but could be
replicated there to remove the one-build-phase-per-directory boilerplate.

The idea is that we have one build rule for each "depth" of headers: Build rule "pal/*.h" is
depth 1 and matches headers like "pal/FileSizeFormatter.h", buld rule "pal/*/*.h" is depth 2
and matches headers like "pal/text/EncodingTables.h", etc.

Each rule uses build setting macros to determine the header's relative path within
/usr/local/include/pal, and copies it there. Having one build rule per depth level is hacky,
but it's superior to adding 23 copy file phases. In the future, we'll simplify this with
<rdar://88771729>.

The legacy build system doesn't support running build rules on headers. To compensate,
legacy builds copy to a separate directory, /usr/local/include/pal_flattened. A script phase
that runs after the native Headers phase copies these flattened headers into the right place.

  • Configurations/CopyPALHeaders.xcconfig: Removed.
  • Configurations/PAL.xcconfig: Header settings, notably PRIVATE_HEADERS_FOLDER_PATH.
  • PAL.xcodeproj/project.pbxproj: Remove target, add phases, set header attrs.
12:03 PM Changeset in webkit [290259] by mmaxfield@apple.com
  • 48 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 7: Clean up includes a bit
​https://bugs.webkit.org/show_bug.cgi?id=236900

Reviewed by Dean Jackson.

We can put includes that literally every file uses into a single place.

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:
  • WebGPU/BindGroup.h:
  • WebGPU/BindGroup.mm:
  • WebGPU/BindGroupLayout.h:
  • WebGPU/BindGroupLayout.mm:
  • WebGPU/Buffer.h:
  • WebGPU/Buffer.mm:
  • WebGPU/CommandBuffer.h:
  • WebGPU/CommandBuffer.mm:
  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:
  • WebGPU/ComputePassEncoder.h:
  • WebGPU/ComputePassEncoder.mm:
  • WebGPU/ComputePipeline.h:
  • WebGPU/ComputePipeline.mm:
  • WebGPU/Device.h:
  • WebGPU/Device.mm:
  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:
  • WebGPU/PipelineLayout.h:
  • WebGPU/PipelineLayout.mm:
  • WebGPU/QuerySet.h:
  • WebGPU/QuerySet.mm:
  • WebGPU/Queue.h:
  • WebGPU/Queue.mm:
  • WebGPU/RenderBundle.h:
  • WebGPU/RenderBundle.mm:
  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:
  • WebGPU/RenderPassEncoder.h:
  • WebGPU/RenderPassEncoder.mm:
  • WebGPU/RenderPipeline.h:
  • WebGPU/RenderPipeline.mm:
  • WebGPU/Sampler.h:
  • WebGPU/Sampler.mm:
  • WebGPU/ShaderModule.h:
  • WebGPU/ShaderModule.mm:
  • WebGPU/Surface.h:
  • WebGPU/Surface.mm:
  • WebGPU/SwapChain.h:
  • WebGPU/SwapChain.mm:
  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:
  • WebGPU/TextureView.h:
  • WebGPU/TextureView.mm:
  • WebGPU/config.h:
11:58 AM Changeset in webkit [290258] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 6: Give a RunLoop to Instance
​https://bugs.webkit.org/show_bug.cgi?id=236899

Reviewed by Dean Jackson.

The shared header has a function, wgpuInstanceProcessEvents(), which is supposed
to synchronously call all outstanding callbacks. A natural way to do this is to
hook this up to [NSRunLoop runMode:beforeDate:].

  • WebGPU/Instance.h:

(WebGPU::Instance::runLoop const):
(WebGPU::Instance::create): Deleted.

  • WebGPU/Instance.mm:

(WebGPU::Instance::create):
(WebGPU::Instance::Instance):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::processEvents):
(wgpuCreateInstance):

11:48 AM Changeset in webkit [290257] by Antti Koivisto
  • 6 edits
    2 adds in trunk

[CSS Container Queries] Support nested container queries
​https://bugs.webkit.org/show_bug.cgi?id=236963

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-nested-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/container-nested.html: Added.

Source/WebCore:

"Style rules defined on an element inside multiple nested container queries apply when all of the wrapping container queries are true for that element."

​https://drafts.csswg.org/css-contain-3/#container-rule

Test: imported/w3c/web-platform-tests/css/css-contain/container-queries/container-nested.html

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::containerQueriesMatch):

All nested queries need to match.

(WebCore::Style::ElementRuleCollector::containerQueryMatches): Deleted.

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::hasContainerQueries const):
(WebCore::Style:: const):
(WebCore::Style::RuleSet::containerQueryFor const): Deleted.

Return all nested queries.
Don't unnecessarily copy FilteredContainerQuery, refer to the StyleRuleContainer instead.

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):

11:32 AM Changeset in webkit [290256] by mmaxfield@apple.com
  • 43 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 5: Give Metal objects to WebGPU objects
​https://bugs.webkit.org/show_bug.cgi?id=236898

Reviewed by Dean Jackson.

Each WebGPU object gets its own backing Metal object.

  • WebGPU/Adapter.h:

(WebGPU::Adapter::create):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::Adapter):

  • WebGPU/BindGroup.h:

(WebGPU::BindGroup::create):

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):

  • WebGPU/BindGroupLayout.h:

(WebGPU::BindGroupLayout::create):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):

  • WebGPU/Buffer.h:

(WebGPU::Buffer::create):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):
(WebGPU::Buffer::Buffer):

  • WebGPU/CommandBuffer.h:

(WebGPU::CommandBuffer::create):

  • WebGPU/CommandBuffer.mm:

(WebGPU::CommandBuffer::CommandBuffer):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::create):

  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::create):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::ComputePassEncoder):

  • WebGPU/ComputePipeline.h:

(WebGPU::ComputePipeline::create):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::ComputePipeline::ComputePipeline):
(WebGPU::ComputePipeline::getBindGroupLayout):

  • WebGPU/Device.h:

(WebGPU::Device::create): Deleted.

  • WebGPU/Device.mm:

(WebGPU::Device::create):
(WebGPU::Device::Device):
(WebGPU::Device::getQueue):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::requestAdapter):
(wgpuInstanceRequestAdapter):

  • WebGPU/QuerySet.h:

(WebGPU::QuerySet::create):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):
(WebGPU::QuerySet::QuerySet):

  • WebGPU/Queue.h:

(WebGPU::Queue::create):

  • WebGPU/Queue.mm:

(WebGPU::Queue::Queue):

  • WebGPU/RenderBundle.h:

(WebGPU::RenderBundle::create):

  • WebGPU/RenderBundle.mm:

(WebGPU::RenderBundle::RenderBundle):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::create):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::create):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::RenderPassEncoder):

  • WebGPU/RenderPipeline.h:

(WebGPU::RenderPipeline::create):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::RenderPipeline::RenderPipeline):
(WebGPU::RenderPipeline::getBindGroupLayout):

  • WebGPU/Sampler.h:

(WebGPU::Sampler::create):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):
(WebGPU::Sampler::Sampler):

  • WebGPU/ShaderModule.h:

(WebGPU::ShaderModule::create):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::ShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::SwapChain::getCurrentTextureView):

  • WebGPU/Texture.h:

(WebGPU::Texture::create):

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
(WebGPU::Texture::createView):

  • WebGPU/TextureView.h:

(WebGPU::TextureView::create):

  • WebGPU/TextureView.mm:

(WebGPU::TextureView::TextureView):

  • WebGPU/config.h:
11:23 AM Changeset in webkit [290255] by mmaxfield@apple.com
  • 15 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 4: Move Device's construction methods to the files of the things they create
​https://bugs.webkit.org/show_bug.cgi?id=236891

Reviewed by Dean Jackson.

Device is kind of a factory object, and has lots of methods which create
other objects in the API. To avoid Device.cpp becoming a catch-all place
for tons of unrelated creation routines, this patch moves the routine that
creates an X into X.mm.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/BindGroupLayout.mm:

(WebGPU::Device::createBindGroupLayout):

  • WebGPU/Buffer.mm:

(WebGPU::Device::createBuffer):

  • WebGPU/CommandEncoder.mm:

(WebGPU::Device::createCommandEncoder):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.mm:

(WebGPU::Device::createBindGroup): Deleted.
(WebGPU::Device::createBindGroupLayout): Deleted.
(WebGPU::Device::createBuffer): Deleted.
(WebGPU::Device::createCommandEncoder): Deleted.
(WebGPU::Device::createComputePipeline): Deleted.
(WebGPU::Device::createComputePipelineAsync): Deleted.
(WebGPU::Device::createPipelineLayout): Deleted.
(WebGPU::Device::createQuerySet): Deleted.
(WebGPU::Device::createRenderBundleEncoder): Deleted.
(WebGPU::Device::createRenderPipeline): Deleted.
(WebGPU::Device::createRenderPipelineAsync): Deleted.
(WebGPU::Device::createSampler): Deleted.
(WebGPU::Device::createShaderModule): Deleted.
(WebGPU::Device::createSwapChain): Deleted.
(WebGPU::Device::createTexture): Deleted.

  • WebGPU/PipelineLayout.mm:

(WebGPU::Device::createPipelineLayout):

  • WebGPU/QuerySet.mm:

(WebGPU::Device::createQuerySet):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::Device::createRenderBundleEncoder):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/Sampler.mm:

(WebGPU::Device::createSampler):

  • WebGPU/ShaderModule.mm:

(WebGPU::Device::createShaderModule):

  • WebGPU/SwapChain.mm:

(WebGPU::Device::createSwapChain):

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):

11:15 AM Changeset in webkit [290254] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Implement SVG2 rules to establish a stacking context
​https://bugs.webkit.org/show_bug.cgi?id=236193

Reviewed by Rob Buis.

Follow the rules specified in ​https://www.w3.org/TR/SVG2/render.html#RenderingOrder,
when to create a stacking context. This is necessary to enforce layer creation.

Unlike SVG 1.1, SVG2 defines its whole rendering model, as well as painting operations
such as masking/clipping around the 'stacking-context' term that stems from CSS.
The definition is backwards compatible with SVG 1.1, except for un-spec'ed territory
missing from SVG 1.1, that's now specified for SVG2 (e.g. <foreignObject> + stacking context).

LBSE handles clipping / masking / etc. via RenderLayer, which is also responsbile for
for stacking-context managment. Therefore we need to follow the existing rules to enforce
a stacking context / RenderLayer creation in StyleAdjuster, by enforcing a non-auto 'used z-index'.

Covered by existing tests, no change in behaviour.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustSVGElementStyle):

10:57 AM Changeset in webkit [290253] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Tracer bullet part 3: Tweak WGSL API
​https://bugs.webkit.org/show_bug.cgi?id=236889

Reviewed by Dean Jackson.

  • Give SuccessfulCheck a move constructor
  • Use UniqueRef instead of std::unique_ptr
  • Allow specialization constants to be looked up by name
  • Model missing pipeline layouts as absent from the HashMap, rather than using an optional type
  • WGSL/WGSL.cpp:

(WGSL::prepare):
(WGSL::SuccessfulCheck::~SuccessfulCheck): Deleted.

  • WGSL/WGSL.h:
10:55 AM Changeset in webkit [290252] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[WebGPU] Tracer bullet part 2: Fix infinite recursion in GPUDevice::ref()
​https://bugs.webkit.org/show_bug.cgi?id=236888

Reviewed by Dean Jackson.

refEventTarget() calls ref() which called refEventTarget(). The solution is
to tell GPUDevice that it's using RefCounted::ref().

  • Modules/WebGPU/GPUDevice.cpp:
  • Modules/WebGPU/GPUDevice.h:
10:23 AM Changeset in webkit [290251] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] WebGPU.xcodeproj cannot be opened on Big Sur's Xcode
​https://bugs.webkit.org/show_bug.cgi?id=236982

Unreviewed.

Just change the project version number from 55 to 51, like the rest of the projects in WebKit.

  • WebGPU.xcodeproj/project.pbxproj:
10:10 AM Changeset in webkit [290250] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Remove resource access in sandbox for older OS versions
​https://bugs.webkit.org/show_bug.cgi?id=236975

Reviewed by Brent Fulgham.

Remove access to some resources in sandbox for older OS versions. Access to these resources were initially
added in ​https://trac.webkit.org/changeset/290180/webkit and ​https://trac.webkit.org/changeset/290066/webkit,
and was only intended to land on a branch.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:07 AM Changeset in webkit [290249] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check parent node in outdentParagraph
​https://bugs.webkit.org/show_bug.cgi?id=235914

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-21
Reviewed by Wenson Hsieh.

Source/WebCore:

Null check parent node of enclosing node in outdentParagraph.

Test: editing/execCommand/outdent-paragraph-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

LayoutTests:

  • editing/execCommand/outdent-paragraph-crash-expected.txt: Added.
  • editing/execCommand/outdent-paragraph-crash.html: Added.
9:56 AM Changeset in webkit [290248] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Add CalendarDateTime parsing
​https://bugs.webkit.org/show_bug.cgi?id=236886

Reviewed by Dean Jackson.

JSTests:

  • stress/temporal-instant.js:
  • stress/temporal-plaindate.js:
  • stress/temporal-plaintime.js:

Source/JavaScriptCore:

This patch adds calendar parsing code to ISO8601 so that Temporal.Instant / Temporal.PlainDate / Temporal.PlainTime
can parse string with calendar correctly via "from" methods. Currently, we are just ignoring these calendar values,
but we should create a calendar instance from that in a subsequent patch.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::canBeCalendar):
(JSC::ISO8601::canBeTimeZone):
(JSC::ISO8601::parseTimeZone):
(JSC::ISO8601::parseCalendar):
(JSC::ISO8601::parseTime):
(JSC::ISO8601::parseDateTime):
(JSC::ISO8601::parseCalendarTime):
(JSC::ISO8601::parseCalendarDateTime):
(JSC::ISO8601::parseInstant):

  • runtime/ISO8601.h:
  • runtime/TemporalPlainDate.cpp:

(JSC::TemporalPlainDate::from):

  • runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::from):

9:50 AM Changeset in webkit [290247] by Noam Rosenthal
  • 4 edits in trunk

PerformanceObserver: buffered flag not working in Paint Timing
​https://bugs.webkit.org/show_bug.cgi?id=225305
<rdar://problem/77746237>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window-expected.txt: This test now passes

Source/WebCore:

Include paint entries when collecting buffered performance entries.

A previously failing W3C test is now marked as passing.

  • page/Performance.cpp:

(WebCore::Performance::appendBufferedEntriesByType const): Add the existing FCP entry

9:07 AM Changeset in webkit [290246] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Change IPC encoding of boolean type to use one bit
​https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396

Patch by Simon Lewis <​simon.lewis@apple.com> on 2022-02-21
Reviewed by Chris Dumez.

This patch ensures that only the lower bit is set in a boolean for IPC messages.

  • Platform/IPC/ArgumentCoder.h:

(IPC::ArgumentCoder<bool>::encode):
(IPC::ArgumentCoder<bool>::decode):

7:46 AM Changeset in webkit [290245] by Tyler Wilcock
  • 5 edits
    5 adds in trunk/LayoutTests

AX: Add test for r290130 (​https://trac.webkit.org/changeset/290130/webkit)
​https://bugs.webkit.org/show_bug.cgi?id=236848

Reviewed by Chris Fleizach.

  • accessibility/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
  • accessibility/dynamically-changing-iframe-remains-accessible.html: Added.
  • accessibility/resources/purple-pineapple-text.html:

Added so we can switch iframe source between multiple simple documents.

  • platform/ios/TestExpectations:

Enable new test.

  • platform/mac-wk1/accessibility/dynamically-changing-iframe-remains-accessible-expected.txt: Added.
  • resources/accessibility-helper.js:

(sleep): Added.

7:24 AM Changeset in webkit [290244] by Jonathan Bedard
  • 3 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 1)
​https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Dewei Zhu and Stephanie Lewis.

  • Tools/CISupport/build-webkit-org/steps.py:

(RunWebKitTests): Change invocation to Python 3.

  • Tools/CISupport/build-webkit-org/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247569@main

7:19 AM Changeset in webkit [290243] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable GTK and Windows queues for PRs
​https://bugs.webkit.org/show_bug.cgi?id=236814
<rdar://problem/89117205>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/config.json:

Canonical link: ​https://commits.webkit.org/247568@main

7:13 AM Changeset in webkit [290242] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Update pango and gtk4
​https://bugs.webkit.org/show_bug.cgi?id=236939

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-21
Reviewed by Adrian Perez de Castro.

Update to GTK 4.6.2, which requires Pango 1.50.x, so also update Pango.

  • elements/freedesktop-sdk.bst:
  • elements/sdk/gtk.bst:
  • patches/fdo-0001-pango-Bump-to-1.50.4.patch: Added.
6:31 AM Changeset in webkit [290241] by commit-queue@webkit.org
  • 3 edits in trunk

[GTK][WPE] ANGLE: make USE_ANGLE_WEBGL build option public
​https://bugs.webkit.org/show_bug.cgi?id=236962

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2022-02-21
Reviewed by Chris Lord.

Since it introduces new dependencies, the build option should be public and a fatal error message should be
shown when the option is enabled and any for the dependencies is missing.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
6:12 AM Changeset in webkit [290240] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Take vertical-rl writing mode value into account when converting visual margin/border/padding value to logical
​https://bugs.webkit.org/show_bug.cgi?id=236948

Reviewed by Antti Koivisto.

This is in preparation for supporting vertical-rl content.
(Note that the RTL inline direction != the "rl" part of the writing mode.)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::horizontalLogicalMargin):
(WebCore::LayoutIntegration::verticalLogicalMargin):
(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateFormattingRootGeometryAndInvalidate):

1:23 AM Changeset in webkit [290239] by sihui_liu@apple.com
  • 4 edits in trunk

Fetching website data may get wrong record after migrating data to general storage directory
​https://bugs.webkit.org/show_bug.cgi?id=236905

Reviewed by Chris Dumez.

Source/WebKit:

To decide if an origin has data, we need to not only check if its directory exists but also if the directory is
empty.

Modified existing test to add test coverage.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath): directory should be created before moving
files.
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromDisk): given that IndexedDB and
LocalStorage can have custom paths, we may just check data by type.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

Feb 20, 2022:

7:55 PM Changeset in webkit [290238] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes after 247508@main
​https://bugs.webkit.org/show_bug.cgi?id=236945

  • dom/ImageOverlay.h: Forward declare document.
4:02 PM Changeset in webkit [290237] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit

Turn WebGL in GPU Process on by default
​https://bugs.webkit.org/show_bug.cgi?id=236382
rdar://58057431

Reviewed by Tim Horton.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForWebGLEnabled):

3:58 PM Changeset in webkit [290236] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots

  • gpu-process/TestExpectations:
  • platform/ios-wk2/TestExpectations: Newly revealed flaky timeout.
3:50 PM Changeset in webkit [290235] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed gardening.

  • TestExpectations: Tests are passing after r290229.
  • gpu-process/TestExpectations:
  • platform/ios-simulator/TestExpectations:
3:36 PM Changeset in webkit [290234] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed garden for GPU Process bots.

  • gpu-process/TestExpectations: Annotate tests with filed bugs.
3:09 PM Changeset in webkit [290233] by sihui_liu@apple.com
  • 5 edits in trunk

Origin file may not be created after migrating data to general storage directory
​https://bugs.webkit.org/show_bug.cgi?id=236901

Reviewed by Chris Dumez.

Source/WebKit:

In r289081, we started writing origin file asynchronouly (we used to write it at creation of
OriginStorageManager), to avoid delay in replying sync WebStorage message. In the async task, we check if the
OriginStorageManager still exists. If it does not, we will not write origin file, because the
OriginStorageManager may be removed after origin data gets deleted, and there's no need to add new origin file.
It's also possible that the OriginStorageManager is created for website data fetch, and removed immediately
after the fetch task is done (see NetworkStorageManager::fetchDataFromDisk). We used to not store
new data in general storage directory during data fetch, so it's fine to not write origin file in this case.

With r289878, existing data can be migrated to general storage directory at data fetch, so it is important to
ensure we write origin to file; otherwise, we will lose track of the origin. To solve this, let's restore the
old behavior that synchronouly writes origin file at creation of OriginStorageManager. To solve the delay issue,
in the sync message handler (NetworkStorageManager::connectToStorageArea), we specifically ask to not write
origin file, and manually write origin file after message is replied.

Updated existing API test to add test coverage.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::connectToStorageArea):

  • NetworkProcess/storage/NetworkStorageManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

12:47 PM Changeset in webkit [290232] by ntim@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline inert-focus-in-frames.html after r290197.

Unreviewed test gardening.

For some reason, the rebaselining changes didn't make it in the patch.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
10:32 AM Changeset in webkit [290231] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Flip inline block coords for vertical-rl before painting
​https://bugs.webkit.org/show_bug.cgi?id=236896

Reviewed by Antti Koivisto.

This is similar to what we do in LegacyInlineElementBox::paint.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

9:54 AM Changeset in webkit [290230] by Kocsen Chung
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.6

9:53 AM Changeset in webkit [290229] by Alan Bujtas
  • 46 edits
    1 copy in trunk

[IFC][Integration] Enable non-paginated vertical-lr writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236481
<rdar://problem/89123721>

Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:

Progressions.

  • web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Progression:

  • css3/flexbox/line-wrapping.html:

Legacy layout bounds floor/ceil mismatch:

  • fast/block/float/float-with-fractional-height-vertical-lr.html:
  • imported/blink/fast/multicol/vertical-lr/float-big-line-expected.html:
  • imported/blink/fast/multicol/vertical-lr/float-big-line.html:

Progression (visually matching Chrome)

  • platform/mac/fast/writing-mode/border-image-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-radius-clipping-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt:
  • platform/mac/fast/writing-mode/box-shadow-vertical-lr-expected.txt:
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
9:51 AM Changeset in webkit [290228] by Kocsen Chung
  • 1 copy in branches/safari-614.1.5-branch

New branch.

8:01 AM Changeset in webkit [290227] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

Generate compile_commands.json on macOS Builds
​https://bugs.webkit.org/show_bug.cgi?id=235686

Patch by Brandon Stewart <Brandon> on 2022-02-20
Reviewed by Saam Barati.

Add support for generating compile_commands.json file to WebKit.

compile_commands.json can be used by tools like clangd to provide code complete,
refactoring, formatting, and cross references.

Steps to generate the compile commands file:
make d EXPORT_COMPILE_COMMANDS=YES
generate-compile-commands WebKitBuild/Debug

.:

  • Makefile.shared:

Source/WebKit:

  • UIProcess/API/C/WKPageUIClient.h:

Tools:

  • Scripts/build-jsc:
  • Scripts/build-webkit:
  • Scripts/generate-compile-commands: Added.
7:45 AM Changeset in webkit [290226] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable iOS Simulator queues for PRs
​https://bugs.webkit.org/show_bug.cgi?id=236816
<rdar://problem/89117393>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/config.json:

Canonical link: ​https://commits.webkit.org/247552@main

6:17 AM Changeset in webkit [290225] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

RenderBox::flipForWritingModeForChild should take const RenderBox& as the child renderer
​https://bugs.webkit.org/show_bug.cgi?id=236895

Reviewed by Antti Koivisto.

  • rendering/LegacyInlineElementBox.cpp:

(WebCore::LegacyInlineElementBox::paint):
(WebCore::LegacyInlineElementBox::nodeAtPoint):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintChild):
(WebCore::RenderBlock::hitTestContents):
(WebCore::RenderBlock::paintExcludedChildrenInBorder):
(WebCore::RenderBlock::hitTestExcludedChildrenInBorder):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::paintColumnRules):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::flipForWritingModeForChild const):
(WebCore::RenderBox::topLeftLocation const):

  • rendering/RenderBox.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::hitTestChildren):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paintObject):
(WebCore::RenderTable::nodeAtPoint):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::nodeAtPoint):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::paintCell):
(WebCore::RenderTableSection::paintObject):
(WebCore::RenderTableSection::nodeAtPoint):

5:14 AM Changeset in webkit [290224] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r289470): [Flatpak SDK] Broken local SDK handling
​https://bugs.webkit.org/show_bug.cgi?id=236940

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-20
Reviewed by Martin Robinson.

The .Local path was incorrectly generated to WebKitBuild/UserFlatpak/.Local.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args): Revert .Local SDK path handling to the version before r289470.

Feb 19, 2022:

11:12 PM Changeset in webkit [290223] by Chris Dumez
  • 21 edits in trunk/Source

Optimize DOM storage event dispatch
​https://bugs.webkit.org/show_bug.cgi?id=236871

Reviewed by Sihui Liu.

Made the following optimization to DOM storage event dispatch:

  1. Pass a SecurityOrigin around instead of a SecurityOriginData. Otherwise, dispatchLocalStorageEvents() / dispatchSessionStorageEvents() just keep reconstructing the SecurityOrigin from the SecurityOriginData for every frame.
  2. When gathering the list of frames where we need to dispatch the storage event, discard the ones that do not have a "storage" event listener.

Source/WebCore:

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didDispatchDOMStorageEventImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::storageId):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/agents/InspectorDOMStorageAgent.h:
  • loader/EmptyClients.cpp:
  • page/DOMWindow.cpp:
  • storage/StorageEventDispatcher.cpp:

(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):

  • storage/StorageEventDispatcher.h:
  • storage/StorageNamespace.h:
  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

Source/WebKit:

  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::framesForEventDispatching):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::storageArea):

  • WebProcess/WebStorage/StorageNamespaceImpl.h:

Source/WebKitLegacy:

  • Storage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::create):
(WebKit::StorageAreaImpl::clearForOriginDeletion):
(WebKit::StorageAreaImpl::sync):
(WebKit::StorageAreaImpl::sessionChanged):

  • Storage/StorageAreaImpl.h:
  • Storage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::storageArea):

  • Storage/StorageNamespaceImpl.h:
9:15 PM Changeset in webkit [290222] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots.

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
9:13 PM Changeset in webkit [290221] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Relating tests failing due to turning accel drawing on to b236904.

  • platform/ios/TestExpectations:
8:35 PM Changeset in webkit [290220] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Test gardening for [CSS Blending] Non-separable blend modes don't work
​https://bugs.webkit.org/show_bug.cgi?id=131354

LayoutTests/imported/mozilla:

Unreviewed. Add fuzzy data.

  • svg/blend-color.svg:
  • svg/blend-hue.svg:
  • svg/blend-luminosity.svg:

LayoutTests:

Unreviewed.

5:42 PM Changeset in webkit [290219] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

macCatalyst: WKWebView crashes whenever the view frame changes
​https://bugs.webkit.org/show_bug.cgi?id=236887
<rdar://problem/89182039>

Reviewed by Chris Dumez.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _acquireResizeAssertionForReason:]):
Add a respondsToSelector check.

5:34 PM Changeset in webkit [290218] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Set custom general storage directory for custom WebsiteDataStore in TestController
​https://bugs.webkit.org/show_bug.cgi?id=236893

Reviewed by Chris Dumez.

If we don't set custom generalStorageDirectory for a custom WebsiteDataStore, it will use the same path as the
default WebsiteDataStore. That means when WebKitTestRunner creates multiple WebsiteDataStores (it may create
mutliple TestControllers to run tests in parallel), the directory will be accessed concurrently and data can be
corrupted.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):

3:05 PM Changeset in webkit [290217] by mark.lam@apple.com
  • 91 edits
    2 adds in trunk/Source/WebCore

[Re-landing] Provide a WebCore subspaceImplFor template to make code more readable.
​https://bugs.webkit.org/show_bug.cgi?id=236868
rdar://problem/89170090

Reviewed by Yusuke Suzuki.

The pre-existing code is difficult to follow, especially in CodeGeneratorJS.pm.
This change also consolidates the framework implementation of subspaceForImpl in
one place rather than scattered across 3 locations. This will make it easier to
change this code in the future.

Also introduced ExtendedDOMIsoSubspace and ExtendedDOMClientIsoSubspaces classes
and moved the FileSystemDirectoryHandleIterator subspaces in there. This makes
the code behave more consistently for FileSystemDirectoryHandleIterator's
IsoSubspace as for other IsoSubspaces.

Also rebased bindings test results.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ExtendedDOMClientIsoSubspaces.h: Added.
  • bindings/js/ExtendedDOMIsoSubspaces.h: Added.
  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSHeapData::JSHeapData):
(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSHeapData::subspaces):
(WebCore::JSVMClientData::idbSerializationSpace):
(WebCore::JSVMClientData::clientSubspaces):
(WebCore::subspaceForImpl):
(WebCore::JSHeapData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSHeapData::setFileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateIterableDefinition):

  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStar::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp:

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactions::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracer::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurity::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditional::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.cpp:

(WebCore::JSTestTaggedWrapper::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

3:01 PM Changeset in webkit [290216] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.4.1

Tag Safari-614.1.4.1.

2:33 PM Changeset in webkit [290215] by Kocsen Chung
  • 9 edits in branches/safari-614.1.4-branch/Source

Versioning.

WebKit-7614.1.4.1

1:42 PM Changeset in webkit [290214] by Chris Dumez
  • 4 edits in trunk

Unreviewed, reverting r290196.

Caused Network Process crashes <rdar://89190571>

Reverted changeset:

"Add assertion that no two network sessions share the same
storage path"
​https://bugs.webkit.org/show_bug.cgi?id=236844
​https://commits.webkit.org/r290196

1:16 PM Changeset in webkit [290213] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

Unreviewed, reverting r290194 and r290210.
​https://bugs.webkit.org/show_bug.cgi?id=236890

debug crash

Reverted changesets:

"[JSC] Make ArrayPrototype just an array"
​https://bugs.webkit.org/show_bug.cgi?id=236869
​https://commits.webkit.org/r290194

"Unreviewed, use ArrayWithUndecided in ArrayPrototype"
​https://bugs.webkit.org/show_bug.cgi?id=236869
​https://commits.webkit.org/r290210

1:02 PM Changeset in webkit [290212] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the internal iOS build after r290154

-[ASCAgentProtocol performAutoFillAuthorizationRequestsForContext:] only exists on macOS and Catalyst; as
such, this call site needs to be guarded for those platforms.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):

11:24 AM Changeset in webkit [290211] by Wenson Hsieh
  • 13 edits in trunk/Source/WebKit

[macOS] Hovering over "Copy Cropped Image" context menu item should reveal the cropped image
​https://bugs.webkit.org/show_bug.cgi?id=236845
rdar://89152746

Reviewed by Dean Jackson.

Add support for revealing the "cropped" region of an image element (while dimming out the rest of the image)
when the user highlights the new "Copy Cropped Image" context menu item on macOS. See below for more details.

  • Platform/cocoa/TextRecognitionUtilities.h:

Adjust requestImageAnalysisMarkup to take a completion handler with both the resulting CGImageRef, as well as
a CGRect that represents the frame of the cropped image with respect to the source image, normalized to the unit
square. Additionally, tweak all call sites of requestImageAnalysisMarkup to pass in completion handlers that
accept both arguments.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::hitTestedElementContext const):

Add an optional ElementContext representing the inner hit-tested element for the context menu. We use this below
in WebPageProxy::willHighlightContextMenuItem to know where we need to install the cropped image overlay.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didDismissContextMenu):

Reset the cached cropped image result as well as the cropped image overlay state when the context menu is
dismissed.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Also clear the above state if the process crashes.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView doAfterComputingImageAnalysisResultsForMarkup:]):
(-[WKContentView actionSheetAssistant:copyCroppedImage:sourceMIMEType:]):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(-[WKMenuDelegate menu:willHighlightItem:]):

Implement this NSMenu delegate method and call out to WebPageProxy whenever the highlighted context menu item
changes. See below for more details.

(WebKit::WebContextMenuProxyMac::applyMarkupToControlledImage):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::willHighlightContextMenuItem):

This method coordinates showing or hiding the cropped image overlay when the user highlights (but does not yet
select) the "Copy Cropped Image" context menu item. When the user first highlights this item, we trigger an
analysis request in VisionKit; when we later obtain the results, we send the image to the web process as TIFF
data, and inject it into the image using ImageOverlay::CroppedImage::install. Un-highlighting and re-
highlighting the menu item then respectively hides and shows the cropped image overlay by setting visibility.

(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):

Adjust this to use the cached m_croppedImageResult if it has already been computed.

  • WebProcess/WebPage/WebContextMenu.cpp:

(WebKit::WebContextMenu::show):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didDismissContextMenu):

Destroy the m_croppedImageOverlay after the context menu is dismissed (which uninstalls the cropped image
overlay in the process).

(WebKit::WebPage::installCroppedImageOverlay):
(WebKit::WebPage::setCroppedImageOverlayVisibility):

Add methods to install and toggle the visibility of the cropped image overlay.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:51 AM Changeset in webkit [290210] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Unreviewed, use ArrayWithUndecided in ArrayPrototype
​https://bugs.webkit.org/show_bug.cgi?id=236869

JSTests:

  • stress/array-prototype-concat.js: Added.

Source/JavaScriptCore:

  • runtime/ArrayPrototype.h:
9:43 AM Changeset in webkit [290209] by dino@apple.com
  • 16 edits
    7 adds in trunk

[JSC] Implement Temporal.PlainDate
​https://bugs.webkit.org/show_bug.cgi?id=230033
<rdar://problem/83127747>

Reviewed by Yusuke Suzuki.

JSTests:

Some basic tests for PlainDate.

  • stress/temporal-plaindate.js: Added.

(shouldBe):
(shouldThrow):
(shouldBe.String.Temporal.PlainDate.from):
(let.text.of.failures.shouldThrow):

Source/JavaScriptCore:

Implement the constructor, from and compare for Temporal.PlainDate.
This is only a partial implementation, because from doesn't
support object parameters, and the compare function creates some
internally. However, it is a start!

  • DerivedSources-input.xcfilelist: Add new files.
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/Heap.cpp: Create the temporalPlainDateSpace.
  • heap/Heap.h:
  • heap/HeapSubspaceTypes.h:
  • runtime/ISO8601.cpp:

(JSC::ISO8601::daysInMonth): Make this publicly visible.
(JSC::ISO8601::temporalDateToString): New method for printing a date.

  • runtime/ISO8601.h:
  • runtime/JSGlobalObject.cpp: Make the m_plainDateStructure object.

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::plainDateStructure):

  • runtime/TemporalObject.cpp: Add the PlainDate constructor.

(JSC::createPlainDateConstructor):

  • runtime/TemporalObject.h:
  • runtime/TemporalPlainDate.cpp: Added.

(JSC::TemporalPlainDate::create):
(JSC::TemporalPlainDate::createStructure):
(JSC::TemporalPlainDate::TemporalPlainDate):
(JSC::TemporalPlainDate::finishCreation):
(JSC::TemporalPlainDate::visitChildrenImpl):
(JSC::toPlainDate):
(JSC::TemporalPlainDate::tryCreateIfValid):
(JSC::TemporalPlainDate::toString const):
(JSC::TemporalPlainDate::from):
(JSC::TemporalPlainDate::compare):

  • runtime/TemporalPlainDate.h: Added.
  • runtime/TemporalPlainDateConstructor.cpp: Added.

(JSC::TemporalPlainDateConstructor::create):
(JSC::TemporalPlainDateConstructor::createStructure):
(JSC::TemporalPlainDateConstructor::TemporalPlainDateConstructor):
(JSC::TemporalPlainDateConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalPlainDateConstructor.h: Added.
  • runtime/TemporalPlainDatePrototype.cpp: Added.

(JSC::TemporalPlainDatePrototype::create):
(JSC::TemporalPlainDatePrototype::createStructure):
(JSC::TemporalPlainDatePrototype::TemporalPlainDatePrototype):
(JSC::TemporalPlainDatePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • runtime/TemporalPlainDatePrototype.h: Added.
  • runtime/VM.h: Define the temporalPlainDateSpace.
9:31 AM Changeset in webkit [290208] by jonlee@apple.com
  • 11 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots.

LayoutTests/imported/mozilla:

  • svg/blend-hard-light.svg:

LayoutTests:

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
  • compositing/images/positioned-image-content-rect.html:
  • compositing/overlap-blending/nested-overlap.html:
  • css2.1/20110323/height-applies-to-010a.htm:
  • fast/borders/border-radius-on-html.html:
  • fast/replaced/ul-li-word-break-break-word.html:
  • imported/blink/fast/scrolling/fractional-scroll-offset-iframe-fixed-position.html:
8:16 AM Changeset in webkit [290207] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for ideographic baseline with font fallback
​https://bugs.webkit.org/show_bug.cgi?id=236872

Reviewed by Antti Koivisto.

Let's use the pre-collected fallback fonts to adjust the inline box layout bounds with their ideographic baselines.
This is in preparation for enabling vertical text.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustLayoutBoundsWithFallbackFonts const):
(WebCore::Layout::LineBoxBuilder::collectFallbackFonts):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
6:45 AM Changeset in webkit [290206] by commit-queue@webkit.org
  • 14 edits
    1 add
    5 deletes in trunk

[WPE][GTK] Enable Thunder and remove old Clearkey CDM/Decryptor
​https://bugs.webkit.org/show_bug.cgi?id=235492

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-19
Reviewed by Xabier Rodriguez-Calvar.

.:

Enable Thunder in developer builds, this is now needed for the clearkey EME layout tests.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

The Thunder decryptor can now handle ClearKey payloads, as long as the underlying ocdm
library advertises it as supported. Thus the dedicated ClearKey decryptor is no longer
needed and can be removed.

Covered by existing EME ClearKey layout tests.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp:

(WebCore::CDMFactory::platformRegisterFactories):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp: Removed.

(): Deleted.
(WebCore::CDMProxyFactoryClearKey::singleton): Deleted.
(WebCore::CDMProxyFactoryClearKey::createCDMProxy): Deleted.
(WebCore::CDMProxyFactoryClearKey::supportsKeySystem): Deleted.
(WebCore::CDMProxyClearKey::~CDMProxyClearKey): Deleted.
(WebCore::CDMProxyClearKey::cencSetCounterVector): Deleted.
(WebCore::CDMProxyClearKey::cencSetDecryptionKey): Deleted.
(WebCore::CDMProxyClearKey::cencDecryptFullSample): Deleted.
(WebCore::CDMProxyClearKey::cencDecryptSubsampled): Deleted.
(WebCore::CDMProxyClearKey::cencDecrypt): Deleted.
(WebCore::CDMProxyClearKey::closeGCryptHandle): Deleted.
(WebCore::CDMProxyClearKey::gCryptHandle): Deleted.

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Removed.

(): Deleted.

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMFactoryThunder::supportedKeySystems const):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: Removed.

(webkit_media_clear_key_decrypt_class_init): Deleted.
(protectionSystemId): Deleted.
(cdmProxyAttached): Deleted.
(decrypt): Deleted.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: Removed.
  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcSendEvent):

LayoutTests:

Update EME ClearKey baselines, a few more tests were enabled.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/idlharness.https-expected.txt: Removed.
6:05 AM Changeset in webkit [290205] by Antti Koivisto
  • 15 edits in trunk

[CSS Container Queries] Match container queries correctly in non-rendered subtrees
​https://bugs.webkit.org/show_bug.cgi?id=236840

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:

Source/WebCore:

"If the query container does not have a principal box ... then the result of evaluating the size feature is unknown."

​https://drafts.csswg.org/css-contain-3/#size-container

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

Remove the assert, this issue is tested by marked-as-failure
imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::ContainerQueryEvaluator):
(WebCore::Style::ContainerQueryEvaluator::evaluate const):
(WebCore::Style::ContainerQueryEvaluator::resolveContainer const):

Factor into a function.
If we don't have selector matching state (like we do during style resolution) then look up containers from DOM.
An element without a renderer may still be a valid container (size queries againt it evaluate to unknown).

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

  • style/ContainerQueryEvaluator.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::containerQueryMatches):

Evaluate to unknown if we don't have a principal box.

5:30 AM Changeset in webkit [290204] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce LineBoxBuilder::collectFallbackFonts
​https://bugs.webkit.org/show_bug.cgi?id=236866

Reviewed by Antti Koivisto.

Let's move fallback font collect to a dedicated function and stop leaking internal line types to TextUtil.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::collectFallbackFonts):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::fallbackFontHasVerticalGlyph): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::fallbackFontsForText):
(WebCore::Layout::TextUtil::fallbackFontsForRun): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
4:36 AM Changeset in webkit [290203] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r290175): ASSERTION FAILED: platformSample.type == PlatformSample::CMSampleBufferType while running webgl tests
​https://bugs.webkit.org/show_bug.cgi?id=236878

Add a missing hunk.
Unreviewed, TBR Eric Carlson.

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-19

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::getVideoFrameBuffer):

1:01 AM Changeset in webkit [290202] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] layoutBoundsForInlineBox should read layoutBoundsPrimaryMetricsForInlineBox
​https://bugs.webkit.org/show_bug.cgi?id=236864

Reviewed by Antti Koivisto.

layoutBoundsForInlineBox returns the layout bounds based on the primary font.
This is in preparation for adding font fallback support for ideographic baseline.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::layoutBoundsPrimaryMetricsForInlineBox):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):
(WebCore::Layout::layoutBoundsMetricsForInlineBox): Deleted.

12:48 AM Changeset in webkit [290201] by graouts@webkit.org
  • 8 edits
    2 adds in trunk

REGRESSION (r287524): hihello.me does not show sliding sheet at the bottom of the page
​https://bugs.webkit.org/show_bug.cgi?id=236838
rdar://88672183

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add new WPT tests to check we correctly compute implicit keyframes when a 0% and/or 100% keyframe
is defined but only specifies a timing function. One test checks the output of getKeyframes() and
the other that we correctly account for the implicit vaues when computing styles.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
  • web-platform-tests/css/css-animations/animation-multiple-from-to-keyframes-with-only-timing-function-expected.txt: Added.
  • web-platform-tests/css/css-animations/animation-multiple-from-to-keyframes-with-only-timing-function.html: Added.

Source/WebCore:

When we fixed bug 234799 we fixed the behavior of keyframe deduplication in
Style::Resolver::keyframeRulesForName(). While this was a good fix, code that
relied on the KeyframeList that would eventually be yielded from that function
did not quite correctly add implicit keyframes for the 0% and 100% case in some
relatively obscure situation.

The site hihello.me made this shortcoming apparent. This site has this odd keyframe rule:

from, 60%, 75%, 90%, to {

animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);

}

It appears the intention of the author with this rule is to replicate the timing function
on multiple keyframes. However, this does not work. This timing function will not be used
for *anything* since if a rule is specified without an animation-timing-function value it
will use the value set on the element, not one on a different keyframe.

This also means that while there are explicit 0% and 100% keyframes, they are not adequate
to then compute implicit properties since the timing function wouldn't match the default
timing function (unless the element that those keyframes are applied to would happen to
specify that exact same timing function).

To correctly handle this, we need to do several things.

First of all, we remove the implicit keyframe code found in KeyframeEffect::getKeyframes()
and let KeyframeList::fillImplicitKeyframes() do all the work to correctly fill-in values
for properties not eplicitly specified on a 0% or 100% keyframe.

This means we need to improve that function to correctly do the task that it's supposed to
do. Now provided with a KeyframeEffect and an underlying style as parameters, for 0% and
100% it correctly:

  1. compiles a list of implicit properties for the given keyframe
  2. find a compatible keyframe for the implicit properties or create one
  3. set the implicit properties on that compatible keyframe to match the values found in the underlying style

This correctly takes cares of calls to getKeyframes() as well as the generation of keyframes
passed down to RenderLayerBacking when starting an accelerated animation.

But RenderLayerBacking also had some outdated assumptions on the KeyframeList it receives.
Indeed, it would always assume that a 0% or 100% keyframe would *always* specify properties
for the animated property. That was incorrect since we correctly deduplicate keyframes and
having several 0% or 100% keyframes is perfectly valid. Now we don't give special treatment
to 0% or 100% keyframes in RenderLayerBacking::startAnimation() and always check that a keyframe
features values for the animated property before creating an animation value to send down
to GraphicsLayer.

Finally, another place we make assumptions on implicit keyframes was when resolving styles
as effects are applied in KeyframeEffect::setAnimatedPropertiesInStyle(). There we assumed
that a 0% or 100% keyframe would always qualify as a keyframe containing the animated property,
whereas the steps for resolving styles as specified by the Web Animations specification has
logic to deal with the case where we don't find a 0% or 100% keyframe with an explicit value
for the animated property. So we simplified the checks there to only ever check for an
explicit value.

This rather obscure way to specify keyframes was not previously tested by WPT, so this patch
improves the testing coverage in a way that would have caught this regression in the first place.

Test: imported/w3c/web-platform-tests/css/css-animations/animation-multiple-from-to-keyframes-with-only-timing-function.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::insert):
(WebCore::KeyframeList::fillImplicitKeyframes):

  • rendering/style/KeyframeList.h:

Feb 18, 2022:

11:22 PM Changeset in webkit [290200] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

ASSERTION FAILED: !hasAnyOpenConnections() in UniqueIDBDatabase::~UniqueIDBDatabase()
​https://bugs.webkit.org/show_bug.cgi?id=236856

Reviewed by Chris Dumez.

The assertion is hit when running API test WebKit.MigrateIndexedDBDataToGeneralStorageDirectory. We need to
properly close UniqueIDBDatabase before it's destroyed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::storageSession): remove logging as it was added when we had check for
default session. Since we don't have the check now, the logging does not make much sense.

  • NetworkProcess/storage/IDBStorageManager.cpp:

(WebKit::IDBStorageManager::~IDBStorageManager):

  • NetworkProcess/storage/IDBStorageManager.h:
11:19 PM Changeset in webkit [290199] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

[Tools] Sanitizer builds should obey set-webkit-configuration --force-optimization-level
<​https://webkit.org/b/236859>
<rdar://problem/89161649>

Reviewed by Brent Fulgham.

  • Scripts/webkitdirs.pm:

(XcodeOptions):

  • Pass WK_FORCE_OPTIMIZATION_LEVEL instead of GCC_OPTIMIZATION_LEVEL if sanitizers are enabled so the optimization level can be overridden in sanitizer.xcconfig.
  • sanitizer/asan.xcconfig:

(WK_NOT_): Remove.
(WK_NOT_YES): Remove.

  • Move variables to sanitizer.xcconfig.
  • sanitizer/sanitizer.xcconfig:

(WK_EMPTY_): Add.
(WK_NOT_): Add.
(WK_NOT_YES): Add.

  • Add utility variables originally from SDKVariant.xcconfig.

(WK_OVERRIDE_OPTIMIZATION_LEVEL): Add.

  • Set to YES/NO depending on whether WK_FORCE_OPTIMIZATION_LEVEL is set.

(GCC_OPTIMIZATION_LEVEL):
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_YES): Add.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO): Add.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Debug): Rename from GCC_OPTIMIZATION_LEVEL_Debug.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Production): Rename from GCC_OPTIMIZATION_LEVEL_Production.
(GCC_OPTIMIZATION_LEVEL_OVERRIDE_NO_Release): Rename from GCC_OPTIMIZATION_LEVEL_Release.

  • Make use of WK_OVERRIDE_OPTIMIZATION_LEVEL and WK_FORCE_OPTIMIZATION_LEVEL to allow overriding the default optimization level for sanitizer builds.
9:26 PM Changeset in webkit [290198] by Ben Nham
  • 10 edits
    17 adds in trunk

Hook up PushManager to permission state
​https://bugs.webkit.org/show_bug.cgi?id=236739

Reviewed by Brady Eidson.

Source/WebCore:

This implements PushManager.permissionState. It returns the same value as
Notification.permission through the same mechanism.

This also makes PushManager.subscribe request permission from the user to show notifications
if the permission is in the default state and these requirements are met:

  1. The caller is a document with the same origin as a top level document. This means that cross-origin iframes cannot request push permissions. This matches Chrome's behavior.
  2. The caller cannot be a service worker. This limitation is allowed for by the spec.

There also needs to be some code added which removes a push subscription if the user deletes
the subscription entirely in the UI, for instance when the UIProcess calls
WKNotificationManagerProviderDidRemoveNotificationPolicies. That will be handled in a
separate patch.

Covered by new layout tests.

  • Modules/push-api/PushManager.cpp:

(WebCore::PushManager::subscribe):
(WebCore::PushManager::getSubscription):
(WebCore::PushManager::permissionState):

Source/WebKit:

Update comment explaining why we still have a permission state stub in webpushd.

  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::getPushPermissionState):

Tools:

Made the WebPushD API tests work now that subscribe checks for permission.

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

LayoutTests:

Added tests that make sure that PushManager.permissionState() and PushManager.subscribe()
respect the notification permission level for the current origin.

I made these regular tests rather than WPT tests because the WPT test harness calls
grantWebNotificationPermission at the top of its setup script (in testharnessreport.js), and
I didn't want to change that for this patch.

  • http/tests/push-api/resources/push-api-test-pre.js: Added.

(finishPushAPITest):
(waitForState):

  • http/tests/push-api/resources/subscribe-iframe-cross-origin.html: Added.
  • http/tests/push-api/resources/subscribe-iframe-same-origin.html: Added.
  • http/tests/push-api/resources/subscribe-tests.js: Added.

(async testServiceWorkerPermissionState):
(async testDocumentPermissionState):
(async testServiceWorkerSubscribe):
(async testDocumentSubscribe):

  • http/tests/push-api/resources/subscribe-worker.js: Added.

(async event):

  • http/tests/push-api/subscribe-default-permissions-expected.txt: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-cross-origin-expected.txt: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-cross-origin.html: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-same-origin-expected.txt: Added.
  • http/tests/push-api/subscribe-default-permissions-iframe-same-origin.html: Added.
  • http/tests/push-api/subscribe-default-permissions.html: Added.
  • http/tests/push-api/subscribe-deny-permissions-expected.txt: Added.
  • http/tests/push-api/subscribe-deny-permissions.html: Added.
  • http/tests/push-api/subscribe-grant-permissions-expected.txt: Added.
  • http/tests/push-api/subscribe-grant-permissions.html: Added.
  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
8:27 PM Changeset in webkit [290197] by ntim@apple.com
  • 3 edits in trunk

Stop propagating inertness through iframes in Node::deprecatedIsInert()
​https://bugs.webkit.org/show_bug.cgi?id=236512

Reviewed by Chris Dumez.

This is only a bug for Node::deprecatedIsInert(), so it only affects focus. Selection APIs, etc. weren't affected
before this bug.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:

Source/WebCore:

Test: web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames.html

  • dom/Node.cpp:

(WebCore::Node::deprecatedIsInert const):

8:14 PM Changeset in webkit [290196] by sihui_liu@apple.com
  • 4 edits in trunk

Source/WebKit:
Add assertion that no two network sessions share the same storage path
​https://bugs.webkit.org/show_bug.cgi?id=236844

Reviewed by Chris Dumez.

Each NetworkStorageManager has its own queue and accesses the storage files on that queue, so we can't have two
NetworkworkStorageManagers use the same path, as the path may be accessed concurrently and cause corruption.
Currently we have an SPI for setting custom generalStorageDirectory for WebsiteDataStore (in
_WKWebsiteDataStoreConfiguration), which means SPI clients can create two sessions with the same path in theory.
Let's add an assertion to ensure that does not happen.

This assertion has helped find a bug in WebKitTestRunner that we didn't set custom generalStorageDirectory for a
custom WebsiteDataStore (so it's using the same path as default WebsiteDataStore).

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::activePaths):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::~NetworkStorageManager):

Tools:
Add assertion that no two network session share the same storage path
​https://bugs.webkit.org/show_bug.cgi?id=236844

Reviewed by Chris Dumez.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):

7:56 PM Changeset in webkit [290195] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

[libpas] Increase scavenger period from 100ms to 125ms in Darwin x64
​https://bugs.webkit.org/show_bug.cgi?id=236873

Reviewed by Saam Barati.

Make x64 scavenger less aggressive while maintaining Membuster neutral
to make it less work.

  • libpas/src/libpas/pas_config_prefix.h:
  • libpas/src/libpas/pas_scavenger.c:
  • libpas/src/libpas/pas_utils.h:
7:53 PM Changeset in webkit [290194] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Make ArrayPrototype just an array
​https://bugs.webkit.org/show_bug.cgi?id=236869

Reviewed by Saam Barati.

Originally, ArrayPrototype has slightly different memory layout & different logic etc.
But now, it is just an array with a lot of properties. We should just make it an array.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/ArrayPrototype.h:
7:21 PM Changeset in webkit [290193] by mark.lam@apple.com
  • 91 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, reverting r290188.
​https://bugs.webkit.org/show_bug.cgi?id=236875

Broke WebKitGTK &amp; WPE build bots

Reverted changeset:

"Provide a WebCore subspaceImplFor template to make code more
readable."
​https://bugs.webkit.org/show_bug.cgi?id=236868
​https://commits.webkit.org/r290188

Patch by Commit Queue <​commit-queue@webkit.org> on 2022-02-18

6:47 PM Changeset in webkit [290192] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

http/wpt/push-api/onpush-disabled.html fails (incremental build issue?)
​https://bugs.webkit.org/show_bug.cgi?id=236874

Unreviewed test gardening.

6:09 PM Changeset in webkit [290191] by Robert Jenner
  • 2 edits
    1 copy in trunk/LayoutTests

REGRESSION(r287249): [ Monterey wk2 ] media/media-source/media-webm-vorbis-partial.html is a constant text failure
​https://bugs.webkit.org/show_bug.cgi?id=236857

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-18

  • platform/mac-bigsur/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt.
  • platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Rebaslining due to test changes.
5:03 PM Changeset in webkit [290190] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebGPU

[WebGPU] Any object-creation function that takes a descriptor can fail
​https://bugs.webkit.org/show_bug.cgi?id=236855

Reviewed by Dean Jackson.

Generally, we view allocation failure as catastrophic, and crash. Because of that, I originally
made these methods return Refs, because I expected the failure case to cause intentional crashes
rather than return nullptr.

However, descriptors the shared header have a nextInChain pointer, which allows callers to pass
in extra extension-specific structs, as a linked list. If the WebGPU implementation sees one of
these extra structs that it doesn't know what to do with, it has to fail. That means that it's
possible to fail in a way other than an allocation failure, which means these functions have to
return RefPtrs instead of Refs.

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):
(wgpuAdapterRequestDevice):

  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderFinish):

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::createBindGroup):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::Device::createBuffer):
(WebGPU::Device::createCommandEncoder):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::Device::createPipelineLayout):
(WebGPU::Device::createQuerySet):
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::Device::createSampler):
(WebGPU::Device::createShaderModule):
(WebGPU::Device::createSwapChain):
(WebGPU::Device::createTexture):
(WebGPU::Device::getQueue):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceGetQueue):

  • WebGPU/Instance.h:
  • WebGPU/Instance.mm:

(WebGPU::Instance::createSurface):
(wgpuInstanceCreateSurface):

  • WebGPU/RenderBundleEncoder.h:
  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::finish):
(wgpuRenderBundleEncoderFinish):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::createView):
(wgpuTextureCreateView):

5:02 PM Changeset in webkit [290189] by pvollan@apple.com
  • 19 edits in trunk/Source

Move content filtering to Networking process
​https://bugs.webkit.org/show_bug.cgi?id=233760
<rdar://problem/86150702>

Reviewed by Brent Fulgham.

Source/WebCore:

Remove content filtering from DocumentLoader when the feature is enabled, since this takes place in the WebContent process.
Modify the ContentFilter class by removing use of the types CachedResoure and CachedRawResource, since objects of these
types are not available in the Networking process. Parameters with these types are replaced with URL parameters.
The new behavior is behind a feature flag, which is not enabled in this patch.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::stopFilteringMainResource):
(WebCore::ContentFilter::continueAfterResponseReceived):
(WebCore::ContentFilter::continueAfterDataReceived):
(WebCore::ContentFilter::continueAfterNotifyFinished):
(WebCore::ContentFilter::didDecide):
(WebCore::ContentFilter::deliverResourceData):
(WebCore::ContentFilter::url):
(WebCore::ContentFilter::deliverStoredResourceData):

  • loader/ContentFilter.h:

(WebCore::ContentFilter::blockedError const):
(WebCore::ContentFilter::isAllowed const):
(WebCore::ContentFilter::responseReceived const):

  • loader/ContentFilterClient.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::clearMainResource):
(WebCore::DocumentLoader::becomeMainResourceClient):
(WebCore::DocumentLoader::contentFilterDidBlock):
(WebCore::DocumentLoader::handleContentFilterDidBlock):
(WebCore::DocumentLoader::handleContentFilterProvisionalLoadFailure):
(WebCore::DocumentLoader::contentFilterWillHandleProvisionalLoadFailure):
(WebCore::DocumentLoader::contentFilterHandleProvisionalLoadFailure):

  • loader/DocumentLoader.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchDidFailProvisionalLoad):

  • loader/PolicyChecker.cpp:

(WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy):

  • loader/SubstituteData.h:

(WebCore::SubstituteData::encode const):
(WebCore::SubstituteData::decode):

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::canHandleRequest const):

Source/WebKit:

Move content filtering from the DocumentLoader class in the WebProcess to the NetworkResourceLoader class in the
Networking process. The NetworkResourceLoader is now a client of the content filter, and will send messages
to the DocumentLoader in the WebProcess to cancel the load when the content filter decided to block the load.
If the content filter is providing replacement data, this will also be sent over IPC to the WebProcess.
Data is not being sent to the WebProcess until the content filter has decided to allow the load, if content
filtering is enabled.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::startContentFiltering):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):
(WebKit::NetworkResourceLoader::contentFilterDidBlock):
(WebKit::NetworkResourceLoader::cancelMainResourceLoadForContentFilter):
(WebKit::NetworkResourceLoader::handleProvisionalLoadFailureFromContentFilter):

  • NetworkProcess/NetworkResourceLoader.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::reloadAfterUnblockedContentFilter):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::contentFilterDidBlockLoad):
(WebKit::WebResourceLoader::cancelMainResourceLoadForContentFilter):
(WebKit::WebResourceLoader::handleProvisionalLoadFailureFromContentFilter):
(WebKit::WebResourceLoader::reload):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
4:57 PM Changeset in webkit [290188] by mark.lam@apple.com
  • 91 edits
    2 adds in trunk/Source/WebCore

Provide a WebCore subspaceImplFor template to make code more readable.
​https://bugs.webkit.org/show_bug.cgi?id=236868
rdar://problem/89170090

Reviewed by Yusuke Suzuki.

The pre-existing code is difficult to follow, especially in CodeGeneratorJS.pm.
This change also consolidates the framework implementation of subspaceForImpl in
one place rather than scattered across 3 locations. This will make it easier to
change this code in the future.

Also introduced ExtendedDOMIsoSubspace and ExtendedDOMClientIsoSubspaces classes
and moved the FileSystemDirectoryHandleIterator subspaces in there. This makes
the code behave more consistently for FileSystemDirectoryHandleIterator's
IsoSubspace as for other IsoSubspaces.

Also rebased bindings test results.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ExtendedDOMClientIsoSubspaces.h: Added.
  • bindings/js/ExtendedDOMIsoSubspaces.h: Added.
  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSHeapData::JSHeapData):
(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSHeapData::subspaces):
(WebCore::JSVMClientData::idbSerializationSpace):
(WebCore::JSVMClientData::clientSubspaces):
(WebCore::subspaceForImpl):
(WebCore::JSHeapData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSHeapData::setFileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace): Deleted.
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateIterableDefinition):

  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStar::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp:

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactions::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracer::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurity::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditional::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.cpp:

(WebCore::JSTestTaggedWrapper::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

4:52 PM Changeset in webkit [290187] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add required Mach service to the sandbox of the GPU process
​https://bugs.webkit.org/show_bug.cgi?id=236860

Reviewed by Darin Adler.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
4:44 PM Changeset in webkit [290186] by Devin Rousso
  • 15 edits in trunk/Source

[iOS] Safari can sometimes hang while printing due to sync IPC
​https://bugs.webkit.org/show_bug.cgi?id=236811
<rdar://problem/56425783>

Reviewed by Aditya Keerthi.

Source/WebKit:

  • UIProcess/_WKWebViewPrintFormatter.h:
  • UIProcess/_WKWebViewPrintFormatterInternal.h:
  • UIProcess/_WKWebViewPrintFormatter.mm:

(-[_WKWebViewPrintFormatter requiresMainThread]): Added.
Adopt new UIKit SPI for allowing UIPrintFormatter to be called off the main thread.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _processDidExit]):
(-[WKContentView _wk_printFormatterRequiresMainThread]): Added.
(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _waitForDrawToPDFCallbackIfNeeded:]): Added.
(-[WKContentView _wk_printedDocument:]):
(-[WKContentView _waitForDrawToPDFCallback:]): Deleted.
Reorganize this code to support both sync and async flows.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computePagesForPrintingiOS): Added.
(WebKit::WebPageProxy::drawToPDFiOS): Added.
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): Deleted.

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

Split WebPageProxy::computePagesForPrintingAndDrawToPDF into two methods, as the first
"part" (i.e. computePagesForPrintingiOS) is no longer needed with this new UIKit SPI.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::computePagesForPrinting):

  • UIProcess/API/C/WKPage.cpp:

(WKPageComputePagesForPrinting):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _askPageToComputePageRects]):
Have WebPageProxy::computePagesForPrinting take a WebCore::FrameIdentifier instead of a
WebFrameProxy* so that more callers (e.g. API::FrameHandle) can use it.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _wk_printFormatterRequiresMainThread]): Added.
By the time WKPDFView is asked to print, it should already have all the data necessary to
do so, so there's no reason to not use the main thread (since there's no sync IPC).

Source/WTF:

Adopt new UIKit SPI for allowing UIPrintFormatter to be called off the main thread.

  • wtf/PlatformHave.h:

Add a HAVE_UIKIT_BACKGROUND_THREAD_PRINTING to guard this new behavior.

4:40 PM Changeset in webkit [290185] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Fix test sharding when using --make-runner and --remote
​https://bugs.webkit.org/show_bug.cgi?id=236560

Reviewed by Adrian Perez de Castro.

After ​https://commits.webkit.org/244496@main, test sharding was broken
for the make runner. Specifically, all remotes would get assigned all
tests (instead of a subset).

Fix this by propagating and using the correct value for remoteHosts.

  • Scripts/webkitruby/jsc-stress-test-writer-default.rb:
4:28 PM Changeset in webkit [290184] by J Pascoe
  • 22 edits in trunk/Source

[WebAuthn] Support for conditional mediation
​https://bugs.webkit.org/show_bug.cgi?id=236820
rdar://84821947

Reviewed by Brent Fulgham and Chris Dumez.

This patch adds support for conditional mediation, as defined in the
credentials management spec: ​https://w3c.github.io/webappsec-credential-management/#dom-credentialmediationrequirement-conditional

Source/WebCore:

  • Modules/credentialmanagement/BasicCredential.cpp:

(WebCore::BasicCredential::isConditionalMediationAvailable):

  • Modules/credentialmanagement/BasicCredential.h:
  • Modules/credentialmanagement/BasicCredential.idl:
  • Modules/credentialmanagement/CredentialRequestOptions.h:
  • Modules/credentialmanagement/CredentialRequestOptions.idl:
  • Modules/credentialmanagement/CredentialsContainer.cpp:

(WebCore::CredentialsContainer::get):

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
(WebCore::AuthenticatorCoordinator::isConditionalMediationAvailable const):

  • Modules/webauthn/AuthenticatorCoordinator.h:
  • Modules/webauthn/AuthenticatorCoordinatorClient.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::configurationAssertionRequestContext):
(WebKit::WebAuthenticatorCoordinatorProxy::contextForRequest):
(WebKit::WebAuthenticatorCoordinatorProxy::performRequest):
(WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable):

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::isConditionalMediationAvailable):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::getAssertion):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h:
4:27 PM Changeset in webkit [290183] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

Remove unneeded sandbox extension code
​https://bugs.webkit.org/show_bug.cgi?id=228777
<rdar://problem/81516828>

Reviewed by Brent Fulgham.

Since the GPU process is now enabled by default, some related sandbox extension code can be removed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::mediaRelatedMachServices): Deleted.
(WebKit::mediaRelatedIOKitClasses): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

  • WebProcess/com.apple.WebProcess.sb.in:
4:22 PM Changeset in webkit [290182] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.0.6

Tag Safari-613.1.17.0.6.

4:22 PM Changeset in webkit [290181] by Alan Coon
  • 1 delete in tags/Safari-613.1.17.0.6

Delete tag.

4:18 PM Changeset in webkit [290180] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add access to required Mach service in the Network process
​https://bugs.webkit.org/show_bug.cgi?id=236853
<rdar://89031731>

Reviewed by Darin Adler.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
4:03 PM Changeset in webkit [290179] by Robert Jenner
  • 39 edits
    1 delete in trunk

Unreviewed, reverting r290149.

Broke Debug Builds.

Reverted changeset:

"Generate compile_commands.json on macOS Builds"
​https://bugs.webkit.org/show_bug.cgi?id=235686
​https://commits.webkit.org/r290149

3:50 PM Changeset in webkit [290178] by Wenson Hsieh
  • 10 edits
    2 adds in trunk

[Live Text] Add a mechanism to inject images into image overlays
​https://bugs.webkit.org/show_bug.cgi?id=236842

Reviewed by Aditya Keerthi.

Source/WebCore:

To support additional behaviors around the "Copy Cropped Image" context menu item on macOS, add a new image
overlay helper method to install a temporary image element within the image overlay shadow root of a host image.
See below for more details.

Test: fast/images/text-recognition/image-overlay-cropped-image.html

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::imageOverlayCroppedImageIdentifier):
(WebCore::ImageOverlay::imageOverlayCroppedImageBackdropIdentifier):
(WebCore::ImageOverlay::isOverlayText):
(WebCore::ImageOverlay::removeOverlaySoonIfNeeded):
(WebCore::ImageOverlay::installImageOverlayStyleSheet):

Pull out logic for installing the UA style sheet for image overlays into a helper method, so that we can ensure
the stylesheet in both cases where the CroppedImage is installed first, or Live Text is injected first.

(WebCore::ImageOverlay::updateSubtree):

Refactor this method to not completely remove the image overlay root container in the case where the Live Text
subtree needs to be regenerated; this prevents us from inadvertently removing the cropped image overlay elements
when updating Live Text elements in the UA shadow root.

(WebCore::ImageOverlay::CroppedImage::install):

Add a method to install a cropped image overlay into the given host element. This creates a new blob URL using
the given image data and MIME type, and uses it to insert an image element within the image overlay root
container that's absolutely positioned over the given crop rect (normalized relative to the image).

This inserted image is presented over another dimming element that fades in and out as setVisibility() is
called. Finally, install returns a unique_ptr to a RAII object that can be used to fade the cropped image
backdrop in or out; when destroyed, this RAII object immediately disconnects both the backdrop and the image
element, and revokes the temporary blob URL created during install().

(WebCore::ImageOverlay::CroppedImage::CroppedImage):
(WebCore::ImageOverlay::CroppedImage::~CroppedImage):
(WebCore::ImageOverlay::CroppedImage::setVisibility):

  • dom/ImageOverlay.h:
  • dom/ShadowRoot.h:

Add a using TreeScope::getElementById; here to make it possible to call getElementById on ShadowRoot
without having to cast to a TreeScope.

  • html/shadow/imageOverlay.css:

(img#image-overlay-cropped-image):
(div#image-overlay-cropped-image-backdrop):

  • testing/Internals.cpp:

(WebCore::Internals::pngDataForTesting):
(WebCore::Internals::installCroppedImageOverlay):
(WebCore::Internals::uninstallCroppedImageOverlay):

Add internal testing support for the cropped image overlay by allowing layout tests to inject an image overlay
with hard-coded PNG data into the given element.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm:

(WebCore::Internals::pngDataForTesting):

LayoutTests:

Add a layout test that exercises the new cropped image overlay code.

  • fast/images/text-recognition/image-overlay-cropped-image-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-cropped-image.html: Added.
3:42 PM Changeset in webkit [290177] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (10/5/2021?): [iOS] http/wpt/cross-origin-opener-policy/single-request-to-server.html is a flaky failure
​https://bugs.webkit.org/show_bug.cgi?id=233284

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
2:58 PM Changeset in webkit [290176] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.4

Tag Safari-614.1.4.

2:48 PM Changeset in webkit [290175] by commit-queue@webkit.org
  • 47 edits in trunk

WebGL GPUP: Crash when running fast/mediastream/getUserMedia-to-canvas-1.html
​https://bugs.webkit.org/show_bug.cgi?id=236502
Source/WebCore:

<rdar://problem/88862921>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-18
Reviewed by Eric Carlson.

Add a polymorphic function asVideoFrameCV to convert VideoFrame to VideoFrameCV.
VideoFrameCV is used to draw the in-process video frame to in-process WebGL.

RemoteVideoFrameProxy will implement asVideoFrameCV by fetching the data from
GPUP and returning a new object exposing the data.

No new tests, tested by now unskipped tests.

  • platform/VideoFrame.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):

  • platform/graphics/cv/VideoFrameCV.h:
  • platform/graphics/cv/VideoFrameCV.mm:

(WebCore::VideoFrameCV::asVideoFrameCV):

Source/WebKit:

The crash is about MediaPlayerPrivateMediaStreamAVFObjC being in WP while other
media player private variants are proxied to GPUP. The previous implementation
would send media player identifiers to GPUP for copying.
This patch will implement the copy by the media player creating a reference
to VideoFrame. WebGL would send reference of the VideoFrame to GPUP for copying.

Make WP MediaPlayerPrivateRemote always return RemoteVideoFrameProxy objects
instead of WP in-process VideoFrame instances (for Cocoa VideoFrameCV) that
would hold the video data in process.

WP MediaPlayerPrivateMediaStreamAVFObjC already returns RemoteVideoFrameProxy
objects. This way GPUP WebGL implementation can obtain the read reference
to the remote object and send it in copyTextureFromVideoFrame message.

The WP in-process WebGL implementation converts the RemoteVideoFrameProxy
to VideoFrameCV with the new RemoteVideoFrameProxy::asVideoFrameCV.

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-18
Reviewed by Eric Carlson.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromVideoFrame):
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLCocoa::RemoteGraphicsContextGLCocoa):
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::asVideoFrameCV):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:

LayoutTests:

Unskip the previous crashes caused by the lack of implementation.

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-18
Reviewed by Eric Carlson.

  • platform/ios-wk2/TestExpectations:
2:43 PM Changeset in webkit [290174] by eric.carlson@apple.com
  • 23 edits in trunk/Source

[macOS] Allow screen and window capture to be done in the GPU Process
​https://bugs.webkit.org/show_bug.cgi?id=236815
<rdar://problem/89117278>

Reviewed by Jer Noble.

Source/WebCore:

Tested manually.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h:
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(WebCore::ScreenCaptureKitCaptureSource::sessionDidChangeContent): Call CaptureDevice
constructor directly since we have everything it needs.
(WebCore::findSharableDevice): Extract logic from processSharableContent into a
static function so it can be reused.
(WebCore::ScreenCaptureKitCaptureSource::findShareableContent): Use findSharableDevice.
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration): Add logging.
(WebCore::ScreenCaptureKitCaptureSource::startContentStream): Ditto.
(WebCore::ScreenCaptureKitCaptureSource::captureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::processSharableContent): Deleted.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.h:

(WebCore::ScreenCaptureKitSharingSessionManager::SharingSessionObserver::operator== const): Deleted.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:

(WebCore::ScreenCaptureKitSharingSessionManager::isAvailable):
(WebCore::ScreenCaptureKitSharingSessionManager::sessionDidChangeContent): Call
CaptureDevice constructor directly since we have everything it needs.
(WebCore::ScreenCaptureKitSharingSessionManager::promptForGetDisplayMedia): Call
completion handler if the class is not available.

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::showWindowPicker): Call the picker.
(WebKit::GPUProcess::showScreenPicker): Ditto.
(WebKit::GPUProcess::setUseScreenCaptureKit):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: Add rule to allow sandbox

to be extended dynamically with the mach-lookups required for the picker.

  • Scripts/process-entitlements.sh: Add entitlements required for picker.
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const): Encode shouldCaptureDisplayInGPUProcess.
(WebKit::WebPageCreationParameters::decode): Decode shouldCaptureDisplayInGPUProcess.

  • Shared/WebPageCreationParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::addDisplayCaptureSandboxExtension): Create extensions required to use the
system picker.
(WebKit::GPUProcessProxy::updateSandboxAccess): Add display capture.
(WebKit::GPUProcessProxy::updateCaptureAccess): Pass "allowDisplayCapture" to updateSandboxAccess.
(WebKit::GPUProcessProxy::showWindowPicker):
(WebKit::GPUProcessProxy::showScreenPicker):
(WebKit::GPUProcessProxy::updatePreferences):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters): Set shouldCaptureDisplayInGPUProcess.

  • UIProcess/mac/DisplayCaptureSessionManager.mm:

(WebKit::DisplayCaptureSessionManager::showWindowPicker): Send message to GPU
process when necessary.
(WebKit::DisplayCaptureSessionManager::showScreenPicker): Ditto.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformInitialize): Pass shouldCaptureDisplayInGPUProcess to setupCaptureProcesses.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::setupCaptureProcesses): Add shouldCaptureDisplayInGPUProcess
parameter.
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource): Deal
with GPU process capture.
(WebKit::UserMediaCaptureManager::DisplayFactory::setShouldCaptureInGPUProcess):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add UseGPUProcessForDisplayCapture.
2:40 PM Changeset in webkit [290173] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Use async NSSharingServicePicker menu if available
​https://bugs.webkit.org/show_bug.cgi?id=236823
<rdar://problem/88858606>

Reviewed by Dean Jackson.

  • UIProcess/Cocoa/WKShareSheet.h:
  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithShareDataArray:inRect:]):
(-[WKShareSheet canShowPickerAsync:]):
(-[WKShareSheet showPickerAsync:completionHandler:]):

2:37 PM Changeset in webkit [290172] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.0.6

Tag Safari-613.1.17.0.6.

2:36 PM Changeset in webkit [290171] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.1.6

Tag Safari-613.1.17.1.6.

2:32 PM Changeset in webkit [290170] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix ideographic baseline for atomic inline level boxes with non-zero descent
​https://bugs.webkit.org/show_bug.cgi?id=236841

Reviewed by Antti Koivisto.

In most cases atomic inline level boxes have zero descent values. However the ideographic should
include the descent value (see RenderBox::baselinePosition)
This patch also removes the check for orthogonal content since it is already covered at LineLayout::updateLayoutBoxDimensions
(getting the correct baseline value that is).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

2:19 PM Changeset in webkit [290169] by Kocsen Chung
  • 4 edits in branches/safari-614.1.4-branch/Source/WebCore

Cherry-pick r290153. rdar://problem/89142268

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
​https://bugs.webkit.org/show_bug.cgi?id=236787
<rdar://89076606>

Reviewed by Eric Carlson.

Source/WebCore:

Wrap call-sites in #if HAVE() macros.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const): (WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSessionOrGroup):

Source/WebCore/PAL:

Follow-up: build problems still persist on certain platforms, so the "robustness"
changes made previously were not robust enough. The guards in AVFoundationSPI.h were
intended to ensure the definitions were present even on builds where the official API
is not supported. However, just because the API is not supported does not mean it's not
present, which leads to duplicate-interface build errors.

Fix the AVFoundationSPI.h pragmas to only define the classes and methods where those
objects are supported, and in parallel, wrap implementations which use those objects
in those same guards (making these checks compile-time in addition to runtime).

Move the declarations inside the #else (IOW, !USE(APPLE_INTERNAL_SDK)) block above,
and wrap each declaration in the correct HAVE() macro.

  • pal/spi/cocoa/AVFoundationSPI.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290153 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:01 PM Changeset in webkit [290168] by dino@apple.com
  • 1 delete in trunk/Websites/bugs.webkit.org/template/en/default/queue.json.tmpl

Revert 290166.

1:38 PM Changeset in webkit [290167] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r288201): ASSERTION FAILED: !allScriptExecutionContextsMap().contains(m_identifier)
​https://bugs.webkit.org/show_bug.cgi?id=236123
<rdar://problem/88472494>

Reviewed by Chris Dumez.

We sometimes call setupForReplace which reset m_gotFirstByte to false.
In that case, we may reuse the same client ID for two different documents.
To prevent this, we clear the clientID in setupForReplace.
For good measure, if service worker runtime flag is not on, we do not set the client ID at all.

Covered by existing WK1 tests.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setupForReplace):
(WebCore::DocumentLoader::loadMainResource):

1:32 PM Changeset in webkit [290166] by dino@apple.com
  • 1 add in trunk/Websites/bugs.webkit.org/template/en/default/queue.json.tmpl

Temporarily adding JSON output for request queue to see if it works.
Will remove it immediately after testing.

Unreviewed.

  • template/en/default/queue.json.tmpl: Added.
1:29 PM Changeset in webkit [290165] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r289990): [iOS] fast/backgrounds/gradient-background-shadow.html is consistently failing
​https://bugs.webkit.org/show_bug.cgi?id=236854

Unreviewed. Expanding fuzzy range.

  • fast/backgrounds/gradient-background-shadow.html:
1:21 PM Changeset in webkit [290164] by ntim@apple.com
  • 13 edits
    2 moves
    14 adds in trunk/LayoutTests

Re-import inert and <dialog> WPT
​https://bugs.webkit.org/show_bug.cgi?id=236808

Reviewed by Simon Fraser.

Commit: ​https://github.com/web-platform-tests/wpt/commit/0d483a3bea340a2c60cb7a4add49eb63cbba2a64

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-double-nested-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus-expected.txt.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-double-nested.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-label-focus.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-scroll-height.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt: Added.
  • web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html: Added.
  • web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-canvas-fallback-content.tentative.html: Added.
  • web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-iframe-hittest.tentative.html: Added.
  • web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-iframe-tabbing.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-uneditable.tentative.html:
  • web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html: Added.
  • web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html: Added.
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt: Added.
1:20 PM Changeset in webkit [290163] by Alan Coon
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r290152. rdar://problem/88327814

Keep promise in scope when calling DeferredPromise::reject
​https://bugs.webkit.org/show_bug.cgi?id=236454

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-18
Reviewed by Darin Adler.

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::resolveWithFormData):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290152 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:20 PM Changeset in webkit [290162] by Alan Coon
  • 3 edits
    6 adds in branches/safari-613.1.17.0-branch

Cherry-pick r290156. rdar://problem/89154452

ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
​https://bugs.webkit.org/show_bug.cgi?id=236846

Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/push-api/onpush-disabled.html

http/wpt/push-api/onpush-enabled.html

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:

LayoutTests:

  • http/wpt/push-api/onpush-disabled-expected.txt: Added.
  • http/wpt/push-api/onpush-disabled.html: Added.
  • http/wpt/push-api/onpush-disabled.js: Added. (test):
  • http/wpt/push-api/onpush-enabled-expected.txt: Added.
  • http/wpt/push-api/onpush-enabled.html: Added.
  • http/wpt/push-api/onpush-enabled.js: Added. (test):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290156 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:18 PM Changeset in webkit [290161] by rniwa@webkit.org
  • 2 edits in trunk

Replace trac URLs in Introduction.md by equivalent GitHub URLs
​https://bugs.webkit.org/show_bug.cgi?id=236826

Reviewed by Sihui Liu.

Replaced track links by equivalent Github links in Introduction.md.

Also replaced an example of a reference test since the previously referenced test
had been converted to a manual test, and updated documentations around preferences
as they had been refactored since this was originally written.

  • Introduction.md:
1:18 PM Changeset in webkit [290160] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r290152. rdar://problem/88327814

Keep promise in scope when calling DeferredPromise::reject
​https://bugs.webkit.org/show_bug.cgi?id=236454

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-18
Reviewed by Darin Adler.

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::resolveWithFormData):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290152 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:17 PM Changeset in webkit [290159] by Alan Coon
  • 3 edits
    6 adds in branches/safari-613.1.17.1-branch

Cherry-pick r290156. rdar://problem/89154452

ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
​https://bugs.webkit.org/show_bug.cgi?id=236846

Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/push-api/onpush-disabled.html

http/wpt/push-api/onpush-enabled.html

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:

LayoutTests:

  • http/wpt/push-api/onpush-disabled-expected.txt: Added.
  • http/wpt/push-api/onpush-disabled.html: Added.
  • http/wpt/push-api/onpush-disabled.js: Added. (test):
  • http/wpt/push-api/onpush-enabled-expected.txt: Added.
  • http/wpt/push-api/onpush-enabled.html: Added.
  • http/wpt/push-api/onpush-enabled.js: Added. (test):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290156 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:13 PM Changeset in webkit [290158] by Alan Coon
  • 18 edits
    2 copies in branches/safari-613.1.17.1-branch/Source/bmalloc

Revert r290134. rdar://problem/89071706

This reverts patch application at r290134.

1:12 PM Changeset in webkit [290157] by Elliott Williams
  • 13 edits in trunk

[XCBuild] "All Modules" workspace builds building out of order
​https://bugs.webkit.org/show_bug.cgi?id=236813

Reviewed by Alexey Proskuryakov.

Source/ThirdParty/libwebrtc:

Nothing particularly interesting here, but should fix build failures on
Apple-BigSur-XCBuild-Release-Build <​https://build.webkit.org/#/builders/463>.

  • libwebrtc.xcodeproj/project.pbxproj: Ensure yasm is built before using it.

Source/WebCore/PAL:

Add product dependency on WTF, since PAL uses its headers without linking against it.

  • PAL.xcodeproj/project.pbxproj:

Source/WebGPU:

Add product dependency on WTF. WGSL uses its headers without linking against it.

  • Configurations/WGSL.xcconfig:
  • WebGPU.xcodeproj/project.pbxproj:

Tools:

Add product dependency on WebKit. LayoutTestHelper uses headers from WebKit and lower
frameworks without linking against them.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/mac/Configurations/LayoutTestHelper.xcconfig:
12:58 PM Changeset in webkit [290156] by Chris Dumez
  • 3 edits
    6 adds in trunk

ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
​https://bugs.webkit.org/show_bug.cgi?id=236846

Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/push-api/onpush-disabled.html

http/wpt/push-api/onpush-enabled.html

  • Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:

LayoutTests:

  • http/wpt/push-api/onpush-disabled-expected.txt: Added.
  • http/wpt/push-api/onpush-disabled.html: Added.
  • http/wpt/push-api/onpush-disabled.js: Added.

(test):

  • http/wpt/push-api/onpush-enabled-expected.txt: Added.
  • http/wpt/push-api/onpush-enabled.html: Added.
  • http/wpt/push-api/onpush-enabled.js: Added.

(test):

12:42 PM Changeset in webkit [290155] by mark.lam@apple.com
  • 87 edits in trunk/Source/WebCore

Fix copy-paste error in r290129.
​https://bugs.webkit.org/show_bug.cgi?id=236847
rdar://problem/89155146

Reviewed by Yusuke Suzuki.

The heap server subspace name should be parameterized based on the interfaceName.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStar::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp:

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactions::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracer::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludes::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSON::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurity::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::JSTestIterable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNode::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditional::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.cpp:

(WebCore::JSTestTaggedWrapper::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

12:37 PM Changeset in webkit [290154] by J Pascoe
  • 9 edits in trunk

[WebAuthn] Add credentialID to _WKWebAuthenticationAssertionResponse and userHandle in getAllLocalAuthenticatorCredentials
​https://bugs.webkit.org/show_bug.cgi?id=236657
rdar://problem/88979279

Reviewed by Brent Fulgham.

Source/WebKit:

Modified API tests to verify new fields present and populated.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.cpp:

(API::WebAuthenticationAssertionResponse::credentialID const):

  • UIProcess/API/APIWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:

(-[_WKWebAuthenticationAssertionResponse credentialID]):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(getAllLocalAuthenticatorCredentialsImpl):

Tools:

Adjusted existing API tests, GetAllCredential and MultipleAccounts, to test for new fields
being returned and that they match the values expected. These values stem from testUserEntityBundleBase64
and testAssertionMessageLongBase64.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]):
(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [290153] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
​https://bugs.webkit.org/show_bug.cgi?id=236787
<rdar://89076606>

Reviewed by Eric Carlson.

Source/WebCore:

Wrap call-sites in #if HAVE() macros.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::protectionStatusForDisplayID const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSessionOrGroup):

Source/WebCore/PAL:

Follow-up: build problems still persist on certain platforms, so the "robustness"
changes made previously were not robust enough. The guards in AVFoundationSPI.h were
intended to ensure the definitions were present even on builds where the official API
is not supported. However, just because the API is not supported does not mean it's not
present, which leads to duplicate-interface build errors.

Fix the AVFoundationSPI.h pragmas to only define the classes and methods where those
objects are supported, and in parallel, wrap implementations which use those objects
in those same guards (making these checks compile-time in addition to runtime).

Move the declarations inside the #else (IOW, !USE(APPLE_INTERNAL_SDK)) block above,
and wrap each declaration in the correct HAVE() macro.

  • pal/spi/cocoa/AVFoundationSPI.h:
12:27 PM Changeset in webkit [290152] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Keep promise in scope when calling DeferredPromise::reject
​https://bugs.webkit.org/show_bug.cgi?id=236454

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-18
Reviewed by Darin Adler.

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::resolveWithFormData):

12:21 PM Changeset in webkit [290151] by timothy_horton@apple.com
  • 5 edits
    2 adds in trunk

Client-set minimum effective device width is not respected if AllowViewportShrinkToFitContent is enabled
​https://bugs.webkit.org/show_bug.cgi?id=236822

Reviewed by Wenson Hsieh.

Source/WebCore:

New test: fast/viewport/ios/shrink-to-fit-content-with-wider-minimum-device-width.html

Re-instate the functionality of -[WKWebView _setMinimumEffectiveDeviceWidth:]
after it was intentionally broken in favor of shrink-to-fit in r244849.

It turns out that clients sometimes need a larger manually-set minimum
than the one shrink-to-fit will choose, so instead of picking between
them, we just take the maximum of the two.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::setViewLayoutSize):
Rename the client-set mEDW to m_minimumEffectiveDeviceWidthForView.

(WebCore::ViewportConfiguration::nativeWebpageParameters):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidthForShrinkToFit):
Rename to shouldIgnoreMinimumEffectiveDeviceWidthForShrinkToFit to be clear that
it's only about ignoring the shrink-to-fit mEDW, not the client-set one.

Rename the shrink-to-fit-set mEDW to m_minimumEffectiveDeviceWidthForShrinkToFit.

(WebCore::ViewportConfiguration::description const):
(WebCore::ViewportConfiguration::setMinimumEffectiveDeviceWidth): Deleted.

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::minimumEffectiveDeviceWidth const):
The effective-mEDW now takes the client-set value into account in all cases,
taking the maximum-of-minimums as the effective value.

(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidthForShrinkToFit const):
(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidth const): Deleted.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setViewportConfigurationViewLayoutSize):
Reset the separate shrink-to-fit mEDW if shrink-to-fit is not engaged.

(WebKit::WebPage::shrinkToFitContent):

12:17 PM Changeset in webkit [290150] by commit-queue@webkit.org
  • 13 edits
    2 copies in trunk/Source/WebCore

[TextureMapper] Refactor TextureMapperPlatformLayerProxy into specializable implementations
​https://bugs.webkit.org/show_bug.cgi?id=236836

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-02-18
Reviewed by Alejandro G. Castro.

Turn TextureMapperPlatformLayerProxy into an abstract class from which
different specializations can then be derived. Current implementation is
spun off into the TextureMapperPlatformLayerProxyGL class, and type
traits specialization facilities are provided for future parallel
implementations (e.g. a DMABuf-consuming proxy class).

Existing uses of TextureMapperPlatformLayerProxy are updated to use
the TextureMapperPlatformLayerProxyGL class instead. Downcasting is
done as necessary, with asserts checking for the expected implementation
type.

No change in functionality, only refactoring existing code.

  • platform/TextureMapper.cmake:
  • platform/graphics/gstreamer/GStreamerVideoFrameHolder.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::pushNextHolePunchBuffer):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::MediaPlayerPrivateHolePunch):
(WebCore::MediaPlayerPrivateHolePunch::pushNextHolePunchBuffer):

  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:

(Nicosia::ContentLayerTextureMapperImpl::createFactory):
(Nicosia::ContentLayerTextureMapperImpl::ContentLayerTextureMapperImpl):

  • platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::~TextureMapperPlatformLayerProxy): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::pushNextBuffer): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::appendToUnusedBuffers): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::scheduleReleaseUnusedBuffers): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::swapBuffer): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::scheduleUpdateOnCompositorThread): Deleted.
(WebCore::TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:

(WebCore::TextureMapperPlatformLayerProxy::isGLBased const):
(WebCore::TextureMapperPlatformLayerProxy::isDMABufBased const):
(WebCore::TextureMapperPlatformLayerProxy::WTF_RETURNS_LOCK):
(WebCore::TextureMapperPlatformLayerProxy::WTF_GUARDED_BY_LOCK): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp.

(WebCore::TextureMapperPlatformLayerProxyGL::~TextureMapperPlatformLayerProxyGL):
(WebCore::TextureMapperPlatformLayerProxyGL::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate):
(WebCore::TextureMapperPlatformLayerProxyGL::pushNextBuffer):
(WebCore::TextureMapperPlatformLayerProxyGL::getAvailableBuffer):
(WebCore::TextureMapperPlatformLayerProxyGL::appendToUnusedBuffers):
(WebCore::TextureMapperPlatformLayerProxyGL::scheduleReleaseUnusedBuffers):
(WebCore::TextureMapperPlatformLayerProxyGL::releaseUnusedBuffersTimerFired):
(WebCore::TextureMapperPlatformLayerProxyGL::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxyGL::dropCurrentBufferWhilePreservingTexture):
(WebCore::TextureMapperPlatformLayerProxyGL::scheduleUpdateOnCompositorThread):
(WebCore::TextureMapperPlatformLayerProxyGL::compositorThreadUpdateTimerFired):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.h: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h.
12:06 PM Changeset in webkit [290149] by commit-queue@webkit.org
  • 39 edits
    1 add in trunk

Generate compile_commands.json on macOS Builds
​https://bugs.webkit.org/show_bug.cgi?id=235686

Patch by Brandon Stewart <Brandon> on 2022-02-18
Reviewed by Saam Barati.

Add support for generating compile_commands.json file to WebKit.

compile_commands.json can be used by tools like clangd to provide code complete,
refactoring, formatting, and cross references.

Steps to generate the compile commands file:
make r EXPORT_COMPILE_COMMANDS=YES
generate-compile-commands WebKitBuild/Release

.:

  • Makefile.shared:

PerformanceTests:

  • DecoderTest/Configurations/DebugRelease.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig:

Source/WebGPU:

  • Configurations/DebugRelease.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:

Source/WebKit:

  • Configurations/DebugRelease.xcconfig:
  • UIProcess/API/C/WKPageUIClient.h:

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • Scripts/build-jsc:
  • Scripts/build-webkit:
  • Scripts/generate-compile-commands: Added.
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
12:04 PM Changeset in webkit [290148] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Link issue to pull requests (Follow-up fix)
​https://bugs.webkit.org/show_bug.cgi?id=236339
<rdar://problem/88657772>

Reviewed by Stephanie Lewis.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): Re-open associated closed PRs.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

Canonical link: ​https://commits.webkit.org/247487@main

11:47 AM Changeset in webkit [290147] by sihui_liu@apple.com
  • 3 edits
    3 adds in trunk/Tools

Add test coverage for data migration introduced in r289878
​https://bugs.webkit.org/show_bug.cgi?id=236825

Reviewed by Chris Dumez.

Ensure website data fetch and removal will examine both old paths (custom storage paths) and new paths (under
general storage directory). Also, ensure that data is migrated from old paths to new paths when an origin is
visited during data fetch and removal.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory-indexeddb.sqlite3: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory-localstorage.sqlite3: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory.origin: Added.
11:01 AM Changeset in webkit [290146] by beidson@apple.com
  • 16 edits
    1 copy
    5 adds in trunk

Add an InstallCoordination webpushd backend
​https://bugs.webkit.org/show_bug.cgi?id=233714

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Expose "toHexString" so we can SHA256 an arbitrary string to a hex representation.

  • pal/crypto/CryptoDigest.h:
  • pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp:

(PAL::CryptoDigest::toHexString):

Source/WebKit:

Covered by API tests.

This patch lets the iOS build create a placeholder app bundle to represent a registration using InstallCoordination.

  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/AppBundleRequest.mm:

(WebPushD::AppBundleRequest::start): Use the ICAppBundle implementation when appropriate.

  • webpushd/ICAppBundle.h: Copied from Source/WebKit/webpushd/PushAppBundle.h.

(WebPushD::ICAppBundle::create):

  • webpushd/ICAppBundle.mm: Added.

(-[WebAppInstallCoordinatorObserver initWithICAppBundle:]):
(-[WebAppInstallCoordinatorObserver coordinatorDidCompleteSuccessfully:forApplicationRecord:]):
(-[WebAppInstallCoordinatorObserver coordinator:canceledWithReason:client:]):
(WebPushD::broadcastDebugMessage):
(WebPushD::ICAppBundle::ICAppBundle):
(WebPushD::encodeOriginStringForBundleIdentifier):
(WebPushD::originStringFromEncodedBundleIdentifier):
(WebPushD::bundlePrefixForHostAppIdentifier):
(WebPushD::bundleNameForOriginStringAndHostAppIdentifier):
(WebPushD::ICAppBundle::getOriginsWithRegistrations):
(WebPushD::ICAppBundle::getBundleIdentifier):
(WebPushD::ICAppBundle::checkForExistingBundle):
(WebPushD::ICAppBundle::deleteExistingBundle):
(WebPushD::ICAppBundle::didDeleteExistingBundleWithError):
(WebPushD::ICAppBundle::stop):
(WebPushD::ICAppBundle::createBundle):
(WebPushD::ICAppBundle::bundleCreationSucceeded):
(WebPushD::ICAppBundle::bundleCreationFailed):

  • webpushd/InstallCoordinationSPI.h: Added.
  • webpushd/LaunchServicesSPI.h: Copied from Source/WebKit/webpushd/PushAppBundle.h.
  • webpushd/PushAppBundle.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions): Use the ICAppBundle implementation when appropriate.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/15/InstallCoordination.framework/InstallCoordination.tbd: Added.
10:59 AM Changeset in webkit [290145] by sbarati@apple.com
  • 3 edits
    1 delete in trunk/Source/ThirdParty/ANGLE

Remove ANGLE-static.xcconfig
​https://bugs.webkit.org/show_bug.cgi?id=236827

Reviewed by Dean Jackson.

It was unused.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-static.xcconfig: Removed.
  • Configurations/Base.xcconfig:
10:54 AM Changeset in webkit [290144] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Change domain used to hold whether CaptivePortalMode is active
​https://bugs.webkit.org/show_bug.cgi?id=236793

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-02-18
Reviewed by Per Arne Vollan.

We need to update the location specifying whether CaptivePortalMode is active
to fall within the users domain.

  • UIProcess/API/Cocoa/_WKSystemPreferences.mm:

(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):

10:52 AM Changeset in webkit [290143] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Follow up to b236802. Unreviewed.

  • platform/ios/TestExpectations: Remove the test expectations.
10:49 AM Changeset in webkit [290142] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

[iOS] css/css-color/t422-rgba-onscreen-b.xht and css/css-color/t425-hsla-onscreen-b.xht are consistently failing
​https://bugs.webkit.org/show_bug.cgi?id=236802

Reviewed by Dean Jackson.

  • web-platform-tests/css/css-color/t422-rgba-onscreen-b.xht: Expand maxDifference range to accommodate iOS.
  • web-platform-tests/css/css-color/t425-hsla-onscreen-b.xht:
10:17 AM Changeset in webkit [290141] by Alan Coon
  • 4 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r290087. rdar://problem/88713302

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
​https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::syncState): (rx::VertexArrayMtl::setupDraw): (rx::VertexArrayMtl::syncDirtyAttrib):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:15 AM Changeset in webkit [290140] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bot.

  • TestExpectations:
  • fast/css/counters/counter-list-item.html: Add fuzzy data.
  • gpu-process/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
10:14 AM Changeset in webkit [290139] by Alan Coon
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.6

10:12 AM Changeset in webkit [290138] by Adrian Perez de Castro
  • 12 edits in trunk

[CMake] Cannot find OpenGL when system provides opengl.pc instead of gl.pc
​https://bugs.webkit.org/show_bug.cgi?id=236592

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/FindOpenGL.cmake: Rewrite to use imported targets, try the "opengl" and "glx"

pkg-config modules first, otherwise keep the existing logic that tried the "gl" pkg-config
module with fallbacks to find_path/find_library.

  • Source/cmake/OptionsGTK.cmake: Check for the presence of the OpenGL::GLX target instead of

te GLX_FOUND variable.

Source/ThirdParty/ANGLE:

  • PlatformGTK.cmake: Use the OpenGL::OpenGL imported target instead of the

OPENGL_LIBRARIES variable.

  • PlatformWPE.cmake: Remove linking againt OpenGL libraries; the WPE port is not

supposed to link to any of them directly.

Source/WebCore:

  • CMakeLists.txt: Use the OpenGL::OpenGL and OpenGL::GLX imported targets instead of variables.
  • platform/graphics/GLContext.cpp: Move here includes for the GL headers.
  • platform/graphics/GLContext.h: Remove includes for the GL headers, none of their

declarations are used here; instead include only the needed EGL headers to get the
definition of EGLNativeWindowType.

Source/WebKit:

  • CMakeLists.txt: Remove usage of the OPENGL_ variables for the WebKit target, which is

uneeded because it links to WebCore, which transitively pulls the needed libraries now
that imported targets are being used.

10:10 AM Changeset in webkit [290137] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/css/css-sizing/range-percent-intrinsic-size-* fail
​https://bugs.webkit.org/show_bug.cgi?id=203514

Unreviewed.

10:10 AM Changeset in webkit [290136] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r290109. rdar://problem/89072235

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
​https://bugs.webkit.org/show_bug.cgi?id=236810
<rdar://89072235>

Reviewed by Dean Jackson.

Crash data suggests that r288933 didn't fix the crash entirely.

Although the code paths I can find appear to hold the lock, there may be an
opportunity for m_scrollingCoordinator to get nulled out after we null-check it
but before the copy for the main thread dispatch.

So make a RefPtr on the stack, null-check it, and then move it into the callback.

  • page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged): (WebCore::ThreadedScrollingTree::reportExposedUnfilledArea): (WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange): (WebCore::ThreadedScrollingTree::handleWheelEventPhase): (WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices): (WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290109 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:10 AM Changeset in webkit [290135] by Alan Coon
  • 4 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r290087. rdar://problem/88713302

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
​https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::syncState): (rx::VertexArrayMtl::setupDraw): (rx::VertexArrayMtl::syncDirtyAttrib):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:10 AM Changeset in webkit [290134] by Alan Coon
  • 18 edits
    2 deletes in branches/safari-613.1.17.1-branch/Source/bmalloc

Apply patch. rdar://problem/89071706

9:32 AM Changeset in webkit [290133] by Peng Liu
  • 4 edits
    1 add in trunk/Source/WebCore

[iOS][Modern Media Controls] Add an alternative overflow icon
​https://bugs.webkit.org/show_bug.cgi?id=236729

Reviewed by Devin Rousso.

Add a new overflow icon. By default, the media controls will use the
original overflow icon. So this patch does not change the appearance of
the media controls.

  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.overflowButtonHasCircle):

  • Modules/modern-media-controls/controls/overflow-button.js:

(OverflowButton):

  • Modules/modern-media-controls/images/iOS/OverflowCircle.svg: Added.
9:29 AM Changeset in webkit [290132] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer][Thunder] Add video/x-h265 caps to Thunder decryptor
​https://bugs.webkit.org/show_bug.cgi?id=236833

Reviewed by Philippe Normand.

This patch is authored by Eugene Mutavchi <​Ievgen_Mutavchi@comcast.com>
See: ​https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/790

  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
9:25 AM Changeset in webkit [290131] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Use more StringView during CSP parsing
​https://bugs.webkit.org/show_bug.cgi?id=236784

Reviewed by Darin Adler.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression const):

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::isCSPDirectiveName):
(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseScheme):
(WebCore::ContentSecurityPolicySourceList::parseHost):

  • page/csp/ContentSecurityPolicySourceList.h:
8:47 AM Changeset in webkit [290130] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AX: AccessibilityScrollView should be resilient to destruction of underlying scroll view
​https://bugs.webkit.org/show_bug.cgi?id=236750

Reviewed by Andres Gonzalez.

Sometimes we can get into a state where we have a valid AccessibilityScrollView,
backed by an iframe, with a destroyed WeakPtr<ScrollView> m_scrollView. When this
happens, all of the content inside the iframe becomes inaccessible. We need to handle
the case where an iframe changes the frame and document it holds (e.g. respect the current frame in
HTMLFrameOwner::contentFrame, which can change).

This patch fixes this by caching a WeakPtr<HTMLFrameOwnerElement> when an AccessibilityScrollView
is created. A new method currentScrollView() has been added to prefer the original m_scrollView, and
fallback to the scrollview represented by the frame owner element if m_scrollView has been destroyed.

Thanks to Andres Gonzalez for helping to find and fix this issue.

  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::AccessibilityScrollView):
Cache the frame owner of the provided ScrollView* in new
m_frameOwnerElement field.
(WebCore::AccessibilityScrollView::detachRemoteParts):
Detach new m_frameOwnerElement field.
(WebCore::AccessibilityScrollView::currentScrollView const):
Added.

(WebCore::AccessibilityScrollView::isAttachment const):
(WebCore::AccessibilityScrollView::platformWidget const):
(WebCore::AccessibilityScrollView::updateScrollbars):
(WebCore::AccessibilityScrollView::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityScrollView::addChildren):
(WebCore::AccessibilityScrollView::webAreaObject const):
(WebCore::AccessibilityScrollView::elementRect const):
(WebCore::AccessibilityScrollView::document const):
(WebCore::AccessibilityScrollView::documentFrameView const):
(WebCore::AccessibilityScrollView::parentObject const):
(WebCore::AccessibilityScrollView::scrollTo const):
Use new currentScrollView() method instead of directly using m_scrollView.

(WebCore::AccessibilityScrollView::widgetForAttachmentView const):
Inlined in header.
(WebCore::AccessibilityScrollView::parentObjectIfExists const):
Inlined in header as call to parentObject() since these methods were duplicated.
(WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable const):
Inlined in header.

  • accessibility/AccessibilityScrollView.h:
8:43 AM Changeset in webkit [290129] by mark.lam@apple.com
  • 416 edits in trunk/Source

Split IsoSubspace into a GCClient allocator used by VM and a backend managed by Heap.
​https://bugs.webkit.org/show_bug.cgi?id=233878
rdar://problem/86108394

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  1. Add a useGlobalGC option. We're currently only using this to guard some code for GlobalGC. We're not ready to run with GlobalGC enabled yet.
  1. Create a new GCClient namespace in JSC. The Heap is now split into 2 parts:
    1. VM / GCClient / client side: JSC::GCClient::Heap
    2. GlobalGC / server side: JSC::Heap

The eventual goal is to have many GCClient Heaps backed by a singleton server
Heap. Currently, we still have a 1 to 1 correspondence between the client and
server side i.e. VM embeds both one instance each of GCClient::Heap and Heap.

  1. Split IsoSubspace into:
    1. VM / GCClient / client side: JSC::GCClient::IsoSubspace
    2. GlobalGC / server side: JSC::IsoSubspace

The client side will now manage a LocalAllocator for the IsoSubspace.

The eventual goal is to have many GCClient::IsoSubspace allocators fed from
a server IsoSubspace. Currently, we still have a 1 to 1 correspondence
between the client and server side. GCClient::IsoSubspace instances will be
managed by GCClient::Heap. Server side IsoSubspaces continue to be managed
by Heap.

  1. IsoSubspacePerVM is also now client-server aware.

Previously, IsoSubspacePerVM was relying on AutoremovingIsoSubspace to
"automatically" unregister IsoSubspaces from IsoSubspacePerVM via its
destructor. However, there is a bug where the AutoremovingIsoSubspace is
never associated with the VM, and there is nothing that will trigger its
destruction when the VM shuts down.

This patch fixes this issue by having IsoSubspacePerVM register with the VM's
GCClient::Heap and Heap. On destruction, those Heaps will now be aware of
the IsoSubspacePerVM in use, and will tell the IsoSubspacePerVM to release
the associated IsoSubspaces.

The IsoSubspacePerVM::AutoremovingIsoSubspace class is now removed since it
is not needed.

  1. Previously, in Heap, we have some SpaceAndSet members that were named simply as "Space". Renamed these to be "SpaceAndSet" explicitly to more accurately reflect what they are.
  • API/JSAPIGlobalObject.h:
  • API/JSAPIValueWrapper.h:
  • API/JSAPIWrapperObject.mm:

(JSC::JSCallbackObject<JSAPIWrapperObject>::subspaceForImpl):

  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.cpp:

(JSC::JSCallbackObject<JSNonFinalObject>::subspaceForImpl):
(JSC::JSCallbackObject<JSGlobalObject>::subspaceForImpl):

  • API/JSCallbackObject.h:
  • API/ObjCCallbackFunction.h:

(JSC::ObjCCallbackFunction::subspaceFor):

  • API/glib/JSAPIWrapperGlobalObject.cpp:

(JSC::JSCallbackObject<JSAPIWrapperGlobalObject>::subspaceForImpl):

  • API/glib/JSAPIWrapperObjectGLib.cpp:

(JSC::JSCallbackObject<JSAPIWrapperObject>::subspaceForImpl):

  • API/glib/JSCCallbackFunction.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::finalizeUnconditionally):

  • bytecode/EvalCodeBlock.h:
  • bytecode/ExecutableToCodeBlockEdge.h:
  • bytecode/FunctionCodeBlock.h:
  • bytecode/ModuleProgramCodeBlock.h:
  • bytecode/ProgramCodeBlock.h:
  • bytecode/UnlinkedEvalCodeBlock.h:
  • bytecode/UnlinkedFunctionCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
(JSC::UnlinkedFunctionExecutable::finalizeUnconditionally):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecode/UnlinkedProgramCodeBlock.h:
  • debugger/DebuggerScope.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::~Heap):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::GCClient::Heap::Heap):
(JSC::GCClient::Heap::~Heap):

  • heap/Heap.h:

(JSC::Heap::lock):
(JSC::Heap::forEachCodeBlockSpace):
(JSC::Heap::forEachScriptExecutableSpace):
(JSC::GCClient::Heap::server):

  • heap/HeapInlines.h:

(JSC::GCClient::Heap::vm const):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::GCClient::IsoSubspace::IsoSubspace):

  • heap/IsoSubspace.h:

(JSC::GCClient::IsoSubspace::cellSize):
(JSC::IsoSubspace::allocatorFor): Deleted.

  • heap/IsoSubspaceInlines.h:

(JSC::IsoSubspace::allocate): Deleted.

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::IsoSubspacePerVM):
(JSC::IsoSubspacePerVM::isoSubspaceforHeap):
(JSC::IsoSubspacePerVM::clientIsoSubspaceforVM):
(JSC::IsoSubspacePerVM::releaseIsoSubspace):
(JSC::IsoSubspacePerVM::releaseClientIsoSubspace):
(): Deleted.
(JSC::IsoSubspacePerVM::forVM): Deleted.

  • heap/IsoSubspacePerVM.h:
  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::tryAllocateWithoutCollecting):
(JSC::LocalAllocator::doTestCollectionsIfNeeded):

  • heap/LocalAllocator.h:

(JSC::LocalAllocator::directory const):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::stopAllocating):

  • heap/MutatorState.h:
  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.h:
  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.h:
  • runtime/AggregateErrorPrototype.h:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/AsyncFromSyncIteratorPrototype.h:
  • runtime/AsyncFunctionPrototype.h:
  • runtime/AsyncGeneratorFunctionPrototype.h:
  • runtime/AsyncGeneratorPrototype.h:
  • runtime/AsyncIteratorPrototype.h:
  • runtime/AtomicsObject.h:
  • runtime/BigIntObject.h:
  • runtime/BigIntPrototype.h:
  • runtime/BooleanObject.h:

(JSC::BooleanObject::subspaceFor):

  • runtime/BrandedStructure.h:
  • runtime/ClonedArguments.h:
  • runtime/ConsoleObject.h:
  • runtime/CustomGetterSetter.h:

(JSC::CustomGetterSetter::subspaceFor):

  • runtime/DOMAttributeGetterSetter.h:
  • runtime/DateInstance.h:
  • runtime/DatePrototype.h:
  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::subspaceFor):

  • runtime/ErrorPrototype.h:
  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::subspaceFor):

  • runtime/Exception.h:
  • runtime/FinalizationRegistryPrototype.h:
  • runtime/FunctionExecutable.h:
  • runtime/FunctionRareData.h:
  • runtime/GeneratorFunctionPrototype.h:
  • runtime/GeneratorPrototype.h:
  • runtime/GetterSetter.h:
  • runtime/HashMapImpl.h:
  • runtime/InternalFunction.h:

(JSC::InternalFunction::subspaceFor):

  • runtime/IntlCollator.h:
  • runtime/IntlCollatorPrototype.h:
  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlDisplayNames.h:
  • runtime/IntlDisplayNamesPrototype.h:
  • runtime/IntlListFormat.h:
  • runtime/IntlListFormatPrototype.h:
  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.h:
  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObject.h:
  • runtime/IntlPluralRules.h:
  • runtime/IntlPluralRulesPrototype.h:
  • runtime/IntlRelativeTimeFormat.h:
  • runtime/IntlRelativeTimeFormatPrototype.h:
  • runtime/IntlSegmentIterator.h:
  • runtime/IntlSegmentIteratorPrototype.h:
  • runtime/IntlSegmenter.h:
  • runtime/IntlSegmenterPrototype.h:
  • runtime/IntlSegments.h:
  • runtime/IntlSegmentsPrototype.h:
  • runtime/IteratorPrototype.h:
  • runtime/JSArray.h:

(JSC::JSArray::subspaceFor):

  • runtime/JSArrayBuffer.h:
  • runtime/JSArrayBufferPrototype.h:
  • runtime/JSArrayIterator.h:
  • runtime/JSAsyncGenerator.h:
  • runtime/JSBigInt.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCallee.h:

(JSC::JSCallee::subspaceFor):

  • runtime/JSCustomGetterFunction.h:
  • runtime/JSCustomSetterFunction.h:
  • runtime/JSDataView.h:
  • runtime/JSDataViewPrototype.h:
  • runtime/JSFinalizationRegistry.h:
  • runtime/JSFunction.h:

(JSC::JSFunction::subspaceFor):

  • runtime/JSGenerator.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewPrototype.h:
  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::subspaceFor):

  • runtime/JSMap.h:
  • runtime/JSMapIterator.h:
  • runtime/JSModuleLoader.h:
  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSModuleRecord.h:
  • runtime/JSNativeStdFunction.h:
  • runtime/JSONObject.h:
  • runtime/JSPromise.h:

(JSC::JSPromise::subspaceFor):

  • runtime/JSPromisePrototype.h:

(JSC::JSPromisePrototype::subspaceFor):

  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSProxy.h:

(JSC::JSProxy::subspaceFor):

  • runtime/JSRemoteFunction.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSSet.h:
  • runtime/JSSetIterator.h:
  • runtime/JSSourceCode.h:
  • runtime/JSString.h:

(JSC::JSString::subspaceFor):

  • runtime/JSStringIterator.h:
  • runtime/JSTemplateObjectDescriptor.h:
  • runtime/JSTypedArrayViewPrototype.h:
  • runtime/JSWeakObjectRef.h:
  • runtime/JSWithScope.h:
  • runtime/MapIteratorPrototype.h:
  • runtime/MapPrototype.h:
  • runtime/MathObject.h:
  • runtime/ModuleProgramExecutable.h:
  • runtime/NativeErrorPrototype.h:
  • runtime/NativeExecutable.h:
  • runtime/NumberObject.h:

(JSC::NumberObject::subspaceFor):

  • runtime/ObjectPrototype.h:
  • runtime/OptionsList.h:
  • runtime/ProgramExecutable.h:
  • runtime/PropertyTable.h:
  • runtime/ProxyObject.h:
  • runtime/ProxyRevoke.h:
  • runtime/ReflectObject.h:
  • runtime/RegExp.h:
  • runtime/RegExpObject.h:
  • runtime/RegExpPrototype.h:
  • runtime/RegExpStringIteratorPrototype.h:
  • runtime/ScopedArguments.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):

  • runtime/SetIteratorPrototype.h:
  • runtime/SetPrototype.h:
  • runtime/ShadowRealmObject.h:
  • runtime/ShadowRealmPrototype.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/StrictEvalActivation.h:
  • runtime/StringIteratorPrototype.h:
  • runtime/StringObject.h:

(JSC::StringObject::subspaceFor):

  • runtime/Structure.h:

(JSC::Structure::subspaceFor):

  • runtime/StructureChain.h:
  • runtime/StructureRareData.h:
  • runtime/Symbol.h:
  • runtime/SymbolObject.h:
  • runtime/SymbolPrototype.h:
  • runtime/SymbolTable.h:
  • runtime/TemporalCalendar.h:
  • runtime/TemporalCalendarPrototype.h:
  • runtime/TemporalDuration.h:
  • runtime/TemporalDurationPrototype.h:
  • runtime/TemporalInstant.h:
  • runtime/TemporalInstantPrototype.h:
  • runtime/TemporalNow.h:
  • runtime/TemporalObject.h:
  • runtime/TemporalPlainTime.h:
  • runtime/TemporalPlainTimePrototype.h:
  • runtime/TemporalTimeZone.h:
  • runtime/TemporalTimeZonePrototype.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::codeBlockSpace):
(JSC::VM::functionExecutableSpace):
(JSC::VM::programExecutableSpace):
(JSC::VM::unlinkedFunctionExecutableSpace):
(JSC::VM::arraySpace): Deleted.
(JSC::VM::bigIntSpace): Deleted.
(JSC::VM::calleeSpace): Deleted.
(JSC::VM::clonedArgumentsSpace): Deleted.
(JSC::VM::customGetterSetterSpace): Deleted.
(JSC::VM::dateInstanceSpace): Deleted.
(JSC::VM::domAttributeGetterSetterSpace): Deleted.
(JSC::VM::exceptionSpace): Deleted.
(JSC::VM::executableToCodeBlockEdgeSpace): Deleted.
(JSC::VM::functionSpace): Deleted.
(JSC::VM::getterSetterSpace): Deleted.
(JSC::VM::globalLexicalEnvironmentSpace): Deleted.
(JSC::VM::internalFunctionSpace): Deleted.
(JSC::VM::jsProxySpace): Deleted.
(JSC::VM::nativeExecutableSpace): Deleted.
(JSC::VM::numberObjectSpace): Deleted.
(JSC::VM::plainObjectSpace): Deleted.
(JSC::VM::promiseSpace): Deleted.
(JSC::VM::propertyNameEnumeratorSpace): Deleted.
(JSC::VM::propertyTableSpace): Deleted.
(JSC::VM::regExpSpace): Deleted.
(JSC::VM::regExpObjectSpace): Deleted.
(JSC::VM::ropeStringSpace): Deleted.
(JSC::VM::scopedArgumentsSpace): Deleted.
(JSC::VM::sparseArrayValueMapSpace): Deleted.
(JSC::VM::stringSpace): Deleted.
(JSC::VM::stringObjectSpace): Deleted.
(JSC::VM::structureChainSpace): Deleted.
(JSC::VM::structureRareDataSpace): Deleted.
(JSC::VM::structureSpace): Deleted.
(JSC::VM::brandedStructureSpace): Deleted.
(JSC::VM::symbolTableSpace): Deleted.

  • runtime/WeakMapImpl.h:

(JSC::WeakMapImpl::subspaceFor):

  • runtime/WeakMapPrototype.h:
  • runtime/WeakObjectRefPrototype.h:
  • runtime/WeakSetPrototype.h:
  • wasm/js/JSToWasmICCallee.h:
  • wasm/js/JSWebAssembly.h:
  • wasm/js/JSWebAssemblyException.h:
  • wasm/js/JSWebAssemblyGlobal.h:
  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/JSWebAssemblyTag.h:
  • wasm/js/WebAssemblyCompileErrorPrototype.h:
  • wasm/js/WebAssemblyExceptionPrototype.h:
  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyGlobalPrototype.h:
  • wasm/js/WebAssemblyInstancePrototype.h:
  • wasm/js/WebAssemblyLinkErrorPrototype.h:
  • wasm/js/WebAssemblyMemoryPrototype.h:
  • wasm/js/WebAssemblyModulePrototype.h:
  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.h:
  • wasm/js/WebAssemblyTablePrototype.h:
  • wasm/js/WebAssemblyTagPrototype.h:
  • wasm/js/WebAssemblyWrapperFunction.h:

Source/WebCore:

  1. Make various classes client-server aware in terms of IsoSubspaces.
  2. Make CodeGeneratorJS.pm client-server aware in terms of IsoSubspaces.
  3. Rebase bindings test results.
  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • bindings/js/DOMGCOutputConstraint.cpp:

(WebCore::DOMGCOutputConstraint::DOMGCOutputConstraint):
(WebCore::DOMGCOutputConstraint::executeImplImpl):

  • bindings/js/DOMGCOutputConstraint.h:
  • bindings/js/JSDOMAsyncIterator.h:
  • bindings/js/JSDOMBuiltinConstructorBase.cpp:

(WebCore::JSDOMBuiltinConstructorBase::subspaceForImpl):

  • bindings/js/JSDOMBuiltinConstructorBase.h:

(WebCore::JSDOMBuiltinConstructorBase::subspaceFor):

  • bindings/js/JSDOMConstructorBase.cpp:

(WebCore::JSDOMConstructorBase::subspaceForImpl):

  • bindings/js/JSDOMConstructorBase.h:

(WebCore::JSDOMConstructorBase::subspaceFor):

  • bindings/js/JSDOMConstructorNotCallable.h:

(WebCore::JSDOMConstructorNotCallable::subspaceFor):

  • bindings/js/JSDOMIterator.h:
  • bindings/js/JSDOMWindowProperties.cpp:

(WebCore::JSDOMWindowProperties::subspaceForImpl):

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/js/JSFileSystemDirectoryHandleIterator.cpp:

(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):

  • bindings/js/JSFileSystemDirectoryHandleIterator.h:
  • bindings/js/JSIDBSerializationGlobalObject.cpp:

(WebCore::JSIDBSerializationGlobalObject::subspaceForImpl):

  • bindings/js/JSIDBSerializationGlobalObject.h:
  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::subspaceForImpl):

  • bindings/js/JSWindowProxy.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSHeapData::JSHeapData):
(WebCore::JSHeapData::ensureHeapData):
(WebCore::JSVMClientData::JSVMClientData):
(WebCore::JSVMClientData::initNormalWorld):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSHeapData::lock):
(WebCore::JSHeapData::subspaces):
(WebCore::JSHeapData::fileSystemDirectoryHandleIteratorSpace):
(WebCore::JSHeapData::setFileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::normalWorld):
(WebCore::JSVMClientData::rememberWorld):
(WebCore::JSVMClientData::forgetWorld):
(WebCore::JSVMClientData::heapData):
(WebCore::JSVMClientData::builtinNames):
(WebCore::JSVMClientData::builtinFunctions):
(WebCore::JSVMClientData::domBuiltinConstructorSpace):
(WebCore::JSVMClientData::domConstructorSpace):
(WebCore::JSVMClientData::domNamespaceObjectSpace):
(WebCore::JSVMClientData::domWindowPropertiesSpace):
(WebCore::JSVMClientData::runtimeArraySpace):
(WebCore::JSVMClientData::runtimeMethodSpace):
(WebCore::JSVMClientData::runtimeObjectSpace):
(WebCore::JSVMClientData::windowProxySpace):
(WebCore::JSVMClientData::idbSerializationSpace):
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::clientSubspaces):
(WebCore::JSVMClientData::forEachOutputConstraintSpace): Deleted.
(WebCore::JSVMClientData::subspaces): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateIterableDefinition):
(GeneratePrototypeDeclaration):

  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDOMWindow.h:

(WebCore::JSDOMWindow::subspaceFor):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.h:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceFor):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStarDOMConstructor::prototypeForStructure):
(WebCore::JSExposedStar::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedStar.h:

(WebCore::JSExposedStar::subspaceFor):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h:

(WebCore::JSExposedToWorkerAndWindow::subspaceFor):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.h:

(WebCore::JSPaintWorkletGlobalScope::subspaceFor):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.h:

(WebCore::JSServiceWorkerGlobalScope::subspaceFor):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp:

(WebCore::JSShadowRealmGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.h:

(WebCore::JSShadowRealmGlobalScope::subspaceFor):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:

(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSSharedWorkerGlobalScope.h:

(WebCore::JSSharedWorkerGlobalScope::subspaceFor):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactionsDOMConstructor::prototypeForStructure):
(WebCore::JSTestCEReactions::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.h:

(WebCore::JSTestCEReactions::subspaceFor):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:

(WebCore::JSTestCEReactionsStringifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracerDOMConstructor::prototypeForStructure):
(WebCore::JSTestCallTracer::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCallTracer.h:

(WebCore::JSTestCallTracer::subspaceFor):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructorDOMConstructor::prototypeForStructure):
(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceFor):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludesDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionalIncludes::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.h:

(WebCore::JSTestConditionalIncludes::subspaceFor):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWriteDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.h:

(WebCore::JSTestConditionallyReadWrite::subspaceFor):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJITDOMConstructor::prototypeForStructure):
(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:

(WebCore::JSTestDOMJIT::subspaceFor):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSONDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSON::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.h:

(WebCore::JSTestDefaultToJSON::subspaceFor):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposedDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceFor):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritanceDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.h:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceFor):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInheritDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.h:

(WebCore::JSTestDefaultToJSONInherit::subspaceFor):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinalDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.h:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceFor):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::JSTestDelegateToSharedSyntheticAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.h:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceFor):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurityDOMConstructor::prototypeForStructure):
(WebCore::JSTestDomainSecurity::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.h:

(WebCore::JSTestDomainSecurity::subspaceFor):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySettingDOMConstructor::prototypeForStructure):
(WebCore::JSTestEnabledBySetting::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:

(WebCore::JSTestEnabledBySetting::subspaceFor):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContextDOMConstructor::prototypeForStructure):
(WebCore::JSTestEnabledForContext::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:

(WebCore::JSTestEnabledForContext::subspaceFor):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::JSTestEventConstructor::subspaceFor):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetDOMConstructor::prototypeForStructure):
(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::subspaceFor):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::subspaceFor):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::JSTestGenerateAddOpaqueRootDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.h:

(WebCore::JSTestGenerateAddOpaqueRoot::subspaceFor):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachableDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::subspaceFor):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::JSTestGlobalObject::subspaceFor):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:

(WebCore::JSTestIndexedSetterThrowingException::subspaceFor):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceDOMConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscoreDOMConstructor::prototypeForStructure):
(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceFor):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::JSTestIterableDOMConstructor::prototypeForStructure):
(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestIterable.h:

(WebCore::JSTestIterable::subspaceFor):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructorDOMConstructor::prototypeForStructure):
(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::subspaceFor):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunctionDOMConstructor::prototypeForStructure):
(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h:

(WebCore::JSTestLegacyFactoryFunction::subspaceFor):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObjectPrototype::finishCreation):
(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceFor):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceFor):

  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLike.h:

(WebCore::JSTestMapLike::subspaceFor):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:

(WebCore::JSTestNamedDeleterThrowingException::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWithDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:

(WebCore::JSTestNamedGetterCallWith::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:

(WebCore::JSTestNamedSetterThrowingException::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceFor):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNamespaceObject.h:

(WebCore::JSTestNamespaceObject::subspaceFor):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::JSTestObj::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::JSTestObj::subspaceFor):

  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditionalDOMConstructor::prototypeForStructure):
(WebCore::JSTestOperationConditional::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOperationConditional.h:

(WebCore::JSTestOperationConditional::subspaceFor):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:

(WebCore::JSTestOverloadedConstructors::subspaceFor):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceFor):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterfaceDOMConstructor::prototypeForStructure):
(WebCore::JSTestPluginInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:

(WebCore::JSTestPluginInterface::subspaceFor):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:

(WebCore::JSTestPromiseRejectionEvent::subspaceFor):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.h:

(WebCore::JSTestReadOnlyMapLike::subspaceFor):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestReadOnlySetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.h:

(WebCore::JSTestReadOnlySetLike::subspaceFor):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCostDOMConstructor::prototypeForStructure):
(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h:

(WebCore::JSTestReportExtraMemoryCost::subspaceFor):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfaceDOMConstructor::prototypeForStructure):
(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::JSTestSerializedScriptValueInterface::subspaceFor):

  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestSetLike::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLike.h:

(WebCore::JSTestSetLike::subspaceFor):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifier::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifier.h:

(WebCore::JSTestStringifier::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperationDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:

(WebCore::JSTestStringifierAnonymousOperation::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperationDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:

(WebCore::JSTestStringifierNamedOperation::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAsDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToStringDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:

(WebCore::JSTestStringifierOperationNamedToString::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceFor):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceFor):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.cpp:

(WebCore::JSTestTaggedWrapperDOMConstructor::prototypeForStructure):
(WebCore::JSTestTaggedWrapper::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.h:

(WebCore::JSTestTaggedWrapper::subspaceFor):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsDOMConstructor::construct):
(WebCore::JSTestTypedefs::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::JSTestTypedefs::subspaceFor):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkerGlobalScope.h:

(WebCore::JSWorkerGlobalScope::subspaceFor):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.h:

(WebCore::JSWorkletGlobalScope::subspaceFor):

  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::subspaceForImpl):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::subspaceForImpl):

  • bridge/runtime_array.h:
  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::subspaceForImpl):

  • bridge/runtime_method.h:
  • bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::subspaceForImpl):

  • bridge/runtime_object.h:
8:41 AM Changeset in webkit [290128] by Tyler Wilcock
  • 2 edits in trunk/Source/WebKit

AX: isAXAuthenticatedCallback must be handled on the main runloop
​https://bugs.webkit.org/show_bug.cgi?id=236789

Reviewed by Chris Fleizach.

isAXAuthenticatedCallback in WebProcessCocoa.mm performs IPC to the UI process
to determine if the given auditToken is valid. This causes a crash with isolated
tree mode enabled as IPC must be performed on the main thread / runloop.

This patch changes this function to dispatch to the main runloop.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::isAXAuthenticatedCallback):

8:30 AM Changeset in webkit [290127] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] Add missing LineIteratorModernPath::isHorizontal implementation
​https://bugs.webkit.org/show_bug.cgi?id=236835

Reviewed by Antti Koivisto.

isHorizontal value comes from the root inline box's writing mode.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::isHorizontal const):

  • layout/formattingContexts/inline/display/InlineDisplayLine.h:

(WebCore::InlineDisplay::Line::isHorizontal const):
(WebCore::InlineDisplay::Line::Line):

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::isHorizontal const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::isHorizontal const):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

7:46 AM Changeset in webkit [290126] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Trigger Mac builders on pull-requests
​https://bugs.webkit.org/show_bug.cgi?id=236257
<rdar://problem/88591950>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Enable Mac builders on pull-requests.

Canonical link: ​https://commits.webkit.org/247469@main

7:44 AM Changeset in webkit [290125] by graouts@webkit.org
  • 7 edits in trunk

[frame-rate] [custom-effect] allow setting frameRate as an option passed to document.timeline.animate()
​https://bugs.webkit.org/show_bug.cgi?id=236831

Reviewed by Dean Jackson.

Source/WebCore:

  • animation/CustomAnimationOptions.h:
  • animation/CustomAnimationOptions.idl:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animate):

LayoutTests:

  • webanimations/frame-rate/animation-frame-rate-expected.txt:
  • webanimations/frame-rate/animation-frame-rate.html:
7:39 AM Changeset in webkit [290124] by Ziran Sun
  • 9 edits in trunk

[InputElement] Return empty string for an invalid floating-point number that ends with "."
​https://bugs.webkit.org/show_bug.cgi?id=236700

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/number-expected.txt:

Source/WebCore:

As per specs ​https://html.spec.whatwg.org/multipage/input.html#number-state-(type%3Dnumber),
"If the value of the element is not a valid floating-point number, then set it to the empty
string instead".

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseToDoubleForNumberType):

LayoutTests:

  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown-from-renderer-expected.txt:
  • fast/forms/number/number-stepup-stepdown-from-renderer.html:
  • fast/forms/number/number-stepup-stepdown.html:
7:38 AM Changeset in webkit [290123] by graouts@webkit.org
  • 7 edits in trunk

[frame-rate] allow setting frameRate as an option passed to Element.animate()
​https://bugs.webkit.org/show_bug.cgi?id=236830

Reviewed by Dean Jackson.

Source/WebCore:

  • animation/KeyframeAnimationOptions.h:
  • animation/KeyframeAnimationOptions.idl:
  • dom/Element.cpp:

(WebCore::Element::animate):

LayoutTests:

  • webanimations/frame-rate/animation-frame-rate-expected.txt:
  • webanimations/frame-rate/animation-frame-rate.html:
7:35 AM Changeset in webkit [290122] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[custom-effect] Animations associated with a custom effect should appear in document.getAnimations() result
​https://bugs.webkit.org/show_bug.cgi?id=236828

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/custom-effect/custom-effect-get-animations.html

  • dom/Document.cpp:

(WebCore::Document::matchingAnimations):

LayoutTests:

  • webanimations/custom-effect/custom-effect-get-animations-expected.txt: Added.
  • webanimations/custom-effect/custom-effect-get-animations.html: Added.
2:47 AM Changeset in webkit [290121] by graouts@webkit.org
  • 8 edits
    6 adds in trunk

[frame-rate] animation with different but compatible frame rates should be aligned
​https://bugs.webkit.org/show_bug.cgi?id=236778
<rdar://problem/89083932>

Reviewed by Simon Fraser.

Source/WebCore:

With bug 234202 we started accounting for the frameRate property of an animation when updating
animations and ensuring that animations with the same frameRate are sampled in the same frame.

We expand on this by aligning animations that use different frameRate but could share sample frames.
For instance, if we have animations running with frameRate set to 6, 12 and 18, and assuming no
frames are ever skipped, we should expect a sequence of frames where the following animations are
sampled:

  • frame 1: 12, 18, 6
  • frame 2: 18
  • frame 3: 12
  • frame 4: 18
  • frame 5: 12, 18, 6

and for that pattern to repeat.

To achieve this, we add a new "isNew" boolean flag on the FrameRateData struct. Then, in
FrameRateAligner::finishUpdate(), which is newly called from updateAnimationsAndSendEvents(),
we identify which frame rates have this flag, and analyze the other frame rates to determine
which frame rate it is most compatible with. If we find such a compatible frame rate, the new
frame rate adopts the same firstUpdateTime which ensures that they now have the same basis to
compute ideal times for sampling.

Within updateAnimationsAndSendEvents(), we also ensure that newly-added animations, regardless
of the output of FrameRateAligner::updateFrameRate(), are sampled right away so that there's no
delay for an animation to have visual output, letting them be synchronized with other animations
of that frame rate at the next opportunity.

Tests: webanimations/frame-rate/animation-frame-rate-alignment-compatible-frame-rates.html

webanimations/frame-rate/animation-frame-rate-alignment-started-together.html
webanimations/frame-rate/animation-frame-rate-alignment-started-with-one-frame-separation.html

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):

  • animation/FrameRateAligner.cpp:

(WebCore::FrameRateAligner::beginUpdate):
(WebCore::FrameRateAligner::updateFrameRate):
(WebCore::frameRatesCanBeAligned):
(WebCore::FrameRateAligner::finishUpdate):

  • animation/FrameRateAligner.h:

LayoutTests:

Add new tests that check the behavior of alignment when:

  • two animations are started together with the same frame rate,
  • two animations are started one frame apart with the same frame rate,
  • three animations are each started one frame apart and with different, but compatible frame rates.
  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webanimations/frame-rate/animation-frame-rate-alignment-compatible-frame-rates-expected.txt: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-compatible-frame-rates.html: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-together-expected.txt: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-together.html: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-with-one-frame-separation-expected.txt: Added.
  • webanimations/frame-rate/animation-frame-rate-alignment-started-with-one-frame-separation.html: Added.
1:19 AM Changeset in webkit [290120] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process bots. Update fuzzy data.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-images/gradients-with-transparent.html:
  • web-platform-tests/svg/coordinate-systems/viewBox-scaling-text-001.html:

LayoutTests:

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations: A couple tests are happening on all iOS bots and not uniquely on GPU Process bots.
12:50 AM Changeset in webkit [290119] by commit-queue@webkit.org
  • 4 edits in trunk

[JSC] Enable Shadow Realms support by default
​https://bugs.webkit.org/show_bug.cgi?id=236673

Patch by Joseph Griego <​jgriego@igalia.com> on 2022-02-18
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Enabling this flag causes the new WPT test to partially pass (since
ShadowRealm is available on Window) but does not completely pass
because shadow realm contexts do not yet have the required web APIs
exposed.

  • web-platform-tests/dom/idlharness-shadowrealm.window-expected.txt:

Source/JavaScriptCore:

The implementaiton in JSC is complete and should be correct and
reasonably fast now; so, enable it without requiring the flag.

Should be covered by EWS and existing tests of shadow realms functionality.

  • runtime/OptionsList.h:
12:48 AM Changeset in webkit [290118] by commit-queue@webkit.org
  • 6 edits in trunk/Source

[GTK][WPE] Don't use ANGLE's GBM-based display
​https://bugs.webkit.org/show_bug.cgi?id=236772

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-02-18
Reviewed by Alejandro G. Castro.

Source/ThirdParty/ANGLE:

With DisplayGbm functionality not necessary anymore, we can stop
building the associated code and linking against libgbm and libdrm at
the ANGLE level. These two libraries are still dependencies that have
since become necessary in WebCore.

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Source/WebCore:

ANGLE's DisplayGbm implementation adds unnecessary overhead for how we
would want to use ANGLE. We don't need a connection to the DRM display
device or the ability for the display to provide pre-allocated buffer
objects that are then displayed on that device. Instead we have to
control our own GBM buffers and have options in terms of how we want
those buffers to be handled and presented.

We can live with the DisplayEGL implementation instead. To be able to
utilize it, we have to switch to using the EGL_GetPlatformDisplayEXT
entrypoint, along with a display attribute list that selects the
OpenGLES as the display's GL target (matching what we've used with
DisplayGBM so far) and EGL as the device type. Additionally, we
specify surfaceless as the native platform type, even when right now
this doesn't seem to have any effect.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::ANGLEContext::createContext):

12:16 AM Changeset in webkit [290117] by sbarati@apple.com
  • 48 edits in trunk/Source

Add LC_SOURCE_VERSION to compile targets
​https://bugs.webkit.org/show_bug.cgi?id=236720
<rdar://84984140>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

  • Configurations/JSC.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • Configurations/TestAPI.xcconfig:
  • Configurations/ToolExecutable.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Version.xcconfig:
  • Configurations/boringssl.xcconfig:
  • Configurations/libsrtp.xcconfig:
  • Configurations/libvpx.xcconfig:
  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libyuv.xcconfig:
  • Configurations/opus.xcconfig:
  • Configurations/usrsctp.xcconfig:
  • Configurations/yasm.xcconfig:

Source/WebCore:

  • Configurations/Version.xcconfig:
  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:

Source/WebCore/PAL:

  • Configurations/Version.xcconfig:

Source/WebGPU:

  • Configurations/Version.xcconfig:
  • Configurations/WGSL.xcconfig:
  • Configurations/WGSLUnitTests.xcconfig:
  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/Version.xcconfig:
  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

  • Configurations/GPUService.xcconfig:
  • Configurations/NetworkService.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebAuthnService.xcconfig:
  • Configurations/WebContentService.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • Configurations/webpushtool.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Version.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Feb 17, 2022:

11:55 PM Changeset in webkit [290116] by Megan Gardner
  • 23 edits
    1 copy
    1 add in trunk

Draw highlights for Scroll To Text Fragment
​https://bugs.webkit.org/show_bug.cgi?id=236693

Reviewed by Tim Horton.

Source/WebCore:

Implement a very basic search for text fragments (this will be properly implemented later)
and leverage our Highlight and AppHighlight infrastructures to draw the found ranges for
Scroll to Text Fragment and scroll so they are guaranteed to be in view.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::commonTeardown):
(WebCore::Document::fragmentHighlightRegister):
(WebCore::Document::updateHighlightPositions):

  • dom/Document.h:

(WebCore::Document::fragmentHighlightRegisterIfExists):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragment):

  • rendering/MarkedText.cpp:

(WebCore::MarkedText::collectForHighlights):

  • rendering/MarkedText.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::calculateHighlightColor const):

  • rendering/StyledMarkedText.cpp:

(WebCore::resolveStyleForMarkedText):

Tools:

  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp:

(WebCore::operator<<):

11:45 PM Changeset in webkit [290115] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Exclude new LocalStorage directory from backup on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236423
<rdar://problem/89060863>

Reviewed by Chris Dumez.

We've been excluding LocalStorage data from backup on iOS since r212555, and we need to make sure this applies
to new LocalStorage directory after migration (r289878).

Manually tested on iOS device.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):

9:41 PM Changeset in webkit [290114] by Kocsen Chung
  • 1 edit in branches/safari-613.1.17.1-branch/Source/WTF/Scripts/Preferences/WebPreferences.yaml

Apply patch. rdar://problem/89126114

9:34 PM Changeset in webkit [290113] by Kocsen Chung
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.6

9:21 PM Changeset in webkit [290112] by Patrick Angle
  • 5 edits in trunk/Source/WebCore

Web Inspector: [Flexbox] Add indicators for layout context in element tooltips
​https://bugs.webkit.org/show_bug.cgi?id=236738

Reviewed by Devin Rousso.

  • en.lproj/Localizable.strings:
  • inspector/InspectorOverlay.cpp:

(WebCore::rendererIsFlexboxItem):
(WebCore::rendererIsGridItem):
(WebCore::InspectorOverlay::drawElementTitle):

  • Add new Flex Item, Flex, Grid Item, and Grid bubblea to element tooltips to allow provide more

context about layout while selecting nodes on a page.

  • Move the role into its own bubble with special color (based on the previous coloring of the Role text).
  • inspector/InspectorOverlayLabel.cpp:

(WebCore::InspectorOverlayLabel::draw):

  • inspector/InspectorOverlayLabel.h:

(WebCore::InspectorOverlayLabel::Content::encode const):
(WebCore::InspectorOverlayLabel::Content::decode):
(WebCore::InspectorOverlayLabel::Content::Decoration::encode const):
(WebCore::InspectorOverlayLabel::Content::Decoration::decode):

  • Add the concept of text decoration (currently just bordered text).
  • Create an intermediate ComputedContentRun to hold the intermediate representation of content with the

computed attributes of each piece of text. This allows us to better scale with the addition of the new text
decorations and other configuration properties instead of having to create even more Vectors of things that need
to be kept in sync with each other.

8:52 PM Changeset in webkit [290111] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Enable subgrid by default.
​https://bugs.webkit.org/show_bug.cgi?id=236821

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Alan Bujtas.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
8:16 PM Changeset in webkit [290110] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] scavenger should not call pthread_mach_thread_np after suspension
​https://bugs.webkit.org/show_bug.cgi?id=236798
rdar://89020902

Reviewed by Mark Lam and Keith Miller.

pthread_mach_thread_np can take a lock internally. So we should not call it after suspending a thread.
This patch refactors libpas scavenger so that we call pthread_mach_thread_np before suspending a thread.
We also avoid calling pthread_self() after suspension to make suspending safer (while it does not take
a lock, it also depends on an internal implementation).

  • libpas/src/libpas/pas_thread_local_cache.c:

(scavenger_thread_suspend_data_create):
(suspend):
(resume):
(stop_allocator):
(pas_thread_local_cache_for_all):

7:55 PM Changeset in webkit [290109] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
​https://bugs.webkit.org/show_bug.cgi?id=236810
<rdar://89072235>

Reviewed by Dean Jackson.

Crash data suggests that r288933 didn't fix the crash entirely.

Although the code paths I can find appear to hold the lock, there may be an
opportunity for m_scrollingCoordinator to get nulled out after we null-check it
but before the copy for the main thread dispatch.

So make a RefPtr on the stack, null-check it, and then move it into the callback.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged):
(WebCore::ThreadedScrollingTree::reportExposedUnfilledArea):
(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
(WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
(WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

7:46 PM Changeset in webkit [290108] by Chris Dumez
  • 19 edits in trunk/Source

Clean up / optimize call sites constructing vectors
​https://bugs.webkit.org/show_bug.cgi?id=236748
<rdar://problem/89090710>

Reviewed by Darin Adler.

Follow-up to r290026 to address feedback from Darin.

Source/JavaScriptCore:

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::setNumEntrypoints):

Source/WebCore:

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setMathscripts):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readString):

  • css/StyleProperties.cpp:

(WebCore::DeferredStyleProperties::DeferredStyleProperties):

  • css/StyleRule.cpp:

(WebCore::DeferredStyleGroupRuleList::DeferredStyleGroupRuleList):

  • dom/ElementData.cpp:

(WebCore::UniqueElementData::UniqueElementData):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::responseHeaders const):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::convertToJSKeyStatusVector const):

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):

  • platform/text/LocaleICU.cpp:

(WebCore::createFallbackMonthLabels):

  • platform/text/LocaleNone.cpp:

(WebCore::LocaleNone::shortMonthLabels):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::LocaleCocoa::monthLabels):
(WebCore::LocaleCocoa::shortMonthLabels):
(WebCore::LocaleCocoa::standAloneMonthLabels):
(WebCore::LocaleCocoa::shortStandAloneMonthLabels):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstanceSession::updateLicense):
(WebCore::MockCDMInstanceSession::removeSessionData):

7:37 PM Changeset in webkit [290107] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r290089

  • html/PDFDocument.cpp:
7:31 PM Changeset in webkit [290106] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GTK] Debian Stable build is broken after r290026
​https://bugs.webkit.org/show_bug.cgi?id=236819

Unreviewed build fix.

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):

6:51 PM Changeset in webkit [290105] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] 'vertical-align: bottom' makes inline level boxes stick out of their parent block box
​https://bugs.webkit.org/show_bug.cgi?id=236677

Reviewed by Antti Koivisto.

Source/WebCore:

'vertical-align: bottom' pushes the root inline box's baseline down as it stretches the line box downwards.
In most cases this makes the root inline box sit at the bottom of the line box e.g.

<div>

some text
<img style="vertical-align: bottom; height: 100px; width: 10px;">

</div>
forms a 100px tall block box where the "some text" sits at the bottom of the line and the tall image fills the rest of the line box all the way to the top.

Now if we add another inline level box with e.g. middle alignment.
<div>

some text
<img style="vertical-align: middle; height: 80px; width: 10px;">
<img style="vertical-align: bottom; height: 100px; width: 10px;">

</div>
We still form a 100px tall block box where the "some text" content sits at the bottom and the middle aligned box stick out of the block box by about 40px (middle alignment -> 80px/2) as it is aligned based
on the root inline box's position (which is at the very bottom of the block container).
Instead the root inline box's baseline should be pull up to make room for the middle aligned image box.

This patch fixes this incorrect behavior by removing the line box relative alignment types from the regular alignment logic and offsetting the root inline box's baseline position at a later step.
What we do here is we simply compute the root inline box's baseline position as if there were no line box relative aligned boxes present and offset the final result if such box happens to stretch the line box.
(going back to the example: without the tall, bottom aligned image box, we compute the root inline box's baseline position to be around 40px to
ensure that the 80px image box fits and later we push it down to 60px (as the 100px image box stretches the line box by 20px).)

Test: fast/inline/vertical-align-bottom.html

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeLogicalHeightAndAlign const):
(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.h:

(WebCore::Layout::LineBoxVerticalAligner::LineBoxHeight::value const):

LayoutTests:

  • fast/inline/vertical-align-bottom-expected.html: Added.
  • fast/inline/vertical-align-bottom.html: Added.
6:46 PM Changeset in webkit [290104] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

GeneratePreferences.rb: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated
​https://bugs.webkit.org/show_bug.cgi?id=236684

Reviewed by Yusuke Suzuki.

With Ruby 3.1.0, GeneratePreferences.rb reported the following warnings.

GeneratePreferences.rb:235: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
GeneratePreferences.rb:235: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.

  • Scripts/GeneratePreferences.rb: Changed to use the keyword argument for ERB.new.
6:31 PM Changeset in webkit [290103] by Kate Cheney
  • 6 edits in trunk/Source

Refactor share menu item presentation
​https://bugs.webkit.org/show_bug.cgi?id=236806
<rdar://problem/88858606>

Reviewed by Aditya Keerthi.

Source/WebCore:

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Source/WebCore/PAL:

  • pal/spi/mac/NSSharingServicePickerSPI.h:

Source/WebKit:

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
(WebKit::WebContextMenuProxyMac::getShareMenuItem):

5:56 PM Changeset in webkit [290102] by jonlee@apple.com
  • 7 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
Unreviewed gardening. Update fuzzy data.

  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003.html:

LayoutTests:
Unreviewed gardening for iOS GPU Process bots.

  • css3/masking/clip-path-border-radius-border-box-000.html: Add fuzzy data.
  • imported/blink/svg/paintorder/paintorder.svg:
5:18 PM Changeset in webkit [290101] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.4

Tag Safari-614.1.3.4.

5:17 PM Changeset in webkit [290100] by Kocsen Chung
  • 1 delete in tags/Safari-614.1.3.4

Delete tag.

5:10 PM Changeset in webkit [290099] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.4

Tag Safari-614.1.3.4.

5:03 PM Changeset in webkit [290098] by Aditya Keerthi
  • 30 edits
    6 adds in trunk

'-webkit-user-select: all' is not respected in editable views
​https://bugs.webkit.org/show_bug.cgi?id=190977
rdar://34945944

Reviewed by Wenson Hsieh.

Source/WebCore:

Original patch by Tim Horton.

Currently, if the web view's editable bit is set to true, all nodes are
made editable via a short circuit. However, the content of nodes with
'-webkit-user-select: all' should not be editable. To fix, remove the
short circuit and allow '-webkit-user-select' to take precedence.

'-webkit-user-modify: read-only' and 'contenteditable=false' elements
remain editable in editable web views.

Tests: editing/editability/contenteditable-false-in-editable-view.html

editing/editability/user-modify-read-only-in-editable-view.html
editing/editability/user-select-all-in-editable-view.html

  • dom/Node.cpp:

(WebCore::computeEditabilityFromComputedStyle):
(WebCore::Node::computeEditability const):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::editabilityFromContentEditableAttr):
(WebCore::HTMLElement::matchesReadWritePseudoClass const):

  • html/HTMLElement.h:
  • page/Page.h:

Source/WebKit:

Add methods for testing the GTK port.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewSetEditable):

  • UIProcess/API/C/gtk/WKViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetEditable):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

Add a UIScriptController method to make web views editable.

Remove TestRunner::setWebViewEditable as it is unused.

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):
(setWebViewEditableCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setWebViewEditable): Deleted.

  • DumpRenderTree/mac/UIScriptControllerMac.h:
  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::setWebViewEditable):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::~TestRunner):
(TestRunner::setWebViewEditable): Deleted.

  • DumpRenderTree/win/UIScriptControllerWin.cpp:

(WTR::UIScriptControllerWin::setWebViewEditable):

  • DumpRenderTree/win/UIScriptControllerWin.h:
  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::setWebViewEditable):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::setWebViewEditable):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformResetStateToConsistentValues):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::setWebViewEditable):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

Add tests to verify the behavior of -[WKWebView _setEditable:] with
'-webkit-user-select: all', '-webkit-user-modify: none', and
'contenteditable=false'. Elements with '-webkit-user-select: all' should
not be editable.

  • editing/editability/contenteditable-false-in-editable-view-expected.txt: Added.
  • editing/editability/contenteditable-false-in-editable-view.html: Added.
  • editing/editability/user-modify-read-only-in-editable-view-expected.txt: Added.
  • editing/editability/user-modify-read-only-in-editable-view.html: Added.
  • editing/editability/user-select-all-in-editable-view-expected.txt: Added.
  • editing/editability/user-select-all-in-editable-view.html: Added.
  • editing/input/ios/rtl-keyboard-input-on-focus-in-editable-page.html:

Replace the test option with the new UIHelper method.

  • resources/ui-helper.js:

(window.UIHelper.setWebViewEditable):

5:00 PM Changeset in webkit [290097] by Kocsen Chung
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.4

4:54 PM Changeset in webkit [290096] by commit-queue@webkit.org
  • 14 edits in trunk

Account for subgrid MBP when sizing
​https://bugs.webkit.org/show_bug.cgi?id=236338

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/subgrid/abs-pos-002-expected.html:
  • web-platform-tests/css/css-grid/subgrid/abs-pos-003-expected.html:
  • web-platform-tests/css/css-grid/subgrid/line-names-008.html:
  • web-platform-tests/css/css-grid/subgrid/parent-repeat-auto-fit-001.html:
  • web-platform-tests/css/css-grid/subgrid/parent-repeat-auto-fit-002.html:

Source/WebCore:

Adds extra margin to subgrid items participating in the sizing of an outer
grid's tracks to account for the margin/border/padding of the intermediate
subgrid item itself.
Also contributes the subgrid's m/b/p to the edge tracks it cover, even
if no inner items occupy that track.

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::directionFromSide):
(WebCore::GridLayoutFunctions::hasRelativeOrIntrinsicSizeForChild):
(WebCore::GridLayoutFunctions::extraMarginForSubgridChild):
(WebCore::GridLayoutFunctions::gapDifferenceForSubgridChild):
(WebCore::GridLayoutFunctions::marginLogicalSizeForChild):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::setOverridingContainingBlockContentSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minContentForChild const):
(WebCore::addSubgridMarginBorderPadding):
(WebCore::GridTrackSizingAlgorithm::accumulateIntrinsicSizesForTrack):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::isSubgrid const):
(WebCore::RenderGrid::mayBeSubgridExcludingAbsPos const):
(WebCore::RenderGrid::gridSpanCoversRealTracks const):
(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
(WebCore::RenderGrid::gridSpanForChild const):

  • rendering/RenderGrid.h:
  • rendering/style/GridPositionsResolver.cpp:

(WebCore::adjustGridPositionsFromStyle):

LayoutTests:

Account for subgrid MBP when sizing

4:53 PM Changeset in webkit [290095] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.3.2

Tag Safari-613.1.17.3.2.

4:53 PM Changeset in webkit [290094] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.2.2

Tag Safari-613.1.17.2.2.

4:52 PM Changeset in webkit [290093] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.0.5

Tag Safari-613.1.17.0.5.

4:45 PM Changeset in webkit [290092] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.1.5

Tag Safari-613.1.17.1.5.

4:42 PM Changeset in webkit [290091] by Devin Rousso
  • 8 edits in trunk/Source/WebKit

[MacCatalyst] improve support for resizing
​https://bugs.webkit.org/show_bug.cgi?id=236745
<rdar://problem/86494393>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView setFrame:]):
(-[WKWebView setBounds:]):
(-[WKWebView _acquireResizeAssertionForReason:]): Added.
Acquire a UIKit assertion whenever the frame/bounds of the WKWebView is changed that
is invalidate once the visible contect rect has been updated. UIKit can use this to know
both when WebKit is processing WKWebView resize changes and get notified once it's done.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Added.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted.
Allow this to be used outside of testing code (just like -[WKWebView _doAfterNextPresentationUpdate:]).

  • Platform/spi/ios/UIKitSPI.h:
4:39 PM Changeset in webkit [290090] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.3

Tag Safari-614.1.3.3.

4:27 PM Changeset in webkit [290089] by J Pascoe
  • 4 edits in trunk/Source/WebCore

PDF.js viewer should work for all kinds of URLs
​https://bugs.webkit.org/show_bug.cgi?id=236525
rdar://problem/88832961

Reviewed by Tim Nguyen.

This patch starts loading the pdf as an array buffer after it's recieved
by calling the PDFJS viewer's open function through the content script's
wrapper. More work is needed to potentially present the data as a
PDFDataRangeTransport.

  • Modules/pdfjs-extras/content-script.js:

(const.PDFJSContentScript.init):
(const.PDFJSContentScript.open):

  • html/PDFDocument.cpp:

(WebCore::PDFDocumentEventListener::handleEvent):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):
(WebCore::PDFDocument::sendPDFArrayBuffer):
(WebCore::PDFDocument::injectContentScript):

  • html/PDFDocument.h:

(WebCore::PDFDocumentEventListener::handleEvent):

4:14 PM Changeset in webkit [290088] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Pass registrable domain to CoreLocation API
​https://bugs.webkit.org/show_bug.cgi?id=236803
<rdar://88761413>

Reviewed by Darin Adler.

Pass registrable domain to CoreLocation API when the Geolocation API is used.
Note that the code is guarded on a CL_HAS_RADAR_88834301 define from CoreLocation
since the initWithWebsiteIdentifier is currently present in the SDK but not
functional.

  • platform/cocoa/CoreLocationGeolocationProvider.mm:

(-[WebCLLocationManager initWithWebsiteIdentifier:client:]):

4:09 PM Changeset in webkit [290087] by dino@apple.com
  • 4 edits
    2 adds in trunk

Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
​https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>

Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.

Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::syncState):
(rx::VertexArrayMtl::setupDraw):
(rx::VertexArrayMtl::syncDirtyAttrib):

4:01 PM Changeset in webkit [290086] by Cameron McCormack
  • 16 edits in trunk/Source/WebCore

Always use ChildChange::Source::Parser when creating input element UA shadow tree contents
​https://bugs.webkit.org/show_bug.cgi?id=236740

Reviewed by Dean Jackson.

When creating an input element's UA shadow tree, we currently use a
ChildChange::Source value that depends on whether the input element
itself was parser- or script-inserted. But since UA shadow trees are
not exposed to content, and we don't have any dependency on the extra
work that inserting using ChildChange::Source::API does, we can use
ChildChange::Source::Parser unconditionally.

Local testing shows this scores a 0.1% Speedometer 2 improvement.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/BaseDateAndTimeInputType.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/ColorInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/FileInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.cpp:

(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/InputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/RangeInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/SearchInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):

  • html/TextFieldInputType.h:
3:48 PM Changeset in webkit [290085] by Simon Fraser
  • 12 edits in trunk/Source/WebKit

Move setting RemoteLayerBackingStore surfaces volatile into the GPU Process
​https://bugs.webkit.org/show_bug.cgi?id=236791

Reviewed by Tim Horton.

Setting RemoteLayerBackingStore IOSurfaces volatile has to happen in the GPU process with
DOM rendering enabled. Add overrides in RemoteLayerWithRemoteRenderingBackingStoreCollection
to handle this, sending batches of buffer identifiers to RemoteRenderingBackend. Because
surface in-use counts can cause this to fail, we return a list of identifiers that we failed
to mark volatile. A future patch will use these to maintain web process-side buffer volatile
status.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfacesVolatile):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Platform/Logging.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileAfterReachabilityChange):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectAllBufferIdentifiersToMarkVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markBackingStoreVolatileAfterReachabilityChange):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::sendMarkBuffersVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
3:39 PM Changeset in webkit [290084] by Diego Pino Garcia
  • 4 edits in trunk/Source/WebKit

[macOS] Non-unified build fixes
​https://bugs.webkit.org/show_bug.cgi?id=236752

Reviewed by Darin Adler.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::requestTextRecognition):
(WebKit::WebViewImpl::showSafeBrowsingWarning):
(WebKit::toWKRectEdge):
(WebKit::toRectEdges):

  • UIProcess/mac/WKSharingServicePickerDelegate.h:
3:29 PM Changeset in webkit [290083] by Kocsen Chung
  • 4 edits in branches/safari-614.1.4-branch/Source

Cherry-pick r290076. rdar://problem/89076606

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
​https://bugs.webkit.org/show_bug.cgi?id=236787

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Only re-declare classes and add categories for non-Apple Internal builds, or when those
definitions would be missing from system headers. The presence of the classes and their
methods are already checked at runtime, so this is a build-only change.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290076 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:25 PM Changeset in webkit [290082] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKitLegacy/mac

Unnecessary copy/memory allocation
​https://bugs.webkit.org/show_bug.cgi?id=236749
rdar://problem/89064893

Reviewed by Dean Jackson.

  • WebView/WebHTMLView.mm:

(createShareMenuItem): Shared NSData constructed from a SharedBuffer instead

3:16 PM Changeset in webkit [290081] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r289974.
​https://bugs.webkit.org/show_bug.cgi?id=236804

Should not have been reverted on trunk

Reverted changeset:

"Unreviewed, reverting r286874."
​https://bugs.webkit.org/show_bug.cgi?id=236734
​https://commits.webkit.org/r289974

3:13 PM Changeset in webkit [290080] by Noam Rosenthal
  • 42 edits
    1 copy
    7 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/paint-timing from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236717

Reviewed by Simon Fraser.

Resync to af3b9946eb6f0955360282176848af4be7e58304

  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window.html: Added.
  • web-platform-tests/paint-timing/fcp-only/buffered-flag.window.js: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-background-size.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-canvas-context-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-gradient-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-gradient.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-iframe-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-iframe.html: Copied from LayoutTests/imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html.
  • web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-text-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-svg-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-text-input-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-text-input.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-frame-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-poster-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-whitespace-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-with-rtl-expected.txt:
  • web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html:
  • web-platform-tests/paint-timing/fcp-only/svg-in-iframe-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/svg-in-iframe.html: Added.
  • web-platform-tests/paint-timing/resources/svg.html: Added.
  • web-platform-tests/paint-timing/resources/utils.js:

(async assertFirstContentfulPaint.return.new.Promise):
(async assertFirstContentfulPaint):
(async test_fcp):

2:58 PM Changeset in webkit [290079] by Mikhail R. Gadelha
  • 8 edits in trunk

[32bit] Increase fixedExecutableMemoryPoolSize on ARM to 32MB
​https://bugs.webkit.org/show_bug.cgi?id=236606

Reviewed by Mark Lam.

Increased executable memory on ARM to 32MB and make it consistent with
other 32 bit platforms (MIPS and x86). This patch also enables some
tests that now pass because of the increased memory; each test was
executed 1000 times and there was no failure.

let-const-tdz-environment-parsing-and-hash-consing-speed.js was disabled
on MIPS because the jitted code is still a bit too bigger for the 32MB,
but it can probably be enable when the EXTRA_CTI_THUNKS patch lands.

  • microbenchmarks/let-const-tdz-environment-parsing-and-hash-consing-speed.js:
  • stress/arrowfunction-lexical-bind-superproperty.js:
  • stress/proxy-revoke.js:
  • stress/regress-169445.js:
  • stress/tagged-template-object-collect.js:
2:54 PM Changeset in webkit [290078] by Kocsen Chung
  • 4 edits in branches/safari-614.1.3-branch/Source

Cherry-pick r290076. rdar://problem/89076606

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
​https://bugs.webkit.org/show_bug.cgi?id=236787

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Only re-declare classes and add categories for non-Apple Internal builds, or when those
definitions would be missing from system headers. The presence of the classes and their
methods are already checked at runtime, so this is a build-only change.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290076 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:53 PM Changeset in webkit [290077] by Truitt Savell
  • 9 edits in trunk

Include sub grid items in the track sizing algorithm of the outer grid
​https://bugs.webkit.org/show_bug.cgi?id=236337

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

Source/WebCore:

resolveIntrinsicTrackSizes and findUsedFlexFraction now recurse into subgridded items
to iterate the children sa if they were directly part of the outer grid.
New constructor added to GridIterator for constructing a new iterator for the subgrid items,
which adjusts the row/column indices into the local coordinate space of the subgrid.
Adds a new method to renderGrid 'placeItems' so that we can ensure subgrid items have finished placement
when doing sizing for the outer grid.

Existing test expectations updated.

  • rendering/Grid.cpp:

(WebCore::GridIterator::createForSubgrid):

  • rendering/Grid.h:

(WebCore::GridIterator::direction const):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::isIntrinsicSizedGridArea const):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithm::updateBaselineAlignmentContext):
(WebCore::GridTrackSizingAlgorithm::baselineOffsetForChild const):
(WebCore::IndefiniteSizeStrategy::accumulateFlexFraction const):
(WebCore::IndefiniteSizeStrategy::findUsedFlexFraction const):
(WebCore::GridTrackSizingAlgorithm::accumulateIntrinsicSizesForTrack):
(WebCore::GridTrackSizingAlgorithm::resolveIntrinsicTrackSizes):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItems):
(WebCore::insertIntoGrid):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid const):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid const):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::isSubgridInParentDirection const):

  • rendering/RenderGrid.h:

LayoutTests:

Existing test expectations updated.

2:41 PM Changeset in webkit [290076] by jer.noble@apple.com
  • 4 edits in trunk/Source

[Cocoa] Make AVFoundationSPI.h robust against changes in system headers
​https://bugs.webkit.org/show_bug.cgi?id=236787

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Only re-declare classes and add categories for non-Apple Internal builds, or when those
definitions would be missing from system headers. The presence of the classes and their
methods are already checked at runtime, so this is a build-only change.

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:
2:39 PM Changeset in webkit [290075] by Kocsen Chung
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.3

2:20 PM Changeset in webkit [290074] by Alan Coon
  • 6 edits in branches/safari-613.1.17.0-branch

Apply patch. rdar://problem/89009881

2:19 PM Changeset in webkit [290073] by Alan Coon
  • 6 edits in branches/safari-613.1.17.1-branch

Apply patch. rdar://problem/89009881

1:52 PM Changeset in webkit [290072] by jonlee@apple.com
  • 6 edits in trunk/LayoutTests

Unreviewed gardening. Add fuzzy data.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003.html:
  • web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html:

LayoutTests:

  • fast/borders/border-radius-on-html.html:
  • fast/images/exif-orientation-svg-feimage.html:
1:45 PM Changeset in webkit [290071] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Enable CSS Motion Path by default
​https://bugs.webkit.org/show_bug.cgi?id=236681

Unreviewed enable of WebKitLegacy.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:38 PM Changeset in webkit [290070] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
​https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:32 PM Changeset in webkit [290069] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk/Source/WebGPU

[WebGPU] Add a playground example target
​https://bugs.webkit.org/show_bug.cgi?id=236742

Reviewed by Dean Jackson.

It's just a little playground where you can call WebGPU functions.
It's not built by any script or included in any other targets - it's
just for the WebGPU developers to play around with WebGPU functions.

  • CommandLinePlayground/main.swift: Added.
  • Configurations/CommandLinePlayground.xcconfig: Added.
  • WebGPU.xcodeproj/project.pbxproj:
  • WebGPU/WebGPU.modulemap:
1:31 PM Changeset in webkit [290068] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Cherry-pick r290066. rdar://problem/89072361

[macOS][WP] Add required syscall to sandbox
​https://bugs.webkit.org/show_bug.cgi?id=236781
<rdar://89072361>

Reviewed by Chris Dumez.

Add required syscall to the WebContent process' sandbox on macOS. This patch also adds back a set of
syscalls that were removed in ​https://commits.webkit.org/r286778 for current and previous versions
of macOS. These syscalls will be denied going forward.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290066 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:29 PM Changeset in webkit [290067] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

[Web Animations] Enable Composite Animations
​https://bugs.webkit.org/show_bug.cgi?id=236682

Reviewed by Dean Jackson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:27 PM Changeset in webkit [290066] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall to sandbox
​https://bugs.webkit.org/show_bug.cgi?id=236781
<rdar://89072361>

Reviewed by Chris Dumez.

Add required syscall to the WebContent process' sandbox on macOS. This patch also adds back a set of
syscalls that were removed in ​https://commits.webkit.org/r286778 for current and previous versions
of macOS. These syscalls will be denied going forward.

  • WebProcess/com.apple.WebProcess.sb.in:
1:19 PM Changeset in webkit [290065] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: [Flexbox] Enable Flexbox Inspector feature
​https://bugs.webkit.org/show_bug.cgi?id=235820
<rdar://87886409>

Reviewed by Patrick Angle.

Remove the engineering setting and enable the feature by default.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._updateLayoutBadge):

  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype._refreshNodeSets):
(WI.LayoutDetailsSidebarPanel):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createEngineeringSettingsView):

1:13 PM Changeset in webkit [290064] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GTK][WPE] Make proper ANGLE context configuration for some of the expected features
​https://bugs.webkit.org/show_bug.cgi?id=236664

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-17
Reviewed by Žan Doberšek.

Add some missing ANGLE GL context configuration options to respect
some of the expected requirements of the WebGL standard.

Fixing multiple layout tests for the ANGLE backend, we can not
modify them for the moment because this is not the default option
in the compilation.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::ANGLEContext::createContext): Add a new
parameter to detect WebGL2 context and modify context configuration.
(Nicosia::GCGLANGLELayer::GCGLANGLELayer): Ditto.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h: Ditto.
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): Enable
GL_OES_EGL_image required for the coordinated graphics texture rendering.

1:12 PM Changeset in webkit [290063] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] css/css-color/t422-rgba-onscreen-b.xht and css/css-color/t425-hsla-onscreen-b.xht are consistently failing
​https://bugs.webkit.org/show_bug.cgi?id=236802

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark tests as failing.
1:01 PM Changeset in webkit [290062] by Alan Coon
  • 3 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r290054. rdar://problem/89093315

[macOS] Light appearance text fields are invisible in Increased Contrast mode
​https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::shouldPaintCustomTextField const): (WebCore::RenderThemeMac::paintTextField):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290054 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:01 PM Changeset in webkit [290061] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE

Cherry-pick r290011. rdar://problem/89024095

REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
​https://bugs.webkit.org/show_bug.cgi?id=236699

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.

Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.

Will add test in bug 236759.

Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::ValidateAttributes):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290011 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:01 PM Changeset in webkit [290060] by Alan Coon
  • 18 edits in branches/safari-613.1.17.1-branch/Source

Cherry-pick r290005. rdar://problem/87596724

CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
​https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724

Reviewed by Jer Noble.

Source/WebCore:

When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.

Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)

Covered by existing tests.

  • editing/ios/EditorIOS.mm: (WebCore::Editor::writeImageToPasteboard):
  • editing/mac/EditorMac.mm: (WebCore::Editor::writeImageToPasteboard):
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::didFinishLoading):
  • loader/cache/CachedApplicationManifest.cpp: (WebCore::CachedApplicationManifest::finishLoading):
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::finishLoading):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::ensureCustomFontData):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::updateImageData):
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::calculateIncrementalDataChunk const): (WebCore::CachedRawResource::updateBuffer): (WebCore::CachedRawResource::finishLoading):
  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h: (WebCore::CachedResource::resourceBuffer const):
  • loader/cache/CachedScript.cpp: (WebCore::CachedScript::script):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::finishLoading):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the IPC::DataReference would reference a SharedBuffer going out of scope before it was sent over IPC.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290005 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:01 PM Changeset in webkit [290059] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289995. rdar://problem/87462825

REGRESSION(r285885) Unable to exit Trip Details in Amtrak app
​https://bugs.webkit.org/show_bug.cgi?id=236732
<rdar://87462825>

Reviewed by Simon Fraser.

Source/WebCore:

Starting from r285885 an (effective)”overflow: clip” value is set on any block box with “contain: paint”.
It is supposed to ensure we don’t paint outside of the box’s border box (note that "contain: paint", as the name implies, should only affect painting).

However this effective value trickles in to layout affecting certain layout constraints.
In case of flex, it makes the flex layout think that the box is really a clipped box and it starts flexing it accordingly producing incorrect size.
What it means is that the minimum preferred size ends up being 0px because now with "let's clip all the overflow content"
0px is indeed the smallest size a box could take that does not produce overflow (while with the initial, “overflow: visible” value,
its minimum width would likely be > 0px -provided it has some content. Also note that setting “overflow: clip” on the box in the markup
(so it becomes an explicit clip value and not just an “effective” implicit clip through “contain: paint”) produces
the exact same rendering meaning that this effective property value does affect layout).

This is a partial revert of r285885 (focusing on where the flex algorithm consults with the flex items' overflow values).

Test: fast/flexbox/incorrect-min-size-with-paint-contain.html

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::mainAxisOverflowForChild const): (WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):

LayoutTests:

  • fast/flexbox/incorrect-min-size-with-paint-contain-expected.html: Added.
  • fast/flexbox/incorrect-min-size-with-paint-contain.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289995 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:01 PM Changeset in webkit [290058] by Alan Coon
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WTF

Cherry-pick r289974. rdar://problem/89008799

Unreviewed, reverting r286874.
​https://bugs.webkit.org/show_bug.cgi?id=236734

Broke Apple Music pages which use the resolution media query

Reverted changeset:

"Enable the 'resolution' media query by default"
​https://bugs.webkit.org/show_bug.cgi?id=78087
​https://commits.webkit.org/r286874

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289974 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [290057] by Alan Coon
  • 4 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r289942. rdar://problem/88827167

[Cocoa] Update audio session category before setting NowPlaying status
​https://bugs.webkit.org/show_bug.cgi?id=236620
rdar://88827167

Reviewed by Jer Noble.

NowPlaying doesn't update correctly when the audio category changes from Ambient
to Playback after becoming active, so always set the category first.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::clientWillBeginPlayback): Set "preparingToPlay" before calling sessionWillBeginPlayback so updateSessionState can tell that playback is about to begin.
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState): Consider a session to potentially have audio if it is preparing to play.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289942 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:53 PM Changeset in webkit [290056] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.2-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
​https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:47 PM Changeset in webkit [290055] by Alan Coon
  • 9 edits in branches/safari-613.1.17.2-branch/Source

Versioning.

WebKit-7613.1.17.2.2

12:41 PM Changeset in webkit [290054] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[macOS] Light appearance text fields are invisible in Increased Contrast mode
​https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldPaintCustomTextField const):
(WebCore::RenderThemeMac::paintTextField):

12:33 PM Changeset in webkit [290053] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r290052.
​https://bugs.webkit.org/show_bug.cgi?id=236799

Broke the Mac Catalina build

Reverted changeset:

"[macOS] Light appearance text fields are invisible in
Increased Contrast mode"
​https://bugs.webkit.org/show_bug.cgi?id=236753
​https://commits.webkit.org/r290052

12:27 PM Changeset in webkit [290052] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[macOS] Light appearance text fields are invisible in Increased Contrast mode
​https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldPaintCustomTextField const):
(WebCore::RenderThemeMac::paintTextField):

12:27 PM Changeset in webkit [290051] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Enable CSS Motion Path by default
​https://bugs.webkit.org/show_bug.cgi?id=236681

Reviewed by Dean Jackson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
12:21 PM Changeset in webkit [290050] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r290046.
​https://bugs.webkit.org/show_bug.cgi?id=236797

Broke the macOS build

Reverted changeset:

"[macOS] Light appearance text fields are invisible in
Increased Contrast mode"
​https://bugs.webkit.org/show_bug.cgi?id=236753
​https://commits.webkit.org/r290046

12:19 PM Changeset in webkit [290049] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.3-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
​https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [290048] by Alan Coon
  • 9 edits in branches/safari-613.1.17.3-branch/Source

Versioning.

WebKit-7613.1.17.3.2

12:05 PM Changeset in webkit [290047] by Patrick Angle
  • 3 edits in trunk/Source/WebCore

Web Inspector: [Flexbox] Gaps and free space do not have pattern fills when navigating to a page with Web Inspector already open
​https://bugs.webkit.org/show_bug.cgi?id=236741

Reviewed by Devin Rousso.

Because calls to getDocument actually resets the InspectorDOMAgent, we don't want to clear cached layout
information inside reset. The cached layout information is in a WeakHashMap, we aren't going to end up keeping
stale references around anyways, and the under most circumstances the map will clean itself up as it is used.
We should, however go ahead and clear the cached layout information when we are forcing a re-layout to collect
the information again for a new document.

Additionally, if a new document is set, we want to trigger a layout just like we did for a fresh
InspectorDOMAgent.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::reset):
(WebCore::InspectorDOMAgent::setDocument):
(WebCore::InspectorDOMAgent::relayoutDocument):

  • inspector/agents/InspectorDOMAgent.h:
12:04 PM Changeset in webkit [290046] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[macOS] Light appearance text fields are invisible in Increased Contrast mode
​https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315

Reviewed by Wenson Hsieh.

In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.

Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.

No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::shouldPaintCustomTextField const):
(WebCore::RenderThemeMac::paintTextField):

12:02 PM Changeset in webkit [290045] by Alexander Mikhaylenko
  • 5 edits in trunk/Source/WebCore

[GTK] REGRESSION: Cumulative velocity for scrolling doesn't work
​https://bugs.webkit.org/show_bug.cgi?id=235507

Reviewed by Chris Lord.

ScrollAnimationKinetic can accumulate velocity from the previous scroll
animation. This relies on reusing the same animation every time, so it can
pick up the previous scroll data.

However, ScrollingEffectsController now creates and destroys ScrollAnimationKinetic
every time now, we can't rely on that.

Instead, save and propagate the data manually, same as the macOS port.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationKinetic::accumulateVelocityFromPreviousGesture):

  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::processWheelEventForKineticScrolling):

  • platform/ScrollingEffectsController.h:
11:59 AM Changeset in webkit [290044] by Alan Coon
  • 7 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289693. rdar://problem/88264857

Suppress style invalidation when matching :checked
​https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
  • html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289693 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [290043] by Alan Coon
  • 2 edits in branches/safari-613.1.17.0-branch/Source/ThirdParty/ANGLE

Cherry-pick r290011. rdar://problem/89024095

REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
​https://bugs.webkit.org/show_bug.cgi?id=236699

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.

Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.

Will add test in bug 236759.

Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::ValidateAttributes):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290011 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [290042] by Alan Coon
  • 18 edits in branches/safari-613.1.17.0-branch/Source

Cherry-pick r290005. rdar://problem/87596724

CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
​https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724

Reviewed by Jer Noble.

Source/WebCore:

When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.

Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)

Covered by existing tests.

  • editing/ios/EditorIOS.mm: (WebCore::Editor::writeImageToPasteboard):
  • editing/mac/EditorMac.mm: (WebCore::Editor::writeImageToPasteboard):
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::didFinishLoading):
  • loader/cache/CachedApplicationManifest.cpp: (WebCore::CachedApplicationManifest::finishLoading):
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::finishLoading):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::ensureCustomFontData):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::updateImageData):
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::calculateIncrementalDataChunk const): (WebCore::CachedRawResource::updateBuffer): (WebCore::CachedRawResource::finishLoading):
  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h: (WebCore::CachedResource::resourceBuffer const):
  • loader/cache/CachedScript.cpp: (WebCore::CachedScript::script):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::finishLoading):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the IPC::DataReference would reference a SharedBuffer going out of scope before it was sent over IPC.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@290005 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [290041] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289995. rdar://problem/87462825

REGRESSION(r285885) Unable to exit Trip Details in Amtrak app
​https://bugs.webkit.org/show_bug.cgi?id=236732
<rdar://87462825>

Reviewed by Simon Fraser.

Source/WebCore:

Starting from r285885 an (effective)”overflow: clip” value is set on any block box with “contain: paint”.
It is supposed to ensure we don’t paint outside of the box’s border box (note that "contain: paint", as the name implies, should only affect painting).

However this effective value trickles in to layout affecting certain layout constraints.
In case of flex, it makes the flex layout think that the box is really a clipped box and it starts flexing it accordingly producing incorrect size.
What it means is that the minimum preferred size ends up being 0px because now with "let's clip all the overflow content"
0px is indeed the smallest size a box could take that does not produce overflow (while with the initial, “overflow: visible” value,
its minimum width would likely be > 0px -provided it has some content. Also note that setting “overflow: clip” on the box in the markup
(so it becomes an explicit clip value and not just an “effective” implicit clip through “contain: paint”) produces
the exact same rendering meaning that this effective property value does affect layout).

This is a partial revert of r285885 (focusing on where the flex algorithm consults with the flex items' overflow values).

Test: fast/flexbox/incorrect-min-size-with-paint-contain.html

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::mainAxisOverflowForChild const): (WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):

LayoutTests:

  • fast/flexbox/incorrect-min-size-with-paint-contain-expected.html: Added.
  • fast/flexbox/incorrect-min-size-with-paint-contain.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289995 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [290040] by Alan Coon
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WTF

Cherry-pick r289974. rdar://problem/89008799

Unreviewed, reverting r286874.
​https://bugs.webkit.org/show_bug.cgi?id=236734

Broke Apple Music pages which use the resolution media query

Reverted changeset:

"Enable the 'resolution' media query by default"
​https://bugs.webkit.org/show_bug.cgi?id=78087
​https://commits.webkit.org/r286874

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289974 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [290039] by Alan Coon
  • 4 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r289942. rdar://problem/88827167

[Cocoa] Update audio session category before setting NowPlaying status
​https://bugs.webkit.org/show_bug.cgi?id=236620
rdar://88827167

Reviewed by Jer Noble.

NowPlaying doesn't update correctly when the audio category changes from Ambient
to Playback after becoming active, so always set the category first.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::clientWillBeginPlayback): Set "preparingToPlay" before calling sessionWillBeginPlayback so updateSessionState can tell that playback is about to begin.
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState): Consider a session to potentially have audio if it is preparing to play.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289942 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:38 AM Changeset in webkit [290038] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[css-grid] Incorrectly stretched SVGs without an aspect-ratio.
​https://bugs.webkit.org/show_bug.cgi?id=216145

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-17

11:38 AM Changeset in webkit [290037] by Antti Koivisto
  • 8 edits in trunk

[CSS Container Queries] Support full range notation in size queries
​https://bugs.webkit.org/show_bug.cgi?id=236771

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:

Source/WebCore:

Parse and evaluate notations like (100px < width) and (100px < width < 200px).

  • css/ContainerQuery.h:

There are now optional left and right comparisons.

  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeSizeQuery):
(WebCore::ContainerQueryParser::consumeSizeFeature):
(WebCore::ContainerQueryParser::consumePlainSizeFeature):

Evaluate the plain (foo: value) notation.

(WebCore::ContainerQueryParser::consumeRangeSizeFeature):

Evaluate range notation.

(WebCore::ContainerQueryParser::consumeValue):

  • css/ContainerQueryParser.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

Evaluate both comparisons if they exist.

  • style/ContainerQueryEvaluator.h:

(WebCore::Style::toEvaluationResult):
(WebCore::Style::operator|):

11:05 AM Changeset in webkit [290036] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.5

11:05 AM Changeset in webkit [290035] by Alan Coon
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.5

10:23 AM Changeset in webkit [290034] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: Thread::current().uid() == threadAssertion.m_uid for RemoteVideoFrameObjectHeap
​https://bugs.webkit.org/show_bug.cgi?id=236786

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Antti Koivisto.

The object is ok to destroy from any thread.
Reset the thread assertion.

  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:

(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):

10:19 AM Changeset in webkit [290033] by sihui_liu@apple.com
  • 8 edits in trunk

Ensure NetworkStorageManager::moveData performs move operation based on data types
​https://bugs.webkit.org/show_bug.cgi?id=236727
rdar://89009881

Reviewed by Chris Dumez.

Source/WebKit:

In r286936, we introduced NetworkStorageManager::moveData to move data from one origin to another. However, the
function does not take dataTypes parameter as NetworkProcess::renameOriginInWebsiteData does, and
NetworkStorageManager would try to move every storage type it manages. This has caused an unexpected failure, as
FileSystem storage needs special handling before data can be moved. To address the regression, let's revert
the behavior change by making sure NetworkStorageManager checks the types value, and only performs move
operation for IndexedDB and LocalStorage data.

Updated existing API test to ensure only expected data types are moved.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::renameOriginInWebsiteData):

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::moveData):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::moveData):
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::deleteIDBStorageData):
(WebKit::OriginStorageManager::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::resolvedIDBStoragePath):
(WebKit::OriginStorageManager::moveData):

  • NetworkProcess/storage/OriginStorageManager.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

9:57 AM Changeset in webkit [290032] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix abs-pos breadth issue when using 'auto'
​https://bugs.webkit.org/show_bug.cgi?id=236626

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Adds new test that uses RTL and abs-pos items over the padding area, with
padding defined in physical coords.

  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-025-expected.html: Added.
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-025.html: Added.

Source/WebCore:

The value returned when resolving an 'auto' start/end is in logical coords, but the line
positions are in a hybrid space using logical column sizes, but physical border/padding offset.
This adjusts for this, so that we can compute the breadth correctly.

Adds new test that uses RTL and abs-pos items over the padding area, with
padding defined in physical coords.

Test: imported/w3c/web-platform-tests/css/css-grid/abspos/positioned-grid-items-025.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):

9:56 AM Changeset in webkit [290031] by commit-queue@webkit.org
  • 35 edits
    2 adds
    2 deletes in trunk/Source

MediaPlayer::videoFrameForCurrentTime() should return VideoFrame
​https://bugs.webkit.org/show_bug.cgi?id=236701

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Eric Carlson.
Source/WebCore:

Rename CV specific parts of MediaSampleVideoFrame to VideoFrameCV.
Use VideoFrame base class instead of MediaSampleVideoFrame.
VideoFrame supports multiple polymorphic subclasses. One such
is RemoteVideoFrameProxy, which will be used in the future to
return remote proxy objects in these locations.

This patch is only a rename. It concerns only the in-process
usage of video frames via in-process VideoFrameCV.

No new tests, refactor.

  • Headers.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h:

(WebCore::MediaSample::videoPixelFormat const):

  • platform/VideoFrame.cpp:

(WebCore::VideoFrame::VideoFrame):
(WebCore::VideoFrame::presentationTime const):
(WebCore::VideoFrame::videoRotation const):
(WebCore::VideoFrame::videoMirrored const):
(WebCore::VideoFrame::platformSample const):

  • platform/VideoFrame.h:

(WebCore::VideoFrame::isRemoteProxy const):
This leaks "remote" concept to WebCore level. Hopefully
in the future this can be solved in another way.
(WebCore::VideoFrame::isCV const):
(isType):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::videoFrameForCurrentTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::videoFrameForCurrentTime):

  • platform/graphics/MediaSampleVideoFrame.h: Removed.
  • platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Removed.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoFrameForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoFrameForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoFrameForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::videoFrame const):

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):

  • platform/graphics/cv/GraphicsContextGLCV.h:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:

(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:
  • platform/graphics/cv/VideoFrameCV.h: Added.

(WebCore::VideoFrameCV::pixelBuffer const):
(WebCore::VideoFrameCV::encode const):
(WebCore::VideoFrameCV::decode):
(isType):

  • platform/graphics/cv/VideoFrameCV.mm: Added.

(WebCore::VideoFrameCV::create):
(WebCore::VideoFrameCV::VideoFrameCV):
(WebCore::VideoFrameCV::presentationSize const):
(WebCore::VideoFrameCV::videoPixelFormat const):
(WebCore::VideoFrameCV::orientation const):

Source/WebKit:

Use added VideoFrameCV instead of removed MediaSampleVideoFrame.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<RefPtr<T>>::encode):
(IPC::ArgumentCoder<RefPtr<T>>::decode):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:

(isType):

9:45 AM Changeset in webkit [290030] by Simon Fraser
  • 16 edits
    1 copy in trunk/Source/WebKit

Add support for setting RemoteLayerBackingStore buffers non-volatile in the GPU Process
​https://bugs.webkit.org/show_bug.cgi?id=236731

Reviewed by Tim Horton.

Calls to setVolatile() and isInUse() on IOSurface need to happen in the GPU Process,
so when RemoteLayerBackingStore swaps buffers in display(), and makes the front buffer
non-volatile, those things need to go via RemoteRenderingBackend.

So plumb markSurfaceNonVolatile() and swapToValidFrontBuffer() through RemoteLayerBackingStoreCollection
and RemoteRenderingBackend, both as sync messages.

In both cases, if the surface was purged (i.e. setNonVolatile returned Empty) we need
to trigger a setNeedsDisplay(), wired through RemoteLayerBackingStore::didMakeFrontBufferNonVolatile()
so there's only one call site.

We also need to always send the ImageBufferBackendHandle back from the GPU Process for
the front buffer, since a future patch will clear these out in the web process when
making buffers volatile.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::handleFromBuffer):
(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::swapBuffers):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint const):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::willMakeBufferVolatile):
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::setBufferVolatility):
(WebKit::RemoteLayerBackingStore::bufferForType const):
(WebKit::RemoteLayerBackingStore::supportsPartialRepaint): Deleted.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer):

  • WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:

(WebKit::ImageBufferBackendHandleSharing::setBackendHandle):
(WebKit::ImageBufferBackendHandleSharing::clearBackendHandle):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::getPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::putPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::setBackendHandle):
(WebKit::ImageBufferRemoteIOSurfaceBackend::clearBackendHandle):

  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
9:42 AM Changeset in webkit [290029] by Truitt Savell
  • 1 edit
    1 delete in trunk/LayoutTests

Remove the Catalina specific expectation added in r289834
​https://bugs.webkit.org/show_bug.cgi?id=236619

Unreviewed test gardening.

  • platform/mac-catalina/fonts/monospace-expected.txt: Removed.
9:38 AM Changeset in webkit [290028] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed GPU Process bot gardening.

  • gpu-process/TestExpectations:
9:18 AM Changeset in webkit [290027] by Adrian Perez de Castro
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[GTK] Build broken with ENABLE_X11_TARGET=OFF and no X11 headers present
​https://bugs.webkit.org/show_bug.cgi?id=236770

Reviewed by Alejandro G. Castro.

  • PlatformGTK.cmake: The USE_SYSTEM_EGL definition detaches the type definitions

from the EGL headers generic and prevents ANGLE's headers from including system X11
or Wayland headers from the system, so apply it always independently of whether the
USE_ANGLE_{EGL,WEBGL} options are enabled. While at it, fix a missing dollar sign in
the expansion of the ${GBM_INCLUDE_DIR} variable.

9:17 AM Changeset in webkit [290026] by Chris Dumez
  • 155 edits in trunk/Source

Clean up / optimize call sites constructing vectors
​https://bugs.webkit.org/show_bug.cgi?id=236748

Reviewed by Dean Jackson.

Clean up / optimize call sites constructing vectors:

  • Use Vector::map() / WTF::map() where appropriate

Source/JavaScriptCore:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::setNumEntrypoints):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayPatternNode::emitDirectBinding):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::setLiveValues):

  • dfg/DFGLivenessAnalysisPhase.cpp:
  • dfg/DFGScoreBoard.h:

(JSC::DFG::ScoreBoard::ScoreBoard):

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::parseBreakpointOptions):

  • inspector/remote/socket/RemoteInspectorMessageParser.cpp:

(Inspector::MessageParser::pushReceivedData):

  • parser/VariableEnvironment.cpp:

(JSC::CompactTDZEnvironment::CompactTDZEnvironment):

  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::Worklist):

Source/WebCore:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::read):
(WebCore::Clipboard::ItemWriter::didSetAllData):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/entriesapi/FileSystemEntriesCallback.cpp:

(WebCore::FileSystemEntriesCallback::scheduleCallback):
(WebCore::copyVector): Deleted.

  • Modules/entriesapi/HTMLInputElementEntriesAPI.cpp:

(WebCore::HTMLInputElementEntriesAPI::webkitEntries):

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::stop):

  • Modules/indexeddb/IDBGetAllResult.cpp:

(WebCore::IDBGetAllResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::isolatedCopy): Deleted.

  • Modules/indexeddb/IDBKeyPath.h:

(WebCore::isolatedCopy): Deleted.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::abortInProgressOperations):

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::removeItemsMatchingCurrentThread):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::deleteAllIndexes):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData):

  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:

(WebCore::IDBDatabaseInfo::objectStoreNames const):

  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::isolatedCopy const):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::isolatedCopy const):
(WebCore::IDBObjectStoreInfo::indexNames const):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::isolatedCopy):

  • Modules/indexeddb/shared/IndexKey.cpp:

(WebCore::IndexKey::isolatedCopy const):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::clone):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::capabilityStringVector):

  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::convertAdvancedToInternalForm):

  • Modules/mediastream/SFrameUtils.cpp:

(WebCore::toRbsp):

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::availabilityChanged):

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::didReceiveResult):

  • Modules/webauthn/cbor/CBORValue.cpp:

(cbor::CBORValue::CBORValue):

  • Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp:

(fido::toArrayValue):

  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::convertParametersToCBOR):

  • Modules/webauthn/fido/Pin.cpp:

(fido::pin::encodeRawPublicKey):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::databaseNames):
(WebCore::isolatedCopy): Deleted.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setMathscripts):
(WebCore::AXIsolatedObject::setObjectVectorProperty):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::objectsForIDs const):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readString):
(WebCore::SerializedScriptValue::blobURLs const):

  • crypto/mac/CryptoAlgorithmECDSAMac.cpp:

(WebCore::signECDSA):
(WebCore::verifyECDSA):

  • crypto/mac/CryptoKeyECMac.cpp:

(WebCore::CryptoKeyEC::platformExportSpki const):
(WebCore::CryptoKeyEC::platformExportPkcs8 const):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::exportSpki const):
(WebCore::CryptoKeyRSA::exportPkcs8 const):

  • css/CSSBasicShapes.cpp:

(WebCore::CSSBasicShapePolygon::cssText const):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::copyPropertiesInSet):
(WebCore::ComputedStyleExtractor::copyProperties):

  • css/CSSFontFace.cpp:

(WebCore::iterateClients):

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
(WebCore::CSSFontFaceSet::fontFace):

  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::copyPropertiesInSet const):
(WebCore::DeferredStyleProperties::DeferredStyleProperties):

  • css/StyleRule.cpp:

(WebCore::DeferredStyleGroupRuleList::DeferredStyleGroupRuleList):
(WebCore::StyleRuleGroup::StyleRuleGroup):

  • css/calc/CSSCalcOperationNode.h:
  • css/calc/CSSCalcValue.cpp:

(WebCore::createCSS):

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):

  • dom/DOMRectList.cpp:

(WebCore::DOMRectList::DOMRectList):

  • dom/Document.cpp:

(WebCore::Document::updateElementsAffectedByMediaQueries):
(WebCore::Document::didAssociateFormControlsTimerFired):

  • dom/ElementData.cpp:

(WebCore::UniqueElementData::UniqueElementData):

  • dom/EventListenerMap.cpp:

(WebCore::EventListenerMap::eventTypes const):

  • dom/TreeScopeOrderedMap.cpp:

(WebCore::TreeScopeOrderedMap::keys const):

  • editing/CompositeEditCommand.cpp:

(WebCore::copyMarkers):

  • editing/Editor.cpp:

(WebCore::editableTextListsAtPositionInDescendingOrder):

  • fileapi/FileList.cpp:

(WebCore::FileList::paths const):

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::HistoryItem):
(WebCore::m_formData):
(WebCore::m_identifier):

  • html/FileInputType.cpp:

(WebCore::FileInputType::setFiles):
(WebCore::FileInputType::filesChosen):

  • html/LinkIconCollector.cpp:

(WebCore::LinkIconCollector::iconsOfTypes):

  • html/URLSearchParams.cpp:

(WebCore::URLSearchParams::getAll const):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startIconLoading):
(WebCore::DocumentLoader::setActiveContentRuleListActionPatterns):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::getNewCues):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::preferredAudioCharacteristics const):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create):

  • page/Page.cpp:

(WebCore::Page::replaceRangesWithText):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::responseHeaders const):

  • page/csp/ContentSecurityPolicyResponseHeaders.cpp:

(WebCore::ContentSecurityPolicyResponseHeaders::isolatedCopy const):

  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::updateDataDetectorHighlights):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::buildSelectionHighlight):
(WebCore::ServicesOverlayController::handleClick):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::childrenOfNode const):

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::convertOffsetInfo):

  • platform/Length.cpp:

(WebCore::makeCalculated):

  • platform/animation/AnimationList.cpp:

(WebCore::AnimationList::AnimationList):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::audioMediaSelectionOptions const):

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyStore::convertToJSKeyStatusVector const):

  • platform/graphics/FloatPolygon.cpp:

(WebCore::FloatPolygon::overlappingEdges const):

  • platform/graphics/FloatQuad.cpp:

(WebCore::boundingBoxes):

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::removeTiles):
(WebCore::TileGrid::removeAllTiles):

  • platform/graphics/ca/TileGrid.h:
  • platform/graphics/cg/ImageUtilitiesCG.cpp:

(WebCore::findImagesForTranscoding):
(WebCore::transcodeImages):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::findClosestFont):
(WebCore::FontCache::getFontSelectionCapabilitiesInFamily):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance):

  • platform/network/CacheValidation.cpp:

(WebCore::collectVaryingRequestHeadersInternal):

  • platform/network/FormData.cpp:

(WebCore::FormData::isolatedCopy const):

  • platform/network/SocketStreamHandleImpl.cpp:

(WebCore::SocketStreamHandleImpl::platformSendHandshake):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:
  • platform/text/LocaleICU.cpp:

(WebCore::LocaleICU::createLabelVector):
(WebCore::createFallbackMonthLabels):
(WebCore::createFallbackAMPMLabels):

  • platform/text/LocaleNone.cpp:

(WebCore::LocaleNone::monthLabels):
(WebCore::LocaleNone::shortMonthLabels):
(WebCore::LocaleNone::timeAMPMLabels):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::LocaleCocoa::monthLabels):
(WebCore::LocaleCocoa::shortMonthLabels):
(WebCore::LocaleCocoa::standAloneMonthLabels):
(WebCore::LocaleCocoa::shortStandAloneMonthLabels):
(WebCore::LocaleCocoa::timeAMPMLabels):

  • plugins/DOMMimeTypeArray.cpp:

(WebCore::DOMMimeTypeArray::supportedPropertyNames const):
(WebCore::DOMMimeTypeArray::supportedPropertyNames): Deleted.

  • plugins/DOMMimeTypeArray.h:
  • plugins/DOMPlugin.cpp:

(WebCore::makeMimeTypes):
(WebCore::DOMPlugin::supportedPropertyNames const):
(WebCore::DOMPlugin::supportedPropertyNames): Deleted.

  • plugins/DOMPlugin.h:
  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::supportedPropertyNames const):
(WebCore::DOMPluginArray::supportedPropertyNames): Deleted.

  • plugins/DOMPluginArray.h:
  • rendering/LayerAncestorClippingStack.cpp:

(WebCore::LayerAncestorClippingStack::LayerAncestorClippingStack):
(WebCore::LayerAncestorClippingStack::compositedClipData const):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::clipBorderSidePolygon):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::trackSizesForComputedStyle const):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::collectClasses):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTo100PercentMinusLength):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstanceSession::updateLicense):
(WebCore::MockCDMInstanceSession::removeSessionData):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::getRegistrations):

Source/WebKit:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::originDetailsCrossThreadCopy):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::cacheInfos):

  • Shared/API/APIArray.cpp:

(API::Array::createStringArray):
(API::Array::copy):

  • Shared/API/APIDictionary.cpp:

(API::Dictionary::keys const):

  • Shared/UserData.cpp:

(WebKit::transformGraph):

  • Shared/WebContextMenuItem.cpp:

(WebKit::WebContextMenuItem::create):
(WebKit::WebContextMenuItem::submenuItemsAsAPIArray const):

  • Shared/WebContextMenuItemData.cpp:

(WebKit::kitItems):
(WebKit::coreItems):

  • UIProcess/API/APIWebAuthenticationPanel.cpp:

(API::WebAuthenticationPanel::WebAuthenticationPanel):

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):

  • UIProcess/API/C/WKPage.cpp:

(API::toAPIObjectVector):
(WKPageSetPageContextMenuClient):
(WKPageSetPageFindMatchesClient):
(WKPageSetPageLoaderClient):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::forEachSession):

  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::snapshotGamepads):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::allNetworkProcesses):
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies):

  • UIProcess/Notifications/WebNotificationProvider.cpp:

(WebKit::WebNotificationProvider::clearNotifications):

  • UIProcess/StatisticsRequest.cpp:

(WebKit::StatisticsRequest::completedRequest):

  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
(WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::selectAssertionResponse const):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::clear):
(WebKit::WebBackForwardList::restoreFromState):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::speechSynthesisVoiceList):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient replaceMatches:withString:inSelectionOnly:resultCollector:]):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.cpp:

(WebKit::RemoteRemoteCommandListener::updateSupportedCommands):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(contextMenuItems):
(WKBundlePageCopyOriginsWithApplicationCache):

  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:

(WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:

(WebKit::InjectedBundlePageFormClient::didAssociateFormControls):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::networkProcessCrashed):

  • WebProcess/Network/webrtc/WebRTCResolver.cpp:

(WebKit::WebRTCResolver::setResolvedAddress):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::takeStatistics):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::replaceMatches):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::toKeyframeValueVector):
(WebKit::PlatformCAAnimationRemote::setValues):
(WebKit::PlatformCAAnimationRemote::setTimingFunctions):

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::trackedRepaintRects):
(WebKit::dumpHistoryItem):

Source/WTF:

  • Replace Vector::reserveCapacity() with Vector::reserveInitialCapacity() where appropriate
  • Replace Vector::append() with Vector::uncheckedAppend() where appropriate
  • Leverage the fact that Vector<Ref<Foo>> is now copyable (Because Ref<> now has a copy constructor)
  • Call crossThreadCopy() to isolate-copy a Vector() without iterating.
  • Leverage Vector constructor that takes in an intialization list in more cases
  • Leverage Vector::from() in more cases to simplify vector construction in some case.
  • Drop unnecessary calls to Vector::reserve*Capacity() before calling Vector::append(T*, size_t) since the append() implementation already does this for us.
  • Leverage copyToVector() and copyToVectorOf<> in more cases
  • Call shrinkToFit() in some cases where we reserve capacity and then append() but may not append() as much as we reserved.
  • wtf/Language.cpp:

(WTF::userPreferredLanguages):
(WTF::isolatedCopy): Deleted.

9:14 AM Changeset in webkit [290025] by Antti Koivisto
  • 2 edits in trunk/Source/WTF

[CSS Container Queries] Enable by default
​https://bugs.webkit.org/show_bug.cgi?id=236776

Reviewed by Sam Weinig.

Flip the switch.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
8:56 AM Changeset in webkit [290024] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, fix heap enumeration
​https://bugs.webkit.org/show_bug.cgi?id=236662

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(pas_enumerate_segregated_heaps):

7:30 AM Changeset in webkit [290023] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Build failure when building with ANGLE enabled since r289912
​https://bugs.webkit.org/show_bug.cgi?id=236773

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-17
Reviewed by Adrian Perez de Castro.

Avoid including GLContext in the ANGLE classes.

No new tests, it is a building error.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
7:27 AM Changeset in webkit [290022] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.34.6

WPE WebKit 2.34.6

7:27 AM Changeset in webkit [290021] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.6 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.34.6
7:27 AM Changeset in webkit [290020] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.34.6

WebKitGTK 2.34.6

7:26 AM Changeset in webkit [290019] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsGTK.cmake and NEWS for the 2.34.6 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.34.6
7:26 AM Changeset in webkit [290018] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/ThirdParty/ANGLE

[GTK] Build broken with ENABLE_X11_TARGET=OFF and no X11 headers present

Unreviewed build fix.

This is a fix in the same vein as the one in ​https://bugs.webkit.org/show_bug.cgi?id=236770
for the stable 2.34 release branch.

  • PlatformGTK.cmake: Make sure that ANGLE_USE_X11, WL_EGL_PLATFORM, or USE_SYSTEM_EGL

are always defined independently of the USE_ANGLE_EGL and USE_ANGLE_WEBGL options.

7:26 AM Changeset in webkit [290017] by Adrian Perez de Castro
  • 11 edits in releases/WebKitGTK/webkit-2.34

Merge r289949 - [CMake] Cannot find OpenGL when system provides opengl.pc instead of gl.pc
​https://bugs.webkit.org/show_bug.cgi?id=236592

Reviewed by Don Olmstead.

.:

  • Source/cmake/FindOpenGL.cmake: Rewrite to use imported targets, try the "opengl" and "glx"

pkg-config modules first, otherwise keep the existing logic that tried the "gl" pkg-config
module with fallbacks to find_path/find_library.

  • Source/cmake/OptionsGTK.cmake: Check for the presence of the OpenGL::GLX target instead of

te GLX_FOUND variable.

Source/ThirdParty/ANGLE:

  • PlatformGTK.cmake: Use the OpenGL::OpenGL imported target instead of the

OPENGL_LIBRARIES variable.

  • PlatformWPE.cmake: Ditto, plus replace a spurious use of OPENGLES_LIBRARIES

with the OpenGL::GLES target.

Source/WebCore:

  • CMakeLists.txt: Use the OpenGL::OpenGL and OpenGL::GLX imported targets instead of variables.
  • platform/graphics/GLContext.cpp: Move here includes for the GL headers.
  • platform/graphics/GLContext.h: Remove includes for the GL headers, none of their

declarations are used here; instead include only the needed EGL headers to get the
definition of EGLNativeWindowType.

Source/WebKit:

  • CMakeLists.txt: Remove usage of the OPENGL_ variables for the WebKit target, which is

uneeded because it links to WebCore, which transitively pulls the needed libraries now
that imported targets are being used.

7:02 AM Changeset in webkit [290016] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Decouple line box relative alignment types when computing the root inline box's baseline position
​https://bugs.webkit.org/show_bug.cgi?id=236675

Reviewed by Antti Koivisto.

Line box relative alignments (top/bottom) impact on the root inline box's baseline is slightly different from
the rest of the alignments (baseline etc). In these patch these alignment type are moved out of the main loop where
all the other alignments are handled (this is similar to what we do at other placed e.g. LineBoxVerticalAligner::computeLineBoxLogicalHeight).
This patch is in preparation for fixing the bug where the 'vertical-bottom' aligned box makes other inline level boxes stick out of their parent block.

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):

6:54 AM Changeset in webkit [290015] by Chris Lord
  • 3 edits in trunk/Source/WebCore

[WPE] Build failure when building with ANGLE enabled since r289912
​https://bugs.webkit.org/show_bug.cgi?id=236768

Reviewed by Alejandro G. Castro.

Fix build after regression caused by r289912.

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking):

5:38 AM Changeset in webkit [290014] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Increase timeout to account for MIPS slowness
​https://bugs.webkit.org/show_bug.cgi?id=236763

Reviewed by Adrian Perez de Castro.

Commit ​https://commits.webkit.org/247272@main parallelized the
status fetching but also introduced a timeout. Unfortunately, the
MIPS boards used in the build.webkit.org buildbot are not fast
enough to gather the test results in this timeout, so the bot can
never complete its testing. This wasn't caught in EWS as the
buildbots use faster MIPS hardware there.

Significantly bump the timeout when fetching results.

  • Scripts/run-jsc-stress-tests:
5:36 AM Changeset in webkit [290013] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after r290003
​https://bugs.webkit.org/show_bug.cgi?id=236774

  • animation/FrameRateAligner.h:
5:32 AM Changeset in webkit [290012] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash while destroying RemoteVideoFrameObjectHeap
​https://bugs.webkit.org/show_bug.cgi?id=236765
<rdar://89003650>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Antti Koivisto.

Add virtual destructor to ThreadSafeObjectHeap. (ThreadSafe)RefCounted<T> deletes
the object through the T pointer. In this case, T is ThreadSafeObjectHeap, but
the underlying type is RemoteVideoFrameObjectHeap. This causes delete through non-virtual
pointer and skips ~ThreadSafeObjectHeap().

No new tests, tested by existing tests under ASAN.

  • Shared/ThreadSafeObjectHeap.h:
5:13 AM Changeset in webkit [290011] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
​https://bugs.webkit.org/show_bug.cgi?id=236699

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.

Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.

Will add test in bug 236759.

Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm:

(rx::IOSurfaceSurfaceMtl::ValidateAttributes):

4:53 AM Changeset in webkit [290010] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

LayoutTests/imported/w3c:
SVG SMIL restart="never" does not behave correctly
​https://bugs.webkit.org/show_bug.cgi?id=236491

Reviewed by Antti Koivisto.

Add a new test that checks whether restart="never" is respected when
begin="click" is set on an SVG <animate> element.

  • web-platform-tests/svg/animations/restart-never-and-begin-click-expected.txt: Added.
  • web-platform-tests/svg/animations/restart-never-and-begin-click.html: Added.

Source/WebCore:
[LBSE] Apply SVG specific changes to RenderLayer painting
​https://bugs.webkit.org/show_bug.cgi?id=236191

Patch by Nikolas Zimmermann <​nzimmermann@igalia.com> on 2022-02-17
Reviewed by Rob Buis.

This patch summarizes three small SVG specific changes regarding painting, not justifying
more atomic patches, since it's the same context of changes: painting + SVG layer.

  1. SVG container repainting

Layers associated with SVG container elements (<g> / <defs> (!)) should never trigger repaints,
unless they are filtered. Adapt RenderLayer::shouldRepaintAfterLayout() to enforce this.

  1. SVG viewport clipping

Assure that RenderSVGRoot viewport clipping is applied _before_ the SVG viewBox transformation
is applied (soon to be handled by RenderLayer for SVG).

  1. SVG clip-path handling

Add a stub implementation of RenderLayer::computeClipPath(). There are more important parts
to upstream, before adding clipping support for SVG - however this stub serves as reminder
for upcoming patches -- this strategy works well so far.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::shouldRepaintAfterLayout const):
(WebCore::RenderLayer::paintLayerWithEffects):
(WebCore::RenderLayer::computeClipPath const):

3:18 AM Changeset in webkit [290009] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebKit

Add some more debug triggers for WKHoverPlatter
​https://bugs.webkit.org/show_bug.cgi?id=236761

Reviewed by Darin Adler.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _allowsDoubleTapGestures]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):
Make it possible to use single tap as a two-step tap with WKHoverPlatter.
Make it possible to use double tap as an invocation gesture for WKHoverPlatter.

  • UIProcess/ios/WKHoverPlatter.h:
  • UIProcess/ios/WKHoverPlatter.mm:

(-[WKHoverPlatter initWithView:delegate:]):
Use WKHoverPlatterParameters.enabled instead of duplicating the set of enablement bits here.

(-[WKHoverPlatter isVisible]):
(-[WKHoverPlatter didReceiveMouseEvent:]):
(-[WKHoverPlatter didLongPressAtPoint:]):
(-[WKHoverPlatter didSingleTapAtPoint:]):
(-[WKHoverPlatter didDoubleTapAtPoint:]):
(-[WKHoverPlatter platterBoundingRect]):
(-[WKHoverPlatter linkSearchRect]):
(-[WKHoverPlatter adjustedPointForPoint:]):
(-[WKHoverPlatter hoverPoint]): Deleted.

  • UIProcess/ios/WKHoverPlatterParameters.h:
  • UIProcess/ios/WKHoverPlatterParameters.mm:

(-[WKHoverPlatterParameters setDefaultValues]):
Read prototyping default ... defaults ... from NSUserDefaults.

(-[WKHoverPlatterParameters enabled]):
(+[WKHoverPlatterParameters settingsControllerModule]):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]):
Only accept touch-phase touches from UITouchTypeIndirectPointer.
Otherwise synthetic direct touches continue through WKMouseGestureRecognizer
*and* trigger other gestures. This is a follow-up from r289785 that became more
obvious while writing this patch (and is a strict dependency of the other changes here).

3:15 AM Changeset in webkit [290008] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Apply SVG specific changes to RenderLayer painting
​https://bugs.webkit.org/show_bug.cgi?id=236191

Reviewed by Rob Buis.

This patch summarizes three small SVG specific changes regarding painting, not justifying
more atomic patches, since it's the same context of changes: painting + SVG layer.

  1. SVG container repainting

Layers associated with SVG container elements (<g> / <defs> (!)) should never trigger repaints,
unless they are filtered. Adapt RenderLayer::shouldRepaintAfterLayout() to enforce this.

  1. SVG viewport clipping

Assure that RenderSVGRoot viewport clipping is applied _before_ the SVG viewBox transformation
is applied (soon to be handled by RenderLayer for SVG).

  1. SVG clip-path handling

Add a stub implementation of RenderLayer::computeClipPath(). There are more important parts
to upstream, before adding clipping support for SVG - however this stub serves as reminder
for upcoming patches -- this strategy works well so far.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::shouldRepaintAfterLayout const):
(WebCore::RenderLayer::paintLayerWithEffects):
(WebCore::RenderLayer::computeClipPath const):

1:53 AM Changeset in webkit [290007] by commit-queue@webkit.org
  • 10 edits in trunk

Copy track sizes from parent grid into subgrid
​https://bugs.webkit.org/show_bug.cgi?id=236336

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-17
Reviewed by Dean Jackson.

Source/WebCore:

Copies track sizes from the parent RenderGrid's track sizing algorithm for axes
that are subgridded, rather than doing its own sizing.
Accounts for differences between the subgrid's grid-gap and the parent's grid gap,
as well as space occupied by the subgrid element's margin/border/padding.

Existing test expectations updated.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::run):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::gridGap const):
(WebCore::RenderGrid::populateGridPositionsForDirection):

  • rendering/RenderGrid.h:

LayoutTests:

Existing test expectations updated.

1:49 AM Changeset in webkit [290006] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

[JSC] Unskip test on mips
​https://bugs.webkit.org/show_bug.cgi?id=236645

Unreviewed gardening.

Can't reproduce this locally after 20 iterations.

  • stress/sampling-profiler-richards.js:
1:30 AM WebKitEnablingFlatpakClangd edited by Martin Robinson
(diff)
1:25 AM Changeset in webkit [290005] by Jean-Yves Avenard
  • 18 edits in trunk/Source

CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
​https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724

Reviewed by Jer Noble.

Source/WebCore:

When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.

Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)

Covered by existing tests.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::writeImageToPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeImageToPasteboard):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading):

  • loader/cache/CachedApplicationManifest.cpp:

(WebCore::CachedApplicationManifest::finishLoading):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::finishLoading):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::ensureCustomFontData):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::updateImageData):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::calculateIncrementalDataChunk const):
(WebCore::CachedRawResource::updateBuffer):
(WebCore::CachedRawResource::finishLoading):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::resourceBuffer const):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):

  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::finishLoading):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the
IPC::DataReference would reference a SharedBuffer going
out of scope before it was sent over IPC.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):

1:11 AM Changeset in webkit [290004] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebKit

RemoteVideoFrameProxy should use RemoteVideoFrameObjectHeapProxy to get the pixel buffer representation
​https://bugs.webkit.org/show_bug.cgi?id=236704

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-17
Reviewed by Antti Koivisto.

Currently RemoteVideoFrameProxy uses RemoteVideoFrameObjectHeapProxy to transfer the pixel buffer
from GPU process to Web process in scenarios where the pixel buffer is used in Web process.

Previously RemoteVideoFrameProxy client would have to provide a thread-safe function that
should call RemoteVideoFrameObjectHeapProxy::getPixelBuffer().
Current clients do not provide a thread-safe function.

Instead, RemoteVideoFrameProxy should provide just the RemoteVideoFrameObjectHeapProxy reference,
since this is the only way to get the pixel buffer anyway. This simplifies the call sites, makes
the implementation more correct and avoids the use of ifdefs.

Make the code consistent with ifdefs. This is platform-independent code, so remove COCOA ifdefs.
All platforms that transfer pixels would need to have RemoteVideoFrameObjectHeapProxy.
This is media stream specific code, so add MEDIA_STREAM ifdefs.

To be consistent with existing GPUP side code, do not use "remote" prefix on the
variable names. E.g. use "videoFrameObjectHeapProxy" to refer to the proxy. The remote part
is redundant, as this is implied.

Clean up related RemoteVideoFrameProxy::pixelBuffer() function to not store unneeded semaphores
as instance variables or use duplicate helper functions.

No new tests, a refactor.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::videoFrameObjectHeapProxy):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToMediaSample):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::create):
(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::pixelBuffer const):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThreadWithLock):
(WebKit::LibWebRTCCodecs::completedDecoding):

  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxy.h:

(WebKit::RemoteVideoFrameObjectHeapProxy::RemoteVideoFrameObjectHeapProxy):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::setVideoFrameObjectHeapProxy):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):

1:05 AM WebKitEnablingFlatpakClangd created by Martin Robinson
12:57 AM WebKitFlatpakSDK edited by Martin Robinson
(diff)
12:14 AM Changeset in webkit [290003] by graouts@webkit.org
  • 13 edits
    1 copy
    1 add in trunk

Use the animation frame rate during animation resolution and scheduling
​https://bugs.webkit.org/show_bug.cgi?id=234202
rdar://85983678

Reviewed by Simon Fraser.

Source/WebCore:

We've previously added properties to DocumentTimeline to expose the maximum frame rate supported
by the display (bug 234161) and to Animation to let animations specify the frame rate at which
they would like to be updated (bug 234174).

In this patch we add support for accounting for the frame rate set on animations to ensure they
are updated at a cadence close to the one requested, with the following provisions:

  • we do our best to match the frame rate provided by the animation but account for the display's refresh rate to only ever update animations when the display is being refreshed,
  • we update all animations sharing the same frame rate in the same updates,
  • we schedule updates sparingly accounting for the frame rate of animation such that a page only containing animations that are running at, for instance, 15fps only result in calls to DocumentTimelinesController::updateAnimationsAndSendEvents() at 15fps,
  • other factors may impact the animation frame rate, such as low power mode.

There is no test for this code currently. It is not possible to test for the actual
rate at which animations are updated in a testing environment, since there are too
many variables to ensure consistent results. However, future patches will look into
adding internals code such that tests may inspect the update cadence set on the timeline
and frame rates at which animations are optimistically scheduled to update.

The FrameRateAligner class provides a supporting object for DocumentTimelinesController
which contains the data related to the frame rates currently in use by all animations in
the document. This class will be updated in future patches to better handle alignment of
animations added dynamically with previously unused frame rates.

Note that all of those changes to scheduling only affects page rendering updates triggered
by animations. Page rendering updates continue to be scheduled by calls to requestAnimationFrame()
independently from the frame rate specified on animations.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationInterval const):
(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):
(WebCore::DocumentTimelinesController::timeUntilNextTickForAnimationsWithFrameRate const):

  • animation/DocumentTimelinesController.h:

(WebCore::DocumentTimelinesController::maximumAnimationFrameRate const):

  • animation/FrameRateAligner.cpp: Added.

(WebCore::idealTimeForNextUpdate):
(WebCore::FrameRateAligner::beginUpdate):
(WebCore::FrameRateAligner::updateFrameRate):
(WebCore::FrameRateAligner::timeUntilNextUpdateForFrameRate const):
(WebCore::FrameRateAligner::maximumFrameRate const):

  • animation/FrameRateAligner.h: Copied from Source/WebCore/animation/DocumentTimelinesController.h.
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setEffectiveFrameRate):

  • page/Page.cpp:

(WebCore::Page::timelineControllerMaximumAnimationFrameRateDidChange):
(WebCore::Page::preferredRenderingUpdateFramesPerSecond const):

  • page/Page.h:

LayoutTests:

Update this test to not rely on hard values but rather check that throttling
has the expected effect of doubling the interval between frames.

  • fast/animation/css-animation-throttling-lowPowerMode-expected.txt:
  • fast/animation/css-animation-throttling-lowPowerMode.html:
12:08 AM Changeset in webkit [290002] by commit-queue@webkit.org
  • 12 edits in trunk

Unreviewed, reverting r289949.
​https://bugs.webkit.org/show_bug.cgi?id=236757

Breaks WPE builds with -DUSE_ANGLE_WEBGL=ON

Reverted changeset:

"[CMake] Cannot find OpenGL when system provides opengl.pc
instead of gl.pc"
​https://bugs.webkit.org/show_bug.cgi?id=236592
​https://commits.webkit.org/r289949

12:00 AM Changeset in webkit [290001] by timothy@apple.com
  • 8 edits in trunk/Source

Add -[WKWebProcessPlugInFrame lookUpFrameFromJSValue:].
​https://bugs.webkit.org/show_bug.cgi?id=236714
rdar://problem/89030846

Reviewed by Chris Dumez.

Source/WebCore:

  • page/Frame.cpp:

(WebCore::Frame::contentFrameFromWindowOrFrameElement): Added.

  • page/Frame.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(+[WKWebProcessPlugInFrame lookUpContentFrameFromWindowOrFrameElement:]): Added.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::contentFrameForWindowOrFrameElement): Added.

  • WebProcess/WebPage/WebFrame.h:

Feb 16, 2022:

11:42 PM Changeset in webkit [290000] by ysuzuki@apple.com
  • 18 edits
    2 deletes in trunk/Source/bmalloc

[libpas] Use segmented vector for TLC layout list
​https://bugs.webkit.org/show_bug.cgi?id=236662

Reviewed by Saam Barati.

We add segmented vector for pas_thread_local_cache_layout_node iteration instead of using
linked-list of that to accelerate iteration performance. It does not affect on Speedometer2,
JetStream2, PLT5 etc., but we do this iteration frequently in scavenger thread, and reducing
time of this makes it efficient. While speeding up scavenger does not matter for throughput
of non scavenger threads since libpas works well without taking a lock in most times which
is blocked by scavenger, making scavenger faster is good for energy efficiency.

  1. Use segmented vector for (concurrently read) pas_thread_local_cache_layout_node list. We still keep nice for-loop abstraction for list of pas_thread_local_cache_layout_node.
  2. Remove pas_local_view_cache_node since we no longer need it. It was introduced just to make it linked-list node for pas_thread_local_cache_layout_node. But now, segmented vector is holding it separately.
  3. Move pas_segregated_size_directory_data's allocator_index to pas_segregated_size_directory. Because of (1) change, we can make pas_segregated_size_directory linked-list-node, which saves 4 bytes. So we can move pas_segregated_size_directory_data's allocator_index to pas_segregated_size_directory since it is heavily accessed from the scavenger.
  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/libpas.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_designated_intrinsic_heap.c:

(set_up_range):

  • libpas/src/libpas/pas_enumerate_segregated_heaps.c:

(pas_enumerate_segregated_heaps):

  • libpas/src/libpas/pas_local_view_cache_node.c: Removed.
  • libpas/src/libpas/pas_local_view_cache_node.h: Removed.
  • libpas/src/libpas/pas_redundant_local_allocator_node.c:

(pas_redundant_local_allocator_node_create):

  • libpas/src/libpas/pas_redundant_local_allocator_node.h:
  • libpas/src/libpas/pas_root.c:

(pas_root_construct):

  • libpas/src/libpas/pas_root.h:
  • libpas/src/libpas/pas_segregated_heap.c:

(recompute_size_lookup):
(pas_segregated_heap_ensure_allocator_index):

  • libpas/src/libpas/pas_segregated_size_directory.c:

(pas_segregated_size_directory_create):
(pas_segregated_size_directory_ensure_data):
(pas_segregated_size_directory_create_tlc_allocator):
(pas_segregated_size_directory_get_allocator_from_tlc):

  • libpas/src/libpas/pas_segregated_size_directory.h:

(pas_segregated_size_directory_has_tlc_allocator):
(pas_segregated_size_directory_get_tlc_allocator_index):

  • libpas/src/libpas/pas_thread_local_cache.c:

(decommit_allocator_range):
(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_thread_local_cache_layout.c:

(pas_thread_local_cache_layout_add_node):
(pas_thread_local_cache_layout_add_view_cache):
(pas_thread_local_cache_layout_get_last_node):

  • libpas/src/libpas/pas_thread_local_cache_layout.h:

(pas_thread_local_cache_layout_segment_get_node):
(pas_thread_local_cache_layout_segment_next_node):

  • libpas/src/libpas/pas_thread_local_cache_layout_node.c:

(pas_thread_local_cache_layout_node_get_directory):
(allocator_index_ptr):
(next_ptr): Deleted.
(pas_thread_local_cache_layout_node_get_next): Deleted.
(pas_thread_local_cache_layout_node_set_next): Deleted.

  • libpas/src/libpas/pas_thread_local_cache_layout_node.h:

(pas_wrap_local_view_cache_node):
(pas_unwrap_local_view_cache_node):

11:30 PM Changeset in webkit [289999] by timothy_horton@apple.com
  • 7 edits in trunk

Revert r275772: inflated FloatSize memory layout unnecessarily
​https://bugs.webkit.org/show_bug.cgi?id=236743

Reviewed by Simon Fraser.

Source/WebCore:

  • platform/graphics/FloatSize.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
(WebCore::RenderReplaced::computeReplacedLogicalHeight const):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::computeIntrinsicRatioInformation const):

LayoutTests:

10:24 PM Changeset in webkit [289998] by commit-queue@webkit.org
  • 12 edits in trunk

Lookup line names for sub grids using line names from ancestor grids
​https://bugs.webkit.org/show_bug.cgi?id=236287

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-16
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-001-expected.txt:
  • web-platform-tests/css/css-grid/subgrid/line-names-005-expected.html:
  • web-platform-tests/css/css-grid/subgrid/line-names-005.html:

Make line-names-005.html slightly harder by having the multiple definitions of the 'a' grid area be different at both edges.

Source/WebCore:

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::populateExplicitGridAndOrderIterator const):

  • rendering/style/GridArea.h:

(WebCore::GridSpan::clamp):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::explicitGridSizeForSide):
(WebCore::transposedSide):
(WebCore::clampedImplicitLineForArea):
(WebCore::NamedLineCollectionBase::NamedLineCollectionBase):
(WebCore::NamedLineCollectionBase::ensureLocalStorage):
(WebCore::NamedLineCollectionBase::contains const):
(WebCore::NamedLineCollection::NamedLineCollection):
(WebCore::NamedLineCollection::hasExplicitNamedLines const):
(WebCore::NamedLineCollection::hasNamedLines const):
(WebCore::NamedLineCollection::lastLine const):
(WebCore::NamedLineCollection::contains const):
(WebCore::NamedLineCollection::firstExplicitPosition const):
(WebCore::NamedLineCollection::firstPosition const):
(WebCore::adjustGridPositionsFromStyle):
(WebCore::lookAheadForNamedGridLine):
(WebCore::lookBackForNamedGridLine):
(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::definiteGridSpanWithNamedLineSpanAgainstOpposite):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionFromStyle):

Splits NamedLineCollection into two classes, where the base class only handles
a single grid, and the subclass handles inheriting lines from ancestor grids.
Loops over ancestor grids, looking for named lines that are shared with the initial
grid, and if found, adds them (using the local line number) to a local copy of the line
names array.

Also handles the cases where a named grid area spans outside of the subgrid area, by
clamping the area to the explicit grid (since subgrid can't generate implicit grid lines),
and then generating new implicit grid lines. These lines are added to the same local line
name array as is used for inherited ancestor lines. This clamping and regeneration of implicit
lines works for both areas defined on the subgrid, as well as on ancestors.

  • rendering/style/GridPositionsResolver.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyValueGridTemplateRows):

Removes these calls to add the implicit lines to the normal line lists, since
they're already in the implicit line lists and having them in both stops us from
being able to regenerate them for subgrids.

LayoutTests:

Update expectations for newly passing tests.

10:05 PM Changeset in webkit [289997] by jh718.park@samsung.com
  • 13 edits in trunk

Change the canonical unit for time category from ms to s.
​https://bugs.webkit.org/show_bug.cgi?id=236631

Reviewed by Darin Adler.

According to the spec, ​https://drafts.csswg.org/css-values-4/#time,
the canonical unit for <time> is Seconds.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/minmax-time-serialize-expected.txt:

Source/WebCore:

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):

  • css/CSSUnits.cpp:

(WebCore::canonicalUnitTypeForCategory):

  • css/calc/CSSCalcCategoryMapping.cpp:

(WebCore::canonicalUnitTypeForCalculationCategory):

LayoutTests:

  • fast/css/calc-with-angle-time-frequency-expected.txt:
  • fast/css/calc-with-angle-time-frequency.html:
  • fast/css/getFloatValueForUnit-expected.txt:
  • fast/css/getFloatValueForUnit.html:
  • fast/css/transition-delay-calculated-value-expected.txt:
  • fast/css/transition-delay-calculated-value.html:
8:25 PM Changeset in webkit [289996] by sihui_liu@apple.com
  • 5 edits in trunk

Use FileSystem::readEntireFile everywhere
​https://bugs.webkit.org/show_bug.cgi?id=233818
<rdar://problem/86324895>

Reviewed by Chris Dumez.

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::readSizeFile):

  • Shared/PersistencyUtils.cpp:

(WebKit::createForFile):

Tools:

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::readContentsOfFile):

8:23 PM Changeset in webkit [289995] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION(r285885) Unable to exit Trip Details in Amtrak app
​https://bugs.webkit.org/show_bug.cgi?id=236732
<rdar://87462825>

Reviewed by Simon Fraser.

Source/WebCore:

Starting from r285885 an (effective)”overflow: clip” value is set on any block box with “contain: paint”.
It is supposed to ensure we don’t paint outside of the box’s border box (note that "contain: paint", as the name implies, should only affect painting).

However this effective value trickles in to layout affecting certain layout constraints.
In case of flex, it makes the flex layout think that the box is really a clipped box and it starts flexing it accordingly producing incorrect size.
What it means is that the minimum preferred size ends up being 0px because now with "let's clip all the overflow content"
0px is indeed the smallest size a box could take that does not produce overflow (while with the initial, “overflow: visible” value,
its minimum width would likely be > 0px -provided it has some content. Also note that setting “overflow: clip” on the box in the markup
(so it becomes an explicit clip value and not just an “effective” implicit clip through “contain: paint”) produces
the exact same rendering meaning that this effective property value does affect layout).

This is a partial revert of r285885 (focusing on where the flex algorithm consults with the flex items' overflow values).

Test: fast/flexbox/incorrect-min-size-with-paint-contain.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainAxisOverflowForChild const):
(WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):

LayoutTests:

  • fast/flexbox/incorrect-min-size-with-paint-contain-expected.html: Added.
  • fast/flexbox/incorrect-min-size-with-paint-contain.html: Added.
7:46 PM Changeset in webkit [289994] by pvollan@apple.com
  • 25 edits
    4 adds in trunk/Source

Send icons to the WebContent process for rendering of the attachment element
​https://bugs.webkit.org/show_bug.cgi?id=236386

Reviewed by Darin Adler.

In order to avoid connecting to the Icon Services daemon in the WebContent process, we should send the icons for the attachment
Source/WebCore:

element to the WebContent process from the UI process. When the icon is being painted in the WebContent process, it is getting
the icon from the HTML attachment element, instead of creating it by connecting to Icon Services. The icon in the attachment
element is received from the UI process. A new AttachmentElementClient class is created to forward the messages to the UI
process.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::updateIcon):
(WebCore::HTMLAttachmentElement::icon const):
(WebCore::HTMLAttachmentElement::iconSize const):

  • html/HTMLAttachmentElement.h:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/AttachmentElementClient.h: Added.

(WebCore::AttachmentElementClient::~AttachmentElementClient):

  • page/EmptyAttachmentElementClient.h: Added.
  • page/Page.cpp:

(WebCore::m_attachmentElementClient):
(WebCore::m_modelPlayerProvider): Deleted.

  • page/Page.h:

(WebCore::Page::attachmentElementClient):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • platform/graphics/Icon.h:

(WebCore::Icon::nsImage const):

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::iconForAttachment):
(WebCore::RenderAttachmentInfo::RenderAttachmentInfo):
(WebCore::paintAttachmentIcon):
(WebCore::iconForAttachment): Deleted.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::iconForAttachment):
(WebCore::paintAttachmentIcon):
(WebCore::iconForAttachment): Deleted.

Source/WebKit:

element to the WebContent process from the UI process. The icon will be sent to the WebContent process when the attachment
attributes are updated, or the WebContent process has requested the icon. The new client class WebAttachmentElementClient is
responsible for requesting icons from the UI process.

  • Sources.txt:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::convertPlatformImageToBitmap):
(WebKit::WebPageProxy::iconForAttachment):
(WebKit::WebPageProxy::requestThumbnailWithOperation):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestAttachmentIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::updateAttachmentThumbnail):
(WebKit::WebPageProxy::updateAttachmentIcon): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebAttachmentElementClient.cpp: Added.

(WebKit::WebAttachmentElementClient::WebAttachmentElementClient):
(WebKit::WebAttachmentElementClient::requestAttachmentIcon):

  • WebProcess/WebCoreSupport/WebAttachmentElementClient.h: Added.
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::didInsertAttachmentWithIdentifier):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::updateAttachmentThumbnail):
(WebKit::WebPage::updateAttachmentIcon):
(WebKit::WebPage::requestAttachmentIcon):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
7:40 PM Changeset in webkit [289993] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Implement getComputedStyle for subgrids
​https://bugs.webkit.org/show_bug.cgi?id=236148

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-16
Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Adds OrderedNamedLinesCollectorInSubgridLayout to iterate the subgrid names list, stopping
at the number of actual tracks in the grid.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollectorInSubgridLayout::OrderedNamedLinesCollectorInSubgridLayout):
(WebCore::OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex const):
(WebCore::OrderedNamedLinesCollectorInSubgridLayout::collectLineNamesForIndex const):
(WebCore::addValuesForNamedGridLinesAtIndex):
(WebCore::populateSubgridTrackList):
(WebCore::valueForGridTrackList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeAutoRepeatTracksCount const):

  • rendering/RenderGrid.h:
  • rendering/style/GridPositionsResolver.cpp:

(WebCore::NamedLineCollection::contains const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::createGridTrackList):

LayoutTests:

Mark tests as no longer crashing.

7:35 PM Changeset in webkit [289992] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

Use OptionSet for TextureMapperShaderProgram::Options
​https://bugs.webkit.org/show_bug.cgi?id=236689

Reviewed by Don Olmstead.

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:

(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGLData::getShaderProgram):
Use unsigned for the HashMap key since OptionSet can't be used as a key.
(WebCore::optionsForFilterType):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawSolidColor):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
7:21 PM Changeset in webkit [289991] by Cameron McCormack
  • 7 edits
    1 move
    1 add
    1 delete in trunk/Source/WebCore

Cache an entire attribute QualifiedName when parsing HTML, not just its local name AtomString
​https://bugs.webkit.org/show_bug.cgi?id=236570
<rdar://problem/88876545>

Reviewed by Darin Adler.

Bug 229907 added HTMLAtomStringCache, which uses a fast to compute hash
that works well to cache HTML tag names, attribute names, and attribute
values. When AtomHTMLToken initializes its list of Attributes, it uses
HTMLAtomStringCache to look up or create an AtomString for the
attribute's local name, and then creates a QualifiedName to wrap it.
QualifiedName construction involves looking up QualifiedNameCache, which
is a thread-specific cache of QualifiedNameImpl objects. If we make
HTMLAtomStringCache responsible for caching an attribute's QualifiedName
instead of just its local name AtomString, we can avoid the work of
looking up the QualifiedNameCache.

To reflect its broader responsibilities, HTMLAtomStringCache is renamed
to HTMLNameCache.

Doing this results in a 0.2-0.3% improvement on Speedometer 2, and a
0.3-0.4% improvement on PLT5 (with the lower end of those ranges being
on Apple Silicon and the higher end on Intel).

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/QualifiedName.h:

(WebCore::QualifiedName::QualifiedName):

  • html/parser/AtomHTMLToken.h:

(WebCore::AtomHTMLToken::initializeAttributes):
(WebCore::AtomHTMLToken::AtomHTMLToken):

  • html/parser/HTMLAtomStringCache.h: Removed.

(WebCore::HTMLAtomStringCache::makeTagOrAttributeName): Deleted.
(WebCore::HTMLAtomStringCache::makeAttributeValue): Deleted.
(WebCore::HTMLAtomStringCache::clear): Deleted.
(WebCore::HTMLAtomStringCache::make): Deleted.
(WebCore::HTMLAtomStringCache::cacheSlot): Deleted.

  • html/parser/HTMLNameCache.cpp: Renamed from Source/WebCore/html/parser/HTMLAtomStringCache.cpp.

(WebCore::HTMLNameCache::atomStringCache):
(WebCore::HTMLNameCache::qualifiedNameCache):

  • html/parser/HTMLNameCache.h: Added.

(WebCore::HTMLNameCache::makeTagName):
(WebCore::HTMLNameCache::makeAttributeQualifiedName):
(WebCore::HTMLNameCache::makeAttributeValue):
(WebCore::HTMLNameCache::clear):
(WebCore::HTMLNameCache::makeAtomString):
(WebCore::HTMLNameCache::makeQualifiedName):
(WebCore::HTMLNameCache::slotIndex):
(WebCore::HTMLNameCache::atomStringCacheSlot):
(WebCore::HTMLNameCache::qualifiedNameCacheSlot):

  • page/MemoryRelease.cpp:

(WebCore::releaseNoncriticalMemory):

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):

7:19 PM Changeset in webkit [289990] by jonlee@apple.com
  • 47 edits in trunk/LayoutTests

Add fuzzy data for test failures seen on the iOS GPU Process bot
Unreviewed.

LayoutTests/imported/mozilla:

  • svg/blend-exclusion.svg:
  • svg/blend-overlay.svg:
  • svg/text-gradient-01.svg:

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/background-rounded-image-clip.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-001.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-002.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-003.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-004.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-005.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-006.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-007.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-008.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-001.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-002.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-004.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-005.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-006.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-007.html:
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-008.html:
  • web-platform-tests/css/css-transforms/css-skew-002.html:
  • web-platform-tests/css/css-transforms/transforms-skewY.html:

LayoutTests:

  • compositing/backgrounds/fixed-backgrounds.html:
  • compositing/images/positioned-image-content-rect.html:
  • css3/background/background-repeat-space-border.html:
  • css3/background/background-repeat-space-content.html:
  • css3/background/background-repeat-space-padding.html:
  • css3/masking/clip-path-ellipse.html:
  • css3/masking/clip-path-inset-corners.html:
  • css3/masking/clip-path-restore.html:
  • fast/backgrounds/gradient-background-shadow.html:
  • fast/filter-image/filter-image-blur.html:
  • fast/layers/overflow-scroll-transform-border-radius.html:
  • fast/masking/clip-path-inset-large-radii.html:
  • fast/overflow/line-clamp-with-text-shadow.html:
  • fast/text/decorations-vertical-underline.html:
  • fast/text/fitzpatrick-combination.html:
  • fast/text/simple-line-layout-text-position-with-stroke.html:
  • gpu-process/TestExpectations:
  • svg/clip-path/clip-opacity.html:
  • svg/clip-path/clip-path-objectboundingbox-003.svg:
  • svg/clip-path/svg-in-html.html:
  • svg/clip-path/webkit-clip-path-after.svg:
  • svg/clip-path/webkit-clip-path-before.svg:
6:19 PM Changeset in webkit [289989] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

REGRESSION: TestWebKitAPI.WKWebViewDisableSelection.DoubleClickDoesNotSelectWhenTextInteractionsAreDisabled is failing
​https://bugs.webkit.org/show_bug.cgi?id=236718

Reviewed by Wenson Hsieh.

A check got missed when refactoring code for 289818.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventDoubleClick):

5:59 PM Changeset in webkit [289988] by Jonathan Bedard
  • 2 edits in trunk/Tools

Broken pipes during iOS simulator testing
​https://bugs.webkit.org/show_bug.cgi?id=230513
<rdar://problem/83325409>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.Popen.poll): Close stdin, stdout and stderr when process ends.

5:31 PM Changeset in webkit [289987] by Jonathan Bedard
  • 4 edits in trunk/Tools

[EWS] Rename 'patch' to 'change' in transfer-archive-to-s3
​https://bugs.webkit.org/show_bug.cgi?id=236706
<rdar://problem/89025868>

Reviewed by Aakash Jain.

  • Tools/CISupport/Shared/transfer-archive-to-s3: Change --patch_id argument

to --change-id.

  • Tools/CISupport/ews-build/steps.py:

(TransferToS3): Invoke transfer-archive-to-s3 with --change-id.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247372@main

5:31 PM Changeset in webkit [289986] by commit-queue@webkit.org
  • 13 edits in trunk

Inherit track count from parent grid for subgridded axes and clamp item placement to that explicit grid.
​https://bugs.webkit.org/show_bug.cgi?id=236122

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-16
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Test changes to match latest spec, submitted upstream as ​https://github.com/web-platform-tests/wpt/pull/32629

  • web-platform-tests/css/css-grid/subgrid/line-names-002-expected.html:
  • web-platform-tests/css/css-grid/subgrid/line-names-005-expected.html:

Source/WebCore:

Changes GridPositionsResolver::explicitGrid<>Count to return the number of tracks
spanned in the parent grid, for axes that are a subgrid.

Updates adjustGridPositionsForStyle to use the number of lines specified in the
subgrid property, for grid items that are also a subgrid and have an otherwise
indefinite span.

Adds clamping support to Grid so that we can prevent subgrids from ever adding
new implicit tracks.

  • rendering/Grid.cpp:

(WebCore::Grid::insert):
(WebCore::Grid::setClampingForSubgrid):
(WebCore::Grid::clampAndTranslateToImplicitGrid):
(WebCore::Grid::setNeedsItemsPlacement):

  • rendering/Grid.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeIntrinsicLogicalWidths const):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator const):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid const):
(WebCore::RenderGrid::isSubgrid const):
(WebCore::RenderGrid::isSubgridRows const):
(WebCore::RenderGrid::isSubgridColumns const):
(WebCore::RenderGrid::gridAreaBreadthForOutOfFlowChild):
(WebCore::RenderGrid::numTracks const):
(WebCore::transposedDirection):
(WebCore::RenderGrid::computeGridSpanForOutOfFlowChild const):
(WebCore::RenderGrid::gridSpanForOutOfFlowChild const):
(WebCore::RenderGrid::gridSpanForChild const):

  • rendering/RenderGrid.h:
  • rendering/style/GridArea.h:

(WebCore::GridSpan::integerSpan const):
(WebCore::GridSpan::translateTo):
(WebCore::GridSpan::clamp):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::isIndefiniteSpan):
(WebCore::adjustGridPositionsFromStyle):
(WebCore::GridPositionsResolver::explicitGridColumnCount):
(WebCore::GridPositionsResolver::explicitGridRowCount):
(WebCore::explicitGridSizeForSide):
(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionAgainstOppositePosition):
(WebCore::resolveGridPositionFromStyle):
(WebCore::GridPositionsResolver::resolveGridPositionsFromStyle):

  • rendering/style/GridPositionsResolver.h:
5:25 PM Changeset in webkit [289985] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Comment and close issue when landing PR (Follow-up fix)
​https://bugs.webkit.org/show_bug.cgi?id=236715
<rdar://problem/89031529>

Unreviewed follow-up fix.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version instead of decrement.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main): Grab log of commit, which may contain revision, if there is one.

5:18 PM Changeset in webkit [289984] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename 'patch' to 'change' in layout-test steps
​https://bugs.webkit.org/show_bug.cgi?id=236674
<rdar://problem/88992222>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(RunWebKitTestsWithoutChange.setLayoutTestCommand):
(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.retry_build):
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresRedTree.commandComplete):
(RunWebKitTestsRepeatFailuresWithoutChangeRedTree): Renamed.
(RunWebKitTestsRepeatFailuresWithoutChangeRedTree.setLayoutTestCommand):
(RunWebKitTestsRepeatFailuresWithoutChangeRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresWithoutChangeRedTree.commandComplete):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree): Renamed.
(AnalyzeLayoutTestsResultsRedTree.report_infrastructure_issue_and_maybe_retry_build):
(AnalyzeLayoutTestsResultsRedTree.start):

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247370@main

5:10 PM Changeset in webkit [289983] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Comment and close issue when landing PR
​https://bugs.webkit.org/show_bug.cgi?id=236715
<rdar://problem/89031529>

Reviewed by Ryan Haddad.

When we land pull requests, we should make a comment on the associated issue
indicating where the code change is and close that issue.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.main): Comment on and close issue associated with the final commit in
the landed series, shorten displayed hash to 12 characters.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:

(repository): Allow caller to specify issue URL in commit message, append git-svn
tag if in a git-svn repository.
(TestLand):
(TestLand.test_default):
(TestLand.test_canonicalize):
(TestLand.test_svn):
(TestLand.test_default_with_radar):
(TestLand.test_canonicalize_with_bugzilla):
(TestLand.test_svn_with_bugzilla):

Canonical link: ​https://commits.webkit.org/247369@main

4:40 PM Changeset in webkit [289982] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[GTK][WPE] Execute API test by name
​https://bugs.webkit.org/show_bug.cgi?id=236623

Reviewed by Carlos Garcia Campos.

When running either run-gtk-tests or run-wpe-tests, let them take a test name and build
the path to the test.

  • glib/api_test_runner.py:

(TestRunner._get_tests):

4:11 PM Changeset in webkit [289981] by Said Abou-Hallawa
  • 16 edits in trunk

[GPU Process] Enable drawing the SVGImage in the GPU Process
​https://bugs.webkit.org/show_bug.cgi?id=227748
rdar://80582699

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

This sub-test was originally failing and this is why the bug
​https://bugs.webkit.org/show_bug.cgi?id=231001 was filed.

After ​https://trac.webkit.org/changeset/279722/webkit, it got fixed because
SVGImage was rendered to a NativeImage and the NativeImage is rendered
to the destination GraphicsContext. GraphicsContext::drawNativeImage()
handles the image orientation properly.

Because this change will be reverted, the result of this test has to be
rebaselined with the failure message.

  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY-expected.txt:

Source/WebCore:

This patch reverts the revisions r279722, r284740 and r283531. So it will
enable drawing the SVGImage in GPU Process if GPU Process for "canvas" or
for "DOM rendering" is enabled

We fix the scratch ImageBuffer in SVGImage::nativeImage() to be accelerated
if acceleratedDrawingEnabled() is true. We also create a remote one if
GPUProcess for DOM rendering is enabled.

We also allow passing a ColorSpace to SVGImage::nativeImage() to control
the colorSpace of the resulted NativeImage. Because this function overrides
the base class method Image::nativeImage() we have to pass a ColorSpace
to BitmapImage also. A FIXME comment is added to BitmapImage::nativeImage()
to handle this argument in a future patch.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • platform/graphics/BifurcatedGraphicsContext.cpp:

(WebCore::BifurcatedGraphicsContext::drawImageForCanvas): Deleted.

  • platform/graphics/BifurcatedGraphicsContext.h:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::nativeImage):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImageForCanvas): Deleted.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawForCanvas): Deleted.

  • platform/graphics/Image.h:

(WebCore::Image::nativeImage):
(WebCore::Image::draw):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::drawForCanvasForContainer): Deleted.
(WebCore::SVGImage::drawForContainerInternal): Deleted.
(WebCore::SVGImage::drawForCanvas): Deleted.
(WebCore::SVGImage::drawInternal): Deleted.
(WebCore::SVGImage::drawAsNativeImage): Deleted.

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::drawForCanvas): Deleted.

  • svg/graphics/SVGImageForContainer.h:
4:10 PM Changeset in webkit [289980] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename 'patch' to 'change' in api-test steps
​https://bugs.webkit.org/show_bug.cgi?id=236676
<rdar://problem/88993105>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(ReRunAPITests.evaluateCommand): Renamed RunAPITestsWithoutPatch to RunAPITestsWithoutChange.
(RunAPITestsWithoutChange): Ditto.
(AnalyzeAPITestsResults.start): Ditto.
(AnalyzeAPITestsResults.analyzeResults): Ditto.
(RunAPITestsWithoutChange): Renamed from RunAPITestsWithoutPatch.
(RunAPITestsWithoutPatch): Renamed to RunAPITestsWithoutChange.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247366@main

4:03 PM Changeset in webkit [289979] by Ryan Haddad
  • 2 edits in trunk/Tools/CISupport/build-webkit-org

Set up a post-commit bot to test workspace builds
​https://bugs.webkit.org/show_bug.cgi?id=236726

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

Canonical link: ​https://commits.webkit.org/247365@main

3:49 PM Changeset in webkit [289978] by mmaxfield@apple.com
  • 151 edits
    7 copies
    3 deletes in trunk/Source

[WebGPU] Update IDLs and stubs to latest version of the spec
​https://bugs.webkit.org/show_bug.cgi?id=236639

Reviewed by Dean Jackson.

Source/WebCore:

This updates our WebGPU infrastructure to spec revision 626f8c05c8e67b54159e93ae7c3699a889f0b115. This
is just the plumbing that connects IDL -> WebCore C++ -> PAL virtual methods -> WebKit Web process ->
WebKit GPU process -> PAL virtual methods -> PAL WebGPU implementation -> WebGPU.framework. This also
updates the WebGPU.h shared header to revision 08ef57733503b8fb504e0681a8db650c88225947. This is just
plumbing - the actual implementation of this stuff is still just stubs in WebGPU.framework.

There have been a few various changes:

  • A viewFormats array has been added to GPUCanvasConfiguration and GPUTextureDescriptor
  • fillBuffer() has been renamed to clearBuffer()
  • Pipeline statistics queries have been deleted
  • A few refactorings to turn Vector<Foo> things into Vector<std::optional<Foo>>
  • flipY has been added to GPUImageCopyExternalImage
  • Load operations have been redesigned on both GPURenderPassColorAttachment and

GPURenderPassDepthStencilAttachment

  • endPass() has been renamed to end()
  • Shader compilation now takes a record<entry point name, GPUShaderModuleCompilationHint>

No new tests because the implementation is still just stubs.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/WebGPU/GPUBuffer.cpp:

(WebCore::GPUBuffer::mapAsync):
(WebCore::GPUBuffer::getMappedRange):

  • Modules/WebGPU/GPUBuffer.h:
  • Modules/WebGPU/GPUCanvasConfiguration.h:

(WebCore::GPUCanvasConfiguration::convertToBacking const):

  • Modules/WebGPU/GPUCanvasConfiguration.idl:
  • Modules/WebGPU/GPUCommandEncoder.cpp:

(WebCore::GPUCommandEncoder::clearBuffer):
(WebCore::GPUCommandEncoder::fillBuffer): Deleted.

  • Modules/WebGPU/GPUCommandEncoder.h:
  • Modules/WebGPU/GPUCommandEncoder.idl:
  • Modules/WebGPU/GPUCommandsMixin.idl: Copied from Source/WebCore/Modules/WebGPU/GPULoadOp.idl.
  • Modules/WebGPU/GPUComputePassEncoder.cpp:

(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::end):
(WebCore::GPUComputePassEncoder::beginPipelineStatisticsQuery): Deleted.
(WebCore::GPUComputePassEncoder::endPipelineStatisticsQuery): Deleted.
(WebCore::GPUComputePassEncoder::endPass): Deleted.

  • Modules/WebGPU/GPUComputePassEncoder.h:
  • Modules/WebGPU/GPUComputePassEncoder.idl:
  • Modules/WebGPU/GPUDebugCommandsMixin.idl: Copied from Source/WebCore/Modules/WebGPU/GPUFragmentState.idl.
  • Modules/WebGPU/GPUFeatureName.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUFeatureName.idl:
  • Modules/WebGPU/GPUFragmentState.h:

(WebCore::GPUFragmentState::convertToBacking const):

  • Modules/WebGPU/GPUFragmentState.idl:
  • Modules/WebGPU/GPUImageCopyExternalImage.h:

(WebCore::GPUImageCopyExternalImage::convertToBacking const):

  • Modules/WebGPU/GPUImageCopyExternalImage.idl:
  • Modules/WebGPU/GPULoadOp.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPULoadOp.idl:
  • Modules/WebGPU/GPUObjectBase.idl:
  • Modules/WebGPU/GPUPipelineStatisticName.h: Removed.
  • Modules/WebGPU/GPUPipelineStatisticName.idl: Removed.
  • Modules/WebGPU/GPUProgrammablePassEncoder.idl:
  • Modules/WebGPU/GPUQuerySetDescriptor.h:

(WebCore::GPUQuerySetDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUQuerySetDescriptor.idl:
  • Modules/WebGPU/GPUQueryType.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUQueryType.idl:
  • Modules/WebGPU/GPUQueue.cpp:

(WebCore::GPUQueue::writeBuffer):

  • Modules/WebGPU/GPUQueue.h:
  • Modules/WebGPU/GPURenderBundleEncoder.idl:
  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:

(WebCore::GPURenderBundleEncoderDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassColorAttachment.h:

(WebCore::GPURenderPassColorAttachment::convertToBacking const):

  • Modules/WebGPU/GPURenderPassColorAttachment.idl:
  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.h:

(WebCore::GPURenderPassDepthStencilAttachment::convertToBacking const):

  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.idl:
  • Modules/WebGPU/GPURenderPassDescriptor.h:

(WebCore::GPURenderPassDescriptor::convertToBacking const):

  • Modules/WebGPU/GPURenderPassDescriptor.idl:
  • Modules/WebGPU/GPURenderPassEncoder.cpp:

(WebCore::GPURenderPassEncoder::end):
(WebCore::GPURenderPassEncoder::beginPipelineStatisticsQuery): Deleted.
(WebCore::GPURenderPassEncoder::endPipelineStatisticsQuery): Deleted.
(WebCore::GPURenderPassEncoder::endPass): Deleted.

  • Modules/WebGPU/GPURenderPassEncoder.h:
  • Modules/WebGPU/GPURenderPassEncoder.idl:
  • Modules/WebGPU/GPURenderPassLayout.h:

(WebCore::GPURenderPassLayout::convertToBacking const):

  • Modules/WebGPU/GPURenderPassLayout.idl:
  • Modules/WebGPU/GPUShaderModuleCompilationHint.h: Copied from Source/WebCore/Modules/WebGPU/GPULoadOp.h.

(WebCore::GPUShaderModuleCompilationHint::convertToBacking const):

  • Modules/WebGPU/GPUShaderModuleCompilationHint.idl: Copied from Source/WebCore/Modules/WebGPU/GPUQueryType.idl.
  • Modules/WebGPU/GPUShaderModuleDescriptor.h:

(WebCore::GPUShaderModuleDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUShaderModuleDescriptor.idl:
  • Modules/WebGPU/GPUTextureDescriptor.h:

(WebCore::GPUTextureDescriptor::convertToBacking const):

  • Modules/WebGPU/GPUTextureDescriptor.idl:
  • Modules/WebGPU/GPUTextureFormat.h:

(WebCore::convertToBacking):

  • Modules/WebGPU/GPUTextureFormat.idl:
  • Modules/WebGPU/GPUUncapturedErrorEvent.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::supportedFeatures):
(PAL::WebGPU::AdapterImpl::requestDevice):

  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:

(PAL::WebGPU::BufferImpl::mapAsync):
(PAL::WebGPU::BufferImpl::getMappedRange):

  • pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp:

(PAL::WebGPU::CommandEncoderImpl::beginRenderPass):
(PAL::WebGPU::CommandEncoderImpl::beginComputePass):
(PAL::WebGPU::CommandEncoderImpl::clearBuffer):
(PAL::WebGPU::CommandEncoderImpl::fillBuffer): Deleted.

  • pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp:

(PAL::WebGPU::ComputePassEncoderImpl::dispatch):
(PAL::WebGPU::ComputePassEncoderImpl::end):
(PAL::WebGPU::ComputePassEncoderImpl::beginPipelineStatisticsQuery): Deleted.
(PAL::WebGPU::ComputePassEncoderImpl::endPipelineStatisticsQuery): Deleted.
(PAL::WebGPU::ComputePassEncoderImpl::endPass): Deleted.

  • pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp:

(PAL::WebGPU::ConvertToBackingContext::convertToBacking):

  • pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::createTexture):
(PAL::WebGPU::DeviceImpl::createShaderModule):
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):

  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:

(PAL::WebGPU::GPUImpl::requestAdapter):

  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:

(PAL::WebGPU::RenderPassEncoderImpl::end):
(PAL::WebGPU::RenderPassEncoderImpl::beginPipelineStatisticsQuery): Deleted.
(PAL::WebGPU::RenderPassEncoderImpl::endPipelineStatisticsQuery): Deleted.
(PAL::WebGPU::RenderPassEncoderImpl::endPass): Deleted.

  • pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
  • pal/graphics/WebGPU/WebGPUBuffer.h:
  • pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
  • pal/graphics/WebGPU/WebGPUCommandEncoder.h:
  • pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
  • pal/graphics/WebGPU/WebGPUFeatureName.h:
  • pal/graphics/WebGPU/WebGPUFragmentState.h:
  • pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
  • pal/graphics/WebGPU/WebGPULoadOp.h:
  • pal/graphics/WebGPU/WebGPUPipelineStatisticName.h: Removed.
  • pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
  • pal/graphics/WebGPU/WebGPUQueryType.h:
  • pal/graphics/WebGPU/WebGPUQueue.h:
  • pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
  • pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
  • pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
  • pal/graphics/WebGPU/WebGPURenderPassLayout.h:
  • pal/graphics/WebGPU/WebGPUShaderModuleCompilationHint.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h.
  • pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h:
  • pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
  • pal/graphics/WebGPU/WebGPUTextureFormat.h:

Source/WebGPU:

  • WebGPU/Adapter.h:
  • WebGPU/Adapter.mm:

(WebGPU::Adapter::enumerateFeatures):
(wgpuAdapterEnumerateFeatures):
(WebGPU::Adapter::getFeatureAtIndex): Deleted.
(wgpuAdapterGetFeatureAtIndex): Deleted.

  • WebGPU/CommandEncoder.h:
  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::clearBuffer):
(wgpuCommandEncoderClearBuffer):
(WebGPU::CommandEncoder::fillBuffer): Deleted.
(wgpuCommandEncoderFillBuffer): Deleted.

  • WebGPU/ComputePassEncoder.h:
  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::writeTimestamp): Deleted.
(wgpuComputePassEncoderWriteTimestamp): Deleted.

  • WebGPU/Device.h:
  • WebGPU/Device.mm:

(WebGPU::Device::enumerateFeatures):
(WebGPU::Device::hasFeature):
(wgpuDeviceEnumerateFeatures):
(wgpuDeviceHasFeature):

  • WebGPU/Instance.mm:

(wgpuGetProcAddress):

  • WebGPU/RenderPassEncoder.h:
  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::writeTimestamp): Deleted.
(wgpuRenderPassEncoderWriteTimestamp): Deleted.

  • WebGPU/ShaderModule.h:
  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::getCompilationInfo):
(wgpuShaderModuleGetCompilationInfo):

  • WebGPU/WebGPU.h:
  • WebGPU/WebGPUExt.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:

(WebKit::RemoteBuffer::mapAsync):

  • GPUProcess/graphics/WebGPU/RemoteBuffer.h:
  • GPUProcess/graphics/WebGPU/RemoteBuffer.messages.in:
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp:

(WebKit::RemoteCommandEncoder::clearBuffer):
(WebKit::RemoteCommandEncoder::fillBuffer): Deleted.

  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteCommandEncoder.messages.in:
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp:

(WebKit::RemoteComputePassEncoder::dispatch):
(WebKit::RemoteComputePassEncoder::end):
(WebKit::RemoteComputePassEncoder::beginPipelineStatisticsQuery): Deleted.
(WebKit::RemoteComputePassEncoder::endPipelineStatisticsQuery): Deleted.
(WebKit::RemoteComputePassEncoder::endPass): Deleted.

  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.messages.in:
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp:

(WebKit::RemoteRenderPassEncoder::end):
(WebKit::RemoteRenderPassEncoder::beginPipelineStatisticsQuery): Deleted.
(WebKit::RemoteRenderPassEncoder::endPipelineStatisticsQuery): Deleted.
(WebKit::RemoteRenderPassEncoder::endPass): Deleted.

  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
  • GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.messages.in:
  • Shared/WebGPU/WebGPUCanvasConfiguration.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUCanvasConfiguration.h:

(WebKit::WebGPU::CanvasConfiguration::encode const):
(WebKit::WebGPU::CanvasConfiguration::decode):

  • Shared/WebGPU/WebGPUConvertFromBackingContext.h:
  • Shared/WebGPU/WebGPUConvertToBackingContext.h:
  • Shared/WebGPU/WebGPUFragmentState.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUFragmentState.h:

(WebKit::WebGPU::FragmentState::decode):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUImageCopyExternalImage.h:

(WebKit::WebGPU::ImageCopyExternalImage::encode const):
(WebKit::WebGPU::ImageCopyExternalImage::decode):

  • Shared/WebGPU/WebGPUImageCopyTexture.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUQuerySetDescriptor.h:

(WebKit::WebGPU::QuerySetDescriptor::encode const):
(WebKit::WebGPU::QuerySetDescriptor::decode):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassColorAttachment.h:

(WebKit::WebGPU::RenderPassColorAttachment::encode const):
(WebKit::WebGPU::RenderPassColorAttachment::decode):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:

(WebKit::WebGPU::RenderPassDepthStencilAttachment::encode const):
(WebKit::WebGPU::RenderPassDepthStencilAttachment::decode):

  • Shared/WebGPU/WebGPURenderPassDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPURenderPassDescriptor.h:

(WebKit::WebGPU::RenderPassDescriptor::decode):

  • Shared/WebGPU/WebGPURenderPassLayout.h:

(WebKit::WebGPU::RenderPassLayout::decode):

  • Shared/WebGPU/WebGPUShaderModuleCompilationHint.cpp: Copied from Source/WebKit/Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp.

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUShaderModuleCompilationHint.h: Copied from Source/WebKit/Shared/WebGPU/WebGPUImageCopyExternalImage.h.

(WebKit::WebGPU::ShaderModuleCompilationHint::encode const):
(WebKit::WebGPU::ShaderModuleCompilationHint::decode):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUShaderModuleDescriptor.h:

(WebKit::WebGPU::ShaderModuleDescriptor::encode const):
(WebKit::WebGPU::ShaderModuleDescriptor::decode):

  • Shared/WebGPU/WebGPUTextureDescriptor.cpp:

(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):

  • Shared/WebGPU/WebGPUTextureDescriptor.h:

(WebKit::WebGPU::TextureDescriptor::encode const):
(WebKit::WebGPU::TextureDescriptor::decode):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp:

(WebKit::WebGPU::RemoteBufferProxy::mapAsync):
(WebKit::WebGPU::RemoteBufferProxy::getMappedRange):

  • WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.cpp:

(WebKit::WebGPU::RemoteCommandEncoderProxy::clearBuffer):
(WebKit::WebGPU::RemoteCommandEncoderProxy::fillBuffer): Deleted.

  • WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.cpp:

(WebKit::WebGPU::RemoteComputePassEncoderProxy::dispatch):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::end):
(WebKit::WebGPU::RemoteComputePassEncoderProxy::beginPipelineStatisticsQuery): Deleted.
(WebKit::WebGPU::RemoteComputePassEncoderProxy::endPipelineStatisticsQuery): Deleted.
(WebKit::WebGPU::RemoteComputePassEncoderProxy::endPass): Deleted.

  • WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.cpp:

(WebKit::WebGPU::RemoteRenderPassEncoderProxy::end):
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::beginPipelineStatisticsQuery): Deleted.
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endPipelineStatisticsQuery): Deleted.
(WebKit::WebGPU::RemoteRenderPassEncoderProxy::endPass): Deleted.

  • WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
3:48 PM Changeset in webkit [289977] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed gardening for GPU Process.

  • gpu-process/TestExpectations:
  • platform/mac/TestExpectations: fly-by update.
3:45 PM Changeset in webkit [289976] by Said Abou-Hallawa
  • 29 edits in trunk/Source

[GPU Process] Route the call to ImageBuffer::drawPattern() through GraphicsContext
​https://bugs.webkit.org/show_bug.cgi?id=236638

Reviewed by Simon Fraser.

Source/WebCore:

This will allow recording ImageBuffer::drawPattern() via the super classes
DisplayList::RecorderImpl and RemoteDisplayListRecorderProxy. So another
version of GraphicsContext::drawPattern() will be added which takes
ImageBuffer as an argument.

To make the display list item DrawPattern be suitable for recording both
versions of drawPattern(), we need to remove the argument 'imageSize'
from GraphicsContext::drawPattern() since this function is only called from
Image::drawPattern() and it passes imageSize = Image::size(). So imageSize
can be calculated from the NativeImage::size().

The DisplayList::Replayer and RemoteDisplayListRecorder have to consider
the RenderingResourceIdentifier of the DrawPattern can be the identifier
of a NativeImage or an ImageBuffer. DrawPattern::apply() needs to take a
SourceImage and it can make the decision whether to call the NativeImage
version or the ImageBuffer version of GraphicsContext::drawPattern().

  • html/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::drawPattern):

  • platform/graphics/BifurcatedGraphicsContext.cpp:

(WebCore::BifurcatedGraphicsContext::drawPattern):

  • platform/graphics/BifurcatedGraphicsContext.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/Image.cpp:

(WebCore::Image::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NullGraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::drawPattern):

  • platform/graphics/cairo/GraphicsContextCairo.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContextCG::drawPattern):

  • platform/graphics/cg/GraphicsContextCG.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::imageIdentifier const):
(WebCore::DisplayList::DrawPattern::imageSize const): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::recordDrawPattern):

  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::recordDrawPattern):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

(WebCore::DisplayList::RecorderImpl::recordDrawPattern):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applySourceImageItem):
(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawPattern):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawPattern):
(WebKit::RemoteDisplayListRecorder::drawPatternWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordDrawPattern):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

(WebKit::RemoteDisplayListRecorderProxy::recordDrawPattern):

3:35 PM Changeset in webkit [289975] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable JSC queues
​https://bugs.webkit.org/show_bug.cgi?id=236523
<rdar://problem/88831360>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json:

Canonical link: ​https://commits.webkit.org/247361@main

3:31 PM Changeset in webkit [289974] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r286874.
​https://bugs.webkit.org/show_bug.cgi?id=236734

Broke Apple Music pages which use the resolution media query

Reverted changeset:

"Enable the 'resolution' media query by default"
​https://bugs.webkit.org/show_bug.cgi?id=78087
​https://commits.webkit.org/r286874

3:24 PM Changeset in webkit [289973] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Disable Bugzilla related steps for PR workflow
​https://bugs.webkit.org/show_bug.cgi?id=236735
<rdar://problem/89049663>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(SetCommitQueueMinusFlagOnPatch.doStepIf): Do step if patch_id is defined.

Canonical link: ​https://commits.webkit.org/247358@main

3:23 PM Changeset in webkit [289972] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[iOS][macOS] Block access to Icon Services
​https://bugs.webkit.org/show_bug.cgi?id=235616

Reviewed by Darin Adler.

Stop creating a sandbox extension for the Icon service when the attachment element is enabled,
since local testing indicates that this is not needed.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::attachmentElementServices): Deleted.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::hasIssuedAttachmentElementRelatedSandboxExtensions const): Deleted.
(WebKit::WebProcessProxy::setHasIssuedAttachmentElementRelatedSandboxExtensions): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

3:12 PM Changeset in webkit [289971] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after r289742
​https://bugs.webkit.org/show_bug.cgi?id=236687

  • css/ContainerQueryParser.h:
3:10 PM Changeset in webkit [289970] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.4

Tag Safari-613.1.17.1.4.

3:10 PM Changeset in webkit [289969] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.0.4

Tag Safari-613.1.17.0.4.

3:07 PM Changeset in webkit [289968] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Add an additions point for shouldRecognizeSimultaneouslyWithGestureRecognizer
​https://bugs.webkit.org/show_bug.cgi?id=236724

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _shouldAdditionallyRecognizeGestureRecognizer:simultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):

2:56 PM Changeset in webkit [289967] by don.olmstead@sony.com
  • 2 edits
    1 add in trunk

[CMake][PlayStation] Add find module for WPE Backend for PlayStation
​https://bugs.webkit.org/show_bug.cgi?id=236721

Reviewed by Michael Catanzaro.

Add the find module to detect the presence of the WPE Backend for PlayStation platforms.
Currently its not required to have the WPE Backend so its presence is conditional. When
there USE(WPE_BACKEND_PLAYSTATION) will be true.

  • Source/cmake/FindWPEBackendPlayStation.cmake: Added.
  • Source/cmake/OptionsPlayStation.cmake:
2:50 PM Changeset in webkit [289966] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename 'patch' to 'change' in JSC steps
​https://bugs.webkit.org/show_bug.cgi?id=236679
<rdar://problem/88993957>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AnalyzeJSCTestsResults.start): Rename 'patch' in variables and log messages to 'change'.
(AnalyzeJSCTestsResults.report_failure): Ditto.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247354@main

2:43 PM Changeset in webkit [289965] by jonlee@apple.com
  • 13 edits in trunk/LayoutTests

iOS test gardening after turning on accelerated drawing
​https://bugs.webkit.org/show_bug.cgi?id=236680
rdar://problem/88996489

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Add fuzzy data.

  • web-platform-tests/css/css-color/t422-rgba-onscreen-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-onscreen-multiple-boxes-c.xht:
  • web-platform-tests/css/css-color/t425-hsla-onscreen-b.xht:
  • web-platform-tests/css/css-color/t425-hsla-onscreen-multiple-boxes-c.xht:

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations: Some tests now uniquely fail on GTK; moved here.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations: Many tests are passing only on iOS, some fail only on the iPad simulator.
  • platform/mac/TestExpectations:
2:12 PM Changeset in webkit [289964] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.2.1

Tag Safari-613.1.17.2.1.

2:11 PM Changeset in webkit [289963] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.3.1

Tag Safari-613.1.17.3.1.

2:10 PM Changeset in webkit [289962] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r289875. rdar://problem/88358696

Web Inspector: [Cocoa] Reentrancy in WebKit::WebInspectorUIProxy::open
​https://bugs.webkit.org/show_bug.cgi?id=236672

Reviewed by Devin Rousso.

Speculative fix for non-reproducible reentrancy. Because WebInspectorUIProxy::open calls
WebInspectorUIProxy::platformBringToFront, which under some conditions can call WebInspectorUIProxy::open,
there was an opportunity for recurssion. This appears to happen when the window of the inspector view does not
match the window of the inspected web view, which in general should not be possible for a newly opened
inspector. My suspicion is that the web view is not actually attached to a window at the time the inspector is
being opened. This patch adds a fail-safe that will detach the inspector view into its own window when these
conditions are met while we are in middle of opening the inspector, and also adds logging to indicate if the
inspected web view was actually in a window. This should both prevent the crash from the re-entry as well as
provide more context when the issue does occur.

  • UIProcess/Inspector/WebInspectorUIProxy.cpp: (WebKit::WebInspectorUIProxy::open):
  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm: (WebKit::WebInspectorUIProxy::platformBringToFront):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289875 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:59 PM Changeset in webkit [289961] by Russell Epstein
  • 3 edits in branches/safari-613.1.17.3-branch/Source/WebCore

Cherry-pick r289567. rdar://problem/88323864

Crash in in WebCore::CSSStyleSheet::didMutateRules
​https://bugs.webkit.org/show_bug.cgi?id=236450

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Replace the raw pointer rule in RuleMutationScope with a RefPtr so it can be accessible
for the scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):
  • css/CSSStyleSheet.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289567 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:59 PM Changeset in webkit [289960] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.3-branch/Source/WTF

Apply patch. rdar://problem/87486284

1:59 PM Changeset in webkit [289959] by Russell Epstein
  • 3 edits in branches/safari-613.1.17.2-branch/Source/WebCore

Cherry-pick r289567. rdar://problem/88323864

Crash in in WebCore::CSSStyleSheet::didMutateRules
​https://bugs.webkit.org/show_bug.cgi?id=236450

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Replace the raw pointer rule in RuleMutationScope with a RefPtr so it can be accessible
for the scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):
  • css/CSSStyleSheet.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289567 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:59 PM Changeset in webkit [289958] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.2-branch/Source/WTF

Apply patch. rdar://problem/87486284

1:55 PM Changeset in webkit [289957] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.3-branch/Source

Versioning.

WebKit-7613.1.17.3.1

1:54 PM Changeset in webkit [289956] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.2-branch/Source

Versioning.

WebKit-7613.1.17.2.1

1:51 PM Changeset in webkit [289955] by Russell Epstein
  • 2 edits
    2 deletes in branches/safari-613.1.17.0-branch

Revert r289924. rdar://problem/82142820

1:50 PM Changeset in webkit [289954] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] http/tests/media/video-play-waiting.html is a constant time out.
​https://bugs.webkit.org/show_bug.cgi?id=236722

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-16

  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [289953] by Russell Epstein
  • 2 edits
    2 deletes in branches/safari-613.1.17.1-branch

Revert r289920. rdar://problem/82142820

1:49 PM Changeset in webkit [289952] by Russell Epstein
  • 3 edits
    2 deletes in branches/safari-613.1.17.1-branch

Revert r289919. rdar://problem/81337114

1:43 PM Changeset in webkit [289951] by Russell Epstein
  • 3 edits
    2 deletes in branches/safari-613.1.17.0-branch

Revert r289923. rdar://problem/81337114

1:36 PM Changeset in webkit [289950] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r289776 - Fix crash with deeply nested async overflow scroll
​https://bugs.webkit.org/show_bug.cgi?id=236599
Source/WebCore:

rdar://88656665

Reviewed by Alan Bujtas.

mergeClippingScopesRecursive() already does the append of the rects; doing so
before calling recursing triggers double appends, hence exponentially growing
rect lists.

Test: compositing/layer-creation/clipping-scope/deeply-nested-overflow.html

  • rendering/LayerOverlapMap.cpp:

(WebCore::OverlapMapContainer::mergeClippingScopesRecursive):

LayoutTests:

Reviewed by Alan Bujtas.

  • compositing/layer-creation/clipping-scope/deeply-nested-overflow-expected.txt: Added.
  • compositing/layer-creation/clipping-scope/deeply-nested-overflow.html: Added.
1:33 PM Changeset in webkit [289949] by Adrian Perez de Castro
  • 12 edits in trunk

[CMake] Cannot find OpenGL when system provides opengl.pc instead of gl.pc
​https://bugs.webkit.org/show_bug.cgi?id=236592

Reviewed by Don Olmstead.

.:

  • Source/cmake/FindOpenGL.cmake: Rewrite to use imported targets, try the "opengl" and "glx"

pkg-config modules first, otherwise keep the existing logic that tried the "gl" pkg-config
module with fallbacks to find_path/find_library.

  • Source/cmake/OptionsGTK.cmake: Check for the presence of the OpenGL::GLX target instead of

te GLX_FOUND variable.

Source/ThirdParty/ANGLE:

  • PlatformGTK.cmake: Use the OpenGL::OpenGL imported target instead of the

OPENGL_LIBRARIES variable.

  • PlatformWPE.cmake: Ditto, plus replace a spurious use of OPENGLES_LIBRARIES

with the OpenGL::GLES target.

Source/WebCore:

  • CMakeLists.txt: Use the OpenGL::OpenGL and OpenGL::GLX imported targets instead of variables.
  • platform/graphics/GLContext.cpp: Move here includes for the GL headers.
  • platform/graphics/GLContext.h: Remove includes for the GL headers, none of their

declarations are used here; instead include only the needed EGL headers to get the
definition of EGLNativeWindowType.

Source/WebKit:

  • CMakeLists.txt: Remove usage of the OPENGL_ variables for the WebKit target, which is

uneeded because it links to WebCore, which transitively pulls the needed libraries now
that imported targets are being used.

1:05 PM Changeset in webkit [289948] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Add tests for GitHub class
​https://bugs.webkit.org/show_bug.cgi?id=236649
<rdar://problem/88966033>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps_unittest.py:

(TestGitHub):
(TestGitHub.test_pr_url):
(TestGitHub.test_pr_url_with_repository):
(TestGitHub.test_pr_url_with_invalid_repository):
(TestGitHub.test_commit_url):
(TestGitHub.test_commit_url_with_repository):
(TestGitHub.test_commit_url_with_invalid_repository):

Canonical link: ​https://commits.webkit.org/247350@main

12:52 PM Changeset in webkit [289947] by clopez@igalia.com
  • 3 edits in trunk/Tools

[EWS][GTK] Send only one e-mail with all the list of flakies
​https://bugs.webkit.org/show_bug.cgi?id=236705

Reviewed by Adrian Perez de Castro.

Sending one e-mail per test was too much e-mails and we were
spaming the bot watchers. Change it to only send one e-mail
per run with all the list of flakies on the body of the e-mail.

Fix also some issues detected on the code for sending the e-mails
(like a few undefined variables and function calls with wrong
paramters) that happened when running the unit test.

Add also unit tests to be able to check the contents of the
e-mails generated and also fix a logic error deteted when
working on the unit tests related to reporting
the pre_existent_non_flaky_failures for the GTK EWS.

  • CISupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_new_build_failure):
(AnalyzeLayoutTestsResultsRedTree.send_email_for_pre_existent_failures):
(AnalyzeLayoutTestsResultsRedTree.send_email_for_flaky_failures_and_steps):
(AnalyzeLayoutTestsResultsRedTree.start):

  • CISupport/ews-build/steps_unittest.py:

(BuildStepMixinAdditions.setUpBuildStep):
(BuildStepMixinAdditions._send_email):

12:49 PM Changeset in webkit [289946] by jer.noble@apple.com
  • 40 edits in trunk

[Cocoa] Adopt -streamDataParser:didProvideContentKeySpecifier:forTrackID: delegate callback
​https://bugs.webkit.org/show_bug.cgi?id=236109

Reviewed by Eric Carlson.

Source/WebCore:

The current set of delegate callback methods have a significant shortcoming: clients must
attach an AVContentKeySession to the AVStreamDataParser before returning from the
-streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID: callback. This
is because the parser itself attaches the object required to decrypt each encrypted sample
to the sample itself at the parsing stage. If a client does not attach an
AVContentKeySession by the time that method returns, AVStreamDataParser will attach one of
its own.

The web-facing behavior this causes is that MSE appends will not complete (by firing
an "updateend" event) if an encrypted segment is parsed until the client creates and
attaches a MediaKeys object with a valid session.

A new delegate callback method, -streamDataParser:didProvideContentKeySpecifier:forTrackID:
allows us to work around this problem. When this delegate is present, AVStreamDataParser
will skip attaching a decryption object entirely, moving that responsibility to the
client. However, this comes with the requirement that the client (WebKit) won't enqueue
an encrypted sample before a decryption object is available via AVContentKeySession.

In order to meet this new requirement, WebKit will associate the key IDs necessary to
decrypt each sample in the MediaSample object that wraps the encrypted sample. Because not
every type of MediaSample will carry key IDs, this property was added to the
MediaSampleAVFObjC subclass, and therefore we need to be able to safely downcast from
MediaSample to MediaSampleAVFObjC. MediaSample subclasses can be distinguished by the
PlatformMediaSample type available through their platformSample() property, however this
call is not const, and may not be free, as it returns a non-POD type. So
PlatformMedia::Type was made an explicit enum type, and a new virtual method
platformSampleType() was added to MediaSample (and implemented by all subclasses), and a
type specialization macro was added to MediaSampleAVFObjC.

In order to check whether a given sample is capable of being enqueued, the CDMInstance
must be queried to determine if the sample's required keys are usable. For
CDMInstanceFairPlayStreamingAVFObjC, it has an existing keyStatus(), method, but that
method is also non-const, and may be expensive. So a KeyStatusMap instance variable
has been added to cache the key status for ease of querying. To notify an arbitrary number
of clients when the key statuses change, an Observer has been added.

When an encrypted sample is enqueued, if this new delegate method is available, the
source buffer will check if a CDM instance is available, and if so, whether the sample's
keys are usable. If any of these checks fail, the sample will be stored in a local queue
and new enqueues will be blocked. When the CDM's keyStatus observer is triggered, the
local queue will be processed, and all samples with usable key IDs will be enqueued.

Drive-by fix: Use SharedBuffer rather than Uint8Array, as the former is lighter weight
and can be more easily converted to and from a NSData.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):

  • html/HTMLMediaElement.h:
  • platform/MediaSample.h:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::AudioFileReader::demuxWebMData const):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::keyNeeded):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::isAnyKeyUsable const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::addKeyStatusesChangedObserver):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionKeyStatusesChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateKeyStatuses):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::copyKeyStatuses const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateProtectionStatusForDisplayID):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::generateKeyRequest):
(WebCore::CDMSessionAVContentKeySession::update):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::keyNeeded):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:

(WebCore::MediaSampleAVFObjC::setKeyIDs):
(WebCore::MediaSampleAVFObjC::keyIDs const):
(WebCore::MediaSampleAVFObjC::keyIDs):
(WTF::LogArgument<WebCore::MediaSampleAVFObjC>::toString):
(isType):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:

(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeySpecifier:forTrackID:]):
(WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestSpecifierForTrackID):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::sampleBufferRenderersSupportKeySession):
(WebCore::copyKeyIDs):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackId):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::setCDMInstance):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):
(WebCore::SourceBufferPrivateAVFObjC::trackIsBlocked const):
(WebCore::SourceBufferPrivateAVFObjC::keyStatusesChanged):
(WebCore::SourceBufferPrivateAVFObjC::canEnqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer):

  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::OnTrackEntry):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:
  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

Source/WebKit:

Add the newly requried virtual method changes to MediaSample subclasses, and use
SharedBuffer rather than Uint8Array.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::parseByteSource):
(WebKit::MediaFormatReader::didProvideMediaData):

  • Shared/mac/MediaFormatReader/MediaFormatReader.h:
  • Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::mediaPlayerKeyNeeded):

Source/WTF:

  • wtf/PlatformHave.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp:
12:26 PM Changeset in webkit [289945] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[PlayStation] Build fix after r289872
​https://bugs.webkit.org/show_bug.cgi?id=236716

Unreviewed build fix

Add Webcore/Frame.h to include set

  • WebProcess/Geolocation/WebGeolocationManager.cpp:
12:23 PM Changeset in webkit [289944] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Cherry-pick r289926. rdar://problem/88787266

[macOS] Add access to mach service in the Networking process for all users
​https://bugs.webkit.org/show_bug.cgi?id=236653
<rdar://88787266>

Reviewed by Chris Dumez.

Add access to CF preferences services if direct mode is not enabled.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:23 PM Changeset in webkit [289943] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Cherry-pick r289858. rdar://problem/88787266

[macOS] Add access to mach service in the Networking process for all users
​https://bugs.webkit.org/show_bug.cgi?id=236653
<rdar://88787266>

Reviewed by Brent Fulgham.

We currently allow access to "com.apple.trustd" for the root user. Access to this service is needed for all users.
This issue was introduced in ​https://trac.webkit.org/changeset/283012/webkit, and this patch also reverts this
change for older versions of macOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289858 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:22 PM Changeset in webkit [289942] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Update audio session category before setting NowPlaying status
​https://bugs.webkit.org/show_bug.cgi?id=236620
rdar://88827167

Reviewed by Jer Noble.

NowPlaying doesn't update correctly when the audio category changes from Ambient
to Playback after becoming active, so always set the category first.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::clientWillBeginPlayback): Set "preparingToPlay"
before calling sessionWillBeginPlayback so updateSessionState can tell that
playback is about to begin.

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState): Consider a session to
potentially have audio if it is preparing to play.

12:16 PM Changeset in webkit [289941] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WTF

Apply patch. rdar://problem/87486284

12:16 PM Changeset in webkit [289940] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in

Cherry-pick r289926. rdar://problem/88787266

[macOS] Add access to mach service in the Networking process for all users
​https://bugs.webkit.org/show_bug.cgi?id=236653
<rdar://88787266>

Reviewed by Chris Dumez.

Add access to CF preferences services if direct mode is not enabled.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [289939] by Russell Epstein
  • 9 edits
    2 adds in branches/safari-613-branch

Cherry-pick r289892. rdar://problem/88696673

REGRESSION(r287293): EventListener::wasCreatedFromMarkup() is incorrect after replaceJSFunctionForAttributeListener()
​https://bugs.webkit.org/show_bug.cgi?id=236618
<rdar://88696673>

Reviewed by Chris Dumez.

Source/WebCore:

After r287293, if an inline event handler was replaced with a JSFunction, its execution was
still disallowed by the CSP policy.

This change fixes detection of inline event handlers (ones that were created from markup)
by introducing JSEventListener::m_wasCreatedFromMarkup and unsetting it during replacement
of an attribute event listener.

Since no virtual calls are added to the hot path, the Speedometer2/Inferno-TodoMVC performance
gain is kept. Also, a virtual call is removed from JSEventListener::handleEvent(), which is nice.
sizeof(JSEventListener) is unchanged.

Test: http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html

  • bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::JSErrorHandler):
  • bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::create): (WebCore::JSEventListener::replaceJSFunctionForAttributeListener):
  • bindings/js/JSEventListener.h: (WebCore::JSEventListener::wasCreatedFromMarkup const): (WebCore::JSEventListener::wasCreatedFromMarkup):
  • bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::JSLazyEventListener):
  • bindings/js/JSLazyEventListener.h:
  • dom/EventListener.h: (WebCore::EventListener::wasCreatedFromMarkup const): Deleted.
  • dom/EventListenerMap.cpp: (WebCore::removeFirstListenerCreatedFromMarkup): (WebCore::copyListenersNotCreatedFromMarkupToTarget):
  • dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener):
  • svg/SVGElement.cpp: (WebCore::SVGElement::removeEventListener):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289892 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [289938] by Russell Epstein
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick r289883. rdar://problem/82142820

Floating point exception in RenderListBox::numVisibleItems
​https://bugs.webkit.org/show_bug.cgi?id=229307

Reviewed by Mark Lam.

Source/WebCore:

FontMetrics::height can return a negative value when setAscent() is called with
with a value that is too large to be represented as an int. Prevent this by
making setAscent() ensure that m_intAscent is set to a non-negative value.

Test: fast/forms/listbox-zero-item-height.html

  • platform/graphics/FontMetrics.h: (WebCore::FontMetrics::setAscent):

LayoutTests:

  • fast/forms/listbox-zero-item-height-expected.txt: Added.
  • fast/forms/listbox-zero-item-height.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289883 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [289937] by Russell Epstein
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick r289877. rdar://problem/81337114

Defer TerminationsExceptions while in operationMaterializeObjectInOSR.
​https://bugs.webkit.org/show_bug.cgi?id=236686
rdar://81337114

Reviewed by Saam Barati.

JSTests:

These tests are identical except that they are customized with different watchdog
timeout periods for a Debug / Release build. This is a necessary condition in
order for the test to manifest this issue if the code is regressed.

  • stress/termination-exception-in-operationMaterializeObjectInOSR-debug.js: Added.
  • stress/termination-exception-in-operationMaterializeObjectInOSR-release.js: Added.

Source/JavaScriptCore:

operationMaterializeObjectInOSR expects to always succeed. It is difficult (and
not worth the effort) to make it be able to handle interruptions by the
TerminationException. Since operationMaterializeObjectInOSR is guaranteed to
finish running in some finite time, it is reasonable to just defer handling a
pending TerminationException until the function returns.

  • ftl/FTLOperations.cpp: (JSC::FTL::JSC_DEFINE_JIT_OPERATION):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289877 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [289936] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebKit/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in

Cherry-pick r289858. rdar://problem/88787266

[macOS] Add access to mach service in the Networking process for all users
​https://bugs.webkit.org/show_bug.cgi?id=236653
<rdar://88787266>

Reviewed by Brent Fulgham.

We currently allow access to "com.apple.trustd" for the root user. Access to this service is needed for all users.
This issue was introduced in ​https://trac.webkit.org/changeset/283012/webkit, and this patch also reverts this
change for older versions of macOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289858 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [289935] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore/css

Cherry-pick r289567. rdar://problem/88323864

Crash in in WebCore::CSSStyleSheet::didMutateRules
​https://bugs.webkit.org/show_bug.cgi?id=236450

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Replace the raw pointer rule in RuleMutationScope with a RefPtr so it can be accessible
for the scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):
  • css/CSSStyleSheet.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289567 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:16 PM Changeset in webkit [289934] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288795. rdar://problem/88696673

[WebIDL] Add a sensible error message for a primitive non-null EventListener
​https://bugs.webkit.org/show_bug.cgi?id=235863

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-29
Reviewed by Darin Adler.

Source/WebCore:

This patch moves isObject() check to JSEventListener converter, aligning it with
callback interface converter and removing now unused create() overload, and makes
code generator pass an exception thrower with a user-friendly TypeError message.

Since JSEventListener is quite different from other callback interfaces, we can't
make IsCallbackInterface() recognize it just yet, thus the type name has to be
hard-coded if we want the error message to be consistent with other generated ones.

Test: fast/events/event-listener-not-an-object.html

  • bindings/js/JSDOMConvertEventListener.h: (WebCore::Converter<IDLEventListener<T>>::convert):
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventListener.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetArgumentExceptionFunction):
  • bindings/scripts/test/JS/*: Updated.
  • dom/EventTarget.idl: Rename EventListener parameter to "listener" to match MDN / Chrome DevTools / matchMedia().

LayoutTests:

  • fast/events/event-listener-not-an-object-expected.txt: Added.
  • fast/events/event-listener-not-an-object.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:00 PM Changeset in webkit [289933] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Cherry-pick r289875. rdar://problem/88358696

Web Inspector: [Cocoa] Reentrancy in WebKit::WebInspectorUIProxy::open
​https://bugs.webkit.org/show_bug.cgi?id=236672

Reviewed by Devin Rousso.

Speculative fix for non-reproducible reentrancy. Because WebInspectorUIProxy::open calls
WebInspectorUIProxy::platformBringToFront, which under some conditions can call WebInspectorUIProxy::open,
there was an opportunity for recurssion. This appears to happen when the window of the inspector view does not
match the window of the inspected web view, which in general should not be possible for a newly opened
inspector. My suspicion is that the web view is not actually attached to a window at the time the inspector is
being opened. This patch adds a fail-safe that will detach the inspector view into its own window when these
conditions are met while we are in middle of opening the inspector, and also adds logging to indicate if the
inspected web view was actually in a window. This should both prevent the crash from the re-entry as well as
provide more context when the issue does occur.

  • UIProcess/Inspector/WebInspectorUIProxy.cpp: (WebKit::WebInspectorUIProxy::open):
  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm: (WebKit::WebInspectorUIProxy::platformBringToFront):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289875 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:00 PM Changeset in webkit [289932] by Russell Epstein
  • 11 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289892. rdar://problem/88696673

REGRESSION(r287293): EventListener::wasCreatedFromMarkup() is incorrect after replaceJSFunctionForAttributeListener()
​https://bugs.webkit.org/show_bug.cgi?id=236618
<rdar://88696673>

Reviewed by Chris Dumez.

Source/WebCore:

After r287293, if an inline event handler was replaced with a JSFunction, its execution was
still disallowed by the CSP policy.

This change fixes detection of inline event handlers (ones that were created from markup)
by introducing JSEventListener::m_wasCreatedFromMarkup and unsetting it during replacement
of an attribute event listener.

Since no virtual calls are added to the hot path, the Speedometer2/Inferno-TodoMVC performance
gain is kept. Also, a virtual call is removed from JSEventListener::handleEvent(), which is nice.
sizeof(JSEventListener) is unchanged.

Test: http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html

  • bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::JSErrorHandler):
  • bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::create): (WebCore::JSEventListener::replaceJSFunctionForAttributeListener):
  • bindings/js/JSEventListener.h: (WebCore::JSEventListener::wasCreatedFromMarkup const): (WebCore::JSEventListener::wasCreatedFromMarkup):
  • bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::JSLazyEventListener):
  • bindings/js/JSLazyEventListener.h:
  • dom/EventListener.h: (WebCore::EventListener::wasCreatedFromMarkup const): Deleted.
  • dom/EventListenerMap.cpp: (WebCore::removeFirstListenerCreatedFromMarkup): (WebCore::copyListenersNotCreatedFromMarkupToTarget):
  • dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener):
  • svg/SVGElement.cpp: (WebCore::SVGElement::removeEventListener):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289892 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:00 PM Changeset in webkit [289931] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r288795. rdar://problem/88696673

[WebIDL] Add a sensible error message for a primitive non-null EventListener
​https://bugs.webkit.org/show_bug.cgi?id=235863

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-29
Reviewed by Darin Adler.

Source/WebCore:

This patch moves isObject() check to JSEventListener converter, aligning it with
callback interface converter and removing now unused create() overload, and makes
code generator pass an exception thrower with a user-friendly TypeError message.

Since JSEventListener is quite different from other callback interfaces, we can't
make IsCallbackInterface() recognize it just yet, thus the type name has to be
hard-coded if we want the error message to be consistent with other generated ones.

Test: fast/events/event-listener-not-an-object.html

  • bindings/js/JSDOMConvertEventListener.h: (WebCore::Converter<IDLEventListener<T>>::convert):
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventListener.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetArgumentExceptionFunction):
  • bindings/scripts/test/JS/*: Updated.
  • dom/EventTarget.idl: Rename EventListener parameter to "listener" to match MDN / Chrome DevTools / matchMedia().

LayoutTests:

  • fast/events/event-listener-not-an-object-expected.txt: Added.
  • fast/events/event-listener-not-an-object.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:00 PM Changeset in webkit [289930] by Russell Epstein
  • 11 edits
    2 deletes in branches/safari-613.1.17.1-branch

Revert "Cherry-pick r289892. rdar://problem/88696673"

This reverts commit r289901.

11:59 AM Changeset in webkit [289929] by Russell Epstein
  • 11 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289892. rdar://problem/88696673

REGRESSION(r287293): EventListener::wasCreatedFromMarkup() is incorrect after replaceJSFunctionForAttributeListener()
​https://bugs.webkit.org/show_bug.cgi?id=236618
<rdar://88696673>

Reviewed by Chris Dumez.

Source/WebCore:

After r287293, if an inline event handler was replaced with a JSFunction, its execution was
still disallowed by the CSP policy.

This change fixes detection of inline event handlers (ones that were created from markup)
by introducing JSEventListener::m_wasCreatedFromMarkup and unsetting it during replacement
of an attribute event listener.

Since no virtual calls are added to the hot path, the Speedometer2/Inferno-TodoMVC performance
gain is kept. Also, a virtual call is removed from JSEventListener::handleEvent(), which is nice.
sizeof(JSEventListener) is unchanged.

Test: http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html

  • bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::JSErrorHandler):
  • bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::create): (WebCore::JSEventListener::replaceJSFunctionForAttributeListener):
  • bindings/js/JSEventListener.h: (WebCore::JSEventListener::wasCreatedFromMarkup const): (WebCore::JSEventListener::wasCreatedFromMarkup):
  • bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::JSLazyEventListener):
  • bindings/js/JSLazyEventListener.h:
  • dom/EventListener.h: (WebCore::EventListener::wasCreatedFromMarkup const): Deleted.
  • dom/EventListenerMap.cpp: (WebCore::removeFirstListenerCreatedFromMarkup): (WebCore::copyListenersNotCreatedFromMarkupToTarget):
  • dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener):
  • svg/SVGElement.cpp: (WebCore::SVGElement::removeEventListener):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289892 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:59 AM Changeset in webkit [289928] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r288795. rdar://problem/88696673

[WebIDL] Add a sensible error message for a primitive non-null EventListener
​https://bugs.webkit.org/show_bug.cgi?id=235863

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-29
Reviewed by Darin Adler.

Source/WebCore:

This patch moves isObject() check to JSEventListener converter, aligning it with
callback interface converter and removing now unused create() overload, and makes
code generator pass an exception thrower with a user-friendly TypeError message.

Since JSEventListener is quite different from other callback interfaces, we can't
make IsCallbackInterface() recognize it just yet, thus the type name has to be
hard-coded if we want the error message to be consistent with other generated ones.

Test: fast/events/event-listener-not-an-object.html

  • bindings/js/JSDOMConvertEventListener.h: (WebCore::Converter<IDLEventListener<T>>::convert):
  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventListener.h:
  • bindings/scripts/CodeGeneratorJS.pm: (GetArgumentExceptionFunction):
  • bindings/scripts/test/JS/*: Updated.
  • dom/EventTarget.idl: Rename EventListener parameter to "listener" to match MDN / Chrome DevTools / matchMedia().

LayoutTests:

  • fast/events/event-listener-not-an-object-expected.txt: Added.
  • fast/events/event-listener-not-an-object.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:59 AM Changeset in webkit [289927] by Russell Epstein
  • 11 edits
    2 deletes in branches/safari-613.1.17.0-branch

Revert "Cherry-pick r289892. rdar://problem/88696673"

This reverts commit r289905.

11:55 AM Changeset in webkit [289926] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add access to mach service in the Networking process for all users
​https://bugs.webkit.org/show_bug.cgi?id=236653
<rdar://88787266>

Reviewed by Chris Dumez.

Add access to CF preferences services if direct mode is not enabled.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
11:40 AM Changeset in webkit [289925] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.0-branch/Source/WTF

Apply patch. rdar://problem/87486284

11:40 AM Changeset in webkit [289924] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289883. rdar://problem/82142820

Floating point exception in RenderListBox::numVisibleItems
​https://bugs.webkit.org/show_bug.cgi?id=229307

Reviewed by Mark Lam.

Source/WebCore:

FontMetrics::height can return a negative value when setAscent() is called with
with a value that is too large to be represented as an int. Prevent this by
making setAscent() ensure that m_intAscent is set to a non-negative value.

Test: fast/forms/listbox-zero-item-height.html

  • platform/graphics/FontMetrics.h: (WebCore::FontMetrics::setAscent):

LayoutTests:

  • fast/forms/listbox-zero-item-height-expected.txt: Added.
  • fast/forms/listbox-zero-item-height.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289883 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:40 AM Changeset in webkit [289923] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289877. rdar://problem/81337114

Defer TerminationsExceptions while in operationMaterializeObjectInOSR.
​https://bugs.webkit.org/show_bug.cgi?id=236686
rdar://81337114

Reviewed by Saam Barati.

JSTests:

These tests are identical except that they are customized with different watchdog
timeout periods for a Debug / Release build. This is a necessary condition in
order for the test to manifest this issue if the code is regressed.

  • stress/termination-exception-in-operationMaterializeObjectInOSR-debug.js: Added.
  • stress/termination-exception-in-operationMaterializeObjectInOSR-release.js: Added.

Source/JavaScriptCore:

operationMaterializeObjectInOSR expects to always succeed. It is difficult (and
not worth the effort) to make it be able to handle interruptions by the
TerminationException. Since operationMaterializeObjectInOSR is guaranteed to
finish running in some finite time, it is reasonable to just defer handling a
pending TerminationException until the function returns.

  • ftl/FTLOperations.cpp: (JSC::FTL::JSC_DEFINE_JIT_OPERATION):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289877 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:40 AM Changeset in webkit [289922] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.1-branch/Source/WTF

Apply patch. rdar://problem/87486284

11:40 AM Changeset in webkit [289921] by Russell Epstein
  • 3 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r289567. rdar://problem/88323864

Crash in in WebCore::CSSStyleSheet::didMutateRules
​https://bugs.webkit.org/show_bug.cgi?id=236450

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Replace the raw pointer rule in RuleMutationScope with a RefPtr so it can be accessible
for the scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):
  • css/CSSStyleSheet.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289567 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:29 AM Changeset in webkit [289920] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289883. rdar://problem/82142820

Floating point exception in RenderListBox::numVisibleItems
​https://bugs.webkit.org/show_bug.cgi?id=229307

Reviewed by Mark Lam.

Source/WebCore:

FontMetrics::height can return a negative value when setAscent() is called with
with a value that is too large to be represented as an int. Prevent this by
making setAscent() ensure that m_intAscent is set to a non-negative value.

Test: fast/forms/listbox-zero-item-height.html

  • platform/graphics/FontMetrics.h: (WebCore::FontMetrics::setAscent):

LayoutTests:

  • fast/forms/listbox-zero-item-height-expected.txt: Added.
  • fast/forms/listbox-zero-item-height.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289883 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:29 AM Changeset in webkit [289919] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289877. rdar://problem/81337114

Defer TerminationsExceptions while in operationMaterializeObjectInOSR.
​https://bugs.webkit.org/show_bug.cgi?id=236686
rdar://81337114

Reviewed by Saam Barati.

JSTests:

These tests are identical except that they are customized with different watchdog
timeout periods for a Debug / Release build. This is a necessary condition in
order for the test to manifest this issue if the code is regressed.

  • stress/termination-exception-in-operationMaterializeObjectInOSR-debug.js: Added.
  • stress/termination-exception-in-operationMaterializeObjectInOSR-release.js: Added.

Source/JavaScriptCore:

operationMaterializeObjectInOSR expects to always succeed. It is difficult (and
not worth the effort) to make it be able to handle interruptions by the
TerminationException. Since operationMaterializeObjectInOSR is guaranteed to
finish running in some finite time, it is reasonable to just defer handling a
pending TerminationException until the function returns.

  • ftl/FTLOperations.cpp: (JSC::FTL::JSC_DEFINE_JIT_OPERATION):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289877 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:29 AM Changeset in webkit [289918] by Russell Epstein
  • 3 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r289567. rdar://problem/88323864

Crash in in WebCore::CSSStyleSheet::didMutateRules
​https://bugs.webkit.org/show_bug.cgi?id=236450

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Replace the raw pointer rule in RuleMutationScope with a RefPtr so it can be accessible
for the scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):
  • css/CSSStyleSheet.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289567 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:29 AM Changeset in webkit [289917] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289150.

Start using adattributiond on iOS again now that it is
sandboxed

Reverted changeset:

"Don't use adattributiond on iOS"
​https://bugs.webkit.org/show_bug.cgi?id=236157
​https://commits.webkit.org/r289150

10:53 AM Changeset in webkit [289916] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Effectively revert r289018
​https://bugs.webkit.org/show_bug.cgi?id=236000

It caused some problems, and another approach will be taken.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

10:49 AM Changeset in webkit [289915] by Russell Epstein
  • 7 edits in branches/safari-614.1.4-branch/LayoutTests

Cherry-pick r289869. rdar://problem/88927346

[ iOS ] fast/text/ch-unit-synthetic-bold.html is failing constantly on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236610

Turns out iOS doesn't have Monaco. It's fine though; we can use local() to create
a font that doesn't have a bold family member.

Unreviewed.

  • fast/text/ch-unit-synthetic-bold-expected.html:
  • fast/text/ch-unit-synthetic-bold.html:
  • fast/text/tab-width-synthetic-bold-complex-expected.html:
  • fast/text/tab-width-synthetic-bold-complex.html:
  • fast/text/tab-width-synthetic-bold-expected.html:
  • fast/text/tab-width-synthetic-bold.html:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289869 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:49 AM Changeset in webkit [289914] by Russell Epstein
  • 2 edits in branches/safari-614.1.4-branch/LayoutTests

Cherry-pick r289864. rdar://problem/88993883

REGRESSION(r289495): [ Monterey arm64 ] model-element/model-element-ready.html is a flaky assertion failure.
​https://bugs.webkit.org/show_bug.cgi?id=236678

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-15

  • platform/mac-wk2/TestExpectations:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:49 AM Changeset in webkit [289913] by Russell Epstein
  • 3 edits in branches/safari-614.1.4-branch/Source/bmalloc

Cherry-pick r289788. rdar://problem/88928951

[libpas] compact pointers should load payload via memcpy
​https://bugs.webkit.org/show_bug.cgi?id=236621

Reviewed by Mark Lam.

ASan found that we are loading 8 bytes which can potentially be overflowed.
For example, we load this from a pointer to stack variable, which means that
we could cause stack overflow. Instead we should use memcpy.
Currently, we only support little endian code, but it is OK since libpas is not
enabled in non little endian architectures.

  • libpas/src/libpas/pas_compact_ptr.h:
  • libpas/src/libpas/pas_compact_tagged_ptr.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:41 AM Changeset in webkit [289912] by commit-queue@webkit.org
  • 40 edits
    2 deletes in trunk/Source

ANGLE includes interfere with system header includes
​https://bugs.webkit.org/show_bug.cgi?id=236636

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-16
Reviewed by Dean Jackson.

Source/WebCore:

Move ANGLEHeaders.h includes only to the .cpp/.mm files
that need to use ANGLE.
Use GCGL* types consistently in the GraphicsContextGLANGLE.h
declations. The WebCore types are intended to be used in place of OpenGL, EGL types
so that WebCore code does not need to include OpenGL headers.

Rename PlatformGraphicsContextGL{Display, Config}, PlatformGraphicsContextGL to
GCGLDisplay, GCGLConfig, GCGLContext to make them consistent with other
duplicated types. Declare these in GraphicsTypesGL.h, similar to others.
Remove currently unused PlatformGraphicsContextGLSurface.

Rename TemporaryANGLESetting to ScopedGLCapability, consistent with other ScopedGL*
classes. Move the implementations of ScopedGL* to ANGLEUtilities.cpp, since the
implementations need to use ANGLE and these need the ANGLE headers.

No new tests, refactor. Fixes the compile on Big Sur, internal SDK when a file add or remove
would changed unified build file ordering.

  • CMakeLists.txt:
  • Modules/webxr/WebXROpaqueFramebuffer.cpp:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/GraphicsTypesGL.h:
  • platform/graphics/angle/ANGLEUtilities.cpp:

(WebCore::ScopedRestoreTextureBinding::ScopedRestoreTextureBinding):
(WebCore::ScopedRestoreTextureBinding::~ScopedRestoreTextureBinding):
(WebCore::ScopedBufferBinding::ScopedBufferBinding):
(WebCore::ScopedBufferBinding::~ScopedBufferBinding):
(WebCore::ScopedRestoreReadFramebufferBinding::bindFramebuffer):
(WebCore::ScopedRestoreReadFramebufferBinding::~ScopedRestoreReadFramebufferBinding):
(WebCore::ScopedPixelStorageMode::ScopedPixelStorageMode):
(WebCore::ScopedPixelStorageMode::~ScopedPixelStorageMode):
(WebCore::ScopedPixelStorageMode::pixelStore):
(WebCore::ScopedTexture::ScopedTexture):
(WebCore::ScopedTexture::~ScopedTexture):
(WebCore::ScopedFramebuffer::ScopedFramebuffer):
(WebCore::ScopedFramebuffer::~ScopedFramebuffer):
(WebCore::ScopedGLFence::reset):
(WebCore::ScopedGLFence::fenceSync):
(WebCore::ScopedGLCapability::ScopedGLCapability):
(WebCore::ScopedGLCapability::~ScopedGLCapability):

  • platform/graphics/angle/ANGLEUtilities.h:

(WebCore::ScopedBufferBinding::query):
(WebCore::ScopedRestoreReadFramebufferBinding::ScopedRestoreReadFramebufferBinding):
(WebCore::ScopedRestoreReadFramebufferBinding::framebufferTarget const):
(WebCore::ScopedPixelStorageMode::operator GCGLint const):
(WebCore::ScopedTexture::operator GCGLuint const):
(WebCore::ScopedFramebuffer::operator GCGLuint const):
(WebCore::ScopedGLFence::get const):
(WebCore::ScopedGLFence::operator GCGLsync const):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::releaseThreadResources):
(WebCore::GraphicsContextGLANGLE::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):
(WebCore::GraphicsContextGLANGLE::reshape):
(WebCore::GraphicsContextGLANGLE::isSync):
(WebCore::GraphicsContextGLANGLE::deleteSync):
(WebCore::GraphicsContextGLANGLE::clientWaitSync):
(WebCore::GraphicsContextGLANGLE::waitSync):
(WebCore::GraphicsContextGLANGLE::getSynci):
(WebCore::GraphicsContextGLANGLE::waitAndUpdateOldestFrame):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/angle/TemporaryANGLESetting.cpp: Removed.
  • platform/graphics/angle/TemporaryANGLESetting.h: Removed.
  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.cpp:

(WebCore::platformIsANGLEAvailable):
(WebCore::createPbufferAndAttachIOSurface):

  • platform/graphics/cocoa/ANGLEUtilitiesCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLANGLE::makeCurrent):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):

  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::platformContext):

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::platformContext):

  • platform/graphics/glx/GLContextGLX.h:
  • platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:

(PlatformDisplay::tryEnsureGstGLContext const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::ANGLEContext::platformContext const):
(Nicosia::GCGLANGLELayer::ANGLEContext::platformDisplay const):
(Nicosia::GCGLANGLELayer::ANGLEContext::platformConfig const):
(Nicosia::GCGLANGLELayer::platformContext const):
(Nicosia::GCGLANGLELayer::platformDisplay const):
(Nicosia::GCGLANGLELayer::platformConfig const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::platformContext const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::platformContext const):
(WebCore::TextureMapperGCGLPlatformLayer::platformDisplay const):
(WebCore::TextureMapperGCGLPlatformLayer::platformConfig const):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:

Source/WebCore/PAL:

Remove the attempt to override system header logic with WebKit
ANGLE implementation. They are different implementations
and one cannot replace the other.

  • pal/spi/cg/CoreGraphicsSPI.h:
  • pal/spi/mac/HIToolboxSPI.h:

Add missing CGCOLORTAGGEDPOINTER_H_ that makes the CocoaPriv.h
included CoreGraphics header skip the incompatible tagged pointer
declarations, similar to other *SPI.h headers.

Source/WebKit:

Remove the attempt to override system header logic with WebKit
ANGLE implementation. They are different implementations
and one cannot replace the other.

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • Platform/spi/mac/AppKitSPI.h:
  • Platform/spi/mac/ApplicationServicesSPI.h:
  • WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:

Source/WebKitLegacy/mac:

Remove the attempt to override system header logic with WebKit
ANGLE implementation. They are different implementations
and one cannot replace the other.

  • WebView/WebFrameInternal.h:
10:35 AM Changeset in webkit [289911] by Simon Fraser
  • 17 edits
    1 copy in trunk/Source

Allow downcast<> to work with ImageBufferBackends that support sharing
​https://bugs.webkit.org/show_bug.cgi?id=236671

Reviewed by Said Abou-Hallawa.
Source/WebCore:

RemoteLayerBackingStore::encode() had some awkward code that used knowlege of the relationship
between buffer types and mappability to static_cast<> to specific backend implementations.

Replace this with a small abstract stub in the form of WebCore::ImageBufferBackendSharing, and
a mixin class for shareable image buffers which inherits from a concrete subclass, ImageBufferBackendHandleSharing.
It's not possible to downcast<> ImageBufferBackend directly because there is no common base class for
the shareable types of buffer backends.

Now the code in RemoteLayerBackingStore can be simplified.

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackendSharing::isImageBufferBackendHandleSharing const):
(WebCore::ImageBufferBackend::toBackendSharing):

Source/WebKit:

RemoteLayerBackingStore::encode() had some awkward code that used knowlege of the relationship
between buffer types and mappability to static_cast<> to specific backend implementations.

Replace this with a small abstract stub in the form of WebCore::ImageBufferBackendSharing, and
a mixin class for shareable image buffers which inherits from a concrete subclass, ImageBufferBackendHandleSharing.
It's not possible to downcast<> ImageBufferBackend directly because there is no common base class for
the shareable types of buffer backends.

Now the code in RemoteLayerBackingStore can be simplified.

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):
(WebKit::CGDisplayListImageBufferBackend::createImageBufferBackendHandle const): Deleted.

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode const):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h: Added.
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::createBackendHandle const):
(WebKit::ImageBufferShareableBitmapBackend::createImageBufferBackendHandle const): Deleted.

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::createImageBufferBackendHandle):

  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::createBackendHandle const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::createImageBufferBackendHandle const): Deleted.

  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::createBackendHandle const):
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::createImageBufferBackendHandle const): Deleted.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
10:23 AM Changeset in webkit [289910] by achristensen@apple.com
  • 5 edits in trunk/Source

Move Safe Browsing knowledge into SafariSafeBrowsing framework
​https://bugs.webkit.org/show_bug.cgi?id=231692

Patch by Eliot Hsu <​eliot_hsu@apple.com> on 2022-02-16
Reviewed by Alex Christensen.

Following up on an old FIXME, move Safari Safe Browsing-specific
knowledge out of WebKit and into the SafariSafeBrowsing framework.
This includes things like the Learn More URL, the Report an Error URL,
etc.

Source/WebKit:

  • Platform/spi/Cocoa/SafeBrowsingSPI.h:
  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::malwareDetailsBase):
(WebKit::learnMoreURL):
(WebKit::reportAnErrorBase):
(WebKit::localizedProvider):
Rely on new SafariSafeBrowsing calls to provide
URL/provider information about Safe Browsing,
when available

Source/WTF:

  • wtf/PlatformHave.h:
10:21 AM Changeset in webkit [289909] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

[WebKitLegacy] Fix clang tidy bugprone-move-forwarding-reference static analyzer warnings
<​https://webkit.org/b/236663>
<rdar://problem/88982792>

Reviewed by Dean Jackson.

  • Misc/WebDownload.mm:

(callOnDelegateThreadAndWait):

  • Replace WTFMove() with std::forward<>().
10:16 AM Changeset in webkit [289908] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

[Cocoa] Clean up some unused context menu identifier SPI constants
​https://bugs.webkit.org/show_bug.cgi?id=236669
rdar://88924479

Reviewed by Dean Jackson.

Remove a couple of unused context menu item identifier constants for Quick Note, and add a new constant to
represent the "Copy Cropped Image" item added in r289851.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):

10:13 AM Changeset in webkit [289907] by Russell Epstein
  • 12 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Revert r289292. rdar://problem/88876661

10:12 AM Changeset in webkit [289906] by Russell Epstein
  • 12 edits in branches/safari-613.1.17.0-branch/Source/WebKit

Revert r289292. rdar://problem/88876661

10:12 AM Changeset in webkit [289905] by Russell Epstein
  • 11 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289892. rdar://problem/88696673

REGRESSION(r287293): EventListener::wasCreatedFromMarkup() is incorrect after replaceJSFunctionForAttributeListener()
​https://bugs.webkit.org/show_bug.cgi?id=236618
<rdar://88696673>

Reviewed by Chris Dumez.

Source/WebCore:

After r287293, if an inline event handler was replaced with a JSFunction, its execution was
still disallowed by the CSP policy.

This change fixes detection of inline event handlers (ones that were created from markup)
by introducing JSEventListener::m_wasCreatedFromMarkup and unsetting it during replacement
of an attribute event listener.

Since no virtual calls are added to the hot path, the Speedometer2/Inferno-TodoMVC performance
gain is kept. Also, a virtual call is removed from JSEventListener::handleEvent(), which is nice.
sizeof(JSEventListener) is unchanged.

Test: http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html

  • bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::JSErrorHandler):
  • bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::create): (WebCore::JSEventListener::replaceJSFunctionForAttributeListener):
  • bindings/js/JSEventListener.h: (WebCore::JSEventListener::wasCreatedFromMarkup const): (WebCore::JSEventListener::wasCreatedFromMarkup):
  • bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::JSLazyEventListener):
  • bindings/js/JSLazyEventListener.h:
  • dom/EventListener.h: (WebCore::EventListener::wasCreatedFromMarkup const): Deleted.
  • dom/EventListenerMap.cpp: (WebCore::removeFirstListenerCreatedFromMarkup): (WebCore::copyListenersNotCreatedFromMarkupToTarget):
  • dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener):
  • svg/SVGElement.cpp: (WebCore::SVGElement::removeEventListener):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289892 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:10 AM Changeset in webkit [289904] by ddkilzer@apple.com
  • 5 edits in trunk

Workaround ASAN false positive stack-buffer-underflow bmalloc_allocate_impl_casual_case
<​https://bugs.webkit.org/show_bug.cgi?id=236001>
<rdar://problem/88364275>

Reviewed by Dean Jackson.

Source/bmalloc:

  • libpas/src/libpas/pas_large_free_inlines.h:

(pas_large_free_create_merged):

  • Turn off PAS_ALWAYS_INLINE when the WK_WORKAROUND_RDAR_87613908_ASAN_STACK_USE_AFTER_SCOPE macro is defined to avoid the bug.

Tools:

Based on a patch by Kimmo Kinnunen.

Define a WK_WORKAROUND_RDAR_87613908_ASAN_STACK_USE_AFTER_SCOPE
macro so that the fix can be targeted to a specific function in
libpas. This avoids disabling all stack-use-after-scope checks
in bmalloc when compiling with Address Sanitizer enabled.

  • sanitizer/asan.xcconfig:

(WK_ADDRESS_SANITIZER_OTHER_CFLAGS_YES): Add.

  • This variable contains the macro definition when the workaround is needed. It's used in sanitizer.xcconfig to add the macro definition to $(OTHER_CFLAGS).

(WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND_FOR_bmalloc_YES): Add.

  • The workaround is currently only needed in bmalloc.

(WK_NOT_): Add.
(WK_NOT_YES): Add.

  • Add support for $(WK_NOT_$(X)) variables.

(WK_NEEDS_ASAN_USE_AFTER_SCOPE_WORKAROUND): Add.

  • Sets when the workaround is needed based on the Xcode version. Uses a $(WK_NOT_$(X)) variable to negate the result when the workaround is not needed.

(WK_XCODE_VERSION_BEFORE_13_3_*): Add.

  • List Xcode versions where the workaround is not needed.
  • sanitizer/sanitizer.xcconfig:

(OTHER_CFLAGS):

  • Add the value of $(WK_ADDRESS_SANITIZER_OTHER_CFLAGS_YES) from asan.xcconfig when building with Address Sanitizer enabled.
10:08 AM Changeset in webkit [289903] by Martin Robinson
  • 5 edits in trunk

transform: perspective(0) should not be considered an identity operation
​https://bugs.webkit.org/show_bug.cgi?id=236644

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt: Update expectations.
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

  • platform/graphics/transforms/PerspectiveTransformOperation.h: When the value of a perspective operation

is zero, it isn't an identity operation, because it will be rounded to 1px.

10:04 AM Changeset in webkit [289902] by Ziran Sun
  • 6 edits in trunk

[InputElement] Remove extra form data made by image submit button when "value" attribute is present.
​https://bugs.webkit.org/show_bug.cgi?id=236703

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/image-click-form-data-expected.txt:

Source/WebCore:

As per spec at
​https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-form-data-set,
and discussions at
​https://groups.google.com/a/chromium.org/g/blink-dev/c/hp1_-1tgvDs
The condstructed "form data set" should not include the value of the image button in this case.

This change is an import from chromium CL at
​https://chromium-review.googlesource.com/c/chromium/src/+/1086953/

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::appendFormData const):

LayoutTests:

Update test expectation as the test is now passing.

  • fast/forms/input-image-submit.html:
9:54 AM Changeset in webkit [289901] by Russell Epstein
  • 11 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289892. rdar://problem/88696673

REGRESSION(r287293): EventListener::wasCreatedFromMarkup() is incorrect after replaceJSFunctionForAttributeListener()
​https://bugs.webkit.org/show_bug.cgi?id=236618
<rdar://88696673>

Reviewed by Chris Dumez.

Source/WebCore:

After r287293, if an inline event handler was replaced with a JSFunction, its execution was
still disallowed by the CSP policy.

This change fixes detection of inline event handlers (ones that were created from markup)
by introducing JSEventListener::m_wasCreatedFromMarkup and unsetting it during replacement
of an attribute event listener.

Since no virtual calls are added to the hot path, the Speedometer2/Inferno-TodoMVC performance
gain is kept. Also, a virtual call is removed from JSEventListener::handleEvent(), which is nice.
sizeof(JSEventListener) is unchanged.

Test: http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html

  • bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::JSErrorHandler):
  • bindings/js/JSEventListener.cpp: (WebCore::JSEventListener::JSEventListener): (WebCore::JSEventListener::create): (WebCore::JSEventListener::replaceJSFunctionForAttributeListener):
  • bindings/js/JSEventListener.h: (WebCore::JSEventListener::wasCreatedFromMarkup const): (WebCore::JSEventListener::wasCreatedFromMarkup):
  • bindings/js/JSLazyEventListener.cpp: (WebCore::JSLazyEventListener::JSLazyEventListener):
  • bindings/js/JSLazyEventListener.h:
  • dom/EventListener.h: (WebCore::EventListener::wasCreatedFromMarkup const): Deleted.
  • dom/EventListenerMap.cpp: (WebCore::removeFirstListenerCreatedFromMarkup): (WebCore::copyListenersNotCreatedFromMarkupToTarget):
  • dom/EventTarget.cpp: (WebCore::EventTarget::addEventListener):
  • svg/SVGElement.cpp: (WebCore::SVGElement::removeEventListener):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289892 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:34 AM Changeset in webkit [289900] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r289736 - Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
​https://bugs.webkit.org/show_bug.cgi?id=229283

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-14
Reviewed by Ryosuke Niwa.

Source/WebCore:

Position::upstream handles edge cases like tables specially which can lead to
InsertParagraphSeparatorCommand::doApply incorrectly expecting a next sibling after a text
node at last position in order to perform a split. This patch works around that by ignoring
the split in that case.

Test: editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply): Only try and remove remaining nodes if
splitTo is not null. moveRemainingSiblingsToNewParent will be a no-op when n is null. Also
switch from raw pointers to RefPtr<Node>.

LayoutTests:

Add regression test.

  • editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash-expected.txt: Added.
  • editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html: Added.
9:32 AM Changeset in webkit [289899] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.4

9:32 AM Changeset in webkit [289898] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase http/tests/model/model-document.html after the changes in r289733
​https://bugs.webkit.org/show_bug.cgi?id=236578

Unreviewed test gardening.

  • http/tests/model/model-document-expected.txt:
9:29 AM Changeset in webkit [289897] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] LineLayout::firstLineBaseline callers expect physical position
​https://bugs.webkit.org/show_bug.cgi?id=236688

Reviewed by Antti Koivisto.

Legacy line layout returns the physical position too, though in a bit obscure manner:

firstRootBox()->logicalTop() + firstLineStyle().metricsOfPrimaryFont().descent(firstRootBox()->baselineType())
where

The logicalTop[ position is the top edge of the line box in a horizontal line and the left edge in a vertical line.
float logicalTop() const { return isHorizontal() ? m_topLeft.y() : m_topLeft.x(); }

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::lineBoxHeight const):
(WebCore::LayoutIntegration::Line::lineBoxWidth const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstLinePhysicalBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineLogicalBaseline const):
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const): Deleted.
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):

9:27 AM Changeset in webkit [289896] by commit-queue@webkit.org
  • 40 edits in trunk/Source/WebCore

Allow exposed WebGL and WebAudio interfaces to be controlled via a setting
​https://bugs.webkit.org/show_bug.cgi?id=236648
<rdar://problem/87821817>

We want to be able to enable/disable various WebGL/WebAudio interfaces via a setting
so that we can block them when CaptivePortalMode is enabled.

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-02-16
Reviewed by Brent Fulgham.

  • Modules/webaudio/AnalyserNode.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioDestinationNode.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioProcessingEvent.idl:
  • Modules/webaudio/AudioScheduledSourceNode.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/ChannelMergerNode.idl:
  • Modules/webaudio/ChannelSplitterNode.idl:
  • Modules/webaudio/ConvolverNode.idl:
  • Modules/webaudio/DelayNode.idl:
  • Modules/webaudio/DynamicsCompressorNode.idl:
  • Modules/webaudio/GainNode.idl:
  • Modules/webaudio/MediaElementAudioSourceNode.idl:
  • Modules/webaudio/MediaStreamAudioDestinationNode.idl:
  • Modules/webaudio/MediaStreamAudioSourceNode.idl:
  • Modules/webaudio/OfflineAudioCompletionEvent.idl:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/PeriodicWave.idl:
  • Modules/webaudio/WaveShaperNode.idl:
  • bindings/js/WebCoreBuiltinNames.h:
  • html/canvas/WebGLActiveInfo.idl:
  • html/canvas/WebGLBuffer.idl:
  • html/canvas/WebGLContextEvent.idl:
  • html/canvas/WebGLFramebuffer.idl:
  • html/canvas/WebGLProgram.idl:
  • html/canvas/WebGLQuery.idl:
  • html/canvas/WebGLRenderbuffer.idl:
  • html/canvas/WebGLRenderingContext.idl:
  • html/canvas/WebGLSampler.idl:
  • html/canvas/WebGLShader.idl:
  • html/canvas/WebGLShaderPrecisionFormat.idl:
  • html/canvas/WebGLSync.idl:
  • html/canvas/WebGLTexture.idl:
  • html/canvas/WebGLUniformLocation.idl:
9:24 AM Changeset in webkit [289895] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.4

9:19 AM Changeset in webkit [289894] by commit-queue@webkit.org
  • 38 edits in trunk

Add a dedicated ENABLE flag for MediaRecorder
​https://bugs.webkit.org/show_bug.cgi?id=236652

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-16
Reviewed by Eric Carlson.

Source/WebCore:

ENABLE(MEDIA_RECORDER) depends on ENABLE(MEDIA_STREAM) and is enabled only for COCOA
platforms, until the GStreamer backend is merged.

  • Modules/mediarecorder/BlobEvent.cpp:
  • Modules/mediarecorder/BlobEvent.h:
  • Modules/mediarecorder/BlobEvent.idl:
  • Modules/mediarecorder/MediaRecorder.cpp:
  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediarecorder/MediaRecorderErrorEvent.cpp:
  • Modules/mediarecorder/MediaRecorderErrorEvent.h:
  • Modules/mediarecorder/MediaRecorderErrorEvent.idl:
  • Modules/mediarecorder/MediaRecorderProvider.cpp:
  • Modules/mediarecorder/MediaRecorderProvider.h:
  • platform/mediarecorder/MediaRecorderPrivate.cpp:
  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:
  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/MediaRecorderPrivateOptions.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

Source/WTF:

ENABLE(MEDIA_RECORDER) depends on ENABLE(MEDIA_STREAM) and is enabled only for COCOA
platforms. Suggested by Eric Carlson.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • platform/glib/TestExpectations: Skip MediaRecorder test, GLib ports don't enable this

feature yet. This test used to pass because MediaRecorder used to be under MediaStream and
there is a mock Recorder implementation.

9:16 AM Changeset in webkit [289893] by Adrian Perez de Castro
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r289526 - [:has() pseudo-class] Nullptr crash with non-function :has
​https://bugs.webkit.org/show_bug.cgi?id=236431
rdar://87061239

Reviewed by Cameron McCormack.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has.html:

Source/WebCore:

Test: fast/selectors/malformed-has.html

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isOnlyPseudoClassFunction):

:has() is legal, plain :has is not.

LayoutTests:

  • fast/selectors/malformed-has-expected.txt: Added.
  • fast/selectors/malformed-has.html: Added.
8:58 AM Changeset in webkit [289892] by Alexey Shvayka
  • 11 edits
    2 adds in trunk

REGRESSION(r287293): EventListener::wasCreatedFromMarkup() is incorrect after replaceJSFunctionForAttributeListener()
​https://bugs.webkit.org/show_bug.cgi?id=236618
<rdar://88696673>

Reviewed by Chris Dumez.

Source/WebCore:

After r287293, if an inline event handler was replaced with a JSFunction, its execution was
still disallowed by the CSP policy.

This change fixes detection of inline event handlers (ones that were created from markup)
by introducing JSEventListener::m_wasCreatedFromMarkup and unsetting it during replacement
of an attribute event listener.

Since no virtual calls are added to the hot path, the Speedometer2/Inferno-TodoMVC performance
gain is kept. Also, a virtual call is removed from JSEventListener::handleEvent(), which is nice.
sizeof(JSEventListener) is unchanged.

Test: http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::JSErrorHandler):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::create):
(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::wasCreatedFromMarkup const):
(WebCore::JSEventListener::wasCreatedFromMarkup):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::JSLazyEventListener):

  • bindings/js/JSLazyEventListener.h:
  • dom/EventListener.h:

(WebCore::EventListener::wasCreatedFromMarkup const): Deleted.

  • dom/EventListenerMap.cpp:

(WebCore::removeFirstListenerCreatedFromMarkup):
(WebCore::copyListenersNotCreatedFromMarkupToTarget):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListener):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::removeEventListener):

LayoutTests:

  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/inline-event-handler-allowed-after-being-replaced.html: Added.
8:54 AM Changeset in webkit [289891] by commit-queue@webkit.org
  • 6 edits in trunk/Source

RemoteVideoFrameProxy is missing reference field encode, decode
​https://bugs.webkit.org/show_bug.cgi?id=236690

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-16
Reviewed by Antti Koivisto.

Source/WebKit:

Add the missing encode, decode. Use the better decode pattern
to avoid default construction and reduce the chance of having
a declaration but no decode.
Also add TextStream operator<< for RemoteVideoFrameProxy::Properties
for easier debugging with WebKit2Logging IPCMessages.

No new tests, tested by existing WebRTC tests
when WebRTCRemoteVideoFrameEnabled=true (not default currently)

  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::operator<<):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:

(WebKit::RemoteVideoFrameProxy::Properties::encode const):
(WebKit::RemoteVideoFrameProxy::Properties::decode):

Source/WTF:

Export the MediaTime TextStream operator<< as inline function
for all compilation modes. It is useful also when NDEBUG is defined,
and it is hard to ifdef at all the call sites.

  • wtf/MediaTime.cpp:
  • wtf/MediaTime.h:
8:52 AM Changeset in webkit [289890] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Size queries on unsupported axis should evaluate to unknown
​https://bugs.webkit.org/show_bug.cgi?id=236702

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:

Source/WebCore:

"If ... the query container does not support container size queries on the relevant axes,
then the result of evaluating the size feature is unknown."

​https://drafts.csswg.org/css-contain-3/#size-container

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluate const):

Some cleanups.

(WebCore::Style::ContainerQueryEvaluator::evaluateQuery const):
(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

Check whether the container supports the feature axis and return Unknown of not.

  • style/ContainerQueryEvaluator.h:

Rename EvaluationContext -> ResolvedContainer to be less generic.

6:45 AM Changeset in webkit [289889] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

[JSC][32-bit] Fix and re-enable flaky test
​https://bugs.webkit.org/show_bug.cgi?id=181227

Patch by Geza Lore <Geza Lore> on 2022-02-16
Reviewed by Adrian Perez de Castro.

  • stress/new-largeish-contiguous-array-with-size.js:

Re-enable on ARMv7, re-enable and increase leniency on MIPS.

6:41 AM Changeset in webkit [289888] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support PRs when sending layout test failure emails
​https://bugs.webkit.org/show_bug.cgi?id=236654
<rdar://problem/88974170>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.send_email_for_new_test_failures): Draft different
email for failed patch than failed pull request build.

Canonical link: ​https://commits.webkit.org/247326@main

5:53 AM Changeset in webkit [289887] by don.olmstead@sony.com
  • 4 edits
    2 moves
    1 add in trunk/Tools

Share WebKitTestRunner code among USE(LIBWPE) ports
​https://bugs.webkit.org/show_bug.cgi?id=236651

Reviewed by Žan Doberšek.

Modify PLATFORM(WPE) to USE(LIBWPE) in EventSenderProxy and PlatformWebView. The former
just uses the libwpe API to send events so it can be shared. The later uses the
WPEToolingBackend so it can also be shared.

The WPE port was missing guards around ENABLE(TOUCH_EVENTS) so add those and organize the
corresponding .cpp so the methods track with the ordering in the header.

Also modernize the PlatformWebView code to prefer using over typedef.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/PlatformWPE.cmake:
  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/libwpe/EventSenderProxyLibWPE.cpp: Renamed from Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp.

(WTR::EventSenderProxy::getUpdatedTouchEvents):
(WTR::EventSenderProxy::removeUpdatedTouchEvents):
(WTR::EventSenderProxy::prepareAndDispatchTouchEvent):

  • WebKitTestRunner/libwpe/PlatformWebViewLibWPE.cpp: Renamed from Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp.

(WTR::PlatformWebView::windowSnapshotImage):

4:38 AM Changeset in webkit [289886] by Antti Koivisto
  • 4 edits in trunk

[CSS Container Queries] Serialize container shorthand in StyleProperties
​https://bugs.webkit.org/show_bug.cgi?id=236691

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:

Source/WebCore:

Serialize element.style.container.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):

2:55 AM Changeset in webkit [289885] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK][WPE] Use drm render nodes in GbmDevice and make the fd global to the process
​https://bugs.webkit.org/show_bug.cgi?id=236607

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-16
Reviewed by Žan Doberšek.

We are creating a global static variable to handle the fd of the
device in the process, to make sure we search and open once for
the graphics device. Also we are using the DRM_NODE_RENDER because
we do not need the primary device for the operations we expect to
use.

No new tests, already covered in the tests.

  • platform/graphics/gbm/GBMDevice.cpp:

(WebCore::GBMDevice::GBMDevice): Use a new global fd.

  • platform/graphics/gbm/GBMDevice.h: Ditto.
1:39 AM Changeset in webkit [289884] by Chris Lord
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Crashing/weird behaviour when trying to use videos as textures with ANGLE WebGL enabled
​https://bugs.webkit.org/show_bug.cgi?id=236587

Reviewed by Kenneth Russell.

Disable the texture-sharing fast-path for GStreamer GL when ANGLE is
also enabled.

No new tests, no change in behaviour.

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::copyTextureFromMedia):

1:29 AM Changeset in webkit [289883] by ajuma@chromium.org
  • 3 edits
    2 adds in trunk

Floating point exception in RenderListBox::numVisibleItems
​https://bugs.webkit.org/show_bug.cgi?id=229307

Reviewed by Mark Lam.

Source/WebCore:

FontMetrics::height can return a negative value when setAscent() is called with
with a value that is too large to be represented as an int. Prevent this by
making setAscent() ensure that m_intAscent is set to a non-negative value.

Test: fast/forms/listbox-zero-item-height.html

  • platform/graphics/FontMetrics.h:

(WebCore::FontMetrics::setAscent):

LayoutTests:

  • fast/forms/listbox-zero-item-height-expected.txt: Added.
  • fast/forms/listbox-zero-item-height.html: Added.
1:19 AM Changeset in webkit [289882] by Wenson Hsieh
  • 22 edits in trunk/Source

[macOS] Add an "Markup Image" item to the sharing services picker context menu
​https://bugs.webkit.org/show_bug.cgi?id=236628
rdar://86446810

Reviewed by Darin Adler.

Source/WebCore:

Add support for a new context menu item in the sharing services picker; see WebKit/ChangeLog for more details.

  • dom/mac/ImageControlsMac.cpp:

(WebCore::ImageControlsMac::handleEvent):

Simplify this chrome client hook by passing along the entire HTMLImageElement, instead of the absolute bounds,
attachment element ID, and whether the image has contenteditable style as separate arguments. This makes it a
bit easier to compute and send the image MIME type and an ElementContext in WebKit2. See changes in WebPageMac
for more information.

  • html/HTMLAttachmentElement.h: Export a method.
  • page/ChromeClient.h:

(WebCore::ChromeClient::handleImageServiceClick):

  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

Add a helper function for the "Markup Image" menu item's localized title.

(WebCore::contextMenuItemTitleMarkupImage):

Source/WebKit:

Add support for a new context menu item in the sharing services picker; to achieve this, we plumb along some
more information about the controlled image element for the services picker menu (i.e. MIME type and an element
context). In WebContextMenuProxyMac, we then append the "Markup Image" item if the system feature is enabled,
and use this information about the controlled image element to replace the image using image data returned from
VisionKit, transcoded to a format that matches that of the original source image. See below for more details.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::controlledImageElementContext const):
(WebKit::ContextMenuContextData::controlledImageMIMEType const):

Add m_controlledImageElementContext, which can be used to identify the controlled image element, and
m_controlledImageMIMEType, the MIME type of the controlled image. See applyMarkupToControlledImage for more
information about usage.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::replaceWithPasteboardData):

Add a helper method that's nearly identical to the extant replaceSelectionWithPasteboardData method, except
that it takes an ElementContext and applies the editing replacement to a selection containing the element
corresponding to the given context, rather than applying the edit command to the current selection.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView updateImageAnalysisMarkupMenuItems:]):

Use the new WebCore localized string helper function.

  • UIProcess/mac/WKSharingServicePickerDelegate.h:
  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate markupImage]):

Handle the new context menu invocation.

  • UIProcess/mac/WebContextMenuProxyMac.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

If the controlled image is set and isImageAnalysisMarkupSystemFeatureEnabled() is true, append a new item to
the services menu to invoke "Markup Image"; when activated, this menu item invokes the
-[WKSharingServicePickerDelegate markupImage] method above, which in turn calls into
applyMarkupToControlledImage below.

(WebKit::WebContextMenuProxyMac::applyMarkupToControlledImage):

This method contains the main logic for coordinating "Markup Image" from the services menu on macOS. Using
information about the controlled image, this first creates a CGImageRef from the image bitmap, passes it to
VisionKit for analysis, and obtains a resulting CGImageRef; it then transcodes this resulting CGImageRef to
image data in a format that matches the MIME type of the source image, and replaces the controlled image using
this image data via the override pasteboard.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::handleImageServiceClick):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::replaceWithPasteboardData):

Move the current selection to surround the element identified by the given ElementContext, and then call into
replaceSelectionWithPasteboardData to perform the replacement.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleImageServiceClick):

Additionally compute and send the controlled image MIME type and its element context.

1:17 AM Changeset in webkit [289881] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Reset GPU Process TestExpectations after accelerated drawing is enabled.

  • gpu-process/TestExpectations:
1:14 AM Changeset in webkit [289880] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed gardening.

  • css3/calc/block-mask-overlay-image-outset.html: Expand pixel range for GPU Process.
  • fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html: Add fuzzy data for GPU Process.
  • svg/clip-path/clip-path-line-use-before-defined.svg: Add fuzzy data for all bots.

Feb 15, 2022:

10:53 PM Changeset in webkit [289879] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Constructing untaken LOG(Channel, ...) arguments slow debug binaries down
​https://bugs.webkit.org/show_bug.cgi?id=235562

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-15
Reviewed by Simon Fraser.

Speed up debug build binary LOG(Channel, ...) by checking the
channel (and level) before constructing the log arguments.
This is consistent with how RELEASE_LOG() works.

If the arguments are slow to create, call sites end up implementing
this at the call site and risk subtle bugs which make existing logging unreliable.

Fixes a bug with LOG_WITH_STREAM where ChannelState::OnWithAccumulation channels would not log.

  • wtf/Assertions.h:
10:48 PM Changeset in webkit [289878] by sihui_liu@apple.com
  • 20 edits
    1 add in trunk

Migrate IndexedDB and LocalStorage data to GeneralStorageDirectory
​https://bugs.webkit.org/show_bug.cgi?id=236611

Reviewed by Chris Dumez.

Source/WebKit:

Reviewed by Chris Dumez.

Add a new parameter shouldUseCustomStoragePaths on WebsiteDataStoreConfiguration to specify whether WebKit
should use custom storage paths. If the value is true, WebKit will keep using the custom localStorageDirectory
and indexedDBDatabaseDirectory paths as it is now. If the value is false, WebKit will migrate data from
localStorageDirectory and indexedDBDatabaseDirectory to new paths set by WebKit under generalStorageDirectory.

API test: WebKit.MigrateLocalStorageDataToGeneralStorageDirectory

WebKit.MigrateIndexedDBDataToGeneralStorageDirectory

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::addWebsiteDataStore):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::addStorageManagerSession):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/storage/LocalStorageManager.cpp:

(WebKit::LocalStorageManager::localStorageFilePath):

  • NetworkProcess/storage/LocalStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::create):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::originDirectoryPath):
(WebKit::originFilePath):
(WebKit::NetworkStorageManager::localOriginStorageManager):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::StorageBucket):
(WebKit::OriginStorageManager::StorageBucket::localStorageManager):
(WebKit::OriginStorageManager::StorageBucket::idbStorageManager):
(WebKit::OriginStorageManager::StorageBucket::isEmpty):
(WebKit::OriginStorageManager::StorageBucket::moveData):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath):
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromDisk):
(WebKit::OriginStorageManager::StorageBucket::deleteLocalStorageData):
(WebKit::OriginStorageManager::StorageBucket::deleteIDBStorageData):
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::originFileIdentifier):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::defaultBucket):
(WebKit::OriginStorageManager::quotaManager):
(WebKit::OriginStorageManager::StorageBucket::isEmpty const): Deleted.

  • NetworkProcess/storage/OriginStorageManager.h:
  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):

  • Shared/WebsiteDataStoreParameters.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration shouldUseCustomStoragePaths]):
(-[_WKWebsiteDataStoreConfiguration setShouldUseCustomStoragePaths:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::shouldUseCustomStoragePaths const):
(WebKit::WebsiteDataStoreConfiguration::setShouldUseCustomStoragePaths):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/general-storage-directory.salt: Added.
10:12 PM Changeset in webkit [289877] by mark.lam@apple.com
  • 3 edits
    2 adds in trunk

Defer TerminationsExceptions while in operationMaterializeObjectInOSR.
​https://bugs.webkit.org/show_bug.cgi?id=236686
rdar://81337114

Reviewed by Saam Barati.

JSTests:

These tests are identical except that they are customized with different watchdog
timeout periods for a Debug / Release build. This is a necessary condition in
order for the test to manifest this issue if the code is regressed.

  • stress/termination-exception-in-operationMaterializeObjectInOSR-debug.js: Added.
  • stress/termination-exception-in-operationMaterializeObjectInOSR-release.js: Added.

Source/JavaScriptCore:

operationMaterializeObjectInOSR expects to always succeed. It is difficult (and
not worth the effort) to make it be able to handle interruptions by the
TerminationException. Since operationMaterializeObjectInOSR is guaranteed to
finish running in some finite time, it is reasonable to just defer handling a
pending TerminationException until the function returns.

  • ftl/FTLOperations.cpp:

(JSC::FTL::JSC_DEFINE_JIT_OPERATION):

9:27 PM Changeset in webkit [289876] by Nikos Mouchtaris
  • 16 edits in trunk

Implement parsing and animation support for offset shorthand
​https://bugs.webkit.org/show_bug.cgi?id=233109

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/motion/animation/offset-interpolation-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-parsing-valid-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-parsing-valid.html:
  • web-platform-tests/css/motion/parsing/offset-shorthand-expected.txt:

Source/WebCore:

This patch implements support for the offset shorthand for css motion path. This involves
adding the offset property to CSSProperties.json, the introduction of consumeOffset() to
parse the set offset, and serialization of the offset values.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::CSSPropertyIDToIDLAttributeName):
(WebCore::IDLAttributeNameToAnimationPropertyName):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForOffsetShorthand):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSOffsetRotateValue.cpp:

(WebCore::CSSOffsetRotateValue::initialValue):
(WebCore::CSSOffsetRotateValue::isInitialValue const):

  • css/CSSOffsetRotateValue.h:
  • css/CSSProperties.json:
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::offsetValue const):

  • css/StyleProperties.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBasicShapeOrBox):
(WebCore::CSSPropertyParser::consumeOffset):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
9:20 PM Changeset in webkit [289875] by Patrick Angle
  • 4 edits in trunk/Source/WebKit

Web Inspector: [Cocoa] Reentrancy in WebKit::WebInspectorUIProxy::open
​https://bugs.webkit.org/show_bug.cgi?id=236672

Reviewed by Devin Rousso.

Speculative fix for non-reproducible reentrancy. Because WebInspectorUIProxy::open calls
WebInspectorUIProxy::platformBringToFront, which under some conditions can call WebInspectorUIProxy::open,
there was an opportunity for recurssion. This appears to happen when the window of the inspector view does not
match the window of the inspected web view, which in general should not be possible for a newly opened
inspector. My suspicion is that the web view is not actually attached to a window at the time the inspector is
being opened. This patch adds a fail-safe that will detach the inspector view into its own window when these
conditions are met while we are in middle of opening the inspector, and also adds logging to indicate if the
inspected web view was actually in a window. This should both prevent the crash from the re-entry as well as
provide more context when the issue does occur.

  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::open):

  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformBringToFront):

8:11 PM Changeset in webkit [289874] by Russell Epstein
  • 1 copy in tags/Safari-614.1.3.2

Tag Safari-614.1.3.2.

8:09 PM Changeset in webkit [289873] by Russell Epstein
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.2

8:05 PM Changeset in webkit [289872] by Chris Dumez
  • 34 edits
    2 copies
    3 adds
    1 delete in trunk/Source

Do preliminary work to pass domain names to CoreLocation
​https://bugs.webkit.org/show_bug.cgi?id=236566
<rdar://88761413>

Reviewed by Darin Adler.

Source/WebCore:

Do preliminary work to pass domain names to CoreLocation when using the Geolocation API.
This pipes the domain names all the way from the Geolocation API to the CoreLocation calls
but doesn't yet pass the domain to CoreLocation due to <rdar://88834301>. I will follow-up
once <rdar://88834301> is fixed.

  • Modules/geolocation/GeolocationClient.h:
  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::didNavigatePage):
(WebCore::GeolocationController::addObserver):
(WebCore::GeolocationController::removeObserver):
(WebCore::GeolocationController::activityStateDidChange):
(WebCore::GeolocationController::startUpdatingIfNecessary):
(WebCore::GeolocationController::stopUpdatingIfNecessary):

  • Modules/geolocation/GeolocationController.h:

(WebCore::GeolocationController::needsHighAccuracy const):

  • Modules/geolocation/GeolocationPositionData.h:
  • Modules/geolocation/ios/GeolocationPositionDataIOS.mm:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:

(WebCore::Page::didCommitLoad):

  • platform/cocoa/CoreLocationGeolocationProvider.h: Copied from Source/WebCore/Modules/geolocation/GeolocationClient.h.
  • platform/cocoa/CoreLocationGeolocationProvider.mm: Added.

(isAuthorizationGranted):
(-[WebCLLocationManager initWithWebsiteIdentifier:client:]):
(-[WebCLLocationManager dealloc]):
(-[WebCLLocationManager start]):
(-[WebCLLocationManager stop]):
(-[WebCLLocationManager setEnableHighAccuracy:]):
(-[WebCLLocationManager requestGeolocationAuthorization]):
(-[WebCLLocationManager locationManagerDidChangeAuthorization:]):
(-[WebCLLocationManager locationManager:didUpdateLocations:]):
(-[WebCLLocationManager locationManager:didFailWithError:]):
(WebCore::CoreLocationGeolocationProvider::CoreLocationGeolocationProvider):
(WebCore::CoreLocationGeolocationProvider::~CoreLocationGeolocationProvider):
(WebCore::CoreLocationGeolocationProvider::start):
(WebCore::CoreLocationGeolocationProvider::stop):
(WebCore::CoreLocationGeolocationProvider::setEnableHighAccuracy):
(WebCore::CoreLocationGeolocationProvider::requestAuthorization):

  • platform/mock/GeolocationClientMock.cpp:

(WebCore::GeolocationClientMock::startUpdating):

  • platform/mock/GeolocationClientMock.h:

Source/WebKit:

Do preliminary work to pass domain names to CoreLocation when using the Geolocation API.
This pipes the domain names all the way from the Geolocation API to the CoreLocation calls
but doesn't yet pass the domain to CoreLocation due to <rdar://88834301>. I will follow-up
once <rdar://88834301> is fixed.

  • SourcesCocoa.txt:
  • UIProcess/API/C/WKGeolocationManager.cpp:

(WKGeolocationManagerSetProvider):

  • UIProcess/Cocoa/WebGeolocationManagerProxyCocoa.cpp: Added.

(WebKit::WebGeolocationManagerProxy::positionChanged):
(WebKit::WebGeolocationManagerProxy::errorOccurred):
(WebKit::WebGeolocationManagerProxy::resetGeolocation):
(WebKit::WebGeolocationManagerProxy::isUpdating const):
(WebKit::WebGeolocationManagerProxy::isHighAccuracyEnabled const):
(WebKit::WebGeolocationManagerProxy::providerStartUpdating):
(WebKit::WebGeolocationManagerProxy::providerStopUpdating):
(WebKit::WebGeolocationManagerProxy::providerSetEnabledHighAccuracy):

  • UIProcess/WebGeolocationManagerProxy.cpp:

(WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
(WebKit::WebGeolocationManagerProxy::processPoolDestroyed):
(WebKit::WebGeolocationManagerProxy::processDidClose):
(WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
(WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
(WebKit::WebGeolocationManagerProxy::startUpdating):
(WebKit::WebGeolocationManagerProxy::stopUpdating):
(WebKit::WebGeolocationManagerProxy::setEnableHighAccuracy):
(WebKit::WebGeolocationManagerProxy::setProvider):
(WebKit::WebGeolocationManagerProxy::isUpdating const):
(WebKit::WebGeolocationManagerProxy::isHighAccuracyEnabled const):
(WebKit::WebGeolocationManagerProxy::providerStartUpdating):
(WebKit::WebGeolocationManagerProxy::providerStopUpdating):
(WebKit::WebGeolocationManagerProxy::providerSetEnabledHighAccuracy):
(WebKit::WebGeolocationManagerProxy::resetPermissions): Deleted.
(WebKit::WebGeolocationManagerProxy::removeRequester): Deleted.

  • UIProcess/WebGeolocationManagerProxy.h:

(WebKit::WebGeolocationManagerProxy::lastPosition const): Deleted.
(WebKit::WebGeolocationManagerProxy::isUpdating const): Deleted.
(WebKit::WebGeolocationManagerProxy::isHighAccuracyEnabled const): Deleted.

  • UIProcess/WebGeolocationManagerProxy.messages.in:
  • UIProcess/ios/WKGeolocationProviderIOS.mm:

(-[WKGeolocationProviderIOS _startUpdating]):
(-[WKGeolocationProviderIOS _stopUpdating]):
(-[WKGeolocationProviderIOS _setEnableHighAccuracy:]):
(-[WKGeolocationProviderIOS initWithProcessPool:]):
(-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:completionHandler:view:]):
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
(-[WKGeolocationProviderIOS positionChanged:]):
(-[WKGeolocationProviderIOS errorOccurred:]):
(-[WKGeolocationProviderIOS resetGeolocation]):
(startUpdatingCallback): Deleted.
(stopUpdatingCallback): Deleted.
(setEnableHighAccuracy): Deleted.
(-[WKLegacyCoreLocationProvider setListener:]): Deleted.
(-[WKLegacyCoreLocationProvider requestGeolocationAuthorization]): Deleted.
(-[WKLegacyCoreLocationProvider start]): Deleted.
(-[WKLegacyCoreLocationProvider stop]): Deleted.
(-[WKLegacyCoreLocationProvider setEnableHighAccuracy:]): Deleted.
(-[WKLegacyCoreLocationProvider geolocationAuthorizationGranted]): Deleted.
(-[WKLegacyCoreLocationProvider geolocationAuthorizationDenied]): Deleted.
(-[WKLegacyCoreLocationProvider positionChanged:]): Deleted.
(-[WKLegacyCoreLocationProvider errorOccurred:]): Deleted.
(-[WKLegacyCoreLocationProvider resetGeolocation]): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Geolocation/WebGeolocationManager.cpp:

(WebKit::registrableDomainForPage):
(WebKit::WebGeolocationManager::registerWebPage):
(WebKit::WebGeolocationManager::unregisterWebPage):
(WebKit::WebGeolocationManager::setEnableHighAccuracyForPage):
(WebKit::WebGeolocationManager::didChangePosition):
(WebKit::WebGeolocationManager::didFailToDeterminePosition):
(WebKit::WebGeolocationManager::resetPermissions):
(WebKit::WebGeolocationManager::isUpdating const): Deleted.
(WebKit::WebGeolocationManager::isHighAccuracyEnabled const): Deleted.

  • WebProcess/Geolocation/WebGeolocationManager.h:
  • WebProcess/Geolocation/WebGeolocationManager.messages.in:
  • WebProcess/WebCoreSupport/WebGeolocationClient.cpp:

(WebKit::WebGeolocationClient::startUpdating):

  • WebProcess/WebCoreSupport/WebGeolocationClient.h:

(WebKit::WebGeolocationClient::WebGeolocationClient): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::resetAllGeolocationPermissions): Deleted.

  • WebProcess/WebProcess.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebGeolocationClient.h:
  • WebCoreSupport/WebGeolocationClient.mm:

(WebGeolocationClient::startUpdating):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebGeolocationClient.cpp:

(WebGeolocationClient::startUpdating):

  • WebCoreSupport/WebGeolocationClient.h:

Source/WTF:

Add build time flag for passing website identifiers to CoreLocation.

  • wtf/PlatformHave.h:
5:55 PM Changeset in webkit [289871] by Robert Jenner
  • 2 edits in trunk/LayoutTests

http/tests/history/back-with-fragment-change.php fails.
​https://bugs.webkit.org/show_bug.cgi?id=68278

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-15

  • platform/mac-wk2/TestExpectations: Remarking flaky expectation.
5:47 PM Changeset in webkit [289870] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add a new rule to decide if a font is used only for icons
​https://bugs.webkit.org/show_bug.cgi?id=236660
rdar://84829499

Reviewed by Wenson Hsieh.

Add check for more characters to avoid incorrectly tagging certain fonts as symbol-only.

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::hasGlyphsForCharacterRange):
(WebCore::Font::isProbablyOnlyUsedToRenderIcons const):

5:40 PM Changeset in webkit [289869] by mmaxfield@apple.com
  • 7 edits in trunk/LayoutTests

[ iOS ] fast/text/ch-unit-synthetic-bold.html is failing constantly on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236610

Turns out iOS doesn't have Monaco. It's fine though; we can use local() to create
a font that doesn't have a bold family member.

Unreviewed.

  • fast/text/ch-unit-synthetic-bold-expected.html:
  • fast/text/ch-unit-synthetic-bold.html:
  • fast/text/tab-width-synthetic-bold-complex-expected.html:
  • fast/text/tab-width-synthetic-bold-complex.html:
  • fast/text/tab-width-synthetic-bold-expected.html:
  • fast/text/tab-width-synthetic-bold.html:
5:35 PM Changeset in webkit [289868] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • css3/masking/clip-path-inset-corners.html: Add fuzzy data.
5:34 PM Changeset in webkit [289867] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fix WordPress wpautop to account for the Dialog element.
​https://bugs.webkit.org/show_bug.cgi?id=236320

Reviewed by Darin Adler.

  • wp-content/themes/webkit/functions.php:
5:25 PM Changeset in webkit [289866] by beidson@apple.com
  • 7 edits
    2 adds in trunk

Implement ServiceWorkerRegistration.getNotifications().
​https://bugs.webkit.org/show_bug.cgi?id=236545

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/workers/service/getnotifications.html

Until we figure out just how "persistent" we want persistent notifications from service workers to be,
this is an impementation of getNotifications() that works for the current running of the user agent.

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):
(WebCore::Notification::~Notification):
(WebCore::Notification::copyForGetNotifications const):
(WebCore::Notification::contextDestroyed):
(WebCore::Notification::close):

  • Modules/notifications/Notification.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::getNotifications):
(WebCore::ServiceWorkerRegistration::addNotificationToList):
(WebCore::ServiceWorkerRegistration::removeNotificationFromList):
(WebCore::ServiceWorkerRegistration::filteredNotificationList):

  • workers/service/ServiceWorkerRegistration.h:

LayoutTests:

  • http/tests/workers/service/getnotifications-expected.txt: Added.
  • http/tests/workers/service/getnotifications.html: Added.
  • http/tests/workers/service/resources/shownotification-worker.js:

(async tryShow):
(async getNotes):
(async event):

4:51 PM Changeset in webkit [289865] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

fast/filter-image/filter-image-svg.html is failing to load the image due to a wrong path
​https://bugs.webkit.org/show_bug.cgi?id=236632

Reviewed by Simon Fraser.

This test case had the following CSS.

background-image: filter(url(image.svg), url(#filter));

However, 'image.svg' doesn't exist. DRT and WTR unexpectedly
loaded the missing image icon and applied the filter. It should be
'resources/image.svg'.

  • fast/filter-image/filter-image-svg.html:
4:44 PM Changeset in webkit [289864] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION(r289495): [ Monterey arm64 ] model-element/model-element-ready.html is a flaky assertion failure.
​https://bugs.webkit.org/show_bug.cgi?id=236678

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-15

  • platform/mac-wk2/TestExpectations:
4:42 PM Changeset in webkit [289863] by mark.lam@apple.com
  • 13 edits in trunk

Make HeapType an enum class.
​https://bugs.webkit.org/show_bug.cgi?id=236667
<rdar://problem/88984607>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • dynbench.cpp:
  • heap/Heap.cpp:
  • heap/Heap.h:
  • jsc.cpp:

(runJSC):

  • runtime/VM.cpp:

(JSC::VM::sharedInstance):

  • runtime/VM.h:
  • testRegExp.cpp:

(realMain):

Source/WebCore:

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):

Tools:

  • TestWebKitAPI/Tests/JavaScriptCore/DisallowVMEntry.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/JavaScriptCore/PropertySlot.cpp:

(TestWebKitAPI::TEST):

4:26 PM Changeset in webkit [289862] by Nikos Mouchtaris
  • 7 edits in trunk

[css-transforms] properly handle interpolation of non-invertible matrices
​https://bugs.webkit.org/show_bug.cgi?id=236480

Reviewed by Martin Robinson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

All composition types should fall back to discrete animation behavior when
interpolating non-invertible matrices. Need to segment progress value
depending on either side of 0.5.

  • platform/graphics/transforms/TransformOperations.cpp:

(WebCore::TransformOperations::shouldFallbackToDiscreteAnimation const):
(WebCore::TransformOperations::blendByMatchingOperations const):
(WebCore::TransformOperations::blendByUsingMatrixInterpolation const):

  • platform/graphics/transforms/TransformOperations.h:

(WebCore::TransformOperations::hasMatrixOperation const):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::blend):

4:26 PM Changeset in webkit [289861] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.0.3

Tag Safari-613.1.17.0.3.

4:04 PM Changeset in webkit [289860] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Fixes for build-webkit --minimal
​https://bugs.webkit.org/show_bug.cgi?id=229780

Patch by Philip Chimento <​pchimento@igalia.com> on 2022-02-15
Reviewed by Don Olmstead.

Source/WebCore:

Covered by existing tests.

Missing headers that didn't get included by other headers if certain
options were disabled; missing ifdef guards around usage of features.

  • html/ColorInputType.cpp: Missing include
  • page/DOMWindow.cpp: Missing include; fix pre-existing include order issue flagged by check-style
  • platform/UserAgentQuirks.cpp: Missing ENABLE(PUBLIC_SUFFIX_LIST) and slight rewrite of code for the #else case

(WebCore::UserAgentQuirks::quirksForURL):

  • platform/network/soup/NetworkStorageSessionSoup.cpp: Missing ENABLE(INTELLIGENT_TRACKING_PREVENTION)

(WebCore::NetworkStorageSession::setCookieAcceptPolicy):

  • rendering/RenderLayerCompositor.cpp: Missing ENABLE(ASYNC_SCROLLING)

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):

Source/WebKit:

Missing headers that didn't get included by other headers if certain
options were disabled; missing ifdef guards around usage of features.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp: Missing ENABLE(PUBLIC_SUFFIX_LIST), duplicate line in order to avoid semicolon by itself on a line which check-style doesn't like

(WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const):

  • Shared/API/glib/WebKitContextMenuActions.cpp: Missing include
  • UIProcess/API/gtk/WebKitWebViewBase.cpp: Missing ENABLE(FULLSCREEN_API)

(webkitWebViewBaseDispose):

  • UIProcess/gtk/PointerLockManagerWayland.cpp: Missing include
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: Missing ENABLE(USER_MESSAGE_HANDLERS)

(webkit_dom_dom_window_webkit_message_handlers_post_message):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: Several instances of missing ENABLE(FULLSCREEN_API). The public API methods just do nothing if not compiled with fullscreen support.

(webkit_dom_document_webkit_cancel_fullscreen):
(webkit_dom_document_webkit_exit_fullscreen):
(webkit_dom_document_get_webkit_is_fullscreen):
(webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed):
(webkit_dom_document_get_webkit_current_fullscreen_element):
(webkit_dom_document_get_webkit_fullscreen_enabled):
(webkit_dom_document_get_webkit_fullscreen_element):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: Missing ENABLE(FULLSCREEN_API)

(webkit_dom_element_webkit_request_fullscreen):

  • WebProcess/WebPage/EventDispatcher.cpp: Two instances of missing ENABLE(ASYNC_SCROLLING)

(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::notifyScrollingTreesDisplayWasRefreshed):

  • WebProcess/WebPage/EventDispatcher.h: Missing ENABLE(ASYNC_SCROLLING)
  • WebProcess/WebPage/glib/WebPageGLib.cpp: Missing ENABLE(AUTOCAPITALIZE)

(WebKit::inputMethodSateForElement):

3:59 PM Changeset in webkit [289859] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Skip positioned objects and line break boxes as they have no affect on width
​https://bugs.webkit.org/show_bug.cgi?id=236514

Patch by Brandon Stewart <Brandon> on 2022-02-15
Reviewed by Myles C. Maxfield.

Align computeInlineDirectionPositionsForSegment() and computeExpansionForJustifiedText() logic.
Skipping positioned objects and line break boxes as they will not affect the width.

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::computeExpansionForJustifiedText):

3:56 PM Changeset in webkit [289858] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add access to mach service in the Networking process for all users
​https://bugs.webkit.org/show_bug.cgi?id=236653
<rdar://88787266>

Reviewed by Brent Fulgham.

We currently allow access to "com.apple.trustd" for the root user. Access to this service is needed for all users.
This issue was introduced in ​https://trac.webkit.org/changeset/283012/webkit, and this patch also reverts this
change for older versions of macOS.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
3:09 PM Changeset in webkit [289857] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.3

Tag Safari-613.1.17.1.3.

3:09 PM Changeset in webkit [289856] by Jonathan Bedard
  • 12 edits in trunk/Tools

[webkitscmpy] Support draft pull-requests
​https://bugs.webkit.org/show_bug.cgi?id=235721
<rdar://problem/88139678>

Rubber-stamped by Aakash Jain.

GitHub has the concept of a "draft" pull request. Our tooling should allow users
to request that the pull request they are updating or creating be converted to a draft.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.request): Handle "draft" in upload.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser): Add --draft option.
(PullRequest.main): When creating or uploading a pull-request, set draft state.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest.init): Pass draft state.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.PRGenerator.PullRequest): Pass draft state to PullRequest object.
(BitBucket.PRGenerator.create): Accept draft flag.
(BitBucket.PRGenerator.update): Ditto.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator): Draft pull requests are a GitHub idea.
(GitHub.PRGenerator.PullRequest): Pass draft state to PullRequest object.
(GitHub.PRGenerator.create): Accept draft flag.
(GitHub.PRGenerator.update): Ditto.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:

(Scm.PRGenerator): Draft pull requests are a GitHub idea.
(Scm.PRGenerator.create): Accept draft flag.
(Scm.PRGenerator.update): Ditto.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

Canonical link: ​https://commits.webkit.org/247298@main

3:05 PM Changeset in webkit [289855] by Fujii Hironori
  • 5 edits
    1 add in trunk

[TextureMapperGL] drop-shadow filter with blur-radius doesn't work as expected if it is the last filter
​https://bugs.webkit.org/show_bug.cgi?id=236407

Reviewed by Don Olmstead.

Source/WebCore:

BitmapTextureGL::applyFilters doesn't actually apply the last filter
and returns a texture by saving the last filter information in
m_filterInfo. Then, TextureMapperGL::drawTexture will actually apply
the last filter while drawing the texture.

TextureMapperGL::drawTexture shouldn't use
TextureMapperShaderProgram::TextureRGB option if the BitmapTextureGL
has m_filterInfo.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexture):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

AlphaBlur and ContentTexture filters should be applied before Opacity filter.

LayoutTests:

  • platform/wincairo/css3/filters/effect-drop-shadow-hw-expected.png: Added.
  • platform/wincairo/css3/filters/effect-drop-shadow-hw-expected.txt:
2:51 PM Changeset in webkit [289854] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support PRs when sending build failure emails (Follow-up fix)
​https://bugs.webkit.org/show_bug.cgi?id=235926
<rdar://problem/88302122>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHub.email_for_owners): Return error string.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Log error
from email_from_owners to buildbot stdio.

Canonical link: ​https://commits.webkit.org/247296@main

2:46 PM Changeset in webkit [289853] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(r287249): [ Monterey wk2 ] media/media-source/media-webm-vorbis-partial.html is a constant text failure
​https://bugs.webkit.org/show_bug.cgi?id=236656

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-15

  • platform/mac-wk2/TestExpectations:
2:00 PM Changeset in webkit [289852] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Unreviewed build fix after r288478.
​https://bugs.webkit.org/show_bug.cgi?id=235542
rdar://72567903

  • TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm:
1:57 PM Changeset in webkit [289851] by Wenson Hsieh
  • 23 edits in trunk

[macOS] Add a context menu item to "Copy Cropped Image"
​https://bugs.webkit.org/show_bug.cgi?id=236602
rdar://88924479

Reviewed by Megan Gardner.

Source/WebCore:

Add ContextMenuItemTagCopyCroppedImage, and handle it in various context menu codepaths throughout WebCore.

  • loader/EmptyClients.cpp:
  • page/ContextMenuClient.h:

Add a client hook to allow us to disable this item in WebKitLegacy, but enable it in the modern WebKit port.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):

Insert this new item, adjacent to the existing "Copy Image" item.

(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:

Add a new context menu item tag for ContextMenuItemTagCopyCroppedImage; additionally, add a new special tag,
ContextMenuItemLastNonCustomTag, that will always point to the last non-custom (engine-supported) context menu
item in this enumeration. This makes it so that we can stop fiddling with the API test
WebCore.ContextMenuAction_IsValidEnum every time we add a new context menu type, as long as we update the
ContextMenuItemLastNonCustomTag.

  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

Pull the localized string for "Copy Cropped Image" out into a separate localized string helper function.

(WebCore::contextMenuItemTagCopyCroppedImage):

Source/WebKit:

Add support for a new context menu item that invokes markup when copying an image. See below for more details.

  • Shared/API/c/WKContextMenuItemTypes.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

Handle the new context menu enum tag.

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):
(WebKit::WebHitTestResultData::encode const):
(WebKit::WebHitTestResultData::decode):

  • Shared/WebHitTestResultData.h:

Add a new sourceImageMIMEType member that provides the original MIME type of the source image corresponding to
the image bitmap in WebHitTestResultData. We use this below, in handleContextMenuCopyCroppedImage.

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

Replace the localized string macro with a call to the new localized string helper function.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):

Handle the new context menu item action by calling into requestImageAnalysisMarkup and writing the result
to the pasteboard (transcoding back to the MIME type of the source image, if possible).

  • WebProcess/WebCoreSupport/WebContextMenuClient.h:

Source/WebKitLegacy/mac:

See WebCore and WebKit ChangeLogs for more details.

  • WebCoreSupport/WebContextMenuClient.h:
  • WebView/WebHTMLView.mm:

(toTag):

Tools:

Adjust an existing API test to account for the fact that ContextMenuItemTagTranslate is no longer the last non-
custom context menu item tag.

  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp:

(TestWebKitAPI::TEST):

1:51 PM Changeset in webkit [289850] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Copy PDF.js in WebCore.framework bundle at build-time
​https://bugs.webkit.org/show_bug.cgi?id=235981

Reviewed by Alexey Proskuryakov.

This adds the Source/ThirdParty/pdfjs folder as a folder resource. Adds a installsrc step in the
WebCore makefile to make sure XCode finds the folder in production builds.

  • Makefile:
  • WebCore.xcodeproj/project.pbxproj:
1:43 PM Changeset in webkit [289849] by Russell Epstein
  • 3 edits
    2 deletes in branches/safari-613.1.17.0-branch

Revert r289828. rdar://problem/88656665

1:43 PM Changeset in webkit [289848] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo][WK2] animations/background-position.html is timing out
​https://bugs.webkit.org/show_bug.cgi?id=236630

Reviewed by Don Olmstead.

WKPageForceRepaint didn't call back if the page had active
animations.

  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::didUpdate): Call
m_forceRepaintCompletionHandler even if
m_hasDeferredRenderingUpdate is true.

1:25 PM Changeset in webkit [289847] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Use EWS as committer when rebasing
​https://bugs.webkit.org/show_bug.cgi?id=236650
<rdar://problem/88967428>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(CheckOutPullRequest): Use 'EWS <​ews@webkit.org>' as the committer.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247290@main

1:14 PM Changeset in webkit [289846] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/88893789

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:14 PM Changeset in webkit [289845] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r289776. rdar://problem/88656665

Fix crash with deeply nested async overflow scroll
​https://bugs.webkit.org/show_bug.cgi?id=236599
Source/WebCore:

rdar://88656665

Reviewed by Alan Bujtas.

mergeClippingScopesRecursive() already does the append of the rects; doing so
before calling recursing triggers double appends, hence exponentially growing
rect lists.

Test: compositing/layer-creation/clipping-scope/deeply-nested-overflow.html

  • rendering/LayerOverlapMap.cpp: (WebCore::OverlapMapContainer::mergeClippingScopesRecursive):

LayoutTests:

Reviewed by Alan Bujtas.

  • compositing/layer-creation/clipping-scope/deeply-nested-overflow-expected.txt: Added.
  • compositing/layer-creation/clipping-scope/deeply-nested-overflow.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:14 PM Changeset in webkit [289844] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r289762. rdar://problem/88786989

REGRESSION(r286560): MediaElement's getStartDate returning an incorrect time
​https://bugs.webkit.org/show_bug.cgi?id=236360
<rdar://problem/88786989>

Reviewed by Eric Carlson.

r286560 changed IDL Date to use WallTime instead of a raw double, meaning that
HTMLMediaElement::getStartDate now did extra processing of the MediaTime returned by
MediaPlayer::getStartDate.

Unfortunately, MediaPlayerPrivateAVFoundationObjC::getStartDate returned a MediaTime
represented in milliseconds (due to two * 1000), even though MediaTime is supposed to be
seconds-based.

As a result, the changes in r286560 inadvertently caused two * 1000 on the same time value.

Covered by existing test (LayoutTests/http/tests/media/hls/video-controller-getStartDate.html).
Note that the test was marked as [Pass Failure] before r286560.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:14 PM Changeset in webkit [289843] by Russell Epstein
  • 40 edits
    1 delete in branches/safari-613-branch/Source

Revert r289340. rdar://problem/88629773

1:14 PM Changeset in webkit [289842] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Revert r289343. rdar://problem/88629773

1:13 PM Changeset in webkit [289841] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] --update should be synonomous with --rebase
​https://bugs.webkit.org/show_bug.cgi?id=236658
<rdar://problem/88979674>

Reviewed by Ryan Haddad.

When working on a branch, update and rebase mean approximately
the same thing. git-webkit pr should support both.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser):

Canonical link: ​https://commits.webkit.org/247289@main

1:06 PM Changeset in webkit [289840] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Redirect shadow realm console output to page's ConsoleClient
​https://bugs.webkit.org/show_bug.cgi?id=236518

Patch by Joseph Griego <​jgriego@igalia.com> on 2022-02-15
Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/shadow-realm-console.html

Without this patch, the newly-created shadow realm global object would
not have a console client; we want the console output from the shadow
realm's context to go to the inspector, too.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::deriveShadowRealmGlobalObject): Copy console client from source JSDOMGlobalObject to new shadow realm's global object.

LayoutTests:

Add tests to verify that (nested) shadow realm contexts still output to
the parent page's inspector; fix one changed test.

  • inspector/shadow-realm-console-expected.txt: Added.
  • inspector/shadow-realm-console.html: Added.
  • js/ShadowRealm-importValue-expected.txt: Added console line that had previously been blackholed
12:47 PM Changeset in webkit [289839] by Wenson Hsieh
  • 7 edits in trunk/Source/WebCore

Refactor logic for writing selected text in image overlays to the pasteboard
​https://bugs.webkit.org/show_bug.cgi?id=236546
rdar://83173693

Reviewed by Megan Gardner.

Refactor logic for copying text in image overlays to use Editor::writeSelection, as opposed to extracting a
string from the current selection range and directly writing it to the pasteboard as plain text. See below for
more details.

  • dom/ImageOverlay.cpp:

Add a couple of new ImageOverlay-namespaced helper functions.

(WebCore::ImageOverlay::characterRange):

Add a function to return the character range for the given selection inside an image overlay (or std::nullopt
if the selection is not inside of an image overlay).

(WebCore::ImageOverlay::isInsideOverlay):

Add a function to determine whether or not the given selection is inside of an image overlay.

  • dom/ImageOverlay.h:
  • editing/Editor.cpp:

(WebCore::Editor::performCutOrCopy):

Refactor this to use writeSelectionToPasteboard() when the current selection is inside an image overlay.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

Intentionally return the null string for image overlays.

(WebCore::selectionInImageOverlayAsAttributedString):
(WebCore::selectionAsAttributedString):

Add a special codepath when serializing selected text in image overlays such that we consult the image element's
TextRecognitionResult for the attributed string to write to the pasteboard, given the selected CharacterRange in
the image overlay.

(WebCore::Editor::selectionInWebArchiveFormat):

Intentionally return null for image overlays.

  • page/Page.cpp:

(WebCore::Page::cachedTextRecognitionResult const):

Add a helper method to retrieve a cached TextRecognitionResult, given a host image element.

  • page/Page.h:
11:14 AM Changeset in webkit [289838] by Antti Koivisto
  • 17 edits
    1 copy in trunk

[CSS Container Queries] Support all size features
​https://bugs.webkit.org/show_bug.cgi?id=236640

Reviewed by Tim Nguyen and Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:

Source/WebCore:

Support inline-size, block-size, aspect-ratio and orientation in addition to the currently
supported width and height.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/ContainerQuery.cpp: Copied from Source/WebCore/css/ContainerQuery.h.

(WebCore::CQ::FeatureNames::width):
(WebCore::CQ::FeatureNames::height):
(WebCore::CQ::FeatureNames::inlineSize):
(WebCore::CQ::FeatureNames::blockSize):
(WebCore::CQ::FeatureNames::aspectRatio):
(WebCore::CQ::FeatureNames::orientation):

  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeSizeFeature):

Parse the new features.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAspectRatio):

Use the new consumeAspectRatioValue helper.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeAspectRatioValue):

  • css/parser/CSSPropertyParserHelpers.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::computeSize):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

LayoutTests:

11:04 AM Changeset in webkit [289837] by pvollan@apple.com
  • 3 edits in trunk/Tools

REGRESSION(r289147): Two API tests are failing
​https://bugs.webkit.org/show_bug.cgi?id=236376
<rdar://88586730>

Reviewed by Alexey Proskuryakov.

After r289147, the WebContent process can no longer consume sandbox extensions to the CF preference daemon.
Update the test expectations.

  • TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit/GrantAccessToPreferencesService.mm:

(TEST):

11:02 AM Changeset in webkit [289836] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix internal Big Sur build

  • pal/spi/mac/HIToolboxSPI.h:
11:00 AM Changeset in webkit [289835] by Jonathan Bedard
  • 12 edits in trunk/Tools

git-webkit setup should verify the credentials before saving them
​https://bugs.webkit.org/show_bug.cgi?id=235298
<rdar://problem/87988794>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.credentials): Pass validater into webkitscmpy.credentials if caller requests validation.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.credentials): Pass validater into webkitscmpy.credentials if caller requests validation.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Allow caller to provide a callback which will validate credentials to ensure
they work, re-prompt user if credentials fail validation.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Request validation of GitHub credentials.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.credentials): Pass validation flag.

10:49 AM Changeset in webkit [289834] by Truitt Savell
  • 2 edits
    1 copy
    1 add in trunk/LayoutTests

Rebaslining fonts/monospace.html for Monterey.
​https://bugs.webkit.org/show_bug.cgi?id=236619

Unreviewed test gardening.

Patch by Matteo Flores <Matteo Flores> on 2022-02-15

  • platform/mac-catalina/fonts/monospace-expected.txt: Copied from LayoutTests/platform/mac/fonts/monospace-expected.txt.
  • platform/mac/fonts/monospace-expected.txt:
10:45 AM Changeset in webkit [289833] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/88893789

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:45 AM Changeset in webkit [289832] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289776. rdar://problem/88656665

Fix crash with deeply nested async overflow scroll
​https://bugs.webkit.org/show_bug.cgi?id=236599
Source/WebCore:

rdar://88656665

Reviewed by Alan Bujtas.

mergeClippingScopesRecursive() already does the append of the rects; doing so
before calling recursing triggers double appends, hence exponentially growing
rect lists.

Test: compositing/layer-creation/clipping-scope/deeply-nested-overflow.html

  • rendering/LayerOverlapMap.cpp: (WebCore::OverlapMapContainer::mergeClippingScopesRecursive):

LayoutTests:

Reviewed by Alan Bujtas.

  • compositing/layer-creation/clipping-scope/deeply-nested-overflow-expected.txt: Added.
  • compositing/layer-creation/clipping-scope/deeply-nested-overflow.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:45 AM Changeset in webkit [289831] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r289762. rdar://problem/88786989

REGRESSION(r286560): MediaElement's getStartDate returning an incorrect time
​https://bugs.webkit.org/show_bug.cgi?id=236360
<rdar://problem/88786989>

Reviewed by Eric Carlson.

r286560 changed IDL Date to use WallTime instead of a raw double, meaning that
HTMLMediaElement::getStartDate now did extra processing of the MediaTime returned by
MediaPlayer::getStartDate.

Unfortunately, MediaPlayerPrivateAVFoundationObjC::getStartDate returned a MediaTime
represented in milliseconds (due to two * 1000), even though MediaTime is supposed to be
seconds-based.

As a result, the changes in r286560 inadvertently caused two * 1000 on the same time value.

Covered by existing test (LayoutTests/http/tests/media/hls/video-controller-getStartDate.html).
Note that the test was marked as [Pass Failure] before r286560.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:45 AM Changeset in webkit [289830] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/88893789

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:45 AM Changeset in webkit [289829] by Russell Epstein
  • 40 edits
    1 delete in branches/safari-613.1.17.1-branch/Source

Revert r289340. rdar://problem/88629773

10:45 AM Changeset in webkit [289828] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289776. rdar://problem/88656665

Fix crash with deeply nested async overflow scroll
​https://bugs.webkit.org/show_bug.cgi?id=236599
Source/WebCore:

rdar://88656665

Reviewed by Alan Bujtas.

mergeClippingScopesRecursive() already does the append of the rects; doing so
before calling recursing triggers double appends, hence exponentially growing
rect lists.

Test: compositing/layer-creation/clipping-scope/deeply-nested-overflow.html

  • rendering/LayerOverlapMap.cpp: (WebCore::OverlapMapContainer::mergeClippingScopesRecursive):

LayoutTests:

Reviewed by Alan Bujtas.

  • compositing/layer-creation/clipping-scope/deeply-nested-overflow-expected.txt: Added.
  • compositing/layer-creation/clipping-scope/deeply-nested-overflow.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:45 AM Changeset in webkit [289827] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r289762. rdar://problem/88786989

REGRESSION(r286560): MediaElement's getStartDate returning an incorrect time
​https://bugs.webkit.org/show_bug.cgi?id=236360
<rdar://problem/88786989>

Reviewed by Eric Carlson.

r286560 changed IDL Date to use WallTime instead of a raw double, meaning that
HTMLMediaElement::getStartDate now did extra processing of the MediaTime returned by
MediaPlayer::getStartDate.

Unfortunately, MediaPlayerPrivateAVFoundationObjC::getStartDate returned a MediaTime
represented in milliseconds (due to two * 1000), even though MediaTime is supposed to be
seconds-based.

As a result, the changes in r286560 inadvertently caused two * 1000 on the same time value.

Covered by existing test (LayoutTests/http/tests/media/hls/video-controller-getStartDate.html).
Note that the test was marked as [Pass Failure] before r286560.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:45 AM Changeset in webkit [289826] by Russell Epstein
  • 40 edits
    1 delete in branches/safari-613.1.17.0-branch/Source

Revert r289340. rdar://problem/88629773

10:45 AM Changeset in webkit [289825] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Revert r289343. rdar://problem/88629773

10:45 AM Changeset in webkit [289824] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WebKit

Revert r289343. rdar://problem/88629773

10:33 AM Changeset in webkit [289823] by Elliott Williams
  • 3 edits in trunk/Source/JavaScriptCore

[Xcode] Remove "Make libWTF.a Symbolic Link" script phase
​https://bugs.webkit.org/show_bug.cgi?id=236613

Reviewed by Alexey Proskuryakov.

We pass the absolute path to libWTF.a to ld's -force_load argument. The path was being
computed at build time by a script, but can be expressed in build settings. Change
OTHER_LDFLAGS such that engineering builds libWTF.a from build products, and production
builds use libWTF.a from their SDK.

  • Configurations/JavaScriptCore.xcconfig: Set OTHER_LDFLAGS.
  • JavaScriptCore.xcodeproj/project.pbxproj: Remove build phase.
10:29 AM Changeset in webkit [289822] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3.1

Tag Safari-614.1.3.1.

10:28 AM Changeset in webkit [289821] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.3

10:26 AM Changeset in webkit [289820] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.3

10:23 AM Changeset in webkit [289819] by Adrian Perez de Castro
  • 4 edits in trunk

[CMake] Checks uses of execute_process() for correct command splitting
​https://bugs.webkit.org/show_bug.cgi?id=236366

Reviewed by Don Olmstead.

.:

  • Source/cmake/FindGObjectIntrospection.cmake: Remove macro _GIR_GET_PKGCONFIG_VAR, which used

execute_process(), in favor of pkg_get_variable(), which has been supported since CMake 3.4

Source/JavaScriptCore:

  • CMakeLists.txt: string(TIMESTAMP var "%s") has been supported since CMake 3.6, and given

that 3.12 is required we can use it instead of shelling out to run the "date" program.

10:05 AM Changeset in webkit [289818] by Megan Gardner
  • 15 edits
    1 add in trunk/Source

Source/WebCore:
Implement additional Reveal methods.
​https://bugs.webkit.org/show_bug.cgi?id=236627

Reviewed by Tim Horton.

Respond to protocol methods that instantiate a selection and request RVItems for a menu.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/EditingBehavior.h:

(WebCore::EditingBehavior::shouldSelectBasedOnDictionaryLookup const):

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::canCreateRevealItems):
(WebCore::showPopupOrCreateAnimationController):

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectClosestContextualWordFromHitTestResult):
(WebCore::EventHandler::selectClosestContextualWordOrLinkFromHitTestResult):
(WebCore::EventHandler::handleMousePressEventDoubleClick):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::selectClosestWordFromMouseEvent): Deleted.
(WebCore::EventHandler::selectClosestContextualWordFromMouseEvent): Deleted.
(WebCore::EventHandler::selectClosestContextualWordOrLinkFromMouseEvent): Deleted.

  • page/EventHandler.h:
  • page/cocoa/EventHandlerCocoa.mm: Added.

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):

Source/WebKit:
Implement additional Reveeal methods.
​https://bugs.webkit.org/show_bug.cgi?id=236627

Reviewed by Tim Horton.

Respond to protocol methods that instantiate a selection and request RVItems for a menu.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView prepareSelectionForContextMenuWithLocationInView:completionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::prepareSelectionForContextMenuWithLocationInView):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDictationContext):
(WebKit::WebPage::rvItemForCurrentSelection):
(WebKit::WebPage::requestRVItemInCurrentSelectedRange):
(WebKit::WebPage::prepareSelectionForContextMenuWithLocationInView):

9:03 AM Changeset in webkit [289817] by J Pascoe
  • 3 edits in trunk/Source/WebKit

Modify getAllLocalAuthenticatorCredentials according to internal requirements
​https://bugs.webkit.org/show_bug.cgi?id=236364
rdar://88585418

Reviewed by Brent Fulgham.

This patch modifies the getAllLocalAuthenticatorCredentials SPI to return additional
fields according to internal needs.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(updateCredentialIfNessesary):
(getAllLocalAuthenticatorCredentialsImpl):

8:03 AM Changeset in webkit [289816] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] Move WebPage::platformInitialize and WebPage::platformDetach() to WebPageGLib.cpp
​https://bugs.webkit.org/show_bug.cgi?id=236646

Reviewed by Adrian Perez de Castro.

It's duplicated code related to accessibility.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformDetach):

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize): Deleted.
(WebKit::WebPage::platformDetach): Deleted.

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformInitialize): Deleted.
(WebKit::WebPage::platformDetach): Deleted.

7:45 AM Changeset in webkit [289815] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Need /bin/sh equivalent on wincairo
​https://bugs.webkit.org/show_bug.cgi?id=236608
<rdar://problem/88926062>

Reviewed by Don Olmstead.

  • Tools/CISupport/ews-build/steps.py:

(ShellMixin.shell_command): Invoke provided command with
the system shell (either /bin/sh or cmd)
(ShellMixin.shell_exit_0): Trailing shell command ensuring
a 0 exit code regardless of the outcome of previous commands.
(ApplyPatch.start): Invoke command with cmd or /bin/sh/.
(CheckOutPullRequest.run): Ditto.
(CleanGitRepo.run): Ditto.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247276@main

7:42 AM Changeset in webkit [289814] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

Do not update the fragmented flow state while internally mutating the render tree
​https://bugs.webkit.org/show_bug.cgi?id=230896

Reviewed by Darin Adler.

RenderTree mutations (like those happening when creating/destroying anonymous blocks)
should not affect the fragment state of any renderer. This means that we should not have
to deal with things like creating/restoring placeholders/spanners while doing that.

There is already a IsInternalMove flag that is being used for that. Expand its usage
to a couple more methods to improve correctness.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::~LegacyRootInlineBox): Do not remove the inline box from
the ContainingFragmentMap if we're deleting the tree. It was causing ASSERTs trying to
retrieve the enclosing fragmented flow in some cases.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attachToRenderElementInternal): Use the RenderTreeBuilder's
m_internalTreeBuilding instead of the argument.
(WebCore::RenderTreeBuilder::move): Replace passing the IsInternalMove argument by a
scope where we don't update the fragmented flow state.
(WebCore::RenderTreeBuilder::detachFromRenderElement): Use the RenderTreeBuilder's
m_internalMovesType instead of the argument.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::splitInlines): Wrap the method by a scope in which
fragmented flow state is not updated because we consider those operations internal arrangements
of the tree.

7:22 AM Changeset in webkit [289813] by Ziran Sun
  • 16 edits
    1 copy
    6 adds in trunk

[Forms] the select() method returns should be in line with specs
​https://bugs.webkit.org/show_bug.cgi?id=236435

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:

Source/WebCore:

This CL is to correct the returns for select() method to be in line
with specs at
​https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#dom-textarea%2Finput-select

It updates the expectations for a few WPT tests as more sub-tests are now passing.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::selectionStartForBindings const):
(WebCore::HTMLInputElement::setSelectionStartForBindings):
(WebCore::HTMLInputElement::selectionEndForBindings const):
(WebCore::HTMLInputElement::setSelectionEndForBindings):
(WebCore::HTMLInputElement::selectionDirectionForBindings const):
(WebCore::HTMLInputElement::setSelectionDirectionForBindings):
(WebCore::HTMLInputElement::setSelectionRangeForBindings):

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.idl:

LayoutTests:

  • fast/forms/selection-functions-expected.txt:
  • fast/forms/selection-wrongtype-expected.txt:
  • fast/forms/selection-wrongtype.html:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
7:20 AM Changeset in webkit [289812] by Ziran Sun
  • 4 edits in trunk

[Forms] Make sure the element's dirty checkedness flag is set to true when setting checked
​https://bugs.webkit.org/show_bug.cgi?id=236497

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update the test expectations as the tests are now passing.

  • web-platform-tests/html/semantics/forms/the-input-element/cloning-steps-expected.txt:

Source/WebCore:

As per spec
​https://html.spec.whatwg.org/multipage/input.html#the-input-element%3Aconcept-node-clone-ext,
"The checked IDL attribute allows scripts to manipulate the checkedness of an input element.
... on setting, it must set the element's checkedness to the new value and set the element's
dirty checkedness flag to true." This CL is to make sure this flag is set to true.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):

7:10 AM Changeset in webkit [289811] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[JSC] Speed up getStatusMap and increase robustness
​https://bugs.webkit.org/show_bug.cgi?id=236559

Reviewed by Adrian Perez de Castro.

Collect test results in parallel. Also, ignore ssh errors during
collection (e.g. because the remote host is down) -- the main retry
loop will take care of that for us.

This should both avoid needless failures like
​https://build.webkit.org/#/builders/31/builds/2432 and reduce the
latency when there are multiple remotes (e.g. for MIPS).

  • Scripts/run-jsc-stress-tests:
6:53 AM Changeset in webkit [289810] by Martin Robinson
  • 4 edits in trunk

Scrolling while focusing an element should take into account scroll margin
​https://bugs.webkit.org/show_bug.cgi?id=235432

Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFocusedElementInternal): Respect the scroll margin
when focusing an element.

LayoutTests:

6:45 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
6:44 AM Changeset in webkit [289809] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r289620 - [GTK] WebKit browser scrollbars not always correctly displayed if overlay scrollbars are disabled
​https://bugs.webkit.org/show_bug.cgi?id=234874

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-11
Reviewed by Carlos Garcia Campos.

If overlay scrollbars are disabled, and there is not enough content for the page to be
scrollable, and scrollbars are forced using overflow:scroll, then we currently fail to
paint the scrollbars properly. At minimum, we need to paint the scrollbar background, which
is what the macOS port does. Do so.

In the future, we might want to additionally paint the rest of the scrollbars, similar to
the GTK_POLICY_ALWAYS scrollbar policy type, but this would require more work.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::paint):

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::paint):

6:30 AM Changeset in webkit [289808] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.34/Source

Merge r289804 - [GTK] D-Bus crash atk-bridge
​https://bugs.webkit.org/show_bug.cgi?id=236208

Reviewed by Adrian Perez de Castro.

Source/WebCore:

When a root is unregistered, check first if the registration is still pending to just complete and remove it.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::unregisterRoot):

Source/WebKit:

It seems that for some reason we might end up with an empty string as plug ID which ATK doesn't handle right. We
should not send the BindAccessibilityTree message if the plug ID is not valid. In the case of ATSPI we can just
check it's not empty, since we know we always build a valid ID when we have a connection. In the case of ATK we
should check it's a valid unique name and object path.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):

6:23 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
6:23 AM Changeset in webkit [289807] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.34/Source

Merge r289795 - [GTK][WPE] Inclusion of OpenGLShims.h should not depend on USE(GLX)
​https://bugs.webkit.org/show_bug.cgi?id=236593

Reviewed by Michael Catanzaro.

Source/WebCore:

No new tests needed.

  • platform/graphics/GLContext.cpp: Remove inclusion of OpenGLShims.h guarded by USE(GLX).
  • platform/graphics/GLContext.h: Include OpenGLShims.h as fallback option when neither

USE(LIBEPOXY) nor USE(OPENGL_ES) are into effect.

Source/WebKit:

  • UIProcess/API/glib/WebKitProtocolHandler.cpp: Move inclusion of GL/glx.h under a

PLATFORM(X11) guard, and inclusion of WebCore/OpenGLShims.h into a chain of guards
which picks it if USE(LIBEPOXY) and USE(OPENGL_ES) are both false, which is the same
checks done in other parts of the code where these are needed.

6:22 AM Changeset in webkit [289806] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r289216): Crash in DocumentTimeline::animationCanBeRemoved
​https://bugs.webkit.org/show_bug.cgi?id=236615
<rdar://problem/88943156>

Reviewed by Michael Catanzaro.

Use the default style if we can't obtain one from the target's renderer.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationCanBeRemoved):

6:20 AM Changeset in webkit [289805] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF

Merge r289761 - [Linux/aarch64] Move page size ceiling to 16k
​https://bugs.webkit.org/show_bug.cgi?id=236564

Patch by Gustavo Noronha Silva <​gustavo@noronha.dev.br> on 2022-02-14
Reviewed by Yusuke Suzuki.

On Apple Silicon, Linux needs to use 16k pages to be as fast as possible. This change has no
visible impact on binary size for release builds, so apply it to all of aarch64 Linux.

  • wtf/PageBlock.h:
6:07 AM Changeset in webkit [289804] by Carlos Garcia Campos
  • 4 edits in trunk/Source

[GTK] D-Bus crash atk-bridge
​https://bugs.webkit.org/show_bug.cgi?id=236208

Reviewed by Adrian Perez de Castro.

Source/WebCore:

When a root is unregistered, check first if the registration is still pending to just complete and remove it.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::unregisterRoot):

Source/WebKit:

It seems that for some reason we might end up with an empty string as plug ID which ATK doesn't handle right. We
should not send the BindAccessibilityTree message if the plug ID is not valid. In the case of ATSPI we can just
check it's not empty, since we know we always build a valid ID when we have a connection. In the case of ATK we
should check it's a valid unique name and object path.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):

6:06 AM Changeset in webkit [289803] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Memory for messages wrapped for testing is freed before use
​https://bugs.webkit.org/show_bug.cgi?id=236590

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-15
Reviewed by Antti Koivisto.

Wrapped messages are such that the data is wrapped inside a synchronous message.
These are sent by certain test objects.
In case the wrapped message was sent to another thread, the wrappee would be
destroyed before the wrapped message was read.

This is a regression from "Support in-process testing of IPC messages"
where the Decoder constructor with deallocator parameter was changed to
unconditionally mean that the Decoder owns the passed in data.
This call-site was missed, and it uses the constructor to pass nullptr
deallocator. Previously this used to mean that the constructor should
copy the data.

Fix by using the copying Decoder constructor.
Add assertion to the ownership-transfer decoder that the deallocation
function is non-null to notice the potential misuse. Currently passing
globally owned data, e.g. non-deallocated data is not useful.
Remove pessimizing WTFMove of a local variabl from a return position.

No new tests, caught by fast/events/gesture/wheel-from-gesture.html with ASAN.

  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::create):
(IPC::Decoder::unwrapForTesting):

5:10 AM Changeset in webkit [289802] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

GPUP WebGL: WTF::RefCountedBase::applyRefDerefThreadingCheck() fails due to RemoteGraphicsContextGL::paintPixelBufferToImageBuffer
​https://bugs.webkit.org/show_bug.cgi?id=236501

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-15
Reviewed by Antti Koivisto.

No new tests, tested by existing WebGL conformance tests which fail from time to time with the assertion.

Avoid assertion about cross-thread deref on ArrayBufferView owned by PixelBuffer. The PixelBuffer
is passed to RemoteRenderingBackend thread for drawing and then deallocated there. In this use-case
no other referneces to the ArrayBufferView exist and the PixelBuffer is moved, so it is safe to
disable the cross-thread deref assertion.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):

4:35 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
4:31 AM Changeset in webkit [289801] by Adrian Perez de Castro
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add mold linker
​https://bugs.webkit.org/show_bug.cgi?id=236362

Reviewed by Philippe Normand.

The Mold linker claims to be faster than Gold and LLD, and while it does not support LTO
at the moment, it has reachd a reasonable level of maturity and can be used for projects
as complex as WebKit already.

Mold can be used in combination with the Clang compiler driver or GCC 12+ by passing
-fuse-ld=mold as a linker flag, for example as follows:

% LDFLAGS=-fuse-ld=mold Tools/Scripts/build-webkit [...]
% LDFLAGS=-fuse-ld=mold CC=clang CXX=clang++ Tools/Scripts/build-webkit [...]

As GCC 11 and older, the -fuse-ld=mold option is not supported. It is still possible to
use -B to instruct the compiler driver to try a different path first for helper programs,
and a wrapper for Mold called "ld" is available as well:

% LDFLAGS=-B/usr/libexec/mold Tools/Scripts/build-webkit [...]

  • elements/sdk-platform.bst: List sdk/mold.bst as part of the SDK.
  • elements/sdk/mold.bst: Added.
4:01 AM Changeset in webkit [289800] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][MSE] Let MSE set natural video size when using holepunch
​https://bugs.webkit.org/show_bug.cgi?id=236453

Reviewed by Xabier Rodriguez-Calvar.

Currently the holepunch implementation completely overrides the video size to a hardcoded
value. It would be desirable to let the m_videoSize value set by
MediaPlayerPrivateGStreamerMSE::setInitialVideoSize() take precedence over the hardcoded value.

This is a fix for media element events test case from YTS:

​https://ytlr-cert.appspot.com/2021/main.html?tests=18

This patch is authored by Eugene Mutavchi <​Ievgen_Mutavchi@comcast.com>
See: ​https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/775

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize const): Return m_videoSize when set.

3:25 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:37 AM Changeset in webkit [289799] by rmorisset@apple.com
  • 5 edits
    6 adds
    1 delete in trunk/Source

[WGSL] Implement enough of the lexer for the simplest shaders
​https://bugs.webkit.org/show_bug.cgi?id=233276
<rdar://problem/85732675>

Reviewed by Myles Maxfield.

Source/WebGPU:

There is just enough of the lexer in this patch to pass the unit tests (also added by the patch).
The lexer is templated by the character size, following the code from JSC's lexer.
I did not use a lexer generator like lex for a few reasons:

  • It would have made the build system(s) even more of a nightmare
  • It would have made it harder to give accurate and customized error messages
  • If we ever decide to do anything exotic to the grammar of the language, it could have made it much harder

The lexing of floating point literals is a bit hacky, and probably has some precision issues in corner cases, but it passed all simple unit tests,
so for now I just left it as is with a FIXME, to be fixed once we can run the full CTS.

The TokenType includes an Invalid value. I could instead have used std::optional<Token> everywhere.
I made this choice for two reasons:

  • space efficiency: we don't use an extra word of memory for the variant's tag
  • (although this part could be solved by using ​https://github.com/akrzemi1/markable)
  • ease of use and time efficiency: everywhere that we check for a given TokenType, we would have to first check that the Token is not nullopt, and then check the TokenType.
  • Configurations/WGSLUnitTests.xcconfig:
  • WGSL/Lexer.cpp: Added.

(WGSL::Lexer<T>::lex):
(WGSL::Lexer<T>::shift):
(WGSL::Lexer<T>::peek):
(WGSL::Lexer<T>::skipWhitespace):
(WGSL::Lexer<T>::isAtEndOfFile const):
(WGSL::Lexer<T>::parseDecimalInteger):
(WGSL::Lexer<T>::parseDecimalFloatExponent):
(WGSL::Lexer<T>::parseIntegerLiteralSuffix):
(WGSL::Lexer<LChar>::isWhiteSpace):
(WGSL::Lexer<LChar>::isIdentifierStart):
(WGSL::Lexer<LChar>::isValidIdentifierCharacter):
(WGSL::Lexer<LChar>::isDecimal):
(WGSL::Lexer<LChar>::isHexadecimal):
(WGSL::Lexer<LChar>::readDecimal):
(WGSL::Lexer<LChar>::readHexadecimal):
(WGSL::Lexer<UChar>::isWhiteSpace):
(WGSL::Lexer<UChar>::isIdentifierStart):
(WGSL::Lexer<UChar>::isValidIdentifierCharacter):
(WGSL::Lexer<UChar>::isDecimal):
(WGSL::Lexer<UChar>::isHexadecimal):
(WGSL::Lexer<UChar>::readDecimal):
(WGSL::Lexer<UChar>::readHexadecimal):

  • WGSL/Lexer.h: Added.

(WGSL::Lexer::Lexer):
(WGSL::Lexer::currentPosition const):
(WGSL::Lexer::currentOffset const):
(WGSL::Lexer::currentTokenLength const):
(WGSL::Lexer::makeToken):
(WGSL::Lexer::makeLiteralToken):
(WGSL::Lexer::makeIdentifierToken):

  • WGSL/SourceSpan.h: Added.

(WGSL::SourceSpan::SourceSpan):

  • WGSL/Token.cpp: Added.

(WGSL::toString):

  • WGSL/Token.h: Added.

(WGSL::Token::Token):
(WGSL::Token::operator=):
(WGSL::Token::~Token):

  • WGSL/WGSL.cpp:

(WGSL::staticCheck):

  • WGSLUnitTests/WGSLLexerTests.mm: Added.

(-[WGSLLexerTests testLexerOnSingleTokens]):
(-[WGSLLexerTests testLexerOnComputeShader]):
(-[WGSLLexerTests testLexerOnGraphicsShader]):

  • WGSLUnitTests/WGSLUnitTests.mm: Removed.

(-[WGSLUnitTests testExample]): Deleted.

  • WebGPU.xcodeproj/project.pbxproj:

Source/WTF:

Add WTF::Unicode::formFeed and WTF::Unicode::verticalTabulation.

  • wtf/unicode/CharacterNames.h:
1:23 AM Changeset in webkit [289798] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Include sparkle-cdm library
​https://bugs.webkit.org/show_bug.cgi?id=236562

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-15
Reviewed by Martin Robinson.

This new recipe ships the Sparkle-CDM library, providing an alternative to Thunder. A
ClearKey plugin is provided as well, it will be used later on by the Thunder decryptor,
instead of the dedicated decryptor maintained in WebCore. The goals are to reduce GStreamer
decryptors maintenance here and to dog-food the Thunder code paths using the clearkey layout
tests.

  • elements/sdk-platform.bst:
  • elements/sdk/sparkle-cdm.bst: Added.
1:20 AM Changeset in webkit [289797] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Include a GStreamer DTLS transport bug fix
​https://bugs.webkit.org/show_bug.cgi?id=236591

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-15
Reviewed by Martin Robinson.

This patch is needed for the GstWebRTC backend.

  • elements/sdk/gst-plugins-bad.bst:
  • patches/gstreamer-0001-dtlstransport-Notify-ICE-transport-property-changes.patch: Added.
1:18 AM Changeset in webkit [289796] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Update to libnice development snapshot
​https://bugs.webkit.org/show_bug.cgi?id=236537

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-15
Reviewed by Martin Robinson.

Until there is 0.1.19 release, rely on development branch.

  • elements/freedesktop-sdk.bst:
  • patches/fdo-0001-Bump-libnice-to-current-git-master-HEAD.patch: Added.
1:07 AM Changeset in webkit [289795] by Adrian Perez de Castro
  • 5 edits in trunk/Source

[GTK][WPE] Inclusion of OpenGLShims.h should not depend on USE(GLX)
​https://bugs.webkit.org/show_bug.cgi?id=236593

Reviewed by Michael Catanzaro.

Source/WebCore:

No new tests needed.

  • platform/graphics/GLContext.cpp: Remove inclusion of OpenGLShims.h guarded by USE(GLX).
  • platform/graphics/GLContext.h: Include OpenGLShims.h as fallback option when neither

USE(LIBEPOXY) nor USE(OPENGL_ES) are into effect.

Source/WebKit:

  • UIProcess/API/glib/WebKitProtocolHandler.cpp: Move inclusion of GL/glx.h under a

PLATFORM(X11) guard, and inclusion of WebCore/OpenGLShims.h into a chain of guards
which picks it if USE(LIBEPOXY) and USE(OPENGL_ES) are both false, which is the same
checks done in other parts of the code where these are needed.

1:04 AM Changeset in webkit [289794] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

null ptr deref in WebCore::HTMLModelElement::enterFullscreen()
​https://bugs.webkit.org/show_bug.cgi?id=236409

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-15
Reviewed by Darin Adler.

Source/WebCore:

m_modelPlayer is a RefPtr that can become nullptr, so it needs a check before
dereferencing in HTMLModelElement::enterFullscreen(), as is done in other parts of
this class.

Also added a similar check missing in HTMLModelElement::platformLayer(), which was identified via code inspection.

Test: model-element/model-element-enter-fullscreen-crash.html

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::platformLayer const):
(WebCore::HTMLModelElement::enterFullscreen):

LayoutTests:

  • model-element/model-element-enter-fullscreen-crash-expected.txt: Added.
  • model-element/model-element-enter-fullscreen-crash.html: Added.
12:36 AM Changeset in webkit [289793] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

l10n: Updated Hebrew translation of WebKitGTK
​https://bugs.webkit.org/show_bug.cgi?id=236603

Patch by Yosef Or Boczko <​yoseforb@gmail.com> on 2022-02-15
Rubber-stamped by Carlos Garcia Campos.

  • he.po:
12:34 AM Changeset in webkit [289792] by Carlos Garcia Campos
  • 6 edits
    1 copy in trunk

REGRESSION(r195447): [GTK] document.activeElement not set on mouse click
​https://bugs.webkit.org/show_bug.cgi?id=236217

Reviewed by Michael Catanzaro.

Source/WebCore:

Bring back the behavior before r195447 and focus the links on click which is consistent with other browser in
Linux and ensures active element is the expected one on a click event listener.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::isMouseFocusable const):

LayoutTests:

  • fast/events/click-focus-anchor-expected.txt:
  • fast/events/click-focus-anchor.html:
  • platform/glib/TestExpectations: Mark imported/blink/fast/events/click-focus-keydown-no-ring.html as failure.
  • platform/glib/fast/events/click-focus-anchor-expected.txt: Copied from LayoutTests/fast/events/click-focus-anchor-expected.txt.
12:26 AM Changeset in webkit [289791] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

[JSC] Reduce iterations for getter-richards.js on MIPS
​https://bugs.webkit.org/show_bug.cgi?id=236594

Patch by Xan Lopez <Xan Lopez> on 2022-02-15
Reviewed by Adrian Perez de Castro.

  • typeProfiler/getter-richards.js: do 50 iterations on MIPS.

Feb 14, 2022:

11:34 PM Changeset in webkit [289790] by commit-queue@webkit.org
  • 87 edits
    3 deletes in trunk

ExtensionsGL is not useful class, it should be removed
​https://bugs.webkit.org/show_bug.cgi?id=236490

Source/WebCore:

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.

Remove ExtensionsGL. It is not a useful class, it does not abstract anything.
It has similar functions to GraphicsContextGL subclass, and needs and uses GraphicsContextGL subclass
underneath.
It is a problematic class as it is obtained through a virtual function, but that
virtual function override is being called during construction of the GraphicsContextGL subclass
instance.
Also the ExtensionsGL will neccessarily call back to GraphicsContextGL subclass instance being
constructed.
Current getExtensions() virtual function override calls are expected to go
where the C++ defines them going during construction.
Current calls back to the GraphicsContextGL subclass instance during construction *should*
access state that is already initialized, but it is quite error-prone and hard to
analyze.

Move ExtensionsGL functions to GraphicsContextGL. Make call-sites call the context instead of the
extension helper. Rename the functions with pattern "isSupported" -> "isExtensionSupported".
Remove GraphicsContextGL::getExtensions() virtual function call.

For legacy contexts GraphicsContextGLOpenGL, GraphicsContextGLOpenGLES preserve their
ExtensionGLCommon subclasses. Accessing it happens from a normal function from legacy call sites
that know that they're calling GraphicsContextGLOpenGL.

For GraphicsContextGLANGLE, move context initialization code to GraphicsContextGLANGLE::initialize()
instead of the constructor. This way the initialization code can call virtual functions and the calls
are delivered normally to the last overrider.

RemoteGraphicsContextGLProxyBase can now be removed, as it is unneeded anyway and its added virtual
functions would cause inconvenient naming duplication.

No new tests, a refactor.

  • CMakeLists.txt:
  • Headers.cmake:
  • Modules/webxr/WebXROpaqueFramebuffer.cpp:

(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/ANGLEInstancedArrays.cpp:

(WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
(WebCore::ANGLEInstancedArrays::supported):

  • html/canvas/ANGLEInstancedArrays.h:
  • html/canvas/EXTColorBufferFloat.cpp:

(WebCore::EXTColorBufferFloat::EXTColorBufferFloat):
(WebCore::EXTColorBufferFloat::supported):

  • html/canvas/EXTColorBufferFloat.h:
  • html/canvas/EXTColorBufferHalfFloat.cpp:

(WebCore::EXTColorBufferHalfFloat::EXTColorBufferHalfFloat):
(WebCore::EXTColorBufferHalfFloat::supported):

  • html/canvas/EXTColorBufferHalfFloat.h:
  • html/canvas/EXTFloatBlend.cpp:

(WebCore::EXTFloatBlend::EXTFloatBlend):
(WebCore::EXTFloatBlend::supported):

  • html/canvas/EXTFloatBlend.h:
  • html/canvas/EXTTextureCompressionRGTC.cpp:

(WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):

  • html/canvas/KHRParallelShaderCompile.cpp:

(WebCore::KHRParallelShaderCompile::KHRParallelShaderCompile):
(WebCore::KHRParallelShaderCompile::supported):

  • html/canvas/KHRParallelShaderCompile.h:
  • html/canvas/OESFBORenderMipmap.cpp:

(WebCore::OESFBORenderMipmap::OESFBORenderMipmap):
(WebCore::OESFBORenderMipmap::supported):

  • html/canvas/OESFBORenderMipmap.h:
  • html/canvas/OESTextureFloat.cpp:

(WebCore::OESTextureFloat::OESTextureFloat):
(WebCore::OESTextureFloat::supported):

  • html/canvas/OESTextureFloat.h:
  • html/canvas/OESTextureHalfFloat.cpp:

(WebCore::OESTextureHalfFloat::OESTextureHalfFloat):
(WebCore::OESTextureHalfFloat::supported):

  • html/canvas/OESTextureHalfFloat.h:
  • html/canvas/OESVertexArrayObject.cpp:
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::initializeShaderExtensions):
(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • html/canvas/WebGLColorBufferFloat.cpp:

(WebCore::WebGLColorBufferFloat::WebGLColorBufferFloat):
(WebCore::WebGLColorBufferFloat::supported):

  • html/canvas/WebGLColorBufferFloat.h:
  • html/canvas/WebGLCompressedTextureASTC.cpp:

(WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC):
(WebCore::WebGLCompressedTextureASTC::supported):

  • html/canvas/WebGLCompressedTextureASTC.h:
  • html/canvas/WebGLCompressedTextureATC.cpp:

(WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
(WebCore::WebGLCompressedTextureATC::supported):

  • html/canvas/WebGLCompressedTextureATC.h:
  • html/canvas/WebGLCompressedTextureETC.cpp:

(WebCore::WebGLCompressedTextureETC::WebGLCompressedTextureETC):
(WebCore::WebGLCompressedTextureETC::supported):

  • html/canvas/WebGLCompressedTextureETC.h:
  • html/canvas/WebGLCompressedTextureETC1.cpp:

(WebCore::WebGLCompressedTextureETC1::WebGLCompressedTextureETC1):
(WebCore::WebGLCompressedTextureETC1::supported):

  • html/canvas/WebGLCompressedTextureETC1.h:
  • html/canvas/WebGLCompressedTexturePVRTC.cpp:

(WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):
(WebCore::WebGLCompressedTexturePVRTC::supported):

  • html/canvas/WebGLCompressedTexturePVRTC.h:
  • html/canvas/WebGLCompressedTextureS3TC.cpp:

(WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC):
(WebCore::WebGLCompressedTextureS3TC::supported):

  • html/canvas/WebGLCompressedTextureS3TC.h:
  • html/canvas/WebGLCompressedTextureS3TCsRGB.cpp:

(WebCore::WebGLCompressedTextureS3TCsRGB::WebGLCompressedTextureS3TCsRGB):
(WebCore::WebGLCompressedTextureS3TCsRGB::supported):

  • html/canvas/WebGLCompressedTextureS3TCsRGB.h:
  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::WebGLDebugShaders):
(WebCore::WebGLDebugShaders::getTranslatedShaderSource):

  • html/canvas/WebGLDepthTexture.cpp:

(WebCore::WebGLDepthTexture::WebGLDepthTexture):
(WebCore::WebGLDepthTexture::supported):

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
(WebCore::WebGLDrawBuffers::supported):
(WebCore::WebGLDrawBuffers::drawBuffersWEBGL):
(WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):

  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::getClearBitsByAttachmentType):
(WebCore::getClearBitsByFormat):
(WebCore::WebGLFramebuffer::checkStatus const):
(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
(WebCore::WebGLFramebuffer::getDrawBuffer):

  • html/canvas/WebGLMultiDraw.cpp:

(WebCore::WebGLMultiDraw::WebGLMultiDraw):
(WebCore::WebGLMultiDraw::supported):

  • html/canvas/WebGLMultiDraw.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getMaxDrawBuffers):
(WebCore::WebGLRenderingContext::getMaxColorAttachments):
(WebCore::WebGLRenderingContext::validateBlendEquation):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::getChannelBitsByFormat):
(WebCore::possibleFormatAndTypeForInternalFormat):
(WebCore::WebGLRenderingContextBase::setupFlags):
(WebCore::WebGLRenderingContextBase::getParameter):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::hint):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::renderbufferStorageImpl):
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions):
(WebCore::WebGLRenderingContextBase::validateCompressedTexSubDimensions):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::getMaxDrawBuffers):
(WebCore::WebGLRenderingContextBase::getMaxColorAttachments):
(WebCore::WebGLRenderingContextBase::enableSupportedExtension):

  • html/canvas/WebGLVertexArrayObjectOES.cpp:
  • loader/FrameLoaderClient.h:
  • platform/graphics/ExtensionsGL.h: Removed.
  • platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::computeFormatAndTypeParameters):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp: Removed.
  • platform/graphics/angle/ExtensionsGLANGLE.h: Removed.
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::initialize):
(WebCore::GraphicsContextGLANGLE::platformInitializeContext):
(WebCore::GraphicsContextGLANGLE::platformInitialize):
(WebCore::GraphicsContextGLANGLE::texImage2D):
(WebCore::GraphicsContextGLANGLE::validateDepthStencil):
(WebCore::GraphicsContextGLANGLE::supportsExtension):
(WebCore::GraphicsContextGLANGLE::ensureExtensionEnabled):
(WebCore::GraphicsContextGLANGLE::isExtensionEnabled):
(WebCore::GraphicsContextGLANGLE::getGraphicsResetStatusARB):
(WebCore::GraphicsContextGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::GraphicsContextGLANGLE::drawBuffersEXT):
(WebCore::GraphicsContextGLANGLE::adjustWebGL1TextureInternalFormat):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::create):
(WebCore::GraphicsContextGLCocoa::GraphicsContextGLCocoa):
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLCocoa::platformInitializeContext):
(WebCore::GraphicsContextGLCocoa::platformInitialize):
(WebCore::GraphicsContextGLCocoa::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLCocoa::allocateAndBindDisplayBufferBacking):
(WebCore::GraphicsContextGLCocoa::bindDisplayBufferBacking):
(WebCore::GraphicsContextGLCocoa::prepareForDisplay):

  • platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm:

(WebCore::createWebProcessGraphicsContextGL):

  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp:

(WebCore::ExtensionsGLOpenGL::platformSupportsExtension):

  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::supports):
(WebCore::ExtensionsGLOpenGLCommon::ensureEnabled):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::isEnabled):
(WebCore::ExtensionsGLOpenGLES::getGraphicsResetStatusARB):
(WebCore::ExtensionsGLOpenGLES::platformSupportsExtension):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::getExtensions):
(WebCore::GraphicsContextGLOpenGL::validateDepthStencil):
(WebCore::GraphicsContextGLOpenGL::supportsExtension):
(WebCore::GraphicsContextGLOpenGL::ensureExtensionEnabled):
(WebCore::GraphicsContextGLOpenGL::isExtensionEnabled):
(WebCore::GraphicsContextGLOpenGL::getGraphicsResetStatusARB):
(WebCore::GraphicsContextGLOpenGL::drawBuffersEXT):
(WebCore::GraphicsContextGLOpenGL::getTranslatedShaderSourceANGLE):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::getExtensions):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::validateAttributes):
(WebCore::GraphicsContextGLOpenGL::getExtensions):

  • platform/graphics/texmap/BitmapTextureGL.cpp:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::create):
(WebCore::createWebProcessGraphicsContextGL):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLTextureMapper::prepareForDisplay):
(WebCore::GraphicsContextGLTextureMapper::reshapeDisplayBufferBacking):

  • platform/graphics/texmap/TextureMapperGL.cpp:

Source/WebKit:

Move the RemoteGraphicsContextGLProxyBase functions to
RemoteGraphicsContextGL. The ..Base can now be removed
as ExtensionGL is removed.

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGL::markContextChanged):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(getGraphicsResetStatusARB):
(getTranslatedShaderSourceANGLE):
(drawBuffersEXT):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::setContextVisibility):
(WebKit::RemoteGraphicsContextGLProxy::isGLES2Compliant const):
(WebKit::RemoteGraphicsContextGLProxy::markContextChanged):
(WebKit::RemoteGraphicsContextGLProxy::supportsExtension):
(WebKit::RemoteGraphicsContextGLProxy::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGLProxy::isExtensionEnabled):
(WebKit::RemoteGraphicsContextGLProxy::initialize):
(WebKit::RemoteGraphicsContextGLProxy::reshape):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:

Tools:

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.

Update manually implemented functions.

  • Scripts/generate-gpup-webgl:
  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:
10:29 PM Changeset in webkit [289789] by Antti Koivisto
  • 8 edits in trunk

[CSS Container Queries] Support range operators in size queries
​https://bugs.webkit.org/show_bug.cgi?id=236600

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:

Source/WebCore:

Support (width > 100px) and similar.

  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeSizeQuery):
(WebCore::ContainerQueryParser::consumeSizeFeature):

Factor into a function.
Add operator support. No reverse (100px < width) or full range (10px < width < 100px) yet.
The evaluator supports these already.

  • css/ContainerQueryParser.h:

LayoutTests:

7:55 PM Changeset in webkit [289788] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc

[libpas] compact pointers should load payload via memcpy
​https://bugs.webkit.org/show_bug.cgi?id=236621

Reviewed by Mark Lam.

ASan found that we are loading 8 bytes which can potentially be overflowed.
For example, we load this from a pointer to stack variable, which means that
we could cause stack overflow. Instead we should use memcpy.
Currently, we only support little endian code, but it is OK since libpas is not
enabled in non little endian architectures.

  • libpas/src/libpas/pas_compact_ptr.h:
  • libpas/src/libpas/pas_compact_tagged_ptr.h:
6:16 PM Changeset in webkit [289787] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION (r288804): fast/forms/visual-hebrew-text-field.html is failing
​https://bugs.webkit.org/show_bug.cgi?id=236325

Reviewed by Dean Jackson.

The test failure is caused by pre-existing inter-test dependencies.
Workaround whatever the underlying cause for the test failure by forcing
the use of ephemeral session for now.

  • fast/forms/visual-hebrew-text-field.html:
5:47 PM Changeset in webkit [289786] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

Expand pixel range.

  • css3/color-filters/color-filter-color-text-decorations.html:
5:34 PM Changeset in webkit [289785] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Direct touches don't trigger other gesture recognizers if WKMouseGestureRecognizer sees them first
​https://bugs.webkit.org/show_bug.cgi?id=236617

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
WKMouseGestureRecognizer should only completely steal touches of type
UITouchTypeIndirectPointer. Other touch types (e.g. synthetic direct touches)
still need to trigger other WKContentViewInteraction gesture recognizers
(like long-press and double-tap) despite WKMouseGestureRecognizer
seeing their touches. So, check the touch type before early-returning.

5:05 PM Changeset in webkit [289784] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support PRs when sending build failure emails
​https://bugs.webkit.org/show_bug.cgi?id=235926
<rdar://problem/88302122>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHub.email_for_owners): Convert list of owners to an email address.
(GitHubMixin.should_send_email_for_pr): Check if the tested sha is outdated.
(BugzillaMixin.should_send_email_for_patch): Renamed from should_send_email.
(BugzillaMixin.should_send_email): Renamed to should_send_email_for_patch.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Draft different
email for failed patch than failed pull request build.
(AnalyzeLayoutTestsResults.send_email_for_new_test_failures):

Canonical link: ​https://commits.webkit.org/247249@main

5:00 PM Changeset in webkit [289783] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.0.2

Tag Safari-613.1.17.0.2.

4:59 PM Changeset in webkit [289782] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.17.1.2

Tag Safari-613.1.17.1.2.

4:14 PM Changeset in webkit [289781] by Russell Epstein
  • 6 edits in branches/safari-614.1.3-branch/Source

Cherry-pick r289592. rdar://problem/88323950

tryReserveUncommittedAligned should explicitly take the alignment requested
​https://bugs.webkit.org/show_bug.cgi?id=236460

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

When reducing the size of VA space reserved for Structures, we
didn't take care to ensure the alignment matched the required
alignment for our bit mask. To fix this we need to pass the
original alignment to the allocator as a new parameter.

  • heap/StructureAlignedMemoryAllocator.cpp: (JSC::StructureMemoryManager::StructureMemoryManager):

Source/WTF:

This patch adds a new ifdef for Unix flavors that support the
MAP_ALIGNED macro/parameter to mmap.

Also, fix a bug where on windows we wouldn't request enough
space to guarantee that allocation is aligned.

  • wtf/OSAllocator.h:
  • wtf/posix/OSAllocatorPOSIX.cpp: (WTF::OSAllocator::tryReserveUncommittedAligned):
  • wtf/win/OSAllocatorWin.cpp: (WTF::OSAllocator::tryReserveUncommittedAligned):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289592 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:14 PM Changeset in webkit [289780] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Array#{ groupBy, groupByToMap } should throw a TypeError when this is null or undefined
​https://bugs.webkit.org/show_bug.cgi?id=236541

Reviewed by Alexey Shvayka.

JSTests:

  • stress/array-group-by-null-or-undefined.js: Added.

(shouldThrow):

Source/JavaScriptCore:

While we are correctly using @toObject, these functions missed "use strict", which enforces a function
to change a non object |this| to an object (in this case, global object). This patch adds "use strict",
to make these function strict code.

  • builtins/ArrayPrototype.js:

(groupBy):
(groupByToMap):

4:09 PM Changeset in webkit [289779] by don.olmstead@sony.com
  • 4 edits in trunk/Source/JavaScriptCore

[CMake] Remove uses of add_definitions in JavaScriptCore build
​https://bugs.webkit.org/show_bug.cgi?id=236605

Reviewed by Michael Catanzaro.

Use target specific definitions when building JavaScriptCore. In the current cases the
definitions don't need to propagate to targets using JavaScriptCore so
JavaScriptCore_PRIVATE_DEFINITIONS is used.

  • PlatformGTK.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWPE.cmake:
4:05 PM Changeset in webkit [289778] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Move PDFDocument.cpp/h in correct position in WebCore.xcodeproj
​https://bugs.webkit.org/show_bug.cgi?id=236529

Patch by Dan Glastonbury <​djg@apple.com> on 2022-02-14
Reviewed by Tim Nguyen.

  • WebCore.xcodeproj/project.pbxproj:
3:59 PM Changeset in webkit [289777] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Consistenly use hasTagName instead of is<> in HTMLStackItem testing functions
​https://bugs.webkit.org/show_bug.cgi?id=236571

Reviewed by Sam Weinig.

No reason to use is<> for a couple of element names but hasTagName for
all others.

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLNames::isScopeMarker):
(WebCore::HTMLNames::isTableScopeMarker):
(WebCore::HTMLNames::isSelectScopeMarker):

3:33 PM Changeset in webkit [289776] by Simon Fraser
  • 3 edits
    2 adds in trunk

Fix crash with deeply nested async overflow scroll
​https://bugs.webkit.org/show_bug.cgi?id=236599
Source/WebCore:

rdar://88656665

Reviewed by Alan Bujtas.

mergeClippingScopesRecursive() already does the append of the rects; doing so
before calling recursing triggers double appends, hence exponentially growing
rect lists.

Test: compositing/layer-creation/clipping-scope/deeply-nested-overflow.html

  • rendering/LayerOverlapMap.cpp:

(WebCore::OverlapMapContainer::mergeClippingScopesRecursive):

LayoutTests:

Reviewed by Alan Bujtas.

  • compositing/layer-creation/clipping-scope/deeply-nested-overflow-expected.txt: Added.
  • compositing/layer-creation/clipping-scope/deeply-nested-overflow.html: Added.
3:33 PM Changeset in webkit [289775] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288539 - Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):

  • loader/FrameLoader.h:
3:26 PM Changeset in webkit [289774] by Russell Epstein
  • 1 copy in tags/Safari-614.1.2.2

Tag Safari-614.1.2.2.

3:19 PM Changeset in webkit [289773] by Dewei Zhu
  • 17 edits in trunk/Tools/Scripts

Update shebang for run-benchmark scripts.

Reviewed by Jonathan Bedard.

Use python3 in shebang for run-benchmark.
Remove shebang from modules in benchmark_runner.

  • Tools/Scripts/run-benchmark:
  • Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:
  • Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
  • Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
  • Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py:
  • Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
  • Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
  • Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
  • Tools/Scripts/webkitpy/benchmark_runner/generic_factory.py:
  • Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
  • Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
  • Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver_factory.py:
  • Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
  • Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py:
  • Tools/Scripts/webkitpy/benchmark_runner/utils.py:
  • Tools/Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py:
  • Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py:

Canonical link: ​https://commits.webkit.org/247243@main

3:13 PM Changeset in webkit [289772] by Russell Epstein
  • 6 edits in branches/safari-614.1.2-branch/Source

Cherry-pick r289592. rdar://problem/88323950

tryReserveUncommittedAligned should explicitly take the alignment requested
​https://bugs.webkit.org/show_bug.cgi?id=236460

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

When reducing the size of VA space reserved for Structures, we
didn't take care to ensure the alignment matched the required
alignment for our bit mask. To fix this we need to pass the
original alignment to the allocator as a new parameter.

  • heap/StructureAlignedMemoryAllocator.cpp: (JSC::StructureMemoryManager::StructureMemoryManager):

Source/WTF:

This patch adds a new ifdef for Unix flavors that support the
MAP_ALIGNED macro/parameter to mmap.

Also, fix a bug where on windows we wouldn't request enough
space to guarantee that allocation is aligned.

  • wtf/OSAllocator.h:
  • wtf/posix/OSAllocatorPOSIX.cpp: (WTF::OSAllocator::tryReserveUncommittedAligned):
  • wtf/win/OSAllocatorWin.cpp: (WTF::OSAllocator::tryReserveUncommittedAligned):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289592 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:12 PM Changeset in webkit [289771] by Russell Epstein
  • 9 edits in branches/safari-614.1.2-branch/Source

Versioning.

WebKit-7614.1.2.2

2:59 PM Changeset in webkit [289770] by jonlee@apple.com
  • 4 edits in trunk

Enable accelerated drawing in the iOS simulator
​https://bugs.webkit.org/show_bug.cgi?id=231828
rdar://problem/84315491

Reviewed by Simon Fraser.

Tools:

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

  • platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt:
2:59 PM Changeset in webkit [289769] by Patrick Angle
  • 6 edits
    2 adds in trunk/Source/WebCore

Web Inspector: Element tooltips in overlays should use same encodable/decodable Label type as grid overlays
​https://bugs.webkit.org/show_bug.cgi?id=235422

Reviewed by Devin Rousso.

The tooltip for elements previously used its own slightly different labels from those used for grid overlays,
which are implemented in such a way to support being sent to the UI process for iOS overlay support. This patch
adds support for the setting different colors for different runs of text along with multi-line labels to allow
the same label to be used for both Grid overlays as well as element tooltips.

The existing WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label was moved to
WebCore::InspectorOverlayLabel as it is no longer exclusively used for grids.

With that support, we can now use InspectorOverlayLabel for element tooltips without needing duplicated layout
and drawing code. Additionally, the font used in the tooltip is now consistent with grid labels, where as
previously we used different font families for the grid and element labels.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawElementTitle):
(WebCore::InspectorOverlay::drawGridOverlay):
(WebCore::InspectorOverlay::buildGridOverlay):
(WebCore::fontForLayoutLabel): Moved to InspectorOverlayLabel.cpp as systemFont.
(WebCore::backgroundPathForLayoutLabel): Moved to InspectorOverlayLabel.cpp as backgroundPath.
(WebCore::expectedSizeForLayoutLabel): Moved to InspectorOverlayLabel.cpp as expectedSize.
(WebCore::drawLayoutLabel): Moved to InspectorOverlayLabel.cpp as draw.
(WebCore::buildLabel): Deleted.

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::encode const): Deleted.
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::decode): Deleted.

  • inspector/InspectorOverlayLabel.cpp: Added.

(WebCore::InspectorOverlayLabel::InspectorOverlayLabel):
(WebCore::systemFont):
(WebCore::backgroundPath):
(WebCore::InspectorOverlayLabel::draw):

  • Updated logic to handle multiple strings, including strings containing newlines. Strings are now each

converted to a TextRun, or multiple text runs for multi-line text, each of which is measured to determine the
overall height and width of the label, as well as to later in the drawing code give us the information necessary
to actually draw these strings in the proper locations.

  • Use the width of the longest line for drawing the background of the label.
  • Iterate through the computed TextRuns and draw the moving to the next line for each index that we had

previously computed to be the start of a new line.
(WebCore::InspectorOverlayLabel::expectedSize):

  • Similar to InspectorOverlayLabel::draw we need to take in to account multi-line strings, but do not need to

keep the computed TextRuns or their widths, only the width of the longest line and the total number of lines, to
compute the expected size of the contents in a label.

  • inspector/InspectorOverlayLabel.h: Added.

(WebCore::InspectorOverlayLabel::Arrow::Arrow):
(WebCore::InspectorOverlayLabel::encode const):
(WebCore::InspectorOverlayLabel::decode):
(WebCore::InspectorOverlayLabel::Arrow::encode const):
(WebCore::InspectorOverlayLabel::Arrow::decode):
(WebCore::InspectorOverlayLabel::Content::encode const):
(WebCore::InspectorOverlayLabel::Content::decode):

2:56 PM Changeset in webkit [289768] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Check feature flag before using screen/window picker
​https://bugs.webkit.org/show_bug.cgi?id=236596
<rdar://problem/88909015>

Reviewed by Jer Noble.

Tested manually.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:

(WebCore::screenCaptureKitPickerFeatureEnabled): Check feature flag.
(WebCore::ScreenCaptureKitSharingSessionManager::isAvailable):

2:48 PM Changeset in webkit [289767] by Said Abou-Hallawa
  • 4 edits in trunk/Source/WebCore

[GPU Process] Implement GraphicsContext::drawLineForText() in terms of GraphicsContext::drawLinesForText()
​https://bugs.webkit.org/show_bug.cgi?id=236464

Reviewed by Simon Fraser.

Make GraphicsContext::drawLineForText() non virtual and delete all the
super classes' implementations for this function since it calls the virtual
function drawLinesForText().

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/NullGraphicsContext.h:
  • platform/graphics/displaylists/DisplayListRecorder.h:
2:46 PM Changeset in webkit [289766] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebKit

[GPU Process] RemoteImageBufferProxy should not sink itself to an Image or a NativeImage though its backend
​https://bugs.webkit.org/show_bug.cgi?id=236484

Reviewed by Simon Fraser.

The purpose of sinkIntoImage() and sinkIntoNativeImage() is to reuse the
pixels of an ImageBuffer to be a NativeImage or an Image which encapsulates
a NativeImage.

But for RemoteImageBufferProxy these functions are meaningless because
the pixels (or the backend) can't be accessed in WebProcess.

So to keep the code in WebCore untouched, these two functions will be
overridden by RemoteImageBufferProxy to call the 'copy' methods. The
'copy' methods use the IPC messages to get a NativeImage from GPUProcess.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
2:22 PM Changeset in webkit [289765] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/xhr/send-timeout-events.htm as failing on iOS aftet the changes in r289540
​https://bugs.webkit.org/show_bug.cgi?id=231337

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:22 PM WebKitGTK/2.34.x edited by Gustavo Noronha Silva
Propose 16k pages for the stable branch (diff)
2:18 PM Changeset in webkit [289764] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.5

2:15 PM Changeset in webkit [289763] by Wenson Hsieh
  • 12 edits
    1 copy in trunk/Source

[Live Text] Plumb platform image analysis objects to the web process
​https://bugs.webkit.org/show_bug.cgi?id=236535
rdar://88845367

Reviewed by Devin Rousso.

Source/WebCore:

Add a platformData member to TextRecognitionResult, which (when ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS) is
enabled) contains a pointer to VKCImageAnalysis. See WebKit/ChangeLog for more details.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/TextRecognitionResult.h:

Also add new WebKitAdditions extension points around TextRecognitionResult.

(WebCore::TextRecognitionResult::encode const):
(WebCore::TextRecognitionResult::decode):

  • platform/cocoa/TextRecognitionResultCocoa.mm:

Source/WebCore/PAL:

Add soft-linking support for VKCImageAnalysis. See WebCore and WebKit ChangeLogs for more detail.

  • pal/cocoa/AVFoundationSoftLink.h:

Avoid a build error after shifting around Cocoa unified sources, by removing an unused definition of
AVOutputContextOutputDevicesDidChangeNotification. This definition causes the unified build to break downstream,
when other media-related source files end up importing AVKit headers that try to reference this symbol
(AVOutputContextOutputDevicesDidChangeNotification) but end up expanding the WebKit soft-linking macro instead.

  • pal/cocoa/VisionKitCoreSoftLink.h:
  • pal/cocoa/VisionKitCoreSoftLink.mm:

Source/WebKit:

Plumb the platform text recognition results object (VKCImageAnalysis) through TextRecognitionResults to the
web process when computing text recognition results for Live Text, and add a few new WebKitAdditions extension
points. In a subsequent patch, we'll use this VKCImageAnalysis on TextRecognitionResults to refactor how we
write Live Text to the system pasteboard when copying.

  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::makeTextRecognitionResult):

Set platformData.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<RetainPtr<VKCImageAnalysis>>::encode):
(IPC::ArgumentCoder<RetainPtr<VKCImageAnalysis>>::decode):

  • Shared/WebCoreArgumentCoders.h:
1:51 PM Changeset in webkit [289762] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

REGRESSION(r286560): MediaElement's getStartDate returning an incorrect time
​https://bugs.webkit.org/show_bug.cgi?id=236360
<rdar://problem/88786989>

Reviewed by Eric Carlson.

r286560 changed IDL Date to use WallTime instead of a raw double, meaning that
HTMLMediaElement::getStartDate now did extra processing of the MediaTime returned by
MediaPlayer::getStartDate.

Unfortunately, MediaPlayerPrivateAVFoundationObjC::getStartDate returned a MediaTime
represented in milliseconds (due to two * 1000), even though MediaTime is supposed to be
seconds-based.

As a result, the changes in r286560 inadvertently caused two * 1000 on the same time value.

Covered by existing test (LayoutTests/http/tests/media/hls/video-controller-getStartDate.html).
Note that the test was marked as [Pass Failure] before r286560.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::getStartDate const):

1:12 PM Changeset in webkit [289761] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[Linux/aarch64] Move page size ceiling to 16k
​https://bugs.webkit.org/show_bug.cgi?id=236564

Patch by Gustavo Noronha Silva <​gustavo@noronha.dev.br> on 2022-02-14
Reviewed by Yusuke Suzuki.

On Apple Silicon, Linux needs to use 16k pages to be as fast as possible. This change has no
visible impact on binary size for release builds, so apply it to all of aarch64 Linux.

  • wtf/PageBlock.h:
1:10 PM Changeset in webkit [289760] by J Pascoe
  • 7 edits in trunk

[WebAuthn] Access group not set in add query for importLocalAuthenticatorCredential
​https://bugs.webkit.org/show_bug.cgi?id=236469
rdar://problem/88783447

Reviewed by Brent Fulgham.

Source/WebKit:

In Bug 236311 we added support setting accessGroup, but did not properly set it
on the addQuery. This patch fixes that.

Updated API test to use non-standard accessGroup.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel importLocalAuthenticatorWithAccessGroup:credential:error:]):

Tools:

Updated API test to use non-standard access group.

  • TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

1:09 PM Changeset in webkit [289759] by Russell Epstein
  • 9 edits in branches/safari-614.1.3-branch/Source

Versioning.

WebKit-7614.1.3.1

1:09 PM Changeset in webkit [289758] by commit-queue@webkit.org
  • 4 edits
    3 copies
    1 move
    8 adds
    1 delete in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
​https://bugs.webkit.org/show_bug.cgi?id=236597

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-14

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt: Copied from LayoutTests/platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt.
  • platform/gtk/fast/text/international/bidi-override-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: Copied from LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt.
  • platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt: Renamed from LayoutTests/platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt.
1:05 PM Changeset in webkit [289757] by Razvan Caliman
  • 5 edits
    1 copy
    2 moves
    1 add in trunk/Source/WebInspectorUI

Web Inspector: [Flexbox] List flex containers in Layout sidebar
​https://bugs.webkit.org/show_bug.cgi?id=235647
<rdar://87886241>

Reviewed by Patrick Angle.

The representation in the Layout details sidebar of the list of flex containers on the page is very similar to the one for grid containers:
a list of nodes identified by selector, with adjacent checkboxes that synchronize state with the visibility of a page overlay, interactive
color swatches to decorate the corresponding overlay, and a button to jump to the node in the DOM Tree view.

Therefore, it makes sense to generalize the code for CSS Grid and reuse it for Flexbox.

This patch extracts a generic WI.NodeOverlayListSection from WI.CSSGridNodeOverlayListSection.
This is subclassed by WI.CSSGridNodeOverlayListSection and WI.CSSFlexboxSection.
The two rely on the abstract implementations to show/hide overlays, get/set overlay colors, interrogate overlay visibility, and listen to generic overlay show events.

Which particular type of overlay is the target of each panel is determined in WI.OverlayManager
by the value of WI.DomNode.layoutContextType, either "flex" or "grid". A node cannot have more than one layout context type.

Where the subclasses differ:

  • each section has its own label (obviously).
  • the layout for WI.CSSGridNodeOverlayListSection includes a section with settings for the CSS Grid overlay.
  • Localizations/en.lproj/localizedStrings.js:

We've received feedback that the latter is more common in web developers' vocabulary when
refering to CSS grids. Adopted the same for the flexbox section empty message.

  • UserInterface/Main.html:
  • UserInterface/Views/CSSFlexNodeOverlayListSection.js: Added.

(WI.CSSFlexNodeOverlayListSection.prototype.get sectionLabel):
(WI.CSSFlexNodeOverlayListSection):

  • UserInterface/Views/CSSGridNodeOverlayListSection.js: Renamed from Source/WebInspectorUI/UserInterface/Views/CSSGridSection.js.

(WI.CSSGridNodeOverlayListSection.prototype.get sectionLabel):
(WI.CSSGridNodeOverlayListSection.prototype.initialLayout):
(WI.CSSGridNodeOverlayListSection):
The layout of WI.CSSFlexNodeOverlayListSection includes a set of options to configure the CSS Grid overlay.

  • UserInterface/Views/LayoutDetailsSidebarPanel.css:

(.details-section:is(.layout-css-flexbox, .layout-css-grid):not(.collapsed) > .content,):
(.details-section.layout-css-grid > .content > .group > .row > .css-grid-section): Deleted.
(.details-section.layout-css-grid:not(.collapsed) > .content,): Deleted.

  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel):
(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype._handleLayoutContextTypeChanged):
(WI.LayoutDetailsSidebarPanel.prototype._refreshNodeSets):
(WI.LayoutDetailsSidebarPanel.prototype._refreshGridNodeSet): Deleted.
Added Flexbox section to Layout details sidebar.

  • UserInterface/Views/NodeOverlayListSection.css: Renamed from Source/WebInspectorUI/UserInterface/Views/CSSGridSection.css.

(.node-overlay-list-section):
(.node-overlay-list-section > .node-overlay-list):
(.node-overlay-list-section > .node-overlay-list > li > .node-overlay-list-item-container):
(.node-overlay-list-section > .node-overlay-list > li > .node-overlay-list-item-container > label):
(.node-overlay-list-section > .node-overlay-list > li > .node-overlay-list-item-container > label > .node-display-name):
(.node-overlay-list-section > .node-overlay-list > li > .node-overlay-list-item-container > :is(.go-to-arrow, .inline-swatch)):
(.node-overlay-list-section > .node-overlay-list > li > .node-overlay-list-item-container:not(:hover) > .go-to-arrow):
(.node-overlay-list-section > .heading,):
(.node-overlay-list-section > .heading > label > .toggle-all):
(.node-overlay-list-section :is(.setting-editor, .node-overlay-list-item-container, .heading) input[type="checkbox"]):
A full-on replacement of .css-grid-section with .node-overlay-list-section since the two sections share the same styles.

  • UserInterface/Views/NodeOverlayListSection.js: Copied from Source/WebInspectorUI/UserInterface/Views/CSSGridSection.js.

(WI.NodeOverlayListSection):
(WI.NodeOverlayListSection.prototype.set nodeSet):
(WI.NodeOverlayListSection.prototype.get sectionLabel):
(WI.NodeOverlayListSection.prototype.attached):
(WI.NodeOverlayListSection.prototype.detached):
(WI.NodeOverlayListSection.prototype.initialLayout):
(WI.NodeOverlayListSection.prototype.layout):
(WI.NodeOverlayListSection.prototype._handleOverlayStateChanged):
(WI.NodeOverlayListSection.prototype._handleToggleAllCheckboxChanged):
(WI.NodeOverlayListSection.prototype._updateToggleAllCheckbox):
Removed all the specific implementations for CSS Grid after generalizing them into WI.NodeOverlayListSection.

12:57 PM Changeset in webkit [289756] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rebase PRs on tip of branch (Follow-up fix)
​https://bugs.webkit.org/show_bug.cgi?id=236389
<rdar://problem/88705147>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(CleanGitRepo.run): Squash git rebase --abort errors.

  • CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247229@main

12:49 PM Changeset in webkit [289755] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r289686. rdar://problem/88689388

contain:content breaks fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=236470
<rdar://88689388>

Reviewed by Simon Fraser.

Source/WebCore:

Paint/layout containment forms a containing block for fixed positioned block boxes. It makes all fixed
positioned descendants anchored (contained) to this layout container.
This patch enables fullscreen boxes break out of this non-ICB based layout scope (this is similar to what we
do for other, "layout scope changing" properties, see canContainFixedPositionObjects).

Test: fullscreen/fullscreen-prevented-by-containment.html

  • css/fullscreen.css: (:-webkit-full-screen-ancestor:not(iframe)):
  • css/parser/CSSParserContext.cpp: (WebCore::CSSParserContext::CSSParserContext):

LayoutTests:

  • fullscreen/fullscreen-prevented-by-containment-expected.txt: Added.
  • fullscreen/fullscreen-prevented-by-containment.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:49 PM Changeset in webkit [289754] by Russell Epstein
  • 5 edits
    4 deletes in branches/safari-613-branch

Cherry-pick r289682. rdar://problem/88843567

Unreviewed, reverting r289498.
​https://bugs.webkit.org/show_bug.cgi?id=236534

Speedometer2 2% regression

Reverted changeset:

"Dialog element only animates once"
​https://bugs.webkit.org/show_bug.cgi?id=236274
​https://commits.webkit.org/r289498

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289682 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:49 PM Changeset in webkit [289753] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r289658. rdar://problem/88678598

Regression(r287684) Microsoft teams meeting URLs fail to open the app
​https://bugs.webkit.org/show_bug.cgi?id=236516
<rdar://88678598>

Reviewed by Geoffrey Garen.

Add a quirk for Microsoft teams.

Source/WebCore:

  • page/Quirks.cpp: (WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):
  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289658 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:29 PM Changeset in webkit [289752] by Fujii Hironori
  • 2 edits in trunk/Tools

run-jsc-stress-tests reports "in `<module:URI>': uninitialized class variable @@schemes in URI (NameError)" with Ruby 3.1
​https://bugs.webkit.org/show_bug.cgi?id=236281

Reviewed by Yusuke Suzuki.

Ruby 3.1.0 removed @@schemes and added URI.register_scheme.

  • Scripts/run-jsc-stress-tests: Added register_scheme class

method if not exists. Use the register_scheme method for ssh.

12:12 PM Changeset in webkit [289751] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Add a centerControlsBar in InlineMediaControls
​https://bugs.webkit.org/show_bug.cgi?id=236575

Reviewed by Jer Noble.

When a subclass of InlineMediaControls implements _centerContainerButtons()
to return a list of elements, a control bar will be added as a child of the
media-controls element.

No behavior change so far.

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls):
(InlineMediaControls.prototype.layout):
(InlineMediaControls.prototype._centerContainerButtons):

11:57 AM Changeset in webkit [289750] by Russell Epstein
  • 5 edits
    4 deletes in branches/safari-613.1.17.1-branch

Cherry-pick r289682. rdar://problem/88843567

Unreviewed, reverting r289498.
​https://bugs.webkit.org/show_bug.cgi?id=236534

Speedometer2 2% regression

Reverted changeset:

"Dialog element only animates once"
​https://bugs.webkit.org/show_bug.cgi?id=236274
​https://commits.webkit.org/r289498

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289682 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:57 AM Changeset in webkit [289749] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289686. rdar://problem/88689388

contain:content breaks fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=236470
<rdar://88689388>

Reviewed by Simon Fraser.

Source/WebCore:

Paint/layout containment forms a containing block for fixed positioned block boxes. It makes all fixed
positioned descendants anchored (contained) to this layout container.
This patch enables fullscreen boxes break out of this non-ICB based layout scope (this is similar to what we
do for other, "layout scope changing" properties, see canContainFixedPositionObjects).

Test: fullscreen/fullscreen-prevented-by-containment.html

  • css/fullscreen.css: (:-webkit-full-screen-ancestor:not(iframe)):
  • css/parser/CSSParserContext.cpp: (WebCore::CSSParserContext::CSSParserContext):

LayoutTests:

  • fullscreen/fullscreen-prevented-by-containment-expected.txt: Added.
  • fullscreen/fullscreen-prevented-by-containment.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:57 AM Changeset in webkit [289748] by Russell Epstein
  • 5 edits
    4 deletes in branches/safari-613.1.17.0-branch

Cherry-pick r289682. rdar://problem/88843567

Unreviewed, reverting r289498.
​https://bugs.webkit.org/show_bug.cgi?id=236534

Speedometer2 2% regression

Reverted changeset:

"Dialog element only animates once"
​https://bugs.webkit.org/show_bug.cgi?id=236274
​https://commits.webkit.org/r289498

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289682 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:57 AM Changeset in webkit [289747] by Russell Epstein
  • 5 edits in branches/safari-613.1.17.1-branch/Source

Cherry-pick r289658. rdar://problem/88678598

Regression(r287684) Microsoft teams meeting URLs fail to open the app
​https://bugs.webkit.org/show_bug.cgi?id=236516
<rdar://88678598>

Reviewed by Geoffrey Garen.

Add a quirk for Microsoft teams.

Source/WebCore:

  • page/Quirks.cpp: (WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):
  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289658 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:57 AM Changeset in webkit [289746] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289686. rdar://problem/88689388

contain:content breaks fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=236470
<rdar://88689388>

Reviewed by Simon Fraser.

Source/WebCore:

Paint/layout containment forms a containing block for fixed positioned block boxes. It makes all fixed
positioned descendants anchored (contained) to this layout container.
This patch enables fullscreen boxes break out of this non-ICB based layout scope (this is similar to what we
do for other, "layout scope changing" properties, see canContainFixedPositionObjects).

Test: fullscreen/fullscreen-prevented-by-containment.html

  • css/fullscreen.css: (:-webkit-full-screen-ancestor:not(iframe)):
  • css/parser/CSSParserContext.cpp: (WebCore::CSSParserContext::CSSParserContext):

LayoutTests:

  • fullscreen/fullscreen-prevented-by-containment-expected.txt: Added.
  • fullscreen/fullscreen-prevented-by-containment.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:57 AM Changeset in webkit [289745] by Russell Epstein
  • 5 edits in branches/safari-613.1.17.0-branch/Source

Cherry-pick r289658. rdar://problem/88678598

Regression(r287684) Microsoft teams meeting URLs fail to open the app
​https://bugs.webkit.org/show_bug.cgi?id=236516
<rdar://88678598>

Reviewed by Geoffrey Garen.

Add a quirk for Microsoft teams.

Source/WebCore:

  • page/Quirks.cpp: (WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):
  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289658 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:48 AM Changeset in webkit [289744] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.2

11:29 AM Changeset in webkit [289743] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.2

11:05 AM Changeset in webkit [289742] by Antti Koivisto
  • 16 edits
    1 copy
    1 add in trunk

[CSS Container Queries] Implement full query parser and evaluator
​https://bugs.webkit.org/show_bug.cgi?id=236580

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:

Source/WebCore:

So far we have been using the media query parser to parse container queries.
It does not support nesting and other necessary features. Also the produced data
structures are awkward to evaluate.

​https://drafts.csswg.org/css-contain-3/#container-rule

This patch supports size queries but not style queries. It supports both the current spec
size query syntax "size(foo)" (used in WPTs), and the non-function POR syntax from
​https://github.com/w3c/csswg-drafts/issues/6870#issuecomment-1022430911.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp: Added.

(WebCore::ContainerQueryParser::parse):
(WebCore::ContainerQueryParser::consumeContainerQuery):
(WebCore::ContainerQueryParser::consumeCondition):
(WebCore::ContainerQueryParser::consumeSizeQuery):

No support for range operators ('<' etc) yet.

  • css/ContainerQueryParser.h: Copied from Source/WebCore/css/ContainerQuery.h.

(WebCore::ContainerQueryParser::ContainerQueryParser):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeContainerRule):

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::computeSize):
(WebCore::Style::ContainerQueryEvaluator::evaluate const):
(WebCore::Style::ContainerQueryEvaluator::evaluateQuery const):
(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

Just 'width' and 'height' for now, no new size features yet.

  • style/ContainerQueryEvaluator.h:

LayoutTests:

10:47 AM Changeset in webkit [289741] by Russell Epstein
  • 1 copy in branches/safari-614.1.4-branch

New branch.

10:39 AM Changeset in webkit [289740] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

CallLinkInfo::emitFastPathImpl() should avoid external scratch register use on RISCV64
​https://bugs.webkit.org/show_bug.cgi?id=236064

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-02-14
Reviewed by Yusuke Suzuki.

Avoid external scratch register usage in CallLinkInfo::emitFastPathImpl()
for RISCV64 since the scratch register ends up having to be used in the
branchTestPtr implementation of RISCV64's MacroAssembler.

The RISCV64-specific alternative is to suffer resolving and loading from
the callee address for both branching operations. Other platforms
continue to operate with the external scratch register as they either
use a wider set of scratch registers or don't even have to use scratch
registers for the load and branching operations used here.

  • assembler/CPU.h: Add isRISCV64(). Also impose a more sensible order.

(JSC::isMIPS):
(JSC::isRISCV64):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::emitFastPathImpl):

9:58 AM Changeset in webkit [289739] by J Pascoe
  • 7 edits in trunk/Source

[WebAuthn] Modify _WKWebAuthenticationAssertionResponse according to internal needs
​https://bugs.webkit.org/show_bug.cgi?id=236369
rdar://88585811

Reviewed by Brent Fulgham.

Source/WebCore:

This patch modifies AuthenticatorAssertionResponse with additional
fields and populates them according to internal needs.

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

(WebCore::AuthenticatorAssertionResponse::group const):
(WebCore::AuthenticatorAssertionResponse::synchronizable const):
(WebCore::AuthenticatorAssertionResponse::setGroup):
(WebCore::AuthenticatorAssertionResponse::setSynchronizable):

Source/WebKit:

This patch modifies the _WKWebAuthenticationAssertionResponse API object with additional
fields and populates them according to internal needs.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:

(-[_WKWebAuthenticationAssertionResponse synchronizable]):
(-[_WKWebAuthenticationAssertionResponse group]):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(groupForAttributes):
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):

9:07 AM Changeset in webkit [289738] by ntim@apple.com
  • 7 edits in trunk

Don't perform layout in WKBundlePagePostSynchronousMessageForTesting
​https://bugs.webkit.org/show_bug.cgi?id=236579

Reviewed by Brady Eidson.

This turned out to be a problem for bug 22722, which introduced the WithLayout::No workaround.

r188793 introduced this layoutIfNeeded call specifically for UI event messages, so only perform the
layout in that specific case. Also remove the workaround introduced in bug 22722.

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePagePostSynchronousMessageForTesting):
(WKBundlePageLayoutIfNeeded):
(WKBundlePagePostSynchronousMessageForTestingWithoutLayout): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:

(WTR::postSynchronousPageMessage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::postSynchronousPageMessageWithReturnValue):
(WTR::TestRunner::grantWebNotificationPermission):
(WTR::TestRunner::denyWebNotificationPermission):

7:28 AM Changeset in webkit [289737] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Re-enable build retry for PRs
​https://bugs.webkit.org/show_bug.cgi?id=236300
<rdar://problem/88628832>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.analyzeResults): Enable retry for PRs with failing builds.
(CleanGitRepo.run): Abort any failed rebases.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247222@main

7:19 AM Changeset in webkit [289736] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
​https://bugs.webkit.org/show_bug.cgi?id=229283

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-14
Reviewed by Ryosuke Niwa.

Source/WebCore:

Position::upstream handles edge cases like tables specially which can lead to
InsertParagraphSeparatorCommand::doApply incorrectly expecting a next sibling after a text
node at last position in order to perform a split. This patch works around that by ignoring
the split in that case.

Test: editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply): Only try and remove remaining nodes if
splitTo is not null. moveRemainingSiblingsToNewParent will be a no-op when n is null. Also
switch from raw pointers to RefPtr<Node>.

LayoutTests:

Add regression test.

  • editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash-expected.txt: Added.
  • editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html: Added.
6:42 AM Changeset in webkit [289735] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/inline/hidpi-outline-auto-with-border-radius-vertical-rtl.html
​https://bugs.webkit.org/show_bug.cgi?id=236572

Reviewed by Antti Koivisto.

adjustVisualGeometryForDisplayBox needs the line's logical top (which is turned into visual inside
at (lineBoxLogicalTop + logicalRect.top())).

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
6:37 AM Changeset in webkit [289734] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/block/float/float-with-fractional-height-vertical-lr.html
​https://bugs.webkit.org/show_bug.cgi?id=236576

Reviewed by Antti Koivisto.

Let's translate the incoming float boxes' visual coordinates to logical for line layout.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::prepareFloatingState):

6:06 AM Changeset in webkit [289733] by graouts@webkit.org
  • 4 edits
    2 adds in trunk/LayoutTests

[model] refactor model document tests to use a shared testing function
​https://bugs.webkit.org/show_bug.cgi?id=236578

Reviewed by Dean Jackson.

Add a new model_document_test function that both model document tests can use
to get the document loaded inside the iframe.

  • http/tests/model/model-document-interactive-expected.txt:
  • http/tests/model/model-document-interactive.html:
  • http/tests/model/model-document.html:
  • http/tests/model/resources/model-document.js: Added.

(const.model_document_test):

6:03 AM Changeset in webkit [289732] by Martin Robinson
  • 13 edits in trunk

Animation from "scale()" to "scale() translate()" does not yield the expected result
​https://bugs.webkit.org/show_bug.cgi?id=222595
<rdar://problem/74926700>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Mark tests as passing.
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-003-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

When blending two transform lists, where one list is longer than the other, extending the
shorter list with identity transform functions. This is the behavior specified in the
CSS Transforms Module Level 2 specification.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists): Instead of checking each frame
against the first keyframe, collect a list of shared transform primitives and check that each
list has the same number of compatible primitives or a prefix of compatible primitives and is
shorter.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): When the transform operation
lists have different sizes, don't always return false. Instead check that the parts that do exist
have matching primitives.

  • platform/graphics/transforms/TransformOperations.cpp:

(WebCore::TransformOperations::operationsMatch const): Only check the transformations in
the shared list size.
(WebCore::TransformOperations::blendByMatchingOperations const): Properly handle when one of the
two operations is null instead of just the toOperation.

LayoutTests:

  • compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt:
  • compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
5:04 AM Changeset in webkit [289731] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Avoid mapping attributes when the vector is empty in createImage
​https://bugs.webkit.org/show_bug.cgi?id=236521

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-14
Reviewed by Žan Doberšek.

We are just refactoring the function to avoid calling the map of
the original vector in case it is empty. Also we changed a double
negative in the isEmpty condition to make it clearer.

No new tests, there are tests checking this code.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createImage const):

4:20 AM Changeset in webkit [289730] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

Don't throw exception when controls are removed
​https://bugs.webkit.org/show_bug.cgi?id=236456

Reviewed by Xabier Rodriguez-Calvar.

In mediaControlsBase.js, when media controls are removed, calling controlsAreHidden() can cause
an exception because the panel has no parentElement.

This patch is authored by Eugene Mutavchi <​Ievgen_Mutavchi@comcast.com>
See: ​https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/775

  • Modules/mediacontrols/mediaControlsBase.js: Return false if there's no parent.
3:29 AM Changeset in webkit [289729] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GTK] [WPE] Fix problem when the buffer object is released before we try to send it to the compositor
​https://bugs.webkit.org/show_bug.cgi?id=236520

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-14
Reviewed by Žan Doberšek.

There is a layout test failing because the buffer object was
released before the swap buffers method was called and we were
calling the construction of the TextureMapperPlatformLayerDmabuf
with wrong data.

Fixes webgl/1.0.3/conformance/context/context-release-with-workers.html.

  • platform/graphics/angle/GraphicsContextGLANGLE.h: Add the

isReleased function to the EGLImageBacking class.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp: Ditto.

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::EGLImageBacking::isReleased):
Bail out when the image backing was released.

3:20 AM Changeset in webkit [289728] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[ATSPI] Reduce the size of dbus objects Vectors
​https://bugs.webkit.org/show_bug.cgi?id=236581

Reviewed by Adrian Perez de Castro.

Use 3 for root, 1 for hyperlink and 7 for object.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerObject):

  • accessibility/atspi/AccessibilityAtspi.h:

Feb 13, 2022:

11:30 PM Changeset in webkit [289727] by Fujii Hironori
  • 5 edits
    2 deletes in trunk/LayoutTests

Delete fast/animation/request-animation-frame-disabled.html after RequestAnimationFrameEnabled setting is deleted
​https://bugs.webkit.org/show_bug.cgi?id=236569

Reviewed by Ryosuke Niwa.

r288797 (Bug 235866) deleted RequestAnimationFrameEnabled setting.
We no longer need fast/animation/request-animation-frame-disabled.html
which tests disabling the setting.

  • fast/animation/request-animation-frame-disabled-expected.txt: Removed.
  • fast/animation/request-animation-frame-disabled.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
10:22 PM Changeset in webkit [289726] by Lauro Moura
  • 9 edits in trunk/Source

Unreviewed, non-unified build fixes
​https://bugs.webkit.org/show_bug.cgi?id=236577

Source/JavaScriptCore:

  • heap/StructureAlignedMemoryAllocator.cpp: Add missing include.

Source/WebCore:

  • Modules/notifications/NotificationEvent.cpp: Missing include.
  • platform/graphics/ContentTypeUtilities.cpp: Namespace function.

(WebCore::contentTypeMeetsContainerAndCodecTypeRequirements):

  • workers/service/ServiceWorkerGlobalScope.cpp: Missing include.

Source/WebKit:

  • UIProcess/Notifications/ServiceWorkerNotificationHandler.h: Forward

declare.

  • UIProcess/WebProcessProxy.cpp: Missing include.
9:22 PM Changeset in webkit [289725] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, fix Linux build of libpas part 2
​https://bugs.webkit.org/show_bug.cgi?id=235347

  • libpas/src/libpas/pas_thread_local_cache.c:

(stop_allocator):

9:14 PM Changeset in webkit [289724] by ysuzuki@apple.com
  • 7 edits in trunk/Source/bmalloc

Unreviewed, fix Linux build of libpas
​https://bugs.webkit.org/show_bug.cgi?id=235347

  • libpas/src/libpas/pas_committed_pages_vector.c:

(pas_committed_pages_vector_construct):

  • libpas/src/libpas/pas_committed_pages_vector.h:

(pas_committed_pages_vector_is_committed):

  • libpas/src/libpas/pas_local_view_cache.h:

(pas_local_view_cache_prepare_to_pop):

  • libpas/src/libpas/pas_segregated_heap.c:

(pas_segregated_heap_ensure_allocator_index):

  • libpas/src/libpas/pas_thread_local_cache.c:

(stop_allocator):

  • libpas/src/libpas/pas_try_allocate_primitive.h:

(pas_try_allocate_primitive_impl_casual_case):

7:49 PM Changeset in webkit [289723] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Decouple AXObjectCache handleChildrenChanged and postNotification.
​https://bugs.webkit.org/show_bug.cgi?id=234059
<rdar://problem/86247404>

Reviewed by Chris Fleizach.

This fixes ~7 accessibility tests in isolated tree mode.
Also fixes flakiness in accessibility/dialog-showModal.html.

AXObjectCache::handleChildrenChanged was posting an AXChildrenChanged
notification (postNotification), which causes a double deferral of these
notifications, instead of actually handling the notification.
ChildrenChanged notifications should be handled before many other
notifications of property changes since they are DOM mutations, objects
added or removed, before properties in the resulting objects may be
updated. This patch fixes this problem by making handleChildrenChanged
to actually handle the notifications and update the isolated tree.
In addition, handling of the "open" attribute for <dialog> elements now
updates children, which fixes the flakiness observed in the
dialog-showModal.html test.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleChildrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::deferModalChange):
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::performCacheUpdateTimerFired):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
Removed alternative fix where we were processing the pending
ChildrenChanged Notifications before updating the isolated tree.

  • accessibility/isolatedtree/AXIsolatedTree.h:
5:52 PM Changeset in webkit [289722] by commit-queue@webkit.org
  • 25 edits
    4 adds
    2 deletes in trunk

Add support for parsing 'subgrid' in grid-template-columns/row
​https://bugs.webkit.org/show_bug.cgi?id=236054

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-13
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Imported lastest subgrid tests.

  • web-platform-tests/css/css-grid/subgrid/grid-template-computed-nogrid-expected.txt:
  • web-platform-tests/css/css-grid/subgrid/grid-template-computed-nogrid.html:
  • web-platform-tests/css/css-grid/subgrid/grid-template-invalid-expected.txt: Added.
  • web-platform-tests/css/css-grid/subgrid/grid-template-invalid.html:
  • web-platform-tests/css/css-grid/subgrid/grid-template-valid-expected.txt: Added.
  • web-platform-tests/css/css-grid/subgrid/grid-template-valid.html:

Source/WebCore:

Adds support for parsing the 'subgrid' keyword followed by a list of line names for
grid-template-columns/rows.
Adds a new CSSSubgridValue wrapper around CSSValueList to represent this.
Also adds support for converting this into style data in StyleBuilderConverter, and serializing
the specified value for computed value (used when the element specified subgrid but doesn't
have an appropriate grid parent).

Tests: imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-template-invalid.html

imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-template-valid.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::namedGridLineCount const):
(WebCore::addValuesForNamedGridLinesAtIndex):
(WebCore::populateSubgridLineNameList):
(WebCore::valueForGridTrackList):

  • css/CSSSubgridValue.cpp: Added.

(WebCore::CSSSubgridValue::customCSSText const):
(WebCore::CSSSubgridValue::CSSSubgridValue):

  • css/CSSSubgridValue.h: Added.
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isSubgridValue const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::add):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeGridLineNames):
(WebCore::consumeSubgridNameRepeatFunction):
(WebCore::consumeGridTrackList):
(WebCore::consumeGridTemplatesRowsOrColumns):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::consumeGridTemplateRowsAndAreasAndColumns):
(WebCore::CSSPropertyParser::consumeGridTemplateShorthand):
(WebCore::CSSPropertyParser::consumeGridShorthand):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::gridSubgridRows const):
(WebCore::RenderStyle::gridSubgridColumns const):
(WebCore::RenderStyle::setGridSubgridRows):
(WebCore::RenderStyle::setGridSubgridColumns):

  • rendering/style/StyleGridData.cpp:

(WebCore::StyleGridData::StyleGridData):

  • rendering/style/StyleGridData.h:

(WebCore::StyleGridData::operator== const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::createGridLineNamesList):
(WebCore::Style::BuilderConverter::createGridTrackList):

  • style/StyleBuilderCustom.h:

Source/WTF:

Adds a new experimental preference for subgrid support, disabled by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Updated TestExpectations to list all the subgrid tests individually, now that we pass a few.

  • TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-template-computed-nogrid-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-template-computed-nogrid-expected.txt: Removed.
5:09 PM Changeset in webkit [289721] by beidson@apple.com
  • 72 edits
    1 copy
    6 adds in trunk

Implement ServiceWorkerRegistration.showNotification()
​https://bugs.webkit.org/show_bug.cgi?id=22722

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/notifications/idlharness.https.any-expected.txt:
  • web-platform-tests/notifications/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

Tests: http/tests/workers/service/shownotification-allowed.html

http/tests/workers/service/shownotification-denied.html

Previously ServiceWorkerRegistration.showNotification(), NotificationEvent, and onnotificationclicked/closed were stubbed out.
This patch hooks them up.

It's largely a plumbing patch, doing the following:

  • Making sure calls to-and-from NotificationClient happen on the correct threads
  • Making sure Notification related classes now understand how to cope with not having an associated WebPage(Proxy)
  • Making sure all of the relevant IPC machinery is in place to handle pageless notifications
  • Adds super useful logging
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::show):
(WebCore::Notification::dispatchShowEvent):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):

  • Modules/notifications/NotificationEvent.cpp:

(WebCore::NotificationEvent::create):
(WebCore::NotificationEvent::NotificationEvent):

  • Modules/notifications/NotificationEvent.h:
  • dom/EmptyScriptExecutionContext.h:
  • dom/ScriptExecutionContext.h:
  • page/RuntimeEnabledFeatures.h:
  • workers/WorkerOrWorkletGlobalScope.h:
  • workers/WorkerThread.h:
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::~ServiceWorkerGlobalScope):
(WebCore::ServiceWorkerGlobalScope::postTaskToFireNotificationEvent):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::showNotification):
(WebCore::ServiceWorkerRegistration::getNotifications):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::start):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::registrationStoreDatabaseFailedToOpen):
(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::processPushMessage):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getPendingPushMessages):
(WebKit::NetworkProcess::processPushMessage):

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::getPendingPushMessages):
(WebKit::NetworkNotificationManager::showNotification):

  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • Platform/Logging.h:
  • Shared/Notifications/NotificationManagerMessageHandler.h:
  • Shared/Notifications/NotificationManagerMessageHandler.messages.in:
  • Sources.txt:
  • UIProcess/API/APINotificationProvider.h:

(API::NotificationProvider::show):

  • UIProcess/API/C/WKNotificationManager.cpp:

(WKNotificationManagerGetSharedServiceWorkerNotificationManager):

  • UIProcess/API/C/WKNotificationManager.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _sharedServiceWorkerNotificationManager]):
(-[WKWebsiteDataStore _getPendingPushMessages:]):
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/glib/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::show):

  • UIProcess/API/glib/WebKitNotificationProvider.h:
  • UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp: Added.

(WebKit::ServiceWorkerNotificationHandler::singleton):
(WebKit::ServiceWorkerNotificationHandler::ServiceWorkerNotificationHandler):
(WebKit::ServiceWorkerNotificationHandler::requestSystemNotificationPermission):
(WebKit::ServiceWorkerNotificationHandler::dataStoreForNotificationID):
(WebKit::ServiceWorkerNotificationHandler::showNotification):
(WebKit::ServiceWorkerNotificationHandler::cancelNotification):
(WebKit::ServiceWorkerNotificationHandler::clearNotifications):
(WebKit::ServiceWorkerNotificationHandler::didDestroyNotification):

  • UIProcess/Notifications/ServiceWorkerNotificationHandler.h: Copied from Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h.
  • UIProcess/Notifications/WebNotification.cpp:

(WebKit::WebNotification::WebNotification):

  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::create):
(WebKit::WebNotification::sourceConnection const):

  • UIProcess/Notifications/WebNotificationManagerMessageHandler.cpp:

(WebKit::WebNotificationManagerMessageHandler::showNotification):

  • UIProcess/Notifications/WebNotificationManagerMessageHandler.h:
  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::sharedServiceWorkerManager):
(WebKit::identifierForPagePointer):
(WebKit::WebNotificationManagerProxy::show):
(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):
(WebKit::WebNotificationManagerProxy::clearNotifications):
(WebKit::WebNotificationManagerProxy::providerDidShowNotification):
(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):
(WebKit::WebNotificationManagerProxy::providerDidUpdateNotificationPolicy):
(WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies):
(WebKit::pageIDsMatch): Deleted.
(WebKit::pageAndNotificationIDsMatch): Deleted.

  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/Notifications/WebNotificationProvider.cpp:

(WebKit::WebNotificationProvider::show):

  • UIProcess/Notifications/WebNotificationProvider.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showNotification):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToAllRemoteWorkerProcesses):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::disableRemoteWorkers):
(WebKit::WebProcessProxy::enableRemoteWorkers):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::showServiceWorkerNotification):
(WebKit::WebsiteDataStore::cancelServiceWorkerNotification):
(WebKit::WebsiteDataStore::clearServiceWorkerNotification):
(WebKit::WebsiteDataStore::didDestroyServiceWorkerNotification):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Notifications/WebNotificationManager.cpp:

(WebKit::WebNotificationManager::sendNotificationMessage):
(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::cancel):
(WebKit::WebNotificationManager::didDestroyNotification):
(WebKit::WebNotificationManager::didShowNotification):
(WebKit::WebNotificationManager::didClickNotification):
(WebKit::WebNotificationManager::didCloseNotifications):
(WebKit::sendNotificationMessage): Deleted.

  • WebProcess/Notifications/WebNotificationManager.h:
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:

(WebKit::WebNotificationClient::WebNotificationClient):
(WebKit::WebNotificationClient::~WebNotificationClient):
(WebKit::WebNotificationClient::show):
(WebKit::WebNotificationClient::cancel):
(WebKit::WebNotificationClient::notificationObjectDestroyed):
(WebKit::WebNotificationClient::notificationControllerDestroyed):
(WebKit::WebNotificationClient::requestPermission):
(WebKit::WebNotificationClient::checkPermission):

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

To reliably support testing ServiceWorker notifications, TestRunner needed to actually grant/deny permissions in the UI process
like a proper NotificationProvider would.

It also has to understand showing a notification without an associated WKPage.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::postSimulateWebNotificationClickForServiceWorkerNotifications):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::grantWebNotificationPermission):
(WTR::TestRunner::denyWebNotificationPermission):
(WTR::TestRunner::simulateWebNotificationClickForServiceWorkerNotifications):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):
(WTR::TestController::grantNotificationPermission):
(WTR::TestController::denyNotificationPermission):
(WTR::TestController::simulateWebNotificationClickForServiceWorkerNotifications):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::WebNotificationProvider):
(WTR::notificationManagerForPage):
(WTR::WebNotificationProvider::showWebNotification):
(WTR::WebNotificationProvider::addNotificationManager):
(WTR::WebNotificationProvider::notificationPermissions):
(WTR::WebNotificationProvider::setPermission):
(WTR::WebNotificationProvider::simulateWebNotificationClickForServiceWorkerNotifications):
(WTR::WebNotificationProvider::reset):

  • WebKitTestRunner/WebNotificationProvider.h:

LayoutTests:

Test a ServiceWorker showing a notification both when it's allowed and when it's denied.

  • http/tests/workers/service/resources/shownotification-worker.js: Added.

(async const):
(let.messageClients):
(async event):

  • http/tests/workers/service/shownotification-allowed-expected.txt: Added.
  • http/tests/workers/service/shownotification-allowed.html: Added.
  • http/tests/workers/service/shownotification-denied-expected.txt: Added.
  • http/tests/workers/service/shownotification-denied.html: Added.
1:07 PM Changeset in webkit [289720] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the internal macOS build

Add some missing WebCore namespaces (which are presumably now necessary due to changes in unified source
groupings).

  • UIProcess/mac/DisplayCaptureSessionManager.mm:

(WebKit::alertForWindowSelection):
(WebKit::DisplayCaptureSessionManager::deviceSelectedForTesting):
(WebKit::DisplayCaptureSessionManager::showWindowPicker):
(WebKit::DisplayCaptureSessionManager::showScreenPicker):
(WebKit::DisplayCaptureSessionManager::isAvailable):

12:48 PM Changeset in webkit [289719] by Andres Gonzalez
  • 5 edits in trunk/LayoutTests

Fix for accessibility/image-map1.html in isolated tree mode.
​https://bugs.webkit.org/show_bug.cgi?id=236565
<rdar://problem/88874467>

Reviewed by Darin Adler.

Don't use focus manipulation just to retrieve an accessible element,
instead use accessibilityElementById. Updated the outdated code in this
test.

  • accessibility/image-map1-expected.txt:
  • accessibility/image-map1.html:
  • platform/glib/accessibility/image-map1-expected.txt:
  • platform/win/accessibility/image-map1-expected.txt:
12:26 PM Changeset in webkit [289718] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add comment on how StructureMemoryManager grows the free list when there are no free blocks.
​https://bugs.webkit.org/show_bug.cgi?id=236568

Reviewed by Saam Barati.

Also, use uint8_t* rather than rely on the fact that sizeof(MarkedBlock) == 1.

  • heap/StructureAlignedMemoryAllocator.cpp:

(JSC::StructureMemoryManager::tryMallocStructureBlock):

12:22 PM Changeset in webkit [289717] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make StructureMemoryManager alignment assert a RELEASE_ASSERT
​https://bugs.webkit.org/show_bug.cgi?id=236567

Reviewed by Saam Barati.

Also, check the structure base pointer is non-zero.

  • heap/StructureAlignedMemoryAllocator.cpp:

(JSC::StructureMemoryManager::StructureMemoryManager):

10:06 AM Changeset in webkit [289716] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Not all atomic inline level boxes need ideographic baseline when in vertical writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236556

Reviewed by Antti Koivisto.

Replaced boxes and orthogonal inline-block containers should use ideographic type of baseline.
(e.g. can't sync baselines coming from orthogonal inline-blocks.)

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

9:53 AM Changeset in webkit [289715] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, gtk buildfix after r289706
​https://bugs.webkit.org/show_bug.cgi?id=236563

  • Headers.cmake:
9:41 AM Changeset in webkit [289714] by Alan Bujtas
  • 5 edits in trunk

[LFC][IFC] Take writing direction into account when setting up the root geometry
​https://bugs.webkit.org/show_bug.cgi?id=236548

Reviewed by Antti Koivisto.

Source/WebCore:

This fixes cases when the root block container itself is in a vertical writing context.
<div style="writing-mode: vertical-rl">

<div style="display: inline-block; padding: 10px">vertical content</div>

</div>

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateFormattingRootGeometryAndInvalidate):

LayoutTests:

  • platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt: Progressions.
  • platform/mac/fast/text/international/bidi-override-expected.txt:
8:00 AM Changeset in webkit [289713] by Andres Gonzalez
  • 6 edits
    2 adds in trunk

Expose the correct role, subrole and role description properties for the <dialog> element.
​https://bugs.webkit.org/show_bug.cgi?id=236359

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/dialog-properties.html

Elements with role="dialog" are exposed to accessibility clients with
role AXGroup, subrole AXApplicationDialog and role description
"web dialog". This patch implements this behavior for the <dialog>
element.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::defaultObjectInclusion const):

LayoutTests:

Tests that these AX properties have the expected values both when the
dialog is shown modal or modeless.

  • accessibility/dialog-properties-expected.txt: Added.
  • accessibility/dialog-properties.html: Added.
6:56 AM Changeset in webkit [289712] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Introduce Box::ElementType::IntegrationInlineBlock
​https://bugs.webkit.org/show_bug.cgi?id=236554

Reviewed by Antti Koivisto.

This is in preparation for adding vertical baseline support for inline-block boxes with alphabetic baseline.
The integration tree builder constructs Replaced layout boxes for both inline-block and replaced types.
In LineBoxBuilder we need to be able to tell whether a particular inline level box is really a replaced
box or just an inline-block in order to assign the correct type of baseline (alphabetic/ideographic).

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box): Let's use the ElementType for the integration root too.

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isIntegrationBlockContainer const):
(WebCore::Layout::Box::isIntegrationInlineBlock const):
(WebCore::Layout::Box::setIsAnonymous):
(WebCore::Layout::Box::setIsIntegrationBlockContainer): Deleted.

6:55 AM Changeset in webkit [289711] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Pass in the correct LineDirectionMode value to RenderBoxModelObject::baselinePosition
​https://bugs.webkit.org/show_bug.cgi?id=236552

Reviewed by Antti Koivisto.

This is when setting up the BoxGeometry for the atomic inline level boxes.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

6:53 AM Changeset in webkit [289710] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add missing bidi vertical adjustment when writing mode is not horizontal
​https://bugs.webkit.org/show_bug.cgi?id=236551

Reviewed by Antti Koivisto.

Last 2 missing vertical adjustments.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

6:48 AM Changeset in webkit [289709] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Baseline value is always logical
​https://bugs.webkit.org/show_bug.cgi?id=236549

Reviewed by Antti Koivisto.

Callers expect the baseline value to be always logical.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):

6:39 AM Changeset in webkit [289708] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix build when ATSPI is disabled

  • platform/graphics/PlatformDisplay.cpp: The ATK code also makes use of GUniqueOutPtr, so

include the corresponding header.

6:38 AM Changeset in webkit [289707] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Take writing mode value into account setting vertical margin
​https://bugs.webkit.org/show_bug.cgi?id=236538

Reviewed by Antti Koivisto.

Line layout works with logical values.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::horizontalLogicalMargin):
(WebCore::LayoutIntegration::verticalLogicalMargin):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
(WebCore::LayoutIntegration::logicalMargin): Deleted.

4:21 AM Changeset in webkit [289706] by Antti Koivisto
  • 10 edits
    1 add in trunk/Source/WebCore

[CSS Container Queries] Add separate ContainerQuery and FilteredContainerQuery types
​https://bugs.webkit.org/show_bug.cgi?id=236515

Reviewed by Alan Bujtas.

ContainerQuery is just a type alias to MediaQuerySet for now.
FilteredContainerQuery is a ContainerQuery plus name filter (type filter coming later).

  • WebCore.xcodeproj/project.pbxproj:
  • css/ContainerQuery.h: Added.

Move to a file of its own.

  • css/StyleRule.cpp:

(WebCore::StyleRuleContainer::StyleRuleContainer):
(WebCore::StyleRuleContainer::create):

  • css/StyleRule.h:
  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluate const):

  • style/ContainerQueryEvaluator.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::containerQueryMatches):

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::containerQueryFor const):

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):

Feb 12, 2022:

11:11 PM Changeset in webkit [289705] by ntim@apple.com
  • 2 edits in trunk/LayoutTests

Skip imported/w3c/web-platform-tests/url/toascii.window.html on Catalina/Big Sur

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:42 PM Changeset in webkit [289704] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

Fix typos in libpas docs
​https://bugs.webkit.org/show_bug.cgi?id=236550

Patch by Brandon Stewart <Brandon> on 2022-02-12
Reviewed by Yusuke Suzuki.

Fix several typos in libpas documentation.

  • libpas/Documentation.md:
5:18 PM Changeset in webkit [289703] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Do not try and read from /dev/null
​https://bugs.webkit.org/show_bug.cgi?id=236528
<rdar://problem/88836868>

Reviewed by Alexey Proskuryakov.

While writing to /dev/null is well defined, reading from it is not. Do not
read from /dev/null.

  • Scripts/webkitpy/layout_tests/servers/websocket_server.py:

(PyWebSocket.init): Delete _wsin.
(PyWebSocket._prepare_config): Ditto.
(PyWebSocket._spawn_process): Use executive.PIPE instead of os.devnull.
(PyWebSocket._stop_running_server): Delete _wsin.

5:05 PM Changeset in webkit [289702] by commit-queue@webkit.org
  • 10 edits
    3 adds in trunk/Source/WebKit

Update preference location used for CaptivePortalMode.
​https://bugs.webkit.org/show_bug.cgi?id=236135
<rdar://problem/88486544>

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-02-12
Reviewed by Geoffrey Garen.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/_WKSystemPreferences.h: Added.
  • UIProcess/API/Cocoa/_WKSystemPreferences.mm: Added.

(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):
(+[_WKSystemPreferences isCaptivePortalModeIgnored:]):
(+[_WKSystemPreferences setCaptivePortalModeIgnored:ignore:]):

  • UIProcess/API/Cocoa/_WKSystemPreferencesInternal.h: Added.
  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults findPreferenceChangesAndNotifyForKeys:toValuesForKeys:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::captivePortalModeConfigUpdateCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
(WebKit::isCaptivePortalModeEnabledBySystemIgnoringCaching):
(WebKit::WebProcessPool::notifyPreferencesChanged):

  • UIProcess/WebProcessPool.h:
  • UIProcess/mac/DisplayCaptureSessionManager.h:
  • UIProcess/mac/DisplayCaptureSessionManager.mm:

(WebKit::DisplayCaptureSessionManager::promptForGetDisplayMedia):

  • WebKit.xcodeproj/project.pbxproj:
2:57 PM Changeset in webkit [289701] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Use system window and screen picker when available
​https://bugs.webkit.org/show_bug.cgi?id=236531
rdar://87111816

Unreviewed build fix.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm:

(WebCore::ScreenCaptureKitSharingSessionManager::takeSharingSessionForFilter):

2:44 PM Changeset in webkit [289700] by ysuzuki@apple.com
  • 4 edits
    2 adds in trunk

WebGL2 AllowShared TypedArray should be accepted
​https://bugs.webkit.org/show_bug.cgi?id=232662

Reviewed by Dean Jackson.

Source/WebCore:

Test: webgl/webgl-allow-shared-typed-array.html

TypedArray with [AllowShared] annotation is not handled properly, which results in handling it as Sequence<T>,
invoking iteration protocol to copy them. This patch adds that as the same to [AllowShared] ArrayBuffer / ArrayBufferView.

  • bindings/IDLTypes.h:
  • bindings/js/JSDOMConvertUnion.h:

LayoutTests:

  • webgl/webgl-allow-shared-typed-array-expected.txt: Added.
  • webgl/webgl-allow-shared-typed-array.html: Added.
1:33 PM Changeset in webkit [289699] by ntim@apple.com
  • 4 edits
    1 delete in trunk/LayoutTests

Unreviewed test gardening: imported/w3c/web-platform-tests/url/toascii.window.html

LayoutTests/imported/w3c:

  • web-platform-tests/url/toascii.window-expected.txt:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/url/toascii.window-expected.txt: Removed.
  • platform/mac/TestExpectations:
11:25 AM Changeset in webkit [289698] by Patrick Angle
  • 11 edits in trunk/Source/WebCore

Web Inspector: [Flexbox] Show item bounds, gaps, and free space in flex overlays
​https://bugs.webkit.org/show_bug.cgi?id=236410

Reviewed by Devin Rousso.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::flexibleBoxRendererBeganLayoutImpl):
(WebCore::InspectorInstrumentation::flexibleBoxRendererWrappedToNextLineImpl):
(WebCore::InspectorInstrumentation::instrumentingAgents):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::flexibleBoxRendererBeganLayout):
(WebCore::InspectorInstrumentation::flexibleBoxRendererWrappedToNextLine):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::reset):
(WebCore::InspectorDOMAgent::flexibleBoxRendererBeganLayout):
(WebCore::InspectorDOMAgent::flexibleBoxRendererWrappedToNextLine):
(WebCore::InspectorDOMAgent::flexibleBoxRendererCachedItemsAtStartOfLine):

  • inspector/agents/InspectorDOMAgent.h:
  • Add instrumentation points specifically for flexbox renderers to keep track of which items start a new line

inside flex containers. The start of the first line is not recorded because it will always be zero.

(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):

  • Force a layout of the document to ensure that our collection of flexbox line starts is correctly populated

when attaching an inspector, since without an inspector this information is not kept beyond layout.

  • inspector/InspectorOverlay.cpp:

(WebCore::drawLayoutPattern):

  • Generalize drawLayoutHatching to support different line styles in order to support the new stippling fill.
  • In order to support "flipping" the pattern we now use a rectangle encompassing the provided quad as the edges

we follow for filling the pattern (the existing clipping ensures that the final product is still within the
quad). This also resolves an issue that could occur in transformed containers (non-rectangular) where the
spacing was inconsistent at different rotations/perspectives.

(WebCore::drawLayoutStippling):

  • A new dot-pattern effect similar to hatching, but using small dots to fill the space instead.

(WebCore::drawLayoutHatching):

  • Updated to use the new generic drawLayoutPattern helper.

(WebCore::InspectorOverlay::drawFlexOverlay):
(WebCore::InspectorOverlay::buildFlexOverlay):

  • Handle iterating through the flex children to show their bounds as well as the spacing/gaps between them.

Almost all this work is done in relative terms, like leading/trailing/cross-axis/main-axis to make it easier to
reason about what should happen for different writing modes, text direction, flex direction, and flex wrapping.
To accomplish this coordinates of children are read through special corrected* helper functions that take in
to account the determined direction, main-axis reversal, and cross axis-reversal from all of the relevant
properties. This means there are only 8 (23) actual permutations of flex layout (since the layout inside each
individual child is irrelevant here). Throughout we are working with flex children frames that are relative to
their parent, which saves us from having to deal with transforms until after we have constructed most of our
overlay representation, only needing to be passed through childQuadToRootQuad before being added to the
appropriate part of the highlight object.

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::encode const):
(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::decode):

  • rendering/RenderBox.h:

(WebCore::RenderBox::marginBox const):

  • Add a way to get the entire margin box instead of its individual components.
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutFlexItems):

  • rendering/RenderFlexibleBox.h:
  • Make getting the computed inter-item and inter-line gap public so we can use them in the overlay.
  • Add instrumentation calls to keep track of the indexes of items that start a new line during layout when an

Inspector is attached.

  • platform/LayoutUnit.h:

(WebCore::operator!=):

10:16 AM Changeset in webkit [289697] by jer.noble@apple.com
  • 33 edits
    11 adds in trunk

Add settings to restrict media containers and codecs when in Captive Portal mode
​https://bugs.webkit.org/show_bug.cgi?id=236245

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/media-allowed-codecs.html

media/media-allowed-containers.html
media/media-source/media-source-allowed-codecs.html
media/media-source/media-source-allowed-containers.html

Add settings at the WebCore level to optionally declare a list of container types,
video codecs, audio codecs, and caption formats to allow when loading media through
HTMLMediaElement and MediaSource.

There are some cases where the codec ID, typically a four-character-code embedded
in the container itself, does not match the RFC4281 codec string. Notably, this is the case
with "mp4a.40" and 'aac '. So the settings must include both the codec ID and the codec
type in string form.

Query these lists in HTMLMediaElement::canPlayType() and MediaSource::isTypeSupported()
and reject ContentTypes which do not conform to the allowed types.

Query these lists in MediaSource::changeType() to disallow switching to an unsupported
ContentType.

If these lists are set, pass them into AVURLAsset as creation options.

When a new AVAssetTrack is loaded, query these lists and if the track's type does not
conform to the allowed types, synthesize an error and block further loading.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::isTypeSupported):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::changeType):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayType const):
(WebCore::HTMLMediaElement::allowedMediaContainerTypes const):
(WebCore::HTMLMediaElement::allowedMediaCodecTypes const):
(WebCore::HTMLMediaElement::allowedMediaVideoCodecTypes const):
(WebCore::HTMLMediaElement::allowedMediaAudioCodecTypes const):
(WebCore::HTMLMediaElement::allowedMediaCaptionFormatTypes const):

  • html/HTMLMediaElement.h:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::setAllowedMediaContainerTypes):
(WebCore::SettingsBase::setAllowedMediaVideoCodecTypes):
(WebCore::SettingsBase::setAllowedMediaAudioCodecTypes):
(WebCore::SettingsBase::setAllowedMediaCaptionFormatTypes):

  • page/SettingsBase.h:

(WebCore::SettingsBase::setAllowedMediaContainerTypes):
(WebCore::SettingsBase::allowedMediaContainerTypes const):
(WebCore::SettingsBase::setAllowedMediaVideoCodecTypes):
(WebCore::SettingsBase::allowedMediaVideoCodecTypes const):
(WebCore::SettingsBase::setAllowedMediaAudioCodecTypes):
(WebCore::SettingsBase::allowedMediaAudioCodecTypes const):
(WebCore::SettingsBase::setAllowedMediaCaptionFormatTypes):
(WebCore::SettingsBase::allowedMediaCaptionFormatTypes const):

  • platform/graphics/ContentTypeUtilities.cpp: Added.

(WebCore::contentTypesToCodecs):
(WebCore::contentTypeMeetsContainerAndCodecTypeRequirements):

  • platform/graphics/ContentTypeUtilities.h: Added.
  • platform/graphics/FourCC.h:

(WebCore::FourCC::encode const):
(WebCore::FourCC::decode):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::nullOptionalStringVector):
(WebCore::nullOptionalFourCCVector):
(WebCore::MediaPlayer::nextBestMediaEngine):
(WebCore::MediaPlayer::allowedMediaContainerTypes const):
(WebCore::MediaPlayer::allowedMediaVideoCodecTypes const):
(WebCore::MediaPlayer::allowedMediaAudioCodecTypes const):
(WebCore::MediaPlayer::allowedMediaCaptionFormatTypes const):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaEngineSupportParameters::encode const):
(WebCore::MediaEngineSupportParameters::decode):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::loadingMetadata const):

  • platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm:

(WebCore::contentTypesToCodecs): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::allTracksArePlayable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::trackIsPlayable const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsTypeAndCodecs):
(WebCore::assetTrackMetadataKeyNames):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setAllowedMediaContainerTypes):
(WebCore::InternalSettings::setAllowedMediaVideoCodecTypes):
(WebCore::InternalSettings::setAllowedMediaAudioCodecTypes):
(WebCore::InternalSettings::setAllowedMediaCaptionFormatTypes):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:

Source/WebKit:

RemoteMediaPlayerManager caches the results of supportsTypeAndCodecs() calls, which
is problematic when those results can change due to a change in settings. So enforce
the allowed codec and containers settings at the RemoteMediaPlayerManager level. Also,
pass those settings across the GPU process boundary via RemoteMediaPlayerProxyConfiguration.

Drive-by fix: refactor RemoteMediaPlayerProxyConfiguration::decode() so as not to require
re-declaring the types of every ivar, and greatly simplify the implementation.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:

(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

  • media/media-allowed-codecs-expected.txt: Added.
  • media/media-allowed-codecs.html: Added.
  • media/media-allowed-containers-expected.txt: Added.
  • media/media-allowed-containers.html: Added.
  • media/media-source/media-source-allowed-codecs-expected.txt: Added.
  • media/media-source/media-source-allowed-codecs.html: Added.
  • media/media-source/media-source-allowed-containers-expected.txt: Added.
  • media/media-source/media-source-allowed-containers.html: Added.
8:08 AM Changeset in webkit [289696] by eric.carlson@apple.com
  • 17 edits
    3 adds in trunk/Source

[macOS] Use system window and screen picker when available
​https://bugs.webkit.org/show_bug.cgi?id=236531
rdar://87111816

Reviewed by Jer Noble.

Source/WebCore:

Tested manually.

  • SourcesCocoa.txt: Add new files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • en.lproj/Localizable.strings: Update prompts.
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::capturerConfigurationChanged): Allow a capturer
to notify the source of a configuration change.

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

(WebCore::CapturerObserver::capturerConfigurationChanged):

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h:
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(-[WebCoreScreenCaptureKitHelper stream:didStopWithError:]): Forward delegate callbacks
to the capture source.
(-[WebCoreScreenCaptureKitHelper sessionDidEnd:]): Ditto.
(-[WebCoreScreenCaptureKitHelper sessionDidChangeContent:]): Ditto.
(-[WebCoreScreenCaptureKitHelper pickerCanceledForSession:]): Ditto.
(WebCore::ScreenCaptureKitCaptureSource::sessionDidChangeContent): React to a
reconfiguration.
(WebCore::ScreenCaptureKitCaptureSource::sessionDidEnd):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream): Use the sharing
session manager when available.
(WebCore::ScreenCaptureKitCaptureSource::intrinsicSize const): Get the size from
the content when possible.

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.h: Added.

(WebCore::ScreenCaptureKitSharingSessionManager::SharingSessionObserver::operator== const):

  • platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm: Added.

(-[WebDisplayMediaPromptHelper initWithCallback:]):
(-[WebDisplayMediaPromptHelper disconnect]):
(-[WebDisplayMediaPromptHelper startObservingSession:]):
(-[WebDisplayMediaPromptHelper stopObservingSession:]):
(-[WebDisplayMediaPromptHelper sessionDidEnd:]):
(-[WebDisplayMediaPromptHelper sessionDidChangeContent:]):
(-[WebDisplayMediaPromptHelper pickerCanceledForSession:]):
(WebCore::ScreenCaptureKitSharingSessionManager::isAvailable):
(WebCore::ScreenCaptureKitSharingSessionManager::singleton):
(WebCore::ScreenCaptureKitSharingSessionManager::ScreenCaptureKitSharingSessionManager):
(WebCore::ScreenCaptureKitSharingSessionManager::~ScreenCaptureKitSharingSessionManager):
(WebCore::ScreenCaptureKitSharingSessionManager::pickerCanceledForSession):
(WebCore::ScreenCaptureKitSharingSessionManager::sessionDidEnd):
(WebCore::ScreenCaptureKitSharingSessionManager::sessionDidChangeContent):
(WebCore::ScreenCaptureKitSharingSessionManager::showWindowPicker):
(WebCore::ScreenCaptureKitSharingSessionManager::showScreenPicker):
(WebCore::ScreenCaptureKitSharingSessionManager::promptForGetDisplayMedia):
(WebCore::ScreenCaptureKitSharingSessionManager::takeSharingSessionForFilter):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/mac/ScreenCaptureKitSoftLink.h:
  • pal/mac/ScreenCaptureKitSoftLink.mm:
  • pal/spi/mac/ScreenCaptureKitSPI.h: Added.

Source/WebKit:

  • Platform/spi/Cocoa/SafeBrowsingSPI.h:
  • UIProcess/mac/DisplayCaptureSessionManager.mm:

(WebKit::DisplayCaptureSessionManager::alertForGetDisplayMedia): Update prompt strings.
(WebKit::DisplayCaptureSessionManager::showWindowPicker): Use capture session
manager when available.
(WebKit::DisplayCaptureSessionManager::showScreenPicker): Ditto.

Source/WTF:

  • wtf/PlatformHave.h: Define HAVE_SC_CONTENT_SHARING_SESSION.
7:48 AM Changeset in webkit [289695] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

[CMake] REGRESSION(r289611): Debug builds fail linking binaries with ld.lld
​https://bugs.webkit.org/show_bug.cgi?id=236506

Reviewed by Yusuke Suzuki.

  • jit/ThunkGenerators.cpp: Use .previous in inline assembler for thunks in order to ensure

that mixed emission of assembler code and variable definitions correctly puts each of them
in their rightful sections in the output object code.

7:42 AM Changeset in webkit [289694] by commit-queue@webkit.org
  • 10 edits in trunk

Invoke mouse hover delegate callback on iOS
​https://bugs.webkit.org/show_bug.cgi?id=233018

Patch by Kevin Turner <​kevin_turner@apple.com> on 2022-02-12
Reviewed by Tim Horton.

Source/WebKit:

Allow mouseDidMoveOverElement: callbacks on iOS with pointer support.

Test: iOSMouseSupport.MouseDidMoveOverElement

  • Shared/API/Cocoa/_WKHitTestResult.h:
  • Shared/API/Cocoa/_WKHitTestResult.mm:
  • Shared/API/Cocoa/_WKHitTestResultInternal.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::mouseDidMoveOverElement):
Convert the modifier flags from the hover event to UIKeyModifierFlags if not on macOS.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:

(-[MouseSupportUIDelegate _webView:mouseDidMoveOverElement:withFlags:userInfo:]):
(-[MouseSupportUIDelegate setMouseDidMoveOverElementHandler:]):
(TEST):

7:34 AM Changeset in webkit [289693] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Suppress style invalidation when matching :checked
​https://bugs.webkit.org/show_bug.cgi?id=235910

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.

Source/WebCore:

Suppress style invalidation when matching :checked for option elements.

Test: fast/selectors/has-select-option-crash.html

  • css/SelectorCheckerTestFunctions.h:

(WebCore::isChecked):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::selected const):
(WebCore::HTMLOptionElement::setSelectedState):

  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::updateListItemSelectedStates):
(WebCore::HTMLSelectElement::recalcListItems const):

  • html/HTMLSelectElement.h:

LayoutTests:

  • fast/selectors/has-select-option-crash-expected.txt: Added.
  • fast/selectors/has-select-option-crash.html: Added.
7:29 AM Changeset in webkit [289692] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Make WidgetHierarchyUpdatesSuspensionScope cheaper if it has nothing to do
​https://bugs.webkit.org/show_bug.cgi?id=236486

Reviewed by Simon Fraser.

With content that does a lot of DOM manipulation, we can create and
destroy a WidgetHierarchyUpdatesSuspensionScope on the stack many times.
When this object has nothing to do, it calls an out of line function.
This patch pulls out the check for whether it needs to call
moveWidgets() into the inline destructor.

This is a 1% saving on the jQuery-TodoMVC subtest of Speedometer 2,
though the effect on the top line score is minimal.

  • rendering/RenderWidget.cpp:

(WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):

  • rendering/RenderWidget.h:

(WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope):
(WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove):

7:08 AM Changeset in webkit [289691] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Look up InputTypeFactoryMap with an ASCII lowercase string instead of using a ASCIICaseInsensitiveHash
​https://bugs.webkit.org/show_bug.cgi?id=236532

Reviewed by Myles C. Maxfield.

InputType::create looks up the InputTypeFactoryMap based on the
AtomString value of the <input type> attribute. The HashMap uses an
ASCIICaseInsensitiveHash, but the AtomStrings stored in the map are all
ASCII lowercase to begin with. This means that we spend time doing an
ASCII case insensitive hash computation on the query string. Most
content already supplies an ASCII lowercase type value, so it's less
work to ASCII lowercase the type value and then look up the HashMap
using the regular hash for AtomStrings (i.e., pulling the hash out of
AtomString).

Doing this is a 0.5% improvement on a couple of Speedometer 2 subtests,
and a 0.1% improvement to the overall score.

  • html/InputType.cpp:

(WebCore::InputType::create):

6:20 AM Changeset in webkit [289690] by aakash_jain@apple.com
  • 12 edits in trunk/Tools

Unreviewed, reverting r289687.
​https://bugs.webkit.org/show_bug.cgi?id=236539

broke commit queue

Reverted changeset:

"git-webkit setup should allow changing the credentials"
​https://bugs.webkit.org/show_bug.cgi?id=235297
​https://commits.webkit.org/r289687

Patch by Commit Queue <​commit-queue@webkit.org> on 2022-02-12

Feb 11, 2022:

6:29 PM Changeset in webkit [289689] by don.olmstead@sony.com
  • 3 edits in trunk/Source/JavaScriptCore

Allow structureHeapAddressSize to be set during build
​https://bugs.webkit.org/show_bug.cgi?id=236527

Reviewed by Yusuke Suzuki.

Add STRUCTURE_HEAP_ADDRESS_SIZE_IN_MB as a way to set the size of
structureHeapAddressSize at build time. Set a default for the PlayStation port.

  • PlatformPlayStation.cmake:
  • runtime/JSCConfig.h:
6:04 PM Changeset in webkit [289688] by Kocsen Chung
  • 1 copy in tags/Safari-614.1.3

Tag Safari-614.1.3.

6:04 PM Changeset in webkit [289687] by Jonathan Bedard
  • 12 edits in trunk/Tools

git-webkit setup should allow changing the credentials
​https://bugs.webkit.org/show_bug.cgi?id=235297
<rdar://problem/87988794>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.credentials): Pass validater into webkitscmpy.credentials if caller requests validation.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.credentials): Pass validater into webkitscmpy.credentials if caller requests validation.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Allow caller to provide a callback which will validate credentials to ensure
they work, re-prompt user if credentials fail validation.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Request validation of GitHub credentials.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.credentials): Pass validation flag.

Canonical link: ​https://commits.webkit.org/247173@main

5:52 PM Changeset in webkit [289686] by Alan Bujtas
  • 4 edits
    2 adds in trunk

contain:content breaks fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=236470
<rdar://88689388>

Reviewed by Simon Fraser.

Source/WebCore:

Paint/layout containment forms a containing block for fixed positioned block boxes. It makes all fixed
positioned descendants anchored (contained) to this layout container.
This patch enables fullscreen boxes break out of this non-ICB based layout scope (this is similar to what we
do for other, "layout scope changing" properties, see canContainFixedPositionObjects).

Test: fullscreen/fullscreen-prevented-by-containment.html

  • css/fullscreen.css:

(:-webkit-full-screen-ancestor:not(iframe)):

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):

LayoutTests:

  • fullscreen/fullscreen-prevented-by-containment-expected.txt: Added.
  • fullscreen/fullscreen-prevented-by-containment.html: Added.
5:46 PM Changeset in webkit [289685] by Megan Gardner
  • 14 edits
    2 copies in trunk/Source/WebKit

Implement Reveal methods
​https://bugs.webkit.org/show_bug.cgi?id=236478

Reviewed by Wenson Hsieh.

Respond to protocol methods that request RVItems for selection.

  • Platform/IPC/ArgumentCoder.h:
  • Platform/IPC/DataReference.h:
  • Shared/Cocoa/SandboxExtensionCocoa.mm:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestRVItemInSelectedRangeWithCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestRVItemInCurrentSelectedRange):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestRVItemInCurrentSelectedRange):

5:45 PM Changeset in webkit [289684] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Link issue to pull requests
​https://bugs.webkit.org/show_bug.cgi?id=236339
<rdar://problem/88657772>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): Add link to pull request in issue comments, assign issue to
pull request author.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

Canonical link: ​https://commits.webkit.org/247170@main

5:35 PM Changeset in webkit [289683] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WTF

Turn overscroll-behavior on by default
​https://bugs.webkit.org/show_bug.cgi?id=236060

Reviewed by Tim Nguyen.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
5:15 PM Changeset in webkit [289682] by commit-queue@webkit.org
  • 5 edits
    4 deletes in trunk

Unreviewed, reverting r289498.
​https://bugs.webkit.org/show_bug.cgi?id=236534

Speedometer2 2% regression

Reverted changeset:

"Dialog element only animates once"
​https://bugs.webkit.org/show_bug.cgi?id=236274
​https://commits.webkit.org/r289498

5:12 PM Changeset in webkit [289681] by Wenson Hsieh
  • 18 edits
    1 add in trunk/Source

[iOS] Add a "Copy Cropped Image" context menu item when long pressing images
​https://bugs.webkit.org/show_bug.cgi?id=236511
rdar://88817219

Reviewed by Devin Rousso.

Source/WebKit:

Add support for a new context menu item on iOS that allows the user to copy a cropped version of the source
image, after invoking markup UI. See below for more details.

  • Configurations/WebKit.xcconfig:

Link against UniformTypeIdentifiers on macOS 11+, rather than macOS 12+.

  • Platform/cocoa/CocoaImage.h:
  • Platform/cocoa/CocoaImage.mm:

(WebKit::transcode):
(WebKit::transcodeWithPreferredMIMEType):

Move a helper function that transcodes an image to a given UTI into CocoaImage.h, as a standalone function.
Also, add a separate helper function here that transcodes an image to a given MIME type (with a fallback UTI, in
case the MIME type cannot be mapped to a suitable UTI that conforms to any image UTI). The new call sites of
this function are in WKContentViewInteraction.mm.

  • Platform/cocoa/TextRecognitionUtilities.mm:
  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

Add a new imageMIMEType member to represent the MIME type of the source image used to generate the bitmap
image data in image.

  • SourcesCocoa.txt: Add CocoaImage.mm.
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:userInfo:]):
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:imageMIMEType:]):
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:imageMIMEType:userInfo:]):
(-[_WKActivatedElementInfo imageMIMEType]):

Add plumbing for imageMIMEType from InteractionInformationAtPosition (position information) into
_WKActivatedElementInfo, as an internal method. We use this information below, to transcode the resulting image
back to the source image format after applying markup, when invoking the new "Copy Cropped Image" item.

(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:]): Deleted.
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:userInfo:]): Deleted.

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
(+[_WKElementAction imageForElementActionType:]):

Add support for the new "Copy Cropped Image" item tag (_WKElementActionTypeCopyCroppedImage).

(elementActionTypeToUIActionIdentifier):
(uiActionIdentifierToElementActionType):

  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showAttachmentSheet]):
(-[WKContentView performImageAnalysisMarkup:]):

Use the new transcodeWithPreferredMIMEType helper method here.

(-[WKContentView doAfterComputingImageAnalysisResultsForMarkup:]):

Remove the TIFF transcoding workaround from this method (see associated changes in Radar for more information).

(-[WKContentView actionSheetAssistant:copyCroppedImage:sourceMIMEType:]):

Handle the new action by calling into VisionKit to adjust the source image as needed, and then transcode the
resulting CGImageRef back to a format that matches the source image; finally, write this transcoded
representation to the general pasteboard.

(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):

Pass imageMIMEType from position information into the activated element info initializer in several places.

(WebKit::transcode): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):

Populate imageMIMEType in position information.

Source/WTF:

Add a compile-time flag to guard availability of the UniformTypeIdentifiers framework. See WebKit/ChangeLog for
more information.

  • wtf/PlatformHave.h:
4:42 PM Changeset in webkit [289680] by Said Abou-Hallawa
  • 3 edits in trunk/Source/WebKit

[GPU Process] [CG] Add an ArgumentCoder for CFCharacterSetRef
​https://bugs.webkit.org/show_bug.cgi?id=236507

Reviewed by Sam Weinig.

CFCharacterSetRef is used for encoding and decoding the system fonts.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::typeFromCFTypeRef):
(IPC::ArgumentCoder<CFTypeRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFTypeRef>>::decode):
(IPC::ArgumentCoder<CFCharacterSetRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFCharacterSetRef>>::decode):

  • Shared/cf/ArgumentCodersCF.h:
3:54 PM Changeset in webkit [289679] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.0.1

Tag Safari-613.1.17.0.1.

3:53 PM Changeset in webkit [289678] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17.1.1

Tag Safari-613.1.17.1.1.

3:35 PM Changeset in webkit [289677] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Marking expectations for compositing/iframes/border-radius-composited-frame.html as it is failing on EWS
rdar://80333071

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:26 PM Changeset in webkit [289676] by Jonathan Bedard
  • 4 edits in trunk/Tools

[EWS] Rebase PRs on tip of branch
​https://bugs.webkit.org/show_bug.cgi?id=236389
<rdar://problem/88705147>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/master.cfg: Add github.base.ref to properties.
  • Tools/CISupport/ews-build/steps.py:

(CheckOutSource.run): Set branch from github properties, if available.
(ShowIdentifier.start): Use 'got_revision' instead of github properties.
(CheckOutPullRequest.run): Rebase PRs if we have enough information to. To support
rebasing, we need to handle conflicts in changelogs.
(RevertPullRequestChanges.run): Revert to whatever revision we rebased on.
(Trigger.propertiesToPassToTriggers): Pass github.base.ref to triggered build.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247164@main

3:23 PM Changeset in webkit [289675] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] fast/text/otsvg-canvas.html failing constantly
​https://bugs.webkit.org/show_bug.cgi?id=236530

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
3:10 PM Changeset in webkit [289674] by Truitt Savell
  • 2 edits in trunk/LayoutTests

update expectations for webrtc/h264-baseline.html and webrtc/h264-high.html
webkit.org/b/223043

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:03 PM Changeset in webkit [289673] by Megan Gardner
  • 6 edits in trunk/Source

Enable grammar checking on Mac Catalyst.
​https://bugs.webkit.org/show_bug.cgi?id=236479

Reviewed by Devin Rousso.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::markMisspellingsAfterTypingToWord):

  • platform/graphics/cocoa/GraphicsContextCocoa.mm:

(WebCore::grammarColor):
(WebCore::colorForMarkerLineStyle):

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::mutableState):
(WebKit::TextChecker::setGrammarCheckingEnabled):
(WebKit::TextChecker::checkTextOfParagraph):

2:57 PM Changeset in webkit [289672] by Chris Dumez
  • 24 edits
    2 adds in trunk

Fix MIME type check for classic worker script fetches
​https://bugs.webkit.org/show_bug.cgi?id=236411

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/workers/Worker_script_mimetype-expected.txt:
  • web-platform-tests/workers/importscripts_mime.any.sharedworker-expected.txt:
  • web-platform-tests/workers/importscripts_mime.any.worker-expected.txt:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/workers/constructors/SharedWorker/Infinity.headers: Added.
  • web-platform-tests/workers/constructors/SharedWorker/NaN.headers: Added.

Merge upstream fix from ​https://github.com/web-platform-tests/wpt/pull/32782.

Source/WebCore:

Fix MIME type check for classic worker script fetches and classic worker script imports, so that we are
now aligned with the specification:

This was causing us to fail some Web Platform Tests.

No new tests, rebaselined existing tests.

  • bindings/js/WorkerModuleScriptLoader.cpp:

(WebCore::WorkerModuleScriptLoader::load):

  • loader/FetchOptions.h:

(WebCore::isScriptLikeDestination):

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::constructJavaScriptMIMETypeError):
(WebCore::WorkerScriptLoader::validateWorkerResponse):
(WebCore::WorkerScriptLoader::didReceiveResponse):

  • workers/WorkerScriptLoader.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):

  • workers/shared/SharedWorkerScriptLoader.cpp:

(WebCore::SharedWorkerScriptLoader::load):

Source/WebKit:

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::processResponse):

LayoutTests:

Fix existing layout tests to make sure that worker scripts are served with a JavaScript mime type.

  • http/tests/resourceLoadStatistics/resources/script-revealing-cookies.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-allowed.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-blocked.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-allowed.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-allowed.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-blocked.py:
  • http/tests/security/contentSecurityPolicy/resources/worker.py:
  • http/tests/workers/resources/subworker-encoded.py:
2:46 PM Changeset in webkit [289671] by don.olmstead@sony.com
  • 4 edits in trunk

[CMake] Check for MAP_ALIGNED support
​https://bugs.webkit.org/show_bug.cgi?id=236522

Reviewed by Keith Miller.

.:

Add a symbol check for MAP_ALIGNED in the CMake.

  • Source/cmake/OptionsCommon.cmake:

Source/WTF:

Use the HAVE(MAP_ALIGNED) check in tryReserveUncommittedAligned. Mark unused parameters in
the function. Also define MAP_NORESERVE if its undefined which seems to be the case in
FreeBSD.

  • wtf/posix/OSAllocatorPOSIX.cpp:

(WTF::OSAllocator::tryReserveUncommittedAligned):

1:48 PM Changeset in webkit [289670] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: double clicking a breakpoint icon should show the edit popover
​https://bugs.webkit.org/show_bug.cgi?id=236524

Reviewed by Patrick Angle.

This is a more convenient way to access(/discover) the breakpoint's configuration details.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement):
(WI.BreakpointTreeElement.prototype._handleStatusImageElementDoubleClicked): Added.

  • UserInterface/Views/BreakpointPopover.js:

(WI.BreakpointPopover.show): Added.
(WI.BreakpointPopover.appendContextMenuItems):
Add a convenience method to create a WI.BreakpointPopover (or subclass) for the given
breakpoint and show it over the given target element.

1:46 PM Changeset in webkit [289669] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: click to re-enable breakpoint clears automatic continue
​https://bugs.webkit.org/show_bug.cgi?id=236465

Reviewed by Patrick Angle.

This is not very convenient for developers as it means that they have to click more than
once when re-enabling an auto-continue breakpoint (i.e. once to enable it (which currently
disables auto-continue), and once to re-enable auto-continue). Separating these behaviors is
preferable because it's unlikely that a developer would want to disable auto-continue when
re-enabling a breakpoint if they've taken the time to previously configure auto-continue.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.onenter):
(WI.BreakpointTreeElement.prototype.onspace):
(WI.BreakpointTreeElement.prototype._statusImageElementClicked):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.textEditorBreakpointClicked):
Replace cycleToNextNode with disabled = !disabled.

  • UserInterface/Models/Breakpoint.js:

(WI.Breakpoint.prototype.cycleToNextMode): Deleted.
Remove this method now that it's no longer used.

1:43 PM Changeset in webkit [289668] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[model] rewrite http/tests/model/model-document.html using testharness.js
​https://bugs.webkit.org/show_bug.cgi?id=236494

Reviewed by Dean Jackson.

  • http/tests/model/model-document-expected.txt:
  • http/tests/model/model-document.html:
1:39 PM Changeset in webkit [289667] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

css/css-writing-modes/direction-propagation-body-contain-root.html asserts
​https://bugs.webkit.org/show_bug.cgi?id=234763
<rdar://problem/87243336>

Unreviewed gardening.

1:16 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:12 PM Changeset in webkit [289666] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[model] standalone model documents should be interactive
​https://bugs.webkit.org/show_bug.cgi?id=236493

Reviewed by Dean Jackson.

Source/WebCore:

We made <model> elements not be interactive by default in bug 227621,
so we need to opt into interactivity for standalone <model> documents.
All this requires is setting the "interactive" attribute, which we set
instead of the "controls" attribute which does not exist for <model>.

Test: http/tests/model/model-document-interactive.html

  • html/ModelDocument.cpp:

(WebCore::ModelDocumentParser::createDocumentStructure):

LayoutTests:

Add a test that checks that the <model> element created for standalone
documents has the "interactive" attribute.

  • http/tests/model/model-document-interactive-expected.txt: Added.
  • http/tests/model/model-document-interactive.html: Added.
1:09 PM Changeset in webkit [289665] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the Apple TV build

Don't try to import AVKitSPI.h on Apple TV.

  • UIProcess/ios/WKContentViewInteraction.mm:
1:00 PM Changeset in webkit [289664] by Kyle Piddington
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Cocoa2d-HTLM5 game apepars to use wrong vertex buffer data
​https://bugs.webkit.org/show_bug.cgi?id=236427
<rdar://problem/87136345>

Reviewed by Kimmo Kinnunen.

Render encoder appears to carry stale state when a vertex array's element
buffer is updated, but no other parts of the buffer are updated. Reassign
vertex buffer bindings in this case, which clears up corruption
(Squished rendering elements, incorrect UV's)

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::syncState):
(rx::VertexArrayMtl::setupDraw):

12:35 PM Changeset in webkit [289663] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.1-branch/Source/WebCore

Cherry-pick r289493. rdar://problem/88321921

Register strings in CSSTokenizer created from preprocessing
​https://bugs.webkit.org/show_bug.cgi?id=236309

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-09
Reviewed by Michael Saboff.

Register strings in CSSTokenizer created from preprocessing. This will align with
what is currently done for strings with escapes in CSSTokenizer::consumeName().

  • css/parser/CSSTokenizer.cpp: (WebCore::CSSTokenizer::preprocessString): (WebCore::CSSTokenizer::tryCreate): (WebCore::CSSTokenizer::CSSTokenizer): (WebCore::preprocessString): Deleted.
  • css/parser/CSSTokenizer.h:
  • css/parser/CSSTokenizerInputStream.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:35 PM Changeset in webkit [289662] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.0-branch/Source/WebCore

Cherry-pick r289493. rdar://problem/88321921

Register strings in CSSTokenizer created from preprocessing
​https://bugs.webkit.org/show_bug.cgi?id=236309

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-09
Reviewed by Michael Saboff.

Register strings in CSSTokenizer created from preprocessing. This will align with
what is currently done for strings with escapes in CSSTokenizer::consumeName().

  • css/parser/CSSTokenizer.cpp: (WebCore::CSSTokenizer::preprocessString): (WebCore::CSSTokenizer::tryCreate): (WebCore::CSSTokenizer::CSSTokenizer): (WebCore::preprocessString): Deleted.
  • css/parser/CSSTokenizer.h:
  • css/parser/CSSTokenizerInputStream.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:31 PM Changeset in webkit [289661] by Russell Epstein
  • 14 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289462. rdar://problem/88580935

Don't return an empty value from AbortController.signal.reason and make it harder to return empty values from JSValueInWrappedObject
​https://bugs.webkit.org/show_bug.cgi?id=236318
<rdar://88580935>

Reviewed by Mark Lam.

Source/WebCore:

This patch makes it so we might not accidentally return the empty value to
JavaScript code from JSValueInWrappedObject. Previously, JSValueInWrappedObject
had an "operator JSValue()" method. This patch removes that, adds a new
conversion method for converting between JSValueInWrappedObject and JSValue,
and makes JSValueInWrappedObject return undefined inside this method
when it used to return the empty value. This fixes a crash where we'd return
the empty value to JS JIT code, and crash dereferencing a nullptr. It's never
valid for a JS function call (or getter, etc) to return the empty value.

Test: fast/dom/AbortSignal-reason-crash-2.html

  • Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::getChannelData):
  • Modules/webaudio/AudioWorkletProcessor.cpp: (WebCore::toJSArray): (WebCore::toJSObject): (WebCore::AudioWorkletProcessor::buildJSArguments):
  • bindings/js/JSCustomEventCustom.cpp: (WebCore::JSCustomEvent::detail const):
  • bindings/js/JSDOMConvertAny.h: (WebCore::JSConverter<IDLAny>::convert):
  • bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::data const):
  • bindings/js/JSPaymentMethodChangeEventCustom.cpp: (WebCore::JSPaymentMethodChangeEvent::methodDetails const):
  • bindings/js/JSPopStateEventCustom.cpp: (WebCore::JSPopStateEvent::state const):
  • bindings/js/JSValueInWrappedObject.h: (WebCore::JSValueInWrappedObject::getValue const): (WebCore::JSValueInWrappedObject::operator bool const): (WebCore::cachedPropertyValue): (WebCore::JSValueInWrappedObject::operator JSC::JSValue const): Deleted.
  • dom/AbortSignal.cpp: (WebCore::AbortSignal::signalFollow): (WebCore::AbortSignal::throwIfAborted):
  • dom/ErrorEvent.cpp: (WebCore::ErrorEvent::error): (WebCore::ErrorEvent::trySerializeError):
  • dom/PopStateEvent.cpp: (WebCore::PopStateEvent::trySerializeState):
  • page/History.cpp: (WebCore::History::cachedState):

LayoutTests:

  • fast/dom/AbortSignal-reason-crash-2-expected.txt: Added.
  • fast/dom/AbortSignal-reason-crash-2.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:31 PM Changeset in webkit [289660] by Russell Epstein
  • 14 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289462. rdar://problem/88580935

Don't return an empty value from AbortController.signal.reason and make it harder to return empty values from JSValueInWrappedObject
​https://bugs.webkit.org/show_bug.cgi?id=236318
<rdar://88580935>

Reviewed by Mark Lam.

Source/WebCore:

This patch makes it so we might not accidentally return the empty value to
JavaScript code from JSValueInWrappedObject. Previously, JSValueInWrappedObject
had an "operator JSValue()" method. This patch removes that, adds a new
conversion method for converting between JSValueInWrappedObject and JSValue,
and makes JSValueInWrappedObject return undefined inside this method
when it used to return the empty value. This fixes a crash where we'd return
the empty value to JS JIT code, and crash dereferencing a nullptr. It's never
valid for a JS function call (or getter, etc) to return the empty value.

Test: fast/dom/AbortSignal-reason-crash-2.html

  • Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::getChannelData):
  • Modules/webaudio/AudioWorkletProcessor.cpp: (WebCore::toJSArray): (WebCore::toJSObject): (WebCore::AudioWorkletProcessor::buildJSArguments):
  • bindings/js/JSCustomEventCustom.cpp: (WebCore::JSCustomEvent::detail const):
  • bindings/js/JSDOMConvertAny.h: (WebCore::JSConverter<IDLAny>::convert):
  • bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::data const):
  • bindings/js/JSPaymentMethodChangeEventCustom.cpp: (WebCore::JSPaymentMethodChangeEvent::methodDetails const):
  • bindings/js/JSPopStateEventCustom.cpp: (WebCore::JSPopStateEvent::state const):
  • bindings/js/JSValueInWrappedObject.h: (WebCore::JSValueInWrappedObject::getValue const): (WebCore::JSValueInWrappedObject::operator bool const): (WebCore::cachedPropertyValue): (WebCore::JSValueInWrappedObject::operator JSC::JSValue const): Deleted.
  • dom/AbortSignal.cpp: (WebCore::AbortSignal::signalFollow): (WebCore::AbortSignal::throwIfAborted):
  • dom/ErrorEvent.cpp: (WebCore::ErrorEvent::error): (WebCore::ErrorEvent::trySerializeError):
  • dom/PopStateEvent.cpp: (WebCore::PopStateEvent::trySerializeState):
  • page/History.cpp: (WebCore::History::cachedState):

LayoutTests:

  • fast/dom/AbortSignal-reason-crash-2-expected.txt: Added.
  • fast/dom/AbortSignal-reason-crash-2.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:25 PM Changeset in webkit [289659] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Handle local commit on production branch
​https://bugs.webkit.org/show_bug.cgi?id=235974
<rdar://problem/88346615>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Handle moving

branches to remote reference.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): Move local branch ref to remote reference.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

Canonical link: ​https://commits.webkit.org/247151@main

12:19 PM Changeset in webkit [289658] by Chris Dumez
  • 5 edits in trunk/Source

Regression(r287684) Microsoft teams meeting URLs fail to open the app
​https://bugs.webkit.org/show_bug.cgi?id=236516
<rdar://88678598>

Reviewed by Geoffrey Garen.

Add a quirk for Microsoft teams.

Source/WebCore:

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):

  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

12:10 PM Changeset in webkit [289657] by Russell Epstein
  • 3 edits in branches/safari-613.1.17.1-branch/Source/ThirdParty/ANGLE

Apply patch. rdar://problem/87136345

12:07 PM Changeset in webkit [289656] by Jonathan Bedard
  • 2 edits in trunk/Tools

Git commit message hook should allow source = 'template' case
​https://bugs.webkit.org/show_bug.cgi?id=236504
<rdar://problem/88787806>

Reviewed by Tim Horton.

  • Scripts/hooks/prepare-commit-msg: 'template' should be handled like 'commit'
12:05 PM Changeset in webkit [289655] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289526. rdar://problem/87061239

[:has() pseudo-class] Nullptr crash with non-function :has
​https://bugs.webkit.org/show_bug.cgi?id=236431
rdar://87061239

Reviewed by Cameron McCormack.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has.html:

Source/WebCore:

Test: fast/selectors/malformed-has.html

  • css/parser/CSSSelectorParser.cpp: (WebCore::isOnlyPseudoClassFunction):

:has() is legal, plain :has is not.

LayoutTests:

  • fast/selectors/malformed-has-expected.txt: Added.
  • fast/selectors/malformed-has.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289526 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:04 PM Changeset in webkit [289654] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.1-branch

Cherry-pick r289443. rdar://problem/88593617

REGRESSION (15.4): Angular virtual scrollers no longer work (because of contain:strict)
​https://bugs.webkit.org/show_bug.cgi?id=236260

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-08
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/contain-paint-049-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-paint-049.html: Added.

Source/WebCore:

Paint containment did not allow collecting scrollable overflow, breaking scrolling
of the container contents, this patch fixes that.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-paint-049.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::addOverflowFromChild):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289443 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:04 PM Changeset in webkit [289653] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.1-branch/Source/WebKit

Cherry-pick r289380. rdar://problem/86904276

Reduce allocations and increase thread safety of constructedPath
​https://bugs.webkit.org/show_bug.cgi?id=236286
<rdar://86904276>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-08
Reviewed by Chris Dumez.

  • UIProcess/API/APIContentRuleListStore.cpp: (API::constructedPathPrefix): (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289380 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:04 PM Changeset in webkit [289652] by Russell Epstein
  • 6 edits in branches/safari-613.1.17.1-branch

Cherry-pick r289377. rdar://problem/88178304

Return 'none' for the computed style of mask when there are no mask images
​https://bugs.webkit.org/show_bug.cgi?id=236265
<rdar://88178304>

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-08
Reviewed by Dean Jackson.

Source/WebCore:

Rather than returning all the longhand properties, return 'none' if there are no
mask images. This no longer matches the behaviour of the 'background' property, but
better matches what other UAs do.

Ideally we'd return the smallest possible canonical representation of the non-initial
property values, but this is a much simpler change to fix a compat regression.

Test: fast/masking/parsing-mask.html
Updates expected results to match new behavior.

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::getLayerCount): (WebCore::ComputedStyleExtractor::getFillLayerPropertyShorthandValue): (WebCore::ComputedStyleExtractor::getBackgroundShorthandValue): (WebCore::ComputedStyleExtractor::getMaskShorthandValue):
  • css/CSSComputedStyleDeclaration.h:

LayoutTests:

  • fast/masking/parsing-mask-expected.txt:
  • fast/masking/parsing-mask.html:

Updated expected results to expect 'none' for all cases where there isn't an actual mask
image.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289377 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:58 AM Changeset in webkit [289651] by Russell Epstein
  • 3 edits in branches/safari-613.1.17.0-branch/Source/ThirdParty/ANGLE

Apply patch. rdar://problem/87136345

11:58 AM Changeset in webkit [289650] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289526. rdar://problem/87061239

[:has() pseudo-class] Nullptr crash with non-function :has
​https://bugs.webkit.org/show_bug.cgi?id=236431
rdar://87061239

Reviewed by Cameron McCormack.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has.html:

Source/WebCore:

Test: fast/selectors/malformed-has.html

  • css/parser/CSSSelectorParser.cpp: (WebCore::isOnlyPseudoClassFunction):

:has() is legal, plain :has is not.

LayoutTests:

  • fast/selectors/malformed-has-expected.txt: Added.
  • fast/selectors/malformed-has.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289526 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:58 AM Changeset in webkit [289649] by Russell Epstein
  • 4 edits in branches/safari-613.1.17.0-branch

Cherry-pick r289502. rdar://problem/88528286

WKWebView: WKURLSchemeHandler “request to the end of the resource” produces an invalid header
​https://bugs.webkit.org/show_bug.cgi?id=236401
rdar://88528286

Reviewed by Brent Fulgham.

Source/WebCore:

​https://webkit.org/b/203302 added support for Range requests to AVAssetResourceLoadingDataRequest,
but it incorrectly used '*' instead of for "last-byte-pos:" for a request to the end of the resource.

API test URLSchemeHandler.Ranges was updated.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: (WebCore::WebCoreAVFResourceLoader::startLoading):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289502 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:58 AM Changeset in webkit [289648] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r289443. rdar://problem/88593617

REGRESSION (15.4): Angular virtual scrollers no longer work (because of contain:strict)
​https://bugs.webkit.org/show_bug.cgi?id=236260

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-08
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/contain-paint-049-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-paint-049.html: Added.

Source/WebCore:

Paint containment did not allow collecting scrollable overflow, breaking scrolling
of the container contents, this patch fixes that.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-paint-049.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::addOverflowFromChild):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289443 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:58 AM Changeset in webkit [289647] by Russell Epstein
  • 2 edits in branches/safari-613.1.17.0-branch/Source/WebKit

Cherry-pick r289380. rdar://problem/86904276

Reduce allocations and increase thread safety of constructedPath
​https://bugs.webkit.org/show_bug.cgi?id=236286
<rdar://86904276>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-08
Reviewed by Chris Dumez.

  • UIProcess/API/APIContentRuleListStore.cpp: (API::constructedPathPrefix): (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289380 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:58 AM Changeset in webkit [289646] by Russell Epstein
  • 6 edits in branches/safari-613.1.17.0-branch

Cherry-pick r289377. rdar://problem/88178304

Return 'none' for the computed style of mask when there are no mask images
​https://bugs.webkit.org/show_bug.cgi?id=236265
<rdar://88178304>

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-08
Reviewed by Dean Jackson.

Source/WebCore:

Rather than returning all the longhand properties, return 'none' if there are no
mask images. This no longer matches the behaviour of the 'background' property, but
better matches what other UAs do.

Ideally we'd return the smallest possible canonical representation of the non-initial
property values, but this is a much simpler change to fix a compat regression.

Test: fast/masking/parsing-mask.html
Updates expected results to match new behavior.

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::getLayerCount): (WebCore::ComputedStyleExtractor::getFillLayerPropertyShorthandValue): (WebCore::ComputedStyleExtractor::getBackgroundShorthandValue): (WebCore::ComputedStyleExtractor::getMaskShorthandValue):
  • css/CSSComputedStyleDeclaration.h:

LayoutTests:

  • fast/masking/parsing-mask-expected.txt:
  • fast/masking/parsing-mask.html:

Updated expected results to expect 'none' for all cases where there isn't an actual mask
image.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289377 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:57 AM Changeset in webkit [289645] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.1

11:55 AM Changeset in webkit [289644] by Elliott Williams
  • 3 edits
    1 delete in trunk/Source/WTF

Fix headers in install builds and add untracked headers
​https://bugs.webkit.org/show_bug.cgi?id=235744

Reviewed by Alexey Proskuryakov.
Relands native Xcode build phases for "Copy WTF Headers", again.

Adds a slash prefix, so that PRIVATE_HEADERS_FOLDER_PATH is always an absolute path.
Otherwise, when WTF_INSTALL_PATH_PREFIX is not set, it's relative and incorrectoly copied
into the INSTALL_PATH (/usr/local/lib).

Uses separate path variables for Copy Files phases that create header subdirectories. Unlike
the native "Headers" phase, copying to "/usr/local/include" is not automatically relative to
the SYMROOT or DSTROOT, respective of build action type.

Adds SignedPtr.h to WTF's Headers phase. It was added recently and missed integration in
r289256.

Sets INSTALLHDRS_COPY_PHASE so that nested header directories are copied during installhdrs.

  • Configurations/WTF.xcconfig:
  • WTF.xcodeproj/project.pbxproj:
11:54 AM Changeset in webkit [289643] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Reset target branch when landing fails
​https://bugs.webkit.org/show_bug.cgi?id=236110
<rdar://problem/88463164>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:

(Land.revert_branch): Move branch to specified remote's representation of the branch.
(Land.main): If we fail to land a change after moving a branch's local ref to include that
change, we should return that local ref to what the branch's remote reports.

Canonical link: ​https://commits.webkit.org/247147@main

11:47 AM Changeset in webkit [289642] by Simon Fraser
  • 9 edits
    2 adds in trunk/Source/WebKit

Introduce a RemoteLayerBackingStoreCollection subclass for GPU Process-based rendering
​https://bugs.webkit.org/show_bug.cgi?id=236468

Reviewed by Tim Horton.

Add RemoteLayerWithRemoteRenderingBackingStoreCollection, a subclass of RemoteLayerBackingStoreCollection
which is instantiated by RemoteLayerTreeContext when DOM rendering in GPU process is enabled.

Delegate buffer allocation to this now polymorphic class; RemoteLayerBackingStore no longer
consults shouldUseRemoteRenderingFor().

RemoteLayerWithRemoteRenderingBackingStoreCollection needs a back pointer to RemoteLayerTreeContext
to get to the RemoteRenderingBackendProxy.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::backingStoreCollection const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:

(WebKit::RemoteLayerBackingStoreCollection::layerTreeContext const):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
(WebKit::RemoteLayerBackingStoreCollection::allocateBufferForBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h: Added.
  • Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm: Added.

(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::RemoteLayerWithRemoteRenderingBackingStoreCollection):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::remoteRenderingBackendProxy):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::allocateBufferForBackingStore):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:

(WebKit::RemoteLayerTreeContext::backingStoreCollection):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::RemoteLayerTreeContext):

11:45 AM Changeset in webkit [289641] by Russell Epstein
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.1

11:36 AM Changeset in webkit [289640] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Keep promise in scope when calling DeferredPromise::reject
​https://bugs.webkit.org/show_bug.cgi?id=236454

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-11
Reviewed by Youenn Fablet.

Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):

11:34 AM Changeset in webkit [289639] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

The GPU process should not check in with Launch Services
​https://bugs.webkit.org/show_bug.cgi?id=236457

Reviewed by Geoffrey Garen.

Since the GPU process is not an application in the normal sense, there is no need to call _LSApplicationCheckIn.
The function _CSCheckFixDisable should still be called.

  • GPUProcess/mac/GPUProcessMac.mm:

(WebKit::GPUProcess::initializeProcess):

11:10 AM Changeset in webkit [289638] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Enable WPE and WinCairo queues for PRs
​https://bugs.webkit.org/show_bug.cgi?id=236517
<rdar://problem/88823117>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json:

Canonical link: ​https://commits.webkit.org/247143@main

10:24 AM Changeset in webkit [289637] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix: revert r289616

  • WebCore.xcodeproj/project.pbxproj:
10:12 AM Changeset in webkit [289636] by Russell Epstein
  • 1 copy in tags/Safari-614.1.2.1

Tag Safari-614.1.2.1.

10:10 AM Changeset in webkit [289635] by Russell Epstein
  • 1 copy in branches/safari-613.1.17.3-branch

New branch.

10:10 AM Changeset in webkit [289634] by Russell Epstein
  • 1 copy in branches/safari-613.1.17.2-branch

New branch.

10:10 AM Changeset in webkit [289633] by Russell Epstein
  • 1 copy in branches/safari-613.1.17.1-branch

New branch.

10:10 AM Changeset in webkit [289632] by Russell Epstein
  • 1 copy in branches/safari-613.1.17.0-branch

New branch.

9:55 AM Changeset in webkit [289631] by jonlee@apple.com
  • 5 edits in trunk/LayoutTests

Unreviewed gardening.

Update fuzzy data based on EWS results to support b231828.
LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-1.html:

LayoutTests:

  • css3/color-filters/color-filter-text-decoration-shadow.html:
  • fast/text/system-font-fallback.html:
9:53 AM Changeset in webkit [289630] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed followup: address Youenn's feedback for PDFDocument.

  • html/PDFDocument.cpp:

(WebCore::PDFDocumentEventListener::handleEvent):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):
(WebCore::PDFDocument::injectContentScript):

  • html/PDFDocument.h:
9:47 AM Changeset in webkit [289629] by jonlee@apple.com
  • 5 edits in trunk/LayoutTests

Unreviewed gardening.

Update fuzzy data based on EWS results to support b231828.

  • css3/blending/background-blend-mode-body-transparent-color-and-image.html:
  • css3/calc/border-radius.html:
  • svg/gradients/spreadMethodDiagonal3.svg:
  • svg/gradients/spreadMethodDiagonal4.svg:
9:40 AM Changeset in webkit [289628] by youenn@apple.com
  • 75 edits
    3 copies
    2 adds in trunk

Support remote video frames in WebRTC video pipeline
​https://bugs.webkit.org/show_bug.cgi?id=236356

Reviewed by Kimmo Kinnunen.

Source/ThirdParty/libwebrtc:

Introduce a way for ObjCFrameBuffer to not directly own a CVPixelBufferRef but a pointer
that can be used to get a CVPixelBufferRef. This is used to allow remote frames to be sent over to libwebrtc.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.h:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
  • Source/webrtc/sdk/objc/native/src/objc_frame_buffer.h:
  • Source/webrtc/sdk/objc/native/src/objc_frame_buffer.mm:

Source/WebCore:

Allow to receive/send remote frames as webrtc VideoFrame buffers.
We are not yet optimizing remove video frame sending as this requires moving remote video frame to WebCore.
This will be done as a follow-up.

Covered by existing tests and updated tests to enable the experimental flag.

  • platform/MediaSample.h:
  • platform/VideoFrame.cpp:
  • platform/VideoFrame.h:
  • platform/graphics/RemoteVideoSample.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

Source/WebKit:

Allow receiving remote samples from camera or HW decoders.
In that case, we create remote video frames and allow piping them to our existing pipeline.
We update MediaRecorder and LibWebRTC HW encoders to deal with this.
Since we have a code path that requires getting access to the raw pixels, we introduce RemoteVideoFrameObjectHeapProxy
to allow getting that data through shared memory asynchronously.
RemoteVideoFrameProxy will then use a semaphore to block on the async IPC result.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.h:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:
  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • Shared/ThreadSafeObjectHeap.h:
  • Sources.txt:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:
  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
  • WebProcess/GPU/media/RemoteVideoFrameIdentifier.h:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
  • WebProcess/GPU/media/RemoteVideoFrameProxy.h:
  • WebProcess/GPU/media/RemoteVideoFrameProxyIdentifier.h: Added.
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxy.h: Added.
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp: Added.
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.h: Added.
  • WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.messages.in: Added.
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.h:

Source/WTF:

Introduce an experimental flag to make use of remote frames in WebRTC code paths.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Allow switching on the new remote video frame flag.

  • WebKitTestRunner/TestOptions.cpp:

LayoutTests:

Enabling remote video frames for below tests.

  • webrtc/video-mute-vp8.html:
  • webrtc/video-mute.html:
  • webrtc/video-rotation.html:
  • webrtc/video.html:
9:30 AM Changeset in webkit [289627] by ntim@apple.com
  • 5 edits
    1 copy
    5 adds in trunk/Source/WebCore

Inject custom styles into PDF.js to make it look like PDFKit
​https://bugs.webkit.org/show_bug.cgi?id=236510

Reviewed by Tim Horton.

This introduces a pdfjs-extras directory that is copied in the pdfjs/extras resource subdirectory at build-time.

In that directory contains a content-script.js file that is executed when the PDFJS iframe loads. Currently, that
content script only injects the PDFKit styling, but it may be used for other types of interaction in the future
(e.g. loading a blob, hooking with find-in-page messages, etc.).

In PDFDocument, we add m_iframe, a ref to the PDFDocument iframe, that we can re-use when the iframe loads,
to inject the content script.

PDFDocumentEventListener handles the iframe load event listener.

m_viewerRendered which was set once the <iframe> was added to the document, is now no longer needed, since we can
check for m_iframe directly.

(const.PDFJSContentScript.injectStyle):
(const.PDFJSContentScript.init):

(body):
(@keyframes fade-out):
(to):
(#loadingBar):
(#toolbarContainer):
(#toolbarViewer):
(#toolbarViewer:hover):
(#toolbarViewerMiddle,):
(#toolbarViewerLeft,):
(#toolbarViewer .toolbarButton):
(#toolbarViewer .toolbarButton:active):
(#toolbarViewer .toolbarButton::before):
(#zoomOut):
(#zoomIn):
(#zoomOut + .splitToolbarButtonSeparator):
(#download):
(#viewerContainer):
(#findbar):
(#findbar:not(.hidden) ~ #viewerContainer):
(#findbar::before,):
(#findbarOptionsTwoContainer):
(#findResultsCount,):
(#findbar .splitToolbarButton > .toolbarButton::before):
(#findInput:focus):
(#findInput[data-status="notFound"]):

  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventListener.h:
  • html/PDFDocument.cpp:

(WebCore::PDFDocumentEventListener::handleEvent):
(WebCore::PDFDocumentEventListener::operator== const):
(WebCore::PDFDocument::PDFDocument):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):
(WebCore::PDFDocument::injectContentScript):
(WebCore::m_viewerRendered): Deleted.

  • html/PDFDocument.h:
9:24 AM Changeset in webkit [289626] by Russell Epstein
  • 9 edits in branches/safari-614.1.2-branch/Source

Versioning.

WebKit-7614.1.2.1

9:23 AM Changeset in webkit [289625] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Support PRs in UploadTestResults and ExtractTestResults
​https://bugs.webkit.org/show_bug.cgi?id=236446
<rdar://problem/88756592>

Reviewed by Aakash Jain.

  • CISupport/ews-build/steps.py:

(ConfigureBuild.add_pr_details): Shorten hash to 8 characters.
(UploadTestResults.init): Use change_id instead of patch_id.
(ExtractTestResults.init): Ditto.

  • CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/247136@main

9:11 AM Changeset in webkit [289624] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Unreviewed, non-unified build fixes in WKPaymentAuthorizationDelegate

Include several missing headers.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:
9:01 AM Changeset in webkit [289623] by Wenson Hsieh
  • 17 edits in trunk/Source

[iOS] Add support for a "markup image" item in the callout bar when selecting a single image
​https://bugs.webkit.org/show_bug.cgi?id=236415
rdar://88714333

Reviewed by Aditya Keerthi.

Source/WebCore:

Export a couple of functions; see WebKit/ChangeLog for more details.

  • platform/graphics/Image.h:
  • platform/graphics/cg/UTIRegistry.h:

Source/WebKit:

This patch introduces support for a new "Markup Image" callout menu item, which is only shown when the user has
selected exactly one image. If the image is suitable for "Markup Image" (that is, the relevant VisionKit API
returns a non-null image), then we show a new item in the callout bar which, when activated, replaces the
current selection with the image returned by the aforementioned VisionKit API.

See below for more details.

  • Platform/cocoa/TextRecognitionUtilities.h:
  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::isImageAnalysisMarkupSystemFeatureEnabled):

Add a new helper method to return whether or not the corresponding system feature flag is enabled.

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:

Add an optional ElementContext that's populated only if the user's selection spans a single HTMLImageElement.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView didMoveToWindow]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestImageBitmap):

Add a new async IPC message that allows the UI process to grab a ShareableBitmap handle (along with the MIME
type of the source image) given an ElementContext that identifies an image element.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:

Cache the last result from requesting "Image Markup" data from VisionKit in _imageAnalysisMarkupResults, and
use this information when invoking the new selector, -performImageAnalysisMarkup:.

  • UIProcess/ios/WKContentViewInteraction.mm:

(WebKit::transcode):

Add a helper method that takes a CGImageRef, transcodes it to the given uniform type identifier, and finally
returns a blob of image data. Used by the two new call sites for Image Markup below, as well as an existing call
site for Visual Look Up in -provideDataForItem:

(-[WKContentView targetForAction:withSender:]):

Add a check for the new Image Markup action selector.

(-[WKContentView requestRectsToEvadeForSelectionCommandsWithCompletionHandler:]):

Use this existing UIKit delegate hook to defer callout bar presentation only in the case where a single image
element is selected, such that we only show the callout bar in this scenario once VisionKit has determined
whether or not the "Image Markup" action is suitable for the data of the selected image.

The initial purpose of this delegate hook was to allow WebKit to defer callout bar presentation for a short,
hard-coded delay to wait for the web page to layout out or add clickable items that might underlap the callout
bar; as such, we still perform this logic with a hard-coded delay of 250 ms (including whatever time was taken
during image analysis).

(-[WKContentView updateImageAnalysisMarkupMenuItems:]):

Append the new menu item only if the system feature flag is enabled, and we've selected an editable image. Note
that this intentionally does not consult _imageAnalysisMarkupResults to ensure that the state of additional
menu items in the shared menu controller is consistent between Markup Image and Quick Note, and updated in the
same lifecycle as editor state updates.

(-[WKContentView canPerformImageAnalysisMarkup]):

This is consulted when we're actually about to show the callout bar action for "Image Markup" (importantly,
after callout bar presentation deferral), and depends on the state of _imageAnalysisMarkupResults.

(-[WKContentView performImageAnalysisMarkup:]):

Add logic to handle the new action by calling into WebPageProxy to (basically) paste the modified image data
after transcoding it to match the image element's original source type. After #236406, this codepath is now
available on all Cocoa platforms (as opposed to macOS-only).

(-[WKContentView doAfterComputingImageAnalysisResultsForMarkup:]):

Use the new requestImageBitmap IPC message to grab a bitmap for the currently selected image, call out to
VisionKit to perform image analysis, and then cache the resulting image. After all of this is done, we proceed
with showing the callout bar.

In a followup, we should enforce some (reasonable) upper bound on the amount of time by which the callout bar
can be delayed.

(-[WKContentView _selectionChanged]):
(-[WKContentView setUpAdditionalMenuControllerActions]):

Refactor existing logic for supplying additional callout bar menu items, such that we update items as needed for
both Quick Note as well as Image Markup. Note that we need to preserve any existing menu items in the shared
UIMenuController, since the WebKit client (e.g. Mail) may have already supplied custom menu items. This
currently doees not affect Quick Note since the only internal client that enables Quick Note is Safari, which
does not attempt to add any of its own items; however, "Markup Image" needs to be available in Mail on iOS as
well, which does use custom menu items.

(findMenuItemWithAction):
(-[WKContentView updateAppHighlightMenuItems:]):

Make this adjust the given mutable array of UIMenuItems, which are then combined with any markup menu items
when setting custom items on the shared menu controller.

(-[WKContentView provideDataForItem:]):

Adjust this to use the new transcode helper function, declared above.

(-[WKContentView _setUpImageAnalysis]):
(-[WKContentView _tearDownImageAnalysis]):
(-[WKContentView setUpAppHighlightMenusIfNeeded]): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestImageBitmap):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

Compute and populate the new selectedEditableImage element context; to achieve this, we use TextIterator to
scan for an image element, and bail immediately if we either find anything that is not an image, or find more
than one image.

8:08 AM Changeset in webkit [289622] by commit-queue@webkit.org
  • 45 edits
    3 copies
    7 adds in trunk

Introduce a RemoteMediaSampleProxy to represent captured video frames used in Media Streams and present in GPUP
​https://bugs.webkit.org/show_bug.cgi?id=236099

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-11
Reviewed by Youenn Fablet.

Source/WebCore:

Add VideoFrame : public MediaStream, base class for Media Stream video frames.
Currently inherits from MediaSample, but later will remove the MediaSample.

The WebCore::VideoFrame is intended to be used in various entry-points that
currently are currently typed as:

void videoSampleAvailable(MediaSample&, VideoSampleMetadata, ...).

The new class WebKit::RemoteVideoFrameProxy : public VideoFrame can be passed to these APIs.
The API entrypoints are not yet changed in order to partially roll the changes in.
Later on, the entrypoints will be similar to:

void videoSampleAvailable(VideoFrame&, VideoSampleMetadata, ...).

Removes MediaSample::setTrackID as that is not used.
Changes MediaSample::platformSample() to const, so that it can be called from
const context.

No new tests, refactor.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h:
  • platform/VideoFrame.cpp: Added.

(WebCore::VideoFrame::decodeTime const):
(WebCore::VideoFrame::duration const):
(WebCore::VideoFrame::trackID const):
(WebCore::VideoFrame::sizeInBytes const):
(WebCore::VideoFrame::presentationSize const):
(WebCore::VideoFrame::offsetTimestampsBy):
(WebCore::VideoFrame::setTimestamps):
(WebCore::VideoFrame::isDivisable const):
(WebCore::VideoFrame::divide):
(WebCore::VideoFrame::createNonDisplayingCopy const):
(WebCore::VideoFrame::flags const):
(WebCore::VideoFrame::byteRange const):
(WebCore::VideoFrame::dump const):

  • platform/VideoFrame.h: Added.
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::enqueueSampleBuffer):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:

(isType):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::platformSample const):

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::platformSample const):

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockMediaSample::platformSample const):

Source/WebKit:

Changes after revert:

  • For now, create the RemoteVideoFrame in GPUP using synchronous message. This way RemoteVideoFrameProxy does not need to receive messages. It cannot easily do that, as it is referenced in multiple threads and thus we cannot remove the message destination for the instance from GPUProcess instance, as that operation is main thread only. The type cannot be DestructionThread::Main, as we do not (yet) control the base class (MediaSample).

WebContent process:
Add WebKit::RemoteVideoFrameProxy, WebContent process side proxy object that
WebCore::MediaPlayerPrivateMediaStreamAVFObjC can use.

RemoteVideoFrameProxy can be sent to the GPUP and the the SampleBufferDisplayLayer. So
the captured content shows in compositing through video element.

At the moment MediaPlayerPrivateMediaStreamAVFObjC cannot paint RemoteVideoFrameProxy to the
document CSS painted content, Context2D or WebGL canvas.

GPUP:
RemoteVideoFrameObjectHeap is a mapping
RemoteVideoFrameIdentifier -> MediaSample. Currently all objects
map to normal MediaSampleAVFObjC.

Add an example implementation where a remote MediaSample is returned by IPC:
RemoteGraphicsContextGL::paintCompositedResultsToMediaSample().

The GPUP object pointed by RemoteVideoFrameIdentifier is:

  • created in RemoteGraphicsContextGL::paintCompositedResultsToMediaSample() in RemoteGraphicsContextGL thread
  • consumed in RemoteSampleBufferDisplayLayer::enqueueSample in RemoteSampleBufferDisplayLayerManager thread
  • released in RemoteVideoFrameObjectHeap::releaseVideoFrame in GPUP main thread

All of these messages are asynchronous and can arrive to their destination in any order.
For example, request to release the video frame can happen before the message to create the video frame has been
received.

To solve the ordering issue, introduce readers-writers reference counting method via following classes:

  • ObjectIdentifierReadReference
  • ObjectIdentifierWriteReference
  • ObjectIdentifierReferenceTracker

ObjectIdentifier identifies the object.
ObjectIdentifierWriteReference identifies a new version of the content pointed by the identifier.
Pseudocode examples:

WriteReference { identifier = 1, pendingReads = 0, version = 0 } means:

"End the life-time of identifier 1, version 0. Create version = 1"
This is how initial object is assigned to the reference.

WriteReference { identifier = 1, pendingReads = 77, version = 32 } means

"End the life-time of identifier 1, version 32 when all 77 reads have completed. Create version = 33"

ObjectIdentifierReadReference declares a read dependency to a specific version of the content pointed by the identifier.
Pseudocode examples:

ReadReference { identifier = 1, version = 32 } means
"Complete one read of identifier 1, version 32".

Creates, updates and destructions are WriteReferences.
Reads are ReadReferences.

The ObjectIdentifierReferenceTracker creates write and read references in the Proxy -using process (WebContent process).

The added ThreadSafeObjectHeap resolves the read and write references in the real object process (GPUP in this case).
Reads and writes are blocking the requesting thread appropriately:

  • Read of unknown version of the identifier blocks until the write creates the version
  • Write of new version of the identifier blocks until the reads have retired, or creates parallel, new version of the content in case of copy-on-write schemes.

In this commit objects pointed by RemoteVideoFrameIdentifier are immutable until destroyed, so there is no update or
copy-on-write scheme here.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::videoFrameObjectHeap const):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToMediaSample):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp: Added.

(WebKit::RemoteVideoFrameObjectHeap::create):
(WebKit::RemoteVideoFrameObjectHeap::RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::stopListeningForIPC):
(WebKit::RemoteVideoFrameObjectHeap::releaseVideoFrame):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h: Copied from Source/WebKit/Shared/IPCTester.h.
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in: Copied from Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in.
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::create):
(WebKit::RemoteSampleBufferDisplayLayer::RemoteSampleBufferDisplayLayer):
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSampleCV):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/IPCTester.cpp:

(WebKit::IPCTester::startMessageTesting):
(WebKit::isTestingIPC):

  • Shared/IPCTester.h:

(WebKit::isTestingIPC):

  • Shared/ObjectIdentifierReferenceTracker.h: Added.

(WebKit::ObjectIdentifierReference::ObjectIdentifierReference):
(WebKit::ObjectIdentifierReference::identifier const):
(WebKit::ObjectIdentifierReference::version const):
(WebKit::ObjectIdentifierReference::operator== const):
(WebKit::ObjectIdentifierReference::isHashTableDeletedValue const):
(WebKit::ObjectIdentifierReference::encode const):
(WebKit::ObjectIdentifierReference::decode):
(WebKit::ObjectIdentifierReadReference::ObjectIdentifierReadReference):
(WebKit::ObjectIdentifierReadReference::identifier const):
(WebKit::ObjectIdentifierReadReference::version const):
(WebKit::ObjectIdentifierReadReference::reference const):
(WebKit::ObjectIdentifierReadReference::encode const):
(WebKit::ObjectIdentifierReadReference::decode):
(WebKit::ObjectIdentifierWriteReference::generateForAdd):
(WebKit::ObjectIdentifierWriteReference::ObjectIdentifierWriteReference):
(WebKit::ObjectIdentifierWriteReference::identifier const):
(WebKit::ObjectIdentifierWriteReference::version const):
(WebKit::ObjectIdentifierWriteReference::pendingReads const):
(WebKit::ObjectIdentifierWriteReference::reference const):
(WebKit::ObjectIdentifierWriteReference::retiredReference const):
(WebKit::ObjectIdentifierWriteReference::encode const):
(WebKit::ObjectIdentifierWriteReference::decode):
(WebKit::ObjectIdentifierReferenceTracker::ObjectIdentifierReferenceTracker):
(WebKit::ObjectIdentifierReferenceTracker::read const):
(WebKit::ObjectIdentifierReferenceTracker::write const):
(WebKit::ObjectIdentifierReferenceTracker::identifier const):
(WebKit::add):
(WebKit::operator<<):
(WTF::DefaultHash<WebKit::ObjectIdentifierReference<T>>::hash):
(WTF::DefaultHash<WebKit::ObjectIdentifierReference<T>>::equal):

  • Shared/ThreadSafeObjectHeap.h: Added.

(WebKit::ThreadSafeObjectHeap::ReferenceState::ReferenceState):
(WebKit::HeldType>::retire):
(WebKit::HeldType>::retireRemove):
(WebKit::HeldType>::clear):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:

(WebKit::MediaSampleByteRange::platformSample const):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToMediaSample):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:
  • WebProcess/GPU/media/RemoteVideoFrameIdentifier.h: Copied from Source/WebKit/Shared/IPCTester.h.
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp: Added.

(WebKit::RemoteVideoFrameProxy::properties):
(WebKit::RemoteVideoFrameProxy::create):
(WebKit::RemoteVideoFrameProxy::releaseUnused):
(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::~RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::identifier const):
(WebKit::RemoteVideoFrameProxy::write const):
(WebKit::RemoteVideoFrameProxy::read const):
(WebKit::RemoteVideoFrameProxy::presentationTime const):
(WebKit::RemoteVideoFrameProxy::platformSample const):
(WebKit::RemoteVideoFrameProxy::videoRotation const):
(WebKit::RemoteVideoFrameProxy::videoMirrored const):
(WebKit::RemoteVideoFrameProxy::videoPixelFormat const):
(WebKit::RemoteVideoFrameProxy::videoFrame const):
(WebKit::RemoteVideoFrameProxy::release):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h: Added.

(WebKit::RemoteVideoFrameProxy::Properties::encode const):
(WebKit::RemoteVideoFrameProxy::Properties::decode):
(isType):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:

(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::~SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::enqueueSample):
(WebKit::SampleBufferDisplayLayer::gpuProcessConnectionDidClose):
(WebKit::SampleBufferDisplayLayer::disconnectGPUProcessConnectionIfNeeded):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:

Tools:

  • Scripts/generate-gpup-webgl:
  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp:

LayoutTests:

Captured WebGL to another context2d or WebGL not implemented yet, mark few tests as timing out.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:53 AM Changeset in webkit [289621] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/mac

Unreviewed, fix build with the latest iOS SDK.

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage isNativeLibraryData:]):

7:09 AM WebKitGTK/2.34.x edited by Michael Catanzaro
(diff)
6:53 AM Changeset in webkit [289620] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] WebKit browser scrollbars not always correctly displayed if overlay scrollbars are disabled
​https://bugs.webkit.org/show_bug.cgi?id=234874

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-11
Reviewed by Carlos Garcia Campos.

If overlay scrollbars are disabled, and there is not enough content for the page to be
scrollable, and scrollbars are forced using overflow:scroll, then we currently fail to
paint the scrollbars properly. At minimum, we need to paint the scrollbar background, which
is what the macOS port does. Do so.

In the future, we might want to additionally paint the rest of the scrollbars, similar to
the GTK_POLICY_ALWAYS scrollbar policy type, but this would require more work.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::paint):

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::paint):

5:30 AM Changeset in webkit [289619] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] Fix memory leak in WebKitDirectoryInputStream
​https://bugs.webkit.org/show_bug.cgi?id=236498

Reviewed by Adrian Perez de Castro.

  • NetworkProcess/soup/WebKitDirectoryInputStream.cpp:

(webkitDirectoryInputStreamRead): Use adoptGRef() for g_bytes_new_from_bytes().

5:02 AM Changeset in webkit [289618] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Enable GStreamer webrtcdsp support
​https://bugs.webkit.org/show_bug.cgi?id=236175

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-11
Reviewed by Martin Robinson.

  • elements/sdk/gst-plugins-bad.bst: Enable webrtcdsp, needed for VAD handling.
4:47 AM Changeset in webkit [289617] by Antti Koivisto
  • 5 edits in trunk

[CSS Container Queries] Implement container name matching
​https://bugs.webkit.org/show_bug.cgi?id=236495

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:

Source/WebCore:

Find the right container to evaluate against.

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluate const):

4:05 AM Changeset in webkit [289616] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Add build phase to copy PDF.js resources to WebCore.framework resources
​https://bugs.webkit.org/show_bug.cgi?id=235981

Reviewed by Youenn Fablet.

This adds a new "Run Script" phase that simply copies Source/ThirdParty/pdfjs to
WebCore.framework/Resources/pdfjs, it excludes .svn and .DS_Store files too.

  • WebCore.xcodeproj/project.pbxproj:
2:52 AM Changeset in webkit [289615] by commit-queue@webkit.org
  • 5 edits in trunk

Clicking on an <input type="image"> will submit the form with null submitter
​https://bugs.webkit.org/show_bug.cgi?id=236324

LayoutTests/imported/w3c:

Add a test to make sure that when the form is submitted through an <input type="image">
control, the submitter field of the submit event is that control.

Patch by Andreu Botella <​andreu@andreubotella.com> on 2022-02-11
Reviewed by Carlos Garcia Campos.

  • web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm.html:

Source/WebCore:

Patch by Andreu Botella <​andreu@andreubotella.com> on 2022-02-11
Reviewed by Carlos Garcia Campos.

If you submit a form by clicking on an <input type="image"> control, the control will be in
the form's entry list, but the submitter field in the submit event will be null. This is
wrong per the spec, and caused because the call to HTMLFormElement::submitIfPossible() in
ImageInputType::handleDOMActivateEvent() calls it with one argument, rather than passing
the element as the submitter.

Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-submission-algorithm.html

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::handleDOMActivateEvent):

2:14 AM Changeset in webkit [289614] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r289608 - [WPE][GTK] BubblewrapLauncher leaks D-Bus proxy sockets
​https://bugs.webkit.org/show_bug.cgi?id=201771

Reviewed by Michael Catanzaro.

xdg-dbus-proxy removes the socket when the sync fd is closed by the application. In most of the cases the
xdg-dbus-proxy process is killed before the sync fd is closed and the socket file is leaked. We should
explicitly close the sync fd.

  • UIProcess/Launcher/glib/XDGDBusProxy.cpp:

(WebKit::XDGDBusProxy::XDGDBusProxy): Save the sync fd.
(WebKit::XDGDBusProxy::~XDGDBusProxy): Close the sync fd is needed.
(WebKit::XDGDBusProxy::launch const): Return the sync fd.

  • UIProcess/Launcher/glib/XDGDBusProxy.h:
2:14 AM Changeset in webkit [289613] by Carlos Garcia Campos
  • 5 edits
    1 copy
    1 add in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r289528 - [GTK][WPE] Refactor the XDGDBusProxy launcher to simplify it and fix some issues
​https://bugs.webkit.org/show_bug.cgi?id=236437

Reviewed by Adrian Perez de Castro.

Source/WebKit:

This patch moves the XDGDBusProxy launcher implementation to its own file and fixes the following issues:

  • r289369 introduced an issue with old versions of bwrap that fails to mount over an existing file, so we need to ensure we only bind the original socket for the a11y socket and not the session bus one.
  • bindA11y is GTK specific for some reason, which means WPE doesn't have a11y under the sandbox.
  • The names of the socket paths for a11y and session bus use the same pattern dbus-proxy-XXXXXX, it helps to use a different one.
  • The code to get the a11y DBus address is now duplicated in PlatformDisplay, we can just use the PlatformDisplay to get the address.
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::argumentsToFileDescriptor):
(WebKit::bindDBusSession):
(WebKit::bindA11y):
(WebKit::bubblewrapSpawn):
(WebKit::argsToFd): Deleted.
(WebKit::XDGDBusProxyLauncher::setAddress): Deleted.
(WebKit::XDGDBusProxyLauncher::isRunning const): Deleted.
(WebKit::XDGDBusProxyLauncher::path const): Deleted.
(WebKit::XDGDBusProxyLauncher::proxyPath const): Deleted.
(WebKit::XDGDBusProxyLauncher::setPermissions): Deleted.
(WebKit::XDGDBusProxyLauncher::launch): Deleted.
(WebKit::XDGDBusProxyLauncher::makeProxyPath): Deleted.
(WebKit::XDGDBusProxyLauncher::dbusAddressToPath): Deleted.
(): Deleted.

  • UIProcess/Launcher/glib/BubblewrapLauncher.h:
  • UIProcess/Launcher/glib/XDGDBusProxy.cpp: Added.

(WebKit::XDGDBusProxy::XDGDBusProxy):
(WebKit::XDGDBusProxy::makeProxy const):
(WebKit::XDGDBusProxy::launch const):

  • UIProcess/Launcher/glib/XDGDBusProxy.h: Added.

(WebKit::XDGDBusProxy::proxyPath const):
(WebKit::XDGDBusProxy::path const):

1:49 AM Changeset in webkit [289612] by youenn@apple.com
  • 33 edits
    3 copies
    1 add in trunk

Add support to query camera and microphone permissions
​https://bugs.webkit.org/show_bug.cgi?id=236138

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/permissions/nfc-permission-expected.txt:
  • web-platform-tests/permissions/test-background-fetch-permission-expected.txt:

Source/WebCore:

Update queryPermission to be async as it may require to check to UIProcess.
Covered by API test.

  • Modules/permissions/PermissionController.h:
  • Modules/permissions/Permissions.cpp:

Source/WebKit:

Add new SPI to query for permission (without requesting anything to user).
Use this to implement camera/microphone permission.
In case of permisssion persistently denied, only expose it if web page already called getUserMedia.
In case of permission not persistently set, compute the permission state according past getUserMedia requests.
Also add geolocation mapping as applications might want to support it and it makes existing WPT tests happy.
Add C API as well so that WTR can control permission querying.

Covered by API test.

  • Headers.cmake:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • Sources.txt:
  • UIProcess/API/APIUIClient.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/C/WKSpeechRecognitionPermissionCallback.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebPermissionController.cpp:
  • WebProcess/WebCoreSupport/WebPermissionController.h:

Tools:

  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:

(-[UserMediaCaptureUIDelegate _webView:queryPermission:forOrigin:completionHandler:]):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
  • TestWebKitAPI/Tests/WebKit/getUserMediaPermission.html: Added.
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::queryPermission):
(WTR::TestController::createWebViewWithOptions):

1:16 AM Changeset in webkit [289611] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Use ld.lld by default for development builds where available
​https://bugs.webkit.org/show_bug.cgi?id=235979

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsCommon.cmake: Enable USE_LD_LLD by default for developers builds

when ld.lld is available. While at it, improve the match on LD_VERSION to be more robust.

12:44 AM Changeset in webkit [289610] by Nikita Vasilyev
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: [Flexbox] Show flex badge next to flex containers in DOM Tree
​https://bugs.webkit.org/show_bug.cgi?id=235924

Reviewed by Patrick Angle.

Elements with display: flex and display: inline-flex should include a "flex" badge.
Clicking the badge should toggle the overlay for the corresponding element.

  • UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js:

(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayShown):

  • UserInterface/Controllers/GridOverlayDiagnosticEventRecorder.js:

(WI.GridOverlayDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayDiagnosticEventRecorder.prototype._handleGridOverlayShown):
(WI.GridOverlayDiagnosticEventRecorder):

  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager):
(WI.OverlayManager.prototype.showOverlay):
(WI.OverlayManager.prototype.hideOverlay):
(WI.OverlayManager.prototype.hasVisibleGridOverlays):
(WI.OverlayManager.prototype.hasVisibleOverlay):
(WI.OverlayManager.prototype.toggleOverlay):
(WI.OverlayManager.prototype.getColorForNode):
(WI.OverlayManager.prototype.setColorForNode):
(WI.OverlayManager.prototype._handleLayoutContextTypeChanged):
(WI.OverlayManager.prototype._handleGridSettingChanged):
(WI.OverlayManager.prototype._handleMainResourceDidChange):
(WI.OverlayManager.prototype.showGridOverlay): Deleted.
(WI.OverlayManager.prototype.hideGridOverlay): Deleted.
(WI.OverlayManager.prototype.isGridOverlayVisible): Deleted.
(WI.OverlayManager.prototype.toggleGridOverlay): Deleted.
(WI.OverlayManager.prototype.getGridColorForNode): Deleted.
(WI.OverlayManager.prototype.setGridColorForNode): Deleted.
Remove grid-specific methods (such as showGridOverlay) and introduce methods that work with
both Grid and Flexbox (such as showOverlay).

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.attached):
(WI.CSSGridSection.prototype.detached):
(WI.CSSGridSection.prototype._handleToggleAllCheckboxChanged):
(WI.CSSGridSection.prototype.layout):
(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection.prototype._updateToggleAllCheckbox):
(WI.CSSGridSection):

  • UserInterface/Views/DOMTreeElement.css:

(.tree-outline.dom .layout-badge):
(.tree-outline.dom .layout-badge.activated):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .layout-badge):
(@media (prefers-color-scheme: dark) .tree-outline.dom .layout-badge):
(.tree-outline.dom .badge-css-grid): Deleted.
(.tree-outline.dom .badge-css-grid.activated): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .badge-css-grid): Deleted.
(@media (prefers-color-scheme: dark) .tree-outline.dom .badge-css-grid): Deleted.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement):
(WI.DOMTreeElement.prototype.onattach):
(WI.DOMTreeElement.prototype.ondetach):
(WI.DOMTreeElement.prototype.updateTitle):
(WI.DOMTreeElement.prototype._updateLayoutBadge):
(WI.DOMTreeElement.prototype._layoutBadgeClicked):
(WI.DOMTreeElement.prototype._updateLayoutBadgeStatus):
(WI.DOMTreeElement.prototype._handleLayoutContextTypeChanged):
(WI.DOMTreeElement.prototype._updateGridBadge): Deleted.
(WI.DOMTreeElement.prototype._gridBadgeClicked): Deleted.
(WI.DOMTreeElement.prototype._gridBadgeDoubleClicked): Deleted.
(WI.DOMTreeElement.prototype._updateGridBadgeStatus): Deleted.
Renamed _gridBadgeElement to _layoutBadgeElement. We can't have both "flex" and "grid" badge on the same element,
so I called it "layoutBadge". I didn't call it simply "badge" because we may have other badges in the future.

12:40 AM Changeset in webkit [289609] by mmaxfield@apple.com
  • 14 edits
    6 adds in trunk

Tab characters and ch units do not obey synthetic bold width adjustments correctly
​https://bugs.webkit.org/show_bug.cgi?id=236172

Reviewed by Alan Bujtas.

Source/WebCore:

It turns out we have a lot of places where code wants to know the synthetic-bold-expanded
width of characters. One place is 'tab-width: <integer>' and another is the 'ch' unit.
However, WidthIterator and ComplexTextController don't want the synthetic-bold-expanded
widths, because they explicitly apply synthetic bold after shaping.

This patch adds a 2-value enum argument to the Font::widthForGlyph() function, so callers
can pass in which behavior they want. The function has a default value to include the
synthetic bold expansion.

I then audited every call site of this function, and passed in the correct enum value.
Doing this led me to discover two bugs where the wrong behavior was being used, and this
patch fixes them and adds tests for them.

Tests: fast/text/ch-unit-synthetic-bold.html

fast/text/tab-width-synthetic-bold-complex.html
fast/text/tab-width-synthetic-bold.html

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::fallbackFontsForRunWithIterator):

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):

  • platform/graphics/Font.cpp:

(WebCore::Font::platformGlyphInit):

  • platform/graphics/Font.h:

(WebCore::Font::spaceWidth const):
(WebCore::Font::widthForGlyph const):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthForSimpleText const):

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::tabWidth const):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::calculateAdditionalWidth const):

LayoutTests:

3 new tests. Also, the changes in ignored-properties-001-expected.txt are a revert of the rebaseline in
r281687. That rebaseline was wrong, so this undoes it.

  • fast/text/ch-unit-synthetic-bold-expected.html: Added.
  • fast/text/ch-unit-synthetic-bold.html: Added.
  • fast/text/tab-width-synthetic-bold-complex-expected.html: Added.
  • fast/text/tab-width-synthetic-bold-complex.html: Added.
  • fast/text/tab-width-synthetic-bold-expected.html: Added.
  • fast/text/tab-width-synthetic-bold.html: Added.
  • platform/ios/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
12:32 AM Changeset in webkit [289608] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] BubblewrapLauncher leaks D-Bus proxy sockets
​https://bugs.webkit.org/show_bug.cgi?id=201771

Reviewed by Michael Catanzaro.

xdg-dbus-proxy removes the socket when the sync fd is closed by the application. In most of the cases the
xdg-dbus-proxy process is killed before the sync fd is closed and the socket file is leaked. We should
explicitly close the sync fd.

  • UIProcess/Launcher/glib/XDGDBusProxy.cpp:

(WebKit::XDGDBusProxy::XDGDBusProxy): Save the sync fd.
(WebKit::XDGDBusProxy::~XDGDBusProxy): Close the sync fd is needed.
(WebKit::XDGDBusProxy::launch const): Return the sync fd.

  • UIProcess/Launcher/glib/XDGDBusProxy.h:
12:25 AM Changeset in webkit [289607] by Diego Pino Garcia
  • 5 edits
    32 deletes in trunk/LayoutTests

LayoutTests/imported/w3c:
[WPE] Several WPT offscreen canvas tests are failing after r287846
​https://bugs.webkit.org/show_bug.cgi?id=236474

Reviewed by Carlos Alberto Lopez Perez.

  • web-platform-tests/html/canvas/offscreen/conformance-requirements/2d.coordinatespace.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/conformance-requirements/2d.coordinatespace.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/conformance-requirements/2d.missingargs.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/conformance-requirements/2d.missingargs.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/conformance-requirements/2d.voidreturn.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/conformance-requirements/2d.voidreturn.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.nonfinite.spacing.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.combined.3d.transforms.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.combined.3d.transforms.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.x.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.x.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.y.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.y.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.z.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotate3d.z.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotateAxis.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.rotateAxis.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.scale.3d.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.scale.3d.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.setTransform.3d.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.setTransform.3d.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.transform.3d.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.transform.3d.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.translate.3d.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/transformations/2d.transformation.translate.3d.worker.html: Removed.

LayoutTests:
[GTK] Remove several stale WPT offscreen canvas tests
​https://bugs.webkit.org/show_bug.cgi?id=236474

Reviewed by Carlos Alberto Lopez Perez.

r287846 re-sync WPT html/ tests, including offscreen canvas tests.
Some already imported offscreen canvas tests are no longer part of WPT tests.
These tests were marked as Failure but should have actually be removed
instead. Two of these tests needed to update their baseline.

  • platform/gtk/TestExpectations:
12:04 AM Changeset in webkit [289606] by Nikolas Zimmermann
  • 13 edits in trunk/Source/WebCore

[LBSE] Begin stub implementation of transform support for SVG layers
​https://bugs.webkit.org/show_bug.cgi?id=236185

Reviewed by Rob Buis.

RenderLayer / RenderLayerBacking use RenderStyle::applyTransform()
to compute a TransformationMatrix from the CSS Transform properties.

To hook in SVG transform support, which goes beyond pure CSS properties
that influence the "effective transform" for a certain SVG element,
RenderStyle is not the right place to place the applyTransform()
implementation for SVG specific requirements.

Therefore introduce a virtual RenderLayerModelObject::applyTransform()
function, that is implemented in RenderBox / RenderSVGModelObject.
In this patch RenderSVGModelObject::applyTransform() stays a stub
and RenderBox::applyTransform() simply forwards to RenderStyle,
preserving the current behavior.

This allows SVG to add additional transformations to the transformation
stack, which is useful to implement 'viewBox' support among other things.

Covered by existing tests, no change in behaviour.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::applyTransform const):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::applyTransform const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::currentTransform const):
(WebCore::RenderLayer::perspectiveTransform const):
(WebCore::RenderLayer::perspectiveOrigin const):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::rendererBorderBoxRect const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateTransform):
(WebCore::RenderLayerBacking::updateChildrenTransformAndAnchorPoint):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::transformMatrixForProperty const):
(WebCore::rendererBorderBoxRect): Deleted.

  • rendering/RenderLayerModelObject.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::applyTransform const):

  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::applyTransform const):

  • rendering/svg/RenderSVGRoot.h:

Feb 10, 2022:

10:55 PM Changeset in webkit [289605] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[web-animations] additive animations should prevent other animations from running accelerated
​https://bugs.webkit.org/show_bug.cgi?id=236447

Unreviewed gardening, the patch for this bug was cq'd before I could fix test expectations for
GTK and Windows and remove an incorrect comment in the newly added test.

  • platform/glib/TestExpectations:
  • platform/win/TestExpectations:
  • webanimations/accelerated-animations-and-composite.html:
9:40 PM Changeset in webkit [289604] by Simon Fraser
  • 9 edits in trunk/Source

Separate out setVolatile() from setNonVolatile() on IOSurface-backed buffers
​https://bugs.webkit.org/show_bug.cgi?id=236475

Reviewed by Tim Horton.

setVolatile(true) and setVolatile(false) are quite different in their needs, so
separate them out into separate functions.

setVolatile(true) can be done asynchronously (as a future patch will). The
return value tells if you succeeded in making the surfaced volatile, i.e. if it
was not in-use.

setVolatile(false) has to be synchronous, and the return value tells you whether
you need to repaint the entire surface.

Source/WebCore:

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::releaseGraphicsContext):
(WebCore::ImageBufferBackend::setVolatile):
(WebCore::ImageBufferBackend::setNonVolatile):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::setVolatile):
(WebCore::ImageBufferIOSurfaceBackend::setNonVolatile):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::setBufferVolatility):

9:36 PM Changeset in webkit [289603] by Simon Fraser
  • 5 edits in trunk/Source/WebKit

Have RemoteLayerBackingStore talk to RemoteLayerBackingStoreCollection directly
​https://bugs.webkit.org/show_bug.cgi?id=236463

Reviewed by Tim Horton.

There doesn't seem to be any benefit to going via RemoteLayerTreeContext.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):
(WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
(WebKit::RemoteLayerBackingStore::backingStoreCollection const):
(WebKit::RemoteLayerBackingStore::display):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::backingStoreWasCreated): Deleted.
(WebKit::RemoteLayerTreeContext::backingStoreWillBeDestroyed): Deleted.
(WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed): Deleted.

9:17 PM Changeset in webkit [289602] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WTF

[WTF] Fix clang tidy bugprone-move-forwarding-reference static analyzer warnings from WebCore/WebKit
<​https://webkit.org/b/236459>
<rdar://problem/88772313>

Reviewed by Darin Adler.

  • wtf/IteratorAdaptors.h:

(WTF::makeTransformIterator):

  • wtf/WeakHashMap.h:

(WTF::WeakHashMap::set):

  • Replace WTFMove() with std::forward<>().
7:58 PM Changeset in webkit [289601] by fpizlo@apple.com
  • 2 edits in trunk

Unreviewed, add an alternate email address.

  • metadata/contributors.json:
7:58 PM Changeset in webkit [289600] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Non-content runs (e.g. inline box start/end) do not need "within the line" flip
​https://bugs.webkit.org/show_bug.cgi?id=236426

Reviewed by Antti Koivisto.

This is the same what we already do for the bidi case.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):

6:27 PM Changeset in webkit [289599] by Nikos Mouchtaris
  • 15 edits in trunk

Web animations- Composite operation accumulation support for transform properties
​https://bugs.webkit.org/show_bug.cgi?id=236116

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-skew-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-translate-composition-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/combining-effects/effect-composition-expected.txt:

Source/WebCore:

This patch brings further support for accumulation on transform properties. The main aspect being addressed
is handling accumulation of TransformationMatrices. This involves accumulating on the decomposed functions,
which occurs in blendFloat() and accumulateQuaternion(). Since we need to perform accumulation for one-based
values on certain decomposed functions, (scale, diagonals of matrices, etc), we set the operation to accumulate
only for these cases.

A couple of bugs introduced by this additional support are also addressed. For a property with a
different transform operation than the keyframes given, transformFunctionListsMatch() would return
true when it shouldn't. Addressed by checking in blendByMatchingOperations and falling back on matrix
interpolation. Another bug is that we need to pass the composite operation to TransformationMatrix blend().
Another bug is that we should to use Replace behavior if either of the transform matrices are
non-invertible.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • platform/graphics/transforms/Matrix3DTransformOperation.cpp:

(WebCore::createOperation):

  • platform/graphics/transforms/MatrixTransformOperation.cpp:

(WebCore::MatrixTransformOperation::blend):

  • platform/graphics/transforms/RotateTransformOperation.cpp:

(WebCore::RotateTransformOperation::blend):

  • platform/graphics/transforms/TransformOperations.cpp:

(WebCore::TransformOperations::blendByMatchingOperations const):
(WebCore::TransformOperations::blendByUsingMatrixInterpolation const):
(WebCore::TransformOperations::blend const):

  • platform/graphics/transforms/TransformOperations.h:

(WebCore::TransformOperations::isInvertible const):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::blendFloat):
(WebCore::TransformationMatrix::blend2):
(WebCore::accumulateQuaternion):
(WebCore::TransformationMatrix::blend4):
(WebCore::TransformationMatrix::blend):

6:03 PM Changeset in webkit [289598] by graouts@webkit.org
  • 7 edits
    2 adds in trunk

[web-animations] accelerated animations should not run accelerated
​https://bugs.webkit.org/show_bug.cgi?id=236447
<rdar://problem/88756985>

Reviewed by Dean Jackson.

Source/WebCore:

Until we can tackle the complex task of supporting accelerated additive animations
(bug 232081), we need to run animations targeting properties that we would otherwise
known how to accelerate in software if it is additive or if another effect in the
effect stack is itself additive.

We add two new boolean flags on KeyframeEffect that will help us determine whether
that effect can run accelerated.

The first flag, m_hasKeyframeComposingAcceleratedProperty, indicates whether any of
the keyframes targeting a property that supports acceleration uses additivity or
accumulation.

With the help of this flag, we can make KeyframeEffect::canBeAccelerated() return false
not only if the effect has effect-wide additivity or accumulation, but also if one of
its keyframes does.

The second flag, m_hasImplicitKeyframeForAcceleratedProperty, indicates whether any
of the properties found in one of the keyframes is absent from either the 0% or 100%
keyframes. This is important because if an effect uses an implicit value for an
acclerated property, then that effect automatically depends on other effects lower
down the effect stack it belongs to being able to use an accelerated animation to
itself run accelerated.

With the help of this second flag, we can accurately determine when trying to start
an accelerated animation in the startAnimation() lambda within applyPendingAcceleratedActions()
whether the keyframe effect stack contains another effect that will fail to run
accelerated, and prevent this effect from running accelerated itself. Unless if
it does not rely on implicit keyframes, in which case effects lower down the stack
should not be accounted for, as we wouldn't have gone this far if this effect was
using additivity or accumulation, per the canBeAccelerated() improvements.

To allow the effect stack to determine whether any of its effects could be accelerated,
but fails to actually run accelerated, we've added a new KeyframeEffect::canBeAccelerated()
method that the new KeyframeEffectStack::containsEffectThatPreventsAccelerationOfEffect()
calls to determine if any effect other than the one provided should prevent acceleration.

Test: webanimations/accelerated-animations-and-composite.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setBlendingKeyframes):
(WebCore::KeyframeEffect::canBeAccelerated const):
(WebCore::KeyframeEffect::preventsAcceleration const):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
(WebCore::KeyframeEffect::computeHasImplicitKeyframeForAcceleratedProperty):
(WebCore::KeyframeEffect::computeHasKeyframeComposingAcceleratedProperty):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::containsEffectThatPreventsAccelerationOfEffect):

  • animation/KeyframeEffectStack.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

LayoutTests:

Add a new test which runs through all the various scenarios where additivity
should or should not prevent other animations from running accelerated.

  • webanimations/accelerated-animations-and-composite-expected.txt: Added.
  • webanimations/accelerated-animations-and-composite.html: Added.
5:47 PM Changeset in webkit [289597] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Check bidiLevels are valid before reordering
​https://bugs.webkit.org/show_bug.cgi?id=236378

Patch by Brandon Stewart <Brandon> on 2022-02-10
Reviewed by Alan Bujtas.

We were trusting that the bidiLevel was valid before calling the reorder.
If the bidiLevel ends up being greater than the MAX + 1 we end up in a situation where
the reordering will fail. The function returns void, so there is not a good way to check
for an error.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

4:45 PM Changeset in webkit [289596] by commit-queue@webkit.org
  • 3 edits
    1 copy in trunk/Source/WTF

Unreviewed, reverting r289583 and r289591.
​https://bugs.webkit.org/show_bug.cgi?id=236472

Still breaking builds

Reverted changesets:

"Reland native Xcode build phases for "Copy WTF Headers",
again"
​https://bugs.webkit.org/show_bug.cgi?id=235744
​https://commits.webkit.org/r289583

"Copy SignedPtr.h in WTF.xcodeproj"
​https://bugs.webkit.org/show_bug.cgi?id=236466
​https://commits.webkit.org/r289591

4:30 PM Changeset in webkit [289595] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Don't prefer text selection in images if it is not available
​https://bugs.webkit.org/show_bug.cgi?id=236462
<rdar://problem/88407336>

Reviewed by Wenson Hsieh.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
4:27 PM Changeset in webkit [289594] by Said Abou-Hallawa
  • 25 edits in trunk/Source

[GPU Process] Delete GraphicsContext::clipToDrawingCommands()
​https://bugs.webkit.org/show_bug.cgi?id=225959
rdar://78495380

Reviewed by Darin Adler.

Source/WebCore:

This function was added in r267742 as a workaround for a GPUProcess case
which was happening because ImageBuffer::createCompatibleBuffer() used
to return in-process ImageBuffer. clipToDrawingCommands() was a way to
record the clipper mask image into a temporary remote ImageBuffer.

If GraphicsContext::createCompatibleImageBuffer() can create an
ImageBuffer similar to the underlying ImageBuffer of the GraphicsContext,
then GraphicsContext::clipToDrawingCommands() is not needed.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::clipToDrawingCommands): Deleted.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/NullGraphicsContext.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::BeginClipToDrawingCommands::BeginClipToDrawingCommands): Deleted.
(WebCore::DisplayList::BeginClipToDrawingCommands::~BeginClipToDrawingCommands): Deleted.
(WebCore::DisplayList::BeginClipToDrawingCommands::destination const): Deleted.
(WebCore::DisplayList::BeginClipToDrawingCommands::colorSpace const): Deleted.
(WebCore::DisplayList::BeginClipToDrawingCommands::encode const): Deleted.
(WebCore::DisplayList::BeginClipToDrawingCommands::decode): Deleted.
(WebCore::DisplayList::EndClipToDrawingCommands::EndClipToDrawingCommands): Deleted.
(WebCore::DisplayList::EndClipToDrawingCommands::destination const): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::clipToDrawingCommands): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::~RecorderImpl):
(WebCore::DisplayList::RecorderImpl::createNestedContext): Deleted.
(WebCore::DisplayList::RecorderImpl::recordBeginClipToDrawingCommands): Deleted.
(WebCore::DisplayList::RecorderImpl::recordEndClipToDrawingCommands): Deleted.

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::Replayer::context const): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::clipToDrawingCommands): Deleted.

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawingContext):
(WebKit::RemoteDisplayListRecorder::beginClipToDrawingCommands): Deleted.
(WebKit::RemoteDisplayListRecorder::endClipToDrawingCommands): Deleted.

  • GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordBeginClipToDrawingCommands): Deleted.
(WebKit::RemoteDisplayListRecorderProxy::recordEndClipToDrawingCommands): Deleted.
(WebKit::RemoteDisplayListRecorderProxy::createNestedContext): Deleted.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
4:24 PM Changeset in webkit [289593] by commit-queue@webkit.org
  • 42 edits
    11 deletes in trunk

Unreviewed, reverting r289525.
​https://bugs.webkit.org/show_bug.cgi?id=236467

Introduced layout test crashes

Reverted changeset:

"Introduce a RemoteMediaSampleProxy to represent captured
video frames used in Media Streams and present in GPUP"
​https://bugs.webkit.org/show_bug.cgi?id=236099
​https://commits.webkit.org/r289525

4:20 PM Changeset in webkit [289592] by keith_miller@apple.com
  • 6 edits in trunk/Source

tryReserveUncommittedAligned should explicitly take the alignment requested
​https://bugs.webkit.org/show_bug.cgi?id=236460

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

When reducing the size of VA space reserved for Structures, we
didn't take care to ensure the alignment matched the required
alignment for our bit mask. To fix this we need to pass the
original alignment to the allocator as a new parameter.

  • heap/StructureAlignedMemoryAllocator.cpp:

(JSC::StructureMemoryManager::StructureMemoryManager):

Source/WTF:

This patch adds a new ifdef for Unix flavors that support the
MAP_ALIGNED macro/parameter to mmap.

Also, fix a bug where on windows we wouldn't request enough
space to guarantee that allocation is aligned.

  • wtf/OSAllocator.h:
  • wtf/posix/OSAllocatorPOSIX.cpp:

(WTF::OSAllocator::tryReserveUncommittedAligned):

  • wtf/win/OSAllocatorWin.cpp:

(WTF::OSAllocator::tryReserveUncommittedAligned):

3:57 PM Changeset in webkit [289591] by Elliott Williams
  • 2 edits in trunk/Source/WTF

Copy SignedPtr.h in WTF.xcodeproj
​https://bugs.webkit.org/show_bug.cgi?id=236466

Reviewed by Alexey Proskuryakov.

SignedPtr.h was recently added and needs to be part of WTF's Copy Headers phase.

  • WTF.xcodeproj/project.pbxproj:
3:49 PM Changeset in webkit [289590] by fpizlo@apple.com
  • 24 edits
    1 add in trunk/Source

[libpas] jit_heap should support the segregated heap
​https://bugs.webkit.org/show_bug.cgi?id=235497

Reviewed by Yusuke Suzuki.

Source/bmalloc:

One of the things that libpas provides is a fast implementation of executable memory allocation, which
libpas calls "jit_heap". The initial implementation of this only used libpas's bitfit and large
algorithms. Bitfit was used for smaller objects and large was used for larger objects. The libpas
segregated heap was disabled in jit_heap. This made sense because:

  • Bitfit and large support the shrink() call, where we shrink an allocation in-place. Executable allocation supports this to aid branch compaction (we compact code after we copy it into its final resting place, which is after we allocate the memory - so after we finish compaction, we can only shrink the allocation in-place or not at all).
  • Segregated heaps have some virtual address space overheads, and memory overheads, that the bitfit and large heaps don't have. This happens because segreated heaps will dedicate each page to objects of exactly one size forever.

However, segregated heaps are substantially faster than bitfit heaps. They are faster under serial
allocation thanks to the fact that no locks need to be acquired for a typical allocation or
deallocation. They are even more faster under parallel allocation thanks to thread-local caching.

This patch enables segregated heaps for the smallest jit_heap allocations (<=2000 bytes). The cutoff
threshold is runtime configurable, so it's possible to disable segregated heaps at runtime by setting
the cutoff to 0.

With the 2000 threshold, this appears to be a 0.3% Speedometer2 speed-up.

While there is a theoretical possibility of memory overhead, I haven't seen it. If we are using jump
islands then the virtual memory overhead of segregated heaps will just mean that we use jump islands
more frequently, which would manifest as a performance regression -- but I've not seen any such
regression. So, this disables the segregated heap if the JIT pool size is too small (see changes to
ExecutableAllocator.cpp in JSC).

  • libpas/libpas.xcodeproj/project.pbxproj:
  • libpas/src/libpas/jit_heap.c:

(jit_heap_shrink):

  • libpas/src/libpas/jit_heap_config.c:

(jit_small_segregated_allocate_page):
(jit_small_segregated_create_page_header):
(jit_small_destroy_page_header):
(jit_small_segregated_shared_page_directory_selector):
(jit_small_bitfit_allocate_page):
(jit_small_bitfit_create_page_header):
(jit_medium_bitfit_create_page_header):
(jit_medium_destroy_page_header):
(jit_prepare_to_enumerate):
(jit_small_bitfit_destroy_page_header): Deleted.
(jit_medium_bitfit_destroy_page_header): Deleted.

  • libpas/src/libpas/jit_heap_config.h:

(jit_small_page_header_for_boundary):
(jit_small_boundary_for_page_header):
(jit_medium_page_header_for_boundary):
(jit_medium_boundary_for_page_header):
(jit_heap_config_page_header):
(jit_small_bitfit_page_header_for_boundary): Deleted.
(jit_small_bitfit_boundary_for_page_header): Deleted.
(jit_medium_bitfit_page_header_for_boundary): Deleted.
(jit_medium_bitfit_boundary_for_page_header): Deleted.

  • libpas/src/libpas/jit_heap_config_root_data.h:
  • libpas/src/libpas/pas_bitfit_heap.c:

(pas_bitfit_heap_select_variant):
(pas_bitfit_heap_construct_and_insert_size_class):

  • libpas/src/libpas/pas_bitfit_heap.h:
  • libpas/src/libpas/pas_bitfit_page_config.h:

(pas_bitfit_page_config_is_enabled):

  • libpas/src/libpas/pas_heap_config.h:

(pas_heap_config_segregated_heap_min_align_shift):
(pas_heap_config_segregated_heap_min_align):

  • libpas/src/libpas/pas_segregated_heap.c:

(min_align_for_heap):
(min_object_size_for_heap):
(max_segregated_object_size_for_heap):
(max_bitfit_object_size_for_heap):
(max_object_size_for_heap):
(pas_segregated_heap_ensure_allocator_index):
(pas_segregated_heap_ensure_size_directory_for_size):
(min_object_size_for_heap_config): Deleted.
(max_segregated_object_size_for_heap_config): Deleted.
(max_bitfit_object_size_for_heap_config): Deleted.
(max_object_size_for_heap_config): Deleted.

  • libpas/src/libpas/pas_segregated_heap.h:

(pas_segregated_heap_index_for_size):
(pas_segregated_heap_size_for_index):

  • libpas/src/libpas/pas_segregated_page.c:

(pas_segregated_page_construct):

  • libpas/src/libpas/pas_segregated_page_config.h:

(pas_segregated_page_config_is_enabled):

  • libpas/src/libpas/pas_segregated_page_config_kind.def:
  • libpas/src/libpas/pas_segregated_page_config_kind_and_role.h:
  • libpas/src/libpas/pas_segregated_size_directory.c:

(pas_segregated_size_directory_create):

  • libpas/src/test/IsoHeapChaosTests.cpp:

(std::addAllTests):

  • libpas/src/test/JITHeapTests.cpp:

(std::testAllocationSize):
(addJITHeapTests):

  • libpas/src/test/TestHarness.cpp:

(main):

  • libpas/src/test/ViewCacheTests.cpp: Added.

(std::setupConfig):
(std::testDisableViewCacheUsingBoundForNoViewCache):
(std::testEnableViewCacheAtSomeBoundForNoViewCache):
(addViewCacheTests):

Source/JavaScriptCore:

Disable the jit_heap segregated heap if the executable pool size is too small.

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

3:42 PM Changeset in webkit [289589] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Adjust asserts in InlineDisplayContentBuilder::processBidiContent to support vertical writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236418

Reviewed by Antti Koivisto.

This is in preparation for adding vertical writing mode support.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

3:36 PM Changeset in webkit [289588] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Use Ref<> for getBackground/MaskShorthandValue
​https://bugs.webkit.org/show_bug.cgi?id=236408

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-10
Reviewed by Tim Nguyen.

Simple cleanup to make it clearer that these can't return nullptr, no tests needed.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::getFillLayerPropertyShorthandValue):
(WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):
(WebCore::ComputedStyleExtractor::getMaskShorthandValue):

  • css/CSSComputedStyleDeclaration.h:
3:22 PM Changeset in webkit [289587] by Elliott Williams
  • 2 edits in trunk

[Xcode] Perform a full build when analyzing
​https://bugs.webkit.org/show_bug.cgi?id=236421

Reviewed by Alexey Proskuryakov.

xcodebuild analyze does just enough work to run the analyzer on each target, and doesn't
appear to run build phases that only impact consumers of the target. In particular, it
doesn't copy framework headers.

Fix by telling xcodebuild to build _and_ analyze at once. AFAICT, this is exactly what
Xcode's Product > Analyze command does.

  • Makefile.shared: s/analyze/build analyze
3:11 PM Changeset in webkit [289586] by Russell Epstein
  • 1 copy in tags/Safari-613.1.17

Tag Safari-613.1.17.

3:09 PM Changeset in webkit [289585] by Russell Epstein
  • 2 edits in branches/safari-613-branch

Cherry-pick r288434. rdar://problem/56436745

texImage2d fails to set same video frame to multiple textures
​https://bugs.webkit.org/show_bug.cgi?id=203148
<rdar://problem/56436745>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-24
Reviewed by Darin Adler.

Source/WebCore:

WebGL optimizes repeated video uploads to same texture, due to this being
usual practice among pages. Reason is that there are no API to know when the
video frame updates.
The algorithm was:

  • If the IOSurface is the same as in the last call
  • If the texture contents has not changed since we last modified this texture then skip the upload.

However, this logic skips errorneously if the "last call" updates some other texture.
Fix and test the above.

There are other issues for the current algorithm. This patch fixes some other theoretical ones:

  • If the texture is deleted and new one gets assigned the same texture id and the content seed would clash
  • Video was uploaded to a different level

The previous implementation was keeping per-texture seed value map in the context
(GraphicsContextGLANGLE) and per-teture seed value map in the texture upload helper
(GraphicsContextGLCVCocoa) and last uploaded IOSurface seed in the upload helper (not per
texture).

The implementation in this patch keeps per-texture known content description in the texture
upload helper and invalidates this when each texture changes. The known content description
is the parameter list of the texture upload call.

Test: webgl/pending/conformance/textures/misc/tex-image-video-repeated.html

  • platform/graphics/GraphicsContextGLState.h: (WebCore::GraphicsContextGLState::setBoundTexture):
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::texImage2D): (WebCore::GraphicsContextGLANGLE::texSubImage2D): (WebCore::GraphicsContextGLANGLE::compressedTexImage2D): (WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D): (WebCore::GraphicsContextGLANGLE::texStorage2D): (WebCore::GraphicsContextGLANGLE::texStorage3D): (WebCore::GraphicsContextGLANGLE::texImage2DDirect): (WebCore::GraphicsContextGLANGLE::framebufferTexture2D): (WebCore::GraphicsContextGLANGLE::createTexture): (WebCore::GraphicsContextGLANGLE::deleteTexture): (WebCore::GraphicsContextGLANGLE::invalidateKnownTextureContent): (WebCore::GraphicsContextGLANGLE::textureSeed): Deleted.
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::invalidateKnownTextureContent):
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: (WebCore::GraphicsContextGLCVCocoa::TextureContent::operator== const): (WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture): (WebCore::GraphicsContextGLCVCocoa::invalidateKnownTextureContent):
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

LayoutTests:

Add a test for testing the bug in which some video texture uploads
were skipped errorneously.

  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html: Added.
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt: Added.
  • webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288434 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:07 PM Changeset in webkit [289584] by Elliott Williams
  • 4 edits in trunk

Use of unversioned 'python' in Mac builds causing failures in 12.3
​https://bugs.webkit.org/show_bug.cgi?id=236327

Reviewed by Jonathan Bedard.

  • WebKit.xcodeproj/project.pbxproj: python -> python3 in "Replace WebKitAdditions in

Framework Headers" phase.

3:02 PM Changeset in webkit [289583] by Elliott Williams
  • 3 edits
    1 delete in trunk/Source/WTF

Reland native Xcode build phases for "Copy WTF Headers", again
​https://bugs.webkit.org/show_bug.cgi?id=235744

Reviewed by Alexey Proskuryakov.

Changes since revert of r289490:

Some WTF headers were never tracked in WTF.xcodeproj, causing builds to fail (but only after
a build directory was cleaned and stale headers removed).

  • WTF.xcodeproj/project.pbxproj: Add file references for missing headers.
2:56 PM Changeset in webkit [289582] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.6

Tag Safari-613.1.16.1.6.

2:55 PM Changeset in webkit [289581] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.6

Tag Safari-613.1.16.0.6.

2:48 PM Changeset in webkit [289580] by commit-queue@webkit.org
  • 22 edits in trunk/Source

ImageBuffer::get/putPixelBuffer should not go through DisplayList
​https://bugs.webkit.org/show_bug.cgi?id=236305

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-10
Reviewed by Geoffrey Garen.

Source/WebCore:

Remove GetPixelBuffer / PutPixelBuffer from display list implementation.
Display lists are about GraphicsContext commands.
GetPixelBuffer and PutPixelBuffer are ImageBuffer operations.
Especially GetPixelBuffer does not make sense as a display list item,
and in its current form it does not have parameters to propagate the information
other than to a global variables, like the WebKit side GPUP implementation does.
It is undefined what would two GetPixelBuffer commands one after another mean
in a display list.

The operations in the wrong layer make the correct implementation harder than
neccessary. In this case, GetPixelBuffer is a read operation, but in current
implementation it was invoked by Flush, e.g. GetPixelBuffer would be inside
a section of commands being flushed. Flush is a write operation. As such
it would create a get of unflushed content.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:
  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

Source/WebKit:

Move code that carries out RemoteImageBufferProxy GetPixelBuffer, PutPixelBuffer
from the display list playback to RemoteImageBuffer implementation
in RemoteRenderingBackend, the same place that hosts other
RemoteImageBuffer function invocations.

This makes it possible in the future to mark GetPixelBuffer as a read operation
depending on the previous write operations. Previously GetPixelBuffer was recorded
to the display list before the display list was flushed, which is semantically wrong
and in practice would cause inverted references.

Simplify the protocol to implement the GetPixelBuffer. Previously it was:

  • If GPUP does not have the semaphore and the shm, ask for GPUP to send them, sync
  • Else if GPUP does not have the semaphore, ask for GPUP to send it, sync
  • Else if GPUP does not have the shm send, ask for GPUP to send it, sync
  • Send the GetPixelBuffer message via stream async
  • Wait for the semaphore

After it is:

  • If GPUP does not have the shm send GetPixelBuffer with the shm, sync
  • Else send the GetPixelBuffer via stream sync

There's no point in sending a semaphore, the stream sync message is
just a wait on the stream semaphore. Also, since semaphores
might have spurious wakeups, it is not enough of a protocol to wait a
plain semaphore.

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
  • GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackend::getPixelBufferForImageBufferWithNewMemory):
(WebKit::RemoteRenderingBackend::putPixelBufferForImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteRenderingBackendProxy::getPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::putPixelBufferForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::updateSharedMemoryForGetPixelBuffer):
(WebKit::RemoteRenderingBackendProxy::destroyGetPixelBufferSharedMemory):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
2:34 PM Changeset in webkit [289579] by fpizlo@apple.com
  • 79 edits
    10 adds in trunk/Source/bmalloc

[libpas] it should be possible to decommit unused parts of a thread_local_cache (update to 78508e79fa2797680344d43b94841ae2e903b15b)
​https://bugs.webkit.org/show_bug.cgi?id=235347

Reviewed by Yusuke Suzuki.

Libpas uses TLCs (thread_local_caches) for allocation and deallocation. Each size class in each heap
gets a local allocator and possibly a local view cache. Both local allocators and local view caches
can get quite large (100s of bytes). So, if you try to support full isoheaps (bug 231938), you end up
with ginormous TLCs and that accounts for a lot of the memory overhead of full isoheaps.

This change takes a big bite out of that overhead by enabling decommit of TLC pages:

  • Any page within a TLC that has nothing but stopped allocators (or view caches; I'll just say "allocators" to mean both "local allocators" and "local view caches", as I do in the code) can get decommitted by the scavenger.
  • TLC page decommit just requires holding the TLC's scavenger_lock (formerly known as the log_flush_lock) and the heap_lock. You don't have to suspend the thread (but suspension could have been used to stop the allocator, as before).
  • Attempts to allocate using an allocator in a decommitted page are guaranteed to go down a slow path that commits the page and rematerializes the allocator.
  • This doesn't require any page alignment of allocators. Allocators can straddle pages.

This seems to be perf-neutral on trunk. It offers a ~1.5% memory improvement for bug 231938.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/libpas.xcodeproj/project.pbxproj:
  • libpas/src/libpas/bmalloc_heap.c:

(bmalloc_flex_heap_ref_get_heap):
(bmalloc_auxiliary_heap_ref_get_heap):
(bmalloc_get_heap):

  • libpas/src/libpas/bmalloc_heap.h:
  • libpas/src/libpas/bmalloc_heap_config.h:
  • libpas/src/libpas/jit_heap_config.c:

(jit_aligned_allocator):

  • libpas/src/libpas/jit_heap_config.h:
  • libpas/src/libpas/minalign32_heap_config.h:
  • libpas/src/libpas/pas_bitfit_allocator.c:

(pas_bitfit_allocator_construct):
(pas_bitfit_allocator_stop):
(pas_bitfit_allocator_commit_view):
(pas_bitfit_allocator_finish_failing):

  • libpas/src/libpas/pas_bitfit_allocator.h:
  • libpas/src/libpas/pas_bitfit_allocator_inlines.h:

(pas_bitfit_allocator_try_allocate):

  • libpas/src/libpas/pas_bitfit_directory.c:

(pas_bitfit_directory_take_last_empty):

  • libpas/src/libpas/pas_bitfit_page_config.h:
  • libpas/src/libpas/pas_bitfit_page_config_inlines.h:
  • libpas/src/libpas/pas_bitfit_page_inlines.h:

(pas_bitfit_page_allocation_commit_granules_or_reloop):

  • libpas/src/libpas/pas_commit_span.c:

(pas_commit_span_construct):
(commit):
(pas_commit_span_add_unchanged_and_commit):
(decommit):

  • libpas/src/libpas/pas_commit_span.h:
  • libpas/src/libpas/pas_committed_pages_vector.c: Added.

(pas_committed_pages_vector_construct):
(pas_committed_pages_vector_destruct):
(pas_committed_pages_vector_count_committed):
(pas_count_committed_pages):

  • libpas/src/libpas/pas_committed_pages_vector.h: Added.

(pas_committed_pages_vector_is_committed):

  • libpas/src/libpas/pas_compact_tagged_ptr.h:
  • libpas/src/libpas/pas_compact_thread_local_cache_layout_node.h: Added.
  • libpas/src/libpas/pas_decommit_exclusion_range.h: Added.

(pas_decommit_exclusion_range_is_empty):
(pas_decommit_exclusion_range_is_contiguous):
(pas_decommit_exclusion_range_is_inverted):
(pas_decommit_exclusion_range_create_inverted):

  • libpas/src/libpas/pas_deferred_decommit_log.c:

(decommit_all):

  • libpas/src/libpas/pas_expendable_memory.c:

(pas_expendable_memory_state_version_next):
(pas_expendable_memory_construct):
(pas_expendable_memory_commit_if_necessary):
(scavenge_impl):
(pas_expendable_memory_scavenge):

  • libpas/src/libpas/pas_expendable_memory.h:
  • libpas/src/libpas/pas_free_granules.c:

(pas_free_granules_decommit_after_locking_range):

  • libpas/src/libpas/pas_heap.c:

(pas_heap_get_type_size):
(pas_heap_get_type_alignment):

  • libpas/src/libpas/pas_heap.h:
  • libpas/src/libpas/pas_heap_config.h:
  • libpas/src/libpas/pas_heap_config_utils.c:

(pas_heap_config_utils_allocate_aligned):

  • libpas/src/libpas/pas_heap_config_utils.h:
  • libpas/src/libpas/pas_heap_ref.c:

(pas_ensure_heap_slow):

  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_large_free_heap_deferred_commit_log.c:

(pas_large_free_heap_deferred_commit_log_construct):
(pas_large_free_heap_deferred_commit_log_destruct):
(pas_large_free_heap_deferred_commit_log_add):
(commit):
(commit_all):

  • libpas/src/libpas/pas_large_free_heap_deferred_commit_log.h:
  • libpas/src/libpas/pas_large_free_heap_helpers.c:

(large_utility_aligned_allocator):
(pas_large_free_heap_helpers_try_allocate_with_alignment):
(pas_large_free_heap_helpers_deallocate):

  • libpas/src/libpas/pas_large_heap.c:

(allocate_impl):
(pas_large_heap_try_deallocate):
(pas_large_heap_try_shrink):

  • libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.c:

(large_aligned_allocator):
(pas_large_heap_physical_page_sharing_cache_try_allocate_with_alignment):

  • libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.h:
  • libpas/src/libpas/pas_large_sharing_pool.c:

(create_node):
(create_and_insert):
(boot_tree):
(states_match):
(split_node_and_get_right_impl):
(try_splat_impl):
(try_splat):
(splat):
(pas_large_sharing_pool_boot_free):
(pas_large_sharing_pool_free):
(pas_large_sharing_pool_allocate_and_commit):
(pas_large_sharing_pool_decommit_least_recently_used):

  • libpas/src/libpas/pas_large_sharing_pool.h:
  • libpas/src/libpas/pas_large_virtual_range.h: Added.

(pas_large_virtual_range_create):
(pas_large_virtual_range_create_empty):
(pas_large_virtual_range_get_range):
(pas_large_virtual_range_is_empty):
(pas_large_virtual_range_size):
(pas_large_virtual_range_overlaps):

  • libpas/src/libpas/pas_large_virtual_range_min_heap.h: Added.

(pas_large_virtual_range_compare_begin):
(pas_large_virtual_range_get_index):
(pas_large_virtual_range_set_index):

  • libpas/src/libpas/pas_local_allocator.c:

(pas_local_allocator_construct):
(pas_local_allocator_move):
(stop_impl):
(pas_local_allocator_stop):

  • libpas/src/libpas/pas_local_allocator_inlines.h:

(pas_local_allocator_commit_if_necessary_impl):
(pas_local_allocator_commit_if_necessary):
(pas_local_allocator_bless_primordial_partial_view_before_stopping):
(pas_local_allocator_refill_with_known_config):
(pas_local_allocator_try_allocate_small_segregated_slow_impl):
(pas_local_allocator_try_allocate_out_of_line_cases):
(pas_local_allocator_try_allocate_slow_impl):

  • libpas/src/libpas/pas_local_allocator_kind.h:

(pas_local_allocator_kind_get_string):
(pas_local_allocator_kind_is_stopped):

  • libpas/src/libpas/pas_local_allocator_scavenger_data.c:

(pas_local_allocator_scavenger_data_is_stopped):
(pas_local_allocator_scavenger_data_commit_if_necessary_slow):
(pas_local_allocator_scavenger_data_stop):
(pas_local_allocator_scavenger_data_prepare_to_decommit):
(pas_local_allocator_scavenger_data_is_active): Deleted.

  • libpas/src/libpas/pas_local_allocator_scavenger_data.h:
  • libpas/src/libpas/pas_local_view_cache.c:

(pas_local_view_cache_construct):
(pas_local_view_cache_move):
(pas_local_view_cache_stop):
(pas_local_view_cache_did_restart):

  • libpas/src/libpas/pas_local_view_cache.h:

(pas_local_view_cache_get_state):
(pas_local_view_cache_set_state):
(pas_local_view_cache_is_full):
(pas_local_view_cache_can_push):
(pas_local_view_cache_is_empty):
(pas_local_view_cache_prepare_to_pop):
(pas_local_view_cache_prepare_to_push):
(pas_local_view_cache_pop):
(pas_local_view_cache_push):

  • libpas/src/libpas/pas_lock.h:
  • libpas/src/libpas/pas_mmap_capability.h: Added.

(pas_mmap_capability_get_string):

  • libpas/src/libpas/pas_page_malloc.c:

(pas_page_malloc_alignment_slow):
(pas_page_malloc_alignment_shift_slow):
(pas_page_malloc_zero_fill):
(commit_impl):
(pas_page_malloc_commit):
(pas_page_malloc_commit_without_mprotect):
(decommit_impl):
(pas_page_malloc_decommit):
(pas_page_malloc_decommit_without_mprotect):
(pas_page_malloc_decommit_asymmetric): Deleted.

  • libpas/src/libpas/pas_page_malloc.h:
  • libpas/src/libpas/pas_scavenger.c:

(handle_expendable_memory):
(scavenger_thread_main):
(pas_scavenger_decommit_expendable_memory):
(pas_scavenger_fake_decommit_expendable_memory):

  • libpas/src/libpas/pas_scavenger.h:
  • libpas/src/libpas/pas_segregated_exclusive_view.c:

(pas_segregated_exclusive_view_create):

  • libpas/src/libpas/pas_segregated_exclusive_view.h:
  • libpas/src/libpas/pas_segregated_exclusive_view_inlines.h:

(pas_segregated_exclusive_view_note_eligibility):

  • libpas/src/libpas/pas_segregated_heap.c:

(medium_directory_tuple_for_index_impl):
(pas_segregated_heap_medium_directory_tuple_for_index):
(pas_segregated_heap_medium_allocator_index_for_index):
(recompute_size_lookup):
(rematerialize_size_lookup_set_medium_directory_tuple):
(pas_segregated_heap_ensure_allocator_index):
(check_size_lookup_recomputation_set_medium_directory_tuple):
(check_size_lookup_recomputation_dump_directory):
(check_size_lookup_recomputation):
(check_size_lookup_recomputation_if_appropriate):
(pas_segregated_heap_ensure_size_directory_for_size):

  • libpas/src/libpas/pas_segregated_heap.h:
  • libpas/src/libpas/pas_segregated_heap_inlines.h:

(pas_segregated_heap_touch_lookup_tables):

  • libpas/src/libpas/pas_segregated_page.c:

(pas_segregated_page_take_physically):
(pas_segregated_page_commit_fully):

  • libpas/src/libpas/pas_segregated_page_inlines.h:

(pas_segregated_page_log_or_deallocate):

  • libpas/src/libpas/pas_segregated_partial_view.c:

(pas_segregated_partial_view_create):
(compute_summary):

  • libpas/src/libpas/pas_segregated_partial_view.h:
  • libpas/src/libpas/pas_segregated_shared_page_directory.c:

(take_last_empty_consider_view):

  • libpas/src/libpas/pas_segregated_shared_view.c:

(pas_segregated_shared_view_create):
(pas_segregated_shared_view_commit_page):
(compute_summary):

  • libpas/src/libpas/pas_segregated_shared_view.h:
  • libpas/src/libpas/pas_segregated_size_directory.c:

(take_last_empty_consider_view):

  • libpas/src/libpas/pas_segregated_size_directory.h:

(pas_segregated_size_directory_get_tlc_allocator_index):

  • libpas/src/libpas/pas_segregated_view_allocator_inlines.h:

(pas_segregated_view_will_start_allocating):

  • libpas/src/libpas/pas_status_reporter.c:

(dump_large_sharing_pool_node_callback):
(pas_status_reporter_dump_view_stats):
(allocator_state):
(dump_allocator_state):
(dump_scavenger_data_state):
(pas_status_reporter_dump_baseline_allocators):
(pas_status_reporter_dump_thread_local_caches):
(pas_status_reporter_dump_everything):

  • libpas/src/libpas/pas_status_reporter.h:
  • libpas/src/libpas/pas_thread_local_cache.c:

(pas_thread_local_cache_size_for_allocator_index_capacity):
(num_pages):
(compute_page_indices):
(pages_committed_size):
(deallocate):
(allocate_cache):
(pas_thread_local_cache_create):
(pas_thread_local_cache_destroy):
(pas_thread_local_cache_get_local_allocator_slow):
(pas_thread_local_cache_is_committed):
(pas_thread_local_cache_compute_decommit_exclusion_range):
(pas_thread_local_cache_ensure_committed):
(pas_thread_local_cache_allocator_index_for_allocator):
(pas_thread_local_cache_stop_local_allocators):
(flush_deallocation_log_without_resetting):
(flush_deallocation_log_for_scavenger):
(flush_deallocation_log_with_mode):
(pas_thread_local_cache_flush_deallocation_log):
(pas_thread_local_cache_flush_deallocation_log_direct):
(suspend):
(resume):
(decommit_allocator_range):
(stop_allocator):
(pas_thread_local_cache_for_all):
(pas_thread_local_cache_shrink):
(flush_deallocation_log): Deleted.

  • libpas/src/libpas/pas_thread_local_cache.h:

(pas_thread_local_cache_offset_of_allocator):

  • libpas/src/libpas/pas_thread_local_cache_layout.c:

(pas_thread_local_cache_layout_add_node):
(pas_thread_local_cache_layout_get_node_for_index):

  • libpas/src/libpas/pas_thread_local_cache_layout.h:
  • libpas/src/libpas/pas_thread_local_cache_layout_entry.h: Added.

(pas_thread_local_cache_layout_entry_create_empty):
(pas_thread_local_cache_layout_entry_create_deleted):
(pas_thread_local_cache_layout_entry_is_empty_or_deleted):
(pas_thread_local_cache_layout_entry_is_empty):
(pas_thread_local_cache_layout_entry_is_deleted):
(pas_thread_local_cache_layout_entry_get_key):
(pas_thread_local_cache_layout_key_get_hash):
(pas_thread_local_cache_layout_key_is_equal):

  • libpas/src/libpas/pas_thread_local_cache_layout_node.c:

(pas_thread_local_cache_layout_node_num_allocator_indices):
(pas_thread_local_cache_layout_node_commit_and_construct):
(pas_thread_local_cache_layout_node_move):
(pas_thread_local_cache_layout_node_is_committed):
(pas_thread_local_cache_layout_node_ensure_committed):
(pas_thread_local_cache_layout_node_prepare_to_decommit):
(pas_thread_local_cache_layout_num_allocator_indices): Deleted.
(pas_thread_local_cache_layout_node_construct): Deleted.

  • libpas/src/libpas/pas_thread_local_cache_layout_node.h:
  • libpas/src/libpas/pas_thread_local_cache_node.c:

(pas_thread_local_cache_node_allocate):

  • libpas/src/libpas/pas_thread_local_cache_node.h:
  • libpas/src/libpas/pas_try_allocate_intrinsic.h:

(pas_try_allocate_intrinsic_impl_casual_case):
(pas_try_allocate_intrinsic_impl_inline_only):

  • libpas/src/libpas/pas_try_allocate_primitive.h:

(pas_try_allocate_primitive_impl_casual_case):
(pas_try_allocate_primitive_impl_inline_only):

  • libpas/src/libpas/pas_utility_heap_config.h:
  • libpas/src/libpas/pas_utils.h:
  • libpas/src/libpas/pas_virtual_range.h:

(pas_virtual_range_create):
(pas_virtual_range_create_empty):

  • libpas/src/test/ExpendableMemoryTests.cpp:

(std::testRage):
(std::testRematerializeAfterSearchOfDecommitted):
(std::testBasicSizeClass):
(addExpendableMemoryTests):

  • libpas/src/test/LargeSharingPoolTests.cpp:

(std::testGoodCoalesceEpochUpdate):

  • libpas/src/test/MemalignTests.cpp: Added.

(addMemalignTests):

  • libpas/src/test/TLCDecommitTests.cpp: Added.

(std::numCommittedPagesInTLC):
(std::testTLCDecommit):
(std::testChaosThenDecommit):
(std::testTLCDecommitThenDestroyImpl):
(std::testTLCDecommitThenDestroy):
(std::testTLCDecommitThenDestroyInThread):
(std::testTLCDecommitThenFlush):
(std::testTLCDecommitThenDeallocate):
(addTLCDecommitTests):

  • libpas/src/test/TestHarness.cpp:

(RuntimeConfigTestScope::RuntimeConfigTestScope):
(DecommitZeroFill::DecommitZeroFill):
(main):

  • libpas/src/test/TestHarness.h:

(operator<<):

  • libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp:

(std::addAllTests):

2:23 PM Changeset in webkit [289578] by Devin Rousso
  • 39 edits
    1 delete in trunk

Permit simultaneous Apple Pay and script injection
​https://bugs.webkit.org/show_bug.cgi?id=236254
<rdar://problem/87736727>

Reviewed by Kate Cheney.

Source/WebCore:

Tests: ApplePay.ApplePayAvailableByDefault

ApplePay.ApplePayAvailableInFrame
ApplePay.UserScriptAtDocumentStartDoesNotDisableApplePay
ApplePay.UserScriptAtDocumentEndDoesNotDisableApplePay
ApplePay.UserAgentScriptEvaluationDoesNotDisableApplePay
ApplePay.UserAgentScriptEvaluationDoesNotDisableApplePayInExistingObjects
ApplePay.CanMakePaymentsDoesNotBlockUserAgentScripts
ApplePay.CanMakePaymentsWithActiveCardDoesNotBlockUserAgentScripts
ApplePay.CanMakePaymentDoesNotBlockUserAgentScripts

  • dom/Document.h:
  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):
(WebCore::Document::hasEvaluatedUserAgentScripts const): Deleted.
(WebCore::Document::setHasEvaluatedUserAgentScripts): Deleted.
(WebCore::Document::isApplePayActive const): Deleted.
(WebCore::Document::setApplePayIsActive): Deleted.
Remove logic that tracks script injection activity.

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeUserAgentScriptInWorld):
(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):
(WebCore::ScriptController::executeUserAgentScriptInWorldInternal): Deleted.
(WebCore::ScriptController::shouldAllowUserAgentScripts const): Deleted.

  • loader/EmptyClients.cpp:

(WebCore::EmptyPaymentCoordinatorClient::supportsUnrestrictedApplePay): Deleted.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):
Remove logic that disables script injection after an Apple Pay session is started.

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::canMakePayments):
(WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard):
(WebCore::PaymentCoordinator::beginPaymentSession):
(WebCore::PaymentCoordinator::shouldEnableApplePayAPIs const): Deleted.
(WebCore::PaymentCoordinator::setApplePayIsActiveIfAllowed const): Deleted.
(WebCore::PaymentCoordinator::shouldAllowUserAgentScripts const): Deleted.

  • Modules/applepay/PaymentCoordinatorClient.h:

(WebCore::PaymentCoordinatorClient::userAgentScriptsBlockedErrorMessage const): Deleted.
Remove logic that tracks Apple Pay activity.

  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/PaymentSession.h:
  • Modules/applepay/PaymentSession.cpp:

(WebCore::PaymentSession::enabledForContext): Deleted.

  • Modules/paymentrequest/PaymentHandler.cpp:

(WebCore::PaymentHandler::enabledForContext): Deleted.

  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::enabledForContext): Deleted.
Remove logic that disables ApplePaySession/PaymentRequest after script injection.

  • testing/Internals.idl:
  • testing/Internals.h:
  • testing/Internals.cpp:

(WebCore::Internals::setApplePayIsActive): Deleted.

  • testing/MockPaymentCoordinator.idl:
  • testing/MockPaymentCoordinator.h:

(WebCore::MockPaymentCoordinator::supportsUnrestrictedApplePay): Deleted.
(WebCore::MockPaymentCoordinator::setSupportsUnrestrictedApplePay): Deleted.
Remove testing support since all uses of these have been removed (above).

Source/WebKit:

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::supportsUnrestrictedApplePay const): Deleted.
(WebKit::WebPaymentCoordinator::userAgentScriptsBlockedErrorMessage const): Deleted.
Remove logic that tracks Apple Pay activity.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::supportsUnrestrictedApplePay const): Deleted.
Remove logic that tracks Apple Pay activity.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ApplePay.mm:

(TestWebKitAPI::TEST.ApplePay.ApplePayAvailableByDefault):
(TestWebKitAPI::TEST.ApplePay.ApplePayAvailableInFrame): Renamed from ApplePay.ApplePayAvailableInUnrestrictedClients.
(TestWebKitAPI::TEST.ApplePay.UserScriptAtDocumentStartDoesNotDisableApplePay): Renamed from ApplePay.UserScriptAtDocumentStartDisablesApplePay.
(TestWebKitAPI::TEST.ApplePay.UserScriptAtDocumentEndDoesNotDisableApplePay): Renamed from ApplePay.UserScriptAtDocumentEndDisablesApplePay.
(TestWebKitAPI::TEST.ApplePay.UserAgentScriptEvaluationDoesNotDisableApplePay): Renamed from ApplePay.UserAgentScriptEvaluationDisablesApplePay.
(TestWebKitAPI::TEST.ApplePay.UserAgentScriptEvaluationDoesNotDisableApplePayInExistingObjects): Renamed from ApplePay.UserAgentScriptEvaluationDisablesApplePayInExistingObjects.
(TestWebKitAPI::TEST.ApplePay.CanMakePaymentsDoesNotBlockUserAgentScripts): Renamed from ApplePay.CanMakePaymentsBlocksUserAgentScripts.
(TestWebKitAPI::TEST.ApplePay.CanMakePaymentsWithActiveCardDoesNotBlockUserAgentScripts): Renamed from ApplePay.CanMakePaymentsWithActiveCardBlocksUserAgentScripts.
(TestWebKitAPI::TEST.ApplePay.CanMakePaymentDoesNotBlockUserAgentScripts): Renamed from ApplePay.CanMakePaymentBlocksUserAgentScripts.
(TestWebKitAPI::TEST.ApplePay.ActiveSessionBlocksUserAgentScripts): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-active-session.html: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-availability.html:
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-availability-existing-object.html:
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-availability-in-iframe.html:
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-can-make-payment.html:
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-can-make-payments.html:
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-can-make-payments-with-active-card.html:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2:21 PM Changeset in webkit [289577] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix linker errors when CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER is enabled
​https://bugs.webkit.org/show_bug.cgi?id=236455

Patch by Ada Chan <​ada.chan@apple.com> on 2022-02-10
Reviewed by Tim Horton.

WebCore::GraphicsContext::createImageBuffer() and WebCore::GraphicsContext::createCompatibleImageBuffer()
are used in WebKit::GraphicsContextCGDisplayList and need to be exported

  • platform/graphics/GraphicsContext.h:
2:19 PM Changeset in webkit [289576] by aakash_jain@apple.com
  • 1 edit
    474 adds in trunk/Source/ThirdParty

Import PDF.js v2.12.313 to the WebKit repo
​https://bugs.webkit.org/show_bug.cgi?id=236452

Patch by Tim Nguyen <​ntim@apple.com> on 2022-02-10
Reviewed by Brent Fulgham.

Add bundle from ​https://mozilla.github.io/pdf.js/getting_started/#download (Modern browsers version)

Delete the following:

  • Sourcemaps (.js.map files)
  • Example PDF file (compressed.tracemonkey-pldi-09.pdf)
  • pdfjs/LICENSE: Added.
  • pdfjs/build/pdf.js: Added.

(webpackUniversalModuleDefinition):
(return.):
(return):

  • pdfjs/build/pdf.sandbox.js: Added.

(webpackUniversalModuleDefinition):
(return.):

  • pdfjs/build/pdf.worker.js: Added.

(webpackUniversalModuleDefinition):
(return.):
(return):

  • pdfjs/web/cmaps/78-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/78-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/78-H.bcmap: Added.
  • pdfjs/web/cmaps/78-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/78-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/78-V.bcmap: Added.
  • pdfjs/web/cmaps/78ms-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/78ms-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/83pv-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/90ms-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/90ms-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/90msp-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/90msp-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/90pv-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/90pv-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/Add-H.bcmap: Added.
  • pdfjs/web/cmaps/Add-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/Add-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/Add-V.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-0.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-1.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-3.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-4.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-5.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-6.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-CNS1-UCS2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-0.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-1.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-3.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-4.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-5.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-GB1-UCS2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-0.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-1.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-3.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-4.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-5.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-6.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Japan1-UCS2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Korea1-0.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Korea1-1.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Korea1-2.bcmap: Added.
  • pdfjs/web/cmaps/Adobe-Korea1-UCS2.bcmap: Added.
  • pdfjs/web/cmaps/B5-H.bcmap: Added.
  • pdfjs/web/cmaps/B5-V.bcmap: Added.
  • pdfjs/web/cmaps/B5pc-H.bcmap: Added.
  • pdfjs/web/cmaps/B5pc-V.bcmap: Added.
  • pdfjs/web/cmaps/CNS-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/CNS-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/CNS1-H.bcmap: Added.
  • pdfjs/web/cmaps/CNS1-V.bcmap: Added.
  • pdfjs/web/cmaps/CNS2-H.bcmap: Added.
  • pdfjs/web/cmaps/CNS2-V.bcmap: Added.
  • pdfjs/web/cmaps/ETHK-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/ETHK-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/ETen-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/ETen-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/ETenms-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/ETenms-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/Ext-H.bcmap: Added.
  • pdfjs/web/cmaps/Ext-RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/Ext-RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/Ext-V.bcmap: Added.
  • pdfjs/web/cmaps/GB-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/GB-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/GB-H.bcmap: Added.
  • pdfjs/web/cmaps/GB-V.bcmap: Added.
  • pdfjs/web/cmaps/GBK-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/GBK-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/GBK2K-H.bcmap: Added.
  • pdfjs/web/cmaps/GBK2K-V.bcmap: Added.
  • pdfjs/web/cmaps/GBKp-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/GBKp-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/GBT-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/GBT-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/GBT-H.bcmap: Added.
  • pdfjs/web/cmaps/GBT-V.bcmap: Added.
  • pdfjs/web/cmaps/GBTpc-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/GBTpc-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/GBpc-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/GBpc-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/H.bcmap: Added.
  • pdfjs/web/cmaps/HKdla-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/HKdla-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/HKdlb-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/HKdlb-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/HKgccs-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/HKgccs-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/HKm314-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/HKm314-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/HKm471-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/HKm471-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/HKscs-B5-H.bcmap: Added.
  • pdfjs/web/cmaps/HKscs-B5-V.bcmap: Added.
  • pdfjs/web/cmaps/Hankaku.bcmap: Added.
  • pdfjs/web/cmaps/Hiragana.bcmap: Added.
  • pdfjs/web/cmaps/KSC-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/KSC-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/KSC-H.bcmap: Added.
  • pdfjs/web/cmaps/KSC-Johab-H.bcmap: Added.
  • pdfjs/web/cmaps/KSC-Johab-V.bcmap: Added.
  • pdfjs/web/cmaps/KSC-V.bcmap: Added.
  • pdfjs/web/cmaps/KSCms-UHC-H.bcmap: Added.
  • pdfjs/web/cmaps/KSCms-UHC-HW-H.bcmap: Added.
  • pdfjs/web/cmaps/KSCms-UHC-HW-V.bcmap: Added.
  • pdfjs/web/cmaps/KSCms-UHC-V.bcmap: Added.
  • pdfjs/web/cmaps/KSCpc-EUC-H.bcmap: Added.
  • pdfjs/web/cmaps/KSCpc-EUC-V.bcmap: Added.
  • pdfjs/web/cmaps/Katakana.bcmap: Added.
  • pdfjs/web/cmaps/LICENSE: Added.
  • pdfjs/web/cmaps/NWP-H.bcmap: Added.
  • pdfjs/web/cmaps/NWP-V.bcmap: Added.
  • pdfjs/web/cmaps/RKSJ-H.bcmap: Added.
  • pdfjs/web/cmaps/RKSJ-V.bcmap: Added.
  • pdfjs/web/cmaps/Roman.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UCS2-H.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UCS2-V.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UTF16-H.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UTF16-V.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UTF8-H.bcmap: Added.
  • pdfjs/web/cmaps/UniCNS-UTF8-V.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UCS2-H.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UCS2-V.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UTF16-H.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UTF16-V.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UTF8-H.bcmap: Added.
  • pdfjs/web/cmaps/UniGB-UTF8-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UCS2-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UCS2-HW-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UCS2-HW-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UCS2-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UTF16-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UTF16-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UTF8-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS-UTF8-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS2004-UTF16-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS2004-UTF16-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS2004-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS2004-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS2004-UTF8-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJIS2004-UTF8-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJISPro-UCS2-HW-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJISPro-UCS2-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJISPro-UTF8-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJISX0213-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJISX0213-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniJISX02132004-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniJISX02132004-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UCS2-H.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UCS2-V.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UTF16-H.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UTF16-V.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UTF32-H.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UTF32-V.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UTF8-H.bcmap: Added.
  • pdfjs/web/cmaps/UniKS-UTF8-V.bcmap: Added.
  • pdfjs/web/cmaps/V.bcmap: Added.
  • pdfjs/web/cmaps/WP-Symbol.bcmap: Added.
  • pdfjs/web/debugger.js: Added.

(FontInspector.FontInspectorClosure.removeSelection):
(FontInspector.FontInspectorClosure.resetSelection):
(FontInspector.FontInspectorClosure.selectFont):
(FontInspector.FontInspectorClosure.textLayerClick):
(FontInspector.FontInspectorClosure.return.init):
(FontInspector.FontInspectorClosure.return.cleanup):
(FontInspector.FontInspectorClosure.return.get active):
(FontInspector.FontInspectorClosure.return.set active):
(FontInspector.FontInspectorClosure.return.properties):
(FontInspector.FontInspectorClosure.return.fontAdded):
(FontInspector):
(StepperManager.StepperManagerClosure.return.init):
(StepperManager.StepperManagerClosure.return.cleanup):
(StepperManager.StepperManagerClosure.return.create):
(StepperManager.StepperManagerClosure.return.selectStepper):
(StepperManager.StepperManagerClosure.return.saveBreakPoints):
(StepperManager):
(const.Stepper.StepperClosure.c):
(const.Stepper.StepperClosure.simplifyArgs):
(const.Stepper.StepperClosure.Stepper):
(const.Stepper.StepperClosure.Stepper.prototype.init):
(const.Stepper.StepperClosure.Stepper.prototype.updateOperatorList.cboxOnClick):
(const.Stepper.StepperClosure.Stepper.prototype.updateOperatorList):
(const.Stepper.StepperClosure.Stepper.prototype.getNextBreakPoint):
(const.Stepper.StepperClosure.Stepper.prototype.breakIt):
(const.Stepper.StepperClosure.Stepper.prototype.goTo):
(const.Stepper):
(Stats.Stats):
(Stats.Stats.getStatIndex):
(Stats):
(window.PDFBug):

  • pdfjs/web/images/annotation-check.svg: Added.
  • pdfjs/web/images/annotation-comment.svg: Added.
  • pdfjs/web/images/annotation-help.svg: Added.
  • pdfjs/web/images/annotation-insert.svg: Added.
  • pdfjs/web/images/annotation-key.svg: Added.
  • pdfjs/web/images/annotation-newparagraph.svg: Added.
  • pdfjs/web/images/annotation-noicon.svg: Added.
  • pdfjs/web/images/annotation-note.svg: Added.
  • pdfjs/web/images/annotation-paragraph.svg: Added.
  • pdfjs/web/images/findbarButton-next.svg: Added.
  • pdfjs/web/images/findbarButton-previous.svg: Added.
  • pdfjs/web/images/grab.cur: Added.
  • pdfjs/web/images/grabbing.cur: Added.
  • pdfjs/web/images/loading-dark.svg: Added.
  • pdfjs/web/images/loading-icon.gif: Added.
  • pdfjs/web/images/loading.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-documentProperties.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-firstPage.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-handTool.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-lastPage.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-rotateCcw.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-rotateCw.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-scrollHorizontal.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-scrollPage.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-scrollVertical.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-scrollWrapped.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-selectTool.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-spreadEven.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-spreadNone.svg: Added.
  • pdfjs/web/images/secondaryToolbarButton-spreadOdd.svg: Added.
  • pdfjs/web/images/shadow.png: Added.
  • pdfjs/web/images/toolbarButton-bookmark.svg: Added.
  • pdfjs/web/images/toolbarButton-currentOutlineItem.svg: Added.
  • pdfjs/web/images/toolbarButton-download.svg: Added.
  • pdfjs/web/images/toolbarButton-menuArrow.svg: Added.
  • pdfjs/web/images/toolbarButton-openFile.svg: Added.
  • pdfjs/web/images/toolbarButton-pageDown.svg: Added.
  • pdfjs/web/images/toolbarButton-pageUp.svg: Added.
  • pdfjs/web/images/toolbarButton-presentationMode.svg: Added.
  • pdfjs/web/images/toolbarButton-print.svg: Added.
  • pdfjs/web/images/toolbarButton-search.svg: Added.
  • pdfjs/web/images/toolbarButton-secondaryToolbarToggle.svg: Added.
  • pdfjs/web/images/toolbarButton-sidebarToggle.svg: Added.
  • pdfjs/web/images/toolbarButton-viewAttachments.svg: Added.
  • pdfjs/web/images/toolbarButton-viewLayers.svg: Added.
  • pdfjs/web/images/toolbarButton-viewOutline.svg: Added.
  • pdfjs/web/images/toolbarButton-viewThumbnail.svg: Added.
  • pdfjs/web/images/toolbarButton-zoomIn.svg: Added.
  • pdfjs/web/images/toolbarButton-zoomOut.svg: Added.
  • pdfjs/web/images/treeitem-collapsed.svg: Added.
  • pdfjs/web/images/treeitem-expanded.svg: Added.
  • pdfjs/web/locale/ach/viewer.properties: Added.
  • pdfjs/web/locale/af/viewer.properties: Added.
  • pdfjs/web/locale/an/viewer.properties: Added.
  • pdfjs/web/locale/ar/viewer.properties: Added.
  • pdfjs/web/locale/ast/viewer.properties: Added.
  • pdfjs/web/locale/az/viewer.properties: Added.
  • pdfjs/web/locale/be/viewer.properties: Added.
  • pdfjs/web/locale/bg/viewer.properties: Added.
  • pdfjs/web/locale/bn/viewer.properties: Added.
  • pdfjs/web/locale/bo/viewer.properties: Added.
  • pdfjs/web/locale/br/viewer.properties: Added.
  • pdfjs/web/locale/brx/viewer.properties: Added.
  • pdfjs/web/locale/bs/viewer.properties: Added.
  • pdfjs/web/locale/ca/viewer.properties: Added.
  • pdfjs/web/locale/cak/viewer.properties: Added.
  • pdfjs/web/locale/ckb/viewer.properties: Added.
  • pdfjs/web/locale/cs/viewer.properties: Added.
  • pdfjs/web/locale/cy/viewer.properties: Added.
  • pdfjs/web/locale/da/viewer.properties: Added.
  • pdfjs/web/locale/de/viewer.properties: Added.
  • pdfjs/web/locale/dsb/viewer.properties: Added.
  • pdfjs/web/locale/el/viewer.properties: Added.
  • pdfjs/web/locale/en-CA/viewer.properties: Added.
  • pdfjs/web/locale/en-GB/viewer.properties: Added.
  • pdfjs/web/locale/en-US/viewer.properties: Added.
  • pdfjs/web/locale/eo/viewer.properties: Added.
  • pdfjs/web/locale/es-AR/viewer.properties: Added.
  • pdfjs/web/locale/es-CL/viewer.properties: Added.
  • pdfjs/web/locale/es-ES/viewer.properties: Added.
  • pdfjs/web/locale/es-MX/viewer.properties: Added.
  • pdfjs/web/locale/et/viewer.properties: Added.
  • pdfjs/web/locale/eu/viewer.properties: Added.
  • pdfjs/web/locale/fa/viewer.properties: Added.
  • pdfjs/web/locale/ff/viewer.properties: Added.
  • pdfjs/web/locale/fi/viewer.properties: Added.
  • pdfjs/web/locale/fr/viewer.properties: Added.
  • pdfjs/web/locale/fy-NL/viewer.properties: Added.
  • pdfjs/web/locale/ga-IE/viewer.properties: Added.
  • pdfjs/web/locale/gd/viewer.properties: Added.
  • pdfjs/web/locale/gl/viewer.properties: Added.
  • pdfjs/web/locale/gn/viewer.properties: Added.
  • pdfjs/web/locale/gu-IN/viewer.properties: Added.
  • pdfjs/web/locale/he/viewer.properties: Added.
  • pdfjs/web/locale/hi-IN/viewer.properties: Added.
  • pdfjs/web/locale/hr/viewer.properties: Added.
  • pdfjs/web/locale/hsb/viewer.properties: Added.
  • pdfjs/web/locale/hu/viewer.properties: Added.
  • pdfjs/web/locale/hy-AM/viewer.properties: Added.
  • pdfjs/web/locale/hye/viewer.properties: Added.
  • pdfjs/web/locale/ia/viewer.properties: Added.
  • pdfjs/web/locale/id/viewer.properties: Added.
  • pdfjs/web/locale/is/viewer.properties: Added.
  • pdfjs/web/locale/it/viewer.properties: Added.
  • pdfjs/web/locale/ja/viewer.properties: Added.
  • pdfjs/web/locale/ka/viewer.properties: Added.
  • pdfjs/web/locale/kab/viewer.properties: Added.
  • pdfjs/web/locale/kk/viewer.properties: Added.
  • pdfjs/web/locale/km/viewer.properties: Added.
  • pdfjs/web/locale/kn/viewer.properties: Added.
  • pdfjs/web/locale/ko/viewer.properties: Added.
  • pdfjs/web/locale/lij/viewer.properties: Added.
  • pdfjs/web/locale/lo/viewer.properties: Added.
  • pdfjs/web/locale/locale.properties: Added.
  • pdfjs/web/locale/lt/viewer.properties: Added.
  • pdfjs/web/locale/ltg/viewer.properties: Added.
  • pdfjs/web/locale/lv/viewer.properties: Added.
  • pdfjs/web/locale/meh/viewer.properties: Added.
  • pdfjs/web/locale/mk/viewer.properties: Added.
  • pdfjs/web/locale/mr/viewer.properties: Added.
  • pdfjs/web/locale/ms/viewer.properties: Added.
  • pdfjs/web/locale/my/viewer.properties: Added.
  • pdfjs/web/locale/nb-NO/viewer.properties: Added.
  • pdfjs/web/locale/ne-NP/viewer.properties: Added.
  • pdfjs/web/locale/nl/viewer.properties: Added.
  • pdfjs/web/locale/nn-NO/viewer.properties: Added.
  • pdfjs/web/locale/oc/viewer.properties: Added.
  • pdfjs/web/locale/pa-IN/viewer.properties: Added.
  • pdfjs/web/locale/pl/viewer.properties: Added.
  • pdfjs/web/locale/pt-BR/viewer.properties: Added.
  • pdfjs/web/locale/pt-PT/viewer.properties: Added.
  • pdfjs/web/locale/rm/viewer.properties: Added.
  • pdfjs/web/locale/ro/viewer.properties: Added.
  • pdfjs/web/locale/ru/viewer.properties: Added.
  • pdfjs/web/locale/sat/viewer.properties: Added.
  • pdfjs/web/locale/sc/viewer.properties: Added.
  • pdfjs/web/locale/scn/viewer.properties: Added.
  • pdfjs/web/locale/sco/viewer.properties: Added.
  • pdfjs/web/locale/si/viewer.properties: Added.
  • pdfjs/web/locale/sk/viewer.properties: Added.
  • pdfjs/web/locale/sl/viewer.properties: Added.
  • pdfjs/web/locale/son/viewer.properties: Added.
  • pdfjs/web/locale/sq/viewer.properties: Added.
  • pdfjs/web/locale/sr/viewer.properties: Added.
  • pdfjs/web/locale/sv-SE/viewer.properties: Added.
  • pdfjs/web/locale/szl/viewer.properties: Added.
  • pdfjs/web/locale/ta/viewer.properties: Added.
  • pdfjs/web/locale/te/viewer.properties: Added.
  • pdfjs/web/locale/tg/viewer.properties: Added.
  • pdfjs/web/locale/th/viewer.properties: Added.
  • pdfjs/web/locale/tl/viewer.properties: Added.
  • pdfjs/web/locale/tr/viewer.properties: Added.
  • pdfjs/web/locale/trs/viewer.properties: Added.
  • pdfjs/web/locale/uk/viewer.properties: Added.
  • pdfjs/web/locale/ur/viewer.properties: Added.
  • pdfjs/web/locale/uz/viewer.properties: Added.
  • pdfjs/web/locale/vi/viewer.properties: Added.
  • pdfjs/web/locale/wo/viewer.properties: Added.
  • pdfjs/web/locale/xh/viewer.properties: Added.
  • pdfjs/web/locale/zh-CN/viewer.properties: Added.
  • pdfjs/web/locale/zh-TW/viewer.properties: Added.
  • pdfjs/web/standard_fonts/FoxitDingbats.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitFixed.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitFixedBold.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitFixedBoldItalic.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitFixedItalic.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSans.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSansBold.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSansBoldItalic.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSansItalic.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSerif.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSerifBold.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSerifBoldItalic.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSerifItalic.pfb: Added.
  • pdfjs/web/standard_fonts/FoxitSymbol.pfb: Added.
  • pdfjs/web/standard_fonts/LICENSE_FOXIT: Added.
  • pdfjs/web/standard_fonts/LICENSE_LIBERATION: Added.
  • pdfjs/web/standard_fonts/LiberationSans-Bold.ttf: Added.
  • pdfjs/web/standard_fonts/LiberationSans-BoldItalic.ttf: Added.
  • pdfjs/web/standard_fonts/LiberationSans-Italic.ttf: Added.
  • pdfjs/web/standard_fonts/LiberationSans-Regular.ttf: Added.
  • pdfjs/web/viewer.css: Added.

(.textLayer):
(.textLayer span,):
(.textLayer span.markedContent):
(.textLayer .highlight):
(.textLayer .highlight.appended):
(.textLayer .highlight.begin):
(.textLayer .highlight.end):
(.textLayer .highlight.middle):
(.textLayer .highlight.selected):
(.textLayer ::-moz-selection):
(.textLayer ::selection):
(.textLayer br::-moz-selection):
(.textLayer br::selection):
(.textLayer .endOfContent):
(.textLayer .endOfContent.active):
(:root):
(.annotationLayer section):
(.annotationLayer .linkAnnotation > a,):
(.annotationLayer .buttonWidgetAnnotation.pushButton > canvas):
(.annotationLayer .linkAnnotation > a:hover,):
(.annotationLayer .textAnnotation img):
(.annotationLayer .textWidgetAnnotation input,):
(.annotationLayer .choiceWidgetAnnotation select option):
(.annotationLayer .buttonWidgetAnnotation.radioButton input):
(.annotationLayer .textWidgetAnnotation textarea):
(.annotationLayer .textWidgetAnnotation input[disabled],):
(.annotationLayer .textWidgetAnnotation input:hover,):
(.annotationLayer .textWidgetAnnotation input:focus,):
(.annotationLayer .textWidgetAnnotation input :focus,):
(.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,):
(.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before):
(.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after):
(.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before):
(.annotationLayer .textWidgetAnnotation input.comb):
(.annotationLayer .textWidgetAnnotation input.comb:focus):
(.annotationLayer .buttonWidgetAnnotation.checkBox input,):
(.annotationLayer .popupWrapper):
(.annotationLayer .popup):
(.annotationLayer .popup > *):
(.annotationLayer .popup h1):
(.annotationLayer .popupDate):
(.annotationLayer .popupContent):
(.annotationLayer .richText > *):
(.annotationLayer .highlightAnnotation,):
(.xfaLayer .highlight):
(.xfaLayer .highlight.appended):
(.xfaLayer .highlight.begin):
(.xfaLayer .highlight.end):
(.xfaLayer .highlight.middle):
(.xfaLayer .highlight.selected):
(.xfaLayer ::-moz-selection):
(.xfaLayer ::selection):
(.xfaPage):
(.xfaContentarea):
(.xfaPrintOnly):
(.xfaLayer):
(.xfaLayer *):
(.xfaLayer div):
(.xfaLayer svg):
(.xfaLayer svg *):
(.xfaLayer a):
(.xfaRich li):
(.xfaFont):
(.xfaCaption):
(.xfaCaptionForCheckButton):
(.xfaLabel):
(.xfaLeft):
(.xfaRight):
(.xfaLeft > .xfaCaption,):
(.xfaTop):
(.xfaBottom):
(.xfaTop > .xfaCaption,):
(.xfaBorder):
(.xfaWrapped):
(.xfaTextfield:focus,):
(.xfaCheckbox:focus,):
(.xfaTextfield,):
(.xfaTop > .xfaTextfield,):
(.xfaButton):
(.xfaLink):
(.xfaCheckbox,):
(.xfaRich):
(.xfaImage):
(.xfaLrTb,):
(.xfaLr):
(.xfaRl):
(.xfaTb > div):
(.xfaPosition):
(.xfaArea):
(.xfaValignMiddle):
(.xfaTable):
(.xfaTable .xfaRow):
(.xfaTable .xfaRlRow):
(.xfaTable .xfaRlRow > div):
(.xfaNonInteractive input,):
(@media print .xfaTextfield,):
(@media print .xfaSelect):
(@media screen and (forced-colors: active) :root):
(.pdfViewer):
(.pdfViewer .canvasWrapper):
(.pdfViewer .page):
(.pdfViewer .dummyPage):
(.pdfViewer.removePageBorders .page):
(.pdfViewer.singlePageView):
(.pdfViewer.singlePageView .page):
(.pdfViewer.scrollHorizontal,):
(.pdfViewer.removePageBorders,):
(.spread .page,):
(.pdfViewer.removePageBorders .spread .page,):
(.pdfViewer .page canvas):
(.pdfViewer .page canvas[hidden]):
(.pdfViewer .page .loadingIcon):
(.pdfViewer .page .loadingIcon.notVisible):
(.pdfViewer.enablePermissions .textLayer span):
(.pdfPresentationMode .pdfViewer):
(.pdfPresentationMode .spread):
(.pdfPresentationMode .pdfViewer .page):
(@media (prefers-color-scheme: dark) :root):
(*):
(html):
(body):
(body,):
(.hidden):
([hidden]):
(#viewerContainer.pdfPresentationMode:-webkit-full-screen):
(#viewerContainer.pdfPresentationMode:fullscreen):
(.pdfPresentationMode:-webkit-full-screen a:not(.internalLink)):
(.pdfPresentationMode:fullscreen a:not(.internalLink)):
(.pdfPresentationMode:-webkit-full-screen .textLayer span):
(.pdfPresentationMode:fullscreen .textLayer span):
(.pdfPresentationMode.pdfPresentationModeControls > *,):
(#outerContainer):
(#sidebarContainer):
(html[dir="ltr"] #sidebarContainer):
(html[dir="rtl"] #sidebarContainer):
(#outerContainer.sidebarResizing #sidebarContainer):
(#outerContainer.sidebarMoving #sidebarContainer,):
(html[dir="ltr"] #outerContainer.sidebarOpen #sidebarContainer):
(html[dir="rtl"] #outerContainer.sidebarOpen #sidebarContainer):
(#mainContainer):
(#sidebarContent):
(html[dir="ltr"] #sidebarContent):
(html[dir="rtl"] #sidebarContent):
(#viewerContainer):
(#viewerContainer:not(.pdfPresentationMode)):
(#outerContainer.sidebarResizing #viewerContainer):
(html[dir="ltr"]):
(html[dir="rtl"]):
(.toolbar):
(#toolbarContainer):
(#toolbarSidebar):
(html[dir="ltr"] #toolbarSidebar):
(html[dir="rtl"] #toolbarSidebar):
(html[dir="ltr"] #toolbarSidebar .toolbarButton):
(html[dir="rtl"] #toolbarSidebar .toolbarButton):
(html[dir="ltr"] #toolbarSidebarRight .toolbarButton):
(html[dir="rtl"] #toolbarSidebarRight .toolbarButton):
(#sidebarResizer):
(html[dir="ltr"] #sidebarResizer):
(html[dir="rtl"] #sidebarResizer):
(#toolbarContainer,):
(#toolbarViewer):
(#loadingBar):
(html[dir="ltr"] #loadingBar):
(html[dir="rtl"] #loadingBar):
(html[dir="ltr"] #outerContainer.sidebarOpen #loadingBar):
(html[dir="rtl"] #outerContainer.sidebarOpen #loadingBar):
(#outerContainer.sidebarResizing #loadingBar):
(#loadingBar .progress):
(@-webkit-keyframes progressIndeterminate):
(100%):
(@keyframes progressIndeterminate):
(#loadingBar .progress.indeterminate):
(#loadingBar .progress.indeterminate .glimmer):
(.findbar,):
(.findbar):
(.findbar > div):
(.findbar.wrapContainers > div):
(.findbar.wrapContainers > div#findbarMessageContainer):
(html[dir="ltr"] .findbar):
(html[dir="rtl"] .findbar):
(.findbar .splitToolbarButton):
(html[dir="ltr"] .findbar .splitToolbarButton):
(html[dir="rtl"] .findbar .splitToolbarButton):
(.findbar .splitToolbarButton > .toolbarButton):
(.findbar .splitToolbarButton > .toolbarButton::before):
(.findbar .splitToolbarButton > .findNext):
(html[dir="ltr"] .findbar .splitToolbarButton > .findNext):
(html[dir="rtl"] .findbar .splitToolbarButton > .findNext):
(.findbar input[type="checkbox"]):
(.findbar label):
(.findbar label:hover,):
(html[dir="ltr"] #findInput):
(html[dir="rtl"] #findInput):
(.findbar .toolbarField[type="checkbox"]:checked + .toolbarLabel):
(#findInput):
(#findInput::-moz-placeholder):
(#findInput::placeholder):
(#findInput[data-status="pending"]):
(html[dir="rtl"] #findInput[data-status="pending"]):
(#findInput[data-status="notFound"]):
(.secondaryToolbar):
(html[dir="ltr"] .secondaryToolbar):
(html[dir="rtl"] .secondaryToolbar):
(#secondaryToolbarButtonContainer):
(.doorHanger,):
(.doorHanger:after,):
(.doorHanger:after):
(.doorHangerRight:after):
(.doorHanger:before,):
(html[dir="ltr"] .doorHanger:after,):
(html[dir="ltr"] .doorHanger:before,):
(html[dir="rtl"] .doorHanger:after,):
(html[dir="rtl"] .doorHanger:before,):
(#findResultsCount):
(#findMsg):
(#findMsg:empty):
(#toolbarViewerMiddle):
(html[dir="ltr"] #toolbarViewerLeft,):
(html[dir="ltr"] #toolbarViewerRight,):
(html[dir="ltr"] #toolbarViewerLeft > *,):
(html[dir="rtl"] #toolbarViewerLeft > *,):
(.splitToolbarButton):
(html[dir="ltr"] .splitToolbarButton > .toolbarButton):
(html[dir="rtl"] .splitToolbarButton > .toolbarButton):
(.toolbarButton,):
(.overlayButton:hover,):
(.overlayButton:hover > span,):
(.toolbarButton > span):
(.toolbarButton[disabled],):
(.splitToolbarButton.toggled .toolbarButton):
(.splitToolbarButton > .toolbarButton:hover,):
(.splitToolbarButton > .toolbarButton):
(html[dir="ltr"] .splitToolbarButton > .toolbarButton:first-child,):
(html[dir="ltr"] .splitToolbarButton > .toolbarButton:last-child,):
(.splitToolbarButtonSeparator):
(.findbar .splitToolbarButtonSeparator):
(html[dir="ltr"] .splitToolbarButtonSeparator):
(html[dir="rtl"] .splitToolbarButtonSeparator):
(html[dir="ltr"] #toolbarViewerLeft > .toolbarButton:first-child,):
(html[dir="ltr"] #toolbarViewerRight > .toolbarButton:last-child,):
(.toolbarButton:hover,):
(.secondaryToolbarButton:hover,):
(.toolbarButton.toggled,):
(.secondaryToolbarButton.toggled::before):
(.toolbarButton.toggled::before):
(.toolbarButton.toggled:hover:active,):
(.dropdownToolbarButton):
(.dropdownToolbarButton::after):
(html[dir="ltr"] .dropdownToolbarButton::after):
(html[dir="rtl"] .dropdownToolbarButton::after):
(.dropdownToolbarButton > select):
(html[dir="ltr"] .dropdownToolbarButton > select):
(html[dir="rtl"] .dropdownToolbarButton > select):
(.dropdownToolbarButton > select:hover,):
(.dropdownToolbarButton > select > option):
(#customScaleOption):
(#pageWidthOption):
(.toolbarButtonSpacer):
(.toolbarButton::before,):
(.dropdownToolbarButton:hover::after,):
(.toolbarButton::before):
(.toolbarButton:hover::before,):
(.secondaryToolbarButton::before):
(html[dir="ltr"] .secondaryToolbarButton::before):
(html[dir="rtl"] .secondaryToolbarButton::before):
(.toolbarButton#sidebarToggle::before):
(html[dir="rtl"] .toolbarButton#sidebarToggle::before):
(.toolbarButton#secondaryToolbarToggle::before):
(html[dir="rtl"] .toolbarButton#secondaryToolbarToggle::before):
(.toolbarButton.findPrevious::before):
(.toolbarButton.findNext::before):
(.toolbarButton.pageUp::before):
(.toolbarButton.pageDown::before):
(.toolbarButton.zoomOut::before):
(.toolbarButton.zoomIn::before):
(.toolbarButton.presentationMode::before,):
(.toolbarButton.print::before,):
(.toolbarButton.openFile::before,):
(.toolbarButton.download::before,):
(.secondaryToolbarButton.bookmark):
(.bookmark[href="#"]):
(.toolbarButton.bookmark::before,):
(#viewThumbnail.toolbarButton::before):
(#viewOutline.toolbarButton::before):
(html[dir="rtl"] #viewOutline.toolbarButton::before):
(#viewAttachments.toolbarButton::before):
(#viewLayers.toolbarButton::before):
(#currentOutlineItem.toolbarButton::before):
(html[dir="rtl"] #currentOutlineItem.toolbarButton::before):
(#viewFind.toolbarButton::before):
(.toolbarButton.pdfSidebarNotification::after):
(html[dir="ltr"] .toolbarButton.pdfSidebarNotification::after):
(html[dir="rtl"] .toolbarButton.pdfSidebarNotification::after):
(.secondaryToolbarButton):
(html[dir="ltr"] .secondaryToolbarButton):
(html[dir="rtl"] .secondaryToolbarButton):
(html[dir="ltr"] .secondaryToolbarButton > span):
(html[dir="rtl"] .secondaryToolbarButton > span):
(.secondaryToolbarButton.firstPage::before):
(.secondaryToolbarButton.lastPage::before):
(.secondaryToolbarButton.rotateCcw::before):
(.secondaryToolbarButton.rotateCw::before):
(.secondaryToolbarButton.selectTool::before):
(.secondaryToolbarButton.handTool::before):
(.secondaryToolbarButton.scrollPage::before):
(.secondaryToolbarButton.scrollVertical::before):
(.secondaryToolbarButton.scrollHorizontal::before):
(.secondaryToolbarButton.scrollWrapped::before):
(.secondaryToolbarButton.spreadNone::before):
(.secondaryToolbarButton.spreadOdd::before):
(.secondaryToolbarButton.spreadEven::before):
(.secondaryToolbarButton.documentProperties::before):
(.verticalToolbarSeparator):
(html[dir="ltr"] .verticalToolbarSeparator):
(html[dir="rtl"] .verticalToolbarSeparator):
(.horizontalToolbarSeparator):
(.toolbarField):
(.toolbarField[type="checkbox"]):
(html[dir="ltr"] .toolbarField[type="checkbox"]):
(html[dir="rtl"] .toolbarField[type="checkbox"]):
(.toolbarField.pageNumber):
(.toolbarField.pageNumber.visiblePageIsLoading):
(.toolbarField.pageNumber::-webkit-inner-spin-button,):
(.toolbarField:focus):
(.toolbarLabel):
(html[dir="ltr"] #numPages.toolbarLabel):
(html[dir="rtl"] #numPages.toolbarLabel):
(#thumbnailView):
(#thumbnailView > a:active,):
(.thumbnail):
(html[dir="ltr"] .thumbnail):
(html[dir="rtl"] .thumbnail):
(#thumbnailView > a:last-of-type > .thumbnail):
(#thumbnailView > a:last-of-type > .thumbnail:not([data-loaded])):
(.thumbnail:not([data-loaded])):
(.thumbnailImage):
(.thumbnailSelectionRing):
(a:focus > .thumbnail > .thumbnailSelectionRing > .thumbnailImage,):
(a:focus > .thumbnail > .thumbnailSelectionRing,):
(.thumbnail.selected > .thumbnailSelectionRing > .thumbnailImage):
(.thumbnail.selected > .thumbnailSelectionRing):
(#outlineView,):
(html[dir="ltr"] .treeWithDeepNesting > .treeItem,):
(html[dir="rtl"] .treeWithDeepNesting > .treeItem,):
(.treeItem > a):
(html[dir="ltr"] .treeItem > a):
(html[dir="rtl"] .treeItem > a):
(#layersView .treeItem > a > *):
(html[dir="ltr"] #layersView .treeItem > a > label):
(html[dir="rtl"] #layersView .treesItem > a > label):
(.treeItemToggler):
(.treeItemToggler::before):
(.treeItemToggler.treeItemsHidden::before):
(html[dir="rtl"] .treeItemToggler.treeItemsHidden::before):
(.treeItemToggler.treeItemsHidden ~ .treeItems):
(html[dir="ltr"] .treeItemToggler):
(html[dir="rtl"] .treeItemToggler):
(html[dir="ltr"] .treeItemToggler::before):
(html[dir="rtl"] .treeItemToggler::before):
(.treeItem.selected > a):
(.treeItemToggler:hover,):
(::-moz-selection):
(::selection):
(#errorWrapper):
(#errorMessageLeft):
(#errorMessageRight):
(#errorMoreInfo):
(.overlayButton):
(#overlayContainer):
(#overlayContainer > *):
(#overlayContainer > .container):
(#overlayContainer > .container > .dialog):
(.dialog > .row):
(.dialog > .row > *):
(.dialog .toolbarField):
(.dialog .separator):
(.dialog .buttonRow):
(.dialog :link):
(#passwordOverlay > .dialog):
(#passwordOverlay .toolbarField):
(#documentPropertiesOverlay > .dialog):
(#documentPropertiesOverlay .row > *):
(html[dir="ltr"] #documentPropertiesOverlay .row > *):
(html[dir="rtl"] #documentPropertiesOverlay .row > *):
(#documentPropertiesOverlay .row > span):
(#documentPropertiesOverlay .row > p):
(#documentPropertiesOverlay .buttonRow):
(.clearBoth):
(.fileInput):
(#PDFBug):
(#PDFBug .controls):
(#PDFBug .panels):
(#PDFBug .panels > div):
(#PDFBug button.active):
(.debuggerShowText):
(.debuggerHideText:hover):
(#PDFBug .stats):
(#PDFBug .stats .title):
(#PDFBug table):
(#PDFBug table.showText):
(#PDFBug table.showText,):
(#PDFBug table.showText td.advance):
(#viewer.textLayer-visible .textLayer):
(#viewer.textLayer-visible .canvasWrapper):
(#viewer.textLayer-visible .canvasWrapper canvas):
(#viewer.textLayer-visible .textLayer span):
(#viewer.textLayer-hover .textLayer span:hover):
(#viewer.textLayer-shadow .textLayer span):
(.grab-to-pan-grab):
(.grab-to-pan-grab:active,):
(@page):
(#printContainer):
(@media print body):
(@media print #sidebarContainer,):
(@media print #viewerContainer):
(@media print #mainContainer,):
(@media print .page):
(@media print .page[data-loaded]):
(@media print .fileInput):
(@media print body[data-pdfjsprinting] #outerContainer):
(@media print body[data-pdfjsprinting] #printContainer):
(@media print #printContainer):
(@media print #printContainer > .printedPage):
(@media print #printContainer > .xfaPrintedPage .xfaPage):
(@media print #printContainer > .xfaPrintedPage):
(@media print #printContainer > .printedPage canvas,):
(.visibleLargeView,):
(@media all and (max-width: 900px) #toolbarViewerMiddle):
(@media all and (max-width: 840px) #sidebarContainer):
(@media all and (max-width: 840px) html[dir="ltr"] #outerContainer.sidebarOpen #viewerContainer):
(@media all and (max-width: 840px) html[dir="rtl"] #outerContainer.sidebarOpen #viewerContainer):
(@media all and (max-width: 840px) #outerContainer .hiddenLargeView,):
(@media all and (max-width: 840px) #outerContainer .visibleLargeView,):
(@media all and (max-width: 770px) #outerContainer .hiddenLargeView):
(@media all and (max-width: 770px) #outerContainer .visibleLargeView):
(@media all and (max-width: 700px) #outerContainer .hiddenMediumView):
(@media all and (max-width: 700px) #outerContainer .visibleMediumView):
(@media all and (max-width: 640px) .hiddenSmallView,):
(@media all and (max-width: 640px) .visibleSmallView):
(@media all and (max-width: 640px) .toolbarButtonSpacer):
(@media all and (max-width: 640px) html[dir="ltr"] .findbar):
(@media all and (max-width: 640px) html[dir="rtl"] .findbar):
(@media all and (max-width: 535px) #scaleSelectContainer):

  • pdfjs/web/viewer.html: Added.
  • pdfjs/web/viewer.js: Added.

(exports.checkOnBlobSupport):
(exports.checkCanvasSizeLimitation):
(exports.AppOptions):
(exports.AppOptions.get const):
(exports.AppOptions.getAll):
(exports.AppOptions.set userOptions):
(exports.AppOptions.remove):
(exports.AppOptions._hasUserOptions):
(webpack_require.DefaultExternalServices):
(webpack_require.DefaultExternalServices.updateFindControlState):
(webpack_require.DefaultExternalServices.updateFindMatchesCount):
(webpack_require.DefaultExternalServices.initPassiveLoading):
(webpack_require.DefaultExternalServices.async fallback):
(webpack_require.DefaultExternalServices.reportTelemetry):
(webpack_require.DefaultExternalServices.createDownloadManager):
(webpack_require.DefaultExternalServices.createPreferences):
(webpack_require.DefaultExternalServices.createL10n):
(webpack_require.DefaultExternalServices.createScripting):
(webpack_require.DefaultExternalServices.get supportsIntegratedFind):
(webpack_require.DefaultExternalServices.get supportsDocumentFonts):
(webpack_require.DefaultExternalServices.get supportedMouseWheelZoomModifierKeys):
(webpack_require.DefaultExternalServices.get isInAutomation):
(webpack_require.const.PDFViewerApplication.async initialize):
(webpack_require.const.PDFViewerApplication.async _readPreferences):
(webpack_require.const.PDFViewerApplication.async _parseHashParameters):
(webpack_require.const.PDFViewerApplication.async _initializeL10n):
(webpack_require.const.PDFViewerApplication._forceCssTheme):
(webpack_require.const.PDFViewerApplication.async _initializeViewerComponents):
(webpack_require.const.PDFViewerApplication.run):
(webpack_require.const.PDFViewerApplication.get initialized):
(webpack_require.const.PDFViewerApplication.get initializedPromise):
(webpack_require.const.PDFViewerApplication.zoomIn):
(webpack_require.const.PDFViewerApplication.zoomOut):
(webpack_require.const.PDFViewerApplication.zoomReset):
(webpack_require.const.PDFViewerApplication.get pagesCount):
(webpack_require.const.PDFViewerApplication.get page):
(webpack_require.const.PDFViewerApplication.set page):
(webpack_require.const.PDFViewerApplication.get supportsPrinting):
(webpack_require.const.PDFViewerApplication.get supportsFullscreen):
(webpack_require.const.PDFViewerApplication.get supportsIntegratedFind):
(webpack_require.const.PDFViewerApplication.get supportsDocumentFonts):
(webpack_require.const.PDFViewerApplication.get loadingBar):
(webpack_require.const.PDFViewerApplication.get supportedMouseWheelZoomModifierKeys):
(webpack_require.const.PDFViewerApplication.initPassiveLoading):
(webpack_require.const.PDFViewerApplication.setTitleUsingUrl):
(webpack_require.const.PDFViewerApplication.setTitle):
(webpack_require.const.PDFViewerApplication.get _docFilename):
(webpack_require.const.PDFViewerApplication._hideViewBookmark):
(webpack_require.const.PDFViewerApplication._cancelIdleCallbacks):
(webpack_require.const.PDFViewerApplication.async close):
(webpack_require.const.PDFViewerApplication.async open):
(webpack_require.const.PDFViewerApplication._ensureDownloadComplete):
(webpack_require.const.PDFViewerApplication.async download):
(webpack_require.const.PDFViewerApplication.):
(webpack_require.):
(webpack_require):

2:17 PM Changeset in webkit [289575] by commit-queue@webkit.org
  • 10 edits in trunk

[GTK][WPE] Improve device detection in the GbmDevice
​https://bugs.webkit.org/show_bug.cgi?id=236436

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-10
Reviewed by Chris Lord.

.:

  • Source/cmake/OptionsGTK.cmake: Search for drm and gbm libraries

when compiling WebGL ANGLE support.

  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebCore:

Use DRM library to detect the device location to create the gbm
device object.

No new tests, no change in behaviour.

  • PlatformGTK.cmake: Add gbm and drm include directories and

libraries to the compilation.

  • PlatformWPE.cmake: Ditto.
  • platform/graphics/angle/GraphicsContextGLANGLE.h: Avoid storing

a pointer to the gdb device, to make sure it is just in one place,

  • platform/graphics/gbm/GBMDevice.cpp:

(WebCore::GBMDevice::GBMDevice): Use the new getDeviceFd function
to open the device file. We just create the gbm device here.
(WebCore::GBMDevice::getDeviceFd): Added. Uses drm library to look
for the device file name and opens it.

  • platform/graphics/gbm/GBMDevice.h: Ditto
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): Remove
the direct pointer to the gdb device, just request it when required.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking): Ditto.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::reset): Ditto.

2:09 PM Changeset in webkit [289574] by Andres Gonzalez
  • 3 edits in trunk/LayoutTests

Make accessibility/mac/line-index-for-textmarker.html run faster.
​https://bugs.webkit.org/show_bug.cgi?id=236451
<rdar://problem/88763847>

Reviewed by Chris Fleizach.

The main cause of slowness seems to be the high number of calls to
debug(). So now it builds the output string and call debug() just once.

  • accessibility/mac/line-index-for-textmarker-expected.txt:
  • accessibility/mac/line-index-for-textmarker.html:
2:06 PM Changeset in webkit [289573] by achristensen@apple.com
  • 5 edits in trunk/Source

Unreviewed, reverting r289485.

Internal SDKs not quiiiite ready yet

Reverted changeset:

"Move Safe Browsing knowledge into SafariSafeBrowsing
framework"
​https://bugs.webkit.org/show_bug.cgi?id=231692
​https://commits.webkit.org/r289485

1:09 PM Changeset in webkit [289572] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Adjust bidi (and mostly RTL) coords to support vertical writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236413

Reviewed by Antti Koivisto.

Add more coordinate flips to the bidi codepath to support vertical writing mode.

  • layout/formattingContexts/inline/display/InlineDisplayBox.h:

(WebCore::InlineDisplay::Box::setRight):
(WebCore::InlineDisplay::Box::setTop):
(WebCore::InlineDisplay::Box::setBottom):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox): Convert "inline direction visual, but writing mode logical" coordinates to final.
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode const):
(WebCore::Layout::InlineDisplayContentBuilder::setLeftForWritingMode const):
(WebCore::Layout::InlineDisplayContentBuilder::setRightForWritingMode const):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
12:36 PM Changeset in webkit [289571] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

Update fuzzy data based on EWS results to support b231828.

  • css3/color-filters/color-filter-color-property-list-item.html:
12:29 PM Changeset in webkit [289570] by Alan Coon
  • 7 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r289383. rdar://problem/88366849

[WebCore] JSValueInWrappedObject is not correct for concurrent GC
​https://bugs.webkit.org/show_bug.cgi?id=236277
rdar://88366849

Reviewed by Saam Barati.

JSValueInWrappedObject is broken for concurrent GC's marking. It is using std::variant<> to store Weak / JSValue,
which is not safe if concurrent GC reads it while changing that std::variant. This patch fixes several problems
in JSValueInWrappedObject.

  1. We must not use std::variant here since concurrent access can happen. We have both JSValue and Weak, and change Weak after fully initialize WeakImpl's content in Weak. To ensure that, we emit storeStoreBarrier before setting Weak to the JSValueInWrappedObject's field.
  2. Assignment operator & copy constructor are basically wrong for this class as we need a write-barrier to set a value to the field. We remove them and make it explicit that we do not have write-barrier, which reveals that IDBRequest has a semantic bug.
  3. We also add clear() instead of assigning empty JSValueInWrappedObject. And we ensure that this new clear() works well with concurrent GC threads: we clear the underlying WeakImpl* pointer to nullptr. But since WeakImpl* is kept alive until GC clears weak-related things in its end phase, concurrent GC thread can access the old WeakImpl*.
  • Modules/indexeddb/IDBCursor.cpp: (WebCore::IDBCursor::setGetResult):
  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::setResult): (WebCore::IDBRequest::setResultToStructuredClone): (WebCore::IDBRequest::setResultToUndefined): (WebCore::IDBRequest::willIterateCursor): (WebCore::IDBRequest::didOpenOrIterateCursor):
  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp:
  • Modules/paymentrequest/PaymentResponse.cpp: (WebCore::PaymentResponse::setDetailsFunction):
  • Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::getChannelData): (WebCore::AudioBuffer::visitChannelWrappers):
  • bindings/js/JSValueInWrappedObject.h: (WebCore::JSValueInWrappedObject::JSValueInWrappedObject): (WebCore::JSValueInWrappedObject::operator JSC::JSValue const): (WebCore::JSValueInWrappedObject::visit const): (WebCore::JSValueInWrappedObject::setWeakly): (WebCore::JSValueInWrappedObject::set): (WebCore::JSValueInWrappedObject::clear): (WebCore::JSValueInWrappedObject::setWithoutBarrier): (WebCore::cachedPropertyValue): (WebCore::JSValueInWrappedObject::makeValue): Deleted. (WebCore::JSValueInWrappedObject::operator=): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289383 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:27 PM Changeset in webkit [289569] by Alan Coon
  • 21 edits
    2 copies in branches/safari-613.1.16.0-branch

Cherry-pick r289159. rdar://problem/88366590

Thread suspend and resume should take a global lock to avoid deadlock
​https://bugs.webkit.org/show_bug.cgi?id=236159

Reviewed by Geoffrey Garen.

Source/bmalloc:

Introduce pas_thread_suspend_lock and take it when suspending and resuming threads.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_scavenger.c: (scavenger_thread_main): (pas_scavenger_clear_all_caches):
  • libpas/src/libpas/pas_thread_local_cache.c: (pas_thread_local_cache_for_all):
  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/libpas/pas_thread_suspend_lock.c: Copied from Source/WTF/wtf/ThreadMessage.cpp.
  • libpas/src/libpas/pas_thread_suspend_lock.h: Copied from Source/WTF/wtf/ThreadMessage.cpp.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp: (JSC::MachineThreads::tryCopyOtherThreadStack): (JSC::MachineThreads::tryCopyOtherThreadStacks):
  • heap/MachineStackMarker.h:
  • runtime/SamplingProfiler.cpp: (JSC::SamplingProfiler::takeSample):
  • runtime/VMTraps.cpp:
  • wasm/WasmMachineThreads.cpp: (JSC::Wasm::resetInstructionCacheOnAllThreads):

Source/WTF:

This patch introduces a global lock which should be taken while suspending and resuming a thread.
It is possible that two different threads suspend and resume threads. And if threads suspend
each other without critical section, it can cause a dead lock.

To avoid this problem, we introduce a global lock which should be taken when suspending and resuming
threads. Since libpas is also using thread suspension, we expose a global pas_thread_suspend_lock
when libpas is used, and we use this lock in WTF's Thread suspension code.

  • wtf/ThreadMessage.cpp: (WTF::sendMessageScoped):
  • wtf/ThreadMessage.h: (WTF::sendMessage):
  • wtf/Threading.cpp: (WTF::ThreadSuspendLocker::ThreadSuspendLocker): (WTF::ThreadSuspendLocker::~ThreadSuspendLocker):
  • wtf/Threading.h:
  • wtf/posix/ThreadingPOSIX.cpp: (WTF::Thread::suspend): (WTF::Thread::resume): (WTF::Thread::getRegisters):
  • wtf/win/ThreadingWin.cpp: (WTF::Thread::suspend): (WTF::Thread::resume): (WTF::Thread::getRegisters):

Tools:

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (runThreadMessageTest):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:27 PM Changeset in webkit [289568] by Alan Coon
  • 2 edits in branches/safari-613.1.16.0-branch/Source/bmalloc

Cherry-pick r289145. rdar://problem/88366590

[libpas] Use os_unfair_lock instead of spinlock
​https://bugs.webkit.org/show_bug.cgi?id=236158

Reviewed by Geoffrey Garen.

os_unfair_lock is very fast while it can properly suspend threads.
A/B test result was neutral on Speedometer2 and JetStream2. So, to
reduce unnecessary CPU spins, let's replace spinlock with os_unfair_lock
if it is supported (if OS is Darwin).

  • libpas/src/libpas/pas_config.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:23 PM Changeset in webkit [289567] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Crash in in WebCore::CSSStyleSheet::didMutateRules
​https://bugs.webkit.org/show_bug.cgi?id=236450

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Replace the raw pointer rule in RuleMutationScope with a RefPtr so it can be accessible
for the scope.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):

  • css/CSSStyleSheet.h:
12:13 PM Changeset in webkit [289566] by Ben Nham
  • 11 edits
    2 adds in trunk/Source/WebKit

Apply default sandbox to webpushd on Mac
​https://bugs.webkit.org/show_bug.cgi?id=236342

Reviewed by Per Arne Vollan.

This applies a default sandbox profile that allows and logs all operations by webpushd on
the Mac. In future patches we'll tighten the sandbox based on the sandbox logs that we
receive.

To do this, I refactored the sandbox initialization logic in AuxiliaryProcess so that it can
be called without creating an AuxiliaryProcess instance. This probably should be refactored
further (e.g. since webpushd isn't an AuxiliaryProcess, but rather a system daemon). But I
wanted to keep the amount of refactoring low for now while we're still figuring things out.

We also do not currently support compiling and caching the sandbox profiles. We'll add that
support later.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • Shared/AuxiliaryProcess.cpp:

(WebKit::applySandboxProfileForDaemon):

  • Shared/AuxiliaryProcess.h:
  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::getUserDirectorySuffix):
(WebKit::populateSandboxInitializationParameters):
(WebKit::AuxiliaryProcess::initializeSandbox):
(WebKit::AuxiliaryProcess::applySandboxProfileForDaemon):

  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/WebPushDaemonMain.mm:

(WebKit::applySandbox):
(WebKit::WebPushDaemonMain):

  • webpushd/mac/com.apple.WebKit.webpushd.sb.in: Added.
11:56 AM Changeset in webkit [289565] by Alan Coon
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.6

11:50 AM Changeset in webkit [289564] by Alan Coon
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.6

11:49 AM Changeset in webkit [289563] by Russell Epstein
  • 3 edits
    4 adds in branches/safari-613-branch

Cherry-pick r289498. rdar://problem/88635487

Dialog element only animates once
​https://bugs.webkit.org/show_bug.cgi?id=236274
rdar://88635487

Reviewed by Tim Nguyen and Dean Jackson.

LayoutTests/imported/w3c:

Add two new tests that check that we correctly start, stop and resume animations on <dialog>
and ::backdrop as a <dialog> element is open, closed and open again.

  • web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
  • web-platform-tests/css/css-animations/dialog-animation.html: Added.
  • web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
  • web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
  • web-platform-tests/css/css-animations/support/testcommon.js: (addElement): (addDiv):

Source/WebCore:

Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.

The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set to display: none. We now use the clearCSSAnimationsForStyleable()
function (static so that it's not exposed on the Styleable struct) to correctly clear
such state both when we identify a Styleable is newly getting display: none and when
cancelDeclarativeAnimations() was called. This allows us to remove removeCSSAnimationCreatedByMarkup()
a fair bit of work to clear CSS Animation state per-animation when we only ever used that
function for _all_ animations.

The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().

Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html

imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html

  • dom/Element.cpp: (WebCore::Element::removeFromTopLayer):
  • style/Styleable.cpp: (WebCore::clearCSSAnimationsForStyleable): (WebCore::Styleable::cancelDeclarativeAnimations const): (WebCore::Styleable::updateCSSAnimations const): (WebCore::removeCSSAnimationCreatedByMarkup): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:49 AM Changeset in webkit [289562] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore/rendering

Cherry-pick r289437. rdar://problem/86153015

Grid may be empty in certain scenarios
​https://bugs.webkit.org/show_bug.cgi?id=234578

Patch by Brandon Stewart <Brandon> on 2022-02-08
Reviewed by Darin Adler.

Add check to handle legend elements when inside a CSS Grid. The legend element should not be
added to aspectRatioBlockSizeDependentGridItems.

  • rendering/RenderGrid.cpp: (WebCore::RenderGrid::layoutBlock):
  • rendering/RenderGrid.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289437 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:49 AM Changeset in webkit [289561] by Russell Epstein
  • 2 edits
    2 adds in branches/safari-613-branch

Cherry-pick r289241. rdar://problem/85727334

Updating grid gap value does not recalculate styles
​https://bugs.webkit.org/show_bug.cgi?id=233252
<rdar://problem/85727334>

Reviewed by Simon Fraser.

Source/WebCore:

Both column and row gap style value change need to initiate layout in order to update their geometries.

Test: fast/dynamic/gap-style-change-should-initiate-layout.html

  • rendering/style/RenderStyle.cpp: (WebCore::rareNonInheritedDataChangeRequiresLayout):

LayoutTests:

  • fast/dynamic/gap-style-change-should-initiate-layout-expected.html: Added.
  • fast/dynamic/gap-style-change-should-initiate-layout.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:49 AM Changeset in webkit [289560] by Russell Epstein
  • 9 edits
    7 adds in branches/safari-613-branch

Cherry-pick r288434. rdar://problem/56436745

texImage2d fails to set same video frame to multiple textures
​https://bugs.webkit.org/show_bug.cgi?id=203148
<rdar://problem/56436745>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-24
Reviewed by Darin Adler.

Source/WebCore:

WebGL optimizes repeated video uploads to same texture, due to this being
usual practice among pages. Reason is that there are no API to know when the
video frame updates.
The algorithm was:

  • If the IOSurface is the same as in the last call
  • If the texture contents has not changed since we last modified this texture then skip the upload.

However, this logic skips errorneously if the "last call" updates some other texture.
Fix and test the above.

There are other issues for the current algorithm. This patch fixes some other theoretical ones:

  • If the texture is deleted and new one gets assigned the same texture id and the content seed would clash
  • Video was uploaded to a different level

The previous implementation was keeping per-texture seed value map in the context
(GraphicsContextGLANGLE) and per-teture seed value map in the texture upload helper
(GraphicsContextGLCVCocoa) and last uploaded IOSurface seed in the upload helper (not per
texture).

The implementation in this patch keeps per-texture known content description in the texture
upload helper and invalidates this when each texture changes. The known content description
is the parameter list of the texture upload call.

Test: webgl/pending/conformance/textures/misc/tex-image-video-repeated.html

  • platform/graphics/GraphicsContextGLState.h: (WebCore::GraphicsContextGLState::setBoundTexture):
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::texImage2D): (WebCore::GraphicsContextGLANGLE::texSubImage2D): (WebCore::GraphicsContextGLANGLE::compressedTexImage2D): (WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D): (WebCore::GraphicsContextGLANGLE::texStorage2D): (WebCore::GraphicsContextGLANGLE::texStorage3D): (WebCore::GraphicsContextGLANGLE::texImage2DDirect): (WebCore::GraphicsContextGLANGLE::framebufferTexture2D): (WebCore::GraphicsContextGLANGLE::createTexture): (WebCore::GraphicsContextGLANGLE::deleteTexture): (WebCore::GraphicsContextGLANGLE::invalidateKnownTextureContent): (WebCore::GraphicsContextGLANGLE::textureSeed): Deleted.
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::invalidateKnownTextureContent):
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: (WebCore::GraphicsContextGLCVCocoa::TextureContent::operator== const): (WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture): (WebCore::GraphicsContextGLCVCocoa::invalidateKnownTextureContent):
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

LayoutTests:

Add a test for testing the bug in which some video texture uploads
were skipped errorneously.

  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html: Added.
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt: Added.
  • webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288434 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:41 AM Changeset in webkit [289559] by ntim@apple.com
  • 2 edits in trunk

Unreviewed, update my (Tim Nguyen) status to reviewer

  • metadata/contributors.json:
11:36 AM Changeset in webkit [289558] by Chris Dumez
  • 53 edits
    3 copies
    53 adds
    29 deletes in trunk

Resync web-platform-tests/service-workers from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236380

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/service-workers from upstream 012f446eafc392c7.

  • web-platform-tests/interfaces/service-workers.idl: Updated.
  • web-platform-tests/service-workers/*: Updated.

Tools:

Fix import of WPT tests with global=serviceworker-module.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init):

LayoutTests:

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt:
  • tests-options.json:
11:12 AM Changeset in webkit [289557] by Russell Epstein
  • 17 edits
    2 copies in branches/safari-613-branch

Cherry-pick r289159. rdar://problem/88366590

Thread suspend and resume should take a global lock to avoid deadlock
​https://bugs.webkit.org/show_bug.cgi?id=236159

Reviewed by Geoffrey Garen.

Source/bmalloc:

Introduce pas_thread_suspend_lock and take it when suspending and resuming threads.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_scavenger.c: (scavenger_thread_main): (pas_scavenger_clear_all_caches):
  • libpas/src/libpas/pas_thread_local_cache.c: (pas_thread_local_cache_for_all):
  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/libpas/pas_thread_suspend_lock.c: Copied from Source/WTF/wtf/ThreadMessage.cpp.
  • libpas/src/libpas/pas_thread_suspend_lock.h: Copied from Source/WTF/wtf/ThreadMessage.cpp.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp: (JSC::MachineThreads::tryCopyOtherThreadStack): (JSC::MachineThreads::tryCopyOtherThreadStacks):
  • heap/MachineStackMarker.h:
  • runtime/SamplingProfiler.cpp: (JSC::SamplingProfiler::takeSample):
  • runtime/VMTraps.cpp:
  • wasm/WasmMachineThreads.cpp: (JSC::Wasm::resetInstructionCacheOnAllThreads):

Source/WTF:

This patch introduces a global lock which should be taken while suspending and resuming a thread.
It is possible that two different threads suspend and resume threads. And if threads suspend
each other without critical section, it can cause a dead lock.

To avoid this problem, we introduce a global lock which should be taken when suspending and resuming
threads. Since libpas is also using thread suspension, we expose a global pas_thread_suspend_lock
when libpas is used, and we use this lock in WTF's Thread suspension code.

  • wtf/ThreadMessage.cpp: (WTF::sendMessageScoped):
  • wtf/ThreadMessage.h: (WTF::sendMessage):
  • wtf/Threading.cpp: (WTF::ThreadSuspendLocker::ThreadSuspendLocker): (WTF::ThreadSuspendLocker::~ThreadSuspendLocker):
  • wtf/Threading.h:
  • wtf/posix/ThreadingPOSIX.cpp: (WTF::Thread::suspend): (WTF::Thread::resume): (WTF::Thread::getRegisters):
  • wtf/win/ThreadingWin.cpp: (WTF::Thread::suspend): (WTF::Thread::resume): (WTF::Thread::getRegisters):

Tools:

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (runThreadMessageTest):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:12 AM Changeset in webkit [289556] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/bmalloc/libpas/src/libpas/pas_config.h

Cherry-pick r289145. rdar://problem/88366590

[libpas] Use os_unfair_lock instead of spinlock
​https://bugs.webkit.org/show_bug.cgi?id=236158

Reviewed by Geoffrey Garen.

os_unfair_lock is very fast while it can properly suspend threads.
A/B test result was neutral on Speedometer2 and JetStream2. So, to
reduce unnecessary CPU spins, let's replace spinlock with os_unfair_lock
if it is supported (if OS is Darwin).

  • libpas/src/libpas/pas_config.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:10 AM Changeset in webkit [289555] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source

Cherry-pick r288970. rdar://problem/88459807

Update computation of FAST_TLS base.
​https://bugs.webkit.org/show_bug.cgi?id=235934

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::loadFromTLS32): (JSC::MacroAssemblerARM64::loadFromTLS64): (JSC::MacroAssemblerARM64::storeToTLS32): (JSC::MacroAssemblerARM64::storeToTLS64):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::keyForCurrentThread):
  • offlineasm/arm64.rb:

Source/WTF:

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:07 AM Changeset in webkit [289554] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r289529 - [GTK] Scrollbars painted incorrectly if theme enables steppers (steppers misplaced on vertical scrollbars, horizontal scrollbars very broken)
​https://bugs.webkit.org/show_bug.cgi?id=234871

Reviewed by Carlos Garcia Campos.

Actually use the scrollbar orientation when creating its contents,
instead of always using vertical.

  • platform/gtk/RenderThemeScrollbar.cpp:

(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):

11:06 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
10:46 AM Changeset in webkit [289553] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, update BundleResourceLoader WorkQueue identifier

Address Alex's review comment in bug 236062.

  • loader/cocoa/BundleResourceLoader.mm:

(WebCore::BundleResourceLoader::loadQueue):

10:32 AM Changeset in webkit [289552] by Wenson Hsieh
  • 18 edits in trunk/Source

Support WebPageProxy::replaceSelectionWithPasteboardData() on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236406

Reviewed by Tim Horton.

Source/WebCore:

Move the definition of readSelectionFromPasteboard from EditorMac.mm to EditorCocoa.mm.
No change in behavior (yet).

  • editing/Editor.h:
  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::readSelectionFromPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::readSelectionFromPasteboard): Deleted.

Move this into EditorCocoa.mm.

Source/WebKit:

In preparation for an upcoming patch, make WebPageProxy::replaceSelectionWithPasteboardData() (as well as all
downstream codepaths) available on all Cocoa platforms. This is currently macOS-specific, and only used for
service controls (i.e. inserting content via sharing picker API).

  • Sources.txt:
  • SourcesCocoa.txt:

Move WebPasteboardOverrides.cpp from SourcesCocoa to Sources, now that there are non-Cocoa-specific codepaths in
WebPlatformStrategies that exercise this class.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::replaceSelectionWithPasteboardData):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::replaceSelectionWithPasteboardData): Deleted.

Move this into WebPageProxyCocoa.mm.

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:

(WebKit::WebPasteboardOverrides::overriddenInfo):

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::getPasteboardItemsCount):
(WebKit::WebPlatformStrategies::allPasteboardItemInfo):
(WebKit::WebPlatformStrategies::informationForItemAtIndex):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):

Add additional support for returning canned data from WebPasteboardOverrides::sharedPasteboardOverrides() in
pasteboard reading codepaths that are exercised by WebCore::Pasteboard on iOS.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::replaceSelectionPasteboardName):
(WebKit::WebPage::replaceSelectionWithPasteboardData):
(WebKit::WebPage::readSelectionFromPasteboard):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::readSelectionFromPasteboard): Deleted.

Delete this unimplemented method stub.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::replaceSelectionPasteboardName): Deleted.

Move this into WebPageCocoa.mm.

(WebKit::WebPage::replaceSelectionWithPasteboardData): Deleted.
(WebKit::WebPage::readSelectionFromPasteboard): Deleted.

10:29 AM Changeset in webkit [289551] by Russell Epstein
  • 2 edits in branches/safari-614.1.3-branch/Source/WebKit

Cherry-pick r289436. rdar://problem/87908259

[WebAuthn] Use AuthenticationServicesAgent for WebAuthn calls on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236151
rdar://87908259

Reviewed by Brent Fulgham.

This patch starts using the ASC apis to make WebAuthn calls on iOS the
same way they are made on macOS. Some cleanup work will be needed to
deprecate the WebAuthn process after this change is made.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::WebAuthenticatorCoordinatorProxy::performRequest): Deleted. (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289436 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:54 AM Changeset in webkit [289550] by Kate Cheney
  • 3 edits in trunk/LayoutTests

Unskip App Privacy Report tests in open source now that EWS is updated
​https://bugs.webkit.org/show_bug.cgi?id=232251

Unreviewed. Unskip iOS 15 tests now that EWS is updated.

9:49 AM Changeset in webkit [289549] by ntim@apple.com
  • 12 edits
    2 adds in trunk/Source

Add webkit-pdfjs-viewer scheme for PDF.js resources
​https://bugs.webkit.org/show_bug.cgi?id=236062

Reviewed by Youenn Fablet.

The code handling the scheme is under WebCore::BundleResourceLoader.
It reads files from the pdfjs/ sub-folder in the WebCore.framework resources folder.
Right now, this sub-folder does not exist yet, but this scheme can be tested by manually populating it.

Bug 235981 will take care of populating this folder at build-time.

Note: This scheme can only be loaded inside a PDFDocument <iframe>

Source/WebCore:

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/PDFDocument.cpp:

(WebCore::PDFDocument::createDocumentStructure):

  • loader/cocoa/BundleResourceLoader.mm: Added
  • loader/cocoa/BundleResourceLoader.h: Added
  • loader/PolicyChecker.cpp:

(WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::isPDFJSResourceLoad const):

  • loader/ResourceLoader.h:
  • loader/SubresourceLoader.h:
  • platform/LegacySchemeRegistry.cpp:

(WebCore::builtinSecureSchemes):

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::tryLoadingUsingPDFJSHandler):

  • WebProcess/Network/WebLoaderStrategy.h:
9:46 AM Changeset in webkit [289548] by jonlee@apple.com
  • 9 edits in trunk/LayoutTests

Unreviewed gardening.

LayoutTests/imported/w3c:

Add fuzzy data based on EWS results to support b231828.

  • web-platform-tests/css/motion/offset-rotate-004.html:

LayoutTests:

Add or update fuzzy data based on EWS results to support b231828.

  • css3/color-filters/color-filter-color-property-list-item.html:
  • css3/color-filters/color-filter-text-decoration-shadow.html:
  • css3/filters/backdrop/backdrop-filter-uneven-corner-radii.html:
  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove.html:
  • fast/borders/hidpi-border-radius-with-subpixel-margin-not-renderable.html:
  • fast/css/cascade/box-shadow-and-webkit-box-shadow-cascade-order.html:
9:46 AM Changeset in webkit [289547] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[macOS] Support both versions of ScreenCaptureKit API
​https://bugs.webkit.org/show_bug.cgi?id=236422
<rdar://problem/88726849>

Reviewed by Youenn Fablet.

Source/WebCore:

Tested manually.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h:
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(-[WebCoreScreenCaptureKitHelper initWithCallback:]):
(-[WebCoreScreenCaptureKitHelper stream:didOutputSampleBuffer:ofType:]):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):
(WebCore::ScreenCaptureKitCaptureSource::streamDidOutputSampleBuffer):
(WebCore::ScreenCaptureKitCaptureSource::captureQueue):

Source/WebCore/PAL:

  • pal/mac/ScreenCaptureKitSoftLink.h:
  • pal/mac/ScreenCaptureKitSoftLink.mm:
9:44 AM Changeset in webkit [289546] by Chris Dumez
  • 17 edits
    1 copy
    1 add
    18 deletes in trunk/LayoutTests

Resync web-platform-tests/url from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236377

Reviewed by Youenn Fablet.

Resync web-platform-tests/url from upstream 012f446eafc392c7.

  • web-platform-tests/url/*: Updated.
9:42 AM Changeset in webkit [289545] by Chris Dumez
  • 7 edits
    27 copies
    73 moves
    88 adds
    16 deletes in trunk/LayoutTests

Resync web-platform-tests/eventsource from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236374

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/eventsource from upstream 012f446eafc392c7.

  • web-platform-tests/eventsource/*: Updated.

LayoutTests:

9:37 AM Changeset in webkit [289544] by Aditya Keerthi
  • 11 edits
    1 add in trunk

An element with both -webkit-user-select: all and -webkit-user-drag: element does not get the nice drag snapshot that you get if you just have -webkit-user-drag: element
​https://bugs.webkit.org/show_bug.cgi?id=187656
<rdar://problem/42177956>

Reviewed by Wenson Hsieh.

Source/WebCore:

When dragging an element with "-webkit-user-select: all" and
"-webkit-user-drag: element", the element gets selected, leading
WebKit to add DragSourceAction::Selection to the set of
DragSourceActions. The presence of "-webkit-user-drag: element"
results in the addition of DragSourceAction::DHTML.

The addition of DragSourceAction::Selection in the
"-webkit-user-drag: element" scenario is undesirable, as
it results in a drag snapshot containing only the selection, and
copies/pastes the text selection, rather than moving the element.

To fix, drop DragSourceAction::Selection from the set of actions
when a "-webkit-user-drag: element" element is being dragged.

The new behavior matches Firefox and Chrome.

  • page/DragController.cpp:

(WebCore::DragController::draggableElement const):
(WebCore::DragController::startDrag):
(WebCore::DragController::doSystemDrag):

  • platform/DragItem.h:

Dropping DragSourceAction::Selection exposes an issue in the
UIProcess on iOS, where UIKit text interaction can unexpectedly
begin while dragging an element with "-webkit-user-drag: element".

To fix the WebProcess behavior, while keeping the UIProcess behavior
the same, a new bit is added to DragItem to indicate that the
element being dragged contains the selection. The UIProcess will use
this bit to suppress UIKit text interaction.

(WebCore::DragItem::encode const):
(WebCore::DragItem::decode):

Source/WebKit:

Plumb DragItem's containsSelection into the DragDropInteractionState
so that UIKit text interaction can be suppressed whenever the element
being dragged also contains the current selection.

  • UIProcess/ios/DragDropInteractionState.h:
  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::DragDropInteractionState::anyActiveDragSourceContainsSelection const):
(WebKit::DragDropInteractionState::stageDragItem):
(WebKit::DragDropInteractionState::anyActiveDragSourceIs const): Deleted.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):

Tools:

Added API tests on iOS and macOS to verify that dragging and dropping an
element with "-webkit-user-select: all" and "-webkit-user-drag: element"
does not paste the selection.

On iOS, the size of the lift preview is also tested.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/contenteditable-user-select-user-drag.html: Added.
  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(TEST):

9:35 AM Changeset in webkit [289543] by Andres Gonzalez
  • 2 edits in trunk/LayoutTests

Mark accessibility/mac/line-index-for-textmarker.html as Slow in Mac-wk2 Debug.
​https://bugs.webkit.org/show_bug.cgi?id=236448
<rdar://problem/88757785>

Unreviewed gardening.

  • platform/mac-wk2/TestExpectations:
9:28 AM Changeset in webkit [289542] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Prepare InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox for supporting vertical writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236400

Reviewed by Antti Koivisto.

This is just a small cleanup patch to make the vertical writing mode code easier to adopt.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):

9:04 AM Changeset in webkit [289541] by Megan Gardner
  • 5 edits in trunk/Source/WebKit

Mail attachment switched to TIFF and balloons in size after markup.
​https://bugs.webkit.org/show_bug.cgi?id=236405
rdar://87358910

Reviewed by Wenson Hsieh.

When pulling data from the webprocess to pass to the Sharing Service
for markup, we would convert it to TIFF format. This would cause files
to increase in size, and lose their original formatting, as well as outright
break PDFs. Instead we should be pulling the data from the attachment, which
already exists in the UI process and is the source of truth for that data anyways.
This allows us to give the correct type to the sharing service, and we should
take the data back as the same original type when getting the data back from
markup.

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::enclosingImageData const):

  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::enclosingImageNSData const):

  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

9:02 AM Changeset in webkit [289540] by Chris Dumez
  • 39 edits
    1 copy
    12 moves
    108 adds
    61 deletes in trunk/LayoutTests

Resync web-platform-tests/xhr from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236372

Reviewed by Youenn Fablet.

Resync web-platform-tests/xhr from upstream 012f446eafc392c7.

  • web-platform-tests/xhr/*: Updated.
8:54 AM Changeset in webkit [289539] by Chris Dumez
  • 7 edits
    4 deletes in trunk/LayoutTests

Resync web-platform-tests/webaudio from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236373

Reviewed by Youenn Fablet.

Resync web-platform-tests/webaudio from upstream 012f446eafc392c7.

  • web-platform-tests/webaudio/idlharness.https-expected.txt: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test-expected.txt: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-audiodestinationnode-interface/w3c-import.log: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-expected.txt: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime-expected.txt: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https-expected.txt: Removed.
  • web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing-expected.txt: Removed.
8:38 AM Changeset in webkit [289538] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Log more information when the wrapper or the wrapper's backing object is detached
​https://bugs.webkit.org/show_bug.cgi?id=236381

Reviewed by Chris Fleizach.

Right now, we don't log any information when we detect a wrapper has
no object, or when it does have an object but it's detached from a
parent.

This patch logs the wrapper address and object in these scenarios, which
will help debug these issues in conjuction with other logs.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper logMissingBackingObject]):
Added.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
Use new logMissingBackingObject, and log object if it's detached from a parent.
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
Use new logMissingBackingObject.

8:36 AM Changeset in webkit [289537] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AXIsolatedTree::updateChildren and AXIsolatedTree::nodeAncestryChanges results in adding incorrect nodes to the isolated tree
​https://bugs.webkit.org/show_bug.cgi?id=236414

Reviewed by Andres Gonzalez.

Sometimes AXIsolatedTree::updateChildren is called with an object that is
not in the isolated tree. When this happens, we currently call AXIsolatedTree::nodeAncestryChanges
to build the ancestry chain up to the nearest in-isolated-tree node (starting with the original
object called for updateChildren).

However, this seems to result in adding nodes to the isolated tree that don't exist in the live tree.
I believe this also causes isolated objects to often hold references to parent objects that don't exist
in the isolated tree, breaking object searches (and more).

With this patch, when AXIsolatedTree::updateChildren is called with an object that has no isolated tree
equivalent, we traverse up the object's ancestry until we find an object in the isolated tree and update
the children for that.

This was the behavior before ​https://bugs.webkit.org/show_bug.cgi?id=235389. We made that change because
we believed this behavior was causing a lot of full-tree re-renders. However, in my testing on large webpages
(e.g. youtube.com, facebook.com), this doesn't seem to be the case, and performance is actually very good.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::nodeAncestryChanges):
Deleted.
(WebCore::AXIsolatedTree::nodeChangeForObject):
Remove updateNodeMap parameter, as the now-deleted nodeAncestryChanges
was the only thing that called it with the non-default value of true.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::queueChangesAndRemovals):

8:21 AM Changeset in webkit [289536] by youenn@apple.com
  • 6 edits in trunk

Do not expose in WebIDL the parts of the permission API that are not yet supported
​https://bugs.webkit.org/show_bug.cgi?id=236301

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/permissions/idlharness.any-expected.txt:
  • web-platform-tests/permissions/idlharness.any.worker-expected.txt:

Source/WebCore:

Covered by existing tests.

  • Modules/permissions/PermissionStatus.idl:
  • Modules/permissions/Permissions.idl:
7:56 AM Changeset in webkit [289535] by Jonathan Bedard
  • 3 edits in trunk/Tools

Unreviewed, reverting 247040@main.
​https://bugs.webkit.org/show_bug.cgi?id=236399
<rdar://problem/88707207>

Broke EWS links after merging.

Reverted changeset:

[EWS] Link commit URL to pull request
​https://bugs.webkit.org/show_bug.cgi?id=236399
<rdar://problem/88707207>

7:49 AM Changeset in webkit [289534] by youenn@apple.com
  • 4 edits in trunk

Check for feature policy when querying permission state
​https://bugs.webkit.org/show_bug.cgi?id=236299

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/permissions/permissions-query-feature-policy-attribute.https.sub-expected.txt:

Source/WebCore:

Added feature policy check for camera, microphone and geolocation, which after ​https://bugs.webkit.org/show_bug.cgi?id=236292
are the only one returning anything else than NotSupported.

Covered by updated test.

  • Modules/permissions/Permissions.cpp:

(WebCore::isAllowedByFeaturePolicy):
(WebCore::Permissions::query):

7:45 AM Changeset in webkit [289533] by youenn@apple.com
  • 6 edits
    2 adds in trunk

Settling of a fetch promise should be delayed in case page is entering page cache
​https://bugs.webkit.org/show_bug.cgi?id=236292
<rdar://88452971>

Reviewed by Chris Dumez.

Source/WebCore:

Make sure to enqueue a task before resolving fetch promise as otherwise, page might continue running JavaScript.
Do this for worker as well for good measure.
We move signal aborted checks to two clients to handle rejecting fetch promise synchronously.

Test: http/tests/navigation/fetch-pagecache.html

  • Modules/cache/DOMCache.cpp:
  • Modules/fetch/FetchResponse.cpp:
  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WindowOrWorkerGlobalScopeFetch.cpp:
  • workers/service/FetchEvent.cpp:

LayoutTests:

  • http/tests/navigation/fetch-pagecache-expected.txt: Added.
  • http/tests/navigation/fetch-pagecache.html: Added.
7:33 AM Changeset in webkit [289532] by Chris Dumez
  • 5 edits in trunk

Fail synchronously when constructing a SharedWorker with an URL that is not same-origin
​https://bugs.webkit.org/show_bug.cgi?id=236419

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/workers/constructors/SharedWorker/same-origin-expected.txt:

Rebaseline test that is now fully passing. I have verified that it is passing in both
Blink and Gecko too.

  • web-platform-tests/workers/shared-worker-in-data-url-context.window-expected.txt:

Even though this looks like a regression, this actually aligns our behavior with both
Blink & Gecko (who also fail this check). Note that the load fails no matter what.
However, the test expects it to fail asynchronously instead of synchronously in this
case.

Source/WebCore:

Fail synchronously when constructing a SharedWorker with an URL that is not same-origin.
This aligns our behavior with Chrome and matches the language in the specification.

No new tests, rebaselined existing test.

  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::create):

6:52 AM WebKitGTK/2.34.x edited by Michael Catanzaro
(diff)
6:46 AM Changeset in webkit [289531] by commit-queue@webkit.org
  • 20 edits
    4 adds in trunk/Source

Introduce SignedPtrTraits which enables Ref pointers to be protected with PtrTags.
​https://bugs.webkit.org/show_bug.cgi?id=235588
rdar://88023849

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-02-10
Reviewed by Mark Lam.

Create and adopt SignedPtrTraits which can be used to apply and verify PtrTag signatures
to pointers stored in and tracked by WTF:Ref.

Source/WebCore:

  • bindings/js/JSDOMWrapper.h:

(WebCore::JSDOMWrapper::wrapped const):
(WebCore::JSDOMWrapper::offsetOfWrapped):
(WebCore::JSDOMWrapper::hasCustomPtrTraits):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetParentClassName):
(GetImplClassPtrTag):
(GenerateHeader):
(GetTaggedWrapperForInterface):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/BindingTestGlobalConstructors.idl:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::jsTestGlobalObject_TestTaggedWrapperConstructorGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.cpp: Added.

(WebCore::JSTestTaggedWrapperDOMConstructor::prototypeForStructure):
(WebCore::JSTestTaggedWrapperDOMConstructor::initializeProperties):
(WebCore::JSTestTaggedWrapperPrototype::finishCreation):
(WebCore::JSTestTaggedWrapper::JSTestTaggedWrapper):
(WebCore::JSTestTaggedWrapper::finishCreation):
(WebCore::JSTestTaggedWrapper::createPrototype):
(WebCore::JSTestTaggedWrapper::prototype):
(WebCore::JSTestTaggedWrapper::getConstructor):
(WebCore::JSTestTaggedWrapper::destroy):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestTaggedWrapper::subspaceForImpl):
(WebCore::JSTestTaggedWrapper::analyzeHeap):
(WebCore::JSTestTaggedWrapperOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestTaggedWrapperOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestTaggedWrapper::toWrapped):

  • bindings/scripts/test/JS/JSTestTaggedWrapper.h: Added.

(WebCore::JSTestTaggedWrapper::create):
(WebCore::JSTestTaggedWrapper::createStructure):
(WebCore::JSTestTaggedWrapper::subspaceFor):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/SupplementalDependencies.dep:
  • bindings/scripts/test/TestTaggedWrapper.idl: Added.
  • css/DOMMatrixReadOnly.idl:
  • dom/DOMPointReadOnly.idl:
  • dom/DOMQuad.idl:
  • dom/DOMRectReadOnly.idl:
  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::compileDocumentDocumentElementAttribute):
(WebCore::compileDocumentBodyAttribute):

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMGetterForOffsetAccess):
(WebCore::compileNodeOwnerDocumentAttribute):

  • html/TimeRanges.idl:
  • html/canvas/OffscreenCanvasRenderingContext2D.idl:
  • html/canvas/PaintRenderingContext2D.idl:
  • svg/SVGMatrix.idl:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/SignedPtr.h: Added.

(WTF::SignedPtr::SignedPtr):
(WTF::SignedPtr::get const):
(WTF::SignedPtr::set):
(WTF::SignedPtr::clear):
(WTF::SignedPtr::operator-> const):
(WTF::SignedPtr::operator* const):
(WTF::SignedPtr::operator! const):
(WTF::SignedPtr::operator UnspecifiedBoolType const):
(WTF::SignedPtr::operator bool const):
(WTF::SignedPtr::operator=):
(WTF::SignedPtr::exchange):
(WTF::SignedPtr::swap):
(WTF::SignedPtrTraits::exchange):
(WTF::SignedPtrTraits::swap):
(WTF::SignedPtrTraits::unwrap):
(WTF::SignedPtrTraits::hashTableDeletedValue):
(WTF::SignedPtrTraits::isHashTableDeletedValue):

6:23 AM Changeset in webkit [289530] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add InInlineDirection postfix to margin/border/paddingLeft(Right)
​https://bugs.webkit.org/show_bug.cgi?id=236398

Reviewed by Antti Koivisto.

This helps to make sure we don't confuse _visual_ border left and border left in the inline base direction sense
(i.e. logical left can turn into a "visual" right in the inline base direction context (RTL) which can turn into a final physical bottom after the writing mode flip)

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::marginLeftInInlineDirection):
(WebCore::Layout::marginRightInInlineDirection):
(WebCore::Layout::borderLeftInInlineDirection):
(WebCore::Layout::borderRightInInlineDirection):
(WebCore::Layout::paddingLeftInInlineDirection):
(WebCore::Layout::paddingRightInInlineDirection):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::marginLeft): Deleted.
(WebCore::Layout::marginRight): Deleted.
(WebCore::Layout::borderLeft): Deleted.
(WebCore::Layout::borderRight): Deleted.
(WebCore::Layout::paddingLeft): Deleted.
(WebCore::Layout::paddingRight): Deleted.

6:14 AM Changeset in webkit [289529] by Alexander Mikhaylenko
  • 2 edits in trunk/Source/WebCore

[GTK] Scrollbars painted incorrectly if theme enables steppers (steppers misplaced on vertical scrollbars, horizontal scrollbars very broken)
​https://bugs.webkit.org/show_bug.cgi?id=234871

Reviewed by Carlos Garcia Campos.

Actually use the scrollbar orientation when creating its contents,
instead of always using vertical.

  • platform/gtk/RenderThemeScrollbar.cpp:

(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):

5:54 AM Changeset in webkit [289528] by Carlos Garcia Campos
  • 10 edits
    1 copy
    1 add in trunk/Source

[GTK][WPE] Refactor the XDGDBusProxy launcher to simplify it and fix some issues
​https://bugs.webkit.org/show_bug.cgi?id=236437

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Make accessibility bus address API available for ATK too.

  • platform/graphics/PlatformDisplay.cpp:
  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/x11/PlatformDisplayX11.cpp:
  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

This patch moves the XDGDBusProxy launcher implementation to its own file and fixes the following issues:

  • r289369 introduced an issue with old versions of bwrap that fails to mount over an existing file, so we need to ensure we only bind the original socket for the a11y socket and not the session bus one.
  • bindA11y is GTK specific for some reason, which means WPE doesn't have a11y under the sandbox.
  • The names of the socket paths for a11y and session bus use the same pattern dbus-proxy-XXXXXX, it helps to use a different one.
  • The code to get the a11y DBus address is now duplicated in PlatformDisplay, we can just use the PlatformDisplay to get the address.
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::argumentsToFileDescriptor):
(WebKit::bindDBusSession):
(WebKit::bindA11y):
(WebKit::bubblewrapSpawn):
(WebKit::argsToFd): Deleted.
(WebKit::XDGDBusProxyLauncher::setAddress): Deleted.
(WebKit::XDGDBusProxyLauncher::isRunning const): Deleted.
(WebKit::XDGDBusProxyLauncher::path const): Deleted.
(WebKit::XDGDBusProxyLauncher::proxyPath const): Deleted.
(WebKit::XDGDBusProxyLauncher::setPermissions): Deleted.
(WebKit::XDGDBusProxyLauncher::launch): Deleted.
(WebKit::XDGDBusProxyLauncher::makeProxyPath): Deleted.
(WebKit::XDGDBusProxyLauncher::dbusAddressToPath): Deleted.
(): Deleted.

  • UIProcess/Launcher/glib/BubblewrapLauncher.h:
  • UIProcess/Launcher/glib/XDGDBusProxy.cpp: Added.

(WebKit::XDGDBusProxy::XDGDBusProxy):
(WebKit::XDGDBusProxy::makeProxy const):
(WebKit::XDGDBusProxy::launch const):

  • UIProcess/Launcher/glib/XDGDBusProxy.h: Added.

(WebKit::XDGDBusProxy::proxyPath const):
(WebKit::XDGDBusProxy::path const):

5:50 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
5:02 AM Changeset in webkit [289527] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Incorrect abspos layout when toggling contain
​https://bugs.webkit.org/show_bug.cgi?id=236261

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-10
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/contain-layout-020-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-020.html: Added.

Source/WebCore:

A change in layout containment for a container means either the container becomes
a absolute positioning containing block or ceases to be one. The method
removePositionedObjectsIfNeeded handles this, update it to take layout containment
changes into account.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-layout-020.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removePositionedObjectsIfNeeded):

3:10 AM Changeset in webkit [289526] by Antti Koivisto
  • 6 edits
    2 adds in trunk

[:has() pseudo-class] Nullptr crash with non-function :has
​https://bugs.webkit.org/show_bug.cgi?id=236431
rdar://87061239

Reviewed by Cameron McCormack.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has.html:

Source/WebCore:

Test: fast/selectors/malformed-has.html

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isOnlyPseudoClassFunction):

:has() is legal, plain :has is not.

LayoutTests:

  • fast/selectors/malformed-has-expected.txt: Added.
  • fast/selectors/malformed-has.html: Added.
2:36 AM Changeset in webkit [289525] by commit-queue@webkit.org
  • 42 edits
    3 copies
    8 adds in trunk

Introduce a RemoteMediaSampleProxy to represent captured video frames used in Media Streams and present in GPUP
​https://bugs.webkit.org/show_bug.cgi?id=236099

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-10
Reviewed by Youenn Fablet.

Source/WebCore:

Add VideoFrame : public MediaStream, base class for Media Stream video frames.
Currently inherits from MediaSample, but later will remove the MediaSample.

The WebCore::VideoFrame is intended to be used in various entry-points that
currently are currently typed as:

void videoSampleAvailable(MediaSample&, VideoSampleMetadata, ...).

The new class WebKit::RemoteVideoFrameProxy : public VideoFrame can be passed to these APIs.
The API entrypoints are not yet changed in order to partially roll the changes in.
Later on, the entrypoints will be similar to:

void videoSampleAvailable(VideoFrame&, VideoSampleMetadata, ...).

Removes MediaSample::setTrackID as that is not used.
Changes MediaSample::platformSample() to const, so that it can be called from
const context.

No new tests, refactor.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h:
  • platform/VideoFrame.cpp: Added.

(WebCore::VideoFrame::decodeTime const):
(WebCore::VideoFrame::duration const):
(WebCore::VideoFrame::trackID const):
(WebCore::VideoFrame::sizeInBytes const):
(WebCore::VideoFrame::presentationSize const):
(WebCore::VideoFrame::offsetTimestampsBy):
(WebCore::VideoFrame::setTimestamps):
(WebCore::VideoFrame::isDivisable const):
(WebCore::VideoFrame::divide):
(WebCore::VideoFrame::createNonDisplayingCopy const):
(WebCore::VideoFrame::flags const):
(WebCore::VideoFrame::byteRange const):
(WebCore::VideoFrame::dump const):

  • platform/VideoFrame.h: Added.
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::enqueueSampleBuffer):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:

(isType):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::platformSample const):

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::platformSample const):

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockMediaSample::platformSample const):

Source/WebKit:

WebContent process:
Add WebKit::RemoteVideoFrameProxy, WebContent process side proxy object that
WebCore::MediaPlayerPrivateMediaStreamAVFObjC can use.

RemoteVideoFrameProxy can be sent to the GPUP and the the SampleBufferDisplayLayer. So
the captured content shows in compositing through video element.

At the moment MediaPlayerPrivateMediaStreamAVFObjC cannot paint RemoteVideoFrameProxy to the
document CSS painted content, Context2D or WebGL canvas.

GPUP:
RemoteVideoFrameObjectHeap is a mapping
RemoteVideoFrameIdentifier -> MediaSample. Currently all objects
map to normal MediaSampleAVFObjC.

Add an example implementation where a remote MediaSample is returned by IPC:
RemoteGraphicsContextGL::paintCompositedResultsToMediaSample().

The GPUP object pointed by RemoteVideoFrameIdentifier is:

  • created in RemoteGraphicsContextGL::paintCompositedResultsToMediaSample() in RemoteGraphicsContextGL thread
  • consumed in RemoteSampleBufferDisplayLayer::enqueueSample in RemoteSampleBufferDisplayLayerManager thread
  • released in RemoteVideoFrameObjectHeap::releaseVideoFrame in GPUP main thread

All of these messages are asynchronous and can arrive to their destination in any order.
For example, request to release the video frame can happen before the message to create the video frame has been
received.

To solve the ordering issue, introduce readers-writers reference counting method via following classes:

  • ObjectIdentifierReadReference
  • ObjectIdentifierWriteReference
  • ObjectIdentifierReferenceTracker

ObjectIdentifier identifies the object.
ObjectIdentifierWriteReference identifies a new version of the content pointed by the identifier.
Pseudocode examples:

WriteReference { identifier = 1, pendingReads = 0, version = 0 } means:

"End the life-time of identifier 1, version 0. Create version = 1"
This is how initial object is assigned to the reference.

WriteReference { identifier = 1, pendingReads = 77, version = 32 } means

"End the life-time of identifier 1, version 32 when all 77 reads have completed. Create version = 33"

ObjectIdentifierReadReference declares a read dependency to a specific version of the content pointed by the identifier.
Pseudocode examples:

ReadReference { identifier = 1, version = 32 } means
"Complete one read of identifier 1, version 32".

Creates, updates and destructions are WriteReferences.
Reads are ReadReferences.

The ObjectIdentifierReferenceTracker creates write and read references in the Proxy -using process (WebContent process).

The added ThreadSafeObjectHeap resolves the read and write references in the real object process (GPUP in this case).
Reads and writes are blocking the requesting thread appropriately:

  • Read of unknown version of the identifier blocks until the write creates the version
  • Write of new version of the identifier blocks until the reads have retired, or creates parallel, new version of the content in case of copy-on-write schemes.

In this commit objects pointed by RemoteVideoFrameIdentifier are immutable until destroyed, so there is no update or
copy-on-write scheme here.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::videoFrameObjectHeap const):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToMediaSample):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/media/RemoteVideoFrameObjectHeap.cpp: Added.

(WebKit::RemoteVideoFrameObjectHeap::create):
(WebKit::RemoteVideoFrameObjectHeap::RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::stopListeningForIPC):
(WebKit::RemoteVideoFrameObjectHeap::addVideoFrame):
(WebKit::RemoteVideoFrameObjectHeap::releaseVideoFrame):

  • GPUProcess/media/RemoteVideoFrameObjectHeap.h: Added.
  • GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in: Copied from Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in.
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::create):
(WebKit::RemoteSampleBufferDisplayLayer::RemoteSampleBufferDisplayLayer):
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSampleCV):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/IPCTester.cpp:

(WebKit::IPCTester::startMessageTesting):
(WebKit::isTestingIPC):

  • Shared/IPCTester.h:

(WebKit::isTestingIPC):

  • Shared/ObjectIdentifierReferenceTracker.h: Added.

(WebKit::ObjectIdentifierReference::ObjectIdentifierReference):
(WebKit::ObjectIdentifierReference::identifier const):
(WebKit::ObjectIdentifierReference::version const):
(WebKit::ObjectIdentifierReference::operator== const):
(WebKit::ObjectIdentifierReference::isHashTableDeletedValue const):
(WebKit::ObjectIdentifierReadReference::ObjectIdentifierReadReference):
(WebKit::ObjectIdentifierReadReference::identifier const):
(WebKit::ObjectIdentifierReadReference::version const):
(WebKit::ObjectIdentifierReadReference::reference const):
(WebKit::ObjectIdentifierReadReference::encode const):
(WebKit::ObjectIdentifierReadReference::decode):
(WebKit::ObjectIdentifierWriteReference::ObjectIdentifierWriteReference):
(WebKit::ObjectIdentifierWriteReference::identifier const):
(WebKit::ObjectIdentifierWriteReference::version const):
(WebKit::ObjectIdentifierWriteReference::pendingReads const):
(WebKit::ObjectIdentifierWriteReference::reference const):
(WebKit::ObjectIdentifierWriteReference::retire const):
(WebKit::ObjectIdentifierWriteReference::encode const):
(WebKit::ObjectIdentifierWriteReference::decode):
(WebKit::ObjectIdentifierReferenceTracker::ObjectIdentifierReferenceTracker):
(WebKit::ObjectIdentifierReferenceTracker::read const):
(WebKit::ObjectIdentifierReferenceTracker::write const):
(WebKit::ObjectIdentifierReferenceTracker::identifier const):
(WebKit::add):
(WebKit::operator<<):
(WTF::DefaultHash<WebKit::ObjectIdentifierReference<T>>::hash):
(WTF::DefaultHash<WebKit::ObjectIdentifierReference<T>>::equal):

  • Shared/ThreadSafeObjectHeap.h: Added.

(WebKit::ThreadSafeObjectHeap::ReferenceState::ReferenceState):
(WebKit::HeldType>::retire):
(WebKit::HeldType>::retireRemove):
(WebKit::HeldType>::clear):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:

(WebKit::MediaSampleByteRange::platformSample const):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToMediaSample):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:
  • WebProcess/GPU/media/RemoteVideoFrameIdentifier.h: Copied from Source/WebKit/Shared/IPCTester.h.
  • WebProcess/GPU/media/RemoteVideoFrameProxy.cpp: Added.

(WebKit::RemoteVideoFrameProxy::create):
(WebKit::RemoteVideoFrameProxy::properties):
(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::~RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::identifier const):
(WebKit::RemoteVideoFrameProxy::write const):
(WebKit::RemoteVideoFrameProxy::read const):
(WebKit::RemoteVideoFrameProxy::presentationTime const):
(WebKit::RemoteVideoFrameProxy::platformSample const):
(WebKit::RemoteVideoFrameProxy::videoRotation const):
(WebKit::RemoteVideoFrameProxy::videoMirrored const):
(WebKit::RemoteVideoFrameProxy::videoPixelFormat const):
(WebKit::RemoteVideoFrameProxy::videoFrame const):
(WebKit::RemoteVideoFrameProxy::disconnectGPUProcessIfNeeded const):
(WebKit::RemoteVideoFrameProxy::waitForWasInitialized const):
(WebKit::RemoteVideoFrameProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteVideoFrameProxy::wasInitialized):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.h: Added.

(WebKit::RemoteVideoFrameProxy::Properties::encode const):
(WebKit::RemoteVideoFrameProxy::Properties::decode):
(isType):

  • WebProcess/GPU/media/RemoteVideoFrameProxy.messages.in: Copied from Source/WebKit/Shared/IPCTester.h.
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:

(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::~SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::enqueueSample):
(WebKit::SampleBufferDisplayLayer::gpuProcessConnectionDidClose):
(WebKit::SampleBufferDisplayLayer::disconnectGPUProcessConnectionIfNeeded):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:

Tools:

  • Scripts/generate-gpup-webgl:
  • TestWebKitAPI/Tests/WebCore/SampleMap.cpp:
1:27 AM Changeset in webkit [289524] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Non-default constructible types cannot be decoded with IPC::Decoder
​https://bugs.webkit.org/show_bug.cgi?id=236246

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-10
Reviewed by Antti Koivisto.

Add yet another decode function: std::optional<T> Decoder::decode<T>();

Consider the pattern:

std::optional<T> t;
decoder >> t;
if (!t)

....

The above neccessitates default construction of T, since it contains

std::optional<T> t;
t = ...; assignment. This assignment cannot be elided.

Better pattern is:

auto t = decoder.decode<T>();

This is significant with for types with const members:

struct T {

const uint64_t version;

};

  • Platform/IPC/Decoder.h:

(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessage):
(IPC::handleMessageWantsConnection):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

1:07 AM Changeset in webkit [289523] by Martin Robinson
  • 15 edits in trunk/LayoutTests

[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
​https://bugs.webkit.org/show_bug.cgi?id=235084
<rdar://problem/87421733>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update pixel tolerances for some tests from the WPT transforms suite,
fixing them on Mac and on Glib-based ports.

  • web-platform-tests/css/css-transforms/2d-rotate-001.html:
  • web-platform-tests/css/css-transforms/group/svg-transform-nested-009.html:
  • web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html:
  • web-platform-tests/css/css-transforms/preserve3d-and-filter-with-perspective.html:
  • web-platform-tests/css/css-transforms/skew-test1.html:
  • web-platform-tests/css/css-transforms/transform-background-001.html:
  • web-platform-tests/css/css-transforms/transform-background-002.html:
  • web-platform-tests/css/css-transforms/transform-table-009.html:
  • web-platform-tests/css/css-transforms/transform-table-010.html:
  • web-platform-tests/css/css-transforms/transform-table-011.html:
  • web-platform-tests/css/css-transforms/transforms-skewX.html:

LayoutTests:

  • platform/glib/TestExpectations: Unskip newly passing tests.
  • platform/mac/TestExpectations: Ditto.
12:17 AM Changeset in webkit [289522] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebCore

IDBRequest should emit write barrier on JSValueInWrappedObject modification
​https://bugs.webkit.org/show_bug.cgi?id=236278

Reviewed by Geoffrey Garen.

In IDBRequest, m_resultWrapper is used to cache JSValue for m_result. When request is performing operation (e.g.
iterating cursor), we clear both m_result and m_resultWrapper. When request is done, we set m_result and
m_resultWrapper. The spec requires the IDBRequest.result() to return the same JavaScript object after operation,
so we introduced m_cursorWrapper to temporarily store the JSValue during operation. When operation starts, we
set m_cursorWrapper with m_resultWrapper and when opreation finishes successfully, we set m_resultWrapper back
using m_cursorWrapper.

This has a semantic error as the assignment process does not emit write barrier (webkit.org/b/236277). To fix
it, we may just remove m_cursorWrapper and not clear m_resultWrapper during operation. Since we clear m_result
in operation, we can check if m_result is empty to decide whether we should return m_resultWrapper for
IDBRequest.result().

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::clearWrappers):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::resultWrapper):
(WebCore::IDBRequest::cursorWrapper): Deleted.

  • bindings/js/JSIDBRequestCustom.cpp:

(WebCore::JSIDBRequest::result const):
(WebCore::JSIDBRequest::visitAdditionalChildren):

12:10 AM Changeset in webkit [289521] by Manuel Rego Casasnovas
  • 4 edits
    2 adds in trunk

:focus-visible with click on radio/checkbox labels is broken
​https://bugs.webkit.org/show_bug.cgi?id=236331

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Added new WPT test to cover this case.

  • web-platform-tests/css/selectors/focus-visible-026-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-026.html: Added.

Source/WebCore:

When the label is clicked we have to send the FocusTrigger information to Element::focus().
There we avoid setting FocusVisibility:Visible if it has been triggered via mouse click.

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-026.html

  • dom/Element.cpp:

(WebCore::Element::focus): Add a check for FocusTrigger::Click to avoid setting FocusVisibility:Visible.

  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::defaultEventHandler): Pass FocusTrigger::Click.

Feb 9, 2022:

11:44 PM Changeset in webkit [289520] by Diego Pino Garcia
  • 2 edits
    18 deletes in trunk/LayoutTests

[WPE] Mark several WPT SVG import filter tests as failure

Unreviewed test gardening.

r289510 updated the baselines of these tests, but this was not the
right fix. These tests were passing in WPE until r288412. The tests
should be marked as a failure in WPE TestExpectations.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-04-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-04-f-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-05-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-05-f-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-conv-03-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-conv-03-f-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-displace-01-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-displace-01-f-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-01-b-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-01-b-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-02-b-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-02-b-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-03-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-03-f-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-04-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-04-f-manual-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-05-f-manual-expected.png: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-05-f-manual-expected.txt: Removed.
10:00 PM Changeset in webkit [289519] by Ross Kirsling
  • 4 edits in trunk

SharedMemoryUnix should use SHM_ANON when available
​https://bugs.webkit.org/show_bug.cgi?id=236416

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsCommon.cmake: Check for SHM_ANON.

Source/WebKit:

FreeBSD is able to use shm_open(SHM_ANON, ...) to create an anonymous shared memory object which is subject to RAII:
​https://www.freebsd.org/cgi/man.cgi?query=shm_open

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::createSharedMemory):
Make use of SHM_ANON if we have it.

9:18 PM Changeset in webkit [289518] by Said Abou-Hallawa
  • 42 edits in trunk/Source

[GPU Process] Move ImageBuffer::createCompatibleImageBuffer() and SVGRenderingContext::createImageBuffer to GraphicsContext
​https://bugs.webkit.org/show_bug.cgi?id=235758
rdar://88478470

Reviewed by Simon Fraser.

Source/WebCore:

The goal of this patch is to record the drawing if the concrete type of
the GraphicsContext is RemoteDisplayListRecorderProxy. Currently all the
intermediate compatible ImageBuffers are of type ConcreteImageBuffer.
The drawing to these ImageBuffers still happens in the WebProcess. Moreover
when we call drawImageBuffer() or clipToImageBuffer() for one of these
intermediate ImageBuffers to a remote ImageBuffer, we have to sink the
intermediate ImageBuffer to a NativeImage and send it to GPUProcess.

To fix this, the new enum 'RenderingMethod' will be used when creating
the ImageBuffer methods. The value of RenderingMethod can be one of the
following constants:

  1. Default: The type of the created ImageBuffer will match the type of the underlying ImageBuffer of the GraphicsContext.
  1. DisplayList: A DisplayList::ImageBuffer will be created whose GraphicsContext will be of type DisplayList::RecorderImpl.
  1. Local: The ImageBuffer will be of type ConcreteImageBuffer and it will hold a platform GraphicsContext.

Also GraphicsContext will provide these functions for creating an
ImageBuffer:

  1. GraphicsContext::createImageBuffer() (virtual): Creates a ConcreteImageBuffer or a DisplayList::ImageBuffer. The type of the created ImageBuffer is controlled by the argument 'renderingMethod'. Because RemoteDisplayListRecorderProxy is a super class of GraphicsContext, it overrides this method and returns the desired RemoteImageBuffer. RemoteDisplayListRecorderProxy has access to RemotRenderingBackendProxy so it can call its createImageBuffer().
  1. GraphicsContext::createImageBuffer() (non-virtual): Creates a scaled ImageBuffer and sets the context accordingly. The type of the created ImageBuffer is controlled by the argument 'renderingMethod'.
  1. GraphicsContext::createCompatibleImageBuffer() (virtual): Takes the scaleFactor() into consideration when creating the ImageBuffer. RemoteDisplayListRecorderProxy will override this function to return an Unaccelerated ImageBuffer if 'renderingMethod != Default'. This is to ensure that for GPUProcess drawing, no intermediate local ImageBuffers will draw to an IOSurface in WebProcess.

Two versions of these functions are provided: one takes a FloatSize and
the other takes a FloatRecct. The FloatRect version expands the four
corners of the rectangle to full pixels.

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::replayDisplayList const):

  • html/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::drawPattern):

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::transferToImageBitmap):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/cocoa/ThemeCocoa.mm:

(WebCore::drawApplePayButton):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::drawPattern):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::scaledImageBufferSize):
(WebCore::scaledImageBufferRect):
(WebCore::clampingScaleForImageBufferSize):
(WebCore::GraphicsContext::compatibleImageBufferSize const):
(WebCore::GraphicsContext::createImageBuffer const):
(WebCore::GraphicsContext::createCompatibleImageBuffer const):
(WebCore::GraphicsContext::clipToDrawingCommands):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::createImageBuffer):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::clone const):
(WebCore::ImageBuffer::createCompatibleBuffer): Deleted.
(WebCore::ImageBuffer::compatibleBufferSize): Deleted.
(WebCore::ImageBuffer::compatibleBufferInfo): Deleted.
(WebCore::ImageBuffer::copyRectToBuffer): Deleted.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/RenderingMode.h:
  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
(WebCore::PDFDocumentImage::draw):

  • platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::drawOTSVGRun):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::createImageBuffer const):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::applyItem):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupFilters):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::allocateBackingStoreIfNeeded):
(WebCore::RenderLayerFilters::beginFilterEffect):

  • rendering/RenderLayerFilters.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintListButtonForInput):
(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::clipToImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):
(WebCore::SVGRenderingContext::createImageBuffer): Deleted.
(WebCore::SVGRenderingContext::clear2DRotation): Deleted.

  • rendering/svg/SVGRenderingContext.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::scaledImageBufferRect):
(WebCore::clampingScaleForImageBufferSize):
(WebCore::createImageBuffer):
(WebCore::SVGFEImageElement::imageBufferForEffect const):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer):

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::beginClipToDrawingCommands):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::createImageBuffer const):
(WebKit::RemoteDisplayListRecorderProxy::createCompatibleImageBuffer const):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
8:11 PM Changeset in webkit [289517] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified build fix after r289474
​https://bugs.webkit.org/show_bug.cgi?id=236425

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
5:50 PM Changeset in webkit [289516] by Chris Dumez
  • 15 edits
    1 copy
    24 adds
    198 deletes in trunk/LayoutTests

Resync web-platform-tests/html/browsers from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236370

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/browsers from upstream 012f446eafc392c7.

  • web-platform-tests/html/browsers/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
  • tests-options.json:
5:50 PM Changeset in webkit [289515] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Use local variable pointer for concurrently load value
​https://bugs.webkit.org/show_bug.cgi?id=236387

Reviewed by Saam Barati.

Consistently using local pointer to load member fields in

  1. WriteBarrierStructureID
  2. JSString's fiber
  3. Weak
  4. WriteBarrier<SomeKindOfCell>

to encourage compilers not to load the field twice.

  • heap/Weak.cpp:

(JSC::weakClearSlowCase):

  • heap/Weak.h:

(JSC::Weak::isHashTableEmptyValue const):
(JSC::Weak::unsafeImpl const):
(JSC::Weak::clear):
(JSC::Weak::impl const):

  • heap/WeakInlines.h:

(JSC::Weak<T>::isHashTableDeletedValue const):
(JSC:: const):
(JSC::Weak<T>::operator const):
(JSC::Weak<T>::get const):
(JSC::Weak<T>::leakImpl):

  • runtime/JSString.cpp:

(JSC::JSString::dumpToStream):
(JSC::JSString::estimatedSize):
(JSC::JSString::visitChildrenImpl):

  • runtime/JSString.h:

(JSC::JSString::fiberConcurrently const):
(JSC::JSString::is8Bit const):
(JSC::JSString::length const):
(JSC::JSString::tryGetValueImpl const):
(JSC::JSString::isSubstring const):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase::get const):
(JSC::WriteBarrierBase::operator* const):
(JSC::WriteBarrierBase::operator-> const):
(JSC::WriteBarrierBase::operator bool const):
(JSC::WriteBarrierBase::operator! const):
(JSC::WriteBarrierBase::unvalidatedGet const):
(JSC::WriteBarrierBase::cell const):
(JSC::WriteBarrierStructureID::get const):
(JSC::WriteBarrierStructureID::operator* const):
(JSC::WriteBarrierStructureID::operator-> const):
(JSC::WriteBarrierStructureID::operator bool const):
(JSC::WriteBarrierStructureID::operator! const):
(JSC::WriteBarrierStructureID::unvalidatedGet const):

5:27 PM Changeset in webkit [289514] by Wenson Hsieh
  • 6 edits in trunk/Source

Add some WebKitAdditions extension points in VisionKitCore SPI and softlinking headers
​https://bugs.webkit.org/show_bug.cgi?id=236403
rdar://88709972

Reviewed by Aditya Keerthi.

Source/WebCore/PAL:

Add new WebKitAdditions header includes.

  • pal/cocoa/VisionKitCoreSoftLink.h:
  • pal/cocoa/VisionKitCoreSoftLink.mm:

Source/WebKit:

Declare a new helper function in TextRecognitionUtilities.h.

  • Platform/cocoa/TextRecognitionUtilities.h:
  • Platform/cocoa/TextRecognitionUtilities.mm:
5:27 PM Changeset in webkit [289513] by Alan Coon
  • 7 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r289383. rdar://problem/88366849

[WebCore] JSValueInWrappedObject is not correct for concurrent GC
​https://bugs.webkit.org/show_bug.cgi?id=236277
rdar://88366849

Reviewed by Saam Barati.

JSValueInWrappedObject is broken for concurrent GC's marking. It is using std::variant<> to store Weak / JSValue,
which is not safe if concurrent GC reads it while changing that std::variant. This patch fixes several problems
in JSValueInWrappedObject.

  1. We must not use std::variant here since concurrent access can happen. We have both JSValue and Weak, and change Weak after fully initialize WeakImpl's content in Weak. To ensure that, we emit storeStoreBarrier before setting Weak to the JSValueInWrappedObject's field.
  2. Assignment operator & copy constructor are basically wrong for this class as we need a write-barrier to set a value to the field. We remove them and make it explicit that we do not have write-barrier, which reveals that IDBRequest has a semantic bug.
  3. We also add clear() instead of assigning empty JSValueInWrappedObject. And we ensure that this new clear() works well with concurrent GC threads: we clear the underlying WeakImpl* pointer to nullptr. But since WeakImpl* is kept alive until GC clears weak-related things in its end phase, concurrent GC thread can access the old WeakImpl*.
  • Modules/indexeddb/IDBCursor.cpp: (WebCore::IDBCursor::setGetResult):
  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::setResult): (WebCore::IDBRequest::setResultToStructuredClone): (WebCore::IDBRequest::setResultToUndefined): (WebCore::IDBRequest::willIterateCursor): (WebCore::IDBRequest::didOpenOrIterateCursor):
  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp:
  • Modules/paymentrequest/PaymentResponse.cpp: (WebCore::PaymentResponse::setDetailsFunction):
  • Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::getChannelData): (WebCore::AudioBuffer::visitChannelWrappers):
  • bindings/js/JSValueInWrappedObject.h: (WebCore::JSValueInWrappedObject::JSValueInWrappedObject): (WebCore::JSValueInWrappedObject::operator JSC::JSValue const): (WebCore::JSValueInWrappedObject::visit const): (WebCore::JSValueInWrappedObject::setWeakly): (WebCore::JSValueInWrappedObject::set): (WebCore::JSValueInWrappedObject::clear): (WebCore::JSValueInWrappedObject::setWithoutBarrier): (WebCore::cachedPropertyValue): (WebCore::JSValueInWrappedObject::makeValue): Deleted. (WebCore::JSValueInWrappedObject::operator=): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289383 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:26 PM Changeset in webkit [289512] by Alan Coon
  • 4 edits
    1 add in branches/safari-613-branch

Cherry-pick r289450. rdar://problem/88483574

[JSC] YarrJIT inlining should be disabled when we have DotStarEnclosure
​https://bugs.webkit.org/show_bug.cgi?id=236332
rdar://88483574

Reviewed by Michael Saboff.

JSTests:

  • stress/yarr-inlining-dot-star-enclosure.js: Added. (test):

Source/JavaScriptCore:

YarrJITRegisters::initialStart can be used when m_pattern.m_saveInitialStartValue is true while
it is not defined in YarrJIT inlining. As a result, we emit broken code using InvalidGPRReg.
This patch makes canInline false when m_pattern.m_saveInitialStartValue is true.

  • yarr/YarrJIT.cpp:
  • yarr/YarrJITRegisters.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289450 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:24 PM Changeset in webkit [289511] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.5

Tag Safari-613.1.16.1.5.

5:21 PM Changeset in webkit [289510] by Diego Pino Garcia
  • 51 edits
    41 adds in trunk/LayoutTests

[WPE] Unreviewed test gardening, update baselines of tests failing

  • platform/wpe/css1/font_properties/font-expected.png: Added.
  • platform/wpe/css1/font_properties/font-expected.txt:
  • platform/wpe/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png: Added.
  • platform/wpe/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
  • platform/wpe/fast/block/margin-collapse/103-expected.png: Added.
  • platform/wpe/fast/block/margin-collapse/103-expected.txt:
  • platform/wpe/fast/css/font-face-opentype-expected.png: Added.
  • platform/wpe/fast/css/font-face-opentype-expected.txt:
  • platform/wpe/fast/css/word-space-extra-expected.png:
  • platform/wpe/fast/css/word-space-extra-expected.txt:
  • platform/wpe/fast/dom/52776-expected.png: Added.
  • platform/wpe/fast/dom/52776-expected.txt:
  • platform/wpe/fast/table/text-field-baseline-expected.png: Added.
  • platform/wpe/fast/table/text-field-baseline-expected.txt:
  • platform/wpe/fast/text/atsui-multiple-renderers-expected.png: Added.
  • platform/wpe/fast/text/atsui-multiple-renderers-expected.txt:
  • platform/wpe/fast/text/atsui-negative-spacing-features-expected.png:
  • platform/wpe/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/wpe/fast/text/atsui-spacing-features-expected.png:
  • platform/wpe/fast/text/atsui-spacing-features-expected.txt:
  • platform/wpe/fast/text/basic/015-expected.png: Added.
  • platform/wpe/fast/text/basic/015-expected.txt:
  • platform/wpe/fast/text/capitalize-boundaries-expected.png: Added.
  • platform/wpe/fast/text/capitalize-boundaries-expected.txt:
  • platform/wpe/fast/text/international/arabic-justify-expected.png: Added.
  • platform/wpe/fast/text/international/arabic-justify-expected.txt:
  • platform/wpe/fast/text/international/bidi-AN-after-L-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/wpe/fast/text/international/bidi-AN-after-empty-run-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-AN-after-empty-run-expected.txt:
  • platform/wpe/fast/text/international/bidi-CS-after-AN-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-CS-after-AN-expected.txt:
  • platform/wpe/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wpe/fast/text/international/bidi-linebreak-001-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/wpe/fast/text/international/bidi-linebreak-002-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/wpe/fast/text/international/bidi-linebreak-003-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/wpe/fast/text/international/bidi-listbox-atsui-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/wpe/fast/text/international/bidi-mirror-he-ar-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-mirror-he-ar-expected.txt:
  • platform/wpe/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt:
  • platform/wpe/fast/text/international/bidi-neutral-run-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wpe/fast/text/international/bold-bengali-expected.png: Added.
  • platform/wpe/fast/text/international/bold-bengali-expected.txt:
  • platform/wpe/fast/text/international/danda-space-expected.png: Added.
  • platform/wpe/fast/text/international/danda-space-expected.txt:
  • platform/wpe/fast/text/international/hebrew-vowels-expected.png: Added.
  • platform/wpe/fast/text/international/hebrew-vowels-expected.txt:
  • platform/wpe/fast/text/international/hindi-whitespace-expected.png: Added.
  • platform/wpe/fast/text/international/hindi-whitespace-expected.txt:
  • platform/wpe/fast/text/international/thai-baht-space-expected.png: Added.
  • platform/wpe/fast/text/international/thai-baht-space-expected.txt:
  • platform/wpe/fast/text/international/thai-line-breaks-expected.png: Added.
  • platform/wpe/fast/text/international/thai-line-breaks-expected.txt:
  • platform/wpe/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png: Added.
  • platform/wpe/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/wpe/fast/text/khmer-lao-font-expected.png: Added.
  • platform/wpe/fast/text/khmer-lao-font-expected.txt:
  • platform/wpe/fast/text/unicode-variation-selector-expected.png: Added.
  • platform/wpe/fast/text/unicode-variation-selector-expected.txt:
  • platform/wpe/fast/text/wbr-expected.png:
  • platform/wpe/fast/text/wbr-expected.txt:
  • platform/wpe/fast/text/wide-zero-width-space-expected.png: Added.
  • platform/wpe/fast/text/wide-zero-width-space-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-04-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-04-f-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-05-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-composite-05-f-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-conv-03-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-conv-03-f-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-displace-01-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-displace-01-f-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-01-b-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-01-b-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-02-b-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-02-b-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-03-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-03-f-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-04-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-04-f-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-05-f-manual-expected.png: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/filters-image-05-f-manual-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug30692-expected.png: Added.
  • platform/wpe/tables/mozilla/bugs/bug30692-expected.txt:
5:12 PM Changeset in webkit [289509] by Chris Dumez
  • 2 edits in trunk/Source/WTF

[WK2] Turn on Shared Workers by default
​https://bugs.webkit.org/show_bug.cgi?id=236396

Reviewed by Geoffrey Garen.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:46 PM Changeset in webkit [289508] by Chris Dumez
  • 17 edits
    1 copy in trunk/Source/WebKit

[iOS] Take adequate process assertion for the SharedWorker process
​https://bugs.webkit.org/show_bug.cgi?id=236271

Reviewed by Brent Fulgham.

Keep track of client processes that rely on a particular SharedWorker process and take the adequate
process assertion to keep the process running on iOS when necessary. This allows us to get rid of
the hack I landed previously to always take a process assertion on behalf of the shared worker
process (even if all its clients are suspended).

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::sharedWorkerServerToContextConnectionIsNoLongerNeeded):
(WebKit::NetworkConnectionToWebProcess::serviceWorkerServerToContextConnectionNoLongerNeeded):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
(WebKit::WebSWServerConnection::contextConnectionCreated):

  • NetworkProcess/SharedWorker/WebSharedWorker.cpp:

(WebKit::WebSharedWorker::WebSharedWorker):
(WebKit::WebSharedWorker::didCreateContextConnection):
(WebKit::WebSharedWorker::addSharedWorkerObject):
(WebKit::WebSharedWorker::removeSharedWorkerObject):
(WebKit::WebSharedWorker::forEachSharedWorkerObject const):
(WebKit::WebSharedWorker::contextConnection const):

  • NetworkProcess/SharedWorker/WebSharedWorker.h:

(WebKit::WebSharedWorker::sharedWorkerObjectsCount const):
(WebKit::WebSharedWorker::sharedWorkerObjects): Deleted.

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:

(WebKit::WebSharedWorkerServer::requestSharedWorker):
(WebKit::WebSharedWorkerServer::didFinishFetchingSharedWorkerScript):
(WebKit::WebSharedWorkerServer::createContextConnection):
(WebKit::WebSharedWorkerServer::removeContextConnection):
(WebKit::WebSharedWorkerServer::contextConnectionCreated):
(WebKit::WebSharedWorkerServer::sharedWorkerObjectIsGoingAway):
(WebKit::WebSharedWorkerServer::shutDownSharedWorker):
(WebKit::WebSharedWorkerServer::removeConnection):
(WebKit::WebSharedWorkerServer::postExceptionToWorkerObject):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:

(WebKit::WebSharedWorkerServerToContextConnection::launchSharedWorker):
(WebKit::WebSharedWorkerServerToContextConnection::addSharedWorkerObject):
(WebKit::WebSharedWorkerServerToContextConnection::removeSharedWorkerObject):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
  • Shared/RemoteWorkerType.h: Copied from Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorker.cpp.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::terminateUnresponsiveServiceWorkerProcesses):
(WebKit::NetworkProcessProxy::registerRemoteWorkerClientProcess):
(WebKit::NetworkProcessProxy::unregisterRemoteWorkerClientProcess):
(WebKit::NetworkProcessProxy::remoteWorkerContextConnectionNoLongerNeeded):
(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::serviceWorkerContextConnectionNoLongerNeeded): Deleted.
(WebKit::NetworkProcessProxy::registerServiceWorkerClientProcess): Deleted.
(WebKit::NetworkProcessProxy::unregisterServiceWorkerClientProcess): Deleted.
(WebKit::NetworkProcessProxy::sharedWorkerContextConnectionNoLongerNeeded): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setUserAgent):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::establishSharedWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateRemoteWorkerUserAgent):
(WebKit::WebProcessPool::terminateServiceWorkers):
(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::updateWorkerUserAgent): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createForRemoteWorkers):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):
(WebKit::WebProcessProxy::setRemoteWorkerUserAgent):
(WebKit::WebProcessProxy::updateRemoteWorkerPreferencesStore):
(WebKit::WebProcessProxy::updateRemoteWorkerProcessAssertion):
(WebKit::WebProcessProxy::registerRemoteWorkerClientProcess):
(WebKit::WebProcessProxy::unregisterRemoteWorkerClientProcess):
(WebKit::WebProcessProxy::startServiceWorkerBackgroundProcessing):
(WebKit::WebProcessProxy::endServiceWorkerBackgroundProcessing):
(WebKit::WebProcessProxy::disableRemoteWorkers):
(WebKit::WebProcessProxy::enableRemoteWorkers):
(WebKit::WebProcessProxy::createForWorkers): Deleted.
(WebKit::WebProcessProxy::setWorkerUserAgent): Deleted.
(WebKit::WebProcessProxy::updateWorkerPreferencesStore): Deleted.
(WebKit::WebProcessProxy::updateWorkerProcessAssertion): Deleted.
(WebKit::WebProcessProxy::registerServiceWorkerClientProcess): Deleted.
(WebKit::WebProcessProxy::unregisterServiceWorkerClientProcess): Deleted.
(WebKit::WebProcessProxy::disableWorkers): Deleted.
(WebKit::WebProcessProxy::enableWorkers): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::hasServiceWorkerPageProxy):

  • WebKit.xcodeproj/project.pbxproj:
3:57 PM Changeset in webkit [289507] by jonlee@apple.com
  • 7 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
Unreviewed gardening.

Add fuzzy data.

  • web-platform-tests/css/css-grid/alignment/grid-item-aspect-ratio-stretch-2.html:
  • web-platform-tests/css/motion/offset-rotate-003.html:

LayoutTests:
Unreviewed gardening

Update fuzzy data.

  • css1/basic/class_as_selector.html:
  • css3/color-filters/color-filter-color-text-decorations.html:
  • css3/color-filters/color-filter-text-decoration-shadow.html:
3:48 PM Changeset in webkit [289506] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Link commit URL to pull request
​https://bugs.webkit.org/show_bug.cgi?id=236399
<rdar://problem/88707207>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHub.commit_url): We should link to commit within pull request
(ConfigureBuild.add_pr_details): Pass pr_number to GitHub.commit_url.

  • Tools/CISupport/ews-build/steps_unittest.py:

(TestGitHub.test_pr_url_with_repository):
(TestGitHub):
(TestGitHub.test_pr_url_with_invalid_repository):
(TestGitHub.test_commit_url_with_repository):
(TestGitHub.test_commit_url_with_invalid_repository):

Canonical link: ​https://commits.webkit.org/247040@main

2:59 PM Changeset in webkit [289505] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.5

Tag Safari-614.1.1.5.

2:58 PM Changeset in webkit [289504] by Russell Epstein
  • 3 edits in branches/safari-614.1.1-branch/Source/JavaScriptCore

Cherry-pick r289024. rdar://problem/88710933

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp: (JSC::SecureARM64EHashPins::initializeAtStartup): (JSC::SecureARM64EHashPins::allocatePinForCurrentThread): (JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::pinForCurrentThread):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:58 PM Changeset in webkit [289503] by Russell Epstein
  • 6 edits in branches/safari-614.1.1-branch/Source

Cherry-pick r288970. rdar://problem/88710933

Update computation of FAST_TLS base.
​https://bugs.webkit.org/show_bug.cgi?id=235934

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::loadFromTLS32): (JSC::MacroAssemblerARM64::loadFromTLS64): (JSC::MacroAssemblerARM64::storeToTLS32): (JSC::MacroAssemblerARM64::storeToTLS64):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::keyForCurrentThread):
  • offlineasm/arm64.rb:

Source/WTF:

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:55 PM Changeset in webkit [289502] by eric.carlson@apple.com
  • 4 edits in trunk

WKWebView: WKURLSchemeHandler “request to the end of the resource” produces an invalid header
​https://bugs.webkit.org/show_bug.cgi?id=236401
rdar://88528286

Reviewed by Brent Fulgham.

Source/WebCore:

​https://webkit.org/b/203302 added support for Range requests to AVAssetResourceLoadingDataRequest,
but it incorrectly used '*' instead of for "last-byte-pos:" for a request to the end of the resource.

API test URLSchemeHandler.Ranges was updated.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
2:02 PM Changeset in webkit [289501] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.5

1:18 PM Changeset in webkit [289500] by commit-queue@webkit.org
  • 3 edits
    1 copy in trunk/Source/WTF

Unreviewed, reverting r289490.
​https://bugs.webkit.org/show_bug.cgi?id=236402

EWS gets build failures

Reverted changeset:

"Reland native Xcode build phases for "Copy WTF Headers""
​https://bugs.webkit.org/show_bug.cgi?id=235744
​https://commits.webkit.org/r289490

12:53 PM Changeset in webkit [289499] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Vertical writing mode with RTL text content has incorrect advances
​https://bugs.webkit.org/show_bug.cgi?id=236345

Reviewed by Antti Koivisto.

contentRightInInlineDirectionVisualOrder is the visual offset of the adjoining runs ignoring the writing mode (horizontal vs. vertical).
It's visual in the inline direction sense (right to left vs. left to right), but it's not transformed in the context of writing mode, i.e. width and height are not flipped.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

12:48 PM Changeset in webkit [289498] by graouts@webkit.org
  • 5 edits
    4 adds in trunk

Dialog element only animates once
​https://bugs.webkit.org/show_bug.cgi?id=236274
rdar://88635487

Reviewed by Tim Nguyen and Dean Jackson.

LayoutTests/imported/w3c:

Add two new tests that check that we correctly start, stop and resume animations on <dialog>
and ::backdrop as a <dialog> element is open, closed and open again.

  • web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
  • web-platform-tests/css/css-animations/dialog-animation.html: Added.
  • web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
  • web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
  • web-platform-tests/css/css-animations/support/testcommon.js:

(addElement):
(addDiv):

Source/WebCore:

Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.

The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set to display: none. We now use the clearCSSAnimationsForStyleable()
function (static so that it's not exposed on the Styleable struct) to correctly clear
such state both when we identify a Styleable is newly getting display: none and when
cancelDeclarativeAnimations() was called. This allows us to remove removeCSSAnimationCreatedByMarkup()
a fair bit of work to clear CSS Animation state per-animation when we only ever used that
function for _all_ animations.

The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().

Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html

imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html

  • dom/Element.cpp:

(WebCore::Element::removeFromTopLayer):

  • style/Styleable.cpp:

(WebCore::clearCSSAnimationsForStyleable):
(WebCore::Styleable::cancelDeclarativeAnimations const):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::removeCSSAnimationCreatedByMarkup): Deleted.

12:36 PM Changeset in webkit [289497] by Fujii Hironori
  • 4 edits in trunk

compositing/masks/compositing-clip-path-mask-change.html is failing for ports using TextureMapper
​https://bugs.webkit.org/show_bug.cgi?id=236323

Reviewed by Don Olmstead.

Source/WebCore:

Apple ports don't have this issue because GraphicsLayerCA support
Shape layer for clip-path.

The painting phase of the existing mask layer should be updated if
clip-path or mask are changed.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateMaskingLayer):

LayoutTests:

  • platform/gtk/TestExpectations:
12:25 PM Changeset in webkit [289496] by Ryan Haddad
  • 5 edits in trunk/Tools

Move macOS EWS to Big Sur
​https://bugs.webkit.org/show_bug.cgi?id=236035

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • CISupport/ews-build/config.json:
  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):

Canonical link: ​https://commits.webkit.org/247033@main

12:20 PM Changeset in webkit [289495] by graouts@webkit.org
  • 22 edits in trunk/Source

[model] improve sizing on macOS
​https://bugs.webkit.org/show_bug.cgi?id=236233
<rdar://problem/88569881>

Reviewed by Simon Fraser.

Source/WebCore:

We detect when the <model> layer size changes under RenderLayerBacking::updateGeometry()
and inform the associated HTMLModelElement through the new parentLayerSizeMayHaveChanged()
method that the size has changed. We then inform the backing player that sizeDidChange().

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::parentLayerSizeMayHaveChanged):
(WebCore::HTMLModelElement::platformLayerSize const):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/ModelPlayer.h:
  • Modules/model-element/dummy/DummyModelPlayer.cpp:

(WebCore::DummyModelPlayer::sizeDidChange):

  • Modules/model-element/dummy/DummyModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.h:
  • Modules/model-element/scenekit/SceneKitModelPlayer.mm:

(WebCore::SceneKitModelPlayer::sizeDidChange):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):

Source/WebCore/PAL:

Add newly-used CAFenceHandle and ASVInlinePreview SPIs.

  • pal/spi/cocoa/QuartzCoreSPI.h:
  • pal/spi/mac/SystemPreviewSPI.h:

Source/WebKit:

We override the new ModelPlayer::sizeDidChange() virtual method on ARKitInlinePreviewModelPlayerMac
to be notified when the <model> layer's has changed size. We then send the new ModelElementSizeDidChange
message to the UI process which will yield a call to ModelElementController::modelElementSizeDidChange().

In that new method, we call -[ASVInlinePreview updateFrame:completionHandler:] which provides us with a
CAFenceHandle which we copy to create a MachSendRight to send back to the Web process in the IPC callback.

Back in the Web process, we install this fence on the drawing area and finally call -[ASVInlinePreview
setFrameWithinFencedTransaction:] to complete the sizing update on both the ASVInlinePreview instances.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::modelElementSizeDidChange):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementSizeDidChange):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
  • WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:

(WebKit::ARKitInlinePreviewModelPlayer::sizeDidChange):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::load):
(WebKit::ARKitInlinePreviewModelPlayerMac::sizeDidChange):

11:48 AM Changeset in webkit [289494] by commit-queue@webkit.org
  • 4 edits in trunk

Add TAO check to PerformanceResourceTiming::fetchStart
​https://bugs.webkit.org/show_bug.cgi?id=236379

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-09
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects-expected.txt:

Source/WebCore:

This matches the spec and was recently changed in Chromium.
<​https://chromium-review.googlesource.com/c/chromium/src/+/3448777>
Covered by a newly passing WPT test.

  • page/PerformanceResourceTiming.cpp:

(WebCore::fetchStart):

11:39 AM Changeset in webkit [289493] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Register strings in CSSTokenizer created from preprocessing
​https://bugs.webkit.org/show_bug.cgi?id=236309

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-09
Reviewed by Michael Saboff.

Register strings in CSSTokenizer created from preprocessing. This will align with
what is currently done for strings with escapes in CSSTokenizer::consumeName().

  • css/parser/CSSTokenizer.cpp:

(WebCore::CSSTokenizer::preprocessString):
(WebCore::CSSTokenizer::tryCreate):
(WebCore::CSSTokenizer::CSSTokenizer):
(WebCore::preprocessString): Deleted.

  • css/parser/CSSTokenizer.h:
  • css/parser/CSSTokenizerInputStream.h:
11:35 AM Changeset in webkit [289492] by commit-queue@webkit.org
  • 8 edits in trunk/Source

DisplayListRecorder implementations are not able to obtain extra information out of source ImageBuffers
​https://bugs.webkit.org/show_bug.cgi?id=236296

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-09
Reviewed by Wenson Hsieh.

Source/WebCore:

Pass ImageBuffer& to various recording commands instead of the resource identifier.
This way implementations of DisplayListRecorder can obtain additional information
about the ImageBuffer, such as dependency information. This additional information is
not neccessarily needed for in-process display lists.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::clipToImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::recordClipToImageBuffer):
(WebCore::DisplayList::RecorderImpl::recordDrawFilteredImageBuffer):
(WebCore::DisplayList::RecorderImpl::recordDrawImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

Source/WebKit:

RecorderImpl now passes ImageBuffers to the DisplayListRecorder calls.
Use the ImageBuffer& to get the resource identifier.
In future commits these places will obtain the read references, which
record the depenedency information needed for RemoteImageBuffers
created in multiple threads.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordClipToImageBuffer):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawFilteredImageBuffer):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawImageBuffer):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
11:31 AM Changeset in webkit [289491] by fpizlo@apple.com
  • 1 edit
    1 add in trunk/Source/bmalloc

[libpas] add documentation
​https://bugs.webkit.org/show_bug.cgi?id=236385

Rubber stamped by Mark Lam.

  • libpas/Documentation.md: Added.
10:56 AM Changeset in webkit [289490] by Elliott Williams
  • 3 edits
    1 delete in trunk/Source/WTF

Reland native Xcode build phases for "Copy WTF Headers"
​https://bugs.webkit.org/show_bug.cgi?id=235744

Reviewed by Alexey Proskuryakov.

Changes since revert of r289256:

ICU headers, which are only needed for non-internal builds, are tracked in WTF.xcodeproj and
copied to /usr/local/include/unicode when building with the public SDK.

  • Configurations/WTF.xcconfig: Skip coping ICU headers when USE_INTERNAL_SDK=YES.
  • WTF.xcodeproj/project.pbxproj: Add ICU header directory and copy files phase.
10:51 AM Changeset in webkit [289489] by Chris Dumez
  • 6 edits in trunk

Worker scripts should always be decoded as UTF-8
​https://bugs.webkit.org/show_bug.cgi?id=236319

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/workers/semantics/encodings/001-expected.txt:
  • web-platform-tests/workers/semantics/encodings/002-expected.txt:

Source/WebCore:

Worker scripts should always be decoded as UTF-8:

No new tests, rebaselined existing tests.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didReceiveData):

10:50 AM Changeset in webkit [289488] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.31.2

Tag Safari-613.1.16.31.2.

10:50 AM Changeset in webkit [289487] by Russell Epstein
  • 6 edits in branches/safari-613.1.16.31-branch/Source

Cherry-pick r288970. rdar://problem/88459807

Update computation of FAST_TLS base.
​https://bugs.webkit.org/show_bug.cgi?id=235934

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::loadFromTLS32): (JSC::MacroAssemblerARM64::loadFromTLS64): (JSC::MacroAssemblerARM64::storeToTLS32): (JSC::MacroAssemblerARM64::storeToTLS64):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::keyForCurrentThread):
  • offlineasm/arm64.rb:

Source/WTF:

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:48 AM Changeset in webkit [289486] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.31-branch/Source

Versioning.

WebKit-7613.1.16.31.2

10:45 AM Changeset in webkit [289485] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Move Safe Browsing knowledge into SafariSafeBrowsing framework
​https://bugs.webkit.org/show_bug.cgi?id=231692

Patch by Eliot Hsu <​eliot_hsu@apple.com> on 2022-02-09
Reviewed by Alex Christensen.

Following up on an old FIXME, move Safari Safe Browsing-specific
knowledge out of WebKit and into the SafariSafeBrowsing framework.
This includes things like the Learn More URL, the Report an Error URL,
etc.

Source/WebKit:

  • Platform/spi/Cocoa/SafeBrowsingSPI.h:
  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::malwareDetailsBase):
(WebKit::learnMoreURL):
(WebKit::reportAnErrorBase):
(WebKit::localizedProvider):
Rely on new SafariSafeBrowsing calls to provide
URL/provider information about Safe Browsing,
when available

Source/WTF:

  • wtf/PlatformHave.h:
10:39 AM Changeset in webkit [289484] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

Timeout due to turning WebGL on by default on bots. Will be addressed in b234536.

  • platform/ios-wk2/TestExpectations:
10:30 AM Changeset in webkit [289483] by Chris Dumez
  • 29 edits in trunk

self.location.href is incorrect in shared workers in case of redirects
​https://bugs.webkit.org/show_bug.cgi?id=236340

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt:

Source/WebCore:

self.location.href is incorrect in shared workers in case of redirects. It should be
the URL of the last request, not the first one.

No new tests, rebaselined existing tests.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):

  • loader/ThreadableLoaderClient.h:

(WebCore::ThreadableLoaderClient::redirectReceived):

  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::redirectReceived):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::redirectReceived):

  • loader/WorkerThreadableLoader.h:
  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerFetchResult.h:

(WebCore::WorkerFetchResult::isolatedCopy const):
(WebCore::workerFetchError):
(WebCore::WorkerFetchResult::encode const):
(WebCore::WorkerFetchResult::decode):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::redirectReceived):
(WebCore::WorkerScriptLoader::fetchResult const):

  • workers/WorkerScriptLoader.h:

(WebCore::WorkerScriptLoader::script const):
(WebCore::WorkerScriptLoader::lastRequestURL const):
(WebCore::WorkerScriptLoader::script): Deleted.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::notifyFinished):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/shared/SharedWorkerScriptLoader.cpp:

(WebCore::SharedWorkerScriptLoader::notifyFinished):

  • workers/shared/context/SharedWorkerThreadProxy.cpp:

(WebCore::generateWorkerParameters):
(WebCore::SharedWorkerThreadProxy::SharedWorkerThreadProxy):

  • workers/shared/context/SharedWorkerThreadProxy.h:

Source/WebKit:

self.location.href is incorrect in shared workers in case of redirects. It should be the URL of
the last request, not the first one.

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::didFinishLoading):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:

(WebKit::WebSharedWorkerServerToContextConnection::launchSharedWorker):

  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:

(WebKit::WebSharedWorkerContextManagerConnection::launchSharedWorker):

  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.h:
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.messages.in:
10:17 AM Changeset in webkit [289482] by J Pascoe
  • 5 edits in trunk

[WebAuthn] Specify LocalAuthenticatorAccessGroup when importing credentials
​https://bugs.webkit.org/show_bug.cgi?id=236311
rdar://88394179

Reviewed by Brent Fulgham.

Source/WebKit:

Tested on device and added check for accessGroup in API test.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel importLocalAuthenticatorCredential:error:]):
(+[_WKWebAuthenticationPanel importLocalAuthenticatorWithAccessGroup:credential:error:]):

Tools:

Added check for accessGroup to API test.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::WebCore::addKeyToKeychain):
(TestWebKitAPI::TEST):

10:16 AM Changeset in webkit [289481] by Russell Epstein
  • 4 edits
    1 add in branches/safari-613.1.16.1-branch

Cherry-pick r289450. rdar://problem/88483574

[JSC] YarrJIT inlining should be disabled when we have DotStarEnclosure
​https://bugs.webkit.org/show_bug.cgi?id=236332
rdar://88483574

Reviewed by Michael Saboff.

JSTests:

  • stress/yarr-inlining-dot-star-enclosure.js: Added. (test):

Source/JavaScriptCore:

YarrJITRegisters::initialStart can be used when m_pattern.m_saveInitialStartValue is true while
it is not defined in YarrJIT inlining. As a result, we emit broken code using InvalidGPRReg.
This patch makes canInline false when m_pattern.m_saveInitialStartValue is true.

  • yarr/YarrJIT.cpp:
  • yarr/YarrJITRegisters.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289450 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:12 AM Changeset in webkit [289480] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] MediaPlayerPrivateGStreamer mishandles failure to create WebKitTextCombiner
​https://bugs.webkit.org/show_bug.cgi?id=233230
<rdar://problem/86863068>

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-09
Reviewed by Xabier Rodriguez-Calvar.

Fallback to fakesink in case fakevideosink is not available. Also no longer RELEASE_ASSERT
in makeGStreamerElement and makeGStreamerBin. We should gracefully handle call sites when
these functions return nullptr.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::makeGStreamerElement):
(WebCore::makeGStreamerBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):

10:05 AM Changeset in webkit [289479] by Chris Dumez
  • 10 edits in trunk

Exceptions are not properly reported when initializing a worker as a module
​https://bugs.webkit.org/show_bug.cgi?id=236334

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/message-module-DOMException-expected.txt:

Source/WebCore:

No new tests, rebaselined existing tests.

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::linkAndEvaluateModule):
linkAndEvaluateModule() was failing to report the exception, unlike
evaluate() (which is used for classic workers).

9:43 AM Changeset in webkit [289478] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.5

9:14 AM Changeset in webkit [289477] by Chris Dumez
  • 7 edits in trunk

Stop obfuscating exceptions thrown by scripts in data URLs
​https://bugs.webkit.org/show_bug.cgi?id=236329

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing or whose output looks different.

  • web-platform-tests/workers/dedicated-worker-in-data-url-context.window-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006-expected.txt:

Source/WebCore:

Stop obfuscating exceptions thrown by scripts in data URLs. This is causing some WPT tests to fail.

No new tests, rebaselined existing tests.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canIncludeErrorDetails):

9:06 AM Changeset in webkit [289476] by ysuzuki@apple.com
  • 11 edits in trunk/Source/WebCore

AudioBuffer should take a lock while visiting m_channelWrappers
​https://bugs.webkit.org/show_bug.cgi?id=236279

Reviewed by Keith Miller.

This patch fixes AudioBuffer's m_channelWrappers concurrency bug and related issues.

  1. This patch removes problematic (and almost always wrong) move operator of JSValueInWrappedObject. To do that, we fixed AudioBuffer's concurrency issue where we access m_channelWrappers while it can be cleared concurrently in AudioBuffer::releaseMemory.
  2. MessageEvent's m_data access is broken with concurrent GC thread. We must take a lock. And we must not use JSValueInWrappedObject in std::variant if it can be changed after constructor invocation.
  3. Use JSValueInWrappedObject::clear instead of move with empty value.
  4. File ​https://bugs.webkit.org/show_bug.cgi?id=236353. AbortSignal, MessageEvent, and CustomEvent miss write-barrier, which is semantically wrong.
  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::visitChannelWrappers):

  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::buildJSArguments):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data const):
(WebCore::JSMessageEvent::visitAdditionalChildren):

  • bindings/js/JSValueInWrappedObject.h:
  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::signalAbort):

  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::initCustomEvent):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):
(WebCore::m_jsData):
(WebCore::MessageEvent::initMessageEvent):
(WebCore::MessageEvent::memoryCost const):
(WebCore::m_ports): Deleted.

  • dom/MessageEvent.h:
  • page/History.cpp:

(WebCore::History::stateObjectAdded):

8:56 AM Changeset in webkit [289475] by Angelos Oikonomopoulos
  • 3 edits in trunk/JSTests

Skip failing shadow realms tests on MIPS
​https://bugs.webkit.org/show_bug.cgi?id=236361

Unreviewed gardening.

  • stress/shadow-realm-evaluate.js:
  • stress/shadow-realm-import-value.js:
8:55 AM Changeset in webkit [289474] by sihui_liu@apple.com
  • 57 edits
    1 copy
    9 adds in trunk

Manage IndexedDB storage by origin
​https://bugs.webkit.org/show_bug.cgi?id=234925
<rdar://problem/87555014>

Reviewed by Chris Dumez.

Source/WebCore:

Both WebKit and WebKitLegacy used IDBServer to manage UniqueIDBDatabases, and UniqueIDBDatabase pointed to
IDBServer. Now that WebKit uses WebKit::IDBStorageManager to manage UniqueIDBDatabases. We untie the
knot between IDBServer and UniqueIDBDatabase by adding a new abstract class UniqueIDBDatabaseManager and make
UniqueIDBDatabase point to UniqueIDBDatabaseManager.

Also, as quota check is no longer async according to changes in WebKit, we need to update operations in
UniqueIDBDatabase to adopt the change.

Covered by existing tests.

  • Headers.cmake:
  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::registerConnection):
(WebCore::IDBServer::IDBServer::unregisterConnection):
(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::upgradedDatabaseDirectory):
(WebCore::IDBServer::IDBServer::registerDatabaseConnection): Deleted.
(WebCore::IDBServer::IDBServer::unregisterDatabaseConnection): Deleted.
(WebCore::IDBServer::IDBServer::closeAndTakeUniqueIDBDatabase): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::MemoryIDBBackingStore):
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::create):
(WebCore::IDBServer::MemoryObjectStore::MemoryObjectStore):

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::encodeDatabaseName):
(WebCore::IDBServer::SQLiteIDBBackingStore::decodeDatabaseName):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::filenameForDatabaseName const): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::manager):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperationAfterSpaceCheck):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAddAfterSpaceCheck):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::hasDataInMemory const):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

(WebCore::IDBServer::UniqueIDBDatabase::server): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::manager):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::server): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabaseManager.h: Added.

(WebCore::IDBServer::UniqueIDBDatabaseManager::~UniqueIDBDatabaseManager):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::operator bool const):

  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::IDBResourceIdentifier::operator!= const):

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

In network process, IndexedDB data is managed by WebKit::WebIDBServer. Each session owns a WebIDBServer
(IDBServer) and each IDBServer owns one or more UniqueIDBDatabases (resprenting one actual database that
IDBDatabase connects to, can be identified by {session, origin, name}). Now that we have NetworkStorageManager,
which manages session storage by origin, we can merge WebIDBServer with NetworkStorageManager, since IndexedDB
storage is not shared across origins.

The old structure is:
NetworkSession - WebIDBServer - IDBServer - UniqueIDBDatabases
The new structure is:
NetworkSession - NetworkStorageManager - OriginStorageManager - IDBStorageManager - UniqueIDBDatabase

To complete this transition, we need to make a few changes:

  1. Web process now sends IndexedDB related messages to NetworkStorageManager instead of WebIDBServer.
  2. Some messages are sent to operate on UniqueIDBDatabaseConnection or UniqueIDBDatabaseTransaction, and they

use identifiers to specify the target. Therefore, NetworkStorageManagers needs to know the mapping between
identifiers and target objects. A new clas IDBStorageRegistry is added record this mapping. Each
NetworkStorageManager owns a IDBStorageRegistry and it passes IDBStorageRegistry to IDBStorageManager,
IDBStorageManager will register objects to IDBStorageRegistry and NetworkStorageManager can do search via
IDBStorageRegistry.

  1. Quota check for IndexedDB operations becomes async by adding new QuotaManager class, which is similar to

WebCore::StorageQuotaManager but provides async interfaces.
We used to block the IDBServer thread when it is waiting for quota check result from UI process, this is fine
because IDBServer runs on its own thread. Now that IDBStorageManager runs on the same thread as the other
storage types, we cannot block the thread on quota check.

  1. Rename WebIDBConnectionToClient to IDBStorageConnectionToClient to reflect the change on the structure. Also,

IDBStorageConnectionToClient does not keep reference to the IPC::Connection now, it only records
IPC::Connection::UniqueID.

  1. IndexedDB data may be put in different version dirctories. We used to migrate database to new version

diretory when the database is accessed. As IDBStorageManager now manages IndexedDB data of one origin, it's
simpler if it only keeps track of one directory. Therefore, we now migrate all databases of one origin
when the origin is accessed (see IDBStorageManager::idbStorageOriginDirectory).

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::updateQuotaBasedOnSpaceUsageForTesting):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFilesForIndexedDB):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::resetQuota):
(WebKit::NetworkProcess::didIncreaseQuota):
(WebKit::NetworkProcess::renameOriginInWebsiteData):
(WebKit::NetworkProcess::storageQuotaManager):
(WebKit::NetworkProcess::connectionToWebProcessClosed):
(WebKit::NetworkProcess::suspendIDBServers): Deleted.

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::shouldSuspendIDBServers const): Deleted.

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::invalidateAndCancel):
(WebKit::NetworkSession::addStorageManagerSession):
(WebKit::NetworkSession::ensureWebIDBServer): Deleted.
(WebKit::NetworkSession::closeIDBServer): Deleted.
(WebKit::NetworkSession::addIndexedDatabaseSession): Deleted.

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::webIDBServer): Deleted.
(WebKit::NetworkSession::hasIDBDatabasePath const): Deleted.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::storagePath):
(WebKit::CacheStorage::Engine::diskUsage):
(WebKit::CacheStorage::Engine::requestSpace):

  • NetworkProcess/cache/CacheStorageEngine.h:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::requestSpace):

  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::setIsHoldingLockedFiles):

  • NetworkProcess/storage/IDBStorageConnectionToClient.cpp: Added.

(WebKit::IDBStorageConnectionToClient::IDBStorageConnectionToClient):
(WebKit::IDBStorageConnectionToClient::~IDBStorageConnectionToClient):
(WebKit::IDBStorageConnectionToClient::connectionToClient):
(WebKit::IDBStorageConnectionToClient::didGetResult):
(WebKit::IDBStorageConnectionToClient::didDeleteDatabase):
(WebKit::IDBStorageConnectionToClient::didOpenDatabase):
(WebKit::IDBStorageConnectionToClient::didStartTransaction):
(WebKit::IDBStorageConnectionToClient::didAbortTransaction):
(WebKit::IDBStorageConnectionToClient::didCommitTransaction):
(WebKit::IDBStorageConnectionToClient::didCreateObjectStore):
(WebKit::IDBStorageConnectionToClient::didDeleteObjectStore):
(WebKit::IDBStorageConnectionToClient::didRenameObjectStore):
(WebKit::IDBStorageConnectionToClient::didClearObjectStore):
(WebKit::IDBStorageConnectionToClient::didCreateIndex):
(WebKit::IDBStorageConnectionToClient::didDeleteIndex):
(WebKit::IDBStorageConnectionToClient::didRenameIndex):
(WebKit::IDBStorageConnectionToClient::didPutOrAdd):
(WebKit::IDBStorageConnectionToClient::didGetRecord):
(WebKit::IDBStorageConnectionToClient::didGetAllRecords):
(WebKit::IDBStorageConnectionToClient::didGetCount):
(WebKit::IDBStorageConnectionToClient::didDeleteRecord):
(WebKit::IDBStorageConnectionToClient::didOpenCursor):
(WebKit::IDBStorageConnectionToClient::didIterateCursor):
(WebKit::IDBStorageConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebKit::IDBStorageConnectionToClient::fireVersionChangeEvent):
(WebKit::IDBStorageConnectionToClient::didCloseFromServer):
(WebKit::IDBStorageConnectionToClient::notifyOpenDBRequestBlocked):

  • NetworkProcess/storage/IDBStorageConnectionToClient.h: Added.
  • NetworkProcess/storage/IDBStorageManager.cpp: Added.

(WebKit::migrateOriginData):
(WebKit::IDBStorageManager::idbStorageOriginDirectory):
(WebKit::IDBStorageManager::idbStorageSize):
(WebKit::getOriginsForVersion):
(WebKit::IDBStorageManager::originsOfIDBStorageData):
(WebKit::IDBStorageManager::IDBStorageManager):
(WebKit::IDBStorageManager::isActive const):
(WebKit::IDBStorageManager::hasDataInMemory const):
(WebKit::IDBStorageManager::closeDatabasesForDeletion):
(WebKit::IDBStorageManager::stopDatabaseActivitiesForSuspend):
(WebKit::IDBStorageManager::getOrCreateUniqueIDBDatabase):
(WebKit::IDBStorageManager::openDatabase):
(WebKit::IDBStorageManager::deleteDatabase):
(WebKit::IDBStorageManager::getAllDatabaseNamesAndVersions):
(WebKit::IDBStorageManager::openDBRequestCancelled):
(WebKit::IDBStorageManager::registerConnection):
(WebKit::IDBStorageManager::unregisterConnection):
(WebKit::IDBStorageManager::registerTransaction):
(WebKit::IDBStorageManager::unregisterTransaction):
(WebKit::IDBStorageManager::createBackingStore):
(WebKit::IDBStorageManager::requestSpace):

  • NetworkProcess/storage/IDBStorageManager.h: Added.
  • NetworkProcess/storage/IDBStorageRegistry.cpp: Added.

(WebKit::IDBStorageRegistry::ensureConnectionToClient):
(WebKit::IDBStorageRegistry::removeConnectionToClient):
(WebKit::IDBStorageRegistry::registerConnection):
(WebKit::IDBStorageRegistry::unregisterConnection):
(WebKit::IDBStorageRegistry::registerTransaction):
(WebKit::IDBStorageRegistry::unregisterTransaction):
(WebKit::IDBStorageRegistry::connection):
(WebKit::IDBStorageRegistry::transaction):

  • NetworkProcess/storage/IDBStorageRegistry.h: Added.
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::create):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::canHandleTypes):
(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):
(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::didIncreaseQuota):
(WebKit::NetworkStorageManager::getAllOrigins):
(WebKit::NetworkStorageManager::moveData):
(WebKit::NetworkStorageManager::suspend):
(WebKit::NetworkStorageManager::registerTemporaryBlobFilePaths):
(WebKit::NetworkStorageManager::requestSpace):
(WebKit::NetworkStorageManager::resetQuotaForTesting):
(WebKit::NetworkStorageManager::resetQuotaUpdatedBasedOnUsageForTesting):
(WebKit::NetworkStorageManager::openDatabase):
(WebKit::NetworkStorageManager::openDBRequestCancelled):
(WebKit::NetworkStorageManager::deleteDatabase):
(WebKit::NetworkStorageManager::establishTransaction):
(WebKit::NetworkStorageManager::databaseConnectionPendingClose):
(WebKit::NetworkStorageManager::databaseConnectionClosed):
(WebKit::NetworkStorageManager::abortOpenAndUpgradeNeeded):
(WebKit::NetworkStorageManager::didFireVersionChangeEvent):
(WebKit::NetworkStorageManager::abortTransaction):
(WebKit::NetworkStorageManager::commitTransaction):
(WebKit::NetworkStorageManager::didFinishHandlingVersionChangeTransaction):
(WebKit::NetworkStorageManager::createObjectStore):
(WebKit::NetworkStorageManager::deleteObjectStore):
(WebKit::NetworkStorageManager::renameObjectStore):
(WebKit::NetworkStorageManager::clearObjectStore):
(WebKit::NetworkStorageManager::createIndex):
(WebKit::NetworkStorageManager::deleteIndex):
(WebKit::NetworkStorageManager::renameIndex):
(WebKit::NetworkStorageManager::putOrAdd):
(WebKit::NetworkStorageManager::getRecord):
(WebKit::NetworkStorageManager::getAllRecords):
(WebKit::NetworkStorageManager::getCount):
(WebKit::NetworkStorageManager::deleteRecord):
(WebKit::NetworkStorageManager::openCursor):
(WebKit::NetworkStorageManager::iterateCursor):
(WebKit::NetworkStorageManager::getAllDatabaseNamesAndVersions):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::StorageBucket):
(WebKit::OriginStorageManager::StorageBucket::toWebsiteDataType):
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier):
(WebKit::OriginStorageManager::StorageBucket::idbStorageManager):
(WebKit::OriginStorageManager::StorageBucket::existingIDBStorageManager):
(WebKit::OriginStorageManager::StorageBucket::isActive const):
(WebKit::OriginStorageManager::StorageBucket::isEmpty const):
(WebKit::OriginStorageManager::StorageBucket::deleteData):
(WebKit::OriginStorageManager::StorageBucket::moveData):
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromMemory):
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromDisk):
(WebKit::OriginStorageManager::StorageBucket::deleteIDBStorageData):
(WebKit::createQuotaManager):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::defaultBucket):
(WebKit::OriginStorageManager::quotaManager):
(WebKit::OriginStorageManager::idbStorageManager):
(WebKit::OriginStorageManager::existingIDBStorageManager):
(WebKit::OriginStorageManager::moveData):

  • NetworkProcess/storage/OriginStorageManager.h:
  • NetworkProcess/storage/QuotaManager.cpp: Added.

(WebKit::QuotaManager::create):
(WebKit::QuotaManager::QuotaManager):
(WebKit::QuotaManager::requestSpace):
(WebKit::QuotaManager::handleRequests):
(WebKit::QuotaManager::grantWithCurrentQuota):
(WebKit::QuotaManager::grantFastPath):
(WebKit::QuotaManager::didIncreaseQuota):
(WebKit::QuotaManager::resetQuotaUpdatedBasedOnUsageForTesting):
(WebKit::QuotaManager::resetQuotaForTesting):

  • NetworkProcess/storage/QuotaManager.h: Added.
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Shared/WebsiteData/QuotaIncreaseRequestIdentifier.h: Added.
  • Shared/WebsiteDataStoreParameters.h:
  • Sources.txt:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::increaseQuota):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::perThirdPartyOriginStorageQuota const):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::defaultPerOriginQuota):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::renameObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::renameIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getAllRecords):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionPendingClose):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNamesAndVersions):

Source/WebKitLegacy:

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::quotaManager):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(runTest):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:

(TEST):

8:34 AM Changeset in webkit [289473] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] REGRESSION(r288994): Setting multiple values in LDFLAGS causes incorrect linker detection
​https://bugs.webkit.org/show_bug.cgi?id=236365

Reviewed by Martin Robinson.

  • Source/cmake/OptionsCommon.cmake: Use separate_arguments() to turn plain command strings

into lists of strings, which can then be passed down to execute_process() as it knows how
to handle lists properly.

8:15 AM Changeset in webkit [289472] by Chris Dumez
  • 23 edits
    3 copies
    14 adds
    6 deletes in trunk/LayoutTests

Resync web-platform-tests/html/dom from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236252

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/dom from upstream 893e71aa9c0a97d259ff009f.

  • web-platform-tests/html/dom/*: Updated.
  • web-platform-tests/html/resources/common.js:
  • web-platform-tests/interfaces/html.idl:

LayoutTests:

  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
8:13 AM Changeset in webkit [289471] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC][IFC] Transform root inline box's logical rect based on the writing mode
​https://bugs.webkit.org/show_bug.cgi?id=236341

Reviewed by Antti Koivisto.

Make sure root inline box has the correct _visual_ coordinates in vertical mode.
(also let's rename DisplayLine::contentLeft to contentLogicalOffset. The emphasis is on _logical_. It helps to catch incorrect use (even this diff has a couple)).

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipRootInlineBoxRectToVisualForWritingMode const):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
  • layout/formattingContexts/inline/display/InlineDisplayLine.h:

(WebCore::InlineDisplay::Line::contentLogicalOffset const):
(WebCore::InlineDisplay::Line::Line):
(WebCore::InlineDisplay::Line::contentLeft const): Deleted.

  • layout/integration/InlineIteratorBoxModernPath.h:

(WebCore::InlineIterator::BoxModernPath::createTextRun const):

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalLeft const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentLogicalOffset const):
(WebCore::LayoutIntegration::Line::contentLeft const): Deleted.

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

7:58 AM Changeset in webkit [289470] by Martin Robinson
  • 2 edits
    1 add in trunk/Tools

[Flatpak SDK] Add a wrapper for clangd
​https://bugs.webkit.org/show_bug.cgi?id=236240

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py: Refactor this file so that the build constants can be

reused in the new script.
(convert_webkit_source_path_to_sandbox_path):
(convert_sandbox_path_to_webkit_source_path):
(get_build_dir):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.is_build_jsc):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.main):
(WebkitFlatpak.check_toolchains_generated):
(WebkitFlatpak.pack_toolchain):
(WebkitFlatpak.host_path_to_sandbox_path): Deleted.
(WebkitFlatpak.sandbox_path_to_host_path): Deleted.

  • flatpak/webkit-clangd: Added.
7:13 AM Changeset in webkit [289469] by Lauro Moura
  • 14 edits in trunk/Source

Non-unified build fixes after r289247
​https://bugs.webkit.org/show_bug.cgi?id=236343

Reviewed by Fujii Hironori.

Source/JavaScriptCore:

  • runtime/JSRemoteFunction.h: Drive-by fix, add missing include.

Source/WebCore:

  • accessibility/AccessibilityNodeObject.cpp: Drive-by fix. Missing

include.

  • layout/formattingContexts/inline/display/InlineDisplayLine.h:

Drive-by fix. Missing include.

  • workers/shared/SharedWorkerObjectConnection.cpp:

SharedWorkerScriptLoader only forward-declares WorkerScriptLoader.

  • workers/shared/SharedWorkerScriptLoader.h: Missing CompletionHandler

include.

  • workers/shared/context/SharedWorkerContextManager.cpp:

SharedWorkerThreadProxy only forward-declares SharedWorkerThread

Source/WebKit:

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp: Moved

SharedWorkerKey include to .h file, as it declares a HashMap of it and
it has custom HashTraits that must be visible.

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.h: Ditto.
  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp: Add

missing includes.

  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h: Add

missing includes and forward declarations.

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:

Add missing include with proper coder/decoder support.

6:56 AM Changeset in webkit [289468] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

Allow hanging run-javascriptcore-tests to print backtrace
​https://bugs.webkit.org/show_bug.cgi?id=236355

Reviewed by Aakash Jain.

This is to debug 'command timed out: 3600 seconds without output'
issues on build.webkit.org, same as we do for EWS.

  • CISupport/build-webkit-org/steps.py:

(RunJavaScriptCoreTests.init):

5:49 AM Changeset in webkit [289467] by Carlos Garcia Campos
  • 8 edits
    3 adds in trunk

WebDriver: add a javascript atom to get the visible text
​https://bugs.webkit.org/show_bug.cgi?id=174617
<rdar://problem/32307461>

Reviewed by Adrian Perez de Castro.

Source/WebDriver:

Generate the JavaScript atoms using the new command and use the new atom to get element text.

  • CMakeLists.txt:
  • Session.cpp:

(WebDriver::Session::getElementText):

Source/WebKit:

Add a new JavaScript atom to get the visible text according to the spec. The new atom uses code from other atoms
like ElementDisplayed and it's also used now by FindNodes one. The atoms are now autogenerated using a script to
include the duplicated code from a common source utils.js.

  • Scripts/generate-automation-atom.py: Added.

(collect_utils):
(parse_utils):
(append_functions):
(main):

  • UIProcess/Automation/atoms/ElementDisplayed.js:

(isShown.nodeIsElement): Deleted.
(isShown.parentElementForElement): Deleted.
(isShown.enclosingNodeOrSelfMatchingPredicate): Deleted.
(isShown.enclosingElementOrSelfMatchingPredicate): Deleted.
(isShown.cascadedStylePropertyForElement): Deleted.
(isShown.elementSubtreeHasNonZeroDimensions): Deleted.
(isShown): Deleted.
(isShown.isElementSubtreeHiddenByOverflow): Deleted.

  • UIProcess/Automation/atoms/ElementText.js: Added.
  • UIProcess/Automation/atoms/FindNodes.js:

(tryToFindNode):

  • UIProcess/Automation/atoms/utils.js: Added.

(utils.nodeIsElement):
(utils.enclosingNodeOrSelfMatchingPredicate):
(utils.parentElementForElement):
(utils.cascadedStylePropertyForElement):
(elementSubtreeHasNonZeroDimensions):
(isElementSubtreeHiddenByOverflow):
(utils.isShown):
(appendLines.currentLine):
(appendLines):
(utils.getText):

WebDriverTests:

Remove expectations of tests that are now passing.

4:42 AM Changeset in webkit [289466] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Implement inline-size containment
​https://bugs.webkit.org/show_bug.cgi?id=236354

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:

Source/WebCore:

"Giving an element inline-size containment applies size containment to the inline-axis sizing
of its principal box. This means the inline-axis intrinsic sizes of the principal box are
determined as if the element had no content."

​https://drafts.csswg.org/css-contain-3/#containment-inline-size

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

Compute inline axis preferred width as if the block had no content.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::effectiveContainment const):

  • rendering/style/RenderStyleConstants.h:

For completeness, add an enum value for inline-size containment. It can only be set by 'container'
property for now.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::updateQueryContainerState):

Ignore block axis for inline-size containers.

2:37 AM Changeset in webkit [289465] by Ziran Sun
  • 24 edits in trunk

[Forms] Improving applyStep() to be in line with specs
​https://bugs.webkit.org/show_bug.cgi?id=236134

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/range-expected.txt:

Source/WebCore:

This is to improve applyStep() func to follow specs at
​https://html.spec.whatwg.org/multipage/input.html#dom-input-stepup

Since Chromium implementation follows the specs steps, this patch imports the
Chromium implmentation.

This is a further patch after ​https://bugs.webkit.org/show_bug.cgi?id=235509. It has corrected
some changes on test files in fast/form directory in the previous patch submitted for Bug

  1. With this CL a few more sub-tests are now passing.
  • html/InputType.cpp:

(WebCore::InputType::applyStep):

  • html/StepRange.cpp:

(WebCore::StepRange::stepSnappedMaximum const):

  • html/StepRange.h:

LayoutTests:

Update test expectations.

  • fast/forms/date/date-stepup-stepdown-expected.txt:
  • fast/forms/date/date-stepup-stepdown.html:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown.html:
  • fast/forms/month/month-stepup-stepdown-expected.txt:
  • fast/forms/month/month-stepup-stepdown.html:
  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown.html:
  • fast/forms/range/range-stepup-stepdown-expected.txt:
  • fast/forms/range/range-stepup-stepdown.html:
  • fast/forms/time/time-stepup-stepdown-expected.txt:
  • fast/forms/time/time-stepup-stepdown.html:
  • fast/forms/week/week-stepup-stepdown-expected.txt:
  • fast/forms/week/week-stepup-stepdown.html:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
1:52 AM Changeset in webkit [289464] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Garden several WPT tests that are now passing

Unreviewed test gardening.

  • platform/glib/TestExpectations:
1:30 AM Changeset in webkit [289463] by timothy_horton@apple.com
  • 14 edits in trunk/Source/WebKit

WKHoverPlatter should scale up the platter content to make it easier to see
​https://bugs.webkit.org/show_bug.cgi?id=236289

Reviewed by Wenson Hsieh.

  • Shared/NativeWebMouseEvent.h:
  • Shared/ios/NativeWebMouseEventIOS.mm:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
Add a NativeWebMouseEvent constructor that takes most properties from
another event, but allows overriding the positions and deltas.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::interactableRegionsInRootViewCoordinates):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::interactableRegionsInRootViewCoordinates):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Add a method to count the number of clickable elements in a given rectangle.
This is just a first attempt at the heuristic; this will get more complex in the future.

  • UIProcess/ios/WKContentViewInteraction.h:

Add a selection assistant suppression reason for WKHoverPlatter.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _createAndConfigureHighlightLongPressGestureRecognizer]):
Factor out highlight-long-press gesture creation like long-press. Bail if the platter is enabled.

(-[WKContentView setUpInteraction]):
Disable the selection assistant if WKHoverPlatter wants to use long press.

(-[WKContentView cleanUpInteraction]):
(-[WKContentView _locationForGesture:]):
(-[WKContentView _startPointForGesture:]):
Add funnels for extracting the primary location or starting location from
a gesture, allowing WKHoverPlatter to mutate it if it is currently engaged.

(-[WKContentView _highlightLongPressRecognized:]):
(-[WKContentView _doubleTapRecognizedForDoubleClick:]):
(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):
(-[WKContentView _doubleTapRecognized:]):
(-[WKContentView _nonBlockingDoubleTapRecognized:]):
(-[WKContentView _twoFingerDoubleTapRecognized:]):
Adopt _locationForGesture/_startPointForGesture.

(-[WKContentView _longPressRecognized:]):
Adopt _locationForGesture/_startPointForGesture.
Redirect a recognized long press to WKHoverPlatter if it wants to use long press.

(-[WKContentView _shouldUseContextMenus]):
Disable context menus if WKHoverPlatter wants to use long press.

(-[WKContentView setUpDragAndDropInteractions]):
Disable drag and drop if WKHoverPlatter wants to use long press.

(-[WKContentView mouseGestureRecognizerChanged:]):
Allow WKHoverPlatter to mutate the location of mouse events if it is currently engaged.

(-[WKContentView numberOfLinksForHoverPlatter:inRect:completionHandler:]):

  • UIProcess/ios/WKHoverPlatter.h:
  • UIProcess/ios/WKHoverPlatter.mm:

(-[WKHoverPlatter initWithView:delegate:]):
(-[WKHoverPlatter didReceiveMouseEvent:]):
(-[WKHoverPlatter didLongPressAtPoint:]):
(-[WKHoverPlatter platterBoundingRect]):
(-[WKHoverPlatter linkSearchRect]):
(-[WKHoverPlatter update]):
(-[WKHoverPlatter updateDebugIndicator]):
(-[WKHoverPlatter dismissPlatterWithAnimation:]):
(-[WKHoverPlatter didFinishDismissalAnimation:]):
(-[WKHoverPlatter clearLayers]):
(-[WKHoverPlatter adjustedPointForPoint:]):
(-[WKHoverPlatter adjustedEventForEvent:]):
(setAdditionalPlatterLayerProperties): Deleted.
(addAdditionalIncomingAnimations): Deleted.
(addAdditionalDismissalAnimations): Deleted.
(-[WKHoverPlatter setHoverPoint:]): Deleted.
(-[WKHoverPlatter requestPositionInformationForCurrentHoverPoint]): Deleted.
(-[WKHoverPlatter didReceivePositionInformation:]): Deleted.
(-[WKHoverPlatter didFinishAnimationForShadow:]): Deleted.

  • UIProcess/ios/WKHoverPlatterParameters.h:
  • UIProcess/ios/WKHoverPlatterParameters.mm:

(-[WKHoverPlatterParameters setDefaultValues]):
(-[WKHoverPlatterParameters enabled]):
(+[WKHoverPlatterParameters settingsControllerModule]):
(addAdditionalPlatterLayoutParameters): Deleted.
(setDefaultValuesForAdditionalPlatterLayoutParameters): Deleted.
Adjust WKHoverPlatter to scale up its content, and adjust the shape
and animations.

1:15 AM Changeset in webkit [289462] by sbarati@apple.com
  • 14 edits
    2 adds in trunk

Don't return an empty value from AbortController.signal.reason and make it harder to return empty values from JSValueInWrappedObject
​https://bugs.webkit.org/show_bug.cgi?id=236318
<rdar://88580935>

Reviewed by Mark Lam.

Source/WebCore:

This patch makes it so we might not accidentally return the empty value to
JavaScript code from JSValueInWrappedObject. Previously, JSValueInWrappedObject
had an "operator JSValue()" method. This patch removes that, adds a new
conversion method for converting between JSValueInWrappedObject and JSValue,
and makes JSValueInWrappedObject return undefined inside this method
when it used to return the empty value. This fixes a crash where we'd return
the empty value to JS JIT code, and crash dereferencing a nullptr. It's never
valid for a JS function call (or getter, etc) to return the empty value.

Test: fast/dom/AbortSignal-reason-crash-2.html

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::getChannelData):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::toJSArray):
(WebCore::toJSObject):
(WebCore::AudioWorkletProcessor::buildJSArguments):

  • bindings/js/JSCustomEventCustom.cpp:

(WebCore::JSCustomEvent::detail const):

  • bindings/js/JSDOMConvertAny.h:

(WebCore::JSConverter<IDLAny>::convert):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data const):

  • bindings/js/JSPaymentMethodChangeEventCustom.cpp:

(WebCore::JSPaymentMethodChangeEvent::methodDetails const):

  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state const):

  • bindings/js/JSValueInWrappedObject.h:

(WebCore::JSValueInWrappedObject::getValue const):
(WebCore::JSValueInWrappedObject::operator bool const):
(WebCore::cachedPropertyValue):
(WebCore::JSValueInWrappedObject::operator JSC::JSValue const): Deleted.

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::signalFollow):
(WebCore::AbortSignal::throwIfAborted):

  • dom/ErrorEvent.cpp:

(WebCore::ErrorEvent::error):
(WebCore::ErrorEvent::trySerializeError):

  • dom/PopStateEvent.cpp:

(WebCore::PopStateEvent::trySerializeState):

  • page/History.cpp:

(WebCore::History::cachedState):

LayoutTests:

  • fast/dom/AbortSignal-reason-crash-2-expected.txt: Added.
  • fast/dom/AbortSignal-reason-crash-2.html: Added.
1:14 AM Changeset in webkit [289461] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.35.3

WebKitGTK 2.35.3

1:13 AM Changeset in webkit [289460] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.3 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.35.3.
12:47 AM Changeset in webkit [289459] by Diego Pino Garcia
  • 61 edits
    16 adds
    3 deletes in trunk/LayoutTests

[GTK][WPE] Update baselines after r288944

Unreviewed test gardening.

The bulk of these tests needed to update their baselines after
r288944, although other baseline updates in this patch might not due
to that change.

  • platform/glib/fast/text/whitespace/nbsp-mode-and-linewraps-expected.png: Added.
  • platform/glib/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/glib/webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt:
  • platform/gtk/editing/deleting/5144139-2-expected.png:
  • platform/gtk/editing/deleting/5144139-2-expected.txt:
  • platform/gtk/fast/borders/rtl-border-04-expected.txt:
  • platform/gtk/fast/borders/rtl-border-05-expected.png:
  • platform/gtk/fast/borders/rtl-border-05-expected.txt:
  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/text/basic/014-expected.txt:
  • platform/gtk/fast/text/in-rendered-text-rtl-expected.txt:
  • platform/gtk/fast/text/international/003-expected.png:
  • platform/gtk/fast/text/international/003-expected.txt:
  • platform/gtk/fast/text/international/bidi-L2-run-reordering-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/gtk/fast/text/international/bidi-european-terminators-expected.png:
  • platform/gtk/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/gtk/fast/text/international/bidi-ignored-for-first-child-inline-expected.png:
  • platform/gtk/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/gtk/fast/text/international/bidi-innertext-expected.png:
  • platform/gtk/fast/text/international/bidi-innertext-expected.txt:
  • platform/gtk/fast/text/international/bidi-menulist-expected.png:
  • platform/gtk/fast/text/international/bidi-menulist-expected.txt:
  • platform/gtk/fast/text/international/bidi-override-expected.png:
  • platform/gtk/fast/text/international/bidi-override-expected.txt:
  • platform/gtk/fast/text/international/rtl-caret-expected.png:
  • platform/gtk/fast/text/international/rtl-caret-expected.txt:
  • platform/gtk/fast/text/international/rtl-white-space-pre-wrap-expected.png:
  • platform/gtk/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/gtk/fast/text/midword-break-after-breakable-char-expected.txt:
  • platform/gtk/fast/text/whitespace/nbsp-mode-and-linewraps-expected.png: Removed.
  • platform/gtk/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46924-expected.txt:
  • platform/wpe/fast/borders/rtl-border-04-expected.png: Added.
  • platform/wpe/fast/borders/rtl-border-04-expected.txt:
  • platform/wpe/fast/borders/rtl-border-05-expected.png: Added.
  • platform/wpe/fast/borders/rtl-border-05-expected.txt:
  • platform/wpe/fast/events/updateLayoutForHitTest-expected.png: Added.
  • platform/wpe/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/wpe/fast/text/basic/014-expected.png: Added.
  • platform/wpe/fast/text/basic/014-expected.txt:
  • platform/wpe/fast/text/in-rendered-text-rtl-expected.png: Added.
  • platform/wpe/fast/text/in-rendered-text-rtl-expected.txt:
  • platform/wpe/fast/text/international/003-expected.txt:
  • platform/wpe/fast/text/international/bidi-L2-run-reordering-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-L2-run-reordering-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.png:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.png:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wpe/fast/text/international/bidi-european-terminators-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/wpe/fast/text/international/bidi-innertext-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-innertext-expected.txt:
  • platform/wpe/fast/text/international/bidi-menulist-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-menulist-expected.txt:
  • platform/wpe/fast/text/international/bidi-override-expected.png: Added.
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/rtl-caret-expected.png: Added.
  • platform/wpe/fast/text/international/rtl-caret-expected.txt:
  • platform/wpe/fast/text/international/rtl-white-space-pre-wrap-expected.png: Added.
  • platform/wpe/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/wpe/fast/text/midword-break-after-breakable-char-expected.png: Added.
  • platform/wpe/fast/text/midword-break-after-breakable-char-expected.txt:
  • platform/wpe/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
12:34 AM Changeset in webkit [289458] by mark.lam@apple.com
  • 3 edits in trunk/Source/WebCore

Remove some obsolete dependencies.
​https://bugs.webkit.org/show_bug.cgi?id=236333

Reviewed by Chris Dumez.

These files in the dependency list don't even exist anymore.

  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/SupplementalDependencies.dep:

Feb 8, 2022:

11:35 PM Changeset in webkit [289457] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

[CSS Container Queries] Track query containers so they can be invalidated on size change
​https://bugs.webkit.org/show_bug.cgi?id=236297

Reviewed by Alan Bujtas.

Add container size tracking.

  • dom/Document.cpp:

(WebCore::Document::updateLayout):

  • dom/Element.cpp:

(WebCore::Element::invalidateForQueryContainerChange):

  • dom/Element.h:
  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::styleWillChange):

  • rendering/RenderView.cpp:

(WebCore::RenderView::registerContainerQueryBox):
(WebCore::RenderView::unregisterContainerQueryBox):

  • rendering/RenderView.h:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::updateQueryContainerState):

Save the sizes after layout and invalidate if needed.

  • style/StyleScope.h:
10:51 PM Changeset in webkit [289456] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Unreviewed gardening.

Expand fuzzy ranges.

  • compositing/filters/opacity-change-on-filtered-paints-into-ancestor.html:
  • compositing/masks/become-tiled-mask.html:
  • css3/masking/mask-repeat-space-padding.html:
10:39 PM Changeset in webkit [289455] by graouts@webkit.org
  • 8 edits in trunk/Source/WebCore

Move DocumentTimeline::runningAnimationsForRendererAreAllAccelerated() to Styleable
​https://bugs.webkit.org/show_bug.cgi?id=236239

Reviewed by Dean Jackson.

This method has nothing to do with DocumentTimeline and everything to do with Styleable and its associated
effect stack. This also allows us to remove WebAnimation::isRunningAccelerated() since we don't need to go
through the animation as we iterate over keyframe effects directly.

This refactor surfaced an issue with Styleable::fromRenderer() where in the ::marker case we would fail
to correctly obtain the parent RenderListItem, we now recurse through parents until we find one instead
of stopping at the first ancestor with an element.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::runningAnimationsForRendererAreAllAccelerated const): Deleted.

  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::isRunningAccelerated const): Deleted.

  • animation/WebAnimation.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasRunningAcceleratedAnimations const):

  • style/Styleable.cpp:

(WebCore::Styleable::fromRenderer):
(WebCore::Styleable::runningAnimationsAreAllAccelerated const):

  • style/Styleable.h:
10:25 PM Changeset in webkit [289454] by graouts@webkit.org
  • 5 edits in trunk

[web-animations] additive and accumulation interpolation does not work correctly with implicit 0% and 100% keyframes
​https://bugs.webkit.org/show_bug.cgi?id=236314

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add some new WPT tests and mark our PASS results for the "add" case (we still fail for "accumulate").

  • web-platform-tests/web-animations/animation-model/combining-effects/effect-composition-expected.txt:
  • web-platform-tests/web-animations/animation-model/combining-effects/effect-composition.html:

Source/WebCore:

We incorrectly handled implicit keyframes for the additive and accumulate cases.

The spec says that for implicit 0% and 100% keyframes, a keyframe should be generated with a "neutral" keyframe which,
when added or accumulated with another keyframe, would yield the same style as the keyframe it's composed with. We sort
of did the right thing by cloning the underlying style for those keyframes, but then we would blame them anyway in the
composition case, whereas we should just use the underlying style as-is.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):

10:22 PM Changeset in webkit [289453] by graouts@webkit.org
  • 4 edits in trunk

[web-animations] Animation.commitStyles() should use the non-animated style
​https://bugs.webkit.org/show_bug.cgi?id=236315

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:

Source/WebCore:

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles):

8:59 PM Changeset in webkit [289452] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GLIB] Remove tests passing from TestExpectations

Unreviewed test gardening.

Also sort lines in TestExpectations.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
6:32 PM Changeset in webkit [289451] by Chris Dumez
  • 4 edits in trunk

FileReaderSync should be exposed to shared workers
​https://bugs.webkit.org/show_bug.cgi?id=236317
<rdar://problem/88644122>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/workers/semantics/interface-objects/003.any.sharedworker-expected.txt:

Source/WebCore:

FileReaderSync should be exposed to shared workers:

No new test, rebaselined existing one.

  • fileapi/FileReaderSync.idl:
5:54 PM Changeset in webkit [289450] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] YarrJIT inlining should be disabled when we have DotStarEnclosure
​https://bugs.webkit.org/show_bug.cgi?id=236332
rdar://88483574

Reviewed by Michael Saboff.

JSTests:

  • stress/yarr-inlining-dot-star-enclosure.js: Added.

(test):

Source/JavaScriptCore:

YarrJITRegisters::initialStart can be used when m_pattern.m_saveInitialStartValue is true while
it is not defined in YarrJIT inlining. As a result, we emit broken code using InvalidGPRReg.
This patch makes canInline false when m_pattern.m_saveInitialStartValue is true.

  • yarr/YarrJIT.cpp:
  • yarr/YarrJITRegisters.h:
4:35 PM Changeset in webkit [289449] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

[Playstation] Fix build break after r289247 if ENABLE_SERVICE_WORKER is off
​https://bugs.webkit.org/show_bug.cgi?id=236321

Patch by Jigen Zhou <​jigen.zhou@sony.com> on 2022-02-08
Reviewed by Chris Dumez.

Unreviewed, build fix for playstation platform after r289247 for support of sharing Shared Workers.
This patch resolves compiling errors caused by unknow type name and undeclared identifiers,
and it also fixes linking error by making methods WebProcessProxy::createForWorkers and
WebProcessPool::userContentControllerIdentifierForWorkers() available when ENABLE_SERVICE_WORKER is off

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h:
  • UIProcess/WebProcessPool.cpp:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:
4:26 PM Changeset in webkit [289448] by Alan Coon
  • 1 copy in tags/Safari-613.1.16.3.1

Tag Safari-613.1.16.3.1.

4:19 PM Changeset in webkit [289447] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Set LineBox::setBaselineType when the line is computed to be IdeographicBaseline
​https://bugs.webkit.org/show_bug.cgi?id=236310

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

4:17 PM Changeset in webkit [289446] by Alan Coon
  • 1 copy in tags/Safari-613.1.16.0.5

Tag Safari-613.1.16.0.5.

4:14 PM Changeset in webkit [289445] by Alan Coon
  • 1 copy in tags/Safari-613.1.16.1.4

Tag Safari-613.1.16.1.4.

4:14 PM Changeset in webkit [289444] by Alan Coon
  • 1 copy in tags/Safari-613.1.16.2.1

Tag Safari-613.1.16.2.1.

3:49 PM Changeset in webkit [289443] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (15.4): Angular virtual scrollers no longer work (because of contain:strict)
​https://bugs.webkit.org/show_bug.cgi?id=236260

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-08
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/contain-paint-049-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-paint-049.html: Added.

Source/WebCore:

Paint containment did not allow collecting scrollable overflow, breaking scrolling
of the container contents, this patch fixes that.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-paint-049.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::addOverflowFromChild):

3:30 PM Changeset in webkit [289442] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.34.5

WPE WebKit 2.34.5

3:11 PM Changeset in webkit [289441] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.5 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.34.5
3:07 PM Changeset in webkit [289440] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.31.1

Tag Safari-613.1.16.31.1.

3:06 PM Changeset in webkit [289439] by Russell Epstein
  • 3 edits in branches/safari-613.1.16.31-branch/Source/JavaScriptCore

Cherry-pick r289024. rdar://problem/88654211

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp: (JSC::SecureARM64EHashPins::initializeAtStartup): (JSC::SecureARM64EHashPins::allocatePinForCurrentThread): (JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::pinForCurrentThread):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:55 PM Changeset in webkit [289438] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.31-branch/Source

Versioning.

WebKit-7613.1.16.31.1

2:51 PM Changeset in webkit [289437] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Grid may be empty in certain scenarios
​https://bugs.webkit.org/show_bug.cgi?id=234578

Patch by Brandon Stewart <Brandon> on 2022-02-08
Reviewed by Darin Adler.

Add check to handle legend elements when inside a CSS Grid. The legend element should not be
added to aspectRatioBlockSizeDependentGridItems.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

  • rendering/RenderGrid.h:
2:43 PM Changeset in webkit [289436] by J Pascoe
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Use AuthenticationServicesAgent for WebAuthn calls on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236151
rdar://87908259

Reviewed by Brent Fulgham.

This patch starts using the ASC apis to make WebAuthn calls on iOS the
same way they are made on macOS. Some cleanup work will be needed to
deprecate the WebAuthn process after this change is made.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::WebAuthenticatorCoordinatorProxy::performRequest): Deleted.
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): Deleted.

2:35 PM Changeset in webkit [289435] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.31-branch

New branch.

2:27 PM Changeset in webkit [289434] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.34.5

WebKitGTK 2.34.5

2:25 PM Changeset in webkit [289433] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

.:
Unreviewed. Update OptionsGTK.cmake and NEWS for the 2.34.5 release

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.5 release

  • gtk/NEWS: Add release notes for 2.34.5
2:25 PM Changeset in webkit [289432] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.34

Allow building with ICU 60
​https://bugs.webkit.org/show_bug.cgi?id=235367

Unreviewed build fix.

Turns out we can reduce our ICU requirement from ICU 61 to ICU 60 with only minimal changes.

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-08

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

  • runtime/IntlCache.cpp:
  • runtime/IntlCache.h:
2:25 PM Changeset in webkit [289431] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34

Merge r289370 - [WPE] Running distcheck with USE_SOUP2=OFF fails to install documentation
​https://bugs.webkit.org/show_bug.cgi?id=236235

Reviewed by Carlos Garcia Campos.

  • Source/PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for the documentation.
2:25 PM Changeset in webkit [289430] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r289369 - [GTK][WPE] Crash at WebKit::bindA11y() in WebKitGTK 2.35.2
​https://bugs.webkit.org/show_bug.cgi?id=236144

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2022-02-08
Reviewed by Adrian Perez de Castro.

ATSPI stopped using an abstract socket but we are still assuming the a11y bus address is an abstract socket,
even when the path is not really used after all. However, just handling the case of the socket being a normal
unix socket is not enough, because the actual socket path is not mounted in the xdg-dbus-proxy sandbox, so it
fails to connect to the original a11y bus.

  • UIProcess/Launcher/ProcessLauncher.h: Rename extraWebProcessSandboxPaths as extraSandboxPaths.
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::setAddress): Remove the DBusAddressType parameter. Check the address looks valid
and just store the result of dbusAddressToPath() in m_path.
(WebKit::XDGDBusProxyLauncher::launch): Do not require m_path to be non-null and add it to the sanbox.
(WebKit::XDGDBusProxyLauncher::dbusAddressToPath): Only return the path for normal unix sockets.
(WebKit::bindDBusSession): Remove the DBusAddressType parameter passed to dbusAddressToPath().
(WebKit::bindA11y): Check proxy path is not null before setting a11y bus address in display.
(WebKit::addExtraPaths): Helper to add extra paths to the sandbox.
(WebKit::bubblewrapSpawn): Call addExtraPaths() for WebProcess and DBusProxy types.

  • UIProcess/Launcher/glib/FlatpakLauncher.cpp:

(WebKit::flatpakSpawn): Use extraSandboxPaths.

  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions): Ditto.

2:25 PM Changeset in webkit [289429] by Adrian Perez de Castro
  • 8 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r289154 - [Flatpak SDK] Update to FDO 21.08.10 and GStreamer 1.20 releases
​https://bugs.webkit.org/show_bug.cgi?id=236136

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-05
Reviewed by Adrian Perez de Castro.

Switch GStreamer 1.19 version checks to 1.20 now that it is officially released. Also
include a couple fixes that are needed with GStreamer 1.20 and one that is useful whatever
the GStreamer version:

  • GStreamer 1.20 ships a vp8alphadecodebin element able to handle video/x-vp8 caps, so our libwebrtc decoder factory needs to account for its presence, in addition to vp8dec.
  • With GStreamer 1.20 media/media-source/media-source-seek-back.html started racy crashing in the VideoTrackPrivateGStreamer configuration update, where the track was disconnected (hence its stream was cleared) and then a GObject notification was emitted by decodebin3. We should actually disconnect the GObject signal handlers before clearing the stream, to prevent potential null pointer access.
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::handleNewDeinterleavePad):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::AudioTrackPrivateGStreamer::disconnect):

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::VideoTrackPrivateGStreamer::disconnect):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:

(WebCore::VP8Decoder::Create):

2:21 PM Changeset in webkit [289428] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Embed added/modified/deleted status into changed files
​https://bugs.webkit.org/show_bug.cgi?id=236051

Reviewed by Aakash Jain.

GitHub's API includes whether a file was added, modified or deleted.
We don't include this information in source changes, we should.

  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits.file_with_mod_sign): Added.
(GitHubEventHandlerNoEdits._get_pr_files): Copied from buildbot, modified to include
file modification status.

  • Tools/CISupport/ews-build/steps.py:

(FindModifiedLayoutTests): Remove FIXME

Canonical link: ​https://commits.webkit.org/246988@main

2:14 PM Changeset in webkit [289427] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Initialize the AXIsolatedObject AccessibilityText property lazily.
​https://bugs.webkit.org/show_bug.cgi?id=236276
<rdar://problem/88604453>

Reviewed by Chris Fleizach.

Computation of the AccessibilitytText property may be very expensive and
if performed during the creation of IsolatedObjects may cause crashes
since it may invoke textUnderElement while page layout is in progress.
For these reasons, we are computing and caching this property on first
request.
This patch is a sequel to ​https://bugs.webkit.org/show_bug.cgi?id=236115.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::accessibilityText const):
(WebCore::AXIsolatedObject::getOrRetrievePropertyValue):
(WebCore::AXIsolatedObject::innerHTML const):
(WebCore::AXIsolatedObject::outerHTML const):
(WebCore::AXIsolatedObject::getOrRetrieveStringPropertyValue):
Replaced by getOrRetrievePropertyValue<String>.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::descriptionAttributeValue const):
(WebCore::AXIsolatedObject::titleAttributeValue const):

2:06 PM Changeset in webkit [289426] by graouts@webkit.org
  • 6 edits in trunk

[css-logical] [css-animations] changing "direction" or "writing-mode" should recompute keyframes
​https://bugs.webkit.org/show_bug.cgi?id=236293

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-002-expected.txt:

Source/WebCore:

We need to recompute keyframes based on the matching @keyframes rule in case an element running
a CSS Animation changes either "direction" or "writing-mode".

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::propertyAffectingLogicalPropertiesDidChange):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::applyKeyframeEffects):

1:45 PM Changeset in webkit [289425] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] LineIteratorModernPath::baselineType should consult Display::Line
​https://bugs.webkit.org/show_bug.cgi?id=236308

Reviewed by Antti Koivisto.

LineBox -> Display::Line -> LineIteratorModernPath (and the soon-to-be-removed LayoutIntegration::Line middleman).

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::baselineType const):
(WebCore::Layout::LineBox::setBaselineType):

  • layout/formattingContexts/inline/display/InlineDisplayLine.h:

(WebCore::InlineDisplay::Line::baselineType const):
(WebCore::InlineDisplay::Line::Line):

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::baselineType const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::baselineType const):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

1:40 PM Changeset in webkit [289424] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

Resync workers/modules/shared-worker-import-meta.html from upstream WPT
​https://bugs.webkit.org/show_bug.cgi?id=236302

Reviewed by Yusuke Suzuki.

Resync workers/modules/shared-worker-import-meta.html from upstream WPT after ​https://github.com/web-platform-tests/wpt/pull/32704.

  • web-platform-tests/workers/modules/shared-worker-import-meta-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-meta.html:
1:33 PM Changeset in webkit [289423] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Autostash when pulling (Follow-up fix)
​https://bugs.webkit.org/show_bug.cgi?id=235861
<rdar://problem/88298948>

Unreviewed follow-up fix.

Accidently landed a previous iteration of the change.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.Cache.clear): Handle empty cache.
(Git.pull): Only autostash when rebasing.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
1:31 PM Changeset in webkit [289422] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebCore/animation/KeyframeEffect.cpp

Apply patch. rdar://problem/82516118

1:20 PM Changeset in webkit [289421] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288944. rdar://problem/88059633

[LFC][IFC] Using Fontcascade::spaceWidth to subtract the trailing space width may result in incorrect layout
​https://bugs.webkit.org/show_bug.cgi?id=235937
<rdar://88059633>

Reviewed by Antti Koivisto and Simon Fraser.

Source/WebCore:

Since Fontcascade::spaceWidth always consult the primary font, it may return unexpected width value when (in rare cases)
the primary font does not have a space glyph. Legacy line layout works as expected as it always runs a full width
computation on the space character (instead of directly calling FontCascade::spaceWidth).

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp: (WebCore::Layout::InlineItemsBuilder::computeInlineTextItemWidths):
  • layout/formattingContexts/inline/text/TextUtil.cpp: (WebCore::Layout::TextUtil::width): (WebCore::Layout::TextUtil::spaceWidth):
  • layout/formattingContexts/inline/text/TextUtil.h:

LayoutTests:

  • platform/mac-bigsur/fonts/monospace-expected.txt: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288944 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:20 PM Changeset in webkit [289420] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore/layout/formattingContexts/inline

Cherry-pick r288055. rdar://problem/88059633

[LFC][IFC] imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html fails with incorrect run position
​https://bugs.webkit.org/show_bug.cgi?id=235011

Reviewed by Antti Koivisto.

IFC (inherited from simple line layout) uses this technique of measuring the content with the trailing whitespace
and then simply subtract the whitespace width. It enables us to keep pushing content to the line without re-measuring it each time.
(the "non-whitespace + whitespace" pattern is extremely common for IFC content).
However in some cases when the trailing whitespace is trimmed, subtracting the trimmed width from the
content width instead of measuring it produces a visually incorrect result.
This patch fixes the most obvious cases when the incorrect width turns into an offset for the RTL content.

  • layout/formattingContexts/inline/InlineLine.cpp: (WebCore::Layout::Line::TrimmableTrailingContent::remove): (WebCore::Layout::Line::Run::removeTrailingLetterSpacing): (WebCore::Layout::Line::Run::removeTrailingWhitespace):
  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/text/TextUtil.cpp: (WebCore::Layout::TextUtil::width):
  • layout/formattingContexts/inline/text/TextUtil.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288055 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:16 PM Changeset in webkit [289419] by Chris Dumez
  • 4 edits in trunk/Source

http/tests/cache-storage/cache-origins.https.html is flaky
​https://bugs.webkit.org/show_bug.cgi?id=236263

Reviewed by Darin Adler.

Source/WebCore:

Drop workaround landed in r289247 to try and maintain HashMap ordering.

  • page/SecurityOriginData.h:

(WebCore::add):

Source/WebKit:

Update CacheStorage::Engine::representation() (which is used by the layout tests) to return
origins in a stable order in order to address test flakiness.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::representation):

12:45 PM Changeset in webkit [289418] by Chris Lord
  • 5 edits
    2 moves in trunk/Source/WebCore

[GTK][WPE] Fallback path for WebGL rendering with ANGLE is incorrectly scheduling on the compositor thread
​https://bugs.webkit.org/show_bug.cgi?id=236290

Reviewed by Alejandro G. Castro.

Fix the WebGL ANGLE fallback path on nicosia to not incorrectly
schedule on the compositor thread.

No new tests, no change in behaviour.

  • platform/TextureMapper.cmake:
  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.cpp.
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.h.
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):

12:42 PM Changeset in webkit [289417] by caitp@igalia.com
  • 35 edits
    3 adds in trunk

[JSC] move function wrapping logic to a new Function type
​https://bugs.webkit.org/show_bug.cgi?id=235382

Reviewed by Yusuke Suzuki.

JSTests:

Adds a new file testing CopyNameAndLength stuff in the ShadowRealm proposal,
and fix up assertions about this in shadow-realm-evaluate.js

  • stress/shadow-realm-evaluate.js:
  • stress/shadow-realm-remote-function-copy-length-and-name.js: Added.

Source/JavaScriptCore:

In this initial patch, there is still a lot of JS-builtin machinery,
including some duplicated functionality. Additionally, JIT support
has not been incorporated yet.

Broadly, the idea is that there are custom hooks for calling a
JSRemoteFunction, which perform the wrapping functionality. This avoids
the need for allocating closures which contain the wrapping logic.

TODO:

  • JIT/DFG/FTL support
  • structure caching (unnecessary since these are not constructors?)
  • improved baseline perf
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/LinkBuffer.h:
  • builtins/BuiltinNames.h:
  • builtins/ShadowRealmPrototype.js:
  • bytecode/LinkTimeConstant.h:
  • dfg/DFGSpeculativeJIT.cpp:
  • ftl/FTLLowerDFGToB3.cpp:
  • heap/Heap.cpp:
  • heap/Heap.h:
  • inspector/JSInjectedScriptHost.cpp:
  • interpreter/Interpreter.cpp:
  • jit/AssemblyHelpers.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/ThunkGenerators.cpp:
  • jit/ThunkGenerators.h:
  • jsc.cpp:
  • runtime/ErrorInstance.cpp:
  • runtime/FunctionPrototype.cpp:
  • runtime/InternalFunction.cpp:
  • runtime/Intrinsic.cpp:
  • runtime/Intrinsic.h:
  • runtime/JSCast.h:
  • runtime/JSFunction.cpp:
  • runtime/JSFunction.h:
  • runtime/JSFunctionInlines.h:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/JSRemoteFunction.cpp: Added.
  • runtime/JSRemoteFunction.h: Added.
  • runtime/VM.cpp:
  • runtime/VM.h:
12:25 PM Changeset in webkit [289416] by Razvan Caliman
  • 17 edits
    2 adds in trunk

Web Inspector: [Flexbox] Add support for showing/hiding flex container overlays and basic overlay drawing
​https://bugs.webkit.org/show_bug.cgi?id=236013
<rdar://87893201>

Reviewed by Patrick Angle.

Source/JavaScriptCore:

Add new commands to show and hide flex overlays.

  • inspector/protocol/DOM.json:

Source/WebCore:

Test: inspector/dom/showFlexOverlay.html

  • The test follows the example for checking grid overlays at inspector/dom/showGridOverlay.html

Implement backend commands to toggle the visibility of a specialized page overlay shown on top of a flex container.
At this stage, the overlay consists of an outline around the bounding box of the flex container.
Future patches will add more detail regarding flex items and gaps between them.

This patch follows closely the example for toggling the visibility of CSS Grid overlays implemented in
​https://bugs.webkit.org/show_bug.cgi?id=221062

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::flexOverlayCount const):

  • inspector/InspectorController.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::getHighlight):
(WebCore::InspectorOverlay::shouldShowOverlay const):
(WebCore::InspectorOverlay::removeFlexOverlayForNode):

(WebCore::InspectorOverlay::setFlexOverlayForNode):
(WebCore::InspectorOverlay::clearFlexOverlayForNode):
(WebCore::InspectorOverlay::clearAllFlexOverlays):

  • Maintain a list of active flex overlays. A node can have only one flex overlay at a time.

(WebCore::InspectorOverlay::drawFlexOverlay):
(WebCore::InspectorOverlay::buildFlexOverlay):

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::flexOverlayCount const):
(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::encode const):
(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::decode):

  • The signature of the flex overlay includes the color for the outline and a quad expressing the bounding box of the flex container.
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::showFlexOverlay):
(WebCore::InspectorDOMAgent::hideFlexOverlay):

  • Translate protocol commands into InspectorOverlay method calls.
  • inspector/agents/InspectorDOMAgent.h:
  • testing/Internals.cpp:

(WebCore::Internals::inspectorFlexOverlayCount):

  • testing/Internals.h:
  • testing/Internals.idl:
  • Helper used in testing to check the number of shown flex overlays.

Source/WebKit:

Add basic logic to draw a flex overlay on top of a flex container on iOS/iPadOS. Used by Web Inspector.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<InspectorOverlay::Highlight>::encode):
(IPC::ArgumentCoder<InspectorOverlay::Highlight>::decode):

  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView drawRect:]):

LayoutTests:

  • inspector/dom/showFlexOverlay-expected.txt: Added.
  • inspector/dom/showFlexOverlay.html: Added.
  • inspector/dom/showGridOverlay.html:
  • Drive-by clean-up of out-of-context comments.
11:59 AM Changeset in webkit [289415] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288090. rdar://problem/87601499

Frequent GPU process jetsams due to RemoteRenderingBackendProxy not claiming ownership of SharedMemory buffers
​https://bugs.webkit.org/show_bug.cgi?id=235226

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-17
Reviewed by Simon Fraser.

Claim memory from SharedBitmaps and SharedMemory that RemoteRenderingBackendProxy
asks and receives from RemoteRenderingBackend. This is not very good,
as GPUP allocates most of the memory and thus might jetsam
before WP claims them. However, that is a bigger change to be done
after this one.

No new tests, hard to test currently.

  • Shared/ShareableBitmap.cpp: (WebKit::ShareableBitmap::Handle::takeOwnershipOfMemory const):
  • Shared/ShareableBitmap.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::getShareableBitmap): (WebKit::RemoteRenderingBackendProxy::getFilteredImage):
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp: (WebKit::RemoteResourceCacheProxy::recordNativeImageUse):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288090 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:55 AM Changeset in webkit [289414] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r289076. rdar://problem/88269480

Unreviewed, remove UnlinkedMetadataTable::offsetInMetadataTable since it is no longer used
​https://bugs.webkit.org/show_bug.cgi?id=236063

Follow-up after Saam's comment.

  • bytecode/UnlinkedMetadataTable.h: (JSC::UnlinkedMetadataTable::offsetInMetadataTable): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289076 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:55 AM Changeset in webkit [289413] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r289037. rdar://problem/88269480

[JSC] Use MetadataTable instead of UnlinkedMetadataTable
​https://bugs.webkit.org/show_bug.cgi?id=236063
rdar://88269480

Reviewed by Robin Morisset.

Use MetadataTable from profiled CodeBlock instead of UnlinkedMetadataTable in concurrent JIT compiler.

  • bytecode/MetadataTable.h: (JSC::MetadataTable::offsetInMetadataTable):
  • bytecode/UnlinkedMetadataTable.h: (JSC::UnlinkedMetadataTable::offsetInMetadataTable):
  • jit/JITInlines.h: (JSC::JIT::emitValueProfilingSite): (JSC::JIT::loadPtrFromMetadata): (JSC::JIT::load32FromMetadata): (JSC::JIT::load8FromMetadata): (JSC::JIT::store8ToMetadata): (JSC::JIT::store32ToMetadata): (JSC::JIT::materializePointerIntoMetadata):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_resolve_scope): (JSC::JIT::emit_op_get_from_scope):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289037 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:55 AM Changeset in webkit [289412] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288435. rdar://problem/83668578

MediaStream canvas.captureStream() playback to LocalSampleBufferDisplayLayer is flaky
​https://bugs.webkit.org/show_bug.cgi?id=230623
<rdar://problem/83668578>

Reviewed by Kimmo Kinnunen.

There are a few issues when creating the video element, setting the srcObject and playing it right away.
The first thing is that we try to render the video element while thinking that it might be video accelerated
(it is always the case for MediaStreamTrack based tracks), but the video element is asynchronously updating whether it is accelerated.
Following what other MediaPlayerPrivate are doing, when MediaPlayerPrivateMediaStreamAVFObjC has set up its video layers,
we schedule a call to renderingModeChanged which will trigger a relayout.

We also ensure, when the layer is fully initialized to set all values (bounds, hide states) as otherwise, this might be lost on GPUProcess
which currently does not register a RemoteSampleBufferDisplayLayer at the time the corresponding IPC message is received.

The additional issue is in the case the MediaStreamTrack source only generates one frame for some time.
In that case, and if the frame is enqueueud while setting up the video layers, we were not rendering this frame.
To fix this, when the video layers are ready, we reenqueue the last video frame as neeeded.

Manually tested.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288435 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [289411] by Jonathan Bedard
  • 11 edits
    1 add in trunk

[git-webkit] Allow repositories to declare their bug trackers
​https://bugs.webkit.org/show_bug.cgi?id=236306
<rdar://problem/88633018>

Reviewed by Dewei Zhu.

  • metadata/trackers.json: Added.
  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.init): Raise correct exception.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.init): Raise correct exception.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:

(Tracker.from_json): Handle list or tuple input.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git): Use shared METADATA declaration.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.init): Register any bug trackers associated with the repository.

Canonical link: ​https://commits.webkit.org/246978@main

11:32 AM Changeset in webkit [289410] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Make HTMLToken::beginStartTag tag an 8 bit character
​https://bugs.webkit.org/show_bug.cgi?id=236283

Reviewed by Sam Weinig.

HTMLToken::beginStartTag is only ever called with an ASCII lowercase
letter. It can take an LChar instead of a UChar, and we can avoid
updating m_data8BitCheck.

  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::beginStartTag):

11:30 AM Changeset in webkit [289409] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WebXR] Ensure only one frame update can be requested with the device at any time
​https://bugs.webkit.org/show_bug.cgi?id=236247

Patch by Ada Chan <​ada.chan@apple.com> on 2022-02-08
Reviewed by Dean Jackson.

Rename WebXRSession::requestFrame() to WebXRSession::requestFrameIfNeeded()
with logic added to determine whether a new frame update request should be
sent to the device. The boolean m_isDeviceFrameRequestPending tracks whether
a frame request is pending with the device, and requestFrameIfNeeded() should
bail early if that boolean is true.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::requestAnimationFrame):
(WebCore::WebXRSession::updateSessionVisibilityState):
(WebCore::WebXRSession::requestFrameIfNeeded):
(WebCore::WebXRSession::onFrame):
(WebCore::WebXRSession::requestFrame): Deleted.

  • Modules/webxr/WebXRSession.h:
11:29 AM Changeset in webkit [289408] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • gpu-process/TestExpectations:
11:22 AM Changeset in webkit [289407] by Alan Coon
  • 3 edits in branches/safari-613.1.16.2-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/87986840

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:21 AM Changeset in webkit [289406] by Alan Coon
  • 9 edits in branches/safari-613.1.16.2-branch/Source

Versioning.

WebKit-7613.1.16.2.1

11:18 AM Changeset in webkit [289405] by Alan Coon
  • 3 edits in branches/safari-613.1.16.3-branch/Source/JavaScriptCore

Cherry-pick r289354. rdar://problem/88611690

Wasm crash on ​https://copy.sh/v86/?profile=dsl
​https://bugs.webkit.org/show_bug.cgi?id=236037
rdar://88358719

Reviewed by Mark Lam.

Lower stack args in Air had a bug where it was emitting a constant
materialization at the wrong instruction offset for certain types
of spill instructions. This happens when we have a stack slot that
is 8 bytes wide, but we're emitting a zero def Move32. We need to
zero the upper 4 bytes. However, there is also code inside lower
stack args that uses the temp register when encountering offsets
that are too large to encode in a single instruction. However,
this offset materialization code for the second Move32 to zero
the upper bytes was happening before the actual store. For example,
we'd end up with:
movz x16, #k
movz x16, #k2
stur x1, [x16]
stur zr, [x16]

instead of
movz x16, #k
stur x1, [x16]
movz x16, #k2
stur zr, [x16]

  • b3/air/AirLowerStackArgs.cpp: (JSC::B3::Air::lowerStackArgs):
  • b3/air/testair.cpp:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289354 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:18 AM Changeset in webkit [289404] by Alan Coon
  • 3 edits in branches/safari-613.1.16.3-branch/Source/JavaScriptCore

Cherry-pick r289024. rdar://problem/88222677

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp: (JSC::SecureARM64EHashPins::initializeAtStartup): (JSC::SecureARM64EHashPins::allocatePinForCurrentThread): (JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::pinForCurrentThread):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:18 AM Changeset in webkit [289403] by Alan Coon
  • 3 edits in branches/safari-613.1.16.3-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/87986840

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:15 AM Changeset in webkit [289402] by jonlee@apple.com
  • 17 edits in trunk/LayoutTests

Unreviewed gardening.

LayoutTests/imported/mozilla:

  • svg/opacity-and-gradient-02.svg: Expand pixel range based on EWS run.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/border-image-repeat-space-7.html: Expand pixel range based on EWS data.
  • web-platform-tests/css/css-text/shaping/shaping-arabic-diacritics-001.html:

LayoutTests:

Reflecting pixel diffs from EWS run.

  • css1/basic/class_as_selector.html:
  • css3/background/background-repeat-round-auto1.html:
  • css3/background/background-repeat-space-content.html:
  • css3/color/box-shadows.html:
  • css3/color/gradients.html:
  • fast/css/heightless-list-item.html:
  • fast/css/object-position/object-position-img-svg.html:
  • fast/gradients/alpha-premultiplied.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs.html:
  • fast/text/simple-line-layout-text-position-with-stroke.html:
  • svg/animations/multiple-animateTransform-additive-sum.svg:
11:14 AM Changeset in webkit [289401] by Alan Coon
  • 3 edits in branches/safari-613.1.16.0-branch/Source/JavaScriptCore

Cherry-pick r289354. rdar://problem/88611690

Wasm crash on ​https://copy.sh/v86/?profile=dsl
​https://bugs.webkit.org/show_bug.cgi?id=236037
rdar://88358719

Reviewed by Mark Lam.

Lower stack args in Air had a bug where it was emitting a constant
materialization at the wrong instruction offset for certain types
of spill instructions. This happens when we have a stack slot that
is 8 bytes wide, but we're emitting a zero def Move32. We need to
zero the upper 4 bytes. However, there is also code inside lower
stack args that uses the temp register when encountering offsets
that are too large to encode in a single instruction. However,
this offset materialization code for the second Move32 to zero
the upper bytes was happening before the actual store. For example,
we'd end up with:
movz x16, #k
movz x16, #k2
stur x1, [x16]
stur zr, [x16]

instead of
movz x16, #k
stur x1, [x16]
movz x16, #k2
stur zr, [x16]

  • b3/air/AirLowerStackArgs.cpp: (JSC::B3::Air::lowerStackArgs):
  • b3/air/testair.cpp:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289354 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:14 AM Changeset in webkit [289400] by Alan Coon
  • 3 edits in branches/safari-613.1.16.0-branch/Source/JavaScriptCore

Cherry-pick r289024. rdar://problem/88222677

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp: (JSC::SecureARM64EHashPins::initializeAtStartup): (JSC::SecureARM64EHashPins::allocatePinForCurrentThread): (JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::pinForCurrentThread):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:14 AM Changeset in webkit [289399] by Alan Coon
  • 3 edits in branches/safari-613.1.16.0-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/87986840

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:14 AM Changeset in webkit [289398] by Alan Coon
  • 9 edits in branches/safari-613.1.16.3-branch/Source

Versioning.

WebKit-7613.1.16.3.1

11:09 AM Changeset in webkit [289397] by Alan Coon
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.5

10:57 AM Changeset in webkit [289396] by weinig@apple.com
  • 17 edits in trunk

Conversion to a color space with a smaller gamut should perform gamut mapping
​https://bugs.webkit.org/show_bug.cgi?id=236200

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update tests to include more examples that force gamut mapping and update the results
of a few existing ones to account for the new algorithm.

  • web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-mix-computed.html:
  • web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-mix-valid.html:
  • web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-computed.html:
  • web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-valid.html:

Source/WebCore:

CSS Color now defines that gamut mapping should happen when converting to an RGB color space
with bounded gamut that is smaller than the origin color's color space. Specifically, it
specifies the use of a new "CSS gamut mapping algorithm" ​https://drafts.csswg.org/css-color/#css-gamut-mapping
which implements a relative colorimetric intent mapping with colors inside the destination
gamut unchanged.

The previous behavior we implemented was to clip out of gamut colors to the gamut (e.g.
color(srgb 1.4 -0.2 .5) would become color(srgb 1 0 .5)) which can lead to very odd results.

To keep things simple, the gamut mapping has been incorporated directly into the main color
conversion pipeline, replacing the call to makeFromComponentsClampingExceptAlpha in toBounded()
with one implements the new algorithm. To accomadate this, the pipeline was modified so that
the matrix conversions now only happen to/from extended-linear and XYZ color types, rather than
the old behavior which allowed shortcuting from bounded-linear, which was ok because the clip
would result in the same value. Since conversion from bounded-linear to extended-linear is free
(just a type change, no conversion), the only additional cost here is the gamut mapping.

The implementation of the CSS gamut mapping algorithm itself is a naive iterative bisection
implementation based on the psuedo-code from the spec. As an optimization in the future, we should
consider implementing an analytic solution, which will be more complicated, but likely faster.

Currently, the only place where the effect of this new gamut mapping behavior will be visible is
via functions that explicitly convert to a bounded color space, specifically the CSS color-mix()
function and relative color syntax. Ultimately, we should also be using this to map CSS colors
to the output color space of the screen / HTML canvas, but finding the right place to do that
is not a part of this initial change.

  • platform/graphics/ColorConversion.cpp:

(WebCore::ColorConversion<Lab<float>, XYZA<float, WhitePoint::D50>>::convert):
(WebCore::ColorConversion<OKLab<float>, XYZA<float, WhitePoint::D65>>::convert):
Add call to makeFromComponentsClampingExceptAlpha at the end of conversion to Lab/OKLab
as the conversion functions can produce lightness values just ever so less than 0.
In practice, only the lightness value is bounded, so it is the only thing that actually
gets clamped thanks to the constexpr nature of clampedComponent().

  • platform/graphics/ColorConversion.h:

(WebCore::computeDeltaEOK):
Add implementation of the deltaEOK algorithm.

(WebCore::ClipGamutMapping::mapToBoundedGamut):
Add implementation of the degenerate gamut mapping algorithm.

(WebCore::CSSGamutMapping::mapToBoundedGamut):
Add implementation of the CSS gamut mapping algorithm.

(WebCore::ColorConversion::convert):
Add a new step to the main pipeline that explicitly handles bounds conversions to/from
extended-linear so that the matrix conversions can rely on always working in extended space.

(WebCore::ColorConversion::toBounded):
Replace call to clamp with call out to gamut mapping algorithm.

(WebCore::ColorConversion::handleMatrixConversion):
Replace makeFromComponentsClampingExceptAlpha with makeFromComponents now that all conversions
are in the extended space and clamping is no-op.

  • platform/graphics/ColorTypes.h:

(WebCore::inGamut):
(WebCore::colorIfInGamut):
(WebCore::clipToGamut):
Add some helpers to check/convert/clip to the bounded gamut of RGB types.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update color conversion tests to account for gamut mapping and add a new test
that bypasses gamut mapping by converting to extended sRGB.

LayoutTests:

  • platform/gtk/TestExpectations:

Add more tests that are only failing on the GTK bots due to a small floating point issues that needs further investigation.

10:55 AM Changeset in webkit [289395] by Alan Coon
  • 3 edits in branches/safari-613.1.16.1-branch/Source/JavaScriptCore

Cherry-pick r289354. rdar://problem/88611690

Wasm crash on ​https://copy.sh/v86/?profile=dsl
​https://bugs.webkit.org/show_bug.cgi?id=236037
rdar://88358719

Reviewed by Mark Lam.

Lower stack args in Air had a bug where it was emitting a constant
materialization at the wrong instruction offset for certain types
of spill instructions. This happens when we have a stack slot that
is 8 bytes wide, but we're emitting a zero def Move32. We need to
zero the upper 4 bytes. However, there is also code inside lower
stack args that uses the temp register when encountering offsets
that are too large to encode in a single instruction. However,
this offset materialization code for the second Move32 to zero
the upper bytes was happening before the actual store. For example,
we'd end up with:
movz x16, #k
movz x16, #k2
stur x1, [x16]
stur zr, [x16]

instead of
movz x16, #k
stur x1, [x16]
movz x16, #k2
stur zr, [x16]

  • b3/air/AirLowerStackArgs.cpp: (JSC::B3::Air::lowerStackArgs):
  • b3/air/testair.cpp:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289354 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289394] by Alan Coon
  • 3 edits in branches/safari-613.1.16.1-branch/Source/JavaScriptCore

Cherry-pick r289024. rdar://problem/88222677

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp: (JSC::SecureARM64EHashPins::initializeAtStartup): (JSC::SecureARM64EHashPins::allocatePinForCurrentThread): (JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::pinForCurrentThread):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289393] by Alan Coon
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288933. rdar://problem/87402941

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
​https://bugs.webkit.org/show_bug.cgi?id=235989
<rdar://87402941>

Reviewed by Wenson Hsieh.

Crash data suggest that m_scrollingCoordinator can be null in ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged(),
which is true if the scrolling tree keeps ThreadedScrollingTree alive longer than the scrolling coordinator.

As in the other functions in this file, early return if m_scrollingCoordinator is null.

  • page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288933 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289392] by Alan Coon
  • 7 edits in branches/safari-613.1.16.1-branch/Source

Cherry-pick r288922. rdar://problem/88172449

[WP] Remove PostScript conversion code
​https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Tim Horton.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

Source/WebCore:

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::convertedDataIfNeeded const):
  • platform/graphics/cg/PDFDocumentImage.cpp: (WebCore::PDFDocumentImage::convertPostScriptDataToPDF): Deleted.
  • platform/graphics/cg/PDFDocumentImage.h:

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::pluginInfo): (WebKit::PDFPlugin::streamDidReceiveResponse): (WebKit::PDFPlugin::manualStreamDidReceiveResponse):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289391] by Alan Coon
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Cherry-pick r288848. rdar://problem/86950638

Web Inspector: [Cocoa] Crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange
​https://bugs.webkit.org/show_bug.cgi?id=235842

Reviewed by Timothy Hatcher.

Speculatively fix an occasional crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange by ensuring that
the WebInspectorUIProxy still exists before calling attachmentViewDidChange.

Currently we are sometimes crashing while attempting to m_objCAdapter.get(), which is the first use of a
member variable in WebInspectorUIProxy::attachmentViewDidChange. This retain pointer should never be able to
not exists, since it storing nil is a valid state. This points to the WebInspectorUIProxy itself no longer
existing. The fix is to check that we actually have a WebInspectorUIProxy before calling
attachmentViewDidChange. This is also just good practice since WebPageProxy::inspector() is also able to
return nullptr under certain circumstances, and all other calls to it are guarded to check if the
WebInspectorUIProxy is still around first.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setInspectorAttachmentView):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288848 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289390] by Alan Coon
  • 3 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Cherry-pick r288825. rdar://problem/88172449

[WP] Remove PostScript conversion code
​https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Brent Fulgham.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::streamDidFinishLoading): (WebKit::PDFPlugin::manualStreamDidFinishLoading): (WebKit::PDFPlugin::convertPostScriptDataIfNeeded): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289389] by Alan Coon
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Cherry-pick r288776. rdar://problem/88214729

[macOS][WP] Temporarily add syscall to sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235841
<rdar://88197549>

Reviewed by Brent Fulgham.

Temporarily add syscall to sandbox in the WebContent process on macOS. This can be removed when <rdar://88210738> is fixed.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:55 AM Changeset in webkit [289388] by Alan Coon
  • 3 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/87986840

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:49 AM Changeset in webkit [289387] by Alan Coon
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.4

10:36 AM Changeset in webkit [289386] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Autostash when pulling
​https://bugs.webkit.org/show_bug.cgi?id=235861
<rdar://problem/88298948>

Reviewed by Ryosuke Niwa.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.pull): Pass --autostash when pulling and resetting timestamps.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Handle --autostash.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

Canonical link: ​https://commits.webkit.org/246972@main

10:20 AM Changeset in webkit [289385] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r289354. rdar://problem/88611690

Wasm crash on ​https://copy.sh/v86/?profile=dsl
​https://bugs.webkit.org/show_bug.cgi?id=236037
rdar://88358719

Reviewed by Mark Lam.

Lower stack args in Air had a bug where it was emitting a constant
materialization at the wrong instruction offset for certain types
of spill instructions. This happens when we have a stack slot that
is 8 bytes wide, but we're emitting a zero def Move32. We need to
zero the upper 4 bytes. However, there is also code inside lower
stack args that uses the temp register when encountering offsets
that are too large to encode in a single instruction. However,
this offset materialization code for the second Move32 to zero
the upper bytes was happening before the actual store. For example,
we'd end up with:
movz x16, #k
movz x16, #k2
stur x1, [x16]
stur zr, [x16]

instead of
movz x16, #k
stur x1, [x16]
movz x16, #k2
stur zr, [x16]

  • b3/air/AirLowerStackArgs.cpp: (JSC::B3::Air::lowerStackArgs):
  • b3/air/testair.cpp:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289354 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:20 AM Changeset in webkit [289384] by Russell Epstein
  • 2 edits in branches/safari-613-branch/LayoutTests

Cherry-pick r287055. rdar://problem/86488039

REGRESSION (r286982): ASSERTION FAILED: clipRectsContext.rootLayer == m_clipRectsCache->m_clipRectsRoot[clipRectsType]
​https://bugs.webkit.org/show_bug.cgi?id=234315

Unreviewed test gardening.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287055 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:53 AM Changeset in webkit [289383] by ysuzuki@apple.com
  • 7 edits in trunk/Source/WebCore

[WebCore] JSValueInWrappedObject is not correct for concurrent GC
​https://bugs.webkit.org/show_bug.cgi?id=236277
rdar://88366849

Reviewed by Saam Barati.

JSValueInWrappedObject is broken for concurrent GC's marking. It is using std::variant<> to store Weak / JSValue,
which is not safe if concurrent GC reads it while changing that std::variant. This patch fixes several problems
in JSValueInWrappedObject.

  1. We must not use std::variant here since concurrent access can happen. We have both JSValue and Weak, and change Weak after fully initialize WeakImpl's content in Weak. To ensure that, we emit storeStoreBarrier before setting Weak to the JSValueInWrappedObject's field.
  2. Assignment operator & copy constructor are basically wrong for this class as we need a write-barrier to set a value to the field. We remove them and make it explicit that we do not have write-barrier, which reveals that IDBRequest has a semantic bug.
  3. We also add clear() instead of assigning empty JSValueInWrappedObject. And we ensure that this new clear() works well with concurrent GC threads: we clear the underlying WeakImpl* pointer to nullptr. But since WeakImpl* is kept alive until GC clears weak-related things in its end phase, concurrent GC thread can access the old WeakImpl*.
  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):

  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp:
  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::setDetailsFunction):

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::getChannelData):
(WebCore::AudioBuffer::visitChannelWrappers):

  • bindings/js/JSValueInWrappedObject.h:

(WebCore::JSValueInWrappedObject::JSValueInWrappedObject):
(WebCore::JSValueInWrappedObject::operator JSC::JSValue const):
(WebCore::JSValueInWrappedObject::visit const):
(WebCore::JSValueInWrappedObject::setWeakly):
(WebCore::JSValueInWrappedObject::set):
(WebCore::JSValueInWrappedObject::clear):
(WebCore::JSValueInWrappedObject::setWithoutBarrier):
(WebCore::cachedPropertyValue):
(WebCore::JSValueInWrappedObject::makeValue): Deleted.
(WebCore::JSValueInWrappedObject::operator=): Deleted.

9:51 AM Changeset in webkit [289382] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WTF

[macOS] Update requirements for ScreenCaptureKit
​https://bugs.webkit.org/show_bug.cgi?id=236304
rdar://88593324

Reviewed by Youenn Fablet.

  • wtf/PlatformHave.h:
9:14 AM Changeset in webkit [289381] by youenn@apple.com
  • 10 edits
    2 adds in trunk

LibWebRTCCodecs SharedVideoFrameWriters can deadlock in case of GPUProcess crash
​https://bugs.webkit.org/show_bug.cgi?id=236132

Reviewed by Eric Carlson.

Source/WebKit:

When sending sampels through SharedVideoFrameWriters, we might lock on a binary semaphore controlled by GPUProcess.
It is not always the case that the semaphore will unblock in case of GPUProcess crash for instance.
To prevent this, whenever we detect a GPUProcess crash, we disable SharedVideoFrameWriters, which has the effect of
disabling semaphore wait for future call and unlocking any current wait by calling semaphore.signal.
Then, the SharedVideoFrameWriter is recreated as needed by owner classes such as LibWebRTCCodecs or SampleBufferDisplayLayer.

In the case of LibWebRTCCodecs, we further reduce locking cases by introducing a lock dedicated to encoders.
Previously, the lock for encoders was also encompassing the codecs connection and the decoders.

Test: webrtc/vp8-then-h264-gpu-process-crash.html

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
  • WebProcess/GPU/webrtc/SharedVideoFrame.h:

LayoutTests:

  • platform/gtk/TestExpectations: Skip test as it is crashing in GTK bot.
  • webrtc/vp8-then-h264-gpu-process-crash-expected.txt: Added.
  • webrtc/vp8-then-h264-gpu-process-crash.html: Added.
9:03 AM Changeset in webkit [289380] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Reduce allocations and increase thread safety of constructedPath
​https://bugs.webkit.org/show_bug.cgi?id=236286
<rdar://86904276>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-08
Reviewed by Chris Dumez.

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::constructedPathPrefix):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):

8:57 AM Changeset in webkit [289379] by Simon Fraser
  • 7 edits
    2 moves in trunk/Source/WebKit

Rename ImageBufferShareableIOSurfaceBackend to ImageBufferRemoteIOSurfaceBackend
​https://bugs.webkit.org/show_bug.cgi?id=236267

Reviewed by Tim Horton.

Most of the functions on ImageBufferShareableIOSurfaceBackend are stubs that RELEASE_ASSERT;
it's "remote" role is more important that it's "shareable" role, so rename it.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/PlatformImageBufferShareableBackend.h:
  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp: Renamed from Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp.

(WebKit::ImageBufferRemoteIOSurfaceBackend::calculateSafeBackendSize):
(WebKit::ImageBufferRemoteIOSurfaceBackend::calculateMemoryCost):
(WebKit::ImageBufferRemoteIOSurfaceBackend::calculateExternalMemoryCost):
(WebKit::ImageBufferRemoteIOSurfaceBackend::create):
(WebKit::ImageBufferRemoteIOSurfaceBackend::createImageBufferBackendHandle const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::context const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::backendSize const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::bytesPerRow const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::copyNativeImage const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::copyImage const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::draw):
(WebKit::ImageBufferRemoteIOSurfaceBackend::drawPattern):
(WebKit::ImageBufferRemoteIOSurfaceBackend::toDataURL const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::toData const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::getPixelBuffer const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::putPixelBuffer):

  • WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h: Renamed from Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h.
8:55 AM Changeset in webkit [289378] by jonlee@apple.com
  • 5 edits in trunk

Enable GPU Process for WebGL by default on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236218

Reviewed by Kimmo Kinnunen.

Tools:

  • WebKitTestRunner/TestOptions.cpp: Add new static representing whether full GPU Process is enabled.

(WTR::TestOptions::defaults):

LayoutTests:

  • platform/ios-simulator/TestExpectations: read-pixels-test.html is no longer slow.
  • platform/ios-wk2/TestExpectations:
8:23 AM Changeset in webkit [289377] by commit-queue@webkit.org
  • 6 edits in trunk

Return 'none' for the computed style of mask when there are no mask images
​https://bugs.webkit.org/show_bug.cgi?id=236265
<rdar://88178304>

Patch by Matt Woodrow <Matt Woodrow> on 2022-02-08
Reviewed by Dean Jackson.

Source/WebCore:

Rather than returning all the longhand properties, return 'none' if there are no
mask images. This no longer matches the behaviour of the 'background' property, but
better matches what other UAs do.

Ideally we'd return the smallest possible canonical representation of the non-initial
property values, but this is a much simpler change to fix a compat regression.

Test: fast/masking/parsing-mask.html
Updates expected results to match new behavior.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::getLayerCount):
(WebCore::ComputedStyleExtractor::getFillLayerPropertyShorthandValue):
(WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):
(WebCore::ComputedStyleExtractor::getMaskShorthandValue):

  • css/CSSComputedStyleDeclaration.h:

LayoutTests:

  • fast/masking/parsing-mask-expected.txt:
  • fast/masking/parsing-mask.html:

Updated expected results to expect 'none' for all cases where there isn't an actual mask
image.

7:55 AM Changeset in webkit [289376] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add support for ideographic baseline on atomic inline level boxes
​https://bugs.webkit.org/show_bug.cgi?id=236258

Reviewed by Antti Koivisto.

This is in preparation for adding vertical writing mode support (now we pass all the replaced tests under imported/w3c/web-platform-tests/css/css-writing-modes).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable): see RenderBox::baselinePosition() for the math.

7:06 AM Changeset in webkit [289375] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Garden tests failing after r288070

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
6:55 AM Changeset in webkit [289374] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Take writing direction into account when applying RenderBlockFlow end padding quirk
​https://bugs.webkit.org/show_bug.cgi?id=236280

Reviewed by Antti Koivisto.

In vertical writing mode the overflow should be expanded in the vertical direction if applicable.

  • layout/formattingContexts/inline/display/InlineDisplayLine.h:

(WebCore::InlineDisplay::Line::contentLogicalWidth const):
(WebCore::InlineDisplay::Line::Line):
(WebCore::InlineDisplay::Line::contentWidth const): Deleted.

  • layout/integration/InlineIteratorLineModernPath.h:

(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalRight const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::lineOverflowLogicalWidth):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::lineOverflowWidth): Deleted.

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentLogicalWidth const):
(WebCore::LayoutIntegration::Line::contentWidth const): Deleted. -> this is a logical width value.

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • platform/graphics/FloatRect.h:

(WebCore::FloatRect::shiftMaxYEdgeBy):

6:35 AM Changeset in webkit [289373] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Take isHorizontalWritingMode value into account when converting incoming margin/border/padding values
​https://bugs.webkit.org/show_bug.cgi?id=236285

Reviewed by Antti Koivisto.

(WebCore::LayoutIntegration::logicalMargin):
(WebCore::LayoutIntegration::logicalBorder):
(WebCore::LayoutIntegration::logicalPadding):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):

6:26 AM Changeset in webkit [289372] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] LineBoxBuilder::setBaselineAndLayoutBounds should handle atomic inline level boxes too
​https://bugs.webkit.org/show_bug.cgi?id=236255

Reviewed by Antti Koivisto.

Call setBaselineAndLayoutBounds with atomic type of inline level boxes.
This is in preparation for adding support for ideographic baseline on atomic inline level boxes.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

6:19 AM Changeset in webkit [289371] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

GPUP WebGL RELEASE_LOGs errorneously for unhandled messages
​https://bugs.webkit.org/show_bug.cgi?id=236288

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-08
Reviewed by Antti Koivisto.

Remove a RELEASE_LOG when GPUProcessConnection sees a RemoteGraphicsContextGLProxy
message that was not delivered to a specific instance.
This is business as usual, as the proxy intends to be asynchronous and can be destroyed
without coordinating with the GPUP side. The Proxy object cannot know at which point
of time a message to it might be delivered.
Move the message handling to RemoteGraphicsContextGLProxy static method,
so that the RELEASE_LOG does not get added erroneosly again.

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::handleMessageToRemovedDestination):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
6:11 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
6:07 AM Changeset in webkit [289370] by Adrian Perez de Castro
  • 2 edits in trunk

[WPE] Running distcheck with USE_SOUP2=OFF fails to install documentation
​https://bugs.webkit.org/show_bug.cgi?id=236235

Reviewed by Carlos Garcia Campos.

  • Source/PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for the documentation.
5:46 AM Changeset in webkit [289369] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

[GTK][WPE] Crash at WebKit::bindA11y() in WebKitGTK 2.35.2
​https://bugs.webkit.org/show_bug.cgi?id=236144

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2022-02-08
Reviewed by Adrian Perez de Castro.

ATSPI stopped using an abstract socket but we are still assuming the a11y bus address is an abstract socket,
even when the path is not really used after all. However, just handling the case of the socket being a normal
unix socket is not enough, because the actual socket path is not mounted in the xdg-dbus-proxy sandbox, so it
fails to connect to the original a11y bus.

  • UIProcess/Launcher/ProcessLauncher.h: Rename extraWebProcessSandboxPaths as extraSandboxPaths.
  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::setAddress): Remove the DBusAddressType parameter. Check the address looks valid
and just store the result of dbusAddressToPath() in m_path.
(WebKit::XDGDBusProxyLauncher::launch): Do not require m_path to be non-null and add it to the sanbox.
(WebKit::XDGDBusProxyLauncher::dbusAddressToPath): Only return the path for normal unix sockets.
(WebKit::bindDBusSession): Remove the DBusAddressType parameter passed to dbusAddressToPath().
(WebKit::bindA11y): Check proxy path is not null before setting a11y bus address in display.
(WebKit::addExtraPaths): Helper to add extra paths to the sandbox.
(WebKit::bubblewrapSpawn): Call addExtraPaths() for WebProcess and DBusProxy types.

  • UIProcess/Launcher/glib/FlatpakLauncher.cpp:

(WebKit::flatpakSpawn): Use extraSandboxPaths.

  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions): Ditto.

5:25 AM Changeset in webkit [289368] by Tyler Wilcock
  • 4 edits in trunk/Source/WebCore

AX: When updating the isolated tree with a remove and add of the same object, the wrapper is not re-attached
​https://bugs.webkit.org/show_bug.cgi?id=236273

Reviewed by Andres Gonzalez.

In AXIsolatedTree::applyPendingChanges, we process node and subtree
removals before tree additions. When doing these removals, we detach
the object and wrapper from each other. This is fine unless that same
object is slated to be added again (e.g. it was moved in the DOM), as
we don't always re-attach a wrapper. [WebAccessibilityObjectWrapperBase axBackingObject]
will always return nil for objects in this state.

In this patch, when processing m_pendingAppends, we now attach a
wrapper to any object that has become isDetached (i.e. the object
has no wrapper, or the object has a wrapper but the wrapper does not
point at the object).

Fixes ~15 tests in isolated tree mode.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::isDetached const):

4:43 AM Changeset in webkit [289367] by commit-queue@webkit.org
  • 10 edits in trunk

[GStreamer] Test webkit/WebKitWebView/display-usermedia-permission-request times out
​https://bugs.webkit.org/show_bug.cgi?id=235955

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-08
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The RealtimeMediaSource representing the GStreamer mock display source now correctly
reflects the corresponding capture device type (either Window or Screen). As that source
actually wraps a MockRealtimeVideoSourceGStreamer, a couple more methods from
RealtimeMediaSource had to be overridden.

  • platform/mediastream/RealtimeMediaSource.h: Allow subclasses to override setMuted and isProducingData.
  • platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp: Handle SystemAudio as

Speaker devices, for now.
(WebCore::GStreamerCaptureDeviceManager::refreshCaptureDevices):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Refactor, leveraging the

new has{Audio,Video} methods.
(mediaStreamTrackPrivateGetTags):
(webkitMediaStreamNew):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcConfigureAudioTracks):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp: Map source type to

capture device type, proxy mute configuration and ending logic to wrapped source.
(WebCore::MockDisplayCaptureSourceGStreamer::create):
(WebCore::MockDisplayCaptureSourceGStreamer::MockDisplayCaptureSourceGStreamer):
(WebCore::MockDisplayCaptureSourceGStreamer::requestToEnd):
(WebCore::MockDisplayCaptureSourceGStreamer::setMuted):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:

Source/WebKit:

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConfigureMediaCapture): Don't notify display capture updates as camera capture
updates.

Tools:

  • TestWebKitAPI/glib/TestExpectations.json: Unflag test now passing.
4:32 AM Changeset in webkit [289366] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE] Developer extras are always enabled by default
​https://bugs.webkit.org/show_bug.cgi?id=236295

Reviewed by Carlos Garcia Campos.

No new tests.

  • UIProcess/API/wpe/WPEView.cpp:

(View::View): Remove call to unconditionally set the developer extras setting.

4:26 AM Changeset in webkit [289365] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

RealtimeOutgoingVideoSourceCocoa rotation session should not use IOSurface
​https://bugs.webkit.org/show_bug.cgi?id=236139

Reviewed by Eric Carlson.

Introduce a parameter to use IOSurface or not in ImageRotationSessionVT.
Make use of that parameter in RealtimeOutgoingVideoSourceCocoa to disable IOSurface use.

Covered by existing tests.

  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm:

(WebCore::createIOSurfaceCVPixelBufferPool):
(WebCore::createInMemoryCVPixelBufferPool):

  • platform/graphics/cv/ImageRotationSessionVT.h:
  • platform/graphics/cv/ImageRotationSessionVT.mm:

(WebCore::ImageRotationSessionVT::ImageRotationSessionVT):
(WebCore::ImageRotationSessionVT::rotate):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):

3:59 AM Changeset in webkit [289364] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/master.cfg

[ews] Do not configure GitHub hooks on local testing instance
​https://bugs.webkit.org/show_bug.cgi?id=236266

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/master.cfg:

Canonical link: ​https://commits.webkit.org/246952@main

3:53 AM Changeset in webkit [289363] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Adding new files fails to compile after SharedWorkerObjectConnection.h changes
​https://bugs.webkit.org/show_bug.cgi?id=236294

Add forward declarations and includes.
Unreviewed build fix.

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-08

Source/WebCore:

  • workers/shared/SharedWorkerObjectConnection.h:

Source/WebKit:

  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h:
3:33 AM Changeset in webkit [289362] by youenn@apple.com
  • 6 edits in trunk/Source

MediaSampleAVFObjC::createImageSample should take a presentationTime as parameter
​https://bugs.webkit.org/show_bug.cgi?id=236067

Reviewed by Eric Carlson.

Source/WebCore:

Add additional parameters to createImageSample that will be used by WebKit.
No change of behavior.

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:

(WebCore::MediaSampleAVFObjC::createImageSample):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::createImageSample):

Source/WebKit:

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::videoSampleAvailable):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):

3:28 AM Changeset in webkit [289361] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

SharedVideoFrameReader could directly take a IPCHandle
​https://bugs.webkit.org/show_bug.cgi?id=236068

Reviewed by Eric Carlson.

Move more code in SharedVideoFrameReader::setSharedMemory, as a refactoring.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameMemory):

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::setSharedVideoFrameMemory):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::setSharedVideoFrameMemory):

  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp:

(WebKit::SharedVideoFrameReader::setSharedMemory):

  • WebProcess/GPU/webrtc/SharedVideoFrame.h:

(WebKit::SharedVideoFrameReader::setSharedMemory): Deleted.

1:53 AM Changeset in webkit [289360] by Nikolas Zimmermann
  • 3 edits in trunk/Source/WebCore

RenderLayer: Simplify RenderElement::paint() calls
​https://bugs.webkit.org/show_bug.cgi?id=236192

Reviewed by Simon Fraser.

Introduce "paintOffsetForRenderer(fragment, localPaintingInfo)" inline helper:
return toLayoutPoint(fragment.layerBounds.location() - rendererLocation() + localPaintingInfo.subpixelOffset)

Avoid repeating this formula in various places in RenderLayer - unify it.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::collectEventRegionForFragments):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::paintOffsetForRenderer const):

Feb 7, 2022:

9:47 PM Changeset in webkit [289359] by ysuzuki@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Convert JSString's non-atomic WTF::String to atomic string while concurrent compilers / heap threads run
​https://bugs.webkit.org/show_bug.cgi?id=236262

Reviewed by Saam Barati.

Inspired from r289177. This patch introduces a new protocol which allows us to replace JSString's underlying non-atomic String
to atomic String if we once call toIdentifier / toAtomString.

We had a problem that,

  1. We have a JSString, which has a "test" WTF::String.
  2. We already have "test" atomic string in the table.
  3. Then, when we call JSString::toIdentifier, we know that there is an atomic "test" string, but we cannot replace the current JSString's WTF::String because it can be accessed concurrently from concurrent compilers and GC heap helpers.
  4. Thus, JSString keeps non atomic "test" WTF::String.

But this means that we need to lookup atom string table every time we would like to get an atom string from this JSString.

So, in this patch, we introduce a new protocol, which allows swapping existing WTF::String with an atom string.

When we found that JSString has a WTF::String and we already have atom string in the table with the same content (when calling
toIdentifier / toAtomString), we attempt to replace JSString's WTF::String with the atom string, but *keep the old string in JSC::Heap's
vector called m_possiblyAccessedStringsFromConcurrentThreads. Then, we can keep these strings alive until next GC ends. This ensures that
all concurrent compilers / heap helpers can keep accessing to the old strings. And then, in the GC finalize, we clear this vector since
resumed concurrent compilers and GC heap helpers will not touch these old strings in the next GC cycle. Only case we have a problem is
that we keep having StringImpl* of the old string after GC safepoint in the concurrent compiler, and the only use of that is
DFG::Graph::m_copiedStrings. So, I changed the code not to keep old StringImpl* in DFG::Graph::m_copiedStrings. Also, note that we do
this only when we convert non-atom string to atom string so all UniquedStringImpl* from JSString* (it is atom ones) does not matter since
they are already atom one: they will not be replaced.

This does not increase memory usage, rather, improve memory usage since this kept string was anyway held by the wrapper's JSString at least
until the next GC run. And we clear m_possiblyAccessedStringsFromConcurrentThreads in the next GC run, so we can shrink memory.

It improves Speedometer2 by 0.2%.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |106.193333 |105.690000 |0.995260 | 0.050074 |
| VueJS-TodoMVC |21.671667 |21.741667 |1.003230 | 0.715305 |
| EmberJS-TodoMVC |113.146667 |110.871667 |0.979893 | 0.000000 (significant) |
| BackboneJS-TodoMVC |42.481667 |42.346667 |0.996822 | 0.358040 |
| Preact-TodoMVC |15.796667 |16.016667 |1.013927 | 0.226011 |
| AngularJS-TodoMVC |117.568333 |117.345000 |0.998100 | 0.543369 |
| Vanilla-ES2015-TodoMVC |58.348333 |57.905000 |0.992402 | 0.000381 (significant) |
| Inferno-TodoMVC |54.656667 |54.946667 |1.005306 | 0.254310 |
| Flight-TodoMVC |61.106667 |61.141667 |1.000573 | 0.880780 |
| Angular2-TypeScript-TodoMVC |37.030000 |37.065000 |1.000945 | 0.918550 |
| VanillaJS-TodoMVC |47.741667 |47.911667 |1.003561 | 0.497675 |
| jQuery-TodoMVC |205.251667 |203.903333 |0.993431 | 0.000420 (significant) |
| EmberJS-Debug-TodoMVC |312.448333 |308.848333 |0.988478 | 0.000020 (significant) |
| React-TodoMVC |78.381667 |78.268333 |0.998554 | 0.654647 |
| React-Redux-TodoMVC |131.246667 |131.626667 |1.002895 | 0.138912 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |57.860000 |57.533333 |0.994354 | 0.156536 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 290.61106
b mean = 291.21768
pValue = 0.1419936818
(Bigger means are better.)
1.002 times better
Results ARE NOT significant

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::prepareJumpTableForStringSwitch):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.h:
  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::CrossThreadStringTranslator::hash):
(JSC::DFG::CrossThreadStringTranslator::equal):
(JSC::DFG::CrossThreadStringTranslator::translate):
(JSC::DFG::LazyJSValue::tryGetString const):

  • dfg/DFGLazyJSValue.h:

(JSC::DFG::LazyJSValue::knownStringImpl):

  • heap/Heap.cpp:

(JSC::Heap::finalize):

  • heap/Heap.h:

(JSC::Heap::appendPossiblyAccessedStringFromConcurrentThreads):

  • runtime/JSString.h:

(JSC::JSString::swapToAtomString const):
(JSC::JSString::toIdentifier const):
(JSC::JSString::toAtomString const):

8:59 PM Changeset in webkit [289358] by commit-queue@webkit.org
  • 3 edits
    1 copy in trunk/Source/WTF

Unreviewed, reverting r289256.
​https://bugs.webkit.org/show_bug.cgi?id=236284

EWS is reporting build failures

Reverted changeset:

"Replace "Copy WTF Headers" with native build phases"
​https://bugs.webkit.org/show_bug.cgi?id=235744
​https://commits.webkit.org/r289256

8:43 PM Changeset in webkit [289357] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

Unreviewed, reverting r289227.
​https://bugs.webkit.org/show_bug.cgi?id=236282

Crash on AS debug builds

Reverted changeset:

"Move
DocumentTimeline::runningAnimationsForRendererAreAllAccelerated()
to Styleable"
​https://bugs.webkit.org/show_bug.cgi?id=236239
​https://commits.webkit.org/r289227

8:24 PM Changeset in webkit [289356] by Cameron McCormack
  • 8 edits
    2 deletes in trunk/Source/WebCore

Remove HTMLSourceTracker
​https://bugs.webkit.org/show_bug.cgi?id=236259

Reviewed by Geoffrey Garen.

Since the removal of the XSS Auditor in bug 230499, the tracking of
attribute locations that HTMLSourceTracker does is unused.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizerLoop):

  • html/parser/HTMLDocumentParser.h:
  • html/parser/HTMLSourceTracker.cpp: Removed.
  • html/parser/HTMLSourceTracker.h: Removed.
  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::beginAttribute):
(WebCore::HTMLToken::endAttribute):
(WebCore::HTMLToken::setAttributeBaseOffset): Deleted.

  • html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::processToken):

  • html/parser/HTMLTokenizer.h:

(WebCore::HTMLTokenizer::setTokenAttributeBaseOffset): Deleted.

7:31 PM Changeset in webkit [289355] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Prevent removal of isolated objects from a different parent than the current parent.
​https://bugs.webkit.org/show_bug.cgi?id=236250
<rdar://problem/88585928>

Reviewed by Chris Fleizach.

AXObjectCache::remove may be called for an object after that object has
been re-parented. In those cases, we don't want to remove the corresponding
isolated object from its new location in the tree.
In addition, AXIsolatedTree:removeSubtreeFromNodeMap now properly updates
the children IDs for the parent of the object being removed.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChange):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::nodeAncestryChanges):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):

7:00 PM Changeset in webkit [289354] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Wasm crash on ​https://copy.sh/v86/?profile=dsl
​https://bugs.webkit.org/show_bug.cgi?id=236037
rdar://88358719

Reviewed by Mark Lam.

Lower stack args in Air had a bug where it was emitting a constant
materialization at the wrong instruction offset for certain types
of spill instructions. This happens when we have a stack slot that
is 8 bytes wide, but we're emitting a zero def Move32. We need to
zero the upper 4 bytes. However, there is also code inside lower
stack args that uses the temp register when encountering offsets
that are too large to encode in a single instruction. However,
this offset materialization code for the second Move32 to zero
the upper bytes was happening before the actual store. For example,
we'd end up with:
movz x16, #k
movz x16, #k2
stur x1, [x16]
stur zr, [x16]

instead of
movz x16, #k
stur x1, [x16]
movz x16, #k2
stur zr, [x16]

  • b3/air/AirLowerStackArgs.cpp:

(JSC::B3::Air::lowerStackArgs):

  • b3/air/testair.cpp:
6:58 PM Changeset in webkit [289353] by Ben Nham
  • 21 edits
    2 adds in trunk

Add PushService
​https://bugs.webkit.org/show_bug.cgi?id=235857

Reviewed by Brady Eidson.

Source/WebKit:

This adds PushService to webpushd. It handles requests to create, remove, and get push
subscriptions. It also decrypts incoming pushes and pass them back to the UI process via the
existing machinery in WebPushDaemon.

PushService primarily interacts with two objects:

  1. PushServiceConnection: this creates and removes push subscriptions from the push server. It also receives incoming pushes from the push server.
  2. PushDatabase: this persists push subscriptions to disk.

Several things are not yet implemented; for instance, we currently always grant a page the
permission to receive pushes. This will be fixed in future patches.

Covered by new API tests. The current tests use a MockPushServiceConnection that vends
subscription with fixed data, but this can be improved in the future.

  • Shared/API/Cocoa/WKMain.h:
  • Shared/API/Cocoa/WKMain.mm:

(WKWebPushDaemonMain):

  • Shared/Cocoa/WebPushMessageCocoa.mm: add ability to distinguish between an empty vs. null payload.

(WebKit::WebPushMessage::fromDictionary):
(WebKit::WebPushMessage::toDictionary const):

  • Shared/WebPushDaemonConstants.h:

(WebKit::WebPushD::messageTypeSendsReply):

  • Shared/WebPushMessage.h:

(WebKit::WebPushMessage::decode):

  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/MockPushServiceConnection.h:
  • webpushd/MockPushServiceConnection.mm:

(WebPushD::MockPushServiceConnection::generateClientKeys):
(WebPushD::MockPushServiceConnection::subscribe):
(WebPushD::MockPushServiceConnection::unsubscribe):

  • webpushd/PushService.h: Added.

(WebPushD::PushService::connection):
(WebPushD::PushService::database):
(WebPushD::PushService::didReceivePushMessage):

  • webpushd/PushService.mm: Added.

(WebPushD::updateTopicLists):
(WebPushD::PushService::create):
(WebPushD::PushService::createMockService):
(WebPushD::PushService::PushService):
(WebPushD::makePushSubscriptionFromRecord):
(WebPushD::makePushTopic):
(WebPushD::PushServiceRequest::bundleIdentifier):
(WebPushD::PushServiceRequest::scope):
(WebPushD::PushServiceRequest::PushServiceRequest):
(WebPushD::PushServiceRequestImpl::PushServiceRequestImpl):
(WebPushD::PushServiceRequestImpl::fulfill):
(WebPushD::PushServiceRequestImpl::reject):
(WebPushD::GetSubscriptionRequest::GetSubscriptionRequest):
(WebPushD::GetSubscriptionRequest::startInternal):
(WebPushD::SubscribeRequest::SubscribeRequest):
(WebPushD::SubscribeRequest::startImpl):
(WebPushD::SubscribeRequest::attemptToRecoverFromTopicAlreadyInFilterError):
(WebPushD::UnsubscribeRequest::UnsubscribeRequest):
(WebPushD::UnsubscribeRequest::startInternal):
(WebPushD::PushService::enqueuePushServiceRequest):
(WebPushD::PushService::finishedPushServiceRequest):
(WebPushD::PushService::getSubscription):
(WebPushD::PushService::didCompleteGetSubscriptionRequest):
(WebPushD::PushService::subscribe):
(WebPushD::PushService::didCompleteSubscribeRequest):
(WebPushD::PushService::unsubscribe):
(WebPushD::PushService::didCompleteUnsubscribeRequest):
(WebPushD::makeRawPushMessage):
(WebPushD::PushService::didReceivePushMessage):

  • webpushd/PushServiceConnection.h:
  • webpushd/PushServiceConnection.mm:

(WebPushD::PushServiceConnection::generateClientKeys):

  • webpushd/WebPushDaemon.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::MessageInfo::injectEncryptedPushMessageForTesting::encodeReply):
(WebPushD::Daemon::startMockPushService):
(WebPushD::Daemon::startPushService):
(WebPushD::Daemon::setPushService):
(WebPushD::Daemon::runAfterStartingPushService):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::injectEncryptedPushMessageForTesting):
(WebPushD::Daemon::handleIncomingPush):
(WebPushD::Daemon::getPendingPushMessages):
(WebPushD::Daemon::subscribeToPushService):
(WebPushD::Daemon::unsubscribeFromPushService):
(WebPushD::Daemon::getPushSubscription):
(WebPushD::Daemon::getPushPermissionState):

  • webpushd/WebPushDaemonMain.h:
  • webpushd/WebPushDaemonMain.mm:

(WebKit::WebPushDaemonMain):

  • webpushd/com.apple.webkit.webpushd.mac.plist:
  • webpushd/webpushd.cpp:

(main):

Source/WTF:

Add PushAPIEnabled to WebKitLegacy so we can enable it on in API tests via _WKExperimentalFeature.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • Modifed the existing injected push test to inject different types of real push objects from APS (an empty push, an aesgcm-encrypted push, and an aes128gcm-encrypted push).
  • Add a few basic test cases for subscribing and unsubscribing from push.
  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(-[NotificationScriptMessageHandler setMessageHandler:]):
(-[NotificationScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::testWebPushDaemonPList):
(TestWebKitAPI::createMessageDictionary):
(TestWebKitAPI::sendMessageToDaemon):
(TestWebKitAPI::sendMessageToDaemonWaitingForReply):
(TestWebKitAPI::sendConfigurationWithAuditToken):
(TestWebKitAPI::TEST):
(TestWebKitAPI::function): Deleted.

6:58 PM Changeset in webkit [289352] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r289150. rdar://problem/88521016

Don't use adattributiond on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236157

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-04
Reviewed by John Wilander.

It is still having configuration issues such as rdar://88334217

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:58 PM Changeset in webkit [289351] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r289144. rdar://problem/88585404

[libpas] allocation failure crash should be PAS_NEVER_INLINE
​https://bugs.webkit.org/show_bug.cgi?id=236164

Reviewed by Saam Barati.

We introduce pas_allocation_result_crash_on_error function which can leave OOM crash
information in the crash log. To keep this non-inlined, we annotate it PAS_NEVER_INLINE.

  • libpas/src/libpas/pas_allocation_result.h: (pas_allocation_result_crash_on_error):
  • libpas/src/libpas/pas_utils.c: (pas_panic_on_out_of_memory_error):
  • libpas/src/libpas/pas_utils.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289144 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:58 PM Changeset in webkit [289350] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r289123. rdar://problem/88501750

[iOS][macOS] Adjust sysctl sandbox access
​https://bugs.webkit.org/show_bug.cgi?id=236082
<rdar://problem/88436174>

Reviewed by Brent Fulgham.

Adjust sysctl sandbox access based on telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289123 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:58 PM Changeset in webkit [289349] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r289108. rdar://problem/88599722

HTMLMediaElement should dispatch the resize event asynchronously
​https://bugs.webkit.org/show_bug.cgi?id=230895

Reviewed by Darin Adler.

Source/WebCore:

The HTMLMediaElement is currently queueing a task to dispatch the resize event in the post layout phase.
There is no need to run it synchronously and we could move it to another queue were it will be run
asynchronously as it was done for other similar tasks in the past.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::layoutSizeChanged):

LayoutTests:

  • media/modern-media-controls/media-controller/media-controller-resize.html: Remove the event listener to avoid an extra notification.
  • platform/mac/TestExpectations: Unskipped tests that pass now.
  • platform/wincairo/TestExpectations: Ditto.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289108 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:58 PM Changeset in webkit [289348] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r289081. rdar://problem/87163253

Delay writing origin file in NetworkStorageManager
​https://bugs.webkit.org/show_bug.cgi?id=235897
rdar://87163253

Reviewed by Geoffrey Garen.

Revert r288924 that delays writing origin file to when OriginStorageManager is destroyed, and take a different
approach that schedules a async task to write origin file. PLT results show that the new approach can also make
up for PLT regresion caused by r286936, where network process started to write origin file before replying sync
storage message from web process.

  • NetworkProcess/storage/NetworkStorageManager.cpp: (WebKit::NetworkStorageManager::localOriginStorageManager):
  • NetworkProcess/storage/OriginStorageManager.cpp: (WebKit::OriginStorageManager::OriginStorageManager): (WebKit::OriginStorageManager::~OriginStorageManager): Deleted.
  • NetworkProcess/storage/OriginStorageManager.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289081 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:58 PM Changeset in webkit [289347] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r289072. rdar://problem/88439656

[iOS][WP] Add access to required syscalls
​https://bugs.webkit.org/show_bug.cgi?id=236087
<rdar://problem/88439656>

Reviewed by Brent Fulgham.

Add access to required syscalls which are rarely used. This is based on recent telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289072 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:58 PM Changeset in webkit [289346] by Russell Epstein
  • 7 edits in branches/safari-613-branch/Source

Cherry-pick r289062. rdar://problem/87617695

Crash at com.apple.WebKit: WebKit::RemoteLayerBackingStore::display
​https://bugs.webkit.org/show_bug.cgi?id=236003
Source/WebCore:

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-03
Reviewed by Simon Fraser.

  • platform/graphics/GraphicsLayerContentsDisplayDelegate.h: Add a comment not to call PlatformCALayer::setBackingStoreAttached()
  • platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm: Clear the PlatformCALayer contents in more explicit way.

Source/WebKit:

<rdar://87617695>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-03
Reviewed by Simon Fraser.

Using UI-side compositing, following chain would be the cause a crash:
PlatformCALayerRemote::recursiveBuildTransaction
RemoteLayerBackingStore::display
PlatformCALayer::platformCALayerLayerDisplay
WebProcessGraphicsContextGLCocoa.mm DisplayBufferDisplayDelegate::display
PlatformCALayer::setContents(nullptr)

The nullptr contents happens when the WebGL context does not have
display buffer yet or when the display buffer creation would fail.

Setting empty layer contents would destroy the RemoteLayerBackingStore,
even though the callstack is in process of displaying the layer to the
backing store.

When setting PlatformCALayer contents "empty", clear the backing store instead
of removing the backing store.

Tested by LayoutTests/webgl (under ASAN, ios simulator)

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::setContents):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289062 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289345] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r289060. rdar://problem/86337125

null ptr deref in RenderTreeBuilder::Block::attachIgnoringContinuation
​https://bugs.webkit.org/show_bug.cgi?id=234170

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-03
Reviewed by Antti Koivisto.

Source/WebCore:

When an element with "display: contents" is put into the top layer, its computed style for
the display property becomes "block" [1]. However, RenderTreeUpdater::updateElementRenderer
does not manage well this transition. In particular, a null ptr deref happens for some
special configuration involving a <dialog style="display: contents">. To work around that
issue, always force tearing down renderers when updating an element in the top layer.

[1] ​https://fullscreen.spec.whatwg.org/#new-stacking-layer

Test: fast/layers/top-layer-display-contents-crash.html

  • rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::updateElementRenderer): Always force tearing down renderers for top layer element.

LayoutTests:

Add regression test.

  • fast/css/top-layer-display-contents-crash-expected.txt: Added.
  • fast/css/top-layer-display-contents-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289060 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289344] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r289052. rdar://problem/88382949

[GPUP] Add read access to sysctl properties
​https://bugs.webkit.org/show_bug.cgi?id=236018
<rdar://problem/88382949>

Reviewed by Darin Adler.

Add read access to sysctl properties based on telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289052 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289343] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r289026. rdar://problem/87358372

Remove debug log accidentally added with r289018
​https://bugs.webkit.org/show_bug.cgi?id=236000

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289026 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289342] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick r289024. rdar://problem/88222677

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp: (JSC::SecureARM64EHashPins::initializeAtStartup): (JSC::SecureARM64EHashPins::allocatePinForCurrentThread): (JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
  • assembler/SecureARM64EHashPinsInlines.h: (JSC::SecureARM64EHashPins::pinForCurrentThread):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289024 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289341] by Russell Epstein
  • 5 edits
    1 move
    1 add
    1 delete in branches/safari-613-branch

Cherry-pick r289021. rdar://problem/88599774

CSP: Fix matching wildcard hosts
​https://bugs.webkit.org/show_bug.cgi?id=235992

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations.

  • web-platform-tests/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub-expected.txt:

Source/WebCore:

As per the spec wildcard hosts must include the leading '.' for matches:
​https://www.w3.org/TR/CSP3/#match-hosts.

Test: http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked.html

  • page/csp/ContentSecurityPolicySource.cpp: (WebCore::ContentSecurityPolicySource::hostMatches const):

LayoutTests:

Rewrite test to expect CSP3 compliant behavior.

  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked.html: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed.html.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289021 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289340] by Russell Epstein
  • 40 edits
    1 add in branches/safari-613-branch/Source

Cherry-pick r289018. rdar://problem/87358372

Use private relay for all subresources if the main document main resource was loaded using private relay
​https://bugs.webkit.org/show_bug.cgi?id=236000
Source/WebCore:

<rdar://87358372>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

This can be manually tested using instructions in the radar.

  • loader/DocumentLoader.h: (WebCore::DocumentLoader::setMainResourceWasPrivateRelayed): (WebCore::DocumentLoader::mainResourceWasPrivateRelayed const):

Source/WebCore/PAL:

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/PendingDownload.cpp: (WebKit::PendingDownload::didReceiveResponse):
  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkDataTask.cpp: (WebKit::NetworkDataTask::didReceiveResponse):
  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
  • NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveResponse): (WebKit::NetworkLoad::notifyDidReceiveResponse):
  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::encode const): (WebKit::NetworkResourceLoadParameters::decode):
  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::transferToNewWebProcess): (WebKit::NetworkResourceLoader::didReceiveResponse): (WebKit::NetworkResourceLoader::sendDidReceiveResponsePotentiallyInNewBrowsingContextGroup): (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): (WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::didReceiveResponse):
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp: (WebKit::PreconnectTask::didReceiveResponse):
  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: (WebKit::ServiceWorkerFetchTask::processResponse):
  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp: (WebKit::ServiceWorkerNavigationPreloader::loadWithCacheEntry): (WebKit::ServiceWorkerNavigationPreloader::willSendRedirectedRequest): (WebKit::ServiceWorkerNavigationPreloader::didReceiveResponse):
  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp: (WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse):
  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::didReceiveResponse):
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
  • Shared/PrivateRelayed.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::addParametersShared):
  • WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::mainFrameMainResource const): (WebKit::WebResourceLoader::willSendRequest): (WebKit::WebResourceLoader::didReceiveResponse):
  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289018 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289339] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288957. rdar://problem/88300200

[iOS][WP] Add access in sandbox to Mach message
​https://bugs.webkit.org/show_bug.cgi?id=236021
<rdar://88300200>

Reviewed by Brent Fulgham.

Add access in sandbox to required Mach message in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288957 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289338] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288949. rdar://problem/88226432

ServiceWorkerNavigationPreloader should only be used once
​https://bugs.webkit.org/show_bug.cgi?id=235882
<rdar://88226432>

Reviewed by Chris Dumez.

Source/WebKit:

In case service worker preload is being used and related service worker context crashes (or service worker context sends bad messages),
We can end up in a bad state where we will ask the preload twice for the same response (once for good, and the next one as we go to didNotHandle case).
To prevent this, we add checks in loadResponseFromPreloader and loadBodyFromPreloader.
As part of this investigation, I found out that ServiceWorkerNavigationPreloader is not correctly handling the case of preload responses coming from cache.
In particular, no body will be given since we return early in waitForBody in case the preload network load is null.
Prevent this by making sure waitForBody calls the response completion handler if available, even if the preload network load is null.
And update the response body callback before executing the response completion handler to make sure data received synchronously from the preload is given to the service worker fetch task.

Test: http/wpt/service-workers/fetch-service-worker-preload-cache.https.html

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:

LayoutTests:

  • http/wpt/service-workers/fetch-service-worker-preload-cache.https-expected.txt: Added.
  • http/wpt/service-workers/fetch-service-worker-preload-cache.https.html: Added.
  • http/wpt/service-workers/resources/fetch-service-worker-preload-script.py:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288949 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289337] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288933. rdar://problem/87402941

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
​https://bugs.webkit.org/show_bug.cgi?id=235989
<rdar://87402941>

Reviewed by Wenson Hsieh.

Crash data suggest that m_scrollingCoordinator can be null in ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged(),
which is true if the scrolling tree keeps ThreadedScrollingTree alive longer than the scrolling coordinator.

As in the other functions in this file, early return if m_scrollingCoordinator is null.

  • page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288933 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289336] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288924. rdar://problem/87163253

Write origin file when OriginStorageManager is destroyed
​https://bugs.webkit.org/show_bug.cgi?id=235897
rdar://87163253

Reviewed by Darin Adler.

The first WebStorage message sent from web process to network process is sync, and writing origin file when
creating OriginStorageManager will delay the reply. Since we can get the origin information from in-memory map
when OriginStorageManager is present, we may delay the write to until when OriginStorageManager is destroyed.
This fixes the PLT regression from r286936.

  • NetworkProcess/storage/NetworkStorageManager.cpp: (WebKit::NetworkStorageManager::localOriginStorageManager):
  • NetworkProcess/storage/OriginStorageManager.cpp: (WebKit::OriginStorageManager::OriginStorageManager): (WebKit::OriginStorageManager::~OriginStorageManager):
  • NetworkProcess/storage/OriginStorageManager.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288924 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289335] by Russell Epstein
  • 7 edits in branches/safari-613-branch/Source

Cherry-pick r288922. rdar://problem/88172449

[WP] Remove PostScript conversion code
​https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Tim Horton.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

Source/WebCore:

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::convertedDataIfNeeded const):
  • platform/graphics/cg/PDFDocumentImage.cpp: (WebCore::PDFDocumentImage::convertPostScriptDataToPDF): Deleted.
  • platform/graphics/cg/PDFDocumentImage.h:

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::pluginInfo): (WebKit::PDFPlugin::streamDidReceiveResponse): (WebKit::PDFPlugin::manualStreamDidReceiveResponse):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288922 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289334] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288898. rdar://problem/87785042

Protect NetworkConnectionToWebProcess::createFetchTask from a null service worker connection
​https://bugs.webkit.org/show_bug.cgi?id=235878
<rdar://87785042>

Reviewed by Chris Dumez.

After ​https://bugs.webkit.org/show_bug.cgi?id=234179, there is no guarantee that we have a SWServer/SWServerConnection per session ID.
This is only guaranteed if there is a corresponding network session.
We add null pointer checks to NetworkConnectionToWebProcess::swConnection() which now returns a pointer.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::createFetchTask): (WebKit::NetworkConnectionToWebProcess::swConnection):
  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp: (WebKit::ServiceWorkerFetchTask::softUpdateIfNeeded):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288898 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289333] by Russell Epstein
  • 10 edits in branches/safari-613-branch/Source

Cherry-pick r288885. rdar://problem/88591342

Enhance sanitizeStackForVM() to assist with crash analysis.
​https://bugs.webkit.org/show_bug.cgi?id=235752
rdar://81014601

Reviewed by Michael Saboff.

Source/JavaScriptCore:

  1. Remove the AssemblyHelpers version of sanitizeStack. Instead, make the 3 JIT operation functions call sanitizeStackForVM() instead. This ensures that sanitizeStack crashes are not obscured as generic JIT crashes.
  1. Add sanity check RELEASE_ASSERTs to VM::setLastStackTop() with a capture of the relevant variables for crash analysis.
  1. Fix logSanitizeStack() so that it no longer relies on vm.topCallFrame. vm.topCallFrame may not be properly initialized at all the places that sanitizeStackForVM() is called.
  1. Add a JSLock check to sanitizeStackForVM(), and return early if not owned by the current thread. If the JSLock is not owned by the current thread, we can't rely on vm.lastStackTop() being a sane value. Hence, it's not possible to do stack sanitization correctly.

Add sanity check RELEASE_ASSERTs to sanitizeStackForVM() with a capture of
the relevant variables for crash analysis.

  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::sanitizeStackInline): Deleted.
  • jit/AssemblyHelpers.h:
  • jit/JITOperations.cpp: (JSC::JSC_DEFINE_JIT_OPERATION):
  • jit/ThunkGenerators.cpp: (JSC::slowPathFor):
  • runtime/JSLock.cpp: (JSC::JSLock::didAcquireLock): (JSC::JSLock::grabAllLocks):
  • runtime/VM.cpp: (JSC::VM::VM): (JSC::VM::setLastStackTop): (JSC::logSanitizeStack): (JSC::sanitizeStackForVM):
  • runtime/VM.h:

Source/WTF:

  • wtf/Threading.h: (WTF::Thread::savedStackPointerAtVMEntry const): (WTF::Thread::savedLastStackTop const): (WTF::Thread::savedStackPointerAtVMEntry): Deleted. (WTF::Thread::savedLastStackTop): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288885 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:57 PM Changeset in webkit [289332] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288881. rdar://problem/80246192

Animation from scale(0) has missing backing store
​https://bugs.webkit.org/show_bug.cgi?id=227733
<rdar://problem/80246192>

Reviewed by Simon Fraser.

Source/WebCore:

Use the style recorded before we applied animations to this element the last
time we resolved style for keyframes that don't set a value for the "transform"
property.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):

LayoutTests:

Add a new test which animates two squares, one on top of each other. The bottom square uses an animation
that has an explicit "from" value of scale(0) and an explicit "to" value of scale(1) and is black. The top
square uses an animation that has an explicit "from" value of scale(0) but no explicit "to" value, thus
animating to scale(1) as well, and is white, matching the background color.

The bug we are fixing is that the square with an implicit "to" value would not yield a visible animation
since we wouldn't account for the scale(1) target value and assuming we're never animating to a non-0
value.

This test assumes that both animations run at the same time and thus the white square will always cover
the black square (which is smaller to ensure no issues at the edges) and yield a completely white page.

  • webanimations/accelerated-transform-animation-from-scale-zero-and-implicit-to-kefyrame-expected.html: Added.
  • webanimations/accelerated-transform-animation-from-scale-zero-and-implicit-to-kefyrame.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288881 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289331] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288879. rdar://problem/88322836

[css-cascade] Fix removal of not yet loaded CSS @import
​https://bugs.webkit.org/show_bug.cgi?id=235930

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add new test.

  • web-platform-tests/css/css-cascade/import-removal-expected.html: Added.
  • web-platform-tests/css/css-cascade/import-removal.html: Added.

Source/WebCore:

When removing a not yet loaded CSS @import, the hasPendingSheet() flag
was not cleared. This resulted in a completely blank page.
This patch makes sure to cancel the load before deleting the rule.

Test: imported/w3c/web-platform-tests/css/css-cascade/import-removal.html

  • css/StyleRuleImport.cpp: (WebCore::StyleRuleImport::cancelLoad):
  • css/StyleRuleImport.h:
  • css/StyleSheetContents.cpp: (WebCore::StyleSheetContents::wrapperDeleteRule):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288879 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289330] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288874. rdar://problem/88217815

AX: nullptr crash under AccessibilityRenderObject::computeAccessibilityIsIgnored
​https://bugs.webkit.org/show_bug.cgi?id=235945
rdar://88217815

Reviewed by Andres Gonzalez.

This is similar to ​https://bugs.webkit.org/show_bug.cgi?id=161276.

  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

m_renderer is a WeakPtr and can become null during parentObjectUnignored call, same as
the case below.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288874 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289329] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288867. rdar://problem/86320218

Fix handling of access key events
​https://bugs.webkit.org/show_bug.cgi?id=234147
<rdar://problem/86320218>

Reviewed by David Kilzer.

Improve focus handling for HTMLElement-based elements to ensure accessKey events
are properly dispatched.

  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::press): Ensure correct object is used after 'accessKeyAction' is invoked.
  • dom/EventDispatcher.cpp: (WebCore::callDefaultEventHandlersInBubblingOrder) Protect element during default event bubbling.
  • html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::reportValidity): Ensure correct element is used after focus event.
  • page/EventHandler.cpp: (WebCore::EventHandler::handleAccessKey): Ensure correct object is used after 'accessKeyAction' is invoked.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288867 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289328] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r288866. rdar://problem/88303899

[libpas] get_num_free_bytes_for_each_heap_callback() is called with arg pointing to uninitialized stack memory
<​https://webkit.org/b/235931>
<rdar://problem/88303899>

Reviewed by Yusuke Suzuki.

  • libpas/src/libpas/pas_all_heaps.c: (pas_all_heaps_get_num_free_bytes):
  • Initialize result stack variable to zero.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289327] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288864. rdar://problem/87192657

[iOS] Don't register undo actions in undoManager overridden by WKWebView client
​https://bugs.webkit.org/show_bug.cgi?id=235928
<rdar://problem/87192657>

Patch by Matt Gilligan <​matthew_gilligan@apple.com> on 2022-01-31
Reviewed by Tim Horton.

  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::registerEditCommand): Use -[WKContentView undoManagerForWebView] rather than -undoManager to prevent registering actions in an undo manager overridden by a WKWebView subclass. This ensures that all actions are registered in the same manager. If the client has disabled groupsByEvent on the overridden undoManager, this prevents an exception from being thrown due to registering actions outside of an undo group.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288864 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289326] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288860. rdar://problem/88584471

[iOS] Clean up some issues in the 'com.apple.WebKit.adattributiond.sb' sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235929
<rdar://88081007>

Patch by Brent Fulgham <Brent Fulgham> on 2022-01-31
Reviewed by Alex Christensen.

Revise a few syntax issues in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288860 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289325] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288848. rdar://problem/86950638

Web Inspector: [Cocoa] Crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange
​https://bugs.webkit.org/show_bug.cgi?id=235842

Reviewed by Timothy Hatcher.

Speculatively fix an occasional crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange by ensuring that
the WebInspectorUIProxy still exists before calling attachmentViewDidChange.

Currently we are sometimes crashing while attempting to m_objCAdapter.get(), which is the first use of a
member variable in WebInspectorUIProxy::attachmentViewDidChange. This retain pointer should never be able to
not exists, since it storing nil is a valid state. This points to the WebInspectorUIProxy itself no longer
existing. The fix is to check that we actually have a WebInspectorUIProxy before calling
attachmentViewDidChange. This is also just good practice since WebPageProxy::inspector() is also able to
return nullptr under certain circumstances, and all other calls to it are guarded to check if the
WebInspectorUIProxy is still around first.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setInspectorAttachmentView):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288848 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289324] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source

Cherry-pick r288831. rdar://problem/88268450

[iOS] SharePlay is shown prominently for system-provided Share Sheets
​https://bugs.webkit.org/show_bug.cgi?id=235895
rdar://88268450

Reviewed by Wenson Hsieh.

Source/WebKit:

Content shared using the Web Share API should not display a SharePlay action.

  • UIProcess/Cocoa/WKShareSheet.mm: (-[WKShareSheet presentWithShareDataArray:inRect:]):

Use -[UIActivityViewController setExcludedActivityTypes:] to ensure
a SharePlay action is not displayed.

Source/WTF:

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289323] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288827. rdar://problem/87815745

Source/WebCore:
Changed playbackRate and defaultPlaybackRate from unrestricted double
to double.
​https://bugs.webkit.org/show_bug.cgi?id=235174
rdar://problem/87815745

Patch by Takeshi Sone <​takeshi.sone@gmail.com> on 2022-01-31
Reviewed by Eric Carlson.

Test: media/video-playbackrate-undefined.html

  • html/HTMLMediaElement.idl:

LayoutTests:
Added a test to verify that setting undefined to video.playbackRate
raises an exception.
​https://bugs.webkit.org/show_bug.cgi?id=235174
rdar://problem/87815745

Patch by Takeshi Sone <​takeshi.sone@gmail.com> on 2022-01-31
Reviewed by Eric Carlson.

  • media/video-playbackrate-undefined-expected.txt: Added.
  • media/video-playbackrate-undefined.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289322] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288825. rdar://problem/88172449

[WP] Remove PostScript conversion code
​https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Brent Fulgham.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::streamDidFinishLoading): (WebKit::PDFPlugin::manualStreamDidFinishLoading): (WebKit::PDFPlugin::convertPostScriptDataIfNeeded): Deleted.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289321] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288801. rdar://problem/88186663

(REGRESSION)[IFC][RTL] wpt/css/css-text/white-space/trailing-space-and-text-alignment-rtl-003.html
​https://bugs.webkit.org/show_bug.cgi?id=235823
<rdar://problem/88186663>

Reviewed by Antti Koivisto.

Source/WebCore:

Reset the trailing whitespace bidi level before handing them over to visual reordering.
see ​https://unicode.org/reports/tr9/#L1
"L1. On each line, reset the embedding level of the following characters to the paragraph embedding level:

...
Any sequence of whitespace characters ... at the end of the line."

It ensures that

<div style="width: 2ch; direction: rtl">AB C</div>

and

<div style="direction: rtl">AB </div>

both have the trailing whitespace positioned _visually_ as trailing (and not leading) content.

After the bidi paragraph processing "AB C" gets a uniform bidi level of 2, while "AB " is split into "AB" and " "
with bidi levels of 2 and 1 respectively.
In the latter case, the difference in bidi levels makes the runs flip visually at reordering.
It makes the trailing whitespace "pushed" to the left side of the "AB" making it _visually_ trailing (the content renders as " AB").
However in case of "AB C" with the line breaking position after " ", we would end up with a single run of "AB " with the bidi level of 2.
This run would render as "AB " turning the trailing whitespace into a _visually_ leading whitespace.

In this patch we ensure that the trailing (non-collapsible) whitespace runs

  1. are detached from their adjoining non-whitespace text runs and
  2. they get their bidi levels reset

Test: fast/text/rtl-pre-wrap-hanging-offset.html

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp: (WebCore::Layout::InlineDisplayLineBuilder::build const):

LayoutTests:

  • fast/text/rtl-pre-wrap-hanging-offset-expected.html: Added.
  • fast/text/rtl-pre-wrap-hanging-offset.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289320] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288800. rdar://problem/88241513

[LFC][IFC] Do not break content at an inline box boundary
​https://bugs.webkit.org/show_bug.cgi?id=235868

Reviewed by Antti Koivisto.

Source/WebCore:

Handle nested inline boxes, when the breaking position is between at an inline box boundary.
e.g.

<div style="width: 1px"><span><span><span>this_content_overflow</span></span></span></div>

while the breaking position is between the 3rd <span> and the letter 't', we should not let the first
line have all the <span><span><span> content only, but instead find a more reasonable breaking position by
looking at the previous runs.
This patch expands "findTrailingRunIndex" to find multiple, subsequent (nested) inline boxes.

Test: fast/inline/nested-inline-box-with-word-break.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::findTrailingRunIndex):

LayoutTests:

  • fast/inline/nested-inline-box-with-word-break-expected.html: Added.
  • fast/inline/nested-inline-box-with-word-break.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289319] by Russell Epstein
  • 12 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288789. rdar://problem/88043325

Capturing WebGL canvas through peer connection shows the image flipped
​https://bugs.webkit.org/show_bug.cgi?id=235600
<rdar://problem/88043325>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-29
Reviewed by Dean Jackson.

Source/WebCore:

Mirror and rotate the WebGL image at the source since WebRTC
does not support mirroring.

Test: webrtc/canvas-to-peer-connection.html

  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::paintCompositedResultsToMediaSample):
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm: (WebCore::IOSurface::setOwnershipIdentity):
  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm: (WebCore::setOwnershipIdentityForCVPixelBuffer):

LayoutTests:

Test sending WebGL image through a peer connection to a local video
and assert that the image is as drawn.

  • platform/glib/TestExpectations:
  • webrtc/canvas-to-peer-connection-expected.txt: Added.
  • webrtc/canvas-to-peer-connection.html: Added.
  • webrtc/routines.js:
  • webrtc/video-replace-track.html:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289318] by Russell Epstein
  • 7 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288783. rdar://problem/88052073

REGRESSION(r281687): Space widths have synthetic bold applied to them in the fast text codepath but not the complex text codepath
​https://bugs.webkit.org/show_bug.cgi?id=235755
<rdar://problem/88052073>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/synthetic-bold-space-width-expected.html: Added.
  • web-platform-tests/css/css-fonts/synthetic-bold-space-width.html: Added.

Source/WebCore:

r281687 made Font::widthForGlyph() return the non-synthetically-expanded width,
instead of the synthetically-expanded width.

I think this is philosophically correct, because Font::widthForGlyph() is called before shaping,
and shaping requires the original width. If some custom code is asking for the width of specific
characters without going through WidthIterator or ComplexTextController, that code needs to
determine whether or not it's going to run shaping, and thus when it should be adding in the
synthetic offset.

adjustGlyphsAndAdvances() used to subtract out the synthetic offset because it was expecting
Font::widthForGlyph() to return the already-expanded width. So, the solution is just stop subtracting
the offset, because it hasn't been applied in the first place.

Test: imported/w3c/web-platform-tests/css/css-fonts/synthetic-bold-space-width.html

  • platform/graphics/ComplexTextController.cpp: (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
  • platform/graphics/Font.h:

LayoutTests:

  • platform/mac/fast/text/atsui-multiple-renderers-expected.txt:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289317] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288776. rdar://problem/88214729

[macOS][WP] Temporarily add syscall to sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235841
<rdar://88197549>

Reviewed by Brent Fulgham.

Temporarily add syscall to sandbox in the WebContent process on macOS. This can be removed when <rdar://88210738> is fixed.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289316] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288754. rdar://problem/88035818

Ensure session is added in network process when it creates connection to web process
​https://bugs.webkit.org/show_bug.cgi?id=235754

Reviewed by Chris Dumez.

In NetworkProcess::CreateNetworkConnectionToWebProcess, if the session that web process is using is not added
yet, WorkQueueMessageReceiver cannot be added to the connection and storage messages will be dropped. Usually
session is added in NetworkProcess::AddWebsiteDataStore, which is sent from UI process before
NetworkProcess::CreateNetworkConnectionToWebProcess; but CreateNetworkConnectionToWebProcess message has
DispatchMessageEvenWhenWaitingForSyncReply flag set, so it might get processed earlier.

To fix the issue, now we send set DispatchMessageEvenWhenWaitingForSyncReply flag on AddWebsiteDataStore message
too, so it's processed before CreateNetworkConnectionToWebProcess.

  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::addSession):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [289315] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288711. rdar://problem/88160246

[iOS][macOS] Removed unneeded telemetry
​https://bugs.webkit.org/show_bug.cgi?id=235742

Reviewed by Darin Adler.

Remove some telemetry we have sufficient data for.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288711 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289314] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WTF

Cherry-pick r288706. rdar://problem/88152385

Change version number for HAVE_PASSKIT_DEFAULT_SHIPPING_METHOD
​https://bugs.webkit.org/show_bug.cgi?id=235732
<rdar://problem/88152385>

Reviewed by Wenson Hsieh.

  • wtf/PlatformHave.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288706 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289313] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288659. rdar://problem/88593390

Unreviewed, reverting r288614.

Caused layout test crashes

Reverted changeset:

"REGRESSION(r287684) speedtest.net uses many GB of memory"
​https://bugs.webkit.org/show_bug.cgi?id=235615
​https://commits.webkit.org/r288614

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288659 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289312] by Russell Epstein
  • 20 edits in branches/safari-613-branch

Cherry-pick r288631. rdar://problem/88020080

Unreviewed, revert r286855 as it caused form submission issues
​https://bugs.webkit.org/show_bug.cgi?id=235645
<rdar://88020080>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setChecked): (WebCore::HTMLInputElement::didChangeForm): (WebCore::HTMLInputElement::insertedIntoAncestor): (WebCore::HTMLInputElement::removedFromAncestor): (WebCore::HTMLInputElement::checkedRadioButtonForGroup const):
  • html/InputType.h: (WebCore::InputType::willUpdateCheckedness): Deleted.
  • html/RadioInputType.cpp: (WebCore::RadioInputType::valueMissing const): (WebCore::RadioInputType::willUpdateCheckedness): Deleted.
  • html/RadioInputType.h:

LayoutTests:

  • fast/forms/radio/ValidityState-valueMissing-radio-expected.txt:
  • fast/forms/radio/ValidityState-valueMissing-radio.html:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288631 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289311] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288620. rdar://problem/87771490

[MacOS] Set kAudioOutputUnitProperty_CurrentDevice on CoreAudioSharedUnit outputBus
​https://bugs.webkit.org/show_bug.cgi?id=235632
<rdar://87771490>

Reviewed by Eric Carlson.

When VPIO is used for rendering audio, it is not always updating the audio route when system default speaker is updated.
While it is doing so when capturing using the built-in microphone, it is not doing so with BT microphones.

To make it reliable, we are now setting kAudioOutputUnitProperty_CurrentDevice on the output bus to the default output device.
Whenever we detect a change of default output device, we reconfigure the audio unit to select the new default output device.

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp: (WebCore::BaseAudioSharedUnit::devicesChanged):
  • platform/mediastream/mac/BaseAudioSharedUnit.h: (WebCore::BaseAudioSharedUnit::setOutputDeviceID): (WebCore::BaseAudioSharedUnit::validateOutputDevice):
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::setupAudioUnit): (WebCore::CoreAudioSharedUnit::validateOutputDevice):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288620 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289310] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288617. rdar://problem/88046988

ASSERTION FAILED: !hasPendingSheets() under WebCore::Style::Scope::~Scope()
​https://bugs.webkit.org/show_bug.cgi?id=235612
<rdar://problem/88046988>

Reviewed by Alan Bujtas.

  • dom/Document.cpp: (WebCore::Document::didRemoveAllPendingStylesheet):

Don't try to scroll to anchor if we don't have a view. This avoids hitting ASSERT(!m_inRemovedLastRefFunction)
trying to ref the document during teardown (with refererencing node count still non-zero).

  • dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::removedFromDocument):

Ensure we always remove the Element from the pending sheet list when it is removed from the document.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288617 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289309] by Russell Epstein
  • 12 edits in branches/safari-613-branch

Cherry-pick r288605. rdar://problem/87948317

REGRESSION (iOS 15.2): Loading gets stuck after back-navigation involving COOP header
​https://bugs.webkit.org/show_bug.cgi?id=235475
<rdar://problem/87948317>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure ShouldTreatAsContinuingLoad is properly propagated for back/forward navigations,
not just regular loadRequests.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadURL): (WebCore::FrameLoader::loadWithNavigationAction): (WebCore::FrameLoader::loadPostRequest): (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): (WebCore::FrameLoader::loadDifferentDocumentItem):
  • loader/FrameLoader.h:

Source/WebKit:

WebPageProxy::continueNavigationInNewProcess() was failing to pass the identifier of the
NetworkResourceLoader that needs to be resumed to ProvisionalPageProxy::goToBackForwardItem().
It was only passing it to ProvisionalPageProxy::loadRequest(), which is used for non-back/forward
navigations. As a result, in case of COOP process-swap on back/forward navigation, the network
process would start a fresh load instead of resuming the existing one. The fresh load would get
a COOP header and thus trigger yet another process swap (and so on in a loop).

Also fix an issue where ProvisionalPageProxy::goToBackForwardItem() would always use
ShouldTreatAsContinuingLoad::YesAfterNavigationPolicyDecision even in the case of a COOP
process-swap. In the case of a COOP process-swap, we should pass in
ShouldTreatAsContinuingLoad::YesAfterProvisionalLoadStarted. This was causing us to
do an extra call to didStartProvisionalLoad() and was causing the new API test to hit
an assertion on debug builds.

Covered by new API test.

  • UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::goToBackForwardItem):
  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::launchProcessForReload): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::continueNavigationInNewProcess): (WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadRequest): (WebKit::WebPage::loadData): (WebKit::WebPage::goToBackForwardItem):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288605 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289308] by Russell Epstein
  • 16 edits in branches/safari-613-branch

Cherry-pick r288590. rdar://problem/87984277

Disable input-security CSS property
​https://bugs.webkit.org/show_bug.cgi?id=235557
rdar://87984277

Reviewed by Dean Jackson.

Source/WebCore:

CSSWG is planning to remove input-security from CSS UI 4
(​https://github.com/w3c/csswg-drafts/issues/6788).

Keep the property around as an experimental feature, so that
it can be used in the UA stylesheet, and easily turned on if the
resolution is not finalized.

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp: (WebCore::CSSParserContext::CSSParserContext):

Enable input-security when parsing the UA stylesheet, as it is used to
obscure text in password inputs.

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserFastPaths.cpp: (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSInputSecurityEnabled preference.

  • WebPreferences.cpp: (WebPreferences::cssInputSecurityEnabled):
  • WebPreferences.h:
  • WebView.cpp: (WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Make input-security a disabled-by-default experimental feature.

Tools:

  • DumpRenderTree/TestOptions.cpp: (WTR::TestOptions::defaults):

Add default for WebKitLegacy on Windows.

LayoutTests:

  • fast/css/computed-text-security-for-input-security.html:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288590 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289307] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288586. rdar://problem/87994712

[macOS] Observe CFNetwork preference domain
​https://bugs.webkit.org/show_bug.cgi?id=235603
<rdar://87994712>

Reviewed by Darin Adler.

Since the Networking process is now using CF prefs direct mode, the CFNetwork preference domain should be observed for changes.

  • UIProcess/Cocoa/PreferenceObserver.mm: (-[WKPreferenceObserver init]):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288586 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289306] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288564. rdar://problem/87268956

REGRESSION(r281419): iCloud.com Notes web app fonts render incorrectly
​https://bugs.webkit.org/show_bug.cgi?id=235559
<rdar://problem/87268956>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character-expected.txt: Added.
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html: Added.

Source/WebCore:

Chrome and Firefox render U+0000 NULL as invisible. We should do the same, despite it technically being classified as a control character.

​https://github.com/w3c/csswg-drafts/pull/6983

Test: imported/w3c/web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html

  • platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::applyCSSVisibilityRules):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288564 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289305] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288553. rdar://problem/87976757

Missing EnabledBySetting=WebXREnabled where Conditional=WEBXR exists
​https://bugs.webkit.org/show_bug.cgi?id=235527

Reviewed by Darin Adler.

Manually tested.

  • Modules/webxr/XRFrameRequestCallback.idl:
  • html/canvas/WebGLContextAttributes.idl:
  • html/canvas/WebGLRenderingContextBase.idl:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288553 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289304] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288549. rdar://problem/86452550

Unreviewed, reverting r282374.
​https://bugs.webkit.org/show_bug.cgi?id=235587

Introduced perf regression

Reverted changeset:

"Playback stops although the progress bar moves"
​https://bugs.webkit.org/show_bug.cgi?id=230210
​https://commits.webkit.org/r282374

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288549 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289303] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288547. rdar://problem/87824766

(REGRESSION r287485) [LFC][IFC] Incorrect RTL content position when intrusive float is present
​https://bugs.webkit.org/show_bug.cgi?id=235547
<rdar://87824766>

Reviewed by Antti Koivisto.

Source/WebCore:

The float box coordinates are always visual. They need to be converted to
logical to be able to properly constrain the available space on the current line.

Test: fast/inline/intrusive-float-with-rtl-content.html

  • layout/formattingContexts/inline/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::floatConstraints const):

LayoutTests:

  • fast/inline/intrusive-float-with-rtl-content-expected.html: Added.
  • fast/inline/intrusive-float-with-rtl-content.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288547 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289302] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288543. rdar://problem/84958961

REGRESSION(r282320): [Cocoa] User-installed fonts don't work in the GPU Process (in WKWebView)
​https://bugs.webkit.org/show_bug.cgi?id=235449
<rdar://problem/84958961>

Reviewed by Darin Adler.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WebKit:

The reason for this bug was I was misusing kCTFontOptionsSystemUIFont. I thought this flag just
meant "allow the creation of system fonts" but it turns out it means something more subtle than
that. Instead of unconditionally specifying this flag, we should just pull out the options field
from the source font (which will include that flag if the font was a system font) and use that
instead.

Test: fast/text/user-installed-canvas.html

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: (IPC::ArgumentCoder<Ref<WebCore::Font>>::encodePlatformData): (IPC::createCTFont): (IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):

LayoutTests:

  • fast/text/user-installed-canvas-expected.html: Added.
  • fast/text/user-installed-canvas.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288543 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289301] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/87986840

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:55 PM Changeset in webkit [289300] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288536. rdar://problem/87981122

REGRESSION (r286932): Fixed position elements jiggle sometimes (Twitter, Facebook)
​https://bugs.webkit.org/show_bug.cgi?id=235543
<rdar://87981122>

Reviewed by Tim Horton.

In r286932 we ensure that the scrolling layer's position gets committed in the scrolling
thread to reduce stutters. However, we also have to do the same for fixed and sticky
layers, because they need to committed in synchrony with the scrolling layer.

Also change some 'override' to 'final' and add locking annotations.

  • page/scrolling/cocoa/ScrollingTreeFixedNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h:
  • page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm: (WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288536 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289299] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288493. rdar://problem/82554226

REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
​https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>

Unreviewed, adress post-review feedback.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289298] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r288478. rdar://problem/72567903

Regression (r286936): SessionStorage data is not cleared when deleting website data by modification time
​https://bugs.webkit.org/show_bug.cgi?id=235542

Reviewed by Chris Dumez.

Source/WebKit:

The old behavior before r286936 is to delete SessionStorage data regardless of the modifiedSince parameter.
r286936 made it check modifiedSince and perform deleteion when modifiedSince time is -Walltime::infinity. This
patch corrects it by deleting SessionStorage data when modifiedSince time is in the past.

API test: SessionStorage.ClearByModificationTime

  • NetworkProcess/storage/OriginStorageManager.cpp: (WebKit::OriginStorageManager::StorageBucket::deleteData):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm: (TEST):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288478 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289297] by Russell Epstein
  • 9 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288466. rdar://problem/82554226

REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
​https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>

Reviewed by Jer Noble.
Source/WebCore:

An iOS application loses its NowPlaying status as soon as the AudioSession category
is set to Ambient, and it can only get it back again by changing the category
to Playback *and* starting playback. When an application is in the background, however,
it can't start playback unless it *already* has NowPlaying status. So, ipso facto,
background playback will always fail once the category is set to Ambient.

If an AudioSession's category is set to Playback when it is activated, it will
interrupt another application playing audio, activate Bluetooth routes, etc.
This means WebKit has to relinquish Playback when a page is unable to produce audio
because AVFoundation automatically activates the audio session when playback starts

  • even if the AVPlayer is muted or has no audio.

To allow pages that were playing audio when WebKit went into the background to
continue to play after switching urls or activating another media element, add a
grace period when switch from Playback to Ambient.

Test: media/audio-session-category.html

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState):

Source/WebKit:

  • WebProcess/GPU/media/RemoteAudioSession.cpp: (WebKit::RemoteAudioSession::category const): Return the most recently set category on all platforms so it is possible to test.

LayoutTests:

  • fast/mediasession/metadata/audio-track-enabled.html: Wait longer for the audio session category to be reset.
  • media/audio-session-category-expected.txt: Added.
  • media/audio-session-category.html: Added.
  • platform/gtk/TestExpectations: Skip new test.
  • platform/mac-wk1/TestExpectations: Skip new test, MediaStream isn't supported on WK1.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288466 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289296] by Russell Epstein
  • 9 edits in branches/safari-613-branch/Source/ThirdParty/libwebrtc

Cherry-pick r288464. rdar://problem/87884184

Cherry-pick WebRTC 235826 change
​https://bugs.webkit.org/show_bug.cgi?id=235510
<rdar://87884184>

Reviewed by Eric Carlson.

Cherry-picking above fixing for compliance.

  • Source/webrtc/media/engine/webrtc_media_engine.cc:
  • Source/webrtc/media/engine/webrtc_media_engine.h:
  • Source/webrtc/media/engine/webrtc_media_engine_unittest.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.cc:
  • Source/webrtc/media/engine/webrtc_video_engine.h:
  • Source/webrtc/media/engine/webrtc_voice_engine.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map_unittest.cc:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288464 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289295] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288463. rdar://problem/87977499

file.stream() is slow and CPU-bound
​https://bugs.webkit.org/show_bug.cgi?id=235448

Reviewed by Alex Christensen.

We introduce a ReadAsBinaryChunks mode to prevent storing the whole file in memory.
Use this in Blob stream implementation.
The new implementation is much faster for big files given it does not need to keep in memory the whole file.
Covered by existing tests.

  • fileapi/Blob.cpp:
  • fileapi/FileReaderLoader.cpp:
  • fileapi/FileReaderLoader.h:
  • fileapi/FileReaderLoaderClient.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288463 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289294] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/ThirdParty/libwebrtc

Cherry-pick r288461. rdar://problem/87969456

Reject large number of WebRTC audio channels
​https://bugs.webkit.org/show_bug.cgi?id=235511

Reviewed by Eric Carlson.

Cherry-picking WebRTC upstream fix for compliance.

  • Source/webrtc/pc/webrtc_sdp.cc:
  • Source/webrtc/pc/webrtc_sdp_unittest.cc:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288461 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289293] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288439. rdar://problem/88592095

Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
​https://bugs.webkit.org/show_bug.cgi?id=235397
<rdar://problem/87819949>

Reviewed by Eric Carlson and Geoff Garen.

Address post-commit comments.
Introduce a boolean to make high priority thread callbacks no-ops when reconfiguring the audio unit.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288439 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289292] by Russell Epstein
  • 12 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288387. rdar://problem/87468788

Inject Launch Services database before NSApplication is initialized
​https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>

Reviewed by Chris Dumez.

To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database. To make sure also prewarmed WebContent
processes are receiving the Launch Services database, the WebsiteDataStore method
sendNetworkProcessXPCEndpointToProcess is moved to the class NetworkProcessProxy, since prewarmed processes
will not have a data store initially. This allows us to simplify the code, since we are no longer depending
on having a Website data store before sending the XPC endpoint.

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess): (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const): Deleted.
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: (WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288387 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289291] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288362. rdar://problem/87832940

WPT version of css/css-cascade/parsing/layer-import-parsing.html crashes with nullptr
​https://bugs.webkit.org/show_bug.cgi?id=235434
rdar://87832940

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html:

Update to WPT version.

Source/WebCore:

Test: fast/css/insert-import-rule-crash.html

  • css/StyleRuleImport.cpp: (WebCore::StyleRuleImport::setCSSStyleSheet):

Null check the parent stylesheet. It can be null if the rule has been removed.

  • dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):

Also fix a debug assert in addPendingSheet, this can get called multiple times.

LayoutTests:

  • fast/css/insert-import-rule-crash-expected.txt: Added.
  • fast/css/insert-import-rule-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288362 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289290] by Russell Epstein
  • 13 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r288342. rdar://problem/87249133

[libpas] medium directory lookup should bail if begin_index is zero to catch races with expendable memory decommit (cherry pick 434465bfb8e0c285d6763cf6aa0e04982199f824)
​https://bugs.webkit.org/show_bug.cgi?id=235280

Reviewed by Yusuke Suzuki.

I've been seeing crashes in pas_segregated_heap_ensure_allocator_index where the directory that is
passed to the function doesn't match the size. The most likely reason why this is happening is that
the medium directory lookup raced with expendable memory decommit and returned the wrong directory.
To figure out how this happens, I added a bunch of tests to ExpendableMemoryTests. This change
includes various small fixes (like removing assertions) that were found by doing such testing, and it
also includes a test and a change that I think exactly catches what is going on:

  • Expendable memory is decommitted so that the medium lookup sees begin_index == 0, but end_index still has its original value. This will cause it to return a tuple that is for a too-large size class.
  • Some other thread rematerializes the expendable memory right after the medium lookup finishes, but before it loads the directory.
  • The medium lookup finally loads the directory from the tuple, and now sees a non-NULL directory, so it thinks that everything is fine.

This race barely "works" since:

  • Any other field in the medium tuple being zero would cause the medium lookup to fail, which would then cause a slow path that rematerializes expendable memory under a lock.
  • Rematerialization of expendable memory adjusts the mutation count, so this race would only go undetected if the rematerialization happened after the medium lookup search but before when the medium lookup loads the directory.

The solution is to just have the medium lookup fail if begin_index == 0. Begin_index can never
legitimately be zero, because there's no way that a size class would want to be responsible for both
index 0 (i.e. the zero-byte object) and objects big enough to require medium lookup.

This adds new tests. While running those new tests, I found and fixed two other bugs:

  • Recomputation of the index_to_small_allocator_index table subtly mishandles the cached_index case. Previously, it was only special-casing it only when the directory was not participating in lookup tables at all, but actually it needs to special-case it anytime that the directory doesn't otherwise think that it should set the entry at cached_index.
  • Expendable memory commit/decommit was playing fast-and-loose with version numbers. This fixes it so that there is a global monotonically increasing version number.
  • libpas/src/libpas/bmalloc_heap.c: (bmalloc_flex_heap_ref_get_heap): (bmalloc_auxiliary_heap_ref_get_heap): (bmalloc_get_heap):
  • libpas/src/libpas/bmalloc_heap.h:
  • libpas/src/libpas/pas_expendable_memory.c: (pas_expendable_memory_state_version_next): (pas_expendable_memory_construct): (pas_expendable_memory_commit_if_necessary): (scavenge_impl): (pas_expendable_memory_scavenge):
  • libpas/src/libpas/pas_expendable_memory.h:
  • libpas/src/libpas/pas_scavenger.c: (handle_expendable_memory): (scavenger_thread_main): (pas_scavenger_decommit_expendable_memory): (pas_scavenger_fake_decommit_expendable_memory):
  • libpas/src/libpas/pas_scavenger.h:
  • libpas/src/libpas/pas_segregated_heap.c: (medium_directory_tuple_for_index_impl): (pas_segregated_heap_medium_directory_tuple_for_index): (pas_segregated_heap_medium_allocator_index_for_index): (recompute_size_lookup): (rematerialize_size_lookup_set_medium_directory_tuple): (pas_segregated_heap_ensure_allocator_index): (check_size_lookup_recomputation_set_medium_directory_tuple): (check_size_lookup_recomputation_dump_directory): (check_size_lookup_recomputation): (check_size_lookup_recomputation_if_appropriate): (pas_segregated_heap_ensure_size_directory_for_size):
  • libpas/src/libpas/pas_segregated_heap.h:
  • libpas/src/libpas/pas_segregated_size_directory.h: (pas_segregated_size_directory_get_tlc_allocator_index):
  • libpas/src/libpas/pas_try_allocate_primitive.h: (pas_try_allocate_primitive_impl_casual_case): (pas_try_allocate_primitive_impl_inline_only):
  • libpas/src/test/ExpendableMemoryTests.cpp: (std::testRage): (std::testRematerializeAfterSearchOfDecommitted): (std::testBasicSizeClass): (addExpendableMemoryTests):
  • libpas/src/test/TestHarness.cpp: (RuntimeConfigTestScope::RuntimeConfigTestScope):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288342 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289289] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288327. rdar://problem/87423185

[macOS] Various tests hit debug assertions under SearchBuffer::search after system ICU changes
​https://bugs.webkit.org/show_bug.cgi?id=235413
rdar://87423185

Reviewed by Darin Adler.

After upgrading the system ICU version to ICU 70, many layout tests that attempt to use TextIterator on macOS
(e.g. tests in accessibility/mac) hit debug assertions underneath WebCore::SearchBuffer::search; this is
because ICU now emits U_USING_DEFAULT_WARNING as the error code when calling usearch_next(), instead of
U_ZERO_ERROR, like it did in previous versions.

This warning is propagated due to ICU falling back to the root locale (kRootLocaleName) when creating an
icu::BreakIterator, and appears to be benign. We can address this by relaxing the debug assertion in this
method to just check that the error code indicates success (i.e. "warning, or no error"), rather than strictly
being equal to U_ZERO_ERROR.

  • editing/TextIterator.cpp: (WebCore::SearchBuffer::search):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288327 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289288] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288296. rdar://problem/88593227

Disable fallback path to WebRTC platform sockets
​https://bugs.webkit.org/show_bug.cgi?id=235402

Reviewed by Eric Carlson.

We should not fallback to the legacy WebRTC socket code path in Cocoa ports.
Instead, if we cannot create the corresponding sockets (in case of ssltcp candidates for instance),
we mark the socket as closed.
Minor refactoring to show that NetworkRTCUDPSocketCocoa code path should always be successful.

Manually tested on meet.google.com which can make use of ssltcp candidates.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:
  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288296 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289287] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288233. rdar://problem/87781796

Add visibility: visible to modal dialogs in UA sheet
​https://bugs.webkit.org/show_bug.cgi?id=235369

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden.html

  • css/dialog.css: (dialog:-internal-modal-dialog):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288233 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289286] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288223. rdar://problem/87741289

Assertion is not acquired in network process when setting database journal mode
​https://bugs.webkit.org/show_bug.cgi?id=235340

Setting database journal mode requires lock, so network process needs to stay active by holding assertion.

Reviewed by Chris Dumez.

  • platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::useWALJournalMode):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288223 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289285] by Russell Epstein
  • 2 edits in branches/safari-613-branch/JSTests

Cherry-pick r288213. rdar://problem/87538657

Unreviewed, skip new test max-typed-array-length-toString.js when memory-limited
​https://bugs.webkit.org/show_bug.cgi?id=235217

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19

  • stress/max-typed-array-length-toString.js:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288213 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [289284] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288196. rdar://problem/87768936

[:has() pseudo-class] Compute specificity correctly
​https://bugs.webkit.org/show_bug.cgi?id=235351

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-complexity.html:

Fix specificity used in this test.

  • web-platform-tests/css/selectors/has-specificity-expected.txt: Added.
  • web-platform-tests/css/selectors/has-specificity.html: Added.

Source/WebCore:

"The specificity of an ':is()', ':not()', or ':has()' pseudo-class is replaced by
the specificity of the most specific complex selector in its selector list argument."

​https://www.w3.org/TR/selectors-4/#specificity-rules

Test: imported/w3c/web-platform-tests/css/selectors/has-specificity.html

  • css/CSSSelector.cpp: (WebCore::simpleSelectorSpecificityInternal):

Compute :has() specificity like :is() and :not().

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288196 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289283] by Russell Epstein
  • 9 edits in branches/safari-613-branch/Source

Cherry-pick r288185. rdar://problem/87709485

[Cocoa] Do not change preferred AudioSession buffer size when VPIO is running
​https://bugs.webkit.org/show_bug.cgi?id=235317
<rdar://87709485>

Reviewed by Eric Carlson.

Source/WebCore:

Add infra to be notified when audio capture unit is stopped.
Add a check to return early with microphone sample callback if microphone samples are not to be processed.

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:
  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
  • platform/mediastream/mac/CoreAudioCaptureSource.h:

Source/WebKit:

When we stop capturing, we might still use the VPIO unit to render audio.
In that case, it might be problematic to increase the preferred buffer size as:

  • Audio unit might stop running, hence stopping audio rendering
  • Increasing the preferred buffer size might increase latency which is not a good thing in VPIO usecases.
  • GPUProcess/media/RemoteAudioSessionProxy.cpp:
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
  • GPUProcess/media/RemoteAudioSessionProxyManager.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288185 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289282] by Russell Epstein
  • 14 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288178. rdar://problem/79296770

REGRESSION (r264352): Mail compose body field does not avoid the keyboard when scrolling after focus
​https://bugs.webkit.org/show_bug.cgi?id=235331
rdar://79296770

Reviewed by Tim Horton.

Source/WebKit:

After r264352 added the call to _page->scheduleFullEditorStateUpdate(); during element focus, scrolling to
reveal the selection in the focused body field in Mail stopped working. This is because Mail:

  1. Sets firstResponderKeyboardAvoidanceEnabled to NO on the WKScrollView, which prevents automatic inset

adjustment logic in UIKit from taking effect and adding the keyboard height to the bottom system content
inset.

  1. Manually sets -contentScrollInset on the WKScrollView during a UIKeyboardDidShowNotification, which occurs

after we've already attempted to zoom to the selection.

...combined with the fact that without the call to scheduleFullEditorStateUpdate(), the next EditorState
would've arrived only after the keyboard animation finished.

The end result is that we don't end up avoiding the keyboard at all when focusing the body field in Mail
compose. While rdar://87733414 tracks refactoring logic in WebKit2 Mail compose to ensure that the content
scroll insets on WKScrollView are applied during UIKeyboardWillShowNotification instead of after the keyboard
has finished animating in, this patch provides a short-term workaround by restoring pre-r264352 behavior, with
respect to when the element is scrolled into view.

Test: editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html

  • Platform/spi/ios/UIKitSPI.h:

Add a declaration for the -firstResponderKeyboardAvoidanceEnabled SPI property on non-internal iOS SDKs.

  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _keyboardDidShow:]):

Plumb this through to the WKContentView, so we can zoom/scroll to the focused element if needed.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView cleanUpInteraction]): (-[WKContentView _keyboardDidShow]):

If we previously deferred the call to -_zoomToRevealFocusedElement due to the keyboard still animating in,
schedule a call to it now on a 0-delay timer; this delay is necessary to ensure that this zoom occurs *after*
Mail has already set the content inset, which also happens underneath a "KeyboardDidShow" notification.

(-[WKContentView _zoomToRevealFocusedElement]):

In the case where the (presumably internal) client has set firstResponderKeyboardAvoidanceEnabled to NO and
the keyboard is animating in, defer the actual call into the web view to -_zoomToRevealFocusedElement until
after the keyboard animation is finished. This ensures compatibility with existant logic in Mail for manually
setting the content scroll inset on the WKScrollView after the keyboard animation is complete.

(-[WKContentView resetShouldZoomToFocusRectAfterShowingKeyboard]):
(-[WKContentView _elementDidBlur]):

Tools:

Add support for a UIScriptController hook to override firstResponderKeyboardAvoidanceEnabled on WKScrollView.
See LayoutTests for more details.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h: (WTR::UIScriptController::setScrollViewKeyboardAvoidanceEnabled):
  • WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformResetStateToConsistentValues):
  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptControllerIOS::setScrollViewKeyboardAvoidanceEnabled):

LayoutTests:

Add a layout test that (at least) exercises the newly added codepath, where focusing an editor when the scroll
view has firstResponderKeyboardAvoidanceEnabled set to NO will still allow us to scroll to the selection.

  • editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled-expected.txt: Added.
  • editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html: Added.
  • resources/ui-helper.js: (window.UIHelper.setScrollViewKeyboardAvoidanceEnabled):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288178 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289281] by Russell Epstein
  • 41 edits
    1 add in branches/safari-613-branch

Cherry-pick r288132. rdar://problem/87569029

CSP: Improve handling of multiple policies
​https://bugs.webkit.org/show_bug.cgi?id=235199

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Add new test expectations with more passes.

  • web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms-expected.txt:
  • web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-error-event-fires-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-multiple-policies-multiple-hashing-algorithms-expected.txt: Added.

Source/WebCore:

This fixes many issues with multiple CSP policies.

To quote the spec for script-src:

Their behavior will be blocked unless every policy allows inline script, either implicitly by not

specifying a script-src (or default-src) directive, or explicitly, by specifying "unsafe-inline",
a nonce-source or a hash-source that matches the inline block.

The previous structure was many distinct calls to check if there was a nonce in any policy, then if there
was a hash in any policy, etc, rather than actually checking the policies as a whole to know if they
allow or block a behavior. This lead to various issues where polices were not properly respected and where
reports were inaccurate.

The allScriptPoliciesAllow() function did try to consider all policies but was not very flexible and had buggy
behavior like for each policy it would call findHashOfContentInPolicies() meaning hashes from other policies
incorrectly applied to the current policy, plus general inefficiency of hashing the same content many
times over.

The new behavior relies more on passing all required information in a single function call to verify all
policies in a single pass.

  • bindings/js/CachedScriptFetcher.cpp: (WebCore::CachedScriptFetcher::requestScriptWithCache const):
  • dom/InlineStyleSheetOwner.cpp: (WebCore::InlineStyleSheetOwner::createSheet):
  • dom/ScriptElement.cpp: (WebCore::ScriptElement::requestModuleScript): (WebCore::ScriptElement::executeClassicScript):
  • dom/StyledElement.cpp: (WebCore::StyledElement::styleAttributeChanged):
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process):
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
  • loader/ResourceLoaderOptions.h:
  • loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
  • page/csp/ContentSecurityPolicy.cpp: (WebCore::parseSubResourceIntegrityIntoDigests): (WebCore::generateHashesForContent): (WebCore::ContentSecurityPolicy::allowJavaScriptURLs const): (WebCore::ContentSecurityPolicy::allowInlineEventHandlers const): (WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const): (WebCore::ContentSecurityPolicy::allowInlineScript const): (WebCore::ContentSecurityPolicy::allowInlineStyle const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allScriptPoliciesAllow const): Deleted. (WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const): Deleted. (WebCore::ContentSecurityPolicy::checkHashAndReportViolation const): Deleted.
  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp: (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptElement const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForInlineJavascriptURL const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForInlineEventHandlers const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleElement const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleAttribute const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyle const): (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashScript const): Deleted. (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashStyle const): Deleted. (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForParserInsertedScript const): Deleted. (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptAttribute const): Deleted. (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptHash const): Deleted. (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleHash const): Deleted.
  • page/csp/ContentSecurityPolicyDirectiveList.h:

LayoutTests:

Update test expectations, Some newly passing tests are no longer skipped and some have new reports.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-multiple-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-multiple-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
  • http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
  • http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked-expected.txt:
  • platform/glib/TestExpectations:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288132 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289280] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288128. rdar://problem/87711220

Copy com.apple.WebKit.adattributiond.sb into place with other iOS sandbox profiles
​https://bugs.webkit.org/show_bug.cgi?id=235320
<rdar://87711220>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-01-18
Reviewed by Per Arne Vollan.

Ever since r287100 we are using the sandbox profile, but it doesn't exist so we just crash.

  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289279] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288124. rdar://problem/87721737

Reduce failure timer in CoreAudioSharedUnit in the case we only render audio samples
​https://bugs.webkit.org/show_bug.cgi?id=235318

Reviewed by Eric Carlson.

As shown in ​https://bugs.webkit.org/show_bug.cgi?id=235317, it might be possible for a VPIO that is only used for
audio rendering to fail sometimes. Waiting for 10 seconds in that case is very long, so we reduce the verification delay to 2 seconds.
Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:
  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288124 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289278] by Russell Epstein
  • 2 edits in branches/safari-613-branch/JSTests

Cherry-pick r288120. rdar://problem/87538657

Gardening: resolve test failure on CLoop.

Not reviewed.

Change test to not rely on WebAssembly.

  • stress/max-typed-array-length-toString.js:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288120 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289277] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288110. rdar://problem/87699178

BaseAudioSharedUnit::devicesChanged is failing capture too much in GPUProcess
​https://bugs.webkit.org/show_bug.cgi?id=235288

Reviewed by Eric Carlson.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.h: In GPUProcess, we do not need to filter tap enabled devices, since this may filter out valid devices, which may break capture. Given we only need to filter tap enabled devices in the process that enumerates devices for selecting the one to use, We can reverse the default value to not filter, and enable the filtering in UIProcess as done currently based on whether capturing in GPUProcess or not.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288110 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289276] by Russell Epstein
  • 9 edits in branches/safari-613-branch/Source

Cherry-pick r288076. rdar://problem/83863292

Ensure in flight layer transactions don't accumulate further canvas drawing
​https://bugs.webkit.org/show_bug.cgi?id=231163
<rdar://problem/83863292>

Reviewed by Simon Fraser.

Source/WebCore:

When UI side compositing is enabled (as it is on iOS), we build a
layer tree transaction in RemoteLayerTreeDrawingArea::updateRendering to
send off to the UI process. At a high level, updateRendering does this:

  1. Run any requestAnimationFrame callbacks
  2. Iterate over the composited layers to draw their contents into the layer backing stores
  3. Dispatch a task to a different thread to flush the contexts of the layer backing stores and then send the transaction to the UI process

Step 3 is done off a separate task as an optimization, to get the
drawing work queued up by step 2 happening in parallel to any work the
page may day once updateRendering is finished. This can be a problem
when:

  • GPU process canvas rendering is enabled (but DOM rendering is disabled)
  • we have accelerated ImageBuffers for both layer backing stores and canvas backing stores
  • the page does canvas drawing between steps 2 and 3, which affects the contents of a canvas backing store IOSurface that was drawn into a layer backing store IOSurface while building the transaction

The way we draw the canvas contents into the layer is by creating a
CGImage from the canvas backing store ImageBuffer's IOSurface.
Normally, if we draw into an IOSurface that has been wrapped by a
CGImage, this will cause the CGImage to obtain a unique copy of the
IOSurface's pixels, rather than continue holding on to the IOSurface
itself.

When the drawing of this CGImage on to the layer backing store
IOSurface happens, the "draw image" command is queued up to be
processed later. It's only when the flush happens in step 3 above that
the drawing occurs. This means that the CGImage wrapping the IOSurface
exists until that flush.

But while the CGImage does exist, it's in the Web process, and the
canvas drawing on to the same IOSurface happens in the GPU process.
Since QuartzCore doesn't know of its existence, it doesn't cause the
copy-on-write to occur. The effect of this is that subsequent page
drawing on to the canvas can make its way into the layer transaction
unexpectedly.

This patch induces the copy-on-write in the Web process when needed,
by tracking whether a canvas has been drawn into a layer backing
store and the layer transaction flush hasn't happened yet. Just before
we do any more drawing on the canvas, if we are in this state, we
perform a no-op drawing command on the IOSurface, then flush, to make
the CGImage copy the IOSurface data out.

  • html/HTMLCanvasElement.cpp: (WebCore::imageDrawingRequiresGuardAgainstUseByPendingLayerTransaction): We only need to induce the CGImage copy-on-write behavior if both the layer and canvas backing stores are accelerated, the canvas ImageBuffer is remote, and the layer ImageBuffer is not remote. (WebCore::HTMLCanvasElement::paint): (WebCore::HTMLCanvasElement::drawingContext const): Use drawingContext as a convenient single place to check whether we are performing the first drawing command before the layer tree transaction flush has happened.
  • html/HTMLCanvasElement.h:
  • page/Page.h: (WebCore::Page::setIsAwaitingLayerTreeTransactionFlush): (WebCore::Page::isAwaitingLayerTreeTransactionFlush const):
  • platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::ensureNativeImagesHaveCopiedBackingStore):
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp: (WebCore::ImageBufferIOSurfaceBackend::ensureNativeImagesHaveCopiedBackingStore): The flush is needed since the CGImage wrapping the IOSurface will only copy the pixel data out once the no-op drawing command is processed.
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::willCommitLayerTree): (WebKit::WebPage::didFlushLayerTreeAtTime): Inform the WebCore::Page about the state of the layer tree transaction building.
  • WebProcess/WebPage/WebPage.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288076 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289275] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288053. rdar://problem/85760433

Unable to playback portrait videos on HTML canvas elements
​https://bugs.webkit.org/show_bug.cgi?id=235238

Reviewed by Jer Noble.

We need to make sure the destination pixel buffer is IOSurface-backed.
Otherwise, VTImageRotationSession cannot rotate a pixel buffer with
a compressed pixel format.

Manually tested.

Layout tests for this exist, but unless they run on an iPhone 12 or
later HW, they won't fail. For example:

  • media/video-orientation-canvas.html
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
  • platform/graphics/cv/ImageRotationSessionVT.mm: (WebCore::ImageRotationSessionVT::rotate):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288053 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289274] by Russell Epstein
  • 3 edits
    1 add in branches/safari-613-branch

Cherry-pick r288037. rdar://problem/87538657

JSStringJoiner's constructor should take a size_t length.
​https://bugs.webkit.org/show_bug.cgi?id=235217
rdar://87538657

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/max-typed-array-length-toString.js: Added.

Source/JavaScriptCore:

Also removed an unnecessary exception check in JSStringJoiner::append().
This is because appendWithoutSideEffects() cannot throw any exceptions.

  • runtime/JSStringJoiner.h: (JSC::JSStringJoiner::JSStringJoiner): (JSC::JSStringJoiner::append):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288037 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289273] by Russell Epstein
  • 12 edits
    6 adds in branches/safari-613-branch

Cherry-pick r288031. rdar://problem/82997136

[Cocoa] rVFC() isn't called for initial video load
​https://bugs.webkit.org/show_bug.cgi?id=235006

Reviewed by Eric Carlson.

Source/WebCore:

Tests: media/request-video-frame-loadstart.html

media/request-video-frame-seek.html

Add a new utility class, QueuedVideoOutput, which will pull pixel buffers out of an AVPlayerItemVideoOutput
pre-emptively. Once those pixel buffers are enqueued locally, their associated timing information can be used to
fire a callback for that buffer's display time.

Previously, paints were blocked from pulling new pixel buffers from the video output. With the QueuedVideoOutput
class, this is no longer necessary. The QueuedVideoOutput will notify its client when the image for currentTime
changes, and other clients can freely ask for the currentTime's image.

To curb runaway memory growth, frames are purged as soon as a new image for the current time is available, and when
the video output signals that its own queues were purged.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::cancelVideoFrameCallback): (WebCore::HTMLVideoElement::serviceRequestVideoFrameCallbacks):
  • html/HTMLVideoElement.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame const): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage): (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): (WebCore::MediaPlayerPrivateAVFoundationObjC::startVideoFrameMetadataGathering): (WebCore::MediaPlayerPrivateAVFoundationObjC::checkNewVideoFrameMetadata): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer): (WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): (WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime): (WebCore::MediaPlayerPrivateAVFoundationObjC::colorSpace): (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange): (WebCore::globalPullDelegateQueue): Deleted. (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): Deleted. (-[WebCoreAVFPullDelegate initWithPlayer:]): Deleted. (-[WebCoreAVFPullDelegate outputMediaDataWillChange:]): Deleted. (-[WebCoreAVFPullDelegate outputSequenceWasFlushed:]): Deleted.
  • platform/graphics/avfoundation/objc/QueuedVideoOutput.h: Added.
  • platform/graphics/avfoundation/objc/QueuedVideoOutput.mm: Added. (-[WebQueuedVideoOutputDelegate initWithParent:]): (-[WebQueuedVideoOutputDelegate outputMediaDataWillChange:]): (-[WebQueuedVideoOutputDelegate outputSequenceWasFlushed:]): (-[WebQueuedVideoOutputDelegate observeValueForKeyPath:ofObject:change:context:]): (WebCore::globalOutputDelegateQueue): (WebCore::QueuedVideoOutput::create): (WebCore::QueuedVideoOutput::QueuedVideoOutput): (WebCore::QueuedVideoOutput::~QueuedVideoOutput): (WebCore::QueuedVideoOutput::invalidate): (WebCore::decltype): (WebCore::QueuedVideoOutput::hasImageForTime const): (WebCore::QueuedVideoOutput::takeVideoFrameEntryForTime): (WebCore::QueuedVideoOutput::addCurrentImageChangedObserver): (WebCore::QueuedVideoOutput::configureNextImageObserver): (WebCore::QueuedVideoOutput::imageForCurrentTimeChanged): (WebCore::QueuedVideoOutput::addVideoFrameEntries): (WebCore::QueuedVideoOutput::purgeVideoFrameEntries): (WebCore::QueuedVideoOutput::purgeImagesBeforeTime): (WebCore::QueuedVideoOutput::rateChanged):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

LayoutTests:

  • media/request-video-frame-loadstart-expected.txt: Added.
  • media/request-video-frame-loadstart.html: Added.
  • media/request-video-frame-seek-expected.txt: Added.
  • media/request-video-frame-seek.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288031 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289272] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288003. rdar://problem/85505101

Only apply automatic minimum block-size aspect-ratio rules to non-replaced elements
​https://bugs.webkit.org/show_bug.cgi?id=235058
<rdar://85505101>

Reviewed by Alan Bujtas.

Source/WebCore:

The rules in ​https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum
that define the automatic minimum size of an element subject to an
aspect-ratio only apply if the element is non-replaced.

In constrainLogicalHeightByMinMax specifically, when min-height is
auto, after applying the aspect-ratio to produce an automatic minimum
height, we bump it up to the content height if the element has
children. This, presumably, is to account for the way the height of a
block is computed in CSS 2.2. (As CSS 2.2 doesn't have an auto value
for min-height, and a CSS Block Layout module has not been written in
terms of CSS Sizing concepts, there is no clear definition of
automatic minimum sizing for blocks at the moment.) If we erroneously
apply this to a replaced element, such as an image or video, it can
get a computed min-height equal to the intrinsic height of the image,
which may be much larger than expected.

This commit adds an is<RenderReplaced>() check for both automatic
minimum logical width and height calculations, although I was unable to
produce a test to exercise the logical width case (which does not take
the intrinsic size into account when computing the automatic minimum).

Test: fast/css/aspect-ratio-min-height-replaced.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const): (WebCore::RenderBox::constrainLogicalHeightByMinMax const):

LayoutTests:

Test that replaced elements with child content (in this case, a
<video> element's controls in the UA shadow tree) don't influence the
automatic minimum size calculation.

  • fast/css/aspect-ratio-min-height-replaced-expected.html: Added.
  • fast/css/aspect-ratio-min-height-replaced.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:53 PM Changeset in webkit [289271] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287995. rdar://problem/87458502

Avoid unnecessary call to windowScreenDidChange
​https://bugs.webkit.org/show_bug.cgi?id=235198
<rdar://87458502>

Reviewed by Geoffrey Garen.

It is a page load performance progression to avoid this call in initWithDrawingAreaProxy.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: (-[WKOneShotDisplayLinkHandler initWithDrawingAreaProxy:]):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287995 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289270] by Russell Epstein
  • 3 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r287994. rdar://problem/87055595

[libpas] pas_segregated_page_lock_with_mode in try_lock mode should check that the page still uses the lock after the try_lock
​https://bugs.webkit.org/show_bug.cgi?id=235203

Reviewed by Yusuke Suzuki.

The bug I was trying to find by assertions in bug 235190 is that lock_with_mode has an incorrect
implementation of the try_lock case. It forgets to check if the lock it acquired is the right one
after locking.

I don't know how to test this without writing a test that is very gross. It's a super subtle race
condition - one that would be hard to reliably trigger even if I used the race_test_hooks
functionality.

  • libpas/src/libpas/pas_local_allocator.c: (stop_impl):
  • libpas/src/libpas/pas_segregated_page_inlines.h: (pas_segregated_page_switch_lock_with_mode):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287994 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289269] by Russell Epstein
  • 6 edits
    1 add in branches/safari-613-branch

Cherry-pick r287992. rdar://problem/74845918

Crash in Document::updateStyleIfNeeded() when removing a node containing the drag caret
​https://bugs.webkit.org/show_bug.cgi?id=235184
rdar://74845918

Reviewed by Darin Adler.

Source/WebCore:

While performing drag and drop over editable content, DragCaretController handles updating and painting a drag
caret, which indicates where the dragged content will be inserted upon drop. If the node containing this drag
caret is disconnected, DragCaretController::nodeWillBeRemoved() resets the drag caret position and issues a
repaint on the renderer responsible for drawing the drag caret. This call to nodeWillBeRemoved() occurs in the
middle of node removal, so it's encapsulated by a ScriptDisallowedScope::InMainThread scope which causes a
release assertion in WebKit2 if anything tries to trigger layout or style updates.

Currently, if the node being removed would cause the caret position to be removed as well, DragCaretController
calls into setCaretPosition() with a null visible position, which then calls into invalidateCaretRect with
the current caret position's anchor node. In turn, invalidateCaretRect contains logic to issue a repaint on
the anchor node's renderer if the node is editable. However, to check whether the node is editable, we use the
helper function WebCore::isEditableNode(), which triggers a style update if needed, only in the case where:

  1. A style recalc is needed, and...
  2. The document contains an element with the -webkit-user-modify CSS property.

As such, dirtying element styles right before removing the drag caret's anchor node from the document while
dispatching a drag or drop event in an editor with -webkit-user-modify: read-write; is sufficient to
trigger the release assertion and cause a crash.

To address this, instead of calling clear() inside of DragCaretController::nodeWillBeRemoved(), we can
instead directly invalidate the caret rect using the current drag caret anchor (passing in true for
caretRectChanged() since we already know that the drag caret is being cleared out), and then reset the current
drag caret position and caret rect. This allows us to avoid the isEditableNode() check in this scenario when
deciding whether to trigger paint invalidation, which is unnecessary because we already know that the node
containing the caret is being removed, so the renderer is going to be repainted anyways. We also pull this logic
out into a separate helper method, clearCaretPositionWithoutUpdatingStyle(), to make it clear that we must
avoid triggering style recalc here.

Test: DragAndDropTests.DoNotCrashWhenRemovingNodeOnDrop

  • editing/FrameSelection.cpp: (WebCore::DragCaretController::nodeWillBeRemoved): (WebCore::DragCaretController::clearCaretPositionWithoutUpdatingStyle):
  • editing/FrameSelection.h:

Tools:

Add a test to exercise the crash using drag and drop in WebKit2, on both iOS and macOS.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/remove-node-on-drop.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm: (TEST):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287992 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289268] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/bmalloc

Cherry-pick r287991. rdar://problem/87557006

[libpas] add assertions that we aren't switching to a NULL lock
​https://bugs.webkit.org/show_bug.cgi?id=235190

Reviewed by Yusuke Suzuki.

This adds a pas_panic call when pas_local_allocator_stop sees a NULL page->lock_ptr. That's one
possible explanation of a very rare crash I'm seeing where return_memory_to_page fails its assertion
that we are holding the page lock.

This also adds TESTING asserts in a bunch of other places. The PAS_TESTING_ASSERTS about this are in
places that are perf-sensitive, so we probably cannot assert in production. The hope behind those is
that it will help to catch this issue in test_pas.

  • libpas/src/libpas/pas_local_allocator.c: (stop_impl):
  • libpas/src/libpas/pas_segregated_page.c: (pas_segregated_page_switch_lock_and_rebias_while_ineligible_impl):
  • libpas/src/libpas/pas_segregated_page_inlines.h: (pas_segregated_page_lock_with_unbias_not_utility): (pas_segregated_page_lock_with_unbias): (pas_segregated_page_lock): (pas_segregated_page_switch_lock_impl): (pas_segregated_page_switch_lock_with_mode):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287991 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289267] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613-branch

Cherry-pick r287981. rdar://problem/84069534

REGRESSION (r278561): Right clicking a link selects the full line with unrelated text
​https://bugs.webkit.org/show_bug.cgi?id=235172
<rdar://84069534>

Reviewed by Dean Jackson.

Source/WebCore:

r278561 slightly change highlightStateForTextBox's behavior which now (correctly) returns HighlightState::None when the
RenderText content is not part of the current selection. Prior to r278561, it returned the RenderText's original selection state
which in this case was HighlightState::End.

<div><span>A<br>B<span style="position: absolute"></span></span>C</div>

In this specific case when we select the outer <span>, we end up with the following selection states for the generated line boxes:

(B) -> "Inside"
(C) -> "None"

while previously (C) came back as "End" (note that the absolute positioned element does not generate line boxes).

Now as Line::selectionState traverses through the line boxes, it comes across an unexpected "Inside -> None" transition at the selection end boundary (B -> C)
which incorrectly leaves the line state in "Inside" and we paint the selection all the way to the end of the block.

Test: fast/editing/selection-with-absolute-positioned-empty-content.html

  • layout/integration/InlineIteratorLine.cpp: (WebCore::InlineIterator::Line::selectionState const):

LayoutTests:

  • fast/editing/selection-with-absolute-positioned-empty-content-expected.txt: Added.
  • fast/editing/selection-with-absolute-positioned-empty-content.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287981 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289266] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-613-branch

Cherry-pick r287970. rdar://problem/87423294

PCM: Same-site triggering events should support ephemeral measurement
​https://bugs.webkit.org/show_bug.cgi?id=235160
<rdar://87423294>

Reviewed by Alex Christensen.

Source/WebCore:

We added ephemeral measurement for direct response advertising in ​https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in ​https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.

The bug was that WebKit::NetworkSession::handlePrivateClickMeasurementConversion()
only checked for cross-site triggering events when handling ephemeral measurements.

Test: http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html

  • loader/PrivateClickMeasurement.cpp: (WebCore::PrivateClickMeasurement::isNeitherSameSiteNorCrossSiteTriggeringEvent):

New convenience function to enhance readability in
WebKit::NetworkSession::handlePrivateClickMeasurementConversion().

  • loader/PrivateClickMeasurement.h:

Source/WebKit:

We added ephemeral measurement for direct response advertising in ​https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in ​https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.

  • NetworkProcess/NetworkSession.cpp: (WebKit::NetworkSession::handlePrivateClickMeasurementConversion):

This function previously only checked for cross-site triggering events when
handling ephemeral measurements. Now it also checks for same-site triggering
events.

LayoutTests:

  • http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt: Added.
  • http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289265] by Russell Epstein
  • 12 edits
    5 adds in branches/safari-613-branch/Source/bmalloc

Cherry-pick r287968. rdar://problem/87256207

[libpas] thread_local_cache should not be allocated in the compact heap (cherry pick 11afcedfb5968f6894379ff1a41dd449ba7745f6)
​https://bugs.webkit.org/show_bug.cgi?id=235096

Reviewed by Yusuke Suzuki.

Thread local caches can get quite large because of how libpas uses them, we can allocate one per
thread, and we reallocate them with exponential resizing, so there's a lot of wasted space and a
decent amount of fragmentation. This shows up as occasional crashes trying to allocate a thread local
cache out of the compact heap.

This moves thread local caches out of the compact heap. They were only ever there because partial views
sometimes need to point to the local_allocator's bitvector, but that's part of the thread local cache.
So, that means that either the partial views' bits pointer cannot be a compact pointer, or the
thread_local_cache needs to be in the compact heap. So, the thread_local_cache ended up in the compact
heap to keep that pointer small.

This change works around the problem: it's rare that the partial views' bits pointer points at
the local_allocator's bits, and none of the fast path cases where we access that pointer will ever see
it in that state. So, this makes the pointer either point to a utility-heap-allocated box that contains
the full pointer, or it points at the actual array allocated in the compact heap. The utility heap is
in the compact heap, so the compact pointer can point at either one. The implementation of this is
encapsulated as pas_lenient_compact_ptr. It's a bit gross; storing to it only works when you're holding
the heap lock, for example.

This is perf-neutral on Speedometer. This is perf-neutral on JS2 cli with full JSC isoheaps (i.e. the
patch from bug 231938). It's a 0.4% regression on RAMification with full JSC isoheaps, but I'm not
going to worry about that because trunk doesn't have full JSC isoheaps, and JSC isoheaps requires some
change like this to work reliably (currently it'll randomly run out of compact heap).

  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/libpas.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_enumerate_segregated_heaps.c: (enumerate_partial_view):
  • libpas/src/libpas/pas_full_alloc_bits_inlines.h: (pas_full_alloc_bits_create_for_partial_but_not_primordial): (pas_full_alloc_bits_create_for_partial):
  • libpas/src/libpas/pas_lenient_compact_ptr.h: Added.
  • libpas/src/libpas/pas_lenient_compact_ptr_inlines.h: Added.
  • libpas/src/libpas/pas_lenient_compact_unsigned_ptr.c: Added.
  • libpas/src/libpas/pas_lenient_compact_unsigned_ptr.h: Added.
  • libpas/src/libpas/pas_local_allocator.c: (pas_local_allocator_move):
  • libpas/src/libpas/pas_local_allocator_inlines.h: (pas_local_allocator_set_up_free_bits): (pas_local_allocator_start_allocating_in_primordial_partial_view): (pas_local_allocator_bless_primordial_partial_view_before_stopping):
  • libpas/src/libpas/pas_segregated_partial_view.c: (pas_segregated_partial_view_create): (compute_summary):
  • libpas/src/libpas/pas_segregated_partial_view.h:
  • libpas/src/libpas/pas_segregated_view_allocator_inlines.h: (pas_segregated_view_will_start_allocating):
  • libpas/src/libpas/pas_thread_local_cache.c: (deallocate): (allocate_cache):
  • libpas/src/test/LotsOfHeapsAndThreads.cpp: Added. (std::testLotsOfHeapsAndThreads): (addLotsOfHeapsAndThreadsTests):
  • libpas/src/test/TestHarness.cpp: (main):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289264] by Russell Epstein
  • 15 edits in branches/safari-613-branch/Source

Cherry-pick r287959. rdar://problem/80213097

Add to Contact menu item does nothing on mac.
​https://bugs.webkit.org/show_bug.cgi?id=235154
Source/WebCore:

Reviewed by Tim Horton.

Add to Context menu item for telephone numbers did not actually show the contact card.
This was because the delgate did not tell the menu where to display the card from, so it just failed.
Plumbing that information through fixes the issue.

  • page/ChromeClient.h: (WebCore::ChromeClient::handleTelephoneNumberClick):
  • page/mac/ServicesOverlayController.mm: (WebCore::ServicesOverlayController::handleClick):

Source/WebKit:

rdar://80213097

Reviewed by Tim Horton.

Add to Context menu item for telephone numbers did not actually show the contact card.
This was because the delgate did not tell the menu where to display the card from, so it just failed.
Plumbing that information through fixes the issue.

  • Platform/mac/MenuUtilities.h:
  • Platform/mac/MenuUtilities.mm: (-[WKEmptyPresenterHighlightDelegate initWithRect:]): (-[WKEmptyPresenterHighlightDelegate revealContext:rectsForItem:]): (-[WKEmptyPresenterHighlightDelegate revealContext:shouldUseDefaultHighlightForItem:]): (WebKit::menuForTelephoneNumber):
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::showTelephoneNumberMenu):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::handleTelephoneNumberClick):
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::handleTelephoneNumberClick):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287959 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289263] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKitLegacy/mac

Cherry-pick r287951. rdar://problem/83501315

_paintBehaviorForDestinationContext should consider kCGContextTypeDisplayList type contexts as potentially being snapshots
​https://bugs.webkit.org/show_bug.cgi?id=234626
<rdar://83501315>

Patch by Matt Woodrow <Matt Woodrow> on 2022-01-12
Reviewed by Simon Fraser.

_paintBehaviorForDestinationContext currently always returns Normal for contexts that aren't a bitmap context.
AppKit now provides a context that is of type kCGContextTypeDisplayList, and we want to still potentially consider it a
snapshot paint (if the other conditions below are met). This ensure images are sync decoded for consumers that just
want a single paint.

  • WebView/WebFrame.mm: (-[WebFrame _paintBehaviorForDestinationContext:]):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287951 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289262] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r287939. rdar://problem/85082354

Correctly dirty z-order lists when showing a modal dialog
​https://bugs.webkit.org/show_bug.cgi?id=232762
<rdar://problem/85082354>

Reviewed by Alan Bujtas.

When showing a dialog element which is split into continuations, we need to ensure
to call establishesTopLayerWillChange()/establishesTopLayerDidChange() on the
layers of all the continuation renderers.

  • dom/Element.cpp: (WebCore::forEachRenderLayer): Call the provided function on the layers for all the associated render objects. It's a little cumbersome because layers relate to RenderLayerModelObject, but continuations relate to RenderBoxModelObject. (WebCore::Element::addToTopLayer): (WebCore::Element::removeFromTopLayer): (WebCore::renderLayerForElement): Deleted.
  • rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::forRendererAndContinuations):
  • rendering/RenderBoxModelObject.h: Provider a static helper to call a function on a renderer and all its continuations, if any.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287939 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289261] by Russell Epstein
  • 10 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287930. rdar://problem/85790203

[iOS] Page loading hangs for ~10s on WebProcess launch
​https://bugs.webkit.org/show_bug.cgi?id=235089

Reviewed by Eric Carlson.

WebPage::setMuted() will result in calling into the current audioCaptureFactory,
which will be by default CoreAudioAudioCaptureFactory unless replaced.
CoreAudioAudioCaptureFactory will in turn call into AVAudioSession, which will block
for multiple seconds due to the WebContent process sandbox.

Change the order in which these calls occur by configuring the audioCaptureFactory
in platformInitialize(), which occurs near the top of the constructor. This requires
access to the WebPageCreationParameters passed into the constructor, modify that method
to take a WebPageCreationParameters, and modify all the platform-specific definitions of
that method.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformInitialize):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::m_appHighlightsVisible):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::platformInitialize):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformInitialize): Deleted.
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformInitializeAccessibility): (WebKit::WebPage::platformInitialize): Deleted.
  • WebProcess/WebPage/playstation/WebPagePlayStation.cpp: (WebKit::WebPage::platformInitialize):
  • WebProcess/WebPage/win/WebPageWin.cpp: (WebKit::WebPage::platformInitialize):
  • WebProcess/WebPage/wpe/WebPageWPE.cpp: (WebKit::WebPage::platformInitialize):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287930 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289260] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r287914. rdar://problem/85451366

Protect DocumentLoader when a reference to its members is used.
​https://bugs.webkit.org/show_bug.cgi?id=233464

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-01-12
Reviewed by Brady Eidson.

Source/WebCore:

No new tests, due to our infra (bug 127676).

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ensure that DocumentLoader loader remains alive while DocumentLoader::m_mainDocumentError is used.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFinishLoadForFrame): If the navigationID is obsolete, skip update of the page load state to avoid failure of debug ASSERT.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Ensure that DocumentLoader loader remains alive while DocumentLoader::m_request is used.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287914 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289259] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r287899. rdar://problem/83925935

DataURLResourceMediaLoader decodes the URL repeatedly during a video playback
​https://bugs.webkit.org/show_bug.cgi?id=234940

Reviewed by Darin Adler.

In r264864, we adopted a new SPI to tell AVFoundation that the entire file is available for custom URLs.
As a result, during a video playback, AVFoundation will request small data ranges instead of "caching"
the whole file again.

However, that leads to efficiency issue for DataURLResourceMediaLoader. Because it needs to decode the whole
URL when AVFoundation requests a data range, which is inefficient when the URL is very long.

This patch reverts the change in r264864 for the DataURLResourceMediaLoader case to fix the performance issue.
If DataURLDecoder::decode() supports decoding a data range in the future, we can change it back for better
memory efficiency.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: (WebCore::WebCoreAVFResourceLoader::responseReceived):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287899 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289258] by Russell Epstein
  • 7 edits in branches/safari-613-branch

Cherry-pick r287891. rdar://problem/85345180

REGRESSION (r283723): Web Inspector: CSS declarations unexpectedly removed when editing property value
​https://bugs.webkit.org/show_bug.cgi?id=233195

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Re-attach CSS property if it was detached while editing.

CSSProperty is detached when focusing on property name and deleting it. Consequent edits of the detached
CSSProperty were not saved. This patch re-attaches detached property at the previous position.

  • UserInterface/Models/CSSProperty.js: (WI.CSSProperty.prototype.set name):
  • UserInterface/Models/CSSStyleDeclaration.js: (WI.CSSStyleDeclaration.prototype.newBlankProperty): (WI.CSSStyleDeclaration.prototype.insertProperty): Introduce this method since the logic is used in two different places now.

LayoutTests:

Test removing CSS property name.

  • inspector/css/modify-css-property-expected.txt:
  • inspector/css/modify-css-property.html:
  • inspector/css/resources/modify-css-property.css: (.rule-e):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287891 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:52 PM Changeset in webkit [289257] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287847. rdar://problem/86488039

ASSERTION FAILED in RenderLayer::updateClipRects
​https://bugs.webkit.org/show_bug.cgi?id=234315

Reviewed by Simon Fraser.

Source/WebCore:

In clippingRootForPainting(), the dialog element uses the top layer as its clipping root layer.
When it caculates the clip rects, it caculates all its ancestors' clip rects and caches them
including the clipping root layer. However, if the ancestor is a transformed layer, it should be
treated as a root layer. When the transformed layer updates its clip rects, the root layer won't
match the one in cache. This patch stops the dialog descendant propagating its clipping root layer
to the ancestors' in cache.

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::clipCrossesPaintingBoundary const):

LayoutTests:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287847 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:13 PM Changeset in webkit [289256] by Elliott Williams
  • 3 edits
    1 delete in trunk/Source/WTF

Replace "Copy WTF Headers" with native build phases
​https://bugs.webkit.org/show_bug.cgi?id=235744

Reviewed by Alexey Proskuryakov.

Replace the rsync-based script that copied WTF headers with Xcode-native copy file phases.
Unfortunately, this entails having separate build phases for each subdirectory of <wtf/...>.

Workspace builds may have dependencies on individual headers in WTF, and the native copy
phases provide the build system with enough information to form those task dependencies.

  • Configurations/WTF.xcconfig: Set PRIVATE_HEADERS_FOLDER_PATH.
  • Configurations/CopyWTFHeaders.xcconfig: Removed.
  • WTF.xcodeproj/project.pbxproj: Remove "Copy WTF Headers" and add copy file phases.
6:05 PM Changeset in webkit [289255] by Brent Fulgham
  • 8 edits in trunk

Always sync ResourceRequest isAppInitiated request with NSURLRequest attribution value
​https://bugs.webkit.org/show_bug.cgi?id=236167
<rdar://88490742>

Reviewed by Darin Adler.

Source/WebCore:

We should always keep the state of our 'isAppInitiated' flag in sync with the underlying
NSURLRequest object. This also corrects a problem where the 'setIsAppInitiated' method
does not mark the platform URL request as dirty, so it does not update with the correct
state of the flag.

Tests: New TestWebKitAPI Test (AppPrivacyReport.NSURLRequestConstructorAttribution)

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setIsAppInitiated):

  • platform/network/ResourceRequestBase.h:
  • platform/network/cf/ResourceRequest.h:
  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::copyRequestWithStorageSession):

  • rendering/RenderThemeIOS.mm:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
5:45 PM Changeset in webkit [289254] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

WTF::HashAndUTF8CharactersTranslator::translate() falls through ASSERT_NOT_REACHED()
<​https://webkit.org/b/234944>
<rdar://problem/87230618>

Reviewed by Darin Adler.

  • wtf/text/AtomStringImpl.cpp:

(WTF::HashAndUTF8CharactersTranslator::translate):

  • Change ASSERT_NOT_REACHED() to RELEASE_ASSERT_NOT_REACHED().
5:33 PM Changeset in webkit [289253] by jonlee@apple.com
  • 11 edits in trunk/LayoutTests

Unreviewed gardening.

Add fuzzy data to tests.

  • compositing/patterns/direct-pattern-compositing-cover.html:
  • compositing/patterns/direct-pattern-compositing-size.html:
  • css3/calc/block-mask-overlay-image-outset.html:
  • fast/backgrounds/background-opaque-clipped-gradients.html:
  • fast/borders/border-image-repeat-stretch.html:
  • fast/layers/overflow-scroll-transform-border-radius.html:
  • fast/text/international/system-language/hindi-system-font-punctuation.html:
  • fast/text/simple-lines-float.html:
  • http/tests/security/svg-image-with-cached-remote-image.html:
  • svg/clip-path/clip-opacity.html:
5:13 PM Changeset in webkit [289252] by Lauro Moura
  • 3 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes after 246907@main
​https://bugs.webkit.org/show_bug.cgi?id=236256

  • style/ContainerQueryEvaluator.cpp:
  • style/ContainerQueryEvaluator.h:
5:13 PM Changeset in webkit [289251] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitscmpy] Adopt webkitbugspy for GitHub issues (Part 3)
​https://bugs.webkit.org/show_bug.cgi?id=235899
<rdar://problem/88280520>

Reviewed by Dewei Zhu.

  • Tools/Scripts/webkitpy/init.py: Add webkitbugspy as a local dependency,

bump local dependency version dependencies.

Canonical link: ​https://commits.webkit.org/246935@main

5:13 PM Changeset in webkit [289250] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Adopt webkitbugspy for GitHub issues (Part 2)
​https://bugs.webkit.org/show_bug.cgi?id=235899
<rdar://problem/88280520>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Add webkitbugspy dependency.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub): Build on top of webkitbugspy's mock GitHub server.
(GitHub.init): Pass mock environment to base class.
(GitHub.request): Let webkitbugspy handle issues.
(GitHub.enter): Deleted.
(GitHub.exit): Deleted.
(GitHub._users): Deleted.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.PullRequest): Linked issue should be an "issue" object.
(GitHub.PRGenerator.create): Ditto.
(GitHub.PRGenerator.update): Ditto.
(GitHub.PRGenerator._contributor): Leverage webkitbugpy to retrieve information
about unknown contributors.
(GitHub.PRGenerator.comment): Leverage webkitbugspy to create comments.
(GitHub.PRGenerator.comments): Leverage webkitbugspy to retrieve comments.
(GitHub.init): Construct a tracker, populate it's user mapping.
(GitHub.credentials): Leverage webkitbugspy to retrieve credentials.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:

(TestLandGitHub.webserver): Create a mock issue.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

(TestNetworkPullRequestGitHub.webserver): Create a mock issue.

Canonical link: ​https://commits.webkit.org/246934@main

5:13 PM Changeset in webkit [289249] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Adopt webkitbugspy for GitHub issues (Part 1)
​https://bugs.webkit.org/show_bug.cgi?id=235899
<rdar://problem/88280520>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.Encoder.default): Handle API url regexes.
(Tracker.init): Match API urls.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub.init): Spell "username" correctly.
(GitHub._issue): Handle case where assignee or watchers is undefined.
(GitHub.request): Rename "api_host" to "api_remote" to match webkitscmpy.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_link):

Canonical link: ​https://commits.webkit.org/246933@main

4:22 PM Changeset in webkit [289248] by Tyler Wilcock
  • 9 edits
    5 adds in trunk

AX: Move node-dependent role computation to AccessibilityNodeObject from AccessibilityRenderObject
​https://bugs.webkit.org/show_bug.cgi?id=236166

Reviewed by Chris Fleizach.

Source/WebCore:

AccessibilityRenderObject::determineAccessibilityRole has a lot of
logic for computing the object's role that depends only on the node
associated with the object, not the renderer. This means that objects
that typically have renderers but sometimes don't (e.g. objects with
hidden + aria-hidden="false", objects with display: contents)
can't have these roles, which is wrong.

This patch improves this by moving these node-dependent role
calcuations to a new determineAccessibilityRoleFromNode function, and
changing AccessibilityRenderObject to use that.

Test: accessibility/aria-visible-element-roles.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::determineAccessibilityRoleFromNode const):
Added.
(WebCore::AccessibilityNodeObject::isDescendantOfElementType const):
(WebCore::AccessibilityNodeObject::isFileUploadButton const):
Moved to AccessibilityObject.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isButton const):
Remove unnecessary whitespace.
(WebCore::AccessibilityObject::isFileUploadButton const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
If properties of m_renderer don't yield a role, fallback to
determineAccessibilityRoleFromNode.
(WebCore::AccessibilityRenderObject::isDescendantOfElementType const):
Moved to AccessibilityNodeObject.

  • accessibility/AccessibilityRenderObject.h:

LayoutTests:

Add test to verify ARIA visible objects (e.g. those with hidden and
aria-hidden="false") compute their role and subrole properly based
on their DOM element.

  • accessibility/aria-visible-element-roles.html: Added.
  • platform/glib/accessibility/aria-visible-element-roles-expected.txt: Added.
  • platform/mac-wk1/accessibility/aria-visible-element-roles-expected.txt: Added.
  • platform/mac-wk2/accessibility/aria-visible-element-roles-expected.txt: Added.
  • platform/win/accessibility/aria-visible-element-roles-expected.txt: Added.
  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:

This patch results in a progression in computing the role of these
inputs, which before were all consided to be AXGroup:

  • input[type='date']
  • input[type='datetime-local']
  • input[type='month']
  • input[type='time']
  • input[type='week']
4:18 PM Changeset in webkit [289247] by Chris Dumez
  • 82 edits
    6 copies
    27 adds
    2 deletes in trunk

Add support for sharing Shared Workers (including across WebProcesses)
​https://bugs.webkit.org/show_bug.cgi?id=235958
<rdar://problem/88330666>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline existing WPT tests involving shared workers.

  • web-platform-tests/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub-expected.txt:
  • web-platform-tests/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/sharedworker-report-only.sub-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/sharedworker-script-src.sub-expected.txt:
  • web-platform-tests/content-security-policy/script-src/worker-set-timeout.sub-expected.txt:
  • web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/worker-inheritance.sub.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt:
  • web-platform-tests/workers/SharedWorker_dataUrl-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-blob-url.window-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-data-url-cross-origin-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-data-url.window-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import-referrer-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-import.window-expected.txt:
  • web-platform-tests/workers/modules/shared-worker-options-credentials-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/004-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/008-expected.txt:
  • web-platform-tests/workers/shared-worker-from-blob-url.window-expected.txt:
  • web-platform-tests/workers/shared-worker-name-via-options-expected.txt:
  • web-platform-tests/workers/shared-worker-options-mismatch-expected.txt:
  • web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt:

Source/WebCore:

Add support for sharing Shared Workers, including across WebProcesses. The architecture
is modeled after the one we use for Service Workers since they are very similar. I tried
sharing as much code as possible with Service Workers but some more work can probably be
done in this area.

With this change, shared workers should be mostly functional and spec compliant. However,
the feature remains disabled by default for now as there are still WPT tests failures I
need to investigate. Also, I need to implement a better process suspension logic on iOS
to replace the hack I added in this patch (to make the tests run reliably on iOS).

As with Service Workers, Shared Workers are partitioned by (Top Origin + Frame Origin)
for privacy reasons. This is achieved via the SharedWorkerKey object that we use as
HashMap key.

No new tests, covered by existing WPT tests.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::fromIdentifier):
(WebCore::SharedWorker::create):
(WebCore::SharedWorker::SharedWorker):
(WebCore::SharedWorker::~SharedWorker):
(WebCore::SharedWorker::didFinishLoading):
(WebCore::SharedWorker::virtualHasPendingActivity const):
(WebCore::SharedWorker::stop):
(WebCore::SharedWorker::terminate): Deleted.

  • workers/shared/SharedWorker.h:
  • workers/shared/SharedWorker.idl:
  • workers/shared/SharedWorkerKey.h: Added.

(WebCore::SharedWorkerKey::hash const):
(WebCore::SharedWorkerKey::encode const):
(WebCore::SharedWorkerKey::decode):
(WebCore::operator==):
(WTF::DefaultHash<WebCore::SharedWorkerKey>::hash):
(WTF::DefaultHash<WebCore::SharedWorkerKey>::equal):
(WTF::HashTraits<WebCore::SharedWorkerKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::SharedWorkerKey>::isDeletedValue):

  • workers/shared/SharedWorkerManager.cpp: Removed.

(WebCore::SharedWorkerManager::singleton): Deleted.
(WebCore::SharedWorkerManager::connect): Deleted.
(WebCore::SharedWorkerManager::scriptLoadFailed): Deleted.
(WebCore::SharedWorkerManager::scriptLoadedSuccessfully): Deleted.

  • workers/shared/SharedWorkerManager.h: Removed.
  • workers/shared/SharedWorkerObjectConnection.cpp:

(WebCore::SharedWorkerObjectConnection::fetchScriptInClient):
(WebCore::SharedWorkerObjectConnection::notifyWorkerObjectOfLoadCompletion):
(WebCore::SharedWorkerObjectConnection::postExceptionToWorkerObject):

  • workers/shared/SharedWorkerObjectConnection.h:
  • workers/shared/SharedWorkerObjectIdentifier.h: Copied from Source/WebCore/workers/shared/SharedWorkerObjectConnection.cpp.
  • workers/shared/SharedWorkerScriptLoader.cpp:

(WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
(WebCore::SharedWorkerScriptLoader::load):
(WebCore::SharedWorkerScriptLoader::notifyFinished):

  • workers/shared/SharedWorkerScriptLoader.h:

(WebCore::SharedWorkerScriptLoader::options const):
(WebCore::SharedWorkerScriptLoader::identifier const): Deleted.
(WebCore::SharedWorkerScriptLoader::options): Deleted.

  • workers/shared/context/SharedWorkerContextManager.cpp: Added.

(WebCore::SharedWorkerContextManager::singleton):
(WebCore::SharedWorkerContextManager::sharedWorker const):
(WebCore::SharedWorkerContextManager::stopSharedWorker):
(WebCore::SharedWorkerContextManager::stopAllSharedWorkers):
(WebCore::SharedWorkerContextManager::setConnection):
(WebCore::SharedWorkerContextManager::connection const):
(WebCore::SharedWorkerContextManager::registerSharedWorkerThread):
(WebCore::SharedWorkerContextManager::Connection::postConnectEvent):
(WebCore::SharedWorkerContextManager::Connection::terminateSharedWorker):

  • workers/shared/context/SharedWorkerContextManager.h: Added.

(WebCore::SharedWorkerContextManager::Connection::~Connection):
(WebCore::SharedWorkerContextManager::Connection::isClosed const):
(WebCore::SharedWorkerContextManager::Connection::setAsClosed):

  • workers/shared/context/SharedWorkerThreadProxy.cpp:

(WebCore::generateWorkerParameters):
(WebCore::SharedWorkerThreadProxy::SharedWorkerThreadProxy):
(WebCore::SharedWorkerThreadProxy::~SharedWorkerThreadProxy):
(WebCore::SharedWorkerThreadProxy::notifyNetworkStateChange):
(WebCore::SharedWorkerThreadProxy::postExceptionToWorkerObject):
(WebCore::SharedWorkerThreadProxy::createCacheStorageConnection):
(WebCore::SharedWorkerThreadProxy::createRTCDataChannelRemoteHandlerConnection):
(WebCore::SharedWorkerThreadProxy::postTaskToLoader):
(WebCore::SharedWorkerThreadProxy::postTaskForModeToWorkerOrWorkletGlobalScope):
(WebCore::SharedWorkerThreadProxy::networkStateChanged):
(WebCore::SharedWorkerThreadProxy::startWorkerGlobalScope): Deleted.
(WebCore::SharedWorkerThreadProxy::terminateWorkerGlobalScope): Deleted.
(WebCore::SharedWorkerThreadProxy::postMessageToWorkerGlobalScope): Deleted.
(WebCore::SharedWorkerThreadProxy::postTaskToWorkerGlobalScope): Deleted.
(WebCore::SharedWorkerThreadProxy::hasPendingActivity const): Deleted.
(WebCore::SharedWorkerThreadProxy::workerObjectDestroyed): Deleted.
(WebCore::SharedWorkerThreadProxy::suspendForBackForwardCache): Deleted.
(WebCore::SharedWorkerThreadProxy::resumeForBackForwardCache): Deleted.
(WebCore::SharedWorkerThreadProxy::workerGlobalScopeDestroyed): Deleted.
(WebCore::SharedWorkerThreadProxy::postMessageToWorkerObject): Deleted.
(WebCore::SharedWorkerThreadProxy::confirmMessageFromWorkerObject): Deleted.
(WebCore::SharedWorkerThreadProxy::reportPendingActivity): Deleted.
(WebCore::SharedWorkerThreadProxy::workerGlobalScopeDestroyedInternal): Deleted.

  • workers/shared/context/SharedWorkerThreadProxy.h:

Source/WebKit:

Add support for sharing Shared Workers, including across WebProcesses. The architecture
is modeled after the one we use for Service Workers since they are very similar. I tried
sharing as much code as possible with Service Workers but some more work can probably be
done in this area.

With this change, shared workers should be mostly functional and spec compliant. However,
the feature remains disabled by default for now as there are still WPT tests failures I
need to investigate. Also, I need to implement a better process suspension logic on iOS
to replace the hack I added in this patch (to make the tests run reliably on iOS).

As with Service Workers, Shared Workers are partitioned by (Top Origin + Frame Origin)
for privacy reasons. This is achieved via the SharedWorkerKey object that we use as
HashMap key.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::m_schemeRegistry):
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSharedWorkerContextConnection):
(WebKit::NetworkConnectionToWebProcess::establishSharedWorkerServerConnection):
(WebKit::NetworkConnectionToWebProcess::closeSharedWorkerContextConnection):
(WebKit::NetworkConnectionToWebProcess::unregisterSharedWorkerConnection):
(WebKit::NetworkConnectionToWebProcess::sharedWorkerServerToContextConnectionIsNoLongerNeeded):
(WebKit::NetworkConnectionToWebProcess::sharedWorkerConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::ensureSharedWorkerServer):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::sharedWorkerServer):

  • NetworkProcess/SharedWorker/WebSharedWorker.cpp: Copied from Source/WebKit/WebProcess/Storage/WebSharedWorkerObjectConnection.cpp.

(WebKit::WebSharedWorker::WebSharedWorker):
(WebKit::WebSharedWorker::~WebSharedWorker):
(WebKit::WebSharedWorker::fromIdentifier):
(WebKit::WebSharedWorker::registrableDomain const):

  • NetworkProcess/SharedWorker/WebSharedWorker.h: Added.

(WebKit::WebSharedWorker::identifier const):
(WebKit::WebSharedWorker::key const):
(WebKit::WebSharedWorker::workerOptions const):
(WebKit::WebSharedWorker::origin const):
(WebKit::WebSharedWorker::url const):
(WebKit::WebSharedWorker::sharedWorkerObjects):
(WebKit::WebSharedWorker::isRunning const):
(WebKit::WebSharedWorker::markAsRunning):
(WebKit::WebSharedWorker::fetchResult const):
(WebKit::WebSharedWorker::setFetchResult):
(WebKit::WebSharedWorker::didFinishFetching const):

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp: Added.

(WebKit::WebSharedWorkerServer::WebSharedWorkerServer):
(WebKit::WebSharedWorkerServer::sessionID):
(WebKit::WebSharedWorkerServer::requestSharedWorker):
(WebKit::WebSharedWorkerServer::didFinishFetchingSharedWorkerScript):
(WebKit::WebSharedWorkerServer::needsContextConnectionForRegistrableDomain const):
(WebKit::WebSharedWorkerServer::createContextConnection):
(WebKit::WebSharedWorkerServer::addContextConnection):
(WebKit::WebSharedWorkerServer::removeContextConnection):
(WebKit::WebSharedWorkerServer::contextConnectionCreated):
(WebKit::WebSharedWorkerServer::sharedWorkerObjectIsGoingAway):
(WebKit::WebSharedWorkerServer::shutDownSharedWorker):
(WebKit::WebSharedWorkerServer::addConnection):
(WebKit::WebSharedWorkerServer::removeConnection):
(WebKit::WebSharedWorkerServer::contextConnectionForRegistrableDomain const):
(WebKit::WebSharedWorkerServer::postExceptionToWorkerObject):

  • NetworkProcess/SharedWorker/WebSharedWorkerServer.h: Added.
  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp: Added.

(WebKit::WebSharedWorkerServerConnection::WebSharedWorkerServerConnection):
(WebKit::WebSharedWorkerServerConnection::~WebSharedWorkerServerConnection):
(WebKit::WebSharedWorkerServerConnection::messageSenderConnection const):
(WebKit::WebSharedWorkerServerConnection::sessionID):
(WebKit::WebSharedWorkerServerConnection::session):
(WebKit::WebSharedWorkerServerConnection::requestSharedWorker):
(WebKit::WebSharedWorkerServerConnection::sharedWorkerObjectIsGoingAway):
(WebKit::WebSharedWorkerServerConnection::fetchScriptInClient):
(WebKit::WebSharedWorkerServerConnection::notifyWorkerObjectOfLoadCompletion):
(WebKit::WebSharedWorkerServerConnection::postExceptionToWorkerObject):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h: Added.

(WebKit::WebSharedWorkerServerConnection::server):
(WebKit::WebSharedWorkerServerConnection::server const):
(WebKit::WebSharedWorkerServerConnection::webProcessIdentifier const):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.messages.in: Added.
  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp: Added.

(WebKit::WebSharedWorkerServerToContextConnection::WebSharedWorkerServerToContextConnection):
(WebKit::WebSharedWorkerServerToContextConnection::~WebSharedWorkerServerToContextConnection):
(WebKit::WebSharedWorkerServerToContextConnection::webProcessIdentifier const):
(WebKit::WebSharedWorkerServerToContextConnection::ipcConnection const):
(WebKit::WebSharedWorkerServerToContextConnection::messageSenderConnection const):
(WebKit::WebSharedWorkerServerToContextConnection::messageSenderDestinationID const):
(WebKit::WebSharedWorkerServerToContextConnection::connectionIsNoLongerNeeded):
(WebKit::WebSharedWorkerServerToContextConnection::postExceptionToWorkerObject):
(WebKit::WebSharedWorkerServerToContextConnection::launchSharedWorker):
(WebKit::WebSharedWorkerServerToContextConnection::postConnectEvent):
(WebKit::WebSharedWorkerServerToContextConnection::terminateSharedWorker):

  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h: Added.
  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.messages.in: Added.
  • Platform/Logging.h:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Sources.txt:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::terminateUnresponsiveServiceWorkerProcesses):
(WebKit::NetworkProcessProxy::establishSharedWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::serviceWorkerContextConnectionNoLongerNeeded):
(WebKit::NetworkProcessProxy::sharedWorkerContextConnectionNoLongerNeeded):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setUserAgent):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::removeFromWorkerProcesses):
(WebKit::WebProcessPool::establishSharedWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::userContentControllerIdentifierForWorkers):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateWorkerUserAgent):
(WebKit::WebProcessPool::terminateServiceWorkers):
(WebKit::WebProcessPool::workerProcesses):
(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::isServiceWorkerPageID const):
(WebKit::WebProcessPool::serviceWorkerProxiesCount const):
(WebKit::WebProcessPool::hasServiceWorkerForegroundActivityForTesting const):
(WebKit::WebProcessPool::hasServiceWorkerBackgroundActivityForTesting const):
(WebKit::WebProcessPool::removeFromServiceWorkerProcesses): Deleted.
(WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers): Deleted.
(WebKit::WebProcessPool::updateServiceWorkerUserAgent): Deleted.
(WebKit::WebProcessPool::serviceWorkerProcesses): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createForWorkers):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):
(WebKit::WebProcessProxy::setWorkerUserAgent):
(WebKit::WebProcessProxy::updateWorkerPreferencesStore):
(WebKit::WebProcessProxy::updateWorkerProcessAssertion):
(WebKit::WebProcessProxy::establishSharedWorkerContext):
(WebKit::WebProcessProxy::registerServiceWorkerClientProcess):
(WebKit::WebProcessProxy::unregisterServiceWorkerClientProcess):
(WebKit::WebProcessProxy::startServiceWorkerBackgroundProcessing):
(WebKit::WebProcessProxy::endServiceWorkerBackgroundProcessing):
(WebKit::WebProcessProxy::disableWorkers):
(WebKit::WebProcessProxy::enableWorkers):
(WebKit::WebProcessProxy::createForServiceWorkers): Deleted.
(WebKit::WebProcessProxy::setServiceWorkerUserAgent): Deleted.
(WebKit::WebProcessProxy::updateServiceWorkerPreferencesStore): Deleted.
(WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion): Deleted.
(WebKit::WebProcessProxy::disableServiceWorkers): Deleted.
(WebKit::WebProcessProxy::enableServiceWorkers): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isRunningSharedWorkers const):
(WebKit::WebProcessProxy::isStandaloneSharedWorkerProcess const):
(WebKit::WebProcessProxy::isRunningWorkers const):
(WebKit::WebProcessProxy::hasServiceWorkerPageProxy):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp: Added.

(WebKit::WebSharedWorkerContextManagerConnection::WebSharedWorkerContextManagerConnection):
(WebKit::m_userContentController):
(WebKit::WebSharedWorkerContextManagerConnection::establishConnection):
(WebKit::WebSharedWorkerContextManagerConnection::postExceptionToWorkerObject):
(WebKit::WebSharedWorkerContextManagerConnection::updatePreferencesStore):
(WebKit::WebSharedWorkerContextManagerConnection::launchSharedWorker):
(WebKit::WebSharedWorkerContextManagerConnection::close):

  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.h: Added.
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.messages.in: Added.
  • WebProcess/Storage/WebSharedWorkerObjectConnection.cpp:

(WebKit::WebSharedWorkerObjectConnection::WebSharedWorkerObjectConnection):
(WebKit::WebSharedWorkerObjectConnection::~WebSharedWorkerObjectConnection):
(WebKit::WebSharedWorkerObjectConnection::requestSharedWorker):
(WebKit::WebSharedWorkerObjectConnection::sharedWorkerObjectIsGoingAway):

  • WebProcess/Storage/WebSharedWorkerObjectConnection.h:
  • WebProcess/Storage/WebSharedWorkerObjectConnection.messages.in: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::establishSharedWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

LayoutTests:

Rebaseline existing WPT tests involving shared workers.

  • TestExpectations:
  • platform/gtk-wk2/imported/w3c/web-platform-tests/content-security-policy/inside-worker/sharedworker-connect-src.sub-expected.txt: Added.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/content-security-policy/inside-worker/sharedworker-report-only.sub-expected.txt: Added.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/content-security-policy/inside-worker/sharedworker-script-src.sub-expected.txt: Added.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/workers/modules/shared-worker-import-blob-url.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/modules/shared-worker-import-blob-url.window-expected.txt.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/workers/modules/shared-worker-import-data-url.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/modules/shared-worker-import-data-url.window-expected.txt.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/workers/modules/shared-worker-import.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/modules/shared-worker-import.window-expected.txt.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/workers/modules/shared-worker-options-credentials-expected.txt: Added.
  • platform/gtk-wk2/imported/w3c/web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt.
3:17 PM Changeset in webkit [289246] by Megan Gardner
  • 13 edits in trunk/Source

Update hover state based on pointer type.
​https://bugs.webkit.org/show_bug.cgi?id=236249

Reviewed by Tim Horton.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

  • dom/Element.cpp:

(WebCore::Element::setHovered):

  • dom/Element.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::setHovered):

  • html/HTMLLabelElement.h:
  • html/HTMLTextFormControlElement.cpp:

(WebCore::pointerTypeFromHitTestRequest):
(WebCore::showPlaceholderForPointer):
(WebCore::HTMLTextFormControlElement::setHovered):
(WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible const):

  • html/HTMLTextFormControlElement.h:
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::setHovered):

  • html/shadow/SpinButtonElement.h:
  • page/EventHandler.cpp:

(addPointerTypeToHitTestRequest):
(WebCore::EventHandler::handleMouseMoveEvent):

Source/WebKit:

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(pointerTypeForUITouchType):
(-[WKMouseGestureRecognizer createMouseEventWithType:wasCancelled:]):
(-[WKMouseGestureRecognizer checkTouches:]):

3:13 PM Changeset in webkit [289245] by commit-queue@webkit.org
  • 21 edits
    2 deletes in trunk

Unreviewed, reverting r289239.
​https://bugs.webkit.org/show_bug.cgi?id=236264

broke builds on older internal SDKs

Reverted changeset:

"Add PushService"
​https://bugs.webkit.org/show_bug.cgi?id=235857
​https://commits.webkit.org/r289239

3:06 PM Changeset in webkit [289244] by Chris Dumez
  • 3 edits
    1 delete in trunk/LayoutTests

Unreviewed, rename test in TestExpectations to match the actual test name.

The test was likely renamed but TestExpectations were not updated accordingly.
As per the bots, the test is still flaky.

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-lazy.tentative-expected.txt: Removed.
3:05 PM Changeset in webkit [289243] by Jonathan Bedard
  • 15 edits in trunk/Tools

[webkitbugspy] Assign and close issues
​https://bugs.webkit.org/show_bug.cgi?id=235835
<rdar://problem/88203672>

Reviewed by Dewei Zhu.

Allow webkitbugspy to edit the assignee and open or close issues.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.set): Send a put request to modify assignee or bug state.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.set): Send a patch request to modify assignee or bug state.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:

(Issue.open): Re-open a closed issue, provide an optional reason.
(Issue.close): Close an open issue, with an optional reason.
(Issue.assign): Assign issue to the provided user, along with an optional reason.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:

(Bugzilla._issue): Edit mocked representation of an issue.
(Bugzilla.request): Handle put request modifying issue.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub._issue): Edit mocked representation of an issue.
(GitHub.request): Handle patch request modifying issue.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:

(RadarModel.Person.init): Accept dictionary.
(RadarModel.init): Correct 'state' values, mock radar parameters.
(RadarModel.commit_changes): Modify assignee and state.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:

(Priority): Add radar priority integers.
(Tracker.set): Modify assignee and state.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:

(TestBugzilla.test_assign):
(TestBugzilla.test_assign_why):
(TestBugzilla.test_state):
(TestBugzilla.test_state_why):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_assign):
(TestGitHub.test_assign_why):
(TestGitHub.test_state):
(TestGitHub.test_state_why):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:

(TestRadar.test_assign):
(TestRadar.test_assign_why):
(TestRadar.test_state):
(TestRadar.test_state_why):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:

(Tracker.set): Generic API for Issues to modify their representation in their
respective tracker.

Canonical link: ​https://commits.webkit.org/246927@main

3:03 PM Changeset in webkit [289242] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

Improve fullscreen transition when going to/from fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=236058
rdar://88415100

Reviewed by Dean Jackson.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):

2:27 PM Changeset in webkit [289241] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Updating grid gap value does not recalculate styles
​https://bugs.webkit.org/show_bug.cgi?id=233252
<rdar://problem/85727334>

Reviewed by Simon Fraser.

Source/WebCore:

Both column and row gap style value change need to initiate layout in order to update their geometries.

Test: fast/dynamic/gap-style-change-should-initiate-layout.html

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):

LayoutTests:

  • fast/dynamic/gap-style-change-should-initiate-layout-expected.html: Added.
  • fast/dynamic/gap-style-change-should-initiate-layout.html: Added.
2:26 PM Changeset in webkit [289240] by Simon Fraser
  • 14 edits in trunk

Tidy up some ImageBuffer-related classes
​https://bugs.webkit.org/show_bug.cgi?id=236170

Reviewed by Darin Adler.
Source/WebCore:

Remove some forward declarations in ImageBuffer.h unused by ImageBuffer.

DisplayList::ImageBuffer can be final.
ImageBufferCGBitmapBackend can be final.

No need to WEBCORE_EXPORT ImageBufferCGBitmapBackend functions now that TestWebKitAPI
is using ImageBuffer functions.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::create): Deleted.
(WebCore::DisplayList::ImageBuffer::ImageBuffer): Deleted.
(WebCore::DisplayList::ImageBuffer::~ImageBuffer): Deleted.

Source/WebKit:

CGDisplayListImageBufferBackend can be final.
ImageBufferShareableBitmapBackend can be final.
Functions on ImageBufferShareableIOSurfaceBackend can be final.

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:

(WebKit::ImageBufferShareableBitmapBackend::setOwnershipIdentity): Deleted.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:

Tools:

ImageBufferTests should use the functions on ImageBuffer, not WebCore-internal
classes.

  • TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:

(TestWebKitAPI::TEST):

2:07 PM Changeset in webkit [289239] by Ben Nham
  • 21 edits
    2 adds in trunk

Add PushService
​https://bugs.webkit.org/show_bug.cgi?id=235857

Reviewed by Brady Eidson.

Source/WebKit:

This adds PushService to webpushd. It handles requests to create, remove, and get push
subscriptions. It also decrypts incoming pushes and pass them back to the UI process via the
existing machinery in WebPushDaemon.

PushService primarily interacts with two objects:

  1. PushServiceConnection: this creates and removes push subscriptions from the push server. It also receives incoming pushes from the push server.
  2. PushDatabase: this persists push subscriptions to disk.

Several things are not yet implemented; for instance, we currently always grant a page the
permission to receive pushes. This will be fixed in future patches.

Covered by new API tests. The current tests use a MockPushServiceConnection that vends
subscription with fixed data, but this can be improved in the future.

  • Shared/API/Cocoa/WKMain.h:
  • Shared/API/Cocoa/WKMain.mm:

(WKWebPushDaemonMain):

  • Shared/Cocoa/WebPushMessageCocoa.mm: add ability to distinguish between an empty vs. null payload.

(WebKit::WebPushMessage::fromDictionary):
(WebKit::WebPushMessage::toDictionary const):

  • Shared/WebPushDaemonConstants.h:

(WebKit::WebPushD::messageTypeSendsReply):

  • Shared/WebPushMessage.h:

(WebKit::WebPushMessage::decode):

  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/MockPushServiceConnection.h:
  • webpushd/MockPushServiceConnection.mm:

(WebPushD::MockPushServiceConnection::generateClientKeys):
(WebPushD::MockPushServiceConnection::subscribe):
(WebPushD::MockPushServiceConnection::unsubscribe):

  • webpushd/PushService.h: Added.

(WebPushD::PushService::connection):
(WebPushD::PushService::database):
(WebPushD::PushService::didReceivePushMessage):

  • webpushd/PushService.mm: Added.

(WebPushD::updateTopicLists):
(WebPushD::PushService::create):
(WebPushD::PushService::createMockService):
(WebPushD::PushService::PushService):
(WebPushD::makePushSubscriptionFromRecord):
(WebPushD::makePushTopic):
(WebPushD::PushServiceRequest::bundleIdentifier):
(WebPushD::PushServiceRequest::scope):
(WebPushD::PushServiceRequest::PushServiceRequest):
(WebPushD::PushServiceRequestImpl::PushServiceRequestImpl):
(WebPushD::PushServiceRequestImpl::fulfill):
(WebPushD::PushServiceRequestImpl::reject):
(WebPushD::GetSubscriptionRequest::GetSubscriptionRequest):
(WebPushD::GetSubscriptionRequest::startInternal):
(WebPushD::SubscribeRequest::SubscribeRequest):
(WebPushD::SubscribeRequest::startImpl):
(WebPushD::SubscribeRequest::attemptToRecoverFromTopicAlreadyInFilterError):
(WebPushD::UnsubscribeRequest::UnsubscribeRequest):
(WebPushD::UnsubscribeRequest::startInternal):
(WebPushD::PushService::enqueuePushServiceRequest):
(WebPushD::PushService::finishedPushServiceRequest):
(WebPushD::PushService::getSubscription):
(WebPushD::PushService::didCompleteGetSubscriptionRequest):
(WebPushD::PushService::subscribe):
(WebPushD::PushService::didCompleteSubscribeRequest):
(WebPushD::PushService::unsubscribe):
(WebPushD::PushService::didCompleteUnsubscribeRequest):
(WebPushD::makeRawPushMessage):
(WebPushD::PushService::didReceivePushMessage):

  • webpushd/PushServiceConnection.h:
  • webpushd/PushServiceConnection.mm:

(WebPushD::PushServiceConnection::generateClientKeys):

  • webpushd/WebPushDaemon.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::MessageInfo::injectEncryptedPushMessageForTesting::encodeReply):
(WebPushD::Daemon::startMockPushService):
(WebPushD::Daemon::startPushService):
(WebPushD::Daemon::setPushService):
(WebPushD::Daemon::runAfterStartingPushService):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::injectEncryptedPushMessageForTesting):
(WebPushD::Daemon::handleIncomingPush):
(WebPushD::Daemon::getPendingPushMessages):
(WebPushD::Daemon::subscribeToPushService):
(WebPushD::Daemon::unsubscribeFromPushService):
(WebPushD::Daemon::getPushSubscription):
(WebPushD::Daemon::getPushPermissionState):

  • webpushd/WebPushDaemonMain.h:
  • webpushd/WebPushDaemonMain.mm:

(WebKit::WebPushDaemonMain):

  • webpushd/com.apple.webkit.webpushd.mac.plist:
  • webpushd/webpushd.cpp:

(main):

Source/WTF:

Add PushAPIEnabled to WebKitLegacy so we can enable it on in API tests via _WKExperimentalFeature.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • Modifed the existing injected push test to inject different types of real push objects from APS (an empty push, an aesgcm-encrypted push, and an aes128gcm-encrypted push).
  • Add a few basic test cases for subscribing and unsubscribing from push.
  • TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:

(-[NotificationScriptMessageHandler setMessageHandler:]):
(-[NotificationScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::testWebPushDaemonPList):
(TestWebKitAPI::createMessageDictionary):
(TestWebKitAPI::sendMessageToDaemon):
(TestWebKitAPI::sendMessageToDaemonWaitingForReply):
(TestWebKitAPI::sendConfigurationWithAuditToken):
(TestWebKitAPI::TEST):
(TestWebKitAPI::function): Deleted.

1:19 PM Changeset in webkit [289238] by Tyler Wilcock
  • 11 edits
    3 adds in trunk

AX: The isolated tree needs to fix-up table cell parent relationships
​https://bugs.webkit.org/show_bug.cgi?id=236156

Reviewed by Chris Fleizach.

Source/WebCore:

Tables are not very navigable by AX clients in isolated tree mode.
This is because our current representation of table elements doesn't
perfectly follow the normal parent-child relationship of other elements,
i.e. some non-row elements can return cells from children(), but the cells
must regard their row as the "real" parent.

We've had to work around this in the live tree in AccessibilityObject::insertChild, too:

​https://github.com/WebKit/WebKit/blob/main/Source/WebCore/accessibility/AccessibilityObject.cpp#L626#L628

In this patch, when creating an isolated object, we override the "assumed" parent ID
to the correct parent ID for cell-like elements.

Test: accessibility/table-search-traversal.html

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::parentIDForObject):
Added.
(WebCore::AXIsolatedTree::nodeChangeForObject):
Call parentIDForObject to determine the correct parent for the
to-be-created isolated object.

  • accessibility/isolatedtree/AXIsolatedTree.h:

Tools:

Add AccessibilityUIElement::role implementation for use in new
accessibility/table-search-traversal.html test.

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::role):
Added implementation.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::role):
Added implementation.

LayoutTests:

Add test verifying the the new, more correct isolated tree behavior.

  • platform/glib/TestExpectations:
  • platform/win/TestExpectations:

Skip new accessibility/table-search-traversal.html test due to
missing AccessibilityUIElement::uiElementForSearchPredicate implementation.

  • platform/ios/TestExpectations:

Enable new accessibility/table-search-traversal.html test.

  • accessibility/table-search-traversal.html: Added.
  • platform/ios/accessibility/table-search-traversal-expected.txt: Added.
  • platform/mac/accessibility/table-search-traversal-expected.txt: Added.
  • platform/ios/imported/blink/accessibility/link-inside-label-expected.txt:

This patch implements AccessibilityUIElement::role on iOS, which
changes this test's output (in a positive way).

12:18 PM Changeset in webkit [289237] by Wenson Hsieh
  • 12 edits in trunk/Source

Add PageClient plumbing for video frame extraction
​https://bugs.webkit.org/show_bug.cgi?id=236100
rdar://86237608

Reviewed by Eric Carlson.

Source/WebCore:

Add a method to grab the AVPlayerViewController from a VideoFullscreenInterfaceAVKit. See WebKit/ChangeLog for
more details.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewController avPlayerViewController]):
(VideoFullscreenInterfaceAVKit::avPlayerViewController const):

Source/WebKit:

Finish off support for fullscreen video extraction by adding a new iOS PageClient hook, and calling into it
after grabbing a video frame from the GPU process when the video extraction timer fires.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::findInterface const):
(WebKit::VideoFullscreenManagerProxy::playerViewController const):
(WebKit::VideoFullscreenManagerProxy::findInterface): Deleted.

Mark this method as const, so that we can invoke it from VideoFullscreenManagerProxy::playerViewController.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::updateFullscreenVideoExtraction):
(WebKit::WebPageProxy::fullscreenVideoExtractionTimerFired):

Request video frame data from the GPU process and hand it over to the page client along with the
AVPlayerViewController corresponding to the current fullscreen video.

  • UIProcess/PageClient.h:

(WebKit::PageClient::isFullscreenVideoExtractionEnabled const):

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::beginFullscreenVideoExtraction):
(WebKit::PageClientImpl::cancelFullscreenVideoExtraction):
(WebKit::PageClientImpl::isFullscreenVideoExtractionEnabled const):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

Add a new WebKitAdditions extension point that contains the implementations of the three methods below; when
compiling without WebKitAdditions, we simply stub out these methods.

(-[WKContentView beginFullscreenVideoExtraction:playerViewController:]):
(-[WKContentView cancelFullscreenVideoExtraction:]):
(-[WKContentView isFullscreenVideoExtractionEnabled]):

11:57 AM Changeset in webkit [289236] by Chris Dumez
  • 4 edits in trunk

WorkerGlobalScope.importScripts() should protect blob urls that were passed in until the imports are done
​https://bugs.webkit.org/show_bug.cgi?id=236168

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/blob-url.worker-expected.txt:

Source/WebCore:

No new tests, rebaselined existing test.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

11:42 AM Changeset in webkit [289235] by graouts@webkit.org
  • 4 edits in trunk/Source

[model] improve sizing on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236234
<rdar://problem/88569898>

Reviewed by Darin Adler.

Source/WebCore/PAL:

Add newly-used -[ASVInlinePreview setFrameWithinFencedTransaction:] SPI on iOS.

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

We must install the fence and invalidate it on the main queue and call
-[ASVInlinePreview setFrameWithinFencedTransaction:] to complete the
resizing process on iOS.

  • UIProcess/ios/WKModelView.mm:

(-[WKModelView updateBounds]):

11:36 AM Changeset in webkit [289234] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[css-logical] css/css-logical/animation-003.tentative is no longer a failure
​https://bugs.webkit.org/show_bug.cgi?id=236242

Unreviewed test gardening following a likely progression with bug 218092.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-logical/animation-003.tentative-expected.txt:

LayoutTests:

10:44 AM Changeset in webkit [289233] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Enable sandbox state rules for Mach messages
​https://bugs.webkit.org/show_bug.cgi?id=236027
<rdar://problem/88387937>

Reviewed by Brent Fulgham.

Until <rdar://85931614> has been fixed, we can enable sandbox state rules for Mach messages with a minor workaround.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
10:26 AM Changeset in webkit [289232] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Setup alternate mouse gesture recognizer.
​https://bugs.webkit.org/show_bug.cgi?id=236127

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(shouldEnableAlternativeMouseGestureRecognizers):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
(-[WKContentView setUpMouseGestureRecognizer]):
(-[WKContentView _configureMouseGestureRecognizer]):

10:20 AM Changeset in webkit [289231] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

Remove cfprefs shmem access
​https://bugs.webkit.org/show_bug.cgi?id=231068
<rdar://73520381>

Reviewed by Brent Fulgham.

After enabling CFPrefs direct mode, we can remove cfprefs shmem access.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:16 AM Changeset in webkit [289230] by ntim@apple.com
  • 2 edits in trunk/Websites/webkit.org

Unreviewed, make <dialog> demos dark theme work in iframes

Add rules for <body>.

  • demos/dialog-element/dark-theme.css:

(@media (prefers-color-scheme: dark) body):

10:04 AM Changeset in webkit [289229] by Russell Epstein
  • 1 copy in branches/safari-614.1.3-branch

New branch.

10:02 AM Changeset in webkit [289228] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.4

10:00 AM Changeset in webkit [289227] by graouts@webkit.org
  • 8 edits in trunk/Source/WebCore

Move DocumentTimeline::runningAnimationsForRendererAreAllAccelerated() to Styleable
​https://bugs.webkit.org/show_bug.cgi?id=236239

Reviewed by Dean Jackson.

This method has nothing to do with DocumentTimeline and everything to do with Styleable and its associated
effect stack. This also allows us to remove WebAnimation::isRunningAccelerated() since we don't need to go
through the animation as we iterate over keyframe effects directly.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::runningAnimationsForRendererAreAllAccelerated const): Deleted.

  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::isRunningAccelerated const): Deleted.

  • animation/WebAnimation.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasRunningAcceleratedAnimations const):

  • style/Styleable.cpp:

(WebCore::Styleable::runningAnimationsAreAllAccelerated const):

  • style/Styleable.h:
9:46 AM Changeset in webkit [289226] by graouts@webkit.org
  • 6 edits in trunk

[css-logical] [web-animations] changing direction or writing-mode should clear computed keyframes
​https://bugs.webkit.org/show_bug.cgi?id=236241

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-001-expected.txt:

Source/WebCore:

Any time the "direction" or "writing-mode" property changes, we must clear the computed keyframes
as we should re-resolve any logical properties used on the source keyframes.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::propertyAffectingLogicalPropertiesDidChange):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::applyKeyframeEffects):

9:35 AM Changeset in webkit [289225] by graouts@webkit.org
  • 12 edits in trunk/Source/WebCore

Remove unnecessary DocumentTimeline.h includes
​https://bugs.webkit.org/show_bug.cgi?id=236236

Reviewed by Dean Jackson.

  • css/CSSComputedStyleDeclaration.cpp:
  • dom/Element.cpp:
  • dom/PseudoElement.cpp:
  • history/CachedFrame.cpp:
  • page/Frame.cpp:
  • page/Page.cpp:
  • rendering/RenderElement.cpp:
  • rendering/RenderLayer.cpp:
  • rendering/RenderLayerBacking.cpp:
  • rendering/updating/RenderTreeUpdater.cpp:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

9:33 AM Changeset in webkit [289224] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Remove failure expections for newly passing tests. Unreviewed test gardening.
​https://bugs.webkit.org/show_bug.cgi?id=236243

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-07

  • platform/gtk/TestExpectations:
9:01 AM Changeset in webkit [289223] by commit-queue@webkit.org
  • 12 edits in trunk/Source

[WebXR] Handle updating session visibility state from PlatformXRCoordinator
​https://bugs.webkit.org/show_bug.cgi?id=236150

Patch by Ada Chan <​ada.chan@apple.com> on 2022-02-07
Reviewed by Dean Jackson.

Source/WebCore:

Add EnumTraits for PlatformXR::VisibilityState

  • platform/xr/PlatformXR.h:

Source/WebKit:

Add plumbing to allow PlatformXRCoordinator to communicate session visibility
state changes to XRDeviceProxy.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/XR/XRDeviceProxy.cpp:

(WebKit::XRDeviceProxy::updateSessionVisibilityState):
Notify the PlatformXR::TrackingAndRenderingClient about the visibility state change.

  • Shared/XR/XRDeviceProxy.h:
  • UIProcess/XR/PlatformXRCoordinator.h:

Introduce a new protocol for PlatformXRCoordinator to communicate back
to PlatformXRSystem. This protocol so far has methods for notifying the
end of a session and visibility state changes in the session.

  • UIProcess/XR/PlatformXRSystem.cpp:

(WebKit::PlatformXRSystem::initializeTrackingAndRendering):
startSession() now takes in the PlatformXRSystem instance as it now implements
SessionEventClient.
(WebKit::PlatformXRSystem::sessionDidEnd):
(WebKit::PlatformXRSystem::sessionDidUpdateVisibilityState):

  • UIProcess/XR/PlatformXRSystem.h:
  • WebProcess/XR/PlatformXRSystemProxy.cpp:

(WebKit::PlatformXRSystemProxy::sessionDidUpdateVisibilityState):

  • WebProcess/XR/PlatformXRSystemProxy.h:
  • WebProcess/XR/PlatformXRSystemProxy.messages.in:
8:21 AM Changeset in webkit [289222] by Antti Koivisto
  • 37 edits
    2 adds in trunk

[CSS Container Queries] Add ContainerQueryEvaluator
​https://bugs.webkit.org/show_bug.cgi?id=236096

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:

Source/WebCore:

Add ContainerQueryEvaluator. Initially it evaluates simple min/max-width/height queries.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • style/ContainerQueryEvaluator.h: Added.
  • style/ContainerQueryEvaluator.cpp: Added.

(WebCore::Style::ContainerQueryEvaluator::ContainerQueryEvaluator):
(WebCore::Style::computeLength):
(WebCore::Style::ContainerQueryEvaluator::evaluate const):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::containerQueryMatches):

Start to actually evaluate container queries.

LayoutTests:

8:01 AM Changeset in webkit [289221] by Wenson Hsieh
  • 10 edits in trunk/Source/WebKit

Add a helper method on VideoFullscreenManagerProxy to request video frame data
​https://bugs.webkit.org/show_bug.cgi?id=236094

Reviewed by Darin Adler.

Add a helper method on VideoFullscreenManagerProxy to asynchronously grab an image bitmap for the fullscreen
video corresponding to the given PlaybackSessionContextIdentifier, by sending IPC to the GPU process. This
mechanism will be used in a subsequent patch to support "fullscreen video extraction", which involves capturing
image data for paused, fullscreen videos.

See below for more details.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::requestBitmapImageForCurrentTime):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::bitmapImageForCurrentTime):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::requestBitmapImageForCurrentTime):

Map the given PlaybackSessionContextIdentifier to a MediaPlayerIdentifier, and then send the (web process ID,
media player ID) identifier pair to the GPU process to request frame data for the given media player.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::requestBitmapImageForCurrentTime):

  • UIProcess/GPU/GPUProcessProxy.h:
7:40 AM Changeset in webkit [289220] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Improve DocumentTimeline::animationCanBeRemoved()
​https://bugs.webkit.org/show_bug.cgi?id=236230

Reviewed by Dean Jackson.

While fixing bug 236229, it appeared that DocumentTimeline::animationCanBeRemoved() could be improved while
creating the "animations" list:

  • the name should make it clear that the purpose here is to create a list of animations that are protected since otherwise we wouldn't need that specific loop and could just run the code below directly,
  • calling isRelevant() on the effect's animation is redundant since animations are guaranteed to be relevant if found within the effect stack,
  • since we now know that we would add all animations associated with an effect in the effect stack, we could use Vector::map() to create the list since the lengths would match.
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationCanBeRemoved):

7:30 AM Changeset in webkit [289219] by Martin Robinson
  • 7 edits in trunk/Source/WebCore

Fix some compilation warnings coming from unhandled execution paths for unexpected enum values
​https://bugs.webkit.org/show_bug.cgi?id=236228

Reviewed by Darin Adler.

No new tests. This should not change behavior.

  • animation/CompositeOperationOrAuto.h:

(WebCore::toCompositeOperationOrAuto):

  • bindings/js/JSCSSStyleValueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSCSSTransformComponentCustom.cpp:

(WebCore::toJSNewlyCreated):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForAnimationComposition):

  • css/CSSUnits.cpp:

(WebCore::unitCategory):
(WebCore::canonicalUnitTypeForCategory):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::receiverCapabilities):
(WebCore::LibWebRTCProvider::senderCapabilities):

7:27 AM Changeset in webkit [289218] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] REGRESSION(r288994): Linker does not get passed --disable-new-dtags
​https://bugs.webkit.org/show_bug.cgi?id=236205

Reviewed by Darin Adler.

  • Source/cmake/OptionsCommon.cmake: Arrange passing --disable-new-dtags to linkers that

are known to support the option. While at it, reorganize a bit how detected linker/archiver
features are printed out for better readability.

7:22 AM Changeset in webkit [289217] by rreapor@apple.com
  • 2 edits in trunk/Tools

[webkitcorepy] Autoinstaller may fail to install wheels
​https://bugs.webkit.org/show_bug.cgi?id=236174

Reviewed by Jonathan Bedard.

Upgrading packaging module autoinstalls abi3 universal2 wheel
distributions that were previously being skipped.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
7:10 AM Changeset in webkit [289216] by graouts@webkit.org
  • 7 edits in trunk

[css-logical] [web-animations] Add support for logical properties in JS-originated animations
​https://bugs.webkit.org/show_bug.cgi?id=236229

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-001-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt:

Source/WebCore:

We need to resolve logical properties when parsing keyframes provided by the Web Animations bindings
and when considering whether an animation can be removed based on properties found on the effect stack.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationCanBeRemoved):

  • animation/KeyframeEffect.cpp:

(WebCore::processKeyframeLikeObject):

6:48 AM Changeset in webkit [289215] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove RenderObject::documentTimeline()
​https://bugs.webkit.org/show_bug.cgi?id=236225

Reviewed by Dean Jackson.

Following some recent DocumentTimeline / Styleable refactoring (see bugs
236176, 236204 and 236224), this method is no longer in use.

  • rendering/RenderObject.h:

(WebCore::RenderObject::documentTimeline const): Deleted.

6:45 AM Changeset in webkit [289214] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] WritingMode::LeftToRight expects line content flipped within the line
​https://bugs.webkit.org/show_bug.cgi?id=236207

Reviewed by Antti Koivisto.

Vertical writing mode requires to

  1. flip the line coordinate inside the block
  2. but also to flip the content coordinate inside the line box, where vertical-lr expects the content top (which turns into the visual left) to be relative to the bottom of the line.

In this patch we decouple the line and the line content flipping logic. It helps to reason about the
type of coordinate translations at different levels (line inside the block and content inside the line).
This patch fixes the vertical-align tests under imported/w3c/web-platform-tests/css/css-writing-modes.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingModeWithinLine const):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode): Deleted.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):
(WebCore::Layout::InlineDisplayLineBuilder::flipLogicalLineRectToVisualForWritingMode const):

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h:
6:23 AM Changeset in webkit [289213] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Introduce RenderSVGModelObject aware geometry-query helpers in RenderLayerBacking
​https://bugs.webkit.org/show_bug.cgi?id=236184

Reviewed by Rob Buis.

Let clippingLayerBox() take a RenderLayerModelObject instead of a RenderBox, to
allow for a RenderSVGModelObject specific implementation. Furthermore, introduce
rendererBorderBoxRect(), which can be used instead of renderBox()->borderBoxRect()
to query geometry in the CSS coordinate system. RenderSVGModelObject specifically offers
a 'borderBoxRectEquivalent()' method, returning SVG geometry information in the desired
CSS coordinate system - which is expected in the layer/compositing subsystem.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayerBacking.cpp:

(WebCore::rendererBorderBoxRect):
(WebCore::clippingLayerBox):
(WebCore::RenderLayerBacking::updateChildrenTransformAndAnchorPoint):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::offsetRelativeToRendererOriginForDescendantLayers const):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::transformMatrixForProperty const):

6:06 AM Changeset in webkit [289212] by graouts@webkit.org
  • 7 edits in trunk/Source/WebCore

Refactor DocumentTimeline::isRunningAcceleratedAnimationOnRenderer() into a Styleable method
​https://bugs.webkit.org/show_bug.cgi?id=236224

Reviewed by Dean Jackson.

This method has nothing to do with DocumentTimeline, so let's instead expose it on Styleable.
While we're at it, since it's only ever called with CSSPropertyTransform as a parameter, let's
make it specific to that property.

Next, we'll make that method account for other transform-related properties in bug 236019.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::isRunningAcceleratedAnimationOnRenderer const): Deleted.

  • animation/DocumentTimeline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • style/Styleable.cpp:

(WebCore::Styleable::isRunningAcceleratedTransformAnimation const):

  • style/Styleable.h:
5:57 AM Changeset in webkit [289211] by graouts@webkit.org
  • 11 edits
    3 adds
    2 deletes in trunk

[Web Animations] Starting a transform animation with a 1ms delay doesn't run it accelerated
​https://bugs.webkit.org/show_bug.cgi?id=236080
<rdar://problem/88432373>

Reviewed by Dean Jackson.

Source/WebCore:

Accelerated animations can only be started if the keyframe effect's renderer is composited.
Keyframe effects enqueue a list of accelerated actions (play, pause, seek, stop, etc.) when
they can be accelerated, and these actions are performed in sync as the document timeline
is finishing up its "update animations and send events" procedure as we update the page
rendering.

When an animation is started _without_ a delay, the machinery to consider making a renderer
composited happens _before_ we update animations and send events, and since at this stage the
new animation's effect is already in its target's effect stack because it is immediately
"relevant" (per the Web Animations terminology) and targets a property that can be accelerated,
its renderer is indeed composited.

Thus by the time we consider starting this animation's effect with acceleration, it is in a
condition to do so since its renderer is already composited.

However, when an animation is started _with_ a delay, it is not immediately "relevant" and thus
won't appear in its target's effect stack. That will happen once we run the "update animations
and send events procedure" the next time we update the page rendering. But before that, the
effect's renderer will be considered to be made composited and _will not_ be because at this
point there is no effect animating a property that can be accelerated.

As we eventually run the "update animations and send events" procedure, we'll enqueue an
accelerated action to play the animation now that it became relevant, and when that procedure
completes and we try to apply that accelerated action, we'll fail to start an accelerated
animation since the renderer is not composited.

To address this, we only enqueue accelerated actions when the renderer is composited, thus
matching the condition to actually be able to apply this action.

This means we no longer need the animationDidPlay() on effects since we wouldn't be able to
honor enqueuing a "play" accelerated action since the renderer won't be composited yet at this
time in the vast majority of cases.

Test: webanimations/transform-animation-with-delay-yields-accelerated-animation.html

  • animation/AnimationEffect.h:

(WebCore::AnimationEffect::animationDidTick):
(WebCore::AnimationEffect::animationDidPlay): Deleted.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::animationDidPlay): Deleted.

  • animation/KeyframeEffect.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::play):

  • animation/AnimationEffect.h:

(WebCore::AnimationEffect::animationDidTick):
(WebCore::AnimationEffect::animationDidPlay): Deleted.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::animationDidPlay): Deleted.

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::isAboutToRunAccelerated const):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::play):

LayoutTests:

Add a test that runs a "transform" animation with a small delay and checks that it yielded
an accelerated animation. We also rewrite some existing tests to use internals.acceleratedAnimationsForElement()
since relying on a layer tree dump was not reliable, which also resolves some platform-specific
issues.

  • platform/glib/TestExpectations:
  • platform/gtk/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Removed.
  • platform/mac-wk1/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Removed.
  • platform/win/TestExpectations:
  • webanimations/accelerated-css-transition-with-easing-y-axis-above-1.html: Make sure overflow doesn't cause an image failure.
  • webanimations/partly-accelerated-transition-by-removing-property-expected.txt:
  • webanimations/partly-accelerated-transition-by-removing-property.html: Rewrite test to check on the accelerated

animation count and ensure the element is already composited to make the test work on WK1 and GTK.

  • webanimations/resources/request-frames-until-true.js: Added.

(const.requestFramesUntilTrue.async resolveCondition):

  • webanimations/transform-animation-with-delay-yields-accelerated-animation-expected.txt: Added.
  • webanimations/transform-animation-with-delay-yields-accelerated-animation.html: Added.
5:53 AM Changeset in webkit [289210] by Nikolas Zimmermann
  • 7 edits
    1 copy in trunk/Source/WebCore

[LBSE] Generalize RenderLayer::renderBoxLocation(), adding support for SVG layers
​https://bugs.webkit.org/show_bug.cgi?id=236186

Reviewed by Rob Buis.

The layer-aware RenderSVGModelObject exposes a 'layoutLocation()' method which mimics
the CSS 'location()' of a RenderBox -- the layout procedure itself takes care of
computing these quantities in the correct CSS coordinate system. Therefore, in
RenderLayer we can use RenderSVGModelObject layoutLocation() as drop-in replacment
for the location() method of a RenderBox when handling SVG primitives, while
keeping the rest of RenderLayer as much "SVG unaware" as possible.

renderBoxLocation() is renamed to rendererLocation() and extended to support
RenderSVGModelObject. To keep rendererLocation() inline, RenderLayer needs to
include RenderSVGModelObject, which currently includes the RenderLayer header.
Fix that, by including RenderBox.h and inlining the 'element()' function, in
RenderSVGModelObjectInlines.h - in the same spirit as RenderSVGShapeInlines.h.

Covered by existing tests, no change in behaviour.

  • Headers.cmake: Add new PrivateHeaders: RenderSVGModelObject.h / SVGBoundingBoxComputation.h / SVGRenderSupport.h.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::collectEventRegionForFragments):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestContents const):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::rendererLocation const):
(WebCore::RenderLayer::renderBoxLocation const): Deleted.

  • rendering/svg/RenderSVGModelObject.h:

(WebCore::RenderSVGModelObject::element const): Deleted.

  • rendering/svg/RenderSVGModelObjectInlines.h: Copied from Source/WebCore/rendering/svg/RenderSVGShapeInlines.h.

(WebCore::RenderSVGModelObject::element const):

  • rendering/svg/RenderSVGShapeInlines.h:
5:51 AM Changeset in webkit [289209] by Ziran Sun
  • 4 edits in trunk

[Forms] Use min as default value when min > max for input type="range"
​https://bugs.webkit.org/show_bug.cgi?id=236223

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update the sub test expectation that is now passing.

  • web-platform-tests/html/semantics/forms/the-input-element/range-expected.txt:

Source/WebCore:

As per spec ​https://html.spec.whatwg.org/multipage/input.html#concept-input-value-default-range,
in the case of "the maximum is less than the minimum, in which case the default value is the minimum".

  • html/RangeInputType.cpp:

(WebCore::ensureMaximum):
(WebCore::RangeInputType::createStepRange const):

5:49 AM Changeset in webkit [289208] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Remove unused CSSCalcExpressionNodeParser::parseValueTerm from CSSCalcExpressionNodeParser.h.
​https://bugs.webkit.org/show_bug.cgi?id=236226

Reviewed by Darin Adler.

CSSCalcExpressionNodeParser::parseCalcValue replaces CSSCalcExpressionNodeParser::parseValueTerm
in r253079, but parseValueTerm still remains in CSSCalcExpressionNodeParser.h.

No new tests, no new behaviors.

  • css/calc/CSSCalcExpressionNodeParser.h:
4:51 AM Changeset in webkit [289207] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Apply position / size to SVG layers
​https://bugs.webkit.org/show_bug.cgi?id=236187

Reviewed by Rob Buis.

Teach RenderLayer::updateLayerPosition() about RenderSVGModelObject
derived renderers that create layers. Grab size and position information
from the SVG render tree, just as done for CSS boxes in the render tree.

To minimize the RenderLayer changes, and most importantly to let SVG
look like a regular CSS object from the outside a compatibility layer
is exposed offering methods such as 'frameRectEquivalent()',
'visualOverflowRectEquivalent()' and offers utility methods such as
'applyTopLeftLocationOffsetEquivalent(localPoint)'. The terminology
stems from CSS and is usually not present in SVG -- however to simplify
the RenderLayer implementation and emphazise the analogy between
RenderBox and RenderSVGModelObject the utility methods help a lot.

SVG no longer looks special and one doesn't need to think hard what
the best matching equivalent to a 'visualOverflowRect' in SVG, or
if coordinate system origins are identical or not, etc.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::recursiveUpdateLayerPositions):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::calculateClipRects const):

3:47 AM Changeset in webkit [289206] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Unreviewed non-unified build fixes.

  • Modules/webxr/XRReferenceSpaceEvent.cpp: Add missing wtf/IsoMallocInlines.h header.
  • Modules/webxr/XRReferenceSpaceEvent.h: Add missing wtf/IsoMalloc.h header.
  • css/calc/CSSCalcOperationNode.cpp: Add missing Logging.h header.
  • css/calc/CSSCalcPrimitiveValueNode.cpp: Ditto.
  • layout/formattingContexts/FormattingQuirks.cpp: Add missing LayoutState.h header.
3:40 AM Changeset in webkit [289205] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Suppress non-foreground paint phases for SVG shapes & images
​https://bugs.webkit.org/show_bug.cgi?id=236189

Reviewed by Rob Buis.

Suppress all paint phases except PaintPhase::Foreground for SVG primitives
such as paths, rects, images, etc. - all but RenderSVGContainer. We still
have to propagate the paint phases down the SVG render tree through the
container hierachy, as there could be <foreignObject> elements that do
need all paint phases.

If this ever turns out as bottleneck we can keep track of the presence
of <foreignObject> elements in a SVG subtree and only selectively propagate
the paint phases to those leafs that need them.

This optimization was used and tested with all SVG pixel tests in
the downstream branch -- so it's well tested that this works fine.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintForegroundForFragments):

3:36 AM Changeset in webkit [289204] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Extend overflow/clip rect handling for SVG layers
​https://bugs.webkit.org/show_bug.cgi?id=236188

Reviewed by Rob Buis.

Non-visible overflow implies a clip, that potentially influences the layer
geometry. The 'foregroundRect' is intersected with the 'overflowClipRect'
of the renderer - usually provided via RenderBox::overflowClipRect().

The CSS overflow handling is applicable to SVG as well, most noticeable
the outermost <svg> element (RenderSVGRoot), already uses the CSS overflow
handling, as it is RenderBox derived (via its RenderReplaced inheritance)
and not RenderSVGModelObject derived.

However inner <svg> elements (RenderSVGViewportContainer) and <marker>
elements also require overflow handling -- this patch allows them to
participate in the layer overflow handling and therefore extends both
RenderLayer::calculateClipRects() and RenderLayer::calculateRects()
to support RenderSVGModelObject.

Covered by existing tests, no change in behaviour.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

3:12 AM Changeset in webkit [289203] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Bail out early in stopForUserCancel
​https://bugs.webkit.org/show_bug.cgi?id=223536

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-07
Reviewed by Darin Adler.

Source/WebCore:

Bail out early in stopForUserCancel in case
the frame is already in the process of stopping.

Test: fast/loader/commit-provisional-load-crash.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopForBackForwardCache):
(WebCore::FrameLoader::stopForUserCancel):

  • loader/FrameLoader.h:

LayoutTests:

Add test for this.

  • fast/loader/commit-provisional-load-crash-expected.txt: Added.
  • fast/loader/commit-provisional-load-crash.html: Added.
2:25 AM Changeset in webkit [289202] by Carlos Garcia Campos
  • 11 edits in trunk

[WebDriver] Add support for shadow roots
​https://bugs.webkit.org/show_bug.cgi?id=230614
<rdar://problem/83667535>

Reviewed by Adrian Perez de Castro.

Source/WebDriver:

Add implementation of new shadow root commands.

  • CommandResult.cpp:

(WebDriver::CommandResult::httpStatusCode const): Handle NoSuchShadowRoot and DetachedShadowRoot errors
(WebDriver::CommandResult::errorString const): Ditto.

  • CommandResult.h:
  • Session.cpp:

(WebDriver::Session::shadowRootIdentifier): Return shadow root identifier.
(WebDriver::Session::createShadowRoot): Create shadow root elment using the shadow root identifier.
(WebDriver::Session::findElements): Add ElementIsShadowRoot parameters to handle DetachedShadowRoot error.
(WebDriver::Session::getElementShadowRoot): Return the element shadow root.

  • Session.h:
  • WebDriverService.cpp:

(WebDriver::WebDriverService::findElement): Pass ElementIsShadowRoot::No to Session::findElements().
(WebDriver::WebDriverService::findElements): Ditto.
(WebDriver::WebDriverService::findElementFromElement): Ditto.
(WebDriver::WebDriverService::findElementsFromElement): Ditto.
(WebDriver::WebDriverService::findElementFromShadowRoot):
(WebDriver::WebDriverService::findElementsFromShadowRoot):
(WebDriver::WebDriverService::getElementShadowRoot):

  • WebDriverService.h:

Source/WebKit:

Use querySelectorAll() instead of getElementsByTagName() because it is also available for shadow root.

  • UIProcess/Automation/atoms/FindNodes.js:

(tryToFindNode):

WebDriverTests:

Update test expectations.

1:22 AM Changeset in webkit [289201] by Ziran Sun
  • 6 edits in trunk

[Forms] Alias appearance <compat-auto> keywords to 'auto'
​https://bugs.webkit.org/show_bug.cgi?id=235944

Reviewed by Aditya Keerthi.

Source/WebCore:

This CL alias the <compat-auto> keywords 'auto'. We need to address the cases of MenuList, button,
square-button, push-button and slider-horizontal etc. separately.

Spec ref: ​https://drafts.csswg.org/css-ui-4/#typedef-appearance-compat-auto

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustAppearanceWithElementType const):
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):

  • rendering/RenderTheme.h:

LayoutTests:

Unskip tests in test expactation files that are now passing.

Feb 6, 2022:

9:45 PM Changeset in webkit [289200] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r286936): Crash in WebKit::OriginStorageManager::StorageBucket::deleteLocalStorageData
​https://bugs.webkit.org/show_bug.cgi?id=236209

Reviewed by Darin Adler.

Add null check for modificationTime returned by FileSystem::fileModificationTime.

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::deleteLocalStorageData):

9:29 PM Changeset in webkit [289199] by Lauro Moura
  • 5 edits in trunk/Source

Unreviewed, non-unified build fixes
​https://bugs.webkit.org/show_bug.cgi?id=236216

Source/JavaScriptCore:

This missing include was causing non-unified builds to fail linking
libWPEWebkit with undefined JSC::Structure::get(...) after dropping
gold as the default linker in 246713@main.

  • wasm/js/JSWebAssemblyException.cpp:

Source/WebCore:

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.h:
  • workers/shared/context/SharedWorkerThread.cpp:
9:02 PM Changeset in webkit [289198] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Address a post-commit review comment after r289171.

Reviewed by Darin Adler.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
8:42 PM Changeset in webkit [289197] by Fujii Hironori
  • 2 edits in trunk/Tools

REGRESSION(r288878) webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests tests are failing with Windows Python
​https://bugs.webkit.org/show_bug.cgi?id=236043
<rdar://problem/88449289>

Reviewed by Darin Adler.

Since r288878 started to use pyfakefs, Port.relative_test_filename
didn't work as expected in unit tests with Windows Python because
TestPort.layout_tests_dir returned Unix-style path while the path
name of layout test is Windows-style path.

  • Scripts/webkitpy/port/test.py: Use abspath to convert Unix-style

path to Windows-style for Windows Python.

8:18 PM Changeset in webkit [289196] by Jean-Yves Avenard
  • 3 edits in trunk/LayoutTests

media/media-source/media-webm-vorbis-partial.html is failing
​https://bugs.webkit.org/show_bug.cgi?id=236211
rdar://88298267

Reviewed by Darin Adler.

The manifest data was incorrect, the webm cluster size is 10004 bytes long.
Expand the test so it's consistent with the webm/opus one.

  • media/media-source/content/test-vorbis-manifest.json:
  • media/media-source/media-webm-vorbis-partial.html:
7:58 PM Changeset in webkit [289195] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[GTK][WPE] Unreviewed build fix for Debian Stable after r288872
​https://bugs.webkit.org/show_bug.cgi?id=236215

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::timeout):

  • platform/graphics/PlatformDisplay.cpp:
7:44 PM Changeset in webkit [289194] by weinig@apple.com
  • 7 edits in trunk

Update serialization of rgb() functions with none components to latest spec
​https://bugs.webkit.org/show_bug.cgi?id=236210

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update tests for new serialization behavior.

  • web-platform-tests/css/css-color/parsing/color-computed.html:
  • web-platform-tests/css/css-color/parsing/color-valid.html:
  • web-platform-tests/css/css-color/parsing/relative-color-computed.html:
  • web-platform-tests/css/css-color/parsing/relative-color-valid.html:

Source/WebCore:

The CSS Color spec now states that rgb() with none components should serialize none
compoonents as 0. This means we can remove a bunch of special serialization code
and use the old code path once again.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serializationForCSS):
(WebCore::decimalDigit):
(WebCore::fractionDigitsForFractionalAlphaValue):
(WebCore::legacyRGBComponent): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::StringTypeAdapter): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::length const): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::is8Bit const): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::writeTo const): Deleted.
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::buffer const): Deleted.

7:43 PM Changeset in webkit [289193] by weinig@apple.com
  • 3 edits
    10 deletes in trunk/LayoutTests

Remove duplicate tests that have been upstreamed to WPT
​https://bugs.webkit.org/show_bug.cgi?id=236214

Reviewed by Darin Adler.

  • fast/css/parsing-color-contrast-expected.txt: Removed.
  • fast/css/parsing-color-contrast.html: Removed.
  • fast/css/parsing-color-function-expected.txt: Removed.
  • fast/css/parsing-color-function.html: Removed.
  • fast/css/parsing-color-mix-expected.txt: Removed.
  • fast/css/parsing-color-mix.html: Removed.
  • fast/css/parsing-lab-colors-expected.txt: Removed.
  • fast/css/parsing-lab-colors.html: Removed.
  • fast/css/parsing-relative-color-syntax-expected.txt: Removed.
  • fast/css/parsing-relative-color-syntax.html: Removed.

These have all been added to wpt's css/css-color test suite.

  • platform/glib/TestExpectations:
  • platform/win/TestExpectations:

Update to account for removed tests.

6:01 PM Changeset in webkit [289192] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBox should hold on to its logical rect
​https://bugs.webkit.org/show_bug.cgi?id=236201

Reviewed by Antti Koivisto.

Now that the Display::Line has all visual coords, we don't have a way to retrieve the line's logical rect
(we never did, it just happened to match the Display::Line's rect).
This is also in preparation for adding vertical writing mode support.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const):
(WebCore::Layout::LineBox::setLogicalRect):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
5:50 PM Changeset in webkit [289191] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Logical rect for text run does not require the parent inline box's FontMetrics:ascent
​https://bugs.webkit.org/show_bug.cgi?id=236195

Reviewed by Antti Koivisto.

Let's compute the text run's logical top using the parent inline box geometry only.
This patch also renames InlineLevelBox::baseline to ascent to indicate that it's an ascent value.

  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::InlineLevelBox::ascent const):
(WebCore::Layout::InlineLevelBox::setAscent):
(WebCore::Layout::InlineLevelBox::baseline const): Deleted.
(WebCore::Layout::InlineLevelBox::setBaseline): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeLogicalHeightAndAlign const):
(WebCore::Layout::LineBoxVerticalAligner::simplifiedVerticalAlignment const):
(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
(WebCore::Layout::LineBoxVerticalAligner::alignInlineLevelBoxes const):

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

4:38 PM Changeset in webkit [289190] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r289060 - null ptr deref in RenderTreeBuilder::Block::attachIgnoringContinuation
​https://bugs.webkit.org/show_bug.cgi?id=234170

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-03
Reviewed by Antti Koivisto.

Source/WebCore:

When an element with "display: contents" is put into the top layer, its computed style for
the display property becomes "block" [1]. However, RenderTreeUpdater::updateElementRenderer
does not manage well this transition. In particular, a null ptr deref happens for some
special configuration involving a <dialog style="display: contents">. To work around that
issue, always force tearing down renderers when updating an element in the top layer.

[1] ​https://fullscreen.spec.whatwg.org/#new-stacking-layer

Test: fast/layers/top-layer-display-contents-crash.html

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer): Always force tearing down renderers
for top layer element.

LayoutTests:

Add regression test.

  • fast/css/top-layer-display-contents-crash-expected.txt: Added.
  • fast/css/top-layer-display-contents-crash.html: Added.
4:33 PM Changeset in webkit [289189] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Check if fallback font glyphs initiate ideographic baseline
​https://bugs.webkit.org/show_bug.cgi?id=236182

Reviewed by Antti Koivisto.

This patch is in preparation for supporting vertical writing mode.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::fallbackFontHasVerticalGlyph):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
4:16 PM Changeset in webkit [289188] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288937 - Check AccessibilityRenderObject::m_renderer for null before using it.
​https://bugs.webkit.org/show_bug.cgi?id=235950
<rdar://problem/88326438>

Reviewed by Chris Fleizach.

AccessibilityRenderObject::m_renderer is a WeakPtr that can become null
due to a variety of changes in the render tree. This patch fixes a
number of cases where AccessibilityRenderObject::m_renderer was being
used without checking for null which leads to crashes such as:
​https://bugs.webkit.org/show_bug.cgi?id=235945
​https://bugs.webkit.org/show_bug.cgi?id=235827

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectIfExists const):
(WebCore::AccessibilityRenderObject::selection const):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::documentLinks):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

4:16 PM Changeset in webkit [289187] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r288874 - AX: nullptr crash under AccessibilityRenderObject::computeAccessibilityIsIgnored
​https://bugs.webkit.org/show_bug.cgi?id=235945
rdar://88217815

Reviewed by Andres Gonzalez.

This is similar to ​https://bugs.webkit.org/show_bug.cgi?id=161276.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

m_renderer is a WeakPtr and can become null during parentObjectUnignored call, same as
the case below.

4:16 PM Changeset in webkit [289186] by Adrian Perez de Castro
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288672 - jsc_fuz/wktr: crash with new XRReferenceSpaceEvent(, {referenceSpace})
​https://bugs.webkit.org/show_bug.cgi?id=235456

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-01-27
Reviewed by Chris Dumez.

Source/WebCore:

FastMalloc.h specifies that each derived class needs to be annotated as well with WTF_MAKE_ISO_ALLOCATED
if the base class is annotated with WTF_MAKE_ISO_ALLOCATED.

After doing this, the crash in WebCore::Event::operator new(unsigned long) is no longer reproducible.
However, this caused ASSERT(m_transform) to be hit in debug builds with the attached test case.

The XRReferenceSpaceEvent spec specifies the transform attribute as nullable
(​https://immersive-web.github.io/webxr/#dictdef-xrreferencespaceeventinit), so this patch updates the
XRReferenceSpaceEvent IDL and implementation to match the spec, and removes the ASSERT accordingly.

Test: webxr/xr-reference-space-event-crash.html

  • Modules/webxr/XRReferenceSpaceEvent.cpp:

(WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent):
(WebCore::XRReferenceSpaceEvent::transform const):

  • Modules/webxr/XRReferenceSpaceEvent.h:
  • Modules/webxr/XRReferenceSpaceEvent.idl:

LayoutTests:

  • webxr/xr-reference-space-event-crash.html: Added.
3:45 PM Changeset in webkit [289185] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288589 - XPath::Step::nodesInAxis(): add null checks after Attr::ownerElement() calls
​https://bugs.webkit.org/show_bug.cgi?id=235500

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from ​https://github.com/web-platform-tests/wpt/pull/32544.

  • web-platform-tests/domxpath/xpath-evaluate-crash-expected.txt: Added.
  • web-platform-tests/domxpath/xpath-evaluate-crash.html: Added.

Source/WebCore:

This patch adds null checks for results of Attr::ownerElement() to avoid crashes
when evaluating XPath expressions with an orphaned Attr as the context node.

Inspired by the recent Blink fix [1], yet this change covers all null pointer
dereferencing sites, as proven by the updated test.

[1] ​https://bugs.chromium.org/p/chromium/issues/detail?id=1236967

Test: imported/w3c/web-platform-tests/domxpath/xpath-evaluate-crash.html

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis const):

3:42 PM Changeset in webkit [289184] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288423 - m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
​https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.
2:28 PM Changeset in webkit [289183] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add initial ideographic baseline support
​https://bugs.webkit.org/show_bug.cgi?id=236177

Reviewed by Antti Koivisto.

This patch is in preparation for supporting vertical writing mode.

We don't know in advance if the style/content requires ideographic or alphabetic baseline, so
either we pre-compute it by going through all the individual runs or post-adjust it
by looping through the newly constructed inline boxes (which most of the time is the root inline box only).
This patch implements the post-adjust version where after constructInlineLevelBoxes(), we call
adjustIdeographicBaselineIfApplicable and reset the ascent/descent values accordingly.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::adjustIdeographicBaselineIfApplicable):
(WebCore::Layout::computedHeightAndLayoutBounds):
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):

2:21 PM Changeset in webkit [289182] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[Wasm] ref.null check should be done first in B3 call_ref
​https://bugs.webkit.org/show_bug.cgi?id=236206

Reviewed by Mark Lam.

JSTests:

  • wasm.yaml:
  • wasm/function-references-spec-tests/call-null-ref.wast.js: Added.

Source/JavaScriptCore:

We should first check ref.null before loading data from the reference in B3 call_ref.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCallRef):

1:10 PM Changeset in webkit [289181] by graouts@webkit.org
  • 4 edits in trunk

[css-logical] Animations should convert logical properties to their physical equivalents
​https://bugs.webkit.org/show_bug.cgi?id=218092
<rdar://problem/70579530>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-002-expected.txt:

Source/WebCore:

When computing the keyframe styles for a CSS animation, resolve the logical properties
to their physical equivalent.

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):

12:59 PM Changeset in webkit [289180] by Adrian Perez de Castro
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.34

Merge r288362 - WPT version of css/css-cascade/parsing/layer-import-parsing.html crashes with nullptr
​https://bugs.webkit.org/show_bug.cgi?id=235434
rdar://87832940

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html:

Update to WPT version.

Source/WebCore:

Test: fast/css/insert-import-rule-crash.html

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::setCSSStyleSheet):

Null check the parent stylesheet. It can be null if the rule has been removed.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):

Also fix a debug assert in addPendingSheet, this can get called multiple times.

LayoutTests:

  • fast/css/insert-import-rule-crash-expected.txt: Added.
  • fast/css/insert-import-rule-crash.html: Added.
12:46 PM Changeset in webkit [289179] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r288217 - Null check player in taintsOrigin
​https://bugs.webkit.org/show_bug.cgi?id=234257

Patch by Rob Buis <​rbuis@igalia.com> on 2022-01-19
Reviewed by Youenn Fablet.

Source/WebCore:

Null check player in taintsOrigin.

Test: fast/media/createImageBitmap-from-video-crash.html

  • html/ImageBitmap.cpp:

(WebCore::taintsOrigin):

LayoutTests:

  • fast/media/createImageBitmap-from-video-crash-expected.txt: Added.
  • fast/media/createImageBitmap-from-video-crash.html: Added.
12:42 PM Changeset in webkit [289178] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[web-animations] DocumentTimeline::computeExtentOfAnimation() should be defined on Styleable
​https://bugs.webkit.org/show_bug.cgi?id=236204

Reviewed by Dean Jackson.

There is no need to go through the DocumentTimeline to compute the animated
bounds for a renderer. Styleable is a more appropriate place for this.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::computeExtentOfAnimation const): Deleted.

  • animation/DocumentTimeline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • style/Styleable.cpp:

(WebCore::Styleable::computeAnimationExtent const):

  • style/Styleable.h:
12:37 PM Changeset in webkit [289177] by Cameron McCormack
  • 3 edits in trunk/Source/JavaScriptCore

Cache the most recent AtomString produced by JSString::toIdentifier
​https://bugs.webkit.org/show_bug.cgi?id=236124

Reviewed by Yusuke Suzuki.

JSString::toIdentifier does not store the result of atomizing its string
value, except when it is a rope. We can often end up atomizing the same
JSString a number of times.

This patch caches the last atomized string produced from
JSString::toIdentifier in a given VM. From local testing, this is a 0.5%
Speedometer2 improvement on an M1 MacBook Air, although surprisingly is
neutral on a recent Intel MacBook Pro.

  • runtime/JSString.h:

(JSC::JSRopeString::toIdentifier const):
(JSC::JSString::toIdentifier const):

  • runtime/VM.h:
12:25 PM Changeset in webkit [289176] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Unreviewed non-unified build fix.

  • runtime/DeferredWorkTimer.h: Add missing JSCast.h header inclusion.
12:04 PM Changeset in webkit [289175] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[WASM] Fix clang tidy bugprone-move-forwarding-reference static analyzer warnings in WasmLLIntGenerator.cpp
<​https://webkit.org/b/236202>
<rdar://problem/88545940>

Reviewed by Yusuke Suzuki.

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::ControlType::ControlType):

  • Replace WTFMove() with std::forward<>().
11:32 AM Changeset in webkit [289174] by Adrian Perez de Castro
  • 14 edits in releases/WebKitGTK/webkit-2.34

Merge r289129 - [GTK] Crash when starting DND on touchscreen
​https://bugs.webkit.org/show_bug.cgi?id=235694

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • page/DragController.cpp:

(WebCore::DragController::startDrag):
Skip drags for touch events on GTK.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::isTouchEvent const):

Source/WebKit:

Drag-n-drop on touch has never worked correctly in GTK, and is usually
just disabled. Do the same thing and ignore it for synthesized mouse
events.

  • Shared/NativeWebMouseEvent.h:
  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode const):
(WebKit::WebMouseEvent::decode):

  • Shared/WebMouseEvent.h:

(WebKit::WebMouseEvent::isTouchEvent const):

  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchRelease):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseSynthesizeMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::handleMotion):

Tools:

  • TestWebKitAPI/glib/CMakeLists.txt: Define BUILDING_TestWebKit
11:25 AM Changeset in webkit [289173] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r289172
​https://bugs.webkit.org/show_bug.cgi?id=236180

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

11:17 AM Changeset in webkit [289172] by ysuzuki@apple.com
  • 6 edits in trunk

[WTF] Make Bitmap constexpr friendly
​https://bugs.webkit.org/show_bug.cgi?id=236180

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch makes Bitmap more constexpr friendly so that JSGlobalObjectFunctions's
functions can compile Bitmap as constexpr, which avoids possible race condition.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::makeCharacterBitmap):
(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WTF:

Attach constexpr to constructor and methods if it is possible.

  • wtf/Bitmap.h:

(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::invert):
(WTF::WordType>::nextPossiblyUnset const):
(WTF::WordType>::isEmpty const):
(WTF::WordType>::isFull const):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::subsumes const):
(WTF::WordType>::mergeAndClear):
(WTF::WordType>::setAndClear):
(WTF::= const):
(WTF::=):
(WTF::WordType>::Bitmap): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/Bitmap.cpp:
11:00 AM Changeset in webkit [289171] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Introduce LineBoxBuilder::setBaselineAndLayoutBounds/layoutBoundsMetricsForInlineBox
​https://bugs.webkit.org/show_bug.cgi?id=236183

Reviewed by Antti Koivisto.

This patch is in preparation for adding ideographic baseline support. It helps to
simplify the ideographic baseline adjustment by just making the following call

setBaselineAndLayoutBounds(inlineBox, layoutBoundsMetricsForInlineBox(inlineBox, IdeographicBaseline));

to adjust the inline box's vertical geometry when in vertical writing mode.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::adjustLayoutBoundsWithFallbackFonts const):
(WebCore::Layout::layoutBoundsMetricsForInlineBox):
(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::adjustVerticalGeometryForInlineBoxWithFallbackFonts const): Deleted.
(WebCore::Layout::computedHeightAndLayoutBounds): Deleted.
(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const): Deleted.
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
9:33 AM Changeset in webkit [289170] by Tyler Wilcock
  • 10 edits in trunk

AX: Add internal-only flag to enable WIP display: contents support
​https://bugs.webkit.org/show_bug.cgi?id=236179

Reviewed by Chris Fleizach.

Source/WebCore:

Shipping half-done accessibility support for display: contents will
probably be a worse experience than status quo in some scenarios, so
we should gate it behind an internal-only feature flag until we're
confident it's ready.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSDisplayContentsAXSupportEnabled):
(WebCore::RuntimeEnabledFeatures::cssDisplayContentsAXSupportEnabled const):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences cssDisplayContentsAXSupportEnabled]):
(-[WebPreferences setCSSDisplayContentsAXSupportEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

8:14 AM Changeset in webkit [289169] by Wenson Hsieh
  • 4 edits
    2 adds in trunk/Tools

Adjust platformResetStateToConsistentValues to avoid grabbing the general pasteboard when possible
​https://bugs.webkit.org/show_bug.cgi?id=236196

Reviewed by Darin Adler.

For reasons that are still unknown, when running layout tests in the iOS 15.4 simulator, the iOS simulator's
pasted sometimes gets into a state where the work queue (com.apple.pasteboard.PBPasteboardModel-work-queue)
gets permanently stuck while attempting to save pasteboard items.

Once in this state, all subsequent layout tests will time out (regardless of whether the tests themselves
exercise copy and paste), since the process of resetting the harness to a consistent state always tries to clear
the general pasteboard by setting items to an empty array. This means that every layout test that tries to
start after getting into the above state will hang during state reset, before it even gets a chance to load the
layout test.

To avoid this, only clear the general pasteboard if the test actually attempted to add data to the pasteboard.
While this doesn't fix a large number of editing and copy/paste-related layout tests on iOS 15.4, it does allow
us to skip these tests for now and continue running the remaining layout tests.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::pasteboardConsistencyEnforcer):

  • WebKitTestRunner/ios/UIPasteboardConsistencyEnforcer.h: Added.

Add a helper class that listens for notifications whenever the contents of any pasteboard changes; if the name
of the changed pasteboard matches, we clear out its items when -clearPasteboard is invoked. It's critical to
pass only a pasteboard name here instead of a pasteboard itself, since even calling +generalPasteboard causes
the test to hang.

  • WebKitTestRunner/ios/UIPasteboardConsistencyEnforcer.mm: Added.

(-[UIPasteboardConsistencyEnforcer initWithPasteboardName:]):
(-[UIPasteboardConsistencyEnforcer clearPasteboard]):
(-[UIPasteboardConsistencyEnforcer pasteboardChanged:]):

7:39 AM Changeset in webkit [289168] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[css-transitions] remove duplicate code dealing with completed transitions
​https://bugs.webkit.org/show_bug.cgi?id=236198

Reviewed by Dean Jackson.

We already mark transitions as completed in DocumentTimeline::transitionDidComplete()
and doing this again in updateCSSTransitionsForStyleableAndProperty() is unnecessary.

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

7:17 AM Changeset in webkit [289167] by graouts@webkit.org
  • 4 edits in trunk

[css-logical] [css-transitions] Resolve logic properties when compiling the list of transition properties
​https://bugs.webkit.org/show_bug.cgi?id=236197

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-logical/animation-004-expected.txt:

Source/WebCore:

In r289161 we added initial support for transitions of logical properties. However, we would resolve the
transition-property in updateCSSTransitionsForStyleableAndProperty() whereas we should resolve them earlier
when compiling the list of transition-property values found in the previous style and the new style.

  • style/Styleable.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::compileTransitionPropertiesInStyle):
(WebCore::updateCSSTransitionsForStyleableAndProperty):

4:34 AM Changeset in webkit [289166] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Object literal doesn't properly resolve name clash between an accessor and a constant property
​https://bugs.webkit.org/show_bug.cgi?id=220574

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-02-06
Reviewed by Yusuke Suzuki.

JSTests:

  • stress/class-static-accessor-name-clash-with-field.js: Added.
  • stress/object-literal-accessor-name-clash-with-constant.js: Added.

Source/JavaScriptCore:

The spec [1] calls DefineOwnProperty for every property node, whether it's a
getter, a setter, or a value. JSC attempts to reduce emitted bytecodes by setting
up a getter and a setter at once.

However, there is a slower path that exactly matches the spec, which was called only
if a spread syntax or a computed property was encountered. With this patch, the slower
path is also taken in case of a constant property (including a shorthand) with the
same name as an accessor.

That causes an incomplete accessor descriptor to correctly overwrite the existing
data one, which aligns JSC with V8 and SpiderMonkey.

This bug doesn't exist for static class fields and accessors because initialization
of class fields is deferred [2] and they always overwrite eponymous static methods /
accessors, no matter the order in source code. No reproduction for private elements either.

[1]: ​https://tc39.es/ecma262/#sec-runtime-semantics-methoddefinitionevaluation (step 11 of "get", step 10 of "set")
[2]: ​https://tc39.es/ecma262/#sec-runtime-semantics-classdefinitionevaluation (step 31.a)

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode):

LayoutTests:

Adjusted test now passes on V8 and SpiderMonkey as well.

  • js/class-syntax-method-names-expected.txt:
  • js/script-tests/class-syntax-method-names.js:

Feb 5, 2022:

4:54 PM Changeset in webkit [289165] by Chris Dumez
  • 19 edits
    2 copies
    4 moves
    7 adds
    16 deletes in trunk/LayoutTests

Resync web-platform-tests/dom from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236147

Reviewed by Darin Adler.

Resync web-platform-tests/dom from upstream 893e71aa9c0a97d259ff.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/dom/eventPathRemoved-expected.txt: Added.
  • web-platform-tests/dom/eventPathRemoved.html: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-once-expected.txt: Removed.
  • web-platform-tests/dom/events/AddEventListenerOptions-passive-expected.txt: Removed.
  • web-platform-tests/dom/events/Event-constructors-expected.txt: Removed.
  • web-platform-tests/dom/events/EventTarget-add-remove-listener-expected.txt: Removed.
  • web-platform-tests/dom/events/EventTarget-addEventListener-expected.txt: Removed.
  • web-platform-tests/dom/events/EventTarget-removeEventListener-expected.txt: Removed.
  • web-platform-tests/dom/events/ProgressEvent-expected.txt: Removed.
  • web-platform-tests/dom/events/ProgressEvent.html: Removed.
  • web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default.tentative-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/document-level-touchmove-event-listener-passive-by-default-expected.txt.
  • web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default-expected.txt: Removed.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any-expected.txt: Removed.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.worker-expected.txt: Removed.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.window-expected.txt: Added.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.window.html: Copied from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.html.
  • web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.js.
  • web-platform-tests/dom/events/focus-event-document-move-expected.txt: Removed.
  • web-platform-tests/dom/events/resources/w3c-import.log:
  • web-platform-tests/dom/events/scrolling/overscroll-deltas-expected.txt: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/idlharness-shadowrealm.window-expected.txt: Added.
  • web-platform-tests/dom/idlharness-shadowrealm.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.worker.html.
  • web-platform-tests/dom/idlharness-shadowrealm.window.js: Added.
  • web-platform-tests/dom/idlharness.any.serviceworker-expected.txt:
  • web-platform-tests/dom/idlharness.any.sharedworker-expected.txt: Added.
  • web-platform-tests/dom/idlharness.any.sharedworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/events/event-global-set-before-handleEvent-lookup.any.html.
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt: Removed.
  • web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Removed.
  • web-platform-tests/dom/nodes/Node-insertBefore-expected.txt:
  • web-platform-tests/dom/nodes/Node-insertBefore.html:
  • web-platform-tests/dom/nodes/getElementsByClassNameFrame-expected.txt: Removed.
  • web-platform-tests/dom/ranges/Range-mutations-expected.txt: Removed.
  • web-platform-tests/dom/ranges/Range-mutations.html: Removed.
  • web-platform-tests/dom/ranges/Range-test-iframe-expected.txt: Removed.
  • web-platform-tests/dom/traversal/support/w3c-import.log:
  • web-platform-tests/dom/w3c-import.log:
  • web-platform-tests/interfaces/dom.idl:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
4:14 PM Changeset in webkit [289164] by Alexey Shvayka
  • 3 edits
    1 add in trunk

Attempting to Set JSArray's read-only "length" should throw even with current Value
​https://bugs.webkit.org/show_bug.cgi?id=221177

Reviewed by Saam Barati.

JSTests:

  • stress/array-prototype-methods-set-length.js: Added.

Source/JavaScriptCore:

As per OrdinarySet algorithm [1]. To achieve that, while ensuring no error is thrown
if read-only "length" isn't actually changed via DefineOwnProperty [2], this patch
moves newLength == oldLength check to JSArray::defineOwnProperty().

That is guaranteed to be correct because:

a) it's the only caller of setLengthWithArrayStorage() that performs DefineOwnProperty,

while others implement Set;

b) there can't possibly be array indices that JSArray::defineOwnProperty() has to remove,

and even the spec a shortcut here [3].

All code paths in pop() / shift() / push() / unshift() are covered by the newly added test,
as well as JSArray's DefineOwnProperty, while slice() / splice() / etc were vetted to
Set "length" according to the spec.

Aligns JSC with SpiderMonkey and partly with V8, which is correct for Object.freeze()
but not for Object.defineProperty(array, "length", { writable: false }).

[1]: ​https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 2.a)
[2]: ​https://tc39.es/ecma262/#sec-validateandapplypropertydescriptor (step 5 and 7)
[3]: ​https://tc39.es/ecma262/#sec-arraysetlength (step 11)

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::setLengthWithArrayStorage):

3:42 PM Changeset in webkit [289163] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

[LBSE] Handle RenderSVGShape in SVGRenderSupport::applyStrokeStyleToContext()
​https://bugs.webkit.org/show_bug.cgi?id=236077

Reviewed by Darin Adler.

Activate path length calculation for RenderSVGShape -- this bit
was missing when the layer-aware RenderSVGShape implementation was
upstreamed in r287832.

Currently the functionality is not observable, as we don't create
LBSE renderers yet.

Covered by existing tests, no change in behaviour.

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::applyStrokeStyleToContext):

3:39 PM Changeset in webkit [289162] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

[WTF] Fix clang tidy bugprone-move-forwarding-reference static analyzer warnings in CompletionHandler.h
<​https://webkit.org/b/236181>
<rdar://problem/88529996>

Reviewed by Chris Dumez.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):
(WTF::CompletionHandlerWithFinalizer<Out):

  • Replace WTFMove() with std::forward<>().
1:25 PM Changeset in webkit [289161] by graouts@webkit.org
  • 4 edits in trunk

[CSS transition] can't use CSS logical properties in transition syntax
​https://bugs.webkit.org/show_bug.cgi?id=232361
<rdar://problem/84958347>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark some WPT progressions. The new FAIL result isn't a real regression, that test
simply passed by virtue of not ever starting a transition for a logical property.

  • web-platform-tests/css/css-logical/animation-004-expected.txt:

Source/WebCore:

Resolve logical properties when considering properties that should trigger a transition.
To do so, we must pass the newly-set style to some methods such that they may be able to
reolve logical properties as well.

  • style/Styleable.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::transitionMatchesProperty):
(WebCore::updateCSSTransitionsForStyleableAndProperty):

11:44 AM Changeset in webkit [289160] by Simon Fraser
  • 5 edits in trunk/Source/WebKit

Refactor RemoteLayerBackingStoreCollection to have a single backing store traversal function
​https://bugs.webkit.org/show_bug.cgi?id=236040

Reviewed by Tim Horton.

Instead of traversing m_liveBackingStore and m_unparentedBackingStore in two places (from the volatilityTimerFired()
and from tryMarkAllBackingStoreVolatile()), factor into a single function with two behavior flags.

Also make VolatilityMarkingFlags an OptionSet<> and add an option to consider last display time.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately): Deleted.

10:06 AM Changeset in webkit [289159] by ysuzuki@apple.com
  • 21 edits
    2 copies in trunk

Thread suspend and resume should take a global lock to avoid deadlock
​https://bugs.webkit.org/show_bug.cgi?id=236159

Reviewed by Geoffrey Garen.

Source/bmalloc:

Introduce pas_thread_suspend_lock and take it when suspending and resuming threads.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • libpas/src/libpas/pas_scavenger.c:

(scavenger_thread_main):
(pas_scavenger_clear_all_caches):

  • libpas/src/libpas/pas_thread_local_cache.c:

(pas_thread_local_cache_for_all):

  • libpas/src/libpas/pas_thread_local_cache.h:
  • libpas/src/libpas/pas_thread_suspend_lock.c: Copied from Source/WTF/wtf/ThreadMessage.cpp.
  • libpas/src/libpas/pas_thread_suspend_lock.h: Copied from Source/WTF/wtf/ThreadMessage.cpp.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • heap/MachineStackMarker.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):

  • runtime/VMTraps.cpp:
  • wasm/WasmMachineThreads.cpp:

(JSC::Wasm::resetInstructionCacheOnAllThreads):

Source/WTF:

This patch introduces a global lock which should be taken while suspending and resuming a thread.
It is possible that two different threads suspend and resume threads. And if threads suspend
each other without critical section, it can cause a dead lock.

To avoid this problem, we introduce a global lock which should be taken when suspending and resuming
threads. Since libpas is also using thread suspension, we expose a global pas_thread_suspend_lock
when libpas is used, and we use this lock in WTF's Thread suspension code.

  • wtf/ThreadMessage.cpp:

(WTF::sendMessageScoped):

  • wtf/ThreadMessage.h:

(WTF::sendMessage):

  • wtf/Threading.cpp:

(WTF::ThreadSuspendLocker::ThreadSuspendLocker):
(WTF::ThreadSuspendLocker::~ThreadSuspendLocker):

  • wtf/Threading.h:
  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::suspend):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::suspend):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):

Tools:

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:

(runThreadMessageTest):

9:51 AM Changeset in webkit [289158] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Address KeyframeEffect::isAboutToRunAccelerated() FIXME
​https://bugs.webkit.org/show_bug.cgi?id=236178

Reviewed by Dean Jackson.

The canBeAccelerated() function catches all the cases to determine whether an effect
can be accelerated prior to being committed to a GraphicsLayerCA animation.

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::isAboutToRunAccelerated const):

8:37 AM Changeset in webkit [289157] by Alan Bujtas
  • 6 edits
    4 adds in trunk

[RenderTreeBuilder] Clean up column spanners when style change affects containing block
​https://bugs.webkit.org/show_bug.cgi?id=236042
<rdar://83975391>

Reviewed by Antti Koivisto.

Source/WebCore:

In addition to removing the leftover spanners after style change, this patch also expands on the type of style changes that may affect
subtree state inside a multicolumn flow.

Tests: fast/multicol/leftover-spanner-on-style-change-crash.html

fast/multicol/leftover-spanner-on-style-change-crash2.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

  • rendering/RenderElement.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

LayoutTests:

  • fast/multicol/leftover-spanner-on-style-change-crash-expected.txt: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash.html: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash2-expected.txt: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash2.html: Added.
8:35 AM Changeset in webkit [289156] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[Web Animations] DocumentTimeline::getAnimatedStyle() should be on Styleable
​https://bugs.webkit.org/show_bug.cgi?id=236176

Reviewed by Dean Jackson.

There is no need to go through the DocumentTimeline to compute the animated
style for a renderer. Styleable is a more appropriate place for this.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animatedStyleForRenderer): Deleted.

  • animation/DocumentTimeline.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::animatedStyle):

  • style/Styleable.cpp:

(WebCore::Styleable::computeAnimatedStyle const):

  • style/Styleable.h:
8:28 AM Changeset in webkit [289155] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move all the line box vertical alignment logic to LineBoxVerticalAligner
​https://bugs.webkit.org/show_bug.cgi?id=236171

Reviewed by Antti Koivisto.

This patch is in preparation for adding ideographic baseline support (vertical writing mode).

LineBoxBuilder::constructAndAlignInlineLevelBoxes has grown large and it's time to move some
code out of this function (the "align" part). Now all the vertical alignment logic, including
the check for simplified vertical alignment is part of the LineBoxVerticalAligner class.
While in this patch we initiate an extra loop on LineBox::nonRootInlineLevelBoxes(), it may very well be a
perf win for the most common cases where the root inline box has no child inline boxes at all
(as previously we called updateCanUseSimplifiedAlignment() on every text run by passing in the parent inline box).

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxBuilder.h:
  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::LineBoxVerticalAligner):
(WebCore::Layout::LineBoxVerticalAligner::computeLogicalHeightAndAlign const):
(WebCore::Layout::LineBoxVerticalAligner::canUseSimplifiedAlignmentForInlineLevelBox): Deleted.

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.h:

(WebCore::Layout::LineBoxVerticalAligner::formattingContext const):
(WebCore::Layout::LineBoxVerticalAligner::layoutState const):

3:24 AM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
1:25 AM Changeset in webkit [289154] by commit-queue@webkit.org
  • 16 edits
    3 deletes in trunk

[Flatpak SDK] Update to FDO 21.08.10 and GStreamer 1.20 releases
​https://bugs.webkit.org/show_bug.cgi?id=236136

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-05
Reviewed by Adrian Perez de Castro.

Source/WebCore:

Switch GStreamer 1.19 version checks to 1.20 now that it is officially released. Also
include a couple fixes that are needed with GStreamer 1.20 and one that is useful whatever
the GStreamer version:

  • GStreamer 1.20 ships a vp8alphadecodebin element able to handle video/x-vp8 caps, so our libwebrtc decoder factory needs to account for its presence, in addition to vp8dec.
  • With GStreamer 1.20 media/media-source/media-source-seek-back.html started racy crashing in the VideoTrackPrivateGStreamer configuration update, where the track was disconnected (hence its stream was cleared) and then a GObject notification was emitted by decodebin3. We should actually disconnect the GObject signal handlers before clearing the stream, to prevent potential null pointer access.
  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::handleNewDeinterleavePad):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::AudioTrackPrivateGStreamer::disconnect):

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::updateConfigurationFromCaps):
(WebCore::VideoTrackPrivateGStreamer::disconnect):

  • platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:

(WebCore::VP8Decoder::Create):

Tools/buildstream:

Update from GStreamer 1.18.5 to 1.20.0, along with the FDO SDK 21.08.10 release, allowing us
to remove 3 vendored patches, all upstreamed.

  • elements/freedesktop-sdk.bst:
  • elements/sdk/gst-libav.bst:
  • elements/sdk/gst-plugins-bad.bst:
  • elements/sdk/gst-plugins-base.bst:
  • elements/sdk/gst-plugins-good.bst:
  • elements/sdk/gst-plugins-ugly.bst:
  • elements/sdk/gstreamer.bst:
  • patches/0001-binutils-import-upstream-patches-for-thin-archive-su.patch: Removed.
  • patches/gst-plugins-bad-0001-debugutils-Add-fakeaudiosink-element.patch: Removed.
  • patches/gstreamer-0001-devicemonitor-Stop-only-the-already-started-provider.patch: Removed.
12:10 AM Changeset in webkit [289153] by beidson@apple.com
  • 18 edits in trunk/Source

Notification refactoring
​https://bugs.webkit.org/show_bug.cgi?id=236169

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No behavior change)

Some "no behavior change" refactors broken out from an upcoming larger patch, including:

  • Make Notification objects reliant on ScriptExecutionContext instead of Document
  • Give them a direct path to a NotificationClient instead of having to go through a Page's NotificationController
  • Give ScriptExecutionContext's a sessionID() accessor for future use
  • Some Notification object threading hardening
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::create):
(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::Notification::close):
(WebCore::Notification::clientFromContext):
(WebCore::Notification::stop):
(WebCore::Notification::dispatchErrorEvent):
(WebCore::Notification::permission):
(WebCore::Notification::requestPermission):
(WebCore::Notification::data const):
(WebCore::Notification::document const): Deleted.

  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationClient.h:
  • Modules/notifications/NotificationData.h:

(WebCore::NotificationData::encode const):
(WebCore::NotificationData::decode):

  • dom/Document.cpp:

(WebCore::Document::notificationClient):
(WebCore::Document::sessionID const):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::isServiceWorkerGlobalScope const):
(WebCore::ScriptExecutionContext::notificationClient):
(WebCore::ScriptExecutionContext::sessionID const):

  • workers/WorkerThread.h:
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::generateWorkerParameters):
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::m_notificationClient):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

Feb 4, 2022:

11:26 PM Changeset in webkit [289152] by ysuzuki@apple.com
  • 9 edits in trunk

WeakRef deref can return null instead of undefined
​https://bugs.webkit.org/show_bug.cgi?id=235880

Reviewed by Sam Weinig and Alexey Shvayka.

JSTests:

  • stress/v8-finalizationregistry-and-weakref.js:

(setTimeout):

Source/JavaScriptCore:

WeakRef#deref should return undefined[1] when a wrapped object is collected.

[1]: ​https://tc39.es/ecma262/#sec-weakrefderef

  • runtime/WeakObjectRefPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

LayoutTests:

  • js/script-tests/weakref-async-is-collected.js:

(async test):

  • js/script-tests/weakref-eventually-collects-values.js:

(let.weakRefs.async test):

  • js/script-tests/weakref-finalizationregistry.js:

(async test):

  • js/script-tests/weakref-microtasks-dont-collect.js:

(async test):

10:38 PM Changeset in webkit [289151] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

ch unit fallback size doesn't match the spec
​https://bugs.webkit.org/show_bug.cgi?id=236073
<rdar://problem/88513297>

Reviewed by Cameron McCormack.

Source/WebCore:

The spec (​https://drafts.csswg.org/css-values-4/#ch) says:

In the cases where it is impossible or impractical to determine the measure of the “0” glyph, it must be assumed to be 0.5em wide

Test: fast/text/ch-unit-without-zero-glyph.html

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeUnzoomedNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):

  • platform/graphics/Font.cpp:

(WebCore::Font::platformGlyphInit):

  • platform/graphics/FontMetrics.h:

(WebCore::FontMetrics::zeroWidth const):
(WebCore::FontMetrics::reset):

LayoutTests:

This can't be a WPT test because it uses an SVG font which we're the only browser to support.

  • fast/text/ch-unit-without-zero-glyph-expected.html: Added.
  • fast/text/ch-unit-without-zero-glyph.html: Added.
10:11 PM Changeset in webkit [289150] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Don't use adattributiond on iOS
​https://bugs.webkit.org/show_bug.cgi?id=236157

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-04
Reviewed by John Wilander.

It is still having configuration issues such as rdar://88334217

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

9:32 PM Changeset in webkit [289149] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

Update MediaStreamTrack understanding of source type
​https://bugs.webkit.org/show_bug.cgi?id=236165
<rdar://problem/88513632>

Reviewed by Jer Noble.

Before bug 235838, RealtimeMediaSource::Type was either Audio or Video. That bug
added new types for screen, window, and system audio capture, but MediaStreamTrack
wasn't updated to account for them. Instead of checking a source's type, use the new
hasAudio and 'hasVideo` methods.

No new tests, covered by existing tests.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::getAudioTracks const):
(WebCore::MediaStream::getVideoTracks const):
(WebCore::MediaStream::filteredTracks const):
(WebCore::MediaStream::trackVectorForType const): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind const):
(WebCore::MediaStreamTrack::setContentHint):
(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::isCapturingAudio const):

  • Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::hasVideo const):
(WebCore::MediaStreamTrack::hasAudio const):

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setType):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::sourceTypeForDevice):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Set the correct
source type.

8:04 PM Changeset in webkit [289148] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

Make isNaNConstExpr actually constexpr
​https://bugs.webkit.org/show_bug.cgi?id=236162

Reviewed by Darin Adler.

  • wtf/MathExtras.h:

(WTF::isNaNConstExpr): Add missing constexpr.

7:30 PM Changeset in webkit [289147] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[AX] Stop creating sandbox extensions for preference services
​https://bugs.webkit.org/show_bug.cgi?id=232956
<rdar://problem/85260698>

Reviewed by Geoffrey Garen.

Stop creating sandbox extensions for preference services when AX is enabled. There have been many code changes
related to updating AX preferences in the WebContent process, which is why we think this is not needed anymore.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:
6:54 PM Changeset in webkit [289146] by Simon Fraser
  • 9 edits in trunk/Source/WebKit

Lay the groundwork for markLayersVolatileImmediatelyIfPossible() being an asynchronous operation
​https://bugs.webkit.org/show_bug.cgi?id=236034

Reviewed by Tim Horton.

With DOM rendering in the GPU Process, markLayersVolatileImmediatelyIfPossible() will need
to do IPC to mark surfaces volatile, and we want that to be async IPC. So change the plumbing from
WebPage to RemoteLayerBackingStoreCollection to be callback-based, with a completion handler.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::tryMarkLayersVolatile):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::markLayersVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::tryMarkLayersVolatile):
(WebKit::RemoteLayerTreeDrawingArea::markLayersVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::tryMarkLayersVolatile):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::markLayersVolatileOrRetry):
(WebKit::WebPage::tryMarkLayersVolatileCompletionHandler):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible): Deleted.

  • WebProcess/WebPage/WebPage.h:
5:55 PM Changeset in webkit [289145] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] Use os_unfair_lock instead of spinlock
​https://bugs.webkit.org/show_bug.cgi?id=236158

Reviewed by Geoffrey Garen.

os_unfair_lock is very fast while it can properly suspend threads.
A/B test result was neutral on Speedometer2 and JetStream2. So, to
reduce unnecessary CPU spins, let's replace spinlock with os_unfair_lock
if it is supported (if OS is Darwin).

  • libpas/src/libpas/pas_config.h:
4:51 PM Changeset in webkit [289144] by ysuzuki@apple.com
  • 4 edits in trunk/Source/bmalloc

[libpas] allocation failure crash should be PAS_NEVER_INLINE
​https://bugs.webkit.org/show_bug.cgi?id=236164

Reviewed by Saam Barati.

We introduce pas_allocation_result_crash_on_error function which can leave OOM crash
information in the crash log. To keep this non-inlined, we annotate it PAS_NEVER_INLINE.

  • libpas/src/libpas/pas_allocation_result.h:

(pas_allocation_result_crash_on_error):

  • libpas/src/libpas/pas_utils.c:

(pas_panic_on_out_of_memory_error):

  • libpas/src/libpas/pas_utils.h:
4:48 PM Changeset in webkit [289143] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add test for the fix in ​https://bugs.webkit.org/show_bug.cgi?id=235928
​https://bugs.webkit.org/show_bug.cgi?id=236152

Patch by Matt Gilligan <​matthew_gilligan@apple.com> on 2022-02-04
Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

4:28 PM Changeset in webkit [289142] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] ScreenCaptureKitCaptureSource only outputs one frame
​https://bugs.webkit.org/show_bug.cgi?id=236161
<rdar://problem/88510634>

Reviewed by Jer Noble.

Don't WTFMove() a lambda-captured variable if the lambda will be called again.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:

(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):

4:05 PM Changeset in webkit [289141] by jonlee@apple.com
  • 65 edits in trunk/LayoutTests/imported/w3c

Unreviewed, land missing baseline for Shared Worker test.

Patch by Chris Dumez <Chris Dumez> on 2022-02-04

  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Added.
3:39 PM Changeset in webkit [289140] by commit-queue@webkit.org
  • 19 edits in trunk

REGRESSION(r280077): [GTK] It caused 155 new test failures
​https://bugs.webkit.org/show_bug.cgi?id=228153

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-04
Reviewed by Michael Catanzaro.

Source/WebKit:

Pass the GTKSettingsState in the WebProcessCreationParameters rather
than the WebPageCreationParameters, to ensure the correct GTK settings
are always applied in a new WebProcess.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::reinitializeWebPage):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Move initializeGtkSettings() from the InjectedBundle to the test runner,
since GTK settings are automatically propagated from the UI process to
the web processes.

  • WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:

(WTR::activateFonts):
(WTR::initializeGtkSettings): Deleted.

  • WebKitTestRunner/gtk/main.cpp:

(initializeGtkSettings):
(main):

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations: Garden tests that no longer fail.
  • platform/gtk/css1/font_properties/font-expected.txt:
  • platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
  • platform/wpe/TestExpectations:
3:21 PM Changeset in webkit [289139] by Ben Nham
  • 9 edits
    3 adds in trunk

Add PushDatabase
​https://bugs.webkit.org/show_bug.cgi?id=234194

Reviewed by Brady Eidson.

Source/WebCore:

This adds a persistence layer for push subscriptions stored in webpushd. The operations
that we support for now are:

  • inserting a record (used when subscribing)
  • removing a record (used when unsubscribing)
  • retrieving a record (used when receiving a push)
  • enumerating all records by wake state (used to provide the push service the list of all topics that we are subscribed to by wake state)

There are two basic data types in this data model:

  • Subscriptions, which are uniquely identified by (bundleID, serviceWorkerScope). This stores data that is unique to each subscription, e.g. encryption keys and the HTTP endpoint used by the server to send pushes to this subscription.
  • SubscriptionSets, which encompass one or more Subscriptions, and are uniquely identified by (bundleID, securityOrigin). This stores state this common to multiple subscriptions, e.g. whether or not all pushes sent by a particular origin should be non-waking.

For instance, suppose webkit.org in Safari has two service worker registrations scoped to
webkit.org/foo and webkit.org/bar. Each registration has successfully registered for push.
This would result in three rows in the database:

  1. Subscription row identified by (bundleID=safari, scope=webkit.org/foo)
  2. Subscription row identified by (bundleID=safari, scope=webkit.org/bar)
  3. SubscriptionSet row identified by (bundleID=safari, securityOrigin=webkit.org)

Both subscriptions (1) and (2) are part of the subscription set (3).

Covered by new API tests.

  • Headers.cmake:
  • Modules/push-api/PushDatabase.cpp: Added.

(WebCore::PushRecord::isolatedCopy const):
(WebCore::PushRecord::isolatedCopy):
(WebCore::openAndMigrateDatabaseImpl):
(WebCore::openAndMigrateDatabase):
(WebCore::PushDatabase::create):
(WebCore::PushDatabase::PushDatabase):
(WebCore::PushDatabase::~PushDatabase):
(WebCore::PushDatabase::dispatchOnWorkQueue):
(WebCore::PushDatabase::cachedStatementOnQueue):
(WebCore::bindExpirationTime):
(WebCore::expirationTimeFromValue):
(WebCore::completeOnMainQueue):
(WebCore::PushDatabase::insertRecord):
(WebCore::PushDatabase::removeRecordByIdentifier):
(WebCore::makePushRecordFromRow):
(WebCore::PushDatabase::getRecordByTopic):
(WebCore::PushDatabase::getRecordByBundleIdentifierAndScope):
(WebCore::PushDatabase::getIdentifiers):
(WebCore::PushDatabase::getTopicsByWakeState):

  • Modules/push-api/PushDatabase.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::inMemoryPath):
(WebCore::SQLiteDatabase::open):

  • platform/sql/SQLiteDatabase.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/PushDatabase.cpp: Added.

(TestWebKitAPI::getTopicsByWakeStateSync):
(TestWebKitAPI::PushDatabaseTest::insertRecord):
(TestWebKitAPI::PushDatabaseTest::removeRecordByRowIdentifier):
(TestWebKitAPI::PushDatabaseTest::getRecordByTopic):
(TestWebKitAPI::PushDatabaseTest::getRecordByBundleIdentifierAndScope):
(TestWebKitAPI::PushDatabaseTest::getRowIdentifiers):
(TestWebKitAPI::PushDatabaseTest::getTopicsByWakeState):
(TestWebKitAPI::operator==):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::makeTemporaryDatabasePath):
(TestWebKitAPI::TEST):

2:49 PM Changeset in webkit [289138] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289124.
​https://bugs.webkit.org/show_bug.cgi?id=236160

Introduced crash

Reverted changeset:

"[macOS][WP] Add telemetry for syscalls used during launch"
​https://bugs.webkit.org/show_bug.cgi?id=235865
​https://commits.webkit.org/r289124

2:17 PM Changeset in webkit [289137] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Block access to syscalls that are only used during launch
​https://bugs.webkit.org/show_bug.cgi?id=236102
<rdar://problem/88454893>

Reviewed by Brent Fulgham.

On iOS, block access to 12 Unix syscalls and 4 Mach syscalls after the WebContent process has finished launching.
These syscalls are only used during launch.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
1:34 PM Changeset in webkit [289136] by Alan Coon
  • 1 copy in tags/Safari-614.1.2

Tag Safari-614.1.2.

1:29 PM Changeset in webkit [289135] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk

Unreviewed, reverting r289098.
​https://bugs.webkit.org/show_bug.cgi?id=236154

caused some unexpected crashes

Reverted changeset:

"[RenderTreeBuilder] Clean up column spanners when style
change affects containing block"
​https://bugs.webkit.org/show_bug.cgi?id=236042
​https://commits.webkit.org/r289098

11:50 AM Changeset in webkit [289134] by commit-queue@webkit.org
  • 19 edits in trunk/Source

Remember whether cached main resources used private relay when considering whether to call _setPrivacyProxyFailClosed
​https://bugs.webkit.org/show_bug.cgi?id=236125

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-04
Reviewed by Geoffrey Garen.

Source/WebCore:

Use an unused bit on disk to remember whether the response was originally received over private relay.
Also, instead of remembering on the main frame's DocumentLoader, remember on the WebProcess.
This makes it so if you enter the same URL twice, which loads from the MemoryCache from different WebCore::Pages, it still remembers.
If you load a different domain, it will load in a different WebProcess anyways, at which point you will not be using the same MemoryCache.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setMainResourceWasPrivateRelayed): Deleted.
(WebCore::DocumentLoader::mainResourceWasPrivateRelayed const): Deleted.

Source/WebKit:

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::makeEntry):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::encodeAsStorageRecord const):
(WebKit::NetworkCache::Entry::decodeStorageRecord):

  • NetworkProcess/cache/NetworkCacheEntry.h:

(WebKit::NetworkCache::Entry::privateRelayed const):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/PrefetchCache.cpp:

(WebKit::PrefetchCache::Entry::Entry):
(WebKit::PrefetchCache::store):

  • NetworkProcess/cache/PrefetchCache.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::setHadMainFrameMainResourcePrivateRelayed):
(WebKit::WebProcess::hadMainFrameMainResourcePrivateRelayed const):

11:46 AM Changeset in webkit [289133] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r289067.
​https://bugs.webkit.org/show_bug.cgi?id=236149

Broke WinCairo LayoutTests

Reverted changeset:

"REGRESSION(r288878)
webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests
tests are failing with Windows Python"
​https://bugs.webkit.org/show_bug.cgi?id=236043
​https://commits.webkit.org/r289067

11:36 AM Changeset in webkit [289132] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Input geometry to layout (BoxGeometry) should be all logical
​https://bugs.webkit.org/show_bug.cgi?id=236120

Reviewed by Antti Koivisto.

Now (after adding support for inline base direction), it's clear that BoxGeometry, as input to inline line layout,
should hold logical values only (this is somewhat of a revert of r269818).
It also fixes ~40 tests under imported/w3c/web-platform-tests/css/css-writing-modes.

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions): We need logical vs. visual flip based on
in what writing direction the box lives in and not what it establishes for its descendants.

11:19 AM Changeset in webkit [289131] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Cache some expensive AXIsolatedObject properties lazily.
​https://bugs.webkit.org/show_bug.cgi?id=236115
<rdar://problem/88467667>

Reviewed by Chris Fleizach.

Some properties can be very expensive to compute for every object, and
may not even be used by the clients. Furthermore
descriptionAttributeValue() and titleAttributeValue() call
textUnderElement() which may crash if it is called in the middle of a
layout. This is the actual cause of
​https://bugs.webkit.org/show_bug.cgi?id=220446.
In this patch, we delay the computation and caching of these two
properties until they are first requested. This solves both the wasteful
computation if these properties are not used, and more importantly the
crash in the above mentioned bug.
This is a follow up change to:
​https://bugs.webkit.org/show_bug.cgi?id=236053

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::getOrRetrieveStringPropertyValue):
New method to lazily retrieve and cache any String property.
(WebCore::AXIsolatedObject::innerHTML const): Uses getOrRetrieveStringPropertyValue.
(WebCore::AXIsolatedObject::outerHTML const): Dito.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::initializePlatformProperties):
No longer caches the above mentioned properties.
(WebCore::AXIsolatedObject::descriptionAttributeValue const): Uses getOrRetrieveStringPropertyValue.
(WebCore::AXIsolatedObject::titleAttributeValue const): Dito.

10:58 AM Changeset in webkit [289130] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289069.
​https://bugs.webkit.org/show_bug.cgi?id=236146

Introduced sandbox violation

Reverted changeset:

"[iOS][WP] Enable sandbox state rules for Mach messages"
​https://bugs.webkit.org/show_bug.cgi?id=236027
​https://commits.webkit.org/r289069

10:53 AM Changeset in webkit [289129] by Alexander Mikhaylenko
  • 14 edits in trunk

[GTK] Crash when starting DND on touchscreen
​https://bugs.webkit.org/show_bug.cgi?id=235694

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • page/DragController.cpp:

(WebCore::DragController::startDrag):
Skip drags for touch events on GTK.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::isTouchEvent const):

Source/WebKit:

Drag-n-drop on touch has never worked correctly in GTK, and is usually
just disabled. Do the same thing and ignore it for synthesized mouse
events.

  • Shared/NativeWebMouseEvent.h:
  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode const):
(WebKit::WebMouseEvent::decode):

  • Shared/WebMouseEvent.h:

(WebKit::WebMouseEvent::isTouchEvent const):

  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchRelease):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseSynthesizeMouseEvent):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::handleMotion):

Tools:

  • TestWebKitAPI/glib/CMakeLists.txt: Define BUILDING_TestWebKit
10:50 AM Changeset in webkit [289128] by chris.reid@sony.com
  • 6 edits in trunk/Source

Revert some structured binding workarounds with Clang
​https://bugs.webkit.org/show_bug.cgi?id=236098

Reviewed by Sam Weinig.

Revert structured bindings workarounds made in r288309, r261572, r249524 now that this is fixed in clang.

Source/WebCore:

  • Modules/indexeddb/server/MemoryObjectStore.cpp:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
  • inspector/agents/InspectorNetworkAgent.cpp:

Source/WebKit:

  • NetworkProcess/storage/StorageAreaBase.cpp:
10:42 AM Changeset in webkit [289127] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r289125.
​https://bugs.webkit.org/show_bug.cgi?id=236145

Introduced sandbox violation

Reverted changeset:

"[iOS][WP] Block access to syscalls that are only used during
launch"
​https://bugs.webkit.org/show_bug.cgi?id=236102
​https://commits.webkit.org/r289125

10:23 AM Changeset in webkit [289126] by ntim@apple.com
  • 1 edit
    5 adds in trunk/Websites/webkit.org

Add <dialog> element demos for blog post
​https://bugs.webkit.org/show_bug.cgi?id=236143

Reviewed by Simon Fraser.

  • demos/dialog-element/confirmation-dialog-basic.html: Added.
  • demos/dialog-element/confirmation-dialog-form.html: Added.
  • demos/dialog-element/dark-theme.css: Added.

(body):
(@media (prefers-color-scheme: dark) dialog):

  • demos/dialog-element/styled-dialog.html: Added.
10:21 AM Changeset in webkit [289125] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Block access to syscalls that are only used during launch
​https://bugs.webkit.org/show_bug.cgi?id=236102
<rdar://problem/88454893>

Reviewed by Brent Fulgham.

On iOS, block access to 12 Unix syscalls and 4 Mach syscalls after the WebContent process has finished launching.
These syscalls are only used during launch.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
10:19 AM Changeset in webkit [289124] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add telemetry for syscalls used during launch
​https://bugs.webkit.org/show_bug.cgi?id=235865
<rdar://problem/88228583>

Reviewed by Brent Fulgham.

Add telemetry in the WebContent process' sandbox on macOS to determine which syscalls are used only during launch.

  • WebProcess/com.apple.WebProcess.sb.in:
10:17 AM Changeset in webkit [289123] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[iOS][macOS] Adjust sysctl sandbox access
​https://bugs.webkit.org/show_bug.cgi?id=236082
<rdar://problem/88436174>

Reviewed by Brent Fulgham.

Adjust sysctl sandbox access based on telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
9:26 AM Changeset in webkit [289122] by weinig@apple.com
  • 9 edits
    2 adds in trunk

Gradients don't correctly interpolate missing/none color components correctly
​https://bugs.webkit.org/show_bug.cgi?id=236025

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/gradients/gradient-with-missing-components.html

  • platform/graphics/Color.cpp:

(WebCore::Color::anyComponentIsNone const):

  • platform/graphics/Color.h:

Add helper to check if any component is 'none'.

  • platform/graphics/ColorComponents.h:

(WebCore::operator==):
Update operator== for ColorComponents to be none-aware and treat
two components that are both none as equal.

  • platform/graphics/ColorTypes.h:

(WebCore::assertInRange):
(WebCore::constexprIsNaN): Deleted.
Adopt shared version of the constexpr isnan.

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::anyComponentIsNone):
(WebCore::GradientRendererCG::pickStrategy const):
(WebCore::GradientRendererCG::makeShading const):
Use the CGShaderRef strategy if any component of any stop is none, as it
is the only one that currently supports it correctly. Ensure none is preserved
by utilizing the unresolved component values. This can be optimized in the
future by preprocessing the color stops to pre-resolve the none components,
even allowing the CGGradientRef path to be used for supported cases.

Source/WTF:

Move isNaNConstExpr to MathExtras.h from WebCore so it can used in multiple places.

  • wtf/MathExtras.h:

(WTF::isNaNConstExpr):

LayoutTests:

Add tests of gradients with explicit 'none' components in some of the colors.

  • fast/gradients/gradient-with-missing-components-expected.html: Added.
  • fast/gradients/gradient-with-missing-components.html: Added.
9:06 AM Changeset in webkit [289121] by Kate Cheney
  • 5 edits
    5 adds in trunk

Fix App Privacy Report redirect attribution
​https://bugs.webkit.org/show_bug.cgi?id=236111

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/app-privacy-report/user-attribution-redirect.html
Test: http/tests/app-privacy-report/app-attribution-redirect.html

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

LayoutTests:

  • http/tests/app-privacy-report/resources/redirect.js: Added.
  • http/tests/app-privacy-report/app-attribution-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/app-attribution-redirect.html: Added.
  • http/tests/app-privacy-report/user-attribution-redirect-expected.txt: Added.
  • http/tests/app-privacy-report/user-attribution-redirect.html: Added.
9:04 AM Changeset in webkit [289120] by Chris Dumez
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

Unreviewed, land missing baseline for Shared Worker test.

  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Added.
9:02 AM Changeset in webkit [289119] by Chris Dumez
  • 12 edits
    2 adds in trunk/LayoutTests

Unreviewed, unskip more Shared Worker layout tests on WK2.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub-expected.txt: Added.
  • web-platform-tests/eventsource/shared-worker/eventsource-close-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-eventtarget-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-onmessage-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-onopen-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-prototype-expected.txt:
  • web-platform-tests/eventsource/shared-worker/eventsource-url-expected.txt:

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
8:50 AM Changeset in webkit [289118] by commit-queue@webkit.org
  • 3 edits in trunk/Tools/buildstream

[Flatpak SDK] Extension points for the Flatpak Sparkle-CDM extension
​https://bugs.webkit.org/show_bug.cgi?id=235490

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-04
Reviewed by Adrian Perez de Castro.

Allow Sparkle-CDM extension in Sdk/Platform runtimes. A follow-up patch will add support for
the extension installation.

  • elements/flatpak/platform.bst:
  • elements/flatpak/sdk.bst:
8:41 AM Changeset in webkit [289117] by Alexey Shvayka
  • 145 edits in trunk/Source/WebCore

[WebIDL] Rename Document / ScriptExecutionContext / GlobalObject values of [*CallWith] to include "Current"
​https://bugs.webkit.org/show_bug.cgi?id=236137

Reviewed by Chris Dumez.

Before this change, _current_ realm was kinda an implicit default, which didn't
match all newer standards that use _relevant_ per recommendation for spec authors [1].

Making _relevant_ a default isn't feasible either: there are plenty usages of
[CallWith=GlobalObject] for converting JS values to WebIDL, which are correct,
and some older specs like IndexedDB require it.

Since there is no way for static operations / attributes to acquire a _relevant_
realm, this patch asserts that Relevant* values aren't used with them.

That could probably be expanded for constructors, given their "prototype"s are
unforgeable, yet before doing that we should investigate how other vendors are
handling cross-realm NewTarget.

[1] ​https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects:concept-relevant-everything-2

No new tests, no behavior change.

  • Modules/WebGPU/GPUAdapter.idl:
  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePaySetup.idl:
  • Modules/beacon/Navigator+Beacon.idl:
  • Modules/cache/WindowOrWorkerGlobalScope+Caches.idl:
  • Modules/encryptedmedia/MediaKeyStatusMap.idl:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/Navigator+EME.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • Modules/entriesapi/DOMFileSystem.idl:
  • Modules/entriesapi/FileSystemDirectoryEntry.idl:
  • Modules/entriesapi/FileSystemDirectoryReader.idl:
  • Modules/entriesapi/FileSystemEntry.idl:
  • Modules/entriesapi/FileSystemFileEntry.idl:
  • Modules/entriesapi/HTMLInputElement+EntriesAPI.idl:
  • Modules/fetch/FetchBody.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/mediacapabilities/MediaCapabilities.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasession/MediaSessionPlaylistMixin.idl:
  • Modules/mediasource/DOMURL+MediaSource.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/notifications/Notification.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/push-api/PushManager.idl:
  • Modules/push-api/PushMessageData.idl:
  • Modules/push-api/PushSubscription.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/streams/WritableStream.idl:
  • Modules/streams/WritableStreamSink.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioWorkletNode.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/IIRFilterNode.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webauthn/PublicKeyCredential.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRSystem.idl:
  • animation/Animatable.idl:
  • animation/DocumentTimeline.idl:
  • animation/KeyframeEffect.idl:
  • bindings/scripts/CodeGenerator.pm:

(ExtendedAttributeContains):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GenerateCallWith):
(GenerateParametersCheck):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/*: Updated.
  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestLegacyFactoryFunction.idl:
  • bindings/scripts/test/TestMixinInterface.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestPromiseRejectionEvent.idl:
  • bindings/scripts/test/TestSupplemental.idl:
  • crypto/SubtleCrypto.idl:
  • css/DOMCSSNamespace+CSSPainting.idl:
  • css/DOMCSSNamespace+CSSPropertiesandValues.idl:
  • css/DOMCSSNamespace.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/FontFace.idl:
  • css/FontFaceSet.idl:
  • dom/AbortController.idl:
  • dom/AbortSignal.idl:
  • dom/BroadcastChannel.idl:
  • dom/Comment.idl:
  • dom/DataTransfer.idl:
  • dom/DataTransferItem.idl:
  • dom/DeviceMotionEvent.idl:
  • dom/DeviceOrientationEvent.idl:
  • dom/Document.idl:
  • dom/DocumentFragment.idl:
  • dom/Element.idl:
  • dom/ErrorEvent.idl:
  • dom/EventTarget.idl:
  • dom/MessageChannel.idl:
  • dom/MessagePort.idl:
  • dom/MouseEvent.idl:
  • dom/Range.idl:
  • dom/Text.idl:
  • fileapi/Blob.idl:
  • fileapi/File.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMURL.idl:
  • html/HTMLAudioElement.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLOutputElement.idl:
  • html/MediaController.idl:
  • html/OffscreenCanvas.idl:
  • html/track/DataCue.idl:
  • html/track/TextTrackCue.idl:
  • html/track/VTTCue.idl:
  • html/track/VTTRegion.idl:
  • inspector/CommandLineAPIHost.idl:
  • inspector/InspectorAuditAccessibilityObject.idl:
  • inspector/InspectorAuditResourcesObject.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/IntersectionObserver.idl:
  • page/NavigatorServiceWorker.idl:
  • page/NavigatorShare.idl:
  • page/Performance+UserTiming.idl:
  • page/PerformanceMark.idl:
  • page/PerformanceMeasure.idl:
  • page/PerformanceObserver.idl:
  • page/RemoteDOMWindow.idl:
  • page/ResizeObserver.idl:
  • page/WindowOrWorkerGlobalScope.idl:
  • testing/Internals.idl:
  • testing/ServiceWorkerInternals.idl:
  • testing/WebXRTest.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClients.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/shared/SharedWorker.idl:
  • worklets/PaintWorkletGlobalScope.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.idl:
8:35 AM Changeset in webkit [289116] by Chris Dumez
  • 48 edits
    32 copies
    11 moves
    46 adds
    22 deletes in trunk

Fix WPT test importer and resync web-platform-tests/workers from upstream
​https://bugs.webkit.org/show_bug.cgi?id=236101

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/workers from upstream a9f3552a2b771569201879ef1.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/workers: Updated.

Tools:

Fix WPT test importer because:

  1. It wasn't creating tests with sharedworker.html suffix for .js tests with:
    • META: global=sharedworker
    • META: global=worker
  2. It was wrongly creating tests with a serviceworker.html suffix for .js tests with:
    • META: global=dedicatedworker
    • META without a global (upstream WPT only generates a .html and .worker.html in such case)
  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init):
(TestImporter.readEnvironmentsForTemplateTest):

LayoutTests:

8:20 AM Changeset in webkit [289115] by Chris Dumez
  • 2 edits
    3 deletes in trunk/LayoutTests

Unreviewed, drop badly imported test due to WPT importer bug getting fixed in Bug 236101.

LayoutTests/imported/w3c:

  • web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Removed.
  • web-platform-tests/css/filter-effects/idlharness.any.serviceworker.html: Removed.

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Removed.
8:06 AM Changeset in webkit [289114] by Ben Nham
  • 2 edits
    7 adds in trunk/Source/WebKit

Import APSConnection-related SPI
​https://bugs.webkit.org/show_bug.cgi?id=235856

Reviewed Youenn Fablet.

This imports the SPI declarations necessary to build against ApplePushService in WebKit. It
also includes a PushServiceConnection interface that can sit in front of APSConnection, and
a fake interface that will be fleshed out for testing purposes.

  • Platform/spi/Cocoa/ApplePushServiceSPI.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/ApplePushServiceConnection.h: Added.
  • webpushd/ApplePushServiceConnection.mm: Added.

(-[_WKAPSConnectionDelegate initWithConnection:]):
(-[_WKAPSConnectionDelegate connection:didReceivePublicToken:]):
(-[_WKAPSConnectionDelegate connection:didReceiveIncomingMessage:]):
(WebPushD::ApplePushServiceConnection::ApplePushServiceConnection):
(WebPushD::makeTokenInfo):
(WebPushD::ApplePushServiceConnection::subscribe):
(WebPushD::ApplePushServiceConnection::unsubscribe):
(WebPushD::ApplePushServiceConnection::enabledTopics):
(WebPushD::ApplePushServiceConnection::ignoredTopics):
(WebPushD::ApplePushServiceConnection::opportunisticTopics):
(WebPushD::ApplePushServiceConnection::nonWakingTopics):
(WebPushD::ApplePushServiceConnection::setEnabledTopics):
(WebPushD::ApplePushServiceConnection::setIgnoredTopics):
(WebPushD::ApplePushServiceConnection::setOpportunisticTopics):
(WebPushD::ApplePushServiceConnection::setNonWakingTopics):
(WebPushD::ApplePushServiceConnection::setTopicLists):

  • webpushd/MockPushServiceConnection.h: Added.
  • webpushd/MockPushServiceConnection.mm: Added.

(WebPushD::MockPushServiceConnection::MockPushServiceConnection):
(WebPushD::MockPushServiceConnection::subscribe):
(WebPushD::MockPushServiceConnection::unsubscribe):
(WebPushD::MockPushServiceConnection::enabledTopics):
(WebPushD::MockPushServiceConnection::ignoredTopics):
(WebPushD::MockPushServiceConnection::opportunisticTopics):
(WebPushD::MockPushServiceConnection::nonWakingTopics):
(WebPushD::MockPushServiceConnection::setEnabledTopics):
(WebPushD::MockPushServiceConnection::setIgnoredTopics):
(WebPushD::MockPushServiceConnection::setOpportunisticTopics):
(WebPushD::MockPushServiceConnection::setNonWakingTopics):
(WebPushD::MockPushServiceConnection::setTopicLists):

  • webpushd/PushServiceConnection.h: Added.
  • webpushd/PushServiceConnection.mm: Added.

(WebPushD::PushServiceConnection::startListeningForPushMessages):
(WebPushD::PushServiceConnection::didReceivePushMessage):

8:05 AM Changeset in webkit [289113] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][macOS] Adjust sandbox access to system-fcntl
​https://bugs.webkit.org/show_bug.cgi?id=236095
<rdar://problem/88448068>

Reviewed by Brent Fulgham.

Adjust sandbox access in the WebContent process to system-fcntl based on telemetry.
This patch is blocking access to some unused fcntl commands, as well as blocking
access to fcntl commands that are only used when AppCache is enabled. This is
achieved by using sandbox state variables.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
7:47 AM Changeset in webkit [289112] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk

Unreviewed, reverting r288996.
​https://bugs.webkit.org/show_bug.cgi?id=236141

Causing debug asserts

Reverted changeset:

"No breakpoints hit on github.com, and some are invalid"
​https://bugs.webkit.org/show_bug.cgi?id=235607
​https://commits.webkit.org/r288996

6:56 AM Changeset in webkit [289111] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename CompileJSCWithoutPatch
​https://bugs.webkit.org/show_bug.cgi?id=236104
<rdar://problem/88455463>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(CompileWebKit.evaluateCommand):
(AnalyzeCompileWebKitResults.analyzeResults):
(CompileJSCWithoutChange): Renamed from CompileJSCWithoutPatch.
(CompileJSCWithoutPatch): Rename to CompileJSCWithoutChange.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246808@main

6:50 AM Changeset in webkit [289110] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename RunWebKitTestsWithoutPatch
​https://bugs.webkit.org/show_bug.cgi?id=236107
<rdar://problem/88459194>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(ReRunWebKitTests.evaluateCommand):
(RunWebKitTestsWithoutChange): Renamed from RunWebKitTestsWithoutPatch.
(RunWebKitTestsWithoutPatch): Renamed to RunWebKitTestsWithoutChange.
(RunWebKitTestsWithoutChangeRedTree): Renamed from RunWebKitTestsWithoutPatchRedTree.
(RunWebKitTestsWithoutPatchRedTree): Renamed to RunWebKitTestsWithoutChangeRedTree.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246807@main

5:52 AM Changeset in webkit [289109] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GTK][WPE] Use a Vector when defining the EGLImage attributes in the createImage
​https://bugs.webkit.org/show_bug.cgi?id=236133

Patch by Alejandro G. Castro <​alex@igalia.com> on 2022-02-04
Reviewed by Žan Doberšek.

No new tests, no change in behaviour

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createImage const): Replace the parameter
of createImage with a Vector, and use map to transform in case we
have to use the extension function.

  • platform/graphics/egl/GLContextEGL.h: Ditto.
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::TextureMapperPlatformLayerBuffer):
Fix a warning caused by the order of the parameter initialization.

  • platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp:

(WebCore::TextureMapperPlatformLayerDmabuf::validateTexture):
Replace the C array with a Vector object.

3:58 AM Changeset in webkit [289108] by svillar@igalia.com
  • 6 edits in trunk

HTMLMediaElement should dispatch the resize event asynchronously
​https://bugs.webkit.org/show_bug.cgi?id=230895

Reviewed by Darin Adler.

Source/WebCore:

The HTMLMediaElement is currently queueing a task to dispatch the resize event in the post layout phase.
There is no need to run it synchronously and we could move it to another queue were it will be run
asynchronously as it was done for other similar tasks in the past.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::layoutSizeChanged):

LayoutTests:

  • media/modern-media-controls/media-controller/media-controller-resize.html: Remove the event

listener to avoid an extra notification.

  • platform/mac/TestExpectations: Unskipped tests that pass now.
  • platform/wincairo/TestExpectations: Ditto.
12:14 AM Changeset in webkit [289107] by Pablo Saavedra
  • 2 edits in trunk/Source/WebCore

Fix for non-unified builds after r286821 (245056@main)
​https://bugs.webkit.org/show_bug.cgi?id=236129

Unreviewed, fixes missing header.

  • workers/shared/SharedWorkerScriptLoader.h:

Feb 3, 2022:

11:16 PM Changeset in webkit [289106] by Chris Lord
  • 15 edits
    5 adds in trunk/Source/WebCore

[GTK][WPE] Use dmabuf when possible to transfer ANGLE rendering to the compositor
​https://bugs.webkit.org/show_bug.cgi?id=235946

Reviewed by Žan Doberšek.

Use dmabuf when available to transfer ANGLE WebGL rendering contents
to the compositor.

No new tests, no change in behaviour.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/TextureMapper.cmake:
  • platform/graphics/OpenGLShims.cpp:

(WebCore::initializeOpenGLShims):

  • platform/graphics/OpenGLShims.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createImage const):
(WebCore::GLContextEGL::destroyImage const):

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/gbm/GBMDevice.cpp: Added.

(WebCore::threadSpecificDevice):
(WebCore::GBMDevice::get):
(WebCore::GBMDevice::GBMDevice):
(WebCore::GBMDevice::~GBMDevice):

  • platform/graphics/gbm/GBMDevice.h: Added.

(WebCore::GBMDevice::device const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.cpp:

(Nicosia::GCGLANGLEPipeSource::swapBuffersIfNeeded):

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::~EGLImageBacking):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::format const):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::stride const):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::releaseResources):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::reset):
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::reshapeDisplayBufferBacking):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

(WebCore::TextureMapperPlatformLayerBuffer::textureVariant const):
(WebCore::TextureMapperPlatformLayerBuffer::size const):
(WebCore::TextureMapperPlatformLayerBuffer::textureVariant): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.cpp: Added.

(WebCore::createFourCC):
(WebCore::fourCCToGLFormat):
(WebCore::formatHasAlpha):
(WebCore::TextureMapperPlatformLayerDmabuf::TextureMapperPlatformLayerDmabuf):
(WebCore::m_fd):
(WebCore::TextureMapperPlatformLayerDmabuf::~TextureMapperPlatformLayerDmabuf):
(WebCore::TextureMapperPlatformLayerDmabuf::validateTexture):
(WebCore::TextureMapperPlatformLayerDmabuf::paintToTextureMapper):
(WebCore::TextureMapperPlatformLayerDmabuf::clone):

  • platform/graphics/texmap/TextureMapperPlatformLayerDmabuf.h: Added.
10:58 PM Changeset in webkit [289105] by jonlee@apple.com
  • 16 edits in trunk/LayoutTests/imported/w3c

Pull selective WPT tests in preparation of ​https://bugs.webkit.org/show_bug.cgi?id=235685

These remove the empty <meta name="flags">.

  • web-platform-tests/css/css-flexbox/align-content-001.htm:
  • web-platform-tests/css/css-flexbox/align-content-002.htm:
  • web-platform-tests/css/css-flexbox/align-content-003.htm:
  • web-platform-tests/css/css-flexbox/align-content-004.htm:
  • web-platform-tests/css/css-flexbox/align-content-005.htm:
  • web-platform-tests/css/css-flexbox/align-items-001.htm:
  • web-platform-tests/css/css-flexbox/align-items-002.htm:
  • web-platform-tests/css/css-flexbox/align-items-003.htm:
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-017.html:
  • web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-018.html:
  • web-platform-tests/css/css-values/angle-units-002.html:
  • web-platform-tests/css/css-values/angle-units-003.html:
  • web-platform-tests/css/css-values/angle-units-004.html:
  • web-platform-tests/css/css-values/angle-units-005.html:

Convert tabs to spaces.

  • web-platform-tests/css/css-variables/vars-background-shorthand-001.html:
10:37 PM Changeset in webkit [289104] by rniwa@webkit.org
  • 14 edits in trunk/Source

Delete SelectionAcrossShadowBoundariesEnabled
​https://bugs.webkit.org/show_bug.cgi?id=235993

Reviewed by Darin Adler.

Source/WebCore:

Delete this runtime flag which has always been enabled for a while.

  • editing/Editor.cpp:

(WebCore::Editor::selectedText const):
(WebCore::Editor::selectedTextForDataTransfer const):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • editing/libwpe/EditorLibWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeImageToPasteboard):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences keygenElementEnabled]):
(-[WebPreferences selectionAcrossShadowBoundariesEnabled]):
(-[WebPreferences setSelectionAcrossShadowBoundariesEnabled:]):
(-[WebPreferences isXSSAuditorEnabled]):

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
10:35 PM Changeset in webkit [289103] by Megan Gardner
  • 4 edits in trunk/Source/WebKit

Plumb pointer type though native to web events.
​https://bugs.webkit.org/show_bug.cgi?id=236118

Reviewed by Tim Horton.

  • Shared/NativeWebMouseEvent.h:
  • Shared/ios/NativeWebMouseEventIOS.mm:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer createMouseEventWithType:wasCancelled:]):

7:13 PM Changeset in webkit [289102] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Add pen type for HitTestRequest.
​https://bugs.webkit.org/show_bug.cgi?id=236112

Reviewed by Tim Horton.

  • rendering/HitTestRequest.h:

(WebCore::HitTestRequest::mouseEvent const):
(WebCore::HitTestRequest::penEvent const):

6:53 PM Changeset in webkit [289101] by mmaxfield@apple.com
  • 5 edits
    7 adds in trunk

Two bopomofo tone marks are not moved to the correct place in vertical text with a particular bopomofo font
​https://bugs.webkit.org/show_bug.cgi?id=235257
<rdar://problem/87625596>

Reviewed by Darin Adler.

.:

Thank you so much to Bobby Tung and But Ko for reporting this bug and providing a test font for it!!!

  • metadata/contributors.json:

Source/WebCore:

Turns out one of our character data tables was missing some characters.

I really dislike these kinds of fixes, because it's just perpetuating the fact that WebKit has big tables of characters
in its source code. A long-term fix would be a systemic replacement of this entire table with either Unicode property
lookup, or more ideally, removing the need for it in the first place. Unfortunately, at this point in the release cycle,
this fix probably needs to be smaller and more targetted.

Tests: fast/text/bopomofo-tone-marks-2.html

fast/text/bopomofo-tone-marks.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::isCJKIdeographOrSymbol):

LayoutTests:

This can't be a WPT test because we only have permission to add the test font to the WebKit repository.

Thank you so much to Bobby Tung and But Ko for reporting this bug and providing a test font for it!!!

  • fast/text/bopomofo-tone-marks-2-expected-mismatch.html: Added.
  • fast/text/bopomofo-tone-marks-2.html: Added.
  • fast/text/bopomofo-tone-marks-expected-mismatch.html: Added.
  • fast/text/bopomofo-tone-marks.html: Added.
  • fast/text/resources/BopomofoGposSubset-Regular/BopomofoGposSubset-Regular.ttf: Added.
  • fast/text/resources/BopomofoGposSubset-Regular/LICENSE: Added.
6:45 PM Changeset in webkit [289100] by Wenson Hsieh
  • 12 edits in trunk/Source

Teach VideoFullscreenInterface to keep track of its corresponding MediaPlayer's MediaPlayerIdentifier
​https://bugs.webkit.org/show_bug.cgi?id=236090

Reviewed by Eric Carlson.

Source/WebCore:

Add plumbing for an optional MediaPlayerIdentifier through the video fullscreen model. This identifier is
invalidated upon loadstart, and updated once we observe loadedmetadata, which ensures that if the media
engine (and media player) changes out from underneath the video fullscreen model, we still keep the new player
ID up to date.

See WebKit/ChangeLog for more details.

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModelClient::setPlayerIdentifier):

  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::updateForEventName):
(WebCore::VideoFullscreenModelVideoElement::observedEventNames):

Additionally listen for loadstartEvent and loadedmetadataEvent (see above).

(WebCore::VideoFullscreenModelVideoElement::setPlayerIdentifier):

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::playerIdentifier const):

Source/WebKit:

Add an IPC message between VideoFullscreenManager and VideoFullscreenManagerProxy to update the media player ID
corresponding to a given PlaybackSessionContextIdentifier. This is sent if the underlying media player changes
(and subsequently fires loadstart and loadedmetadata events), and also sent upon entering fullscreen video.

In a future patch, this mechanism will be used to teach VideoFullscreenManagerProxy to grab an image bitmap from
the GPU process for a given PlaybackSessionContextIdentifier.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setPlayerIdentifier):

  • WebProcess/cocoa/VideoFullscreenManager.h:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::setPlayerIdentifier):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::setPlayerIdentifier):

6:26 PM Changeset in webkit [289099] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r289096.
​https://bugs.webkit.org/show_bug.cgi?id=236114

will break build

Reverted changeset:

"[WebAuthn] Remove misspelled constant
"LocalAuthenticatiorAccessGroup""
​https://bugs.webkit.org/show_bug.cgi?id=235894
​https://commits.webkit.org/r289096

6:24 PM Changeset in webkit [289098] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[RenderTreeBuilder] Clean up column spanners when style change affects containing block
​https://bugs.webkit.org/show_bug.cgi?id=236042
<rdar://83975391>

Reviewed by Antti Koivisto.

Source/WebCore:

In addition to removing the leftover spanners after style change, this patch also expands on the type of style changes that may affect the subtree state inside a multicolumn flow.

Test: fast/multicol/leftover-spanner-on-style-change-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

  • rendering/RenderElement.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

LayoutTests:

  • fast/multicol/leftover-spanner-on-style-change-crash-expected.txt: Added.
  • fast/multicol/leftover-spanner-on-style-change-crash.html: Added.
6:22 PM Changeset in webkit [289097] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AXIsolatedTree::updateChildren removes subtrees that should instead be moved
​https://bugs.webkit.org/show_bug.cgi?id=236057

Reviewed by Andres Gonzalez.

In AXIsolatedTree::updateChildren, we can sometimes remove subtrees from the nodemap that are
queued to be added somewhere else in the tree. Specifically, this can happen when:

  1. Object 123 is considered to be a new child based on the live AX tree, and we collect node changes for it.
  2. Object 123 is currently a member of a subtree of some other object in oldChildrenIDs.
  3. Because of 2, Object 123 is removed from the node map in removeSubtreeFromNodeMap
  4. We try to queue the addition of this node somewhere in tree in queueChange, but ASSERT because Object 123 is not in the nodemap anymore.

This causes us to hit ASSERT(m_nodeMap.contains(objectID) in AXIsolatedTree::queueChange(const NodeChange&).

This patch fixes this problem by keeping track of the IDs we are queuing for addition
to the tree and making sure we don't remove those IDs.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::queueChange):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::nodeAncestryChanges):
Keep track of IDs we are queueing changes for.
(WebCore::AXIsolatedTree::updateChildren):
Keep track of IDs we are queueing changes for and don't remove them,
even if they are part of oldChildrenIDs.
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
Accept another paramter listing IDs to keep.
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
Keep track of IDs we are queueing changes for.

6:09 PM Changeset in webkit [289096] by J Pascoe
  • 2 edits in trunk/Source/WebCore

[WebAuthn] Remove misspelled constant "LocalAuthenticatiorAccessGroup"
​https://bugs.webkit.org/show_bug.cgi?id=235894
rdar://88104045

Reviewed by Darin Adler.

This change removes a constant with a misspelled variable name after all
downstream usage is removed.

  • Modules/webauthn/WebAuthenticationConstants.h:
5:41 PM Changeset in webkit [289095] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.8

Tag Safari-613.1.14.5.8.

5:40 PM Changeset in webkit [289094] by Russell Epstein
  • 20 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r289091. rdar://problem/88387438

WebKit projects have incorrect install name for the frameworks for Catalyst builds with the system content path
​https://bugs.webkit.org/show_bug.cgi?id=236105

Reviewed by Saam Barati.

Source/JavaScriptCore:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to use JAVASCRIPTCORE_FRAMEWORKS_DIR, which doesn't have the
system content path prefix.

  • Configurations/JavaScriptCore.xcconfig:

Source/ThirdParty/ANGLE:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Added WK_USE_ALTERNATE_FRAMEWORKS_DIR based computation to the WEBCORE_FRAMEWORKS_DIR production.
This allowed the simplification of NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Changed DYLIB_INSTALL_NAME_BASE_PLATFORM for Catalyst builds to use WEBCORE_FRAMEWORKS_DIR.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Refactored build variable computation so that WEBKIT_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Added INSTALL_PATH_PREFIX to the various INSTALL_PATH computations.
  • Changed the various DYLIB_INSTALL_NAME_BASE computations for Catalyst builds to use WEBKIT_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/Shim.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy/mac:

Refactored build variable computation so that WEBKIT_LEGACY_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_LEGACY_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Reworked INSTALL_PATH to use INSTALL_PATH_PREFIX in the main productions instead of each of variants.
  • Changed DYLIB_INSTALL_NAME_BASE computation for Catalyst builds to use WEBKIT_LEGACY_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@289091 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:32 PM Changeset in webkit [289093] by Elliott Williams
  • 7 edits in trunk/Tools

[XCBuild] Add headers-only dependencies to projects in Tools/
​https://bugs.webkit.org/show_bug.cgi?id=235751

Reviewed by Alexey Proskuryakov.

Many projects in Tools/ depend on WebKit.framework or other products which are upstream in
the build graph. In Make-based sequential builds, WebKit and friends would always build
before Tools; in workspaces, the targets may build in any order.

Add "product dependencies" build phases to targets which do not express
their dependencies through linker options, in the same manner as
​https://commits.webkit.org/246026@main.

The legacy build system doesn't understand the "Product Dependencies" phase and thinks we're
trying to copy our own build products, so add an EXCLUDED_SOURCE_FILE_NAMES setting as a
workaround.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add product dependencies.
  • DumpRenderTree/mac/Configurations/Base.xcconfig: Add WK_WHICH_BUILD_SYSTEM.
  • DumpRenderTree/mac/Configurations/DumpRenderTreeLibrary.xcconfig: Legacy support.
  • TestWebKitAPI/Configurations/Base.xcconfig: Legacy support.
  • TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Add WK_WHICH_BUILD_SYSTEM.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add product dependencies.
5:27 PM Changeset in webkit [289092] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.8

5:16 PM Changeset in webkit [289091] by msaboff@apple.com
  • 20 edits in trunk/Source

WebKit projects have incorrect install name for the frameworks for Catalyst builds with the system content path
​https://bugs.webkit.org/show_bug.cgi?id=236105

Reviewed by Saam Barati.

Source/JavaScriptCore:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to use JAVASCRIPTCORE_FRAMEWORKS_DIR, which doesn't have the
system content path prefix.

  • Configurations/JavaScriptCore.xcconfig:

Source/ThirdParty/ANGLE:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/ANGLE-dynamic.xcconfig:

Source/ThirdParty/libwebrtc:

Updated DYLIB_INSTALL_NAME_BASE for Catalyst builds to not use the system content path prefix.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Added WK_USE_ALTERNATE_FRAMEWORKS_DIR based computation to the WEBCORE_FRAMEWORKS_DIR production.
This allowed the simplification of NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Changed DYLIB_INSTALL_NAME_BASE_PLATFORM for Catalyst builds to use WEBCORE_FRAMEWORKS_DIR.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Refactored build variable computation so that WEBKIT_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Added INSTALL_PATH_PREFIX to the various INSTALL_PATH computations.
  • Changed the various DYLIB_INSTALL_NAME_BASE computations for Catalyst builds to use WEBKIT_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/Shim.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy/mac:

Refactored build variable computation so that WEBKIT_LEGACY_FRAMEWORKS_DIR doesn't have the system content path
prepended. This refactoring includes:

  • Created INSTALL_PATH_PREFIX to have the system content path when in use.
  • Changed WEBKIT_LEGACY_FRAMEWORKS_DIR computation to eliminate the inclusion the SYSTEM_CONTENT_PATH.
  • Reworked INSTALL_PATH to use INSTALL_PATH_PREFIX in the main productions instead of each of variants.
  • Changed DYLIB_INSTALL_NAME_BASE computation for Catalyst builds to use WEBKIT_LEGACY_FRAMEWORKS_DIR.
  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
5:06 PM Changeset in webkit [289090] by Wenson Hsieh
  • 9 edits
    1 move in trunk/Source/WebKit

Add plumbing to inform WebPageProxy when videos play, pause, seek, and enter or exit fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=236083

Reviewed by Eric Carlson.

Add several methods on WebPageProxy which are called from both VideoFullscreenManagerProxy as well as
PlaybackSessionManagerProxy; in future patches, these will be used to detect when a fullscreen video has been
paused for at least 250 ms, and call out to the page client to perform "video frame extraction".

No change in behavior (yet).

  • Shared/Cocoa/PlaybackSessionContextIdentifier.h: Renamed from Source/WebKit/WebProcess/cocoa/PlaybackSessionContextIdentifier.h.

Move this from Source/WebKit/WebProcess/cocoa to Shared/Cocoa. This enum type is passed around in media code in
both the UI and web processes, so it should be in the Shared folder instead of the WebProcess folder.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::currentTimeChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::isPaused const):

Add a helper method to return whether or not the session for a given PlaybackSessionContextIdentifier is paused
(that is, neither playing nor stalled).

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:

Drive-by fix: remove an unused member variable.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::didEnterFullscreen):

Add another version of these methods that includes the session context ID as an argument.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::didChangePlaybackRate):
(WebKit::WebPageProxy::didChangeCurrentTime):
(WebKit::WebPageProxy::updateFullscreenVideoExtraction):
(WebKit::WebPageProxy::fullscreenVideoExtractionTimerFired):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_fullscreenVideoExtractionTimer):
(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::m_notificationManagerMessageHandler): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
4:35 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
4:22 PM Changeset in webkit [289089] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename RunJSCTestsWithoutPatch
​https://bugs.webkit.org/show_bug.cgi?id=236106
<rdar://problem/88457767>

Reviewed by Alexey Proskuryakov.

  • Tools/CISupport/ews-build/steps.py:

(RunJavaScriptCoreTests.evaluateCommand):
(RunJSCTestsWithoutChange): Renamed from RunJSCTestsWithoutPatch.
(RunJSCTestsWithoutPatch): Renamed to RunJSCTestsWithoutChange.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246789@main

3:47 PM Changeset in webkit [289088] by Adrian Perez de Castro
  • 26 edits in releases/WebKitGTK/webkit-2.34

Merge r286094 - Report the initiating url instead of the redirected one
​https://bugs.webkit.org/show_bug.cgi?id=233037

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:

Source/WebCore:

As per the spec, blockedURI should use the requested URL of original request instead of redirected location.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
(WebCore::CachedResourceLoader::canRequestAfterRedirection const):
(WebCore::CachedResourceLoader::updateRequestAfterRedirection):

  • loader/cache/CachedResourceLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowChildContextFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowImageFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allowFontFromSource const):
(WebCore::ContentSecurityPolicy::allowManifestFromSource const):
(WebCore::ContentSecurityPolicy::allowMediaFromSource const):

  • page/csp/ContentSecurityPolicy.h:

Source/WebKit:

Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

  • TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
3:46 PM Changeset in webkit [289087] by Adrian Perez de Castro
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r285320 - Form action with a redirect should report correct blocked URI
​https://bugs.webkit.org/show_bug.cgi?id=232660
<rdar://problem/84969024>

Patch by Kate Cheney <Kate Cheney> on 2021-11-04
Reviewed by Brent Fulgham.

Source/WebCore:

We currently report the blocked URI as the target of a redirect, per
the spec it should actually be the initiating url.

Test: http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkIfFormActionAllowedByCSP const):

  • loader/FrameLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowFormAction const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-expected.txt:

Update console logging to report the correct URL.

3:45 PM Changeset in webkit [289086] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

  • gpu-process/TestExpectations: Tests are no longer crashing.
3:27 PM Changeset in webkit [289085] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] MultiDeleteByOffset should not define value
​https://bugs.webkit.org/show_bug.cgi?id=236103

Reviewed by Saam Barati.

MultiDeleteByOffset should not define any values in clobberizing.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

3:21 PM Changeset in webkit [289084] by Elliott Williams
  • 2 edits in trunk

Add Elliott Williams to contributors.json

3:14 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
3:14 PM Changeset in webkit [289083] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r288809 - REGRESSION(r288644): [GTK4] Criticals when using pinch zoom
​https://bugs.webkit.org/show_bug.cgi?id=235883

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
Only cancel the click gesture on GTK3. We don't use g_object_set_data() on GTK4.

3:13 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
3:13 PM Changeset in webkit [289082] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r288644 - [GTK3] Pinch zooming from a link activates it
​https://bugs.webkit.org/show_bug.cgi?id=235639

Reviewed by Carlos Garcia Campos.

Turns out gestures behave differently between GTK3 and 4. On GTK4 it works
fine, but on GTK3 starting a pinch zoom triggers the multipress gesture
when one finger is down, and completes it when the second finger is down.

This results in a bogus click, with no way to prevent it as it happens
before any of the zoom callbacks are called. Since we can't know if there
will be a zoom afterwards or not, we can't do anything about it.

However, what we can do is reorder these gestures. In GTK3 the order the
gestures are processed in depends on which order they were created in.

At that point, there's a problem with the fact the gestures are grouped.
Grouping means that these 2 gestures are triggered at the same time. While
somehow the press gesture is still triggered without grouping with the
original order, they become properly decoupled in reverse order and
ungrouped.

At that point, we can safely cancel the press gesture when the zoom gesture
starts, and fix the issue.

This seems to still work fine for GTK4.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseConstructed):

3:09 PM Changeset in webkit [289081] by sihui_liu@apple.com
  • 5 edits in trunk/Source

Delay writing origin file in NetworkStorageManager
​https://bugs.webkit.org/show_bug.cgi?id=235897
rdar://87163253

Reviewed by Geoffrey Garen.

Revert r288924 that delays writing origin file to when OriginStorageManager is destroyed, and take a different
approach that schedules a async task to write origin file. PLT results show that the new approach can also make
up for PLT regresion caused by r286936, where network process started to write origin file before replying sync
storage message from web process.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::localOriginStorageManager):

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::~OriginStorageManager): Deleted.

  • NetworkProcess/storage/OriginStorageManager.h:
3:09 PM WebKitGTK/2.34.x edited by Adrian Perez de Castro
(diff)
2:27 PM Changeset in webkit [289080] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.34

Merge r288609 - [GTK] REGRESSION: Touch scrolling is broken
​https://bugs.webkit.org/show_bug.cgi?id=235436

Reviewed by Chris Lord.

Source/WebKit:

Remove webkitWebViewBaseSetWheelHasPreciseDeltas(), instead add a parameter
to webkitWebViewBaseSynthesizeWheelEvent() that specifies whether the event
should have precise deltas or not.

Correct the touch swipe velocity, since it won't get multiplied by
pixelsPerLineStep().

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidBegin):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction):

Tools:

Stop using webkitWebViewBaseSetWheelHasPreciseDeltas(), instead pass the correct parameter into
webkitWebViewBaseSynthesizeWheelEvent().

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

2:27 PM Changeset in webkit [289079] by Adrian Perez de Castro
  • 12 edits in releases/WebKitGTK/webkit-2.34

Merge r282952 - [GTK] Allow sending precise mouse wheel events in LayoutTests
​https://bugs.webkit.org/show_bug.cgi?id=230541

Reviewed by Tim Horton.

Source/WebKit:

Add code to be able to send precise synthetic mouse-wheel events in GTK.

  • Shared/NativeWebWheelEvent.h:
  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:

Tools:

Add API to be able to send precise mouse-wheel events in EventSender.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::setWheelHasPreciseDeltas):

  • WebKitTestRunner/InjectedBundle/EventSendingController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::toWebKitGLibAPI):
(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

2:12 PM Changeset in webkit [289078] by Ben Nham
  • 2 edits in trunk/Source/WebCore

LocalStorage values should be 8-bit strings in memory if possible
​https://bugs.webkit.org/show_bug.cgi?id=235484

Reviewed by Chris Dumez.

LocalStorage values are stored into a SQLite column as 16-bit strings and are deserialized
back into memory as 16-bit strings. To save memory, this makes it so that we deserialize the
string into an 8-bit string in memory if possible.

Estimated win of ~3MB on Membuster5.

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::columnBlobAsString):

1:47 PM Changeset in webkit [289077] by Jonathan Bedard
  • 15 edits
    1 add in trunk

[git-webkit] Configure default branch management
​https://bugs.webkit.org/show_bug.cgi?id=235378
<rdar://problem/87989533>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/decorators.py:

(hybridmethod.get): Forward certain attributes, namely those used by Memoize.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git):
(Git.config): Add project config to fall back on.
(Git.url): Move memoize to config.
(Git.checkout): Clear Git.config, since that owns memoization.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.parser): Add --overwrite and --append flags.
(PullRequest.create_commit): Either amend an existing commit or create a new one,
depending on the repository settings and arguments passed.
(PullRequest.main): Only keep track of branch history if the user explicitly requests
it or we're using an overwrite workflow with a user owned fork. If repository settings
indicate such branches should never be created, return an error if the user attempts to do so.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Add project config to repository config, prompt the user about their prefered
history retention strategy if the project is using an overwrite workflow.
(Setup.parser): Use the project's default merge behavior.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

Canonical link: ​https://commits.webkit.org/246783@main

1:42 PM Changeset in webkit [289076] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, remove UnlinkedMetadataTable::offsetInMetadataTable since it is no longer used
​https://bugs.webkit.org/show_bug.cgi?id=236063

Follow-up after Saam's comment.

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::offsetInMetadataTable): Deleted.

1:34 PM Changeset in webkit [289075] by Ziran Sun
  • 24 edits
    2 copies in trunk

[Forms] Value doesn't change for stepUp()/stepDown() with out of range values
​https://bugs.webkit.org/show_bug.cgi?id=235509

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/range-expected.txt:

Source/WebCore:

For input type number, WebKit throws "invalid state" Error when the value is greater than
max when calling stepUp() or less than min when calling stepDown(). According to section 10
in ​https://html.spec.whatwg.org/multipage/input.html#dom-input-stepup,
we should do "return", which indicates that value doesn't change.

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

LayoutTests:

Update expectation files.

  • fast/forms/date/date-stepup-stepdown-expected.txt:
  • fast/forms/date/date-stepup-stepdown.html:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown.html:
  • fast/forms/month/month-stepup-stepdown-expected.txt:
  • fast/forms/month/month-stepup-stepdown.html:
  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown.html:
  • fast/forms/range/range-stepup-stepdown-expected.txt:
  • fast/forms/range/range-stepup-stepdown.html:
  • fast/forms/time/time-stepup-stepdown-expected.txt:
  • fast/forms/time/time-stepup-stepdown.html:
  • fast/forms/week/week-stepup-stepdown-expected.txt:
  • fast/forms/week/week-stepup-stepdown.html:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepdown-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-stepup-expected.txt.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
1:32 PM Changeset in webkit [289074] by Nikos Mouchtaris
  • 15 edits
    8 adds in trunk

Implement CSS overscroll-behavior for synchronous scroll
​https://bugs.webkit.org/show_bug.cgi?id=222968

Reviewed by Simon Fraser.

Source/WebCore:

Tests: fast/scrolling/sync-scroll-overscroll-behavior-element.html

fast/scrolling/sync-scroll-overscroll-behavior-iframe.html
fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-element.html
fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-iframe.html

Split up patch by Cathie Chen and Frederic Wang. Add function for blocking scroll chaining
and filtering scroll delta depending on the values of overscroll behavior for a scrollable
area. This patch is for synchronous scrolling only.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::scrollViaNonPlatformEvent):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::scrollableAreaCanHandleEvent):

  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::eventForPropagation const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::deltaForPropagation const):
(WebCore::ScrollableArea::shouldBlockScrollPropagation const):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalOverscrollBehaviorPreventsPropagation const):
(WebCore::ScrollableArea::verticalOverscrollBehaviorPreventsPropagation const):

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::wheelDeltaBiasingTowardsVertical):

LayoutTests:

  • fast/scrolling/sync-scroll-overscroll-behavior-element-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-element.html: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-iframe-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-iframe.html: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-element-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-element.html: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-iframe-expected.txt: Added.
  • fast/scrolling/sync-scroll-overscroll-behavior-unscrollable-iframe.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
1:30 PM Changeset in webkit [289073] by Robert Jenner
  • 6 edits
    8 deletes in trunk

Unreviewed, reverting r288902.

Broke compile-webkit for iOS-15-Simulator

Reverted changeset:

"Import APSConnection-related SPI"
​https://bugs.webkit.org/show_bug.cgi?id=235856
​https://commits.webkit.org/r288902

1:23 PM Changeset in webkit [289072] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Add access to required syscalls
​https://bugs.webkit.org/show_bug.cgi?id=236087
<rdar://problem/88439656>

Reviewed by Brent Fulgham.

Add access to required syscalls which are rarely used. This is based on recent telemetry.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
1:06 PM Changeset in webkit [289071] by commit-queue@webkit.org
  • 5 edits
    5 adds in trunk

ANGLE Metal and ANGLE OpenGL cannot be initialised one after the other
​https://bugs.webkit.org/show_bug.cgi?id=236030

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-03
Reviewed by Dean Jackson.

Source/WebCore:

Test: webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html

Remove the power-preference specific native displays.
Add a native display for opengl, and use the default
one for Metal.

After the recent ANGLE roll, ANGLE uses (native display, power preference)
as the key to look up EGLDisplays.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::releaseThreadResources):

  • platform/graphics/angle/GraphicsContextGLANGLE.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::initializeEGLDisplay):

LayoutTests:

  • webgl/pending/conformance2/misc/webgl2-after-webgl1-bug-expected.txt: Added.
  • webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
  • webgl/resources/pending_webgl_test_files/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
1:05 PM Changeset in webkit [289070] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r287421 - Make DeferredWorkTimer::addPendingWork() return a Ticket.
​https://bugs.webkit.org/show_bug.cgi?id=234628
rdar://84260429

Reviewed by Yusuke Suzuki.

  1. Make Ticket a unique token instead of the JSObject* target object. The Ticket is now a pointer to the TicketData in the pending work list.
  1. Instead of taking a Ticket argument, DeferredWorkTimer::addPendingWork() now takes a JSObject* target argument explicitly, and returns the Ticket for the added TicketData instead.

All the relevant DeferredWorkTimer APIS already take a Ticket as an argument.
This ensures that addPendingWork() is called before we start doing work with
these APIs (especially scheduleWorkSoon()).

  1. Previously, addPendingWork() will only save one instance of TicketData for a given JSObject* key. With this patch, we'll register a new TicketData instance for every call to addPendingWork(), and return a unique Ticket for it.

This is needed because it may be possible for 2 different clients to call
addPendingWork() and scheduleWorkSoon() with the same target JSObject* but with
different sets of dependencies.

Secondly, even is the both sets of dependencies are identical, a client may
call addPendingWork() and scheduleWorkSoon() with the same JSObject* target
more than once because it intended to schedule more than 1 task to run.

Note that DeferredWorkTimer::doWork() consumes the corresponding TicketData
(i.e. removes it from the m_pendingTickets list) for each task as it is run.
To ensure that the dependencies for each task is protected, we'll either need
to ref count the TicketData for the same target object (and hold off on removing
it from the list), or we'll need to register a different TicketData instance
for each task. Ref counting can solve the second issue above, but does not
solve the first. So, this patch goes with the more generic solution to allow
each task to have its own TicketData instance (and, its own unique Ticket).

  1. Previously, if the client cancels pending work, we would remove the TicketData immediately from the m_pendingTickets list. This opens up an opportunity for the same TicketData memory to be re-allocated by another client. This, in turn, would make the Ticket token not unique and potentially allow a cancelled ticket to be reused before DeferredWorkTimer::doWork() is called.

This patch changes DeferredWorkTimer::cancelPendingWork() to only clear the
contents of the TicketData instead. TicketData::scriptExecutionOwner being
null is used as an indication that the ticket has been cancelled. Since the
TicketData itself is not "freed" yet, all TicketData will remain unique until
DeferredWorkTimer::doWork().

Consequently, DeferredWorkTimer::doWork() will now check for cancelled tickets
and remove them from the m_pendingTickets list.

  1. JSFinalizationRegistry was previously calling DeferredWorkTimer::hasPendingWork() to check if it has already scheduled a task, so as not to reschedule again until after the previously scheduled task has been run. This does not play nice with the new Ticket API, because this hasPendingWork() check needs to be done before calling addPendingWork(), and hence, the Ticket is not available yet.

Fortunately, JSFinalizationRegistry should know if it has already scheduled
a task itself. This patch adds a m_hasAlreadyScheduledWork flag to
JSFinalizationRegistry that can be used for this check instead.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::TicketData::TicketData):
(JSC::DeferredWorkTimer::TicketData::vm):
(JSC::DeferredWorkTimer::TicketData::cancel):
(JSC::DeferredWorkTimer::doWork):
(JSC::DeferredWorkTimer::addPendingWork):
(JSC::DeferredWorkTimer::hasPendingWork):
(JSC::DeferredWorkTimer::hasDependancyInPendingWork):
(JSC::DeferredWorkTimer::cancelPendingWork):

  • runtime/DeferredWorkTimer.h:

(JSC::DeferredWorkTimer::TicketData::target):

  • runtime/JSFinalizationRegistry.cpp:

(JSC::JSFinalizationRegistry::finalizeUnconditionally):

  • runtime/JSFinalizationRegistry.h:
  • wasm/WasmStreamingCompiler.cpp:

(JSC::Wasm::StreamingCompiler::StreamingCompiler):
(JSC::Wasm::StreamingCompiler::~StreamingCompiler):
(JSC::Wasm::StreamingCompiler::didComplete):
(JSC::Wasm::StreamingCompiler::fail):
(JSC::Wasm::StreamingCompiler::cancel):

  • wasm/WasmStreamingCompiler.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::webAssemblyModuleValidateAsync):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):

12:50 PM Changeset in webkit [289069] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Enable sandbox state rules for Mach messages
​https://bugs.webkit.org/show_bug.cgi?id=236027
<rdar://problem/88387937>

Reviewed by Brent Fulgham.

After <rdar://85931614> has been fixed, we can enable sandbox state rules for Mach messages.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
12:29 PM Changeset in webkit [289068] by Patrick Griffis
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for failing CSP test
​https://bugs.webkit.org/show_bug.cgi?id=236093

Unreviewed expectations update.

  • platform/win/TestExpectations:
12:15 PM Changeset in webkit [289067] by Fujii Hironori
  • 2 edits in trunk/Tools

REGRESSION(r288878) webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests tests are failing with Windows Python
​https://bugs.webkit.org/show_bug.cgi?id=236043

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/port/base.py:

(Port.relative_test_filename): Normalize filename with
TEST_PATH_SEPARATOR before comparing with layout_tests_dir().

11:59 AM Changeset in webkit [289066] by Mikhail R. Gadelha
  • 2 edits in trunk/Source/bmalloc

Fix BSD compilation after r289056
​https://bugs.webkit.org/show_bug.cgi?id=236086

Unreviewed, fixes missing header in BSD systems.

The include is moved up so it is included in both UNIX and BSD systems,
as adding the include in both #if triggers a code style warning (header
included twice), even though the includes are guarded.

  • bmalloc/AvailableMemory.cpp:
11:50 AM Changeset in webkit [289065] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Rename NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded()
​https://bugs.webkit.org/show_bug.cgi?id=236088

Reviewed by Darin Adler.

Rename NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded() to make it clear it is for the
service worker connection, to avoid confusing with the shared workers.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::serviceWorkerServerToContextConnectionNoLongerNeeded):
(WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded):

11:46 AM Changeset in webkit [289064] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: [Flexbox] Add setting to guard Flexbox Inspector feature
​https://bugs.webkit.org/show_bug.cgi?id=236091
<rdar://problem/88443529>

Reviewed by Patrick Angle.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createEngineeringSettingsView):

11:44 AM Changeset in webkit [289063] by Chris Dumez
  • 10 edits
    2 moves in trunk/Source/WebKit

Rename ServiceWorkerInitializationData / ServiceWorkerInformation so they can be reused by shared workers
​https://bugs.webkit.org/show_bug.cgi?id=236089

Reviewed by Alex Christensen.

  • Shared/RemoteWorkerInitializationData.cpp: Renamed from Source/WebKit/Shared/ServiceWorkerInitializationData.cpp.

(WebKit::RemoteWorkerInitializationData::encode const):
(WebKit::RemoteWorkerInitializationData::decode):

  • Shared/RemoteWorkerInitializationData.h: Renamed from Source/WebKit/Shared/ServiceWorkerInitializationData.h.
  • Sources.txt:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::enableServiceWorkers):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::hasServiceWorkerPageProxy):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishServiceWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
11:18 AM Changeset in webkit [289062] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Crash at com.apple.WebKit: WebKit::RemoteLayerBackingStore::display
​https://bugs.webkit.org/show_bug.cgi?id=236003
Source/WebCore:

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-03
Reviewed by Simon Fraser.

  • platform/graphics/GraphicsLayerContentsDisplayDelegate.h:

Add a comment not to call PlatformCALayer::setBackingStoreAttached()

  • platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm:

Clear the PlatformCALayer contents in more explicit way.

Source/WebKit:

<rdar://87617695>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-02-03
Reviewed by Simon Fraser.

Using UI-side compositing, following chain would be the cause a crash:
PlatformCALayerRemote::recursiveBuildTransaction
RemoteLayerBackingStore::display
PlatformCALayer::platformCALayerLayerDisplay
WebProcessGraphicsContextGLCocoa.mm DisplayBufferDisplayDelegate::display
PlatformCALayer::setContents(nullptr)

The nullptr contents happens when the WebGL context does not have
display buffer yet or when the display buffer creation would fail.

Setting empty layer contents would destroy the RemoteLayerBackingStore,
even though the callstack is in process of displaying the layer to the
backing store.

When setting PlatformCALayer contents "empty", clear the backing store instead
of removing the backing store.

Tested by LayoutTests/webgl (under ASAN, ios simulator)

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::setContents):

11:01 AM Changeset in webkit [289061] by Chris Dumez
  • 7 edits in trunk/Source

Move and rename ServiceWorkerThreadProxy::setupPageForServiceWorker()
​https://bugs.webkit.org/show_bug.cgi?id=236085

Reviewed by Darin Adler.

Move and rename ServiceWorkerThreadProxy::setupPageForServiceWorker() so that it can be reused for shared workers.

Source/WebCore:

  • page/Page.cpp:

(WebCore::Page::setupForRemoteWorker):

  • page/Page.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::setupPageForServiceWorker): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

10:46 AM Changeset in webkit [289060] by ntim@apple.com
  • 3 edits
    2 adds in trunk

null ptr deref in RenderTreeBuilder::Block::attachIgnoringContinuation
​https://bugs.webkit.org/show_bug.cgi?id=234170

Patch by Frédéric Wang <​fwang@igalia.com> on 2022-02-03
Reviewed by Antti Koivisto.

Source/WebCore:

When an element with "display: contents" is put into the top layer, its computed style for
the display property becomes "block" [1]. However, RenderTreeUpdater::updateElementRenderer
does not manage well this transition. In particular, a null ptr deref happens for some
special configuration involving a <dialog style="display: contents">. To work around that
issue, always force tearing down renderers when updating an element in the top layer.

[1] ​https://fullscreen.spec.whatwg.org/#new-stacking-layer

Test: fast/layers/top-layer-display-contents-crash.html

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer): Always force tearing down renderers
for top layer element.

LayoutTests:

Add regression test.

  • fast/css/top-layer-display-contents-crash-expected.txt: Added.
  • fast/css/top-layer-display-contents-crash.html: Added.
10:01 AM Changeset in webkit [289059] by J Pascoe
  • 4 edits in trunk

[WebAuthn] Allow use of hardware-fixed credentials while using alternate store
​https://bugs.webkit.org/show_bug.cgi?id=235923
rdar://88102108

Reviewed by Brent Fulgham.

Source/WebKit:

This patch allows use of credentials created before a user started using
the alternate credential store by searching regardless of status when
querying credentials.

Added API test + tested manually.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

Tools:

Add new test for querying credentials created both before and after enabling
alternative credential store.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::WebCore::addKeyToKeychain):
(TestWebKitAPI::WebCore::cleanUpKeychain):
(TestWebKitAPI::TEST):

9:58 AM Changeset in webkit [289058] by Chris Dumez
  • 12 edits
    2 adds in trunk

Implement AbortSignal.timeout()
​https://bugs.webkit.org/show_bug.cgi?id=236039

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import AbortSignal.timeout() tests from upstream WPT.

  • web-platform-tests/dom/abort/AbortSignal.any-expected.txt:
  • web-platform-tests/dom/abort/AbortSignal.any.js:

(async_test.t.signal.onabort.t.step_func_done):
(async_test.t.string_appeared_here.signal.onabort.t.step_func):

  • web-platform-tests/dom/abort/AbortSignal.any.worker-expected.txt:
  • web-platform-tests/dom/abort/abort-signal-timeout-expected.txt: Added.
  • web-platform-tests/dom/abort/abort-signal-timeout.html: Added.
  • web-platform-tests/dom/abort/w3c-import.log:

Source/WebCore:

Implement the new AbortSignal.timeout() as per:

Test: imported/w3c/web-platform-tests/dom/abort/abort-signal-timeout.html

  • bindings/js/JSAbortSignalCustom.cpp:

(WebCore::JSAbortSignalOwner::isReachableFromOpaqueRoots):

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::timeout):
(WebCore::AbortSignal::eventListenersDidChange):

  • dom/AbortSignal.h:
  • dom/AbortSignal.idl:
  • page/DOMTimer.cpp:

(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):

  • page/DOMTimer.h:
8:38 AM Changeset in webkit [289057] by mark.lam@apple.com
  • 5 edits in trunk/Source/WebCore

Flaky scope.assertNoException() assertion in ~JSExecState when running workers WPT tests
​https://bugs.webkit.org/show_bug.cgi?id=235978

Reviewed by Yusuke Suzuki.

Because Web workers can be terminated at any point, it is possible for JSExecState::loadModule()
to get a termination exception, which would incorrectly cause it to assert and crash in debug.
This patch updates the code so that termination exceptions are properly dealt with instead of
crashing.

No new tests, covered by imported/w3c/web-platform-tests/workers that flakily crash in
debug.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::reportException):

  • bindings/js/JSExecState.h:

(WebCore::JSExecState::call):
(WebCore::JSExecState::evaluate):
(WebCore::JSExecState::profiledCall):
(WebCore::JSExecState::profiledEvaluate):
(WebCore::JSExecState::linkAndEvaluateModule):
(WebCore::JSExecState::~JSExecState):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):

7:29 AM Changeset in webkit [289056] by Mikhail R. Gadelha
  • 2 edits in trunk/Source/bmalloc

Fix undefined behavior when querying linux memory size
​https://bugs.webkit.org/show_bug.cgi?id=228280

Reviewed by Mark Lam.

When running JSC compiled with the undefined behavior sanitizer enabled in a 32 bits machine:

../../Source/bmalloc/bmalloc/AvailableMemory.cpp:115:60: runtime error:
signed integer overflow: 32839056 * 4096 cannot be represented in type 'long int'

This patch slighly rewrites how the available memory is calculated to
use sysinfo (like it's done for FREEBSD).

  • bmalloc/AvailableMemory.cpp:

(bmalloc::LinuxMemory::singleton):
(bmalloc::computeAvailableMemory):
(bmalloc::memoryStatus):

7:23 AM Changeset in webkit [289055] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Add file-ioctl telemetry
​https://bugs.webkit.org/show_bug.cgi?id=236031
<rdar://88334007>

Reviewed by Darin Adler.

Add file-ioctl telemetry in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
7:21 AM Changeset in webkit [289054] by Chris Dumez
  • 16 edits
    8 copies
    21 adds in trunk

Start connecting SharedWorker to the WebKit2 layer
​https://bugs.webkit.org/show_bug.cgi?id=236052

Reviewed by Darin Adler.

Source/WebCore:

Start connecting SharedWorker to the WebKit2 layer with a provider / connection, similarly to what is done
for service workers.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/shared/SharedWorker.cpp:

(WebCore::mainThreadConnection):
(WebCore::SharedWorker::create):

  • workers/shared/SharedWorkerManager.h:
  • workers/shared/SharedWorkerObjectConnection.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • workers/shared/SharedWorkerObjectConnection.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • workers/shared/SharedWorkerProvider.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebCore::SharedWorkerProvider::singleton):
(WebCore::SharedWorkerProvider::setSharedProvider):

  • workers/shared/SharedWorkerProvider.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebCore::SharedWorkerProvider::~SharedWorkerProvider):

  • workers/shared/SharedWorkerScriptLoader.h:

Source/WebKit:

Start connecting SharedWorker to the WebKit2 layer with a provider / connection, similarly to what is done
for service workers.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::sharedWorkerConnection):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Storage/WebSharedWorkerObjectConnection.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebKit::WebSharedWorkerObjectConnection::messageSenderConnection const):
(WebKit::WebSharedWorkerObjectConnection::requestSharedWorker):

  • WebProcess/Storage/WebSharedWorkerObjectConnection.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • WebProcess/Storage/WebSharedWorkerProvider.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.

(WebKit::WebSharedWorkerProvider::singleton):
(WebKit::WebSharedWorkerProvider::sharedWorkerConnection):

  • WebProcess/Storage/WebSharedWorkerProvider.h: Copied from Source/WebCore/workers/shared/SharedWorkerManager.h.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

LayoutTests:

Skip pure SharedWorkers tests on WK1 since we will only implement this for WebKit2 in the short term.
Land WK1-specific baselines for tests that use SharedWorkers but also cover other things.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/script-src/worker-importscripts.sub-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/script-src/worker-set-timeout.sub-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.https-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/webmessaging/broadcastchannel/workers-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/abrupt-completion-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/semantics/multiple-workers/001-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/semantics/run-a-worker/003-expected.txt: Added.
  • platform/win/TestExpectations:
7:19 AM Changeset in webkit [289053] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][GPUP] Add access to sysctl property
​https://bugs.webkit.org/show_bug.cgi?id=235973
<rdar://problem/88345212>

Reviewed by Darin Adler.

Add access to required sysctl property "hw.ncpu" in the GPU process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
7:14 AM Changeset in webkit [289052] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[GPUP] Add read access to sysctl properties
​https://bugs.webkit.org/show_bug.cgi?id=236018
<rdar://problem/88382949>

Reviewed by Darin Adler.

Add read access to sysctl properties based on telemetry.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
6:51 AM Changeset in webkit [289051] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] imported/w3c/web-platform-tests/css/css-writing-modes/text-align-vlr* tests are failing
​https://bugs.webkit.org/show_bug.cgi?id=236059

Reviewed by Antti Koivisto.

Content (alignment) offset should be flipped for vertical writing mode.

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode):
(WebCore::Layout::InlineDisplayContentBuilder::movePointHorizontallyForWritingMode const):

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
6:31 AM Changeset in webkit [289050] by youenn@apple.com
  • 7 edits
    1 delete in trunk/Source/WebKit

MediaRecorderPrivate should not need to create IOSurfaces
​https://bugs.webkit.org/show_bug.cgi?id=235953

Reviewed by Eric Carlson.

Make use of SharedVideoFrameReader and SharedVideoFrameWriter between SampleBufferDisplayLayer and RemoteSampleBufferDisplayLayer.
Covered by existing MediaRecorder tests.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::videoSampleAvailable):
(WebKit::RemoteMediaRecorder::setSharedVideoFrameSemaphore):
(WebKit::RemoteMediaRecorder::setSharedVideoFrameMemory):

  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::videoSampleAvailable):
(WebKit::MediaRecorderPrivate::copySharedVideoFrame):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.mm: Removed.
6:07 AM Changeset in webkit [289049] by youenn@apple.com
  • 3 edits
    2 adds in trunk

RealtimeIncomingVideoSourceCocoa should not need to create IOSurfaces
​https://bugs.webkit.org/show_bug.cgi?id=235952

Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/vp8-then-h264.html

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

Instead of using an IOSurface-based buffer pool, we use a regular memory buffer pool.
A follow-up should probably remove the need to convert YUV420 webrtc video frames to NV12 CVPixelBuffers in RealtimeIncomingVideoSourceCocoa,
so as to leave that to when copying the webrtc video frames into shared memory buffers used for IPC.

LayoutTests:

  • webrtc/vp8-then-h264-expected.txt: Added.
  • webrtc/vp8-then-h264.html: Added.
6:02 AM Changeset in webkit [289048] by graouts@webkit.org
  • 6 edits in trunk

Incorrect KeyframesEffect generated for background
​https://bugs.webkit.org/show_bug.cgi?id=229398
<rdar://problem/82516118>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

Source/WebCore:

Our keyframe merging code when dealing with input from the Web Animations JS API was incorrect.

First, we would iterate over proprties on a keyframe based on the MutableStyleProperties object we
use instead of the HashMap<CSSPropertyID, String> map we use to keep track of the properties set
on the keyframe and its original string value (which we use to return the exact same string when
getKeyframes() is called).

This was incorrect because calling MutableStyleProperties::setProperty() expands shorthands into
longhands, so our property count wouldn't accurate.

Second, honestly I have no idea what I was thinking when I wrote this code as it only ever worked
with a single property on the kefyrame to merge. We now correctly merge all properties from the
keyframe-to-merge into the previous keyframe by using MutableStyleProperties::mergeAndOverrideOnConflict()
and then iterate over all known properties in the HashMap<CSSPropertyID, String> to merge the
properties and strings input.

  • animation/KeyframeEffect.cpp:

(WebCore::processPropertyIndexedKeyframes):

5:45 AM Changeset in webkit [289047] by Carlos Garcia Campos
  • 1 edit
    1 add in trunk/WebDriverTests

Unreviewed. Add another missing file after r288871.

  • imported/w3c/tools/webdriver/webdriver/bidi/error.py: Added.
5:43 AM Changeset in webkit [289046] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Test /webkit/WebKitAccessibility/accessible/children-changed times out
​https://bugs.webkit.org/show_bug.cgi?id=236070

Reviewed by Adrian Perez de Castro.

This happens because when the new node is added the a11y object children are not updated and the wrapper for the
new child is not created.

  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification): Call updateChildrenIfNecessary on AXChildrenChanged.

5:42 AM Changeset in webkit [289045] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE][a11y] Handle parameter of org.a11y.atspi.Text.RemoveSelection
​https://bugs.webkit.org/show_bug.cgi?id=236079

Reviewed by Adrian Perez de Castro.

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
5:23 AM Changeset in webkit [289044] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Crash in AXIsolatedObject::associatedAXObject.
​https://bugs.webkit.org/show_bug.cgi?id=236053
<rdar://problem/88413232>

Reviewed by Darin Adler.

The crash occurs because we are using an axObject pointer after we call
updateBackingStore() which may destroy the object pointed to by axObject.
This was added as a fix for
​https://bugs.webkit.org/show_bug.cgi?id=220446
So I will submit a follow up patch with the correct fix for that bug as well.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::associatedAXObject const):

5:21 AM Changeset in webkit [289043] by Chris Lord
  • 3 edits in trunk/Source/WebCore

Add specialize type traits to GLContext
​https://bugs.webkit.org/show_bug.cgi?id=236076

Reviewed by Alejandro G. Castro.

Make GLContext downcastable.

No new tests, no change in behaviour.

  • platform/graphics/GLContext.h:
  • platform/graphics/egl/GLContextEGL.h:
5:11 AM Changeset in webkit [289042] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

WebDriver: selenium tests are executed more than once
​https://bugs.webkit.org/show_bug.cgi?id=236075

Reviewed by Darin Adler.

I think this happens since we updated the pytest version. Pytest is now collecting test files that don't
contain any test like init.py files. When that's given to the runner all the tests under the directory are
executed.

  • Scripts/webkitpy/webdriver_tests/pytest_runner.py:

(CollectRecorder.pytest_collectreport): Do not include files with no tests.

5:06 AM Changeset in webkit [289041] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

[atspi] missing-braces clang warnings
​https://bugs.webkit.org/show_bug.cgi?id=236074

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-03
Reviewed by Darin Adler.

Wrap structure padding in braces.

  • accessibility/atspi/AccessibilityAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:
3:39 AM Changeset in webkit [289040] by Carlos Garcia Campos
  • 1 edit
    4 adds in trunk/WebDriverTests

Unreviewed. Add missing files after r283798.

  • imported/selenium/py/selenium/webdriver/common/bidi/init.py: Added.
  • imported/selenium/py/selenium/webdriver/common/bidi/cdp.py: Added.
  • imported/selenium/py/selenium/webdriver/remote/script_key.py: Added.
3:30 AM Changeset in webkit [289039] by Carlos Garcia Campos
  • 1 edit
    2 adds in trunk/WebDriverTests

Unreviewed. Add missing file after r288871.

  • imported/w3c/webdriver/tests/bidi/session_subscribe/subscribe.py: Added.
2:13 AM Changeset in webkit [289038] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

SampleBufferDiplayLayer should not need to create IOSurfaces
​https://bugs.webkit.org/show_bug.cgi?id=235954

Reviewed by Eric Carlson.

Make use of SharedVideoFrameReader and SharedVideoFrameWriter between SampleBufferDisplayLayer and RemoteSampleBufferDisplayLayer.
Manually tested.

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
2:07 AM Changeset in webkit [289037] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Use MetadataTable instead of UnlinkedMetadataTable
​https://bugs.webkit.org/show_bug.cgi?id=236063
rdar://88269480

Reviewed by Robin Morisset.

Use MetadataTable from profiled CodeBlock instead of UnlinkedMetadataTable in concurrent JIT compiler.

  • bytecode/MetadataTable.h:

(JSC::MetadataTable::offsetInMetadataTable):

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::offsetInMetadataTable):

  • jit/JITInlines.h:

(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::loadPtrFromMetadata):
(JSC::JIT::load32FromMetadata):
(JSC::JIT::load8FromMetadata):
(JSC::JIT::store8ToMetadata):
(JSC::JIT::store32ToMetadata):
(JSC::JIT::materializePointerIntoMetadata):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):

1:18 AM Changeset in webkit [289036] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.35.2

WebKitGTK 2.35.2

1:16 AM Changeset in webkit [289035] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.2 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.35.2.
12:52 AM Changeset in webkit [289034] by mmaxfield@apple.com
  • 3 edits in trunk/Tools

Allow using STIX Two in layout tests
​https://bugs.webkit.org/show_bug.cgi?id=236048

Reviewed by Darin Adler.

Add the fonts to the allow-list.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(allowedFontFamilySet):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::allowedFontFamilySet):

12:41 AM Changeset in webkit [289033] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix GTK make distcheck

Move mac specific file from Sources.txt to SourcesCocoa.txt

  • Sources.txt:
  • SourcesCocoa.txt:
12:35 AM Changeset in webkit [289032] by Martin Robinson
  • 29 edits
    1 delete in trunk

Transform interpolation should blend between shared transform function primitives
​https://bugs.webkit.org/show_bug.cgi?id=235311
<rdar://problem/88012700>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark some tests as newly passing.

  • web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/matrix-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-002-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-translate-composition-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

Allow direct interpolation between mismatching transform functions that share a primitive.
This fixes many tests expecting a certain computed transformation matrix in WPT, but also
allows using hardware animations more often for the CoreAnimation backend.

Rotation, scale, and translate are the only functions that have shared primitives, so they
are the only ones in this change to allow for this new behavior.

When determining if a list of keyframes has shared compatible lists of transforms, return
the vector of primitives that can represent them. In addition code for calculating big
rotations has been removed, because it was unused.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::gSharedPrimitivesForTransformKeyframe): Added.
(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): Added.

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Modified to take a vector of shared
primitive types instead of a pointer to an array of operations.
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::addAnimation): Use new method.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::addAnimation): Ditto.

  • platform/graphics/transforms/Matrix3DTransformOperation.cpp:

(WebCore::Matrix3DTransformOperation::blend): Use the new sharedPrimitiveType method
to determine if the two operations can blend.

  • platform/graphics/transforms/MatrixTransformOperation.cpp:

(WebCore::MatrixTransformOperation::blend): Ditto.

  • platform/graphics/transforms/PerspectiveTransformOperation.cpp:

(WebCore::PerspectiveTransformOperation::blend): Ditto.

  • platform/graphics/transforms/RotateTransformOperation.cpp:

(WebCore::RotateTransformOperation::blend): Ditto.

  • platform/graphics/transforms/RotateTransformOperation.h:
  • platform/graphics/transforms/ScaleTransformOperation.cpp:

(WebCore::ScaleTransformOperation::blend): Ditto.

  • platform/graphics/transforms/ScaleTransformOperation.h:
  • platform/graphics/transforms/SkewTransformOperation.cpp:

(WebCore::SkewTransformOperation::blend): Ditto.

  • platform/graphics/transforms/TransformOperation.cpp:

(WebCore::TransformOperation::sharedPrimitiveType const):

  • platform/graphics/transforms/TransformOperation.h:

(WebCore::TransformOperation::primitiveType const): Added this virtual function which
return the type for the base class. Rotation, scale, and translate specialize this to
return a compatible primitive type.

  • platform/graphics/transforms/TransformOperations.cpp:

(WebCore::TransformOperations::operationsMatch const): Modified to check whether operations
share primitives.

  • platform/graphics/transforms/TranslateTransformOperation.cpp:

(WebCore::TranslateTransformOperation::blend): Use the new sharedPrimitiveType method.

  • platform/graphics/transforms/TranslateTransformOperation.h:

LayoutTests:

Remove a duplicated baseline.

  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt: Removed.
12:15 AM Changeset in webkit [289031] by ntim@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Create PDFDocument stub
​https://bugs.webkit.org/show_bug.cgi?id=235970

Reviewed by Brent Fulgham.

Create an empty stub with an iframe where the viewer will be loaded.

Changing about:blank?file= to ​https://mozilla.github.io/pdf.js/web/viewer.html?file= is one way
to test the stub.

That stub is guarded behind the PDF.js viewer internal setting which is only enabled in captive portal mode.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • dom/Document.h:

(WebCore::Document::isPDFDocument const):

  • html/PDFDocument.cpp: Added.

(WebCore::PDFDocument::PDFDocument):
(WebCore::m_viewerRendered):
(WebCore::PDFDocumentParser::document const):
(WebCore::PDFDocumentParser::appendBytes):
(WebCore::PDFDocumentParser::finish):
(WebCore::PDFDocument::createParser):
(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::updateDuringParsing):
(WebCore::PDFDocument::finishedParsing):

  • html/PDFDocument.h: Added.

(isType):

Feb 2, 2022:

11:33 PM Changeset in webkit [289030] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. [GTK] Apply the same cmake changes of r289029 to GTK port

  • Source/cmake/OptionsGTK.cmake:
11:05 PM Changeset in webkit [289029] by Pablo Saavedra
  • 31 edits in trunk

[WPE] Fix for non-unified builds with ACCESSIBILITY=OFF
​https://bugs.webkit.org/show_bug.cgi?id=236024

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • accessibility/atspi/AXObjectCacheAtspi.cpp:
  • accessibility/atspi/AccessibilityAtspi.cpp:
  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityAtspiEnums.h:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
  • accessibility/atspi/AccessibilityRootAtspi.cpp:
  • accessibility/atspi/AccessibilityRootAtspi.h:
  • editing/atspi/FrameSelectionAtspi.cpp:
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setSelectedState):

  • page/Page.h:

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
10:36 PM Changeset in webkit [289028] by Carlos Garcia Campos
  • 31 edits
    1 delete in trunk

[GTK][a11y] Set platform name to atspi in WTR
​https://bugs.webkit.org/show_bug.cgi?id=232227

Reviewed by Adrian Perez de Castro.

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::AccessibilityController::platformName): Use atspi instead of atk.

LayoutTests:

Update tests to use atspi instead of atk.

  • accessibility/add-children-pseudo-element.html:
  • accessibility/aria-hidden-false-works-in-subtrees.html:
  • accessibility/aria-label-on-label-element.html:
  • accessibility/aria-option-role.html:
  • accessibility/auto-fill-crash.html:
  • accessibility/combo-box-collapsed-selection-changed.html:
  • accessibility/content-editable-as-textarea.html:
  • accessibility/focusable-inside-hidden.html:
  • accessibility/form-control-value-settable.html:
  • accessibility/gtk/caret-offsets-and-extraneous-white-spaces.html:
  • accessibility/gtk/caret-offsets.html:
  • accessibility/gtk/resources/atk-helpers.js: Removed.
  • accessibility/gtk/text-in-span-block-in-a-block.html:
  • accessibility/ignore-spacer-elements.html:
  • accessibility/insert-children-assert.html:
  • accessibility/list-detection.html:
  • accessibility/menu-list-sends-change-notification.html:
  • accessibility/radio-button-title-label.html:
  • accessibility/render-counter-text.html:
  • accessibility/roles-computedRoleString.html:
  • accessibility/roles-exposed.html:
  • accessibility/secure-textfield-title-ui.html:
  • accessibility/select-element-at-index.html:
  • accessibility/svg-bounds.html:
  • accessibility/table-column-headers-with-captions.html:
  • accessibility/table-fallback-roles-expose-element-attributes.html:
  • accessibility/table-with-footer-section-above-body.html:
  • platform/glib/accessibility/platform-name-expected.txt:
  • resources/accessibility-helper.js:

(platformValueForW3CName):
(platformValueForW3CDescription):
(platformRoleForComboBox):
(platformRoleForStaticText):
(spinnerForTextInput):

10:06 PM Changeset in webkit [289027] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty

[XCBuild] Users of libgtest.a depend on headers from gtest.framework
​https://bugs.webkit.org/show_bug.cgi?id=236045

Patch by Elliott Williams <Elliott Williams> on 2022-02-02
Reviewed by Alexey Proskuryakov.

In Make-based sequential builds, gtest's dynamic target builds, even though we don't use
it. Downstream projects were relying on that target to build and produce a gtest.framework
with headers in it.

Instead, configure gtest's static target to copy the project's include directory into
build products. Headers are copied to $BUILT_PRODUCTS_DIR/usr/lib/include/gtest.

  • gtest/xcode/gtest.xcodeproj/project.pbxproj: Added folder reference to include.
9:32 PM Changeset in webkit [289026] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Remove debug log accidentally added with r289018
​https://bugs.webkit.org/show_bug.cgi?id=236000

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

9:07 PM Changeset in webkit [289025] by Fujii Hironori
  • 3 edits in trunk/Tools

[MiniBrowser][Win][WK2] Show MessageBox for alert, confirm and prompt
​https://bugs.webkit.org/show_bug.cgi?id=236047

Reviewed by Don Olmstead.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(createWKString):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::runJavaScriptAlert):
(WebKitBrowserWindow::runJavaScriptConfirm):
(WebKitBrowserWindow::runJavaScriptPrompt):

  • MiniBrowser/win/WebKitBrowserWindow.h:
8:16 PM Changeset in webkit [289024] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

SecureARM64EHashPins should check g_jscConfig.useFastJITPermissions
​https://bugs.webkit.org/show_bug.cgi?id=236055
<rdar://88222677>

Reviewed by Mark Lam.

  • assembler/SecureARM64EHashPins.cpp:

(JSC::SecureARM64EHashPins::initializeAtStartup):
(JSC::SecureARM64EHashPins::allocatePinForCurrentThread):
(JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):

  • assembler/SecureARM64EHashPinsInlines.h:

(JSC::SecureARM64EHashPins::pinForCurrentThread):

6:19 PM Changeset in webkit [289023] by Chris Dumez
  • 11 edits
    1 copy in trunk/Source/WebCore

Move connect event dispatch logic to SharedWorkerGlobalScope
​https://bugs.webkit.org/show_bug.cgi?id=236038

Reviewed by Darin Adler.

Move connect event dispatch logic to SharedWorkerGlobalScope and add logging.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • workers/shared/SharedWorkerGlobalScope.cpp:

(WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
(WebCore::SharedWorkerGlobalScope::thread):
(WebCore::SharedWorkerGlobalScope::close):
(WebCore::SharedWorkerGlobalScope::postConnectEvent):

  • workers/shared/SharedWorkerGlobalScope.h:
  • workers/shared/SharedWorkerIdentifier.h: Copied from Source/WebCore/workers/shared/context/SharedWorkerThread.h.
  • workers/shared/SharedWorkerManager.cpp:

(WebCore::SharedWorkerManager::scriptLoadedSuccessfully):

  • workers/shared/context/SharedWorkerThread.cpp:

(WebCore::SharedWorkerThread::SharedWorkerThread):
(WebCore::SharedWorkerThread::createWorkerGlobalScope):

  • workers/shared/context/SharedWorkerThread.h:

(WebCore::SharedWorkerThread::identifier const):

  • workers/shared/context/SharedWorkerThreadProxy.cpp:

(WebCore::SharedWorkerThreadProxy::startWorkerGlobalScope):
(WebCore::SharedWorkerThreadProxy::identifier const):

  • workers/shared/context/SharedWorkerThreadProxy.h:
6:17 PM Changeset in webkit [289022] by Patrick Griffis
  • 17 edits in trunk

CSP: Implement wasm-unsafe-eval
​https://bugs.webkit.org/show_bug.cgi?id=235408

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with new passes.

  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:

Source/WebCore:

This is similar to 'unsafe-eval' except limited in scope to WebAssembly.

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::checkWasmEval):
(WebCore::ContentSecurityPolicyDirectiveList::create):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseSource):

  • page/csp/ContentSecurityPolicySourceList.h:

(WebCore::ContentSecurityPolicySourceList::allowWasmEval const):

  • page/csp/ContentSecurityPolicySourceListDirective.h:

(WebCore::ContentSecurityPolicySourceListDirective::allowWasmEval const):

LayoutTests:

Update expectations with new CSP message.

  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-about-blank-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-external-script-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe-expected.txt:
6:00 PM Changeset in webkit [289021] by Patrick Griffis
  • 5 edits
    1 move
    1 add
    1 delete in trunk

CSP: Fix matching wildcard hosts
​https://bugs.webkit.org/show_bug.cgi?id=235992

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations.

  • web-platform-tests/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub-expected.txt:

Source/WebCore:

As per the spec wildcard hosts must include the leading '.' for matches:
​https://www.w3.org/TR/CSP3/#match-hosts.

Test: http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked.html

  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::hostMatches const):

LayoutTests:

Rewrite test to expect CSP3 compliant behavior.

  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/image-full-host-wildcard-blocked.html: Renamed from LayoutTests/http/tests/security/contentSecurityPolicy/image-full-host-wildcard-allowed.html.
5:03 PM Changeset in webkit [289020] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

Speed-up JSON.stringify() by avoiding "toJSON" property lookups
​https://bugs.webkit.org/show_bug.cgi?id=235996

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-02-02
Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/json-stringify-many-objects-to-json.js:

Make this test a little more realistic by moving "toJSON" onto prototype.

  • microbenchmarks/vanilla-todomvc-json-stringify.js: Added.

Source/JavaScriptCore:

Speedometer2/Vanilla* subtests are highly reliant on JSON.stringify() for "storage":
it accounts for 10-15% of running time. EmberJS* subtests rely on JSON.stringify() as
well, although they are significantly slower overall, and also encounter only a few
different structures.

This patch caches "toJSON" properties on Structure's rare data; it's the same technique
we are using in toPrimitive() to avoid "toString" / "valueOf" lookups. The microbenchmark,
which was carefully extracted from Speedometer2/Vanilla* subtests, progressed by 3.7%.

While we could come up with a solution that doesn't involve creating StructureRareData
for all structures we stringify, like keeping a list of StructureIDs w/o "toJSON" method,
which will be correct as long as m_hasFastObjectProperties || m_isJSArray is true for all
seen objects, that would probably miss some edge case, won't persist between JSON.stringify()
calls, and won't speed-up structures with "toJSON" methods like Dates.

  • runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp:

(JSC::CachedSpecialPropertyAdaptiveStructureWatchpoint::fireInternal):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::cacheSpecialPropertySlow):
(JSC::CachedSpecialPropertyAdaptiveInferredPropertyValueWatchpoint::handleFire):

  • runtime/StructureRareData.h:
4:59 PM Changeset in webkit [289019] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/87830583

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:58 PM Changeset in webkit [289018] by commit-queue@webkit.org
  • 40 edits
    1 add in trunk/Source

Use private relay for all subresources if the main document main resource was loaded using private relay
​https://bugs.webkit.org/show_bug.cgi?id=236000
Source/WebCore:

<rdar://87358372>

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

This can be manually tested using instructions in the radar.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setMainResourceWasPrivateRelayed):
(WebCore::DocumentLoader::mainResourceWasPrivateRelayed const):

Source/WebCore/PAL:

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Patch by Alex Christensen <​achristensen@webkit.org> on 2022-02-02
Reviewed by Brady Eidson.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::didReceiveResponse):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveResponse):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::sendDidReceiveResponsePotentiallyInNewBrowsingContextGroup):
(WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::didReceiveResponse):

  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::didReceiveResponse):

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::processResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:

(WebKit::ServiceWorkerNavigationPreloader::loadWithCacheEntry):
(WebKit::ServiceWorkerNavigationPreloader::willSendRedirectedRequest):
(WebKit::ServiceWorkerNavigationPreloader::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

  • Shared/PrivateRelayed.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersShared):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::mainFrameMainResource const):
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
4:56 PM Changeset in webkit [289017] by commit-queue@webkit.org
  • 8 edits in trunk/Source

[Xcode] Fix redundant execution of "Check VTables..." script
​https://bugs.webkit.org/show_bug.cgi?id=236032

Patch by Elliott Williams <Elliott Williams> on 2022-02-02
Reviewed by Jonathan Bedard.

Source/JavaScriptCore:

Tools/Scripts/check-for-weak-vtables-and-externals already touches a timestamp file after
every execution. Add it as an output file to all "Check For Weak VTables and Externals"
script phases.

These script phases already list their respective executables as inputs. This change shaves
a few seconds off the null build time.

  • JavaScriptCore.xcodeproj/project.pbxproj: Add timestamp file to script phase.

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj: Add timestamp file to script phase.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Add timestamp file to script phase.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Add timestamp file to script phase.
4:48 PM Changeset in webkit [289016] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GLIB] Unreviewed debug buildfix after r288872
​https://bugs.webkit.org/show_bug.cgi?id=236036

The actual issue was the roleNames array provided to SortedArrayMap
constructor wasn't fully ordered, making isSortedConstExpr to fail,
generating the call to WTFReport..., which is non-constexpr and thus
the compile failure.

This commit revert the previous fix from r288990 and fix the ordering of
roleNames.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::localizedRoleName):

4:34 PM Changeset in webkit [289015] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Rename CompileWebKitWithoutPatch to CompileWebKitWithoutChange
​https://bugs.webkit.org/show_bug.cgi?id=235949
<rdar://problem/88325688>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(CompileWebKit.evaluateCommand): Rename CompileWebKitWithoutPatch
to CompileWebKitWithoutChange.
(CompileWebKitWithoutChange): Ditto.
(AnalyzeCompileWebKitResults.analyzeResults): Ditto.
(ReRunWebKitTests.evaluateCommand): Rename CompileWebKitWithoutPatch
to CompileWebKitWithoutChange, only retry if build is for a patch.
(RunWebKitTestsRedTree.evaluateCommand): Ditto.
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.
(CompileWebKitWithoutPatch): Renamed to CompileWebKitWithoutChange.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246724@main

4:32 PM Changeset in webkit [289014] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

Keyframe resolution methods should use reference instead of pointer parameters
​https://bugs.webkit.org/show_bug.cgi?id=236020

Reviewed by Dean Jackson.

The Style::Resolver::styleForKeyframe() method would take in a const RenderStyle*
and a const StyleRuleKeyframe* but these parameters were used without null checks.
This patch changes this method signature to take in references instead, which involves
also changing the signature for Style::Resolver::keyframeStylesForAnimation().

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::fillImplicitKeyframes):

  • rendering/style/KeyframeList.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::keyframeStylesForAnimation):

  • style/StyleResolver.h:
4:30 PM Changeset in webkit [289013] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Improve color contrast of dark mode syntax highlighting
​https://bugs.webkit.org/show_bug.cgi?id=236041

Reviewed by Simon Fraser.

  • wp-content/themes/webkit/style.css:

(@media(prefers-color-scheme:dark) :root):

4:09 PM Changeset in webkit [289012] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebKit

Remove OriginStorageManager if it's not in use
​https://bugs.webkit.org/show_bug.cgi?id=236029

Reviewed by Darin Adler.

We should remove OriginStorageManager if it does not contains in-memory data and its origin data is not being
used by any web process.

  • NetworkProcess/storage/FileSystemStorageManager.cpp:

(WebKit::FileSystemStorageManager::isActive const):

  • NetworkProcess/storage/FileSystemStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::connectionClosed):
(WebKit::OriginStorageManager::StorageBucket::isActive const):

4:07 PM Changeset in webkit [289011] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.4

Tag Safari-613.1.16.0.4.

4:07 PM Changeset in webkit [289010] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.3

Tag Safari-613.1.16.1.3.

4:05 PM Changeset in webkit [289009] by Russell Epstein
  • 1 delete in tags/Safari-613.1.16.0.4

Delete tag.

4:05 PM Changeset in webkit [289008] by Russell Epstein
  • 1 delete in tags/Safari-613.1.16.1.3

Delete tag.

3:57 PM Changeset in webkit [289007] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

Percentage word spacing doesn't incorporate synthetic bold expansion
​https://bugs.webkit.org/show_bug.cgi?id=236007

Reviewed by Alan Bujtas.

Source/WebCore:

The solution is to copy the approach in ​https://trac.webkit.org/changeset/288944/webkit
to make sure the space glyph works correctly with synthetic bold and fallback fonts.

This also renames FontCascade::spaceWidth() to FontCascade::widthOfSpaceString(),
so it's more clear what it's actually doing.

Test: fast/text/synthetic-bold-percentage-word-spacing.html

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::metricsOfPrimaryFont const):
(WebCore::FontCascade::spaceWidth const): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setWordSpacing):

LayoutTests:

  • fast/text/synthetic-bold-percentage-word-spacing-expected.html: Added.
  • fast/text/synthetic-bold-percentage-word-spacing.html: Added.
3:55 PM Changeset in webkit [289006] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/87830583

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:50 PM Changeset in webkit [289005] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.0.4

Tag Safari-612.4.9.0.4.

3:49 PM Changeset in webkit [289004] by Russell Epstein
  • 1 copy in tags/Safari-612.4.9.1.8

Tag Safari-612.4.9.1.8.

3:43 PM Changeset in webkit [289003] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.3

Tag Safari-613.1.16.1.3.

3:42 PM Changeset in webkit [289002] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.4

Tag Safari-613.1.16.0.4.

3:27 PM Changeset in webkit [289001] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Crash on several pages after r287986
​https://bugs.webkit.org/show_bug.cgi?id=236033

Reviewed by Tim Horton.

I noticed that Safari crashes when opening ​https://linux.die.net/man/3/localtime.
This is happening after r287986: we are calling [self release], but the [JSValue dealloc]
cannot work if _context is nil. We should add a guard.

  • API/JSValue.mm:

(-[JSValue dealloc]):

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

3:25 PM Changeset in webkit [289000] by Chris Dumez
  • 7 edits
    1 move in trunk/Source/WebCore

Move TransferredMessagePort to its own header
​https://bugs.webkit.org/show_bug.cgi?id=236028

Reviewed by Geoffrey Garen.

Move TransferredMessagePort to its own header so that Shared Worker doesn't need to include the whole MessageWithMessagePorts.h header.
It also facilitates passing a TransferredMessagePort in IPC, which will be needed.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentanglePorts):
(WebCore::MessagePort::entanglePorts):

  • dom/MessagePort.h:
  • dom/messageports/MessageWithMessagePorts.h:
  • dom/messageports/TransferredMessagePort.h: Copied from Source/WebCore/dom/messageports/MessageWithMessagePorts.h.
3:04 PM Changeset in webkit [288999] by timothy@apple.com
  • 24 edits in trunk

Web Inspector: didShowExtensionTab needs to pass the frameID of the tab
​https://bugs.webkit.org/show_bug.cgi?id=236023
rdar://problem/88383984

Reviewed by BJ Burg.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::didShowExtensionTab):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::didShowExtensionTab):

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

  • UserInterface/Views/WebInspectorExtensionTabContentView.js:

(WI.WebInspectorExtensionTabContentView.prototype._maybeDispatchDidShowExtensionTab):
(WI.WebInspectorExtensionTabContentView):

Source/WebKit:

  • UIProcess/API/APIInspectorExtensionClient.h:

(API::InspectorExtensionClient::didShowExtensionTab):

  • UIProcess/API/Cocoa/_WKInspectorExtensionDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.mm:

(WebKit::InspectorExtensionDelegate::InspectorExtensionDelegate):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::didShowExtensionTab):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::didShowExtensionTab):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.messages.in:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::didShowExtensionTab):

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::didShowExtensionTab):

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::didShowExtensionTab):

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:

(-[InspectorExtensionDelegateForTestingInspectorExtension inspectorExtension:didShowTabWithIdentifier:withFrameHandle:]):
(-[InspectorExtensionDelegateForTestingInspectorExtension inspectorExtension:didShowTabWithIdentifier:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:

(-[InspectorExtensionDelegateForTesting inspectorExtension:didShowTabWithIdentifier:withFrameHandle:]):
(-[InspectorExtensionDelegateForTesting inspectorExtension:didShowTabWithIdentifier:]): Deleted.

2:37 PM Changeset in webkit [288998] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.0-branch/Source/WebCore

Cherry-pick r288667. rdar://problem/87830583

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::updateBuffer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288667 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:30 PM Changeset in webkit [288997] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

WebInspector: Add additional image MIME types to frontend
​https://bugs.webkit.org/show_bug.cgi?id=235977

Reviewed by Patrick Angle.

Add MIME types around JPEG 2000, JPEG XL and AVIF. Sort the listings based on the file
extension to make it easier to spot missing image formats.

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.mimeTypeForFileExtension):
(WI.fileExtensionForMIMEType):

2:13 PM Changeset in webkit [288996] by Patrick Angle
  • 6 edits
    1 add in trunk

No breakpoints hit on github.com, and some are invalid
​https://bugs.webkit.org/show_bug.cgi?id=235607

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Added test case in: inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html

Previously not all line terminations resulted in setting the m_lineStart to the current m_code, which meant
that the location for pause-able locations and stack traces were inaccurate when they were on a line that
terminated multi-line comments, strings, or template strings. We now always update m_lineStart when shifting for
a line terminator, instead of only when the terminator appears outside a string or comment.

  • debugger/Breakpoint.cpp:

(JSC::Breakpoint::resolve):

  • The existing assertions were somewhat in conflict with each other. If we permit the line number to increase,

there is no guarantee that the column number will remain the same or increase, which can now more easily occur
with multi-line strings. Instead, we should make sure that the overall offset has increase.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::shiftLineTerminator):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
(JSC::Lexer<T>::scanTemplateString):

  • Make sure the token start offset and start line offset are correctly set for strings.

LayoutTests:

Add test cases for resolving breakpoints on lines that begin with the end of multi-line strings, comments, and
template strings.

  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html:
  • inspector/debugger/breakpoints/resources/dump-multiline.js: Added.
1:53 PM Changeset in webkit [288995] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] YarrJIT m_checkedOffset should be pre-computed and stored to Yarr op
​https://bugs.webkit.org/show_bug.cgi?id=235932

Reviewed by Keith Miller.

Instead of adhocly calculating m_checkedOffset while generating the machine code,
let's just pre-compute it and store it to Yarr JIT IR so that we can simplify
m_checkedOffset handling. This paves the way to also pre-compute safe-length
so that we can skip some of length check in parenthesized-assertions.

  • yarr/YarrJIT.cpp:
1:41 PM Changeset in webkit [288994] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Stop defaulting to ld.gold
​https://bugs.webkit.org/show_bug.cgi?id=235476

Reviewed by Michael Catanzaro.

Remove the USE_LD_GOLD option, and let the build use by default the system linker.

The output from running the linker with -Wl,--version is matched to determine which linker
is currently in use, and set variables LD_SUPPORTS_<feature> accordingly. This is needed
because not all of them support certain features and after a few attempts at doing feature
checks it was becoming clear that on one hand the checks were getting gnarly, and on the
other hand vetting certain linkers provides a stronger guarantee of sucessful builds.

Similarly, extend the check used to determine whether the static library archiver supports
thin archivers to cover the one included with LLVM (llvm-ar), and enable usage of think
archivers if they can be both created by the archiver and consumed by the linker. Previously
the build system was enabling thin archives without knowing whether the linker would succeed
using them.

  • Source/cmake/OptionsCommon.cmake:
1:38 PM Changeset in webkit [288993] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[JSC] Remove compiler warning in TrailingArray.h
​https://bugs.webkit.org/show_bug.cgi?id=236014

Patch by Xan Lopez <Xan Lopez> on 2022-02-02
Reviewed by Yusuke Suzuki.

  • wtf/TrailingArray.h:

(WTF::TrailingArray::TrailingArray): cast the std::distance result
to size_t, we want to compare the absolute value of the distance
with the 'unsigned int' size.

1:10 PM Changeset in webkit [288992] by Patrick Griffis
  • 20 edits in trunk

CSP: Fix returned WebAssembly error type when blocked
​https://bugs.webkit.org/show_bug.cgi?id=235319

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with more passes.

  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt:

Source/JavaScriptCore:

As per the spec it should return WebAssembly.CompileError.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::tryCreate):

LayoutTests:

Update expectations.

  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-about-blank-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-external-script-expected.txt:
  • http/tests/security/contentSecurityPolicy/WebAssembly-blocked-in-subframe-expected.txt:
1:08 PM Changeset in webkit [288991] by Said Abou-Hallawa
  • 16 edits in trunk

[GPU Process] Remove DisplayList::Replayer::Delegate and DisplayList::RecorderImpl::Delegate
​https://bugs.webkit.org/show_bug.cgi?id=235939

Reviewed by Wenson Hsieh.

Source/WebCore:

These classes are abstract classes and they are not overridden by any
client right now. These unused classes should be removed after the display
list stream connection refactoring.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::changeDestinationImageBuffer): Deleted.
(WebCore::ImageBuffer::prepareToAppendDisplayListItems): Deleted.

  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::DrawingContext):

  • platform/graphics/displaylists/DisplayListDrawingContext.h:

(WebCore::DisplayList::DrawingContext::DrawingContext):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::RecorderImpl):
(WebCore::DisplayList::RecorderImpl::recordResourceUse):
(WebCore::DisplayList::RecorderImpl::canAppendItemOfType const): Deleted.
(WebCore::DisplayList::RecorderImpl::canDrawImageBuffer const): Deleted.
(WebCore::DisplayList::RecorderImpl::renderingMode const): Deleted.

  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

(WebCore::DisplayList::RecorderImpl::append):
(WebCore::DisplayList::RecorderImpl::Delegate::~Delegate): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::canAppendItemOfType): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::recordNativeImageUse): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::isCachedImageBuffer const): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::recordFontUse): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::recordImageBufferUse): Deleted.
(WebCore::DisplayList::RecorderImpl::Delegate::renderingMode const): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::applySetStateItem):
(WebCore::DisplayList::applyFontItem):
(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/displaylists/DisplayListReplayer.h:

(WebCore::DisplayList::Replayer::Delegate::~Delegate): Deleted.
(WebCore::DisplayList::Replayer::Delegate::apply): Deleted.
(WebCore::DisplayList::Replayer::Delegate::didCreateMaskImageBuffer): Deleted.
(WebCore::DisplayList::Replayer::Delegate::didResetMaskImageBuffer): Deleted.
(WebCore::DisplayList::Replayer::Delegate::recordResourceUse): Deleted.

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):
(WebKit::RemoteDisplayListRecorderProxy::canDrawImageBuffer const): Deleted.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST):

12:54 PM Changeset in webkit [288990] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GLIB] Unreviewed debug buildfix after r288872
​https://bugs.webkit.org/show_bug.cgi?id=236036

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::localizedRoleName):

12:51 PM Changeset in webkit [288989] by commit-queue@webkit.org
  • 12 edits in trunk

Unmute link errors for ES module scripts
​https://bugs.webkit.org/show_bug.cgi?id=235925

Patch by Asumu Takikawa <​asumu@igalia.com> on 2022-02-02
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Adjust test expectations for error handling changes.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/choice-of-error-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/error-type-3-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-1-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-6-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/instantiation-error-7-expected.txt:

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld):

12:49 PM Changeset in webkit [288988] by Ryan Haddad
  • 2 edits in trunk/Tools

Bring up additional test queues on Big Sur
​https://bugs.webkit.org/show_bug.cgi?id=235446

Unreviewed infrastructure fix.

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): Move the performance queue to the Big Sur section of the dashboard.

12:41 PM Changeset in webkit [288987] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r288955. rdar://problem/88359001

Unreviewed, reverting r286988.
​https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
​https://bugs.webkit.org/show_bug.cgi?id=234069
​https://commits.webkit.org/r286988

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:41 PM Changeset in webkit [288986] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288423. rdar://problem/87701738

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
​https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [288985] by Pablo Saavedra
  • 4 edits in trunk/Source/WebCore

Fixes for non-unified builds after r288868
​https://bugs.webkit.org/show_bug.cgi?id=235984

Reviewed by Chris Dumez.

  • layout/integration/InlineIteratorInlineBox.cpp:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderInline.cpp:
12:40 PM Changeset in webkit [288984] by Russell Epstein
  • 12 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/86150540

12:33 PM Changeset in webkit [288983] by Russell Epstein
  • 6 edits in branches/safari-613.1.16.1-branch

Cherry-pick r288955. rdar://problem/88359001

Unreviewed, reverting r286988.
​https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
​https://bugs.webkit.org/show_bug.cgi?id=234069
​https://commits.webkit.org/r286988

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:33 PM Changeset in webkit [288982] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.16.1-branch

Cherry-pick r288423. rdar://problem/87701738

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
​https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:33 PM Changeset in webkit [288981] by Russell Epstein
  • 12 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Apply patch. rdar://problem/86150540

12:28 PM Changeset in webkit [288980] by Russell Epstein
  • 6 edits in branches/safari-613.1.16.0-branch

Cherry-pick r288955. rdar://problem/88359001

Unreviewed, reverting r286988.
​https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
​https://bugs.webkit.org/show_bug.cgi?id=234069
​https://commits.webkit.org/r286988

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:28 PM Changeset in webkit [288979] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-613.1.16.0-branch

Cherry-pick r288423. rdar://problem/87701738

m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
​https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/accelerated-animation-without-duration-crash.html

In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.

We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.

We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

LayoutTests:

New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.

  • webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
  • webanimations/accelerated-animation-without-duration-crash.html: Added.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:27 PM Changeset in webkit [288978] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.3

12:06 PM Changeset in webkit [288977] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

REGRESSION(r288865): SourceImage should never sink its ImageBuffer to a NativeImage
​https://bugs.webkit.org/show_bug.cgi?id=236005

Reviewed by Simon Fraser.

Source/WebCore:

The r288865 changes SourceImage::nativeImage() such that if the image
variant has an ImageBuffer, it will sink this ImageBuffer into a NativeImage
and return this NativeImage to the caller. This was incorrect change
because this would invalidate the ImageBufferBackend of the SourceImage.

The fix is to copy the ImageBuffer to a NativeImage (DontCopyBackingStore)
and store it into another image variant. This will keep the ImageBuffer
valid and will prevent subsequent conversion if this function is called
multiple times.

Similar changes should be applied to SourceImage::imageBuffer().

Test: svg/custom/pattern-multiple-referencing.html

  • platform/graphics/SourceImage.cpp:

(WebCore::nativeImageOf):
(WebCore::SourceImage::nativeImageIfExists const):
(WebCore::SourceImage::nativeImage const):
(WebCore::imageBufferOf):
(WebCore::SourceImage::imageBufferIfExists const):
(WebCore::SourceImage::imageBuffer const):

  • platform/graphics/SourceImage.h:

LayoutTests:

  • svg/custom/pattern-multiple-referencing-expected.txt: Added.
  • svg/custom/pattern-multiple-referencing.html: Added.
11:58 AM Changeset in webkit [288976] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.4

11:56 AM Changeset in webkit [288975] by Chris Dumez
  • 8 edits
    4 moves
    1 add in trunk/Source/WebCore

Move SharedWorkerThread & SharedWorkerProxy to workers/shared/context/
​https://bugs.webkit.org/show_bug.cgi?id=236017

Reviewed by Youenn Fablet.

Move SharedWorkerThread & SharedWorkerProxy to workers/shared/context/, for consistency with service workers.
Also rename SharedWorkerProxy to SharedWorkerThreadProxy.

  • CMakeLists.txt:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::SharedWorker):

  • workers/shared/SharedWorker.h:
  • workers/shared/SharedWorkerManager.cpp:
  • workers/shared/context/SharedWorkerThread.cpp: Renamed from Source/WebCore/workers/shared/SharedWorkerThread.cpp.
  • workers/shared/context/SharedWorkerThread.h: Renamed from Source/WebCore/workers/shared/SharedWorkerThread.h.
  • workers/shared/context/SharedWorkerThreadProxy.cpp: Renamed from Source/WebCore/workers/shared/SharedWorkerProxy.cpp.
  • workers/shared/context/SharedWorkerThreadProxy.h: Renamed from Source/WebCore/workers/shared/SharedWorkerProxy.h.
11:51 AM Changeset in webkit [288974] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Support sending WorkerOptions over IPC
​https://bugs.webkit.org/show_bug.cgi?id=236026

Reviewed by Sam Weinig.

Support sending WorkerOptions over IPC, as this is will needed by Shared Workers.

  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerOptions.h:

(WebCore::WorkerOptions::encode const):
(WebCore::WorkerOptions::decode):

  • workers/WorkerType.h:
  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistrationOptions.h:
  • workers/service/server/SWServerWorker.h:
11:30 AM Changeset in webkit [288973] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Enable overflow:clip feature
​https://bugs.webkit.org/show_bug.cgi?id=236008

Patch by Rob Buis <​rbuis@igalia.com> on 2022-02-02
Reviewed by Simon Fraser.

Enable overflow:clip feature.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:13 AM Changeset in webkit [288972] by Chris Dumez
  • 9 edits
    3 adds in trunk/Source

Move and rename ServiceWorkerFrameLoaderClient & ServiceWorkerLibWebRTCProvider
​https://bugs.webkit.org/show_bug.cgi?id=236016

Reviewed by Youenn Fablet.

Move and rename ServiceWorkerFrameLoaderClient & ServiceWorkerLibWebRTCProvider so that they can be reused by Shared Workers.

Source/WebCore:

  • loader/FrameLoaderClient.h:

Source/WebKit:

  • Platform/Logging.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Storage/RemoteWorkerFrameLoaderClient.cpp: Added.

(WebKit::RemoteWorkerFrameLoaderClient::RemoteWorkerFrameLoaderClient):
(WebKit::RemoteWorkerFrameLoaderClient::createDocumentLoader):

  • WebProcess/Storage/RemoteWorkerFrameLoaderClient.h: Added.

(isType):

  • WebProcess/Storage/RemoteWorkerLibWebRTCProvider.h: Added.
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):
(WebKit::WebSWContextManagerConnection::continueDidReceiveFetchResponse):
(): Deleted.
(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient): Deleted.
(WebKit::ServiceWorkerFrameLoaderClient::createDocumentLoader): Deleted.

  • WebProcess/Storage/WebSWContextManagerConnection.h:

(isType): Deleted.

10:54 AM Changeset in webkit [288971] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Generate webrtc encoder src pad template based on supported platform encoders
​https://bugs.webkit.org/show_bug.cgi?id=235964

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-02
Reviewed by Xabier Rodriguez-Calvar.

Without this patch there was no guarantee the encoder would setup correctly in case the
encoder matching the requested caps is not available at runtime.

  • platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp:

(Encoders::registerEncoder):
(createSrcPadTemplateCaps):
(webkit_webrtc_video_encoder_class_init):

10:50 AM Changeset in webkit [288970] by mark.lam@apple.com
  • 6 edits in trunk/Source

Update computation of FAST_TLS base.
​https://bugs.webkit.org/show_bug.cgi?id=235934

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::loadFromTLS32):
(JSC::MacroAssemblerARM64::loadFromTLS64):
(JSC::MacroAssemblerARM64::storeToTLS32):
(JSC::MacroAssemblerARM64::storeToTLS64):

  • assembler/SecureARM64EHashPinsInlines.h:

(JSC::SecureARM64EHashPins::keyForCurrentThread):

  • offlineasm/arm64.rb:

Source/WTF:

  • wtf/PlatformHave.h:
10:46 AM Changeset in webkit [288969] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 5)
​https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/git-webkit: Log to 'info' not 'warning.'

Canonical link: ​https://commits.webkit.org/246698@main

10:46 AM Changeset in webkit [288968] by Jonathan Bedard
  • 7 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 4)
​https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:

(Branch.main): Make it clear why we're prompting the user for a branch name.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:

(TestBranch.test_prompt_git):

Canonical link: ​https://commits.webkit.org/246697@main

10:46 AM Changeset in webkit [288967] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 3)
​https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Make it clear to users that configurations are being set only
on the local repository.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

Canonical link: ​https://commits.webkit.org/246696@main

10:46 AM Changeset in webkit [288966] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 2)
​https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:

(Terminal.input): Gracefully handle keyboard interrupt

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py:

(TerminalTests.test_interrupt):

Canonical link: ​https://commits.webkit.org/246695@main

10:45 AM Changeset in webkit [288965] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Improve user prompts (Part 1)
​https://bugs.webkit.org/show_bug.cgi?id=235655
<rdar://problem/88082697>

Reviewed by Aakash Jain and Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py: Use token form url.
  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py: Use token form url.

Canonical link: ​https://commits.webkit.org/246694@main

10:44 AM Changeset in webkit [288964] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

CSSPropertyAnimation::animatableShorthandsAffectingProperty() is unused
​https://bugs.webkit.org/show_bug.cgi?id=236022

Reviewed by Dean Jackson.

This method is a remnant from the legacy animation engine and should be removed.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty): Deleted.

  • animation/CSSPropertyAnimation.h:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::gatherEnclosingShorthandProperties): Deleted.
(WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty): Deleted.

  • animation/CSSPropertyAnimation.h:
10:42 AM Changeset in webkit [288963] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

Make modifications to the isolated Tree atomic.
​https://bugs.webkit.org/show_bug.cgi?id=235683
<rdar://problem/88108412>

Reviewed by Chris Fleizach.

Covered by existing tests.

The isolated tree is currently updated in a non-atomic fashion, i.e.,
nodes are added or removed while clients are accessing the tree in an
inconsistent state. The idea of this patch is to make all necessary
changes in the tree in one atomic operation while the client thread,
or AX secondary thread, is blocked. To accomplish this and still be
responsive to client's requests on the AX thread, it is necessary that
all the processing in preparation for the update of the isolated tree
happens on the main thread without blocking the AX thread, and then do
the update of the tree in one atomic operation.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):
Rearranged the properties of the AXCoreObject to log most relevant on top.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
Removed AXTRACE from this method since it is called so often that it is
just noise in the log.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::generateSubtree):
It now collects all the changes to be perform and queues them in one
operation under lock.
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChange):
Queues one single change, must be called under lock.
(WebCore::AXIsolatedTree::queueChangesAndRemovals):
Queues all necessary changes to the isolated tree, additions and removals.
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
Collects on the main thread all the additions/changes to be done to the
isolated tree.
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::nodeAncestryChanges):
Connects a new isolated node to the existing hierarchy.
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
(WebCore::AXIsolatedTree::updateChildrenIDs): Deleted.
(WebCore::AXIsolatedTree::createSubtree): Deleted.
Replaced with collectNodeChanges and queueChangesAndRemovals.
(WebCore::AXIsolatedTree::updateSubtree): Deleted, not used.
(WebCore::AXIsolatedTree::removeSubtree): Deleted, not used.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::queueChangesAndRemovals):

10:32 AM Changeset in webkit [288962] by Sam Sneddon
  • 2 edits in trunk/Tools

REGRESSION (r288869): webkitpy.w3c.test_converter_unittest.W3CTestConverterTest.test_convert_prefixed_properties is failing
​https://bugs.webkit.org/show_bug.cgi?id=235961
<rdar://problem/88332029>

Reviewed by Ryan Haddad.

  • Scripts/webkitpy/w3c/test_converter_unittest.py:

(test_convert_prefixed_properties): Correct magic constant for number of tests.
(generate_test_content): Simplify, add clear assertion to catch in future.

10:14 AM Changeset in webkit [288961] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the macOS build after r288956
​https://bugs.webkit.org/show_bug.cgi?id=235991

  • UIProcess/Cocoa/WebViewImpl.h:
10:10 AM Changeset in webkit [288960] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

null ptr deref in Editor::pasteWithPasteboard
​https://bugs.webkit.org/show_bug.cgi?id=235966

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-02
Reviewed by Wenson Hsieh.

Add an additional check as pasteAsFragment's dispatchEvent can end up removing the client.

No new tests due to requiring Node web server (and cannot reproduce in LayoutTests/http/tests).

  • editing/mac/EditorMac.mm:

(WebCore::Editor::pasteWithPasteboard):

10:05 AM Changeset in webkit [288959] by Patrick Griffis
  • 5 edits
    55 adds in trunk/LayoutTests

WPT: Import WebAssembly CSP tests
​https://bugs.webkit.org/show_bug.cgi?id=235319

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-blocks-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/default-src-wasm-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-blocks-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-spv-asynch.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.js: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.js.headers: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.serviceworker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker-expected.txt: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/script-src-wasm-unsafe-eval-allows-wasm.any.worker.html: Added.
  • web-platform-tests/content-security-policy/wasm-unsafe-eval/w3c-import.log: Added.

LayoutTests:

Skip CSP tests that time out.

10:03 AM Changeset in webkit [288958] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] unit tests have become slower
​https://bugs.webkit.org/show_bug.cgi?id=235364
<rdar://problem/88073408>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps_unittest.py: Mock

time.sleep when testing PushCommitToWebKitRepo.

Canonical link: ​https://commits.webkit.org/246687@main

9:54 AM Changeset in webkit [288957] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS][WP] Add access in sandbox to Mach message
​https://bugs.webkit.org/show_bug.cgi?id=236021
<rdar://88300200>

Reviewed by Brent Fulgham.

Add access in sandbox to required Mach message in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
9:52 AM Changeset in webkit [288956] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

Adjust some Live Text code to only use VKC-prefixed VisionKit classes if ENABLE(IMAGE_ANALYSIS_ENHANCEMENTS)
​https://bugs.webkit.org/show_bug.cgi?id=235991

Reviewed by Megan Gardner.

Rather than creating VKCImageAnalysis/VKCImageAnalyzer/VKCImageAnalyzerRequest and statically casting to
VKImageAnalysis/VKImageAnalyzer/VKImageAnalyzerRequest respectively, add a typedef that abstracts away the
differing VK/VKC prefixes behind CocoaImage(Analysis|Analyzer|AnalyzerRequest), and use this typedef everywhere
we currently use the VK-prefixed types.

Since the VK-prefixed classes are being entirely removed and replaced with VKC-prefixed classes at some point,
this allows us to be consistent (at least, within a given OS version) about the VisionKit object types we're
creating and passing around in Live Text code.

No change in behavior.

  • Platform/cocoa/TextRecognitionUtilities.h:
  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::createImageAnalyzer):
(WebKit::createImageAnalyzerRequest):
(WebKit::makeTextRecognitionResult):
(WebKit::hasVisionKitCorePrefixedClasses): Deleted.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::ensureImageAnalyzer):
(WebKit::createImageAnalyzerRequest):
(WebKit::WebViewImpl::requestTextRecognition):
(WebKit::WebViewImpl::computeHasImageAnalysisResults):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView imageAnalyzer]):
(-[WKContentView createImageAnalyzerRequest:image:imageURL:]):
(-[WKContentView createImageAnalyzerRequest:image:]):
(-[WKContentView _updateContextMenuForMachineReadableCodeForImageAnalysis:]):
(-[WKContentView requestTextRecognition:imageData:identifier:completionHandler:]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
(-[WKContentView _completeImageAnalysisRequestForContextMenu:requestIdentifier:hasTextResults:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]):

9:19 AM Changeset in webkit [288955] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r286988.
​https://bugs.webkit.org/show_bug.cgi?id=236006

Broke form submission for multiple <input type='image'>

Reverted changeset:

"A FormData constructed in the form's submit event listener
shouldn't include the submitter"
​https://bugs.webkit.org/show_bug.cgi?id=234069
​https://commits.webkit.org/r286988

8:57 AM Changeset in webkit [288954] by youenn@apple.com
  • 9 edits in trunk/Source

RealtimeVideoSource::adaptVideoSample should not create IOSurfaces when running in WebProcess
​https://bugs.webkit.org/show_bug.cgi?id=236011
<rdar://88367968>

Reviewed by Eric Carlson.

Source/WebCore:

Add a way to not use IOSurfaces when using ImageTransferSessionVT.
Use this in RealtimeVideoSource to toggle IOSurface use on and off when downsampling samples.

Covered by existing tests.

  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm:
  • platform/graphics/cv/ImageTransferSessionVT.h:
  • platform/graphics/cv/ImageTransferSessionVT.mm:
  • platform/mediastream/RealtimeVideoSource.cpp:
  • platform/mediastream/RealtimeVideoSource.h:

Source/WebKit:

Disable IOSurface use for WebProcess RealtimeVideoSources.

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
8:43 AM Changeset in webkit [288953] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Display startObject and anchorObject objectID when logging AccessibilitySearchCriteria from AXLogger
​https://bugs.webkit.org/show_bug.cgi?id=235997

Reviewed by Chris Fleizach.

With this patch, logging AccessibilitySearchCriteria will look like:

(SearchCriteria 0x2a7d13a80

(anchorObject 0x315ba9980, ID 492)
(startObject 0x0, ID 0)
...truncated...

This will help us correlate the IDs of anchorObject and startObject with other
log statements.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

7:37 AM Changeset in webkit [288952] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] Read buildbot try credentials from passwords.json instead of env variables
​https://bugs.webkit.org/show_bug.cgi?id=236015

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/loadConfig.py:

(loadBuilderConfig):

Canonical link: ​https://commits.webkit.org/246681@main

5:20 AM Changeset in webkit [288951] by youenn@apple.com
  • 21 edits
    4 adds in trunk/Source

LibWebRTCCodecs should not need to create IOSurfaces
​https://bugs.webkit.org/show_bug.cgi?id=235951
<rdar://problem/88326654>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Introduce helper routines to copy a webrtc VideoFrame into a memory buffer and get a CVPixelBuffer from a webrtc VideoFrame.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

Source/WebCore:

Introduce SharedVideoFrameInfo as a helper class to serialize a CVPixelBuffer into memory and create a CVPixelBuffer from reading memory.

Covered by existing webrtc tests.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/SharedVideoFrameInfo.h: Added.
  • platform/cocoa/SharedVideoFrameInfo.mm: Added.
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/RemoteVideoSample.cpp:
  • platform/graphics/RemoteVideoSample.h:

Source/WebKit:

Introduce SharedVideoFrameWriter and SharedVideoFrameReader to support shared memory sending of CVPixelBuffers that are non IOSurface backed.
To do so, we make use of SharedVideoFrameInfo from WebCore.
What we do is:

  • When getting a frame, allocate a shared memory that is big enough to copy its data and info in it. Create a semaphore to sync reader and writer.
  • If we allocate shared memory/semphore, send them over IPC to the SharedVideoFrameReader.
  • Wait for semaphore to tell us reader is fine for writing.
  • Write SharedVideoFrameInfo into the shared memory, then copy the raw bytes into the shared memory.
  • Send through IPC the video frame, no MacSendRight means to read the shared memory.

On reader side, for every frame that does not have an IOSurface, we read the shared memory, create an IOSurface from it and notify WebProcess that it can write the next frame.

In memory buffers are used for black frames at least.
webrtc/video-mute.html covers the patch.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/SharedVideoFrame.cpp: Added.
  • WebProcess/GPU/webrtc/SharedVideoFrame.h: Added.
2:30 AM Changeset in webkit [288950] by youenn@apple.com
  • 60 edits in trunk

Clarify that some UUID routines are dedicated to UUID v4
​https://bugs.webkit.org/show_bug.cgi?id=235430

Reviewed by Darin Adler.

Source/WebCore:

No change of behavior, this is renaming only.

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::CDMSessionClearKey):

  • Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::DOMFileSystem):

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::createAppHighlightRangeData):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::generateUUID):

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::MediaDevices):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::create):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::generateDatabaseFileName):

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::registerHyperlink):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):

  • dom/Document.cpp:

(WebCore::Document::originIdentifierForPasteboard const):
(WebCore::Document::didInsertAttachmentElement):

  • fileapi/BlobURL.cpp:

(WebCore::BlobURL::createBlobURL):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::ensureUniqueIdentifier):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory):

  • page/Crypto.cpp:

(WebCore::Crypto::randomUUID const):

  • platform/ScriptExecutionContextIdentifier.h:

(WebCore::ProcessQualified<UUID>::generate):

  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:

(WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF):

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:

(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::update):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::create):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource):

  • platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:

(WebCore::GStreamerDisplayCaptureDeviceManager::computeCaptureDevices):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcPostStreamCollection):

  • platform/mediastream/ios/ReplayKitCaptureSource.mm:

(WebCore::screenDeviceUUID):

  • testing/Internals.cpp:

(WebCore::Internals::isDocumentAlive const):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstanceSession::requestLicense):

Source/WebDriver:

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::startAutomationSession):

  • socket/SessionHostSocket.cpp:

(WebDriver::SessionHost::startAutomationSession):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::ensureSession):

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::toRecordInformation):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::open):

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::registerMDNSName):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleForWebPageProxy):
(WebKit::WebAutomationSession::handleForWebFrameID):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/Cocoa/WKShareSheet.mm:

(+[WKShareSheet createRandomSharingDirectoryForFile:]):

  • UIProcess/GeolocationPermissionRequestManagerProxy.cpp:

(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:

(WebKit::VirtualAuthenticatorManager::createAuthenticator):

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::WaylandCompositor):

  • UIProcess/ios/WKModelView.mm:

(-[WKModelView createFileForModel:]):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::createUUID):

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::createFile):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::openWithPreview):
(WebKit::PDFPlugin::openWithNativeApplication):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::ensureSession):

Source/WTF:

Rename UUID::create to UUID::createVersion4.
Add a UUID::parseVersion4 that validates the parsed UUID is a v4.
Rename createCanonicalUUIDString to createVersion4UUIDString for consistency.

Update UUID constructor to generate a UUID v4 as per spec.
Update UUID::toString to generate a string representation of any UUID, and not specifically to v4.

  • wtf/Identified.h:

(WTF::UUIDIdentified::UUIDIdentified):

  • wtf/URL.cpp:

(WTF::URL::fakeURLWithRelativePart):

  • wtf/UUID.cpp:

(WTF::UUID::UUID):
(WTF::UUID::toString const):
(WTF::UUID::parse):
(WTF::UUID::parseVersion4):
(WTF::createVersion4UUIDString):
(WTF::isVersion4UUID):
(WTF::createCanonicalUUIDString): Deleted.

  • wtf/UUID.h:

(WTF::UUID::createVersion4):
(WTF::UUID::create): Deleted.

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

Tools:

  • TestWebKitAPI/Tests/WTF/UUID.cpp:

(parseAndStringifyUUID):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(waitUntilNetworkProcessIsResponsive):

  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::saltForOrigin):

2:15 AM Changeset in webkit [288949] by youenn@apple.com
  • 5 edits
    2 adds in trunk

ServiceWorkerNavigationPreloader should only be used once
​https://bugs.webkit.org/show_bug.cgi?id=235882
<rdar://88226432>

Reviewed by Chris Dumez.

Source/WebKit:

In case service worker preload is being used and related service worker context crashes (or service worker context sends bad messages),
We can end up in a bad state where we will ask the preload twice for the same response (once for good, and the next one as we go to didNotHandle case).
To prevent this, we add checks in loadResponseFromPreloader and loadBodyFromPreloader.
As part of this investigation, I found out that ServiceWorkerNavigationPreloader is not correctly handling the case of preload responses coming from cache.
In particular, no body will be given since we return early in waitForBody in case the preload network load is null.
Prevent this by making sure waitForBody calls the response completion handler if available, even if the preload network load is null.
And update the response body callback before executing the response completion handler to make sure data received synchronously from the preload is given to the service worker fetch task.

Test: http/wpt/service-workers/fetch-service-worker-preload-cache.https.html

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
  • NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:

LayoutTests:

  • http/wpt/service-workers/fetch-service-worker-preload-cache.https-expected.txt: Added.
  • http/wpt/service-workers/fetch-service-worker-preload-cache.https.html: Added.
  • http/wpt/service-workers/resources/fetch-service-worker-preload-script.py:
2:07 AM Changeset in webkit [288948] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[GStreamer] Add support for custom message handling in simpleBusMessageCallback
​https://bugs.webkit.org/show_bug.cgi?id=235822

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-02
Reviewed by Xabier Rodriguez-Calvar.

Refactor most custom GStreamer message handlers to rely on the common "simple" handler,
which can now be augmented with an optional closure to do further message processing.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::handleMessage):
(WebCore::messageCallback): Deleted.

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::disconnectSimpleBusMessageCallback):
(WebCore::CustomMessageHandlerHolder::CustomMessageHandlerHolder):
(WebCore::connectSimpleBusMessageCallback):
(WebCore::simpleBusMessageCallback): Deleted.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::connectSimpleBusMessageCallback):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

1:12 AM Changeset in webkit [288947] by Martin Robinson
  • 6 edits
    2 adds in trunk

scroll-margin-top doesn't work on inline elements
​https://bugs.webkit.org/show_bug.cgi?id=235933
<rdar://87983307>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt: Added.
  • web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005.html

Move the implementation of absoluteAnchorRectWithScrollMargin which actually processes
the CSS scroll-margin property to RenderElement. This allows it to be used for inline
as well as block elements. The specification says it should apply to both. The box
sizes passed in here do not matter too much, because the Length should never be a
percentage.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::absoluteAnchorRectWithScrollMargin const): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::absoluteAnchorRectWithScrollMargin const):

  • rendering/RenderElement.h:
12:40 AM Changeset in webkit [288946] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Merge r286308 - Scripting attributes are sometimes not properly stripped from elements when JS is disabled
​https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:

(TEST):

12:22 AM Changeset in webkit [288945] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] wasm atomic opcodes should be rejected if alignment is not equal to natural width
​https://bugs.webkit.org/show_bug.cgi?id=235990

Reviewed by Saam Barati.

JSTests:

  • wasm/stress/invalid-atomic-alignment.js: Added.

(async buildAndThrow):

Source/JavaScriptCore:

While normal load and store can accept larger alignment than an access width,
wasm module validator rejects if atomic ops' alignment is not equal to an access width.
This patch applies this restriction.
No runtime semantics change since atomic ops are always checked against an access width alignment.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::atomicLoad):
(JSC::Wasm::FunctionParser<Context>::atomicStore):
(JSC::Wasm::FunctionParser<Context>::atomicBinaryRMW):
(JSC::Wasm::FunctionParser<Context>::atomicCompareExchange):
(JSC::Wasm::FunctionParser<Context>::atomicWait):
(JSC::Wasm::FunctionParser<Context>::atomicNotify):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

Feb 1, 2022:

9:50 PM Changeset in webkit [288944] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][IFC] Using Fontcascade::spaceWidth to subtract the trailing space width may result in incorrect layout
​https://bugs.webkit.org/show_bug.cgi?id=235937
<rdar://88059633>

Reviewed by Antti Koivisto and Simon Fraser.

Source/WebCore:

Since Fontcascade::spaceWidth always consult the primary font, it may return unexpected width value when (in rare cases)
the primary font does not have a space glyph. Legacy line layout works as expected as it always runs a full width
computation on the space character (instead of directly calling FontCascade::spaceWidth).

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::computeInlineTextItemWidths):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::spaceWidth):

  • layout/formattingContexts/inline/text/TextUtil.h:

LayoutTests:

  • platform/mac-bigsur/fonts/monospace-expected.txt: Added.
9:38 PM Changeset in webkit [288943] by Jenner@apple.com
  • 2 edits in trunk/Tools

Update watchOS simulators to run on the newer 44mm display
​https://bugs.webkit.org/show_bug.cgi?id=235986

Reviewed by Ryan Haddad.

  • Scripts/webkitpy/port/watch_simulator.py:

(WatchSimulatorPort):

9:12 PM Changeset in webkit [288942] by mmaxfield@apple.com
  • 60 edits in trunk/Source

Rename FontCascade::fontMetrics() and RenderStyle::fontMetrics() to fontMetricsOfPrimaryFont()
​https://bugs.webkit.org/show_bug.cgi?id=235938

Unreviewed.

Source/WebCore:

Addressing post-review comments.

No new tests because there is no behavior change.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(baselinePositionForRenderObject):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::equalForLengthResolution):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxContent):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::metricsOfPrimaryFont const):
(WebCore::Display::Style::fontMetricsOfPrimaryFont const): Deleted.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::FontProxy::metricsOfPrimaryFont const):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
(WebCore::CanvasRenderingContext2DBase::measureTextInternal):
(WebCore::CanvasRenderingContext2DBase::textOffset):
(WebCore::CanvasRenderingContext2DBase::FontProxy::fontMetricsOfPrimaryFont const): Deleted.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawRulers):
(WebCore::InspectorOverlay::drawElementTitle):
(WebCore::expectedSizeForLayoutLabel):
(WebCore::drawLayoutLabel):

  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::initialLineHeight const):

  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::m_style):
(WebCore::Layout::InlineLevelBox::preferredLineHeight const):
(WebCore::Layout::InlineLevelBox::primarymetricsOfPrimaryFont const):
(WebCore::Layout::InlineLevelBox::primaryfontMetricsOfPrimaryFont const): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
(WebCore::Layout::LineBoxVerticalAligner::alignInlineLevelBoxes const):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::floatWidthForSimpleText const):
(WebCore::FontCascade::floatWidthForComplexText const):

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::metricsOfPrimaryFont const):
(WebCore::FontCascade::fontMetricsOfPrimaryFont const): Deleted.

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::calculatePositionAndSize):
(WebCore::PopupMenuWin::paint):

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForEmptyElement):
(WebCore::computeCaretRectForBox):

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::paintMarkupBox):
(WebCore::LegacyEllipsisBox::nodeAtPoint):

  • rendering/LegacyInlineBox.cpp:

(WebCore::LegacyInlineBox::logicalHeight const):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::placeChildInlineBoxesInBlockDirection):
(WebCore::LegacyInlineFlowBox::placeBoxesInBlockDirection):

  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSnapAdjustment const):
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::inlineBlockBaseline const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustInitialLetterPosition):
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::setImageSizeForAltText):
(WebCore::RenderImage::paintReplaced):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):
(WebCore::RenderInline::baselinePosition const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::baselinePosition const):

  • rendering/RenderListBox.cpp:

(WebCore::itemOffsetForAlignment):
(WebCore::RenderListBox::itemHeight const):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::relativeMarkerRect):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::layoutBlock):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::adjustMenuListButtonStyle const):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForeground):
(WebCore::TextBoxPainter::paintCompositionUnderline):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter::textOriginFromPaintRect const):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintBackgroundDecorations):
(WebCore::TextDecorationPainter::paintForegroundDecorations):
(WebCore::TextDecorationPainter::paintLineThrough):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):

  • rendering/line/LineInlineHeaders.h:

(WebCore::requiresLineBoxForContent):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::axisHeight):
(WebCore::toUserUnits):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::verticalParameters):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::verticalParameters const):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::verticalParameters const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::metricsOfPrimaryFont const):
(WebCore::RenderStyle::computeLineHeight const):
(WebCore::RenderStyle::fontMetricsOfPrimaryFont const): Deleted.

  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::positionForPoint):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::selectionRectForTextFragment const):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::calculateBoundaries const):
(WebCore::SVGInlineTextBox::nodeAtPoint):

  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphAdvanceAndOrientation const):

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::SVGTextMetrics):

  • rendering/svg/SVGTextQuery.cpp:

(WebCore::calculateGlyphBoundaries):

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS const):
(WebCore::SVGLengthContext::convertValueFromEXSToUserUnits const):

Source/WebKit:

Addressing post-review comments.

  • WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:

(WebKit::WebPopupMenu::setUpPlatformData):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

Source/WebKitLegacy/mac:

  • WebView/WebImmediateActionController.mm:

(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::draw):

9:08 PM Changeset in webkit [288941] by Lauro Moura
  • 5 edits in trunk/Source/WebCore

Unreviewed, non-unified buildfix after latest accessibility commits
​https://bugs.webkit.org/show_bug.cgi?id=235999

  • accessibility/atspi/AccessibilityAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
9:00 PM Changeset in webkit [288940] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Share more WebPage code related to marking layers volatile
​https://bugs.webkit.org/show_bug.cgi?id=235985

Reviewed by Chris Dumez.

Factor code common between WebPage::layerVolatilityTimerFired() and WebPage::markLayersVolatile()
into a helper function, using an enum for the "stop reason" to allow for descriptive logging.

No behavior change.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::markLayersVolatileOrRetry):

  • WebProcess/WebPage/WebPage.h:
8:04 PM Changeset in webkit [288939] by commit-queue@webkit.org
  • 5 edits
    1 delete in trunk

Unreviewed, reverting r288914.
​https://bugs.webkit.org/show_bug.cgi?id=235998

Broke some layout tests

Reverted changeset:

"[LFC][IFC] Using Fontcascade::spaceWidth to subtract the
trailing space width may result in incorrect layout"
​https://bugs.webkit.org/show_bug.cgi?id=235937
​https://commits.webkit.org/r288914

6:49 PM Changeset in webkit [288938] by Chris Dumez
  • 19 edits
    1 move in trunk/Source

Rename ServiceWorkerFetchResult to WorkerFetchResult and make it more generic
​https://bugs.webkit.org/show_bug.cgi?id=235983

Reviewed by Geoffrey Garen.

Rename ServiceWorkerFetchResult to WorkerFetchResult and make it more generic so that it can be reused by Shared Workers.

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::startScriptFetchForServer):

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::notifyFailedFetchingScript):

  • workers/service/ServiceWorkerFetchResult.h: Removed.

(WebCore::ServiceWorkerFetchResult::isolatedCopy const): Deleted.
(WebCore::serviceWorkerFetchError): Deleted.
(WebCore::ServiceWorkerFetchResult::encode const): Deleted.
(WebCore::ServiceWorkerFetchResult::decode): Deleted.

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::finishFetchingScriptInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::Connection::finishFetchingScriptInServer):
(WebCore::SWServer::startScriptFetch):
(WebCore::SWServer::scriptFetchFinished):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.h:
  • workers/WorkerFetchResult.h: Added.

Source/WebKit:

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::~ServiceWorkerSoftUpdateLoader):
(WebKit::ServiceWorkerSoftUpdateLoader::fail):
(WebKit::ServiceWorkerSoftUpdateLoader::didFinishLoading):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::finishFetchingScriptInServer):

  • WebProcess/Storage/WebSWClientConnection.h:
6:47 PM Changeset in webkit [288937] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Check AccessibilityRenderObject::m_renderer for null before using it.
​https://bugs.webkit.org/show_bug.cgi?id=235950
<rdar://problem/88326438>

Reviewed by Chris Fleizach.

AccessibilityRenderObject::m_renderer is a WeakPtr that can become null
due to a variety of changes in the render tree. This patch fixes a
number of cases where AccessibilityRenderObject::m_renderer was being
used without checking for null which leads to crashes such as:
​https://bugs.webkit.org/show_bug.cgi?id=235945
​https://bugs.webkit.org/show_bug.cgi?id=235827

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectIfExists const):
(WebCore::AccessibilityRenderObject::selection const):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::documentLinks):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

6:45 PM Changeset in webkit [288936] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Replace WebCore::topOriginURL() to SecurityOrigin::toURL()
​https://bugs.webkit.org/show_bug.cgi?id=235987

Reviewed by Geoffrey Garen.

Replace WebCore::topOriginURL() to SecurityOrigin::toURL() so that it can be reused by Shared Workers.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::toURL const):

  • page/SecurityOrigin.h:
  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toURL const):

  • page/SecurityOriginData.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::setupPageForServiceWorker):
(WebCore::topOriginURL): Deleted.

6:08 PM Changeset in webkit [288935] by Chris Dumez
  • 12 edits in trunk/Source/WebKit

Rename some service worker functions that have names that are too generic
​https://bugs.webkit.org/show_bug.cgi?id=235988

Reviewed by Darin Adler.

Rename some service worker functions that have names that are too generic and will cause
confusion with shared workers.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::serverToContextConnectionNoLongerNeeded):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::ensureSWServer):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::serviceWorkerContextConnectionNoLongerNeeded):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess): Deleted.
(WebKit::NetworkProcessProxy::workerContextConnectionNoLongerNeeded): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishServiceWorkerContext):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishServiceWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
6:02 PM Changeset in webkit [288934] by Wenson Hsieh
  • 7 edits in trunk/Source

The default values for a couple of Live Text-related features should respect system feature flags
​https://bugs.webkit.org/show_bug.cgi?id=235980
rdar://88349726

Reviewed by Tim Horton.

Source/WebKit:

Split the extant TextRecognitionEnhancements feature flag into two flags: one to control enablement of the
"image analysis queue", and another to control Live Text behaviors (still referred to as "text recognition
enhancements"). Add WebKitAdditions integration points to allow the default values for these two flags to read
from system feature flags.

  • Platform/cocoa/TextRecognitionUtilities.h:
  • Platform/cocoa/TextRecognitionUtilities.mm:

(WebKit::textRecognitionEnhancementsSystemFeatureEnabled):
(WebKit::imageAnalysisQueueSystemFeatureEnabled):
(WebKit::isLiveTextAvailableAndEnabled):
(WebKit::isLiveTextEnabled): Deleted.
(WebKit::requestImageAnalysisWithIdentifier): Deleted.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::defaultTextRecognitionEnhancementsEnabled):
(WebKit::defaultImageAnalysisQueueEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

Add a new feature flag, and add default values for both features. See WebKit/ChangeLog for more details.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
5:41 PM Changeset in webkit [288933] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
​https://bugs.webkit.org/show_bug.cgi?id=235989
<rdar://87402941>

Reviewed by Wenson Hsieh.

Crash data suggest that m_scrollingCoordinator can be null in ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged(),
which is true if the scrolling tree keeps ThreadedScrollingTree alive longer than the scrolling coordinator.

As in the other functions in this file, early return if m_scrollingCoordinator is null.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):

5:41 PM Changeset in webkit [288932] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16.0.3

Tag Safari-613.1.16.0.3.

5:32 PM Changeset in webkit [288931] by Pablo Saavedra
  • 6 edits in trunk/Source/WebCore

Fix build error with VIDEO=ON
​https://bugs.webkit.org/show_bug.cgi?id=235982

Reviewed by Eric Carlson.

  • Modules/WebGPU/GPUExternalTextureDescriptor.idl:
  • Modules/webcodecs/VideoColorPrimaries.idl:
  • Modules/webcodecs/VideoMatrixCoefficients.idl:
  • Modules/webcodecs/VideoTransferCharacteristics.idl:
  • platform/MediaSample.h:
5:18 PM Changeset in webkit [288930] by ntim@apple.com
  • 4 edits in trunk/Source

Add setting to toggle PDF.js viewer
​https://bugs.webkit.org/show_bug.cgi?id=235972

Reviewed by Tim Horton.

This setting is enabled only in CaptivePortalMode.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
4:47 PM Changeset in webkit [288929] by Ben Nham
  • 13 edits in trunk

Forward messages from NetworkProcess to webpushd
​https://bugs.webkit.org/show_bug.cgi?id=235855

Reviewed by Brent Fulgham.

Source/WebCore:

Make ExceptionData use modern encoding since the daemon IPC encoder doesn't support legacy
encoding.

  • dom/ExceptionData.h:

(WebCore::ExceptionData::decode):

Source/WebKit:

This forwards PushManager and PushSubscription-related IPC from NetworkProcess to webpushd.
The implementations in webpushd are stubs in this patch, and as a result there are no new
tests. The implementations and tests will be filled out in a future patch.

  • NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::subscribeToPushService):
(WebKit::NetworkNotificationManager::unsubscribeFromPushService):
(WebKit::NetworkNotificationManager::getPushSubscription):
(WebKit::NetworkNotificationManager::getPushPermissionState):

  • NetworkProcess/Notifications/NetworkNotificationManager.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::subscribeToPushService):
(WebKit::WebSWServerConnection::unsubscribeFromPushService):
(WebKit::WebSWServerConnection::getPushSubscription):
(WebKit::WebSWServerConnection::getPushPermissionState):

  • Shared/WebPushDaemonConstants.h:

(WebKit::WebPushD::messageTypeSendsReply):

  • webpushd/WebPushDaemon.h:
  • webpushd/WebPushDaemon.mm:

(WebPushD::MessageInfo::subscribeToPushService::encodeReply):
(WebPushD::MessageInfo::unsubscribeFromPushService::encodeReply):
(WebPushD::MessageInfo::getPushSubscription::encodeReply):
(WebPushD::MessageInfo::getPushPermissionState::encodeReply):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::subscribeToPushService):
(WebPushD::Daemon::unsubscribeFromPushService):
(WebPushD::Daemon::getPushSubscription):
(WebPushD::Daemon::getPushPermissionState):

LayoutTests:

Update existing tests to test for AbortError, since that's the exception type specified in
the spec.

  • http/wpt/push-api/pushManager.any.js:

(promise_test.async test):

4:46 PM Changeset in webkit [288928] by Russell Epstein
  • 12 edits in branches/safari-613.1.16.0-branch/Source/WebKit

Apply patch. rdar://problem/86150540

4:44 PM Changeset in webkit [288927] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.3

4:28 PM Changeset in webkit [288926] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.4

Tag Safari-614.1.1.4.

4:23 PM Changeset in webkit [288925] by Wenson Hsieh
  • 10 edits in trunk

Mitigate hangs underneath -requestAutocorrectionContextWithCompletionHandler: when focusing text fields
​https://bugs.webkit.org/show_bug.cgi?id=235963
rdar://70152487

Reviewed by Tim Horton.

Source/WebKit:

After focusing an input field, UIKit attempts to invoke -requestAutocorrectionContextWithCompletionHandler: on
WKContentView up to 5 times, back to back. In WebKit, we handle this like sync IPC by waiting up to 1 second for
a response (this is done because UIKit would otherwise lock the main thread altogether after calling this
method, which results in a permanent deadlock in the UI process).

In the case where the web process is also sending a sync message to the UI process at the same time (for
instance, when spinning up the GPU or web authn process), this results in back-to-back 1 second deadlocks, for a
total UI process hang time of up to 5 seconds (as observed on an iPad with hardware keyboard attached).

This patch attempts to reduce hangs in -[WKContentView requestAutocorrectionContextWithCompletionHandler:] by
introducing a mechanism that throttles redundant -requestAutocorrectionContextWithCompletionHandler: requests
during the same runloop by immediately returning the last received autocorrection context instead of repeatedly
waiting on synchronous IPC message responses. Combined with another mechanism that preemptively sends an
autocorrection context when an input view is shown, this means that we will (mostly) no longer hang when
focusing an input field, or hang for at most 1 second (instead of 5) in the case where we happen to deadlock.

See comments below for more details.

Test: AutocorrectionTests.AutocorrectionContextBeforeAndAfterEditing

  • UIProcess/ios/WKContentViewInteraction.h:

Add a new flag, _autocorrectionContextNeedsUpdate, that tracks whether or not it's safe to reply to
-requestAutocorrectionContextWithCompletionHandler: using the last-received WebAutocorrectionContext data that
was cached in the UI process.

This flag is unset after receiving a WebAutocorrectionContext, and set when any asynchronous text input methods
on WKContentView have been invoked, which may cause the autocorrection context to change. This is important in
order to preserve the existing behavior that a call to -requestAutocorrectionContextWithCompletionHandler:
immediately after calling a method like -insertText: or -selectAll: will not immediately return with a stale
autocorrection context.

The flag is also unset after the current runloop finishes, ensuring that this hack is limited to back-to-back
autocorrection contexts where editing actions are not dispatched in between each request. In the future, we may
be able to make this caching policy more aggressive, by removing this invalidation, which would allow us to keep
using the same autocorrection context data until we either learn about a programmatic selection change in the UI
process, or the WebKit client (in the UI process) has triggered editing or selection.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView replaceText:withText:]):
(-[WKContentView selectWordBackward]):
(-[WKContentView pasteForWebView:]):
(-[WKContentView _pasteAsQuotationForWebView:]):
(-[WKContentView selectForWebView:]):
(-[WKContentView selectAllForWebView:]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]):
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:withFlags:]):
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
(-[WKContentView selectPositionAtPoint:completionHandler:]):
(-[WKContentView _selectPositionAtPoint:stayingWithinFocusedElement:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView beginSelectionInDirection:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView replaceDictatedText:withText:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
(-[WKContentView _handleAutocorrectionContext:]):
(-[WKContentView beginSelectionChange]):
(-[WKContentView insertTextSuggestion:]):
(-[WKContentView _setMarkedText:highlights:selectedRange:]):
(-[WKContentView insertText:]):
(-[WKContentView insertText:alternatives:style:]):
(-[WKContentView _focusTextInputContext:placeCaretAt:completionHandler:]):
(-[WKContentView _willBeginTextInteractionInTextInputContext:]):
(-[WKContentView executeEditCommandWithCallback:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView _selectionChanged]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestAutocorrectionContext):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestDOMPasteAccess):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setIsShowingInputViewForFocusedElement):
(WebKit::WebPage::preemptivelySendAutocorrectionContext):

Pull out logic that preemptively computes and sends WebAutocorrectionContexts to the UI process (in anticipation
of synchronous IPC) into an appropriately-named helper method; additionally, call this new helper method when
the keyboard has been shown, following element focus in the UI process.

(WebKit::WebPage::handleAutocorrectionContextRequest):
(WebKit::WebPage::prepareToRunModalJavaScriptDialog):
(WebKit::WebPage::requestAutocorrectionContext): Deleted.

Drive-by: rename this to handleAutocorrectionContextRequest for clarity, since the purpose of this method is
to service a request for autocorrection context that was sent by the UI process.

Tools:

Add a new API test to exercise a scenario that currently isn't covered by existing tests: if the text input
client (i.e. UIKit) calls -requestAutocorrectionContextWithCompletionHandler:, then invokes an asynchronous
API that performs an editing action or changes the selection, and then requests another autocorrection context,
the second autocorrection context should reflect the changes that occurred as a result of the async editing
action.

  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
4:10 PM Changeset in webkit [288924] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

Write origin file when OriginStorageManager is destroyed
​https://bugs.webkit.org/show_bug.cgi?id=235897
rdar://87163253

Reviewed by Darin Adler.

The first WebStorage message sent from web process to network process is sync, and writing origin file when
creating OriginStorageManager will delay the reply. Since we can get the origin information from in-memory map
when OriginStorageManager is present, we may delay the write to until when OriginStorageManager is destroyed.
This fixes the PLT regression from r286936.

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::localOriginStorageManager):

  • NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::~OriginStorageManager):

  • NetworkProcess/storage/OriginStorageManager.h:
4:09 PM Changeset in webkit [288923] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.2

Tag Safari-613.1.16.1.2.

4:08 PM Changeset in webkit [288922] by pvollan@apple.com
  • 7 edits in trunk/Source

[WP] Remove PostScript conversion code
​https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Tim Horton.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

Source/WebCore:

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::convertedDataIfNeeded const):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::convertPostScriptDataToPDF): Deleted.

  • platform/graphics/cg/PDFDocumentImage.h:

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pluginInfo):
(WebKit::PDFPlugin::streamDidReceiveResponse):
(WebKit::PDFPlugin::manualStreamDidReceiveResponse):

4:07 PM Changeset in webkit [288921] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.2

Tag Safari-613.1.16.0.2.

4:01 PM Changeset in webkit [288920] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.7

Tag Safari-613.1.14.5.7.

3:59 PM Changeset in webkit [288919] by Russell Epstein
  • 2 edits in branches/safari-613.1.14.5-branch/Source/WebKit

Cherry-pick r288917. rdar://problem/88334496

Catalyst builds of WebKit with system content path put XPCServices and Daemons in the normal location
​https://bugs.webkit.org/show_bug.cgi?id=235976

Reviewed by Mark Lam.

The production of WEBKIT_FRAMEWORKS_DIR_USE_SYSTEM_CONTENT_PATH_YES used the system framework path
instead of using the computed value of NORMAL_WEBKIT_FRAMEWORKS_DIR which includes the Catalyst prefix.

  • Configurations/BaseTarget.xcconfig:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288917 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:58 PM Changeset in webkit [288918] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.7

3:53 PM Changeset in webkit [288917] by msaboff@apple.com
  • 2 edits in trunk/Source/WebKit

Catalyst builds of WebKit with system content path put XPCServices and Daemons in the normal location
​https://bugs.webkit.org/show_bug.cgi?id=235976

Reviewed by Mark Lam.

The production of WEBKIT_FRAMEWORKS_DIR_USE_SYSTEM_CONTENT_PATH_YES used the system framework path
instead of using the computed value of NORMAL_WEBKIT_FRAMEWORKS_DIR which includes the Catalyst prefix.

  • Configurations/BaseTarget.xcconfig:
3:24 PM Changeset in webkit [288916] by Adrian Perez de Castro
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Using thin archives with ld.bfd results in linker errors
​https://bugs.webkit.org/show_bug.cgi?id=235975

Reviewed by Michael Catanzaro.

Import the two upstream that fix handling of thin archives to apply atop binutils 2.37.
The patches were found from ​https://sourceware.org/bugzilla/show_bug.cgi?id=28138 and
cherry-picked from the upstream binutils repository.

  • elements/freedesktop-sdk.bst: List patch in the sources section.
  • patches/0001-binutils-import-upstream-patches-for-thin-archive-su.patch: Added.
3:21 PM Changeset in webkit [288915] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.4

2:52 PM Changeset in webkit [288914] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][IFC] Using Fontcascade::spaceWidth to subtract the trailing space width may result in incorrect layout
​https://bugs.webkit.org/show_bug.cgi?id=235937
<rdar://88059633>

Reviewed by Antti Koivisto.

Source/WebCore:

Since Fontcascade::spaceWidth always consult the primary font, it may return unexpected width value when (in rare cases)
the primary font does not have a space glyph. Legacy line layout works as expected as it always runs a full width
computation on the space character (instead of directly calling FontCascade::spaceWidth).

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::computeInlineTextItemWidths):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::spaceWidth):

  • layout/formattingContexts/inline/text/TextUtil.h:

LayoutTests:

  • platform/mac-bigsur/fonts/monospace-expected.txt: Added.
2:47 PM Changeset in webkit [288913] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

MSVC reports "SVGPropertyAnimator.h(94): error C2839: invalid return type 'T *' for overloaded 'operator ->'" with /std:c++20
​https://bugs.webkit.org/show_bug.cgi?id=234546
<rdar://problem/86757805>

Reviewed by Darin Adler.

r287300 was a wrong fix that used a raw pointer to work around an
MSVC's RefPtr compilation error. We should use smart pointers for
local variables.

This seems a MSVC bug that the class template argument deduction
doesn't work in this case. Explicitly specifying a class template
argument is a workaround.

  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):
Changed the type of the local variable 'parent' from a raw pointer
to RefPtr<Element>.

2:13 PM Changeset in webkit [288912] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Use more AtomString and un-inline code for ScriptElementCachedScriptFetcher and its subclasses
​https://bugs.webkit.org/show_bug.cgi?id=235919
<rdar://problem/88338714>

Address Darin's review comment. nonce in LoadableClassicScript's constructor should also have been
converted to AtomString in r288900.

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::LoadableClassicScript):

  • dom/LoadableClassicScript.h:
1:51 PM Changeset in webkit [288911] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Fix infinate retry on PR with red ToT
​https://bugs.webkit.org/show_bug.cgi?id=235971
<rdar://problem/88344438>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.analyzeResults): Update message for PRs,
do not retry if base commit has failed to build.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Only send
emails for patch failures.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246651@main

1:30 PM Changeset in webkit [288910] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288897. rdar://problem/87651247

[Cocoa] "index 0 out of bounds" exception in AVTrackPrivateAVFObjCImpl::videoTrackConfiguration()
​https://bugs.webkit.org/show_bug.cgi?id=235918
<rdar://87651247>

Reviewed by Eric Carlson.

Crash data shows a rare exception thrown from inside a static method formatDescriptionFor()
in AVTrackPrivateAVFObjCImpl. The method first queries whether the .formatDescriptions
NSArray property is queryable, then for its count, then retrieves the first object in the
array. It's possible that the array is mutated on a background thread between the count
check and when the first object is retrieved.

To eliminate the possibility that the property is mutated between queries, pull the value
into a RetainPtr and run the query on that retained object. Use -[NSArray firstObject]
rather than -objectAtIndex:0, as the former will return nil if the -count is 0, while the
latter will throw an exception. To guard against the possibility that the
CMFormatDescriptionRef will go out of scope after the return, return the format description
itself wrapped in a RetainPtr as well.

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: (WebCore::formatDescriptionFor): (WebCore::AVTrackPrivateAVFObjCImpl::codec const): (WebCore::AVTrackPrivateAVFObjCImpl::colorSpace const): (WebCore::AVTrackPrivateAVFObjCImpl::sampleRate const): (WebCore::AVTrackPrivateAVFObjCImpl::numberOfChannels const):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:30 PM Changeset in webkit [288909] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288844. rdar://problem/88241768

[macOS][WP] Add required syscall
​https://bugs.webkit.org/show_bug.cgi?id=235901
<rdar://88241768>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288844 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:09 PM Changeset in webkit [288908] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall
​https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Brent Fulgham.

Follow-up fix after r288750. Only allow syscall on older OS versions.

  • WebProcess/com.apple.WebProcess.sb.in:
1:06 PM Changeset in webkit [288907] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Refactor KeyframesRuleMap to use AtomString for the key
​https://bugs.webkit.org/show_bug.cgi?id=235962

Reviewed by Antti Koivisto.

It was noted during review of ​https://bugs.webkit.org/show_bug.cgi?id=229437 that we
ought to use an AtomString instead of an AtomStringImpl* as a key for m_keyframesRuleMap.

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::addKeyframeStyle):
(WebCore::Style::Resolver::isAnimationNameValid):
(WebCore::Style::Resolver::keyframeRulesForName const):

  • style/StyleResolver.h:
12:34 PM Changeset in webkit [288906] by Antti Koivisto
  • 9 edits in trunk

[CSS Container Queries] Ensure query containers have valid layout before resolving the subtree
​https://bugs.webkit.org/show_bug.cgi?id=235896

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:

Source/WebCore:

To resolve container queries we need to have up-to-date layout for the query containers before
style resolution advances to their descendants.

With this patch we bounce between style resolution and layout until all query containers are resolved.

  • dom/Document.cpp:

(WebCore::Document::resolveStyle):

Loop style resolution/render tree update/layout until we have resolved everything.

  • dom/Document.h:

(WebCore::Document::isResolvingContainerQueries const):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layout):
(WebCore::FrameViewLayoutContext::runOrScheduleAsynchronousTasks):

Don't run post-layout tasks when resolving query containers.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::updateQueryContainer):

Track what has been resolved.

(WebCore::Style::TreeResolver::resolve):

  • style/StyleTreeResolver.h:

(WebCore::Style::TreeResolver::hasUnresolvedQueryContainers const):

  • style/StyleUpdate.h:

(WebCore::Style::Update::isEmpty const):

12:32 PM Changeset in webkit [288905] by Pablo Saavedra
  • 6 edits in trunk/Source

[GTK][WPE] Fixes for non-unified builds after r288807 and r288820
​https://bugs.webkit.org/show_bug.cgi?id=235956

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/FunctionHasExecutedCache.h:

Source/WebCore:

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::rejectWithFetchError):

Source/WTF:

  • wtf/GenericHashKey.h:
11:59 AM WebKitFlatpakSDK/SpeedUpBuild edited by Philippe Normand
(diff)
11:59 AM Changeset in webkit [288904] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.0-branch/Source/WebCore

Cherry-pick r288897. rdar://problem/87651247

[Cocoa] "index 0 out of bounds" exception in AVTrackPrivateAVFObjCImpl::videoTrackConfiguration()
​https://bugs.webkit.org/show_bug.cgi?id=235918
<rdar://87651247>

Reviewed by Eric Carlson.

Crash data shows a rare exception thrown from inside a static method formatDescriptionFor()
in AVTrackPrivateAVFObjCImpl. The method first queries whether the .formatDescriptions
NSArray property is queryable, then for its count, then retrieves the first object in the
array. It's possible that the array is mutated on a background thread between the count
check and when the first object is retrieved.

To eliminate the possibility that the property is mutated between queries, pull the value
into a RetainPtr and run the query on that retained object. Use -[NSArray firstObject]
rather than -objectAtIndex:0, as the former will return nil if the -count is 0, while the
latter will throw an exception. To guard against the possibility that the
CMFormatDescriptionRef will go out of scope after the return, return the format description
itself wrapped in a RetainPtr as well.

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: (WebCore::formatDescriptionFor): (WebCore::AVTrackPrivateAVFObjCImpl::codec const): (WebCore::AVTrackPrivateAVFObjCImpl::colorSpace const): (WebCore::AVTrackPrivateAVFObjCImpl::sampleRate const): (WebCore::AVTrackPrivateAVFObjCImpl::numberOfChannels const):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:56 AM Changeset in webkit [288903] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288897. rdar://problem/87651247

[Cocoa] "index 0 out of bounds" exception in AVTrackPrivateAVFObjCImpl::videoTrackConfiguration()
​https://bugs.webkit.org/show_bug.cgi?id=235918
<rdar://87651247>

Reviewed by Eric Carlson.

Crash data shows a rare exception thrown from inside a static method formatDescriptionFor()
in AVTrackPrivateAVFObjCImpl. The method first queries whether the .formatDescriptions
NSArray property is queryable, then for its count, then retrieves the first object in the
array. It's possible that the array is mutated on a background thread between the count
check and when the first object is retrieved.

To eliminate the possibility that the property is mutated between queries, pull the value
into a RetainPtr and run the query on that retained object. Use -[NSArray firstObject]
rather than -objectAtIndex:0, as the former will return nil if the -count is 0, while the
latter will throw an exception. To guard against the possibility that the
CMFormatDescriptionRef will go out of scope after the return, return the format description
itself wrapped in a RetainPtr as well.

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: (WebCore::formatDescriptionFor): (WebCore::AVTrackPrivateAVFObjCImpl::codec const): (WebCore::AVTrackPrivateAVFObjCImpl::colorSpace const): (WebCore::AVTrackPrivateAVFObjCImpl::sampleRate const): (WebCore::AVTrackPrivateAVFObjCImpl::numberOfChannels const):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288897 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:16 AM Changeset in webkit [288902] by Ben Nham
  • 6 edits
    9 adds in trunk

Import APSConnection-related SPI
​https://bugs.webkit.org/show_bug.cgi?id=235856

Reviewed Youenn Fablet.

Source/WebKit:

This imports the SPI declarations necessary to build against ApplePushService in WebKit. It
also includes a PushServiceConnection interface that can sit in front of APSConnection, and
a fake interface that will be fleshed out for testing purposes.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/Cocoa/ApplePushServiceSPI.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • webpushd/ApplePushServiceConnection.h: Added.
  • webpushd/ApplePushServiceConnection.mm: Added.

(-[_WKAPSConnectionDelegate initWithConnection:]):
(-[_WKAPSConnectionDelegate connection:didReceivePublicToken:]):
(-[_WKAPSConnectionDelegate connection:didReceiveIncomingMessage:]):
(WebPushD::ApplePushServiceConnection::ApplePushServiceConnection):
(WebPushD::makeTokenInfo):
(WebPushD::ApplePushServiceConnection::subscribe):
(WebPushD::ApplePushServiceConnection::unsubscribe):
(WebPushD::ApplePushServiceConnection::enabledTopics):
(WebPushD::ApplePushServiceConnection::ignoredTopics):
(WebPushD::ApplePushServiceConnection::opportunisticTopics):
(WebPushD::ApplePushServiceConnection::nonWakingTopics):
(WebPushD::ApplePushServiceConnection::setEnabledTopics):
(WebPushD::ApplePushServiceConnection::setIgnoredTopics):
(WebPushD::ApplePushServiceConnection::setOpportunisticTopics):
(WebPushD::ApplePushServiceConnection::setNonWakingTopics):
(WebPushD::ApplePushServiceConnection::setTopicLists):

  • webpushd/MockPushServiceConnection.h: Added.
  • webpushd/MockPushServiceConnection.mm: Added.

(WebPushD::MockPushServiceConnection::MockPushServiceConnection):
(WebPushD::MockPushServiceConnection::subscribe):
(WebPushD::MockPushServiceConnection::unsubscribe):
(WebPushD::MockPushServiceConnection::enabledTopics):
(WebPushD::MockPushServiceConnection::ignoredTopics):
(WebPushD::MockPushServiceConnection::opportunisticTopics):
(WebPushD::MockPushServiceConnection::nonWakingTopics):
(WebPushD::MockPushServiceConnection::setEnabledTopics):
(WebPushD::MockPushServiceConnection::setIgnoredTopics):
(WebPushD::MockPushServiceConnection::setOpportunisticTopics):
(WebPushD::MockPushServiceConnection::setNonWakingTopics):
(WebPushD::MockPushServiceConnection::setTopicLists):

  • webpushd/PushServiceConnection.h: Added.
  • webpushd/PushServiceConnection.mm: Added.

(WebPushD::PushServiceConnection::startListeningForPushMessages):
(WebPushD::PushServiceConnection::didReceivePushMessage):

Source/WTF:

Add a HAVE macro to guard some of the newer SPI in APSConnection.

  • wtf/PlatformHave.h:

WebKitLibraries:

Add an ApplePushService stub so we can build against it with public SDKs.

  • WebKitPrivateFrameworkStubs/iOS/15/ApplePushService.framework/ApplePushService.tbd: Added.
11:14 AM Changeset in webkit [288901] by commit-queue@webkit.org
  • 10 edits in trunk

Unreviewed, reverting r288538.
​https://bugs.webkit.org/show_bug.cgi?id=235968

Array#groupBy name has web-compat issue
<​https://github.com/tc39/proposal-array-grouping/issues/37>

Reverted changeset:

"[JSC] Enable Array#groupBy and Array#groupByToMap"
​https://bugs.webkit.org/show_bug.cgi?id=235549
​https://commits.webkit.org/r288538

11:12 AM Changeset in webkit [288900] by rniwa@webkit.org
  • 10 edits in trunk/Source/WebCore

Use more AtomString and un-inline code for ScriptElementCachedScriptFetcher and its subclasses
​https://bugs.webkit.org/show_bug.cgi?id=235919

Reviewed by Darin Adler.

Use more AtomString and moved code from header files to cpp files where appropriate.

  • dom/InlineClassicScript.cpp:

(WebCore::InlineClassicScript::InlineClassicScript):

  • dom/InlineClassicScript.h:
  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::create):
(WebCore::LoadableClassicScript::LoadableClassicScript):

  • dom/LoadableClassicScript.h:
  • dom/LoadableModuleScript.cpp:

(WebCore::LoadableModuleScript::create):
(WebCore::LoadableModuleScript::LoadableModuleScript):

  • dom/LoadableModuleScript.h:
  • dom/LoadableScript.h:

(WebCore::LoadableScript::LoadableScript):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::ScriptElement): Call document() and scriptableDocumentParser() once.
(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):

  • dom/ScriptElementCachedScriptFetcher.h:

(WebCore::ScriptElementCachedScriptFetcher::ScriptElementCachedScriptFetcher):

11:11 AM Changeset in webkit [288899] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r288746.
​https://bugs.webkit.org/show_bug.cgi?id=235967

Caused a 5% Speedometer-2 - jQuery-TodoMVC regression.

Reverted changeset:

"Enable inert attribute feature flag"
​https://bugs.webkit.org/show_bug.cgi?id=235668
​https://commits.webkit.org/r288746

11:09 AM Changeset in webkit [288898] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

Protect NetworkConnectionToWebProcess::createFetchTask from a null service worker connection
​https://bugs.webkit.org/show_bug.cgi?id=235878
<rdar://87785042>

Reviewed by Chris Dumez.

After ​https://bugs.webkit.org/show_bug.cgi?id=234179, there is no guarantee that we have a SWServer/SWServerConnection per session ID.
This is only guaranteed if there is a corresponding network session.
We add null pointer checks to NetworkConnectionToWebProcess::swConnection() which now returns a pointer.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::createFetchTask):
(WebKit::NetworkConnectionToWebProcess::swConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::softUpdateIfNeeded):

11:03 AM Changeset in webkit [288897] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] "index 0 out of bounds" exception in AVTrackPrivateAVFObjCImpl::videoTrackConfiguration()
​https://bugs.webkit.org/show_bug.cgi?id=235918
<rdar://87651247>

Reviewed by Eric Carlson.

Crash data shows a rare exception thrown from inside a static method formatDescriptionFor()
in AVTrackPrivateAVFObjCImpl. The method first queries whether the .formatDescriptions
NSArray property is queryable, then for its count, then retrieves the first object in the
array. It's possible that the array is mutated on a background thread between the count
check and when the first object is retrieved.

To eliminate the possibility that the property is mutated between queries, pull the value
into a RetainPtr and run the query on that retained object. Use -[NSArray firstObject]
rather than -objectAtIndex:0, as the former will return nil if the -count is 0, while the
latter will throw an exception. To guard against the possibility that the
CMFormatDescriptionRef will go out of scope after the return, return the format description
itself wrapped in a RetainPtr as well.

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::formatDescriptionFor):
(WebCore::AVTrackPrivateAVFObjCImpl::codec const):
(WebCore::AVTrackPrivateAVFObjCImpl::colorSpace const):
(WebCore::AVTrackPrivateAVFObjCImpl::sampleRate const):
(WebCore::AVTrackPrivateAVFObjCImpl::numberOfChannels const):

10:37 AM Changeset in webkit [288896] by commit-queue@webkit.org
  • 11 edits
    1 delete in trunk

[WebXR] Handle changes in XRSession's visibility state
​https://bugs.webkit.org/show_bug.cgi?id=235898

Patch by Ada Chan <​ada.chan@apple.com> on 2022-02-01
Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Update expectation with passing results.

  • web-platform-tests/webxr/xrSession_visibilityState.https-expected.txt:

Source/WebCore:

Add a new method in WebXRSession for handling visibility state updates.
When the session regains visibility and there are pending frame update
requests, trigger a frame request. Also dispatch a visibilitychange
event when the visibility state changes.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::updateSessionVisibilityState):
(WebCore::WebXRSession::onFrame):
Bail early if the visibility state is hidden.

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/XRVisibilityState.h:
  • platform/xr/PlatformXR.h:
  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::setVisibilityState):
(WebCore::WebFakeXRDevice::simulateVisibilityChange):

  • testing/WebFakeXRDevice.h:

LayoutTests:

Unskip xrSession_visibilityState.https.html

  • platform/mac/imported/w3c/web-platform-tests/webxr/xrSession_visibilityState.https-expected.txt: Removed.
10:36 AM Changeset in webkit [288895] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Cherry-pick r288844. rdar://problem/88241768

[macOS][WP] Add required syscall
​https://bugs.webkit.org/show_bug.cgi?id=235901
<rdar://88241768>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288844 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:34 AM Changeset in webkit [288894] by eric.carlson@apple.com
  • 39 edits in trunk

[macOS] Expose screen and window capture state to WKWebView
​https://bugs.webkit.org/show_bug.cgi?id=235838
<rdar://problem/88207924>

Reviewed by Youenn Fablet.

Source/WebCore:

Updated GetDisplayMediaWindowAndScreen API test.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::toMediaDeviceInfoKind): Add SystemAudio.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::sourceCaptureState): Differentiate state of window and screen capture tracks.
(WebCore::MediaStreamTrack::updateToPageMutedState): New.
(WebCore::trackTypeForMediaProducerCaptureKind):
(WebCore::trackMatchesKind): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::mediaStreamDidFail): Include new source types.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTrack): Ditto.
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):

  • page/MediaProducer.h:
  • platform/mediarecorder/MediaRecorderPrivate.cpp:

(WebCore::MediaRecorderPrivate::selectTracks): Include new track types.

  • platform/mediastream/CaptureDevice.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::create): Ditto.

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::captureDeviceWithPersistentID): Ditto.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState): Update with new and changed type names.
(WebCore::Internals::stopObservingRealtimeMediaSource): Include new track types.
(WebCore::Internals::observeMediaStreamTrack): Ditto.

Source/WebKit:

  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState): Rename *DisplayCaptureDevice to *ScreenCaptureDevice. Add enums
for window capture.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h: Drive by: fix typo in header doc.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setMicrophoneCaptureState:completionHandler:]): MediaProducerMediaCaptureKind::Audio
was renamed to MediaProducerMediaCaptureKind::Microphone.
(-[WKWebView setCameraCaptureState:completionHandler:]): MediaProducerMediaCaptureKind::Video
was renamed to MediaProducerMediaCaptureKind::Camera.
(-[WKWebView _stopMediaCapture]): stopMediaCapture takes an optionSet.
(-[WKWebView _displayCaptureSurfaces]): Expose the type(s) of displays surfaces
being captured.
(-[WKWebView _displayCaptureState]): Expose the display capture state.
(-[WKWebView _systemAudioCaptureState]): Expose the system audio capture state.
(-[WKWebView _setDisplayCaptureState:completionHandler:]): Change the display
capture state.
(-[WKWebView _setSystemAudioCaptureState:completionHandler:]): Change the system
audio capture state.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewMediaCaptureStateDidChange): MediaProducer::AudioCaptureMask ->
MediaProducer::MicrophoneCaptureMask.
(webkitWebViewConfigureMediaCapture): Update for MediaProducerMediaCaptureKind changes.
(webkit_web_view_set_microphone_capture_state): Ditto.
(webkit_web_view_set_camera_capture_state): MediaProducerMediaCaptureKind::Video ->
MediaProducerMediaCaptureKind::Camera
(webkit_web_view_set_display_capture_state): Ditto.
(webkit_web_view_get_display_capture_state): MediaState::HasActiveDisplayCaptureDevice ->
MediaState::HasActiveScreenCaptureDevice. MediaState::HasMutedDisplayCaptureDevice ->
MediaState::HasMutedScreenCaptureDevice

  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::displayCaptureWillChange): KVO support.
(WebKit::PageClientImplCocoa::displayCaptureSurfacesWillChange): Ditto.
(WebKit::PageClientImplCocoa::systemAudioCaptureWillChange): Ditto.
(WebKit::PageClientImplCocoa::displayCaptureChanged): Ditto.
(WebKit::PageClientImplCocoa::displayCaptureSurfacesChanged): Ditto.
(WebKit::PageClientImplCocoa::systemAudioCaptureChanged): Ditto.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy): Support new types.
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::~SourceProxy): Ditto.
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): Ditto.

  • UIProcess/PageClient.h:

(WebKit::PageClient::displayCaptureWillChange):
(WebKit::PageClient::displayCaptureSurfacesWillChange):
(WebKit::PageClient::systemAudioCaptureWillChange):
(WebKit::PageClient::displayCaptureChanged):
(WebKit::PageClient::displayCaptureSurfacesChanged):
(WebKit::PageClient::systemAudioCaptureChanged):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
MediaProducerMediaCaptureKind::AudioVideo -> MediaProducerMediaCaptureKind::EveryKind.
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateReportedMediaCaptureState): Deal with new types.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::checkDocumentsCaptureStateConsistency):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMediaWindowAndScreen.mm:

(-[DisplayCaptureObserver observeValueForKeyPath:ofObject:change:context:]):
(-[DisplayCaptureObserver waitForDisplayCaptureState:]):
(-[DisplayCaptureObserver waitForDisplayCaptureSurfaces:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/glib/TestExpectations.json: Skip /webkit/WebKitWebView/display-usermedia-permission-request

until someone has a chance to figure out why it times out.

LayoutTests:

  • fast/mediastream/get-display-media-muted.html: Update for new and renamed states.
  • fast/mediastream/media-stream-page-muted-expected.txt: Ditto.
  • fast/mediastream/media-stream-page-muted.html: Ditto.
10:29 AM Changeset in webkit [288893] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.2

10:28 AM Changeset in webkit [288892] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.2

10:18 AM Changeset in webkit [288891] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

null ptr deref in LayoutIntegrationLineLayout LineLayout::adjustForPagination and LineLayout::visualOverflowBoundingBoxRectFor
​https://bugs.webkit.org/show_bug.cgi?id=235907

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-02-01
Reviewed by Antti Koivisto.

Source/WebCore:

m_inlineContent could become nullptr (such as after calling LineLayout::clearInlineContent())
so we add these nullptr checks to protect against an nullptr deref, in a similar way to
how it's done in the other methods.

Test: fast/layoutformattingcontext/visual-overflow-bounding-box-rect-crash.html

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
(WebCore::LayoutIntegration::LineLayout::visualOverflowBoundingBoxRectFor const):

LayoutTests:

  • fast/layoutformattingcontext/visual-overflow-bounding-box-rect-crash-expected.txt: Added.
  • fast/layoutformattingcontext/visual-overflow-bounding-box-rect-crash.html: Added.
9:52 AM Changeset in webkit [288890] by Russell Epstein
  • 7 edits in branches/safari-614.1.2-branch/Source

Cherry-pick r288870. rdar://problem/88318960

Revert OSAllocator behavior to pre-Structure-Allocator change one
​https://bugs.webkit.org/show_bug.cgi?id=235940

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • jit/ExecutableAllocator.cpp: (JSC::initializeJITPageReservation):

Source/WTF:

Before r288815, OSAllocator::reserveAndCommit can fail only for executable memory.

if (result == MAP_FAILED) {

if (executable)

result = 0;

else

CRASH();

}

However, after r288815, this behavior was changed.

Before r288815,

  1. ExecutableAllocator uses PageReservation::reserveWithGuardPages / PageReservation::reserve / PageReservation::reserveAndCommitWithGuardPages to reserve memory.
  2. In ARM64 macOS, we use PageReservation::reserveWithGuardPages.
  3. PageReservation::reserveWithGuardPages uses OSAllocator::reserveUncommitted.
  4. OSAllocator::reserveUncommitted used OSAllocator::reserveAndCommit internally before r288815.
  5. OSAllocator::reserveAndCommit can fail for executable memory.

But after r288815,

  1. PageReservation::reserveWithGuardPages uses OSAllocator::reserveUncommitted
  2. OSAllocator::reserveUncommitted now uses OSAllocator::tryReserveUncommitted and crash if it fails.

Thus, r288815 changed the behavior of OSAllocator::reserveUncommitted for executable memory. This is causing a crash when we failed to
allocate JIT memory. And probably, it is happening in SIP-enabled root-installing environment.

In this patch,

  1. Accepting failure only for executable memory is ugly hack. We should add PageReservation::tryReserveWithGuardPages.
  2. In PageReservation::tryReserveWithGuardPages we should use OSAllocator::tryReserveUncommitted.

So, this patch reverts the behavior back to pre-r288815 state.
We also fix a bug in tryReserveUncommitted where it handles MAP_FAILED incorrectly. We should not return MAP_FAILED from OSAllocator, instead,
we should return nullptr.

  • wtf/OSAllocator.h:
  • wtf/PageReservation.h: (WTF::PageReservation::tryReserve): (WTF::PageReservation::tryReserveWithGuardPages): (WTF::PageReservation::tryReserveAndCommitWithGuardPages):
  • wtf/posix/OSAllocatorPOSIX.cpp: (WTF::OSAllocator::tryReserveAndCommit): (WTF::OSAllocator::tryReserveUncommitted): (WTF::OSAllocator::reserveAndCommit): (WTF::tryReserveAndCommit): Deleted. (WTF::tryReserveUncommitted): Deleted.
  • wtf/win/OSAllocatorWin.cpp: (WTF::OSAllocator::tryReserveUncommitted): (WTF::OSAllocator::reserveUncommitted): (WTF::OSAllocator::tryReserveAndCommit): (WTF::OSAllocator::reserveAndCommit):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288870 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:52 AM Changeset in webkit [288889] by Russell Epstein
  • 2 edits in branches/safari-614.1.2-branch/Source/WebKit

Cherry-pick r288860. rdar://problem/88081007

[iOS] Clean up some issues in the 'com.apple.WebKit.adattributiond.sb' sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235929
<rdar://88081007>

Patch by Brent Fulgham <Brent Fulgham> on 2022-01-31
Reviewed by Alex Christensen.

Revise a few syntax issues in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288860 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:45 AM Changeset in webkit [288888] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.3

Tag Safari-614.1.1.3.

9:44 AM Changeset in webkit [288887] by Russell Epstein
  • 2 edits in branches/safari-614.1.1-branch/Source/WebKit

Cherry-pick r288860. rdar://problem/88081007

[iOS] Clean up some issues in the 'com.apple.WebKit.adattributiond.sb' sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235929
<rdar://88081007>

Patch by Brent Fulgham <Brent Fulgham> on 2022-01-31
Reviewed by Alex Christensen.

Revise a few syntax issues in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288860 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:41 AM Changeset in webkit [288886] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.3

9:33 AM Changeset in webkit [288885] by mark.lam@apple.com
  • 10 edits in trunk/Source

Enhance sanitizeStackForVM() to assist with crash analysis.
​https://bugs.webkit.org/show_bug.cgi?id=235752
rdar://81014601

Reviewed by Michael Saboff.

Source/JavaScriptCore:

  1. Remove the AssemblyHelpers version of sanitizeStack. Instead, make the 3 JIT operation functions call sanitizeStackForVM() instead. This ensures that sanitizeStack crashes are not obscured as generic JIT crashes.
  1. Add sanity check RELEASE_ASSERTs to VM::setLastStackTop() with a capture of the relevant variables for crash analysis.
  1. Fix logSanitizeStack() so that it no longer relies on vm.topCallFrame. vm.topCallFrame may not be properly initialized at all the places that sanitizeStackForVM() is called.
  1. Add a JSLock check to sanitizeStackForVM(), and return early if not owned by the current thread. If the JSLock is not owned by the current thread, we can't rely on vm.lastStackTop() being a sane value. Hence, it's not possible to do stack sanitization correctly.

Add sanity check RELEASE_ASSERTs to sanitizeStackForVM() with a capture of
the relevant variables for crash analysis.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::sanitizeStackInline): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/ThunkGenerators.cpp:

(JSC::slowPathFor):

  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):
(JSC::JSLock::grabAllLocks):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::setLastStackTop):
(JSC::logSanitizeStack):
(JSC::sanitizeStackForVM):

  • runtime/VM.h:

Source/WTF:

  • wtf/Threading.h:

(WTF::Thread::savedStackPointerAtVMEntry const):
(WTF::Thread::savedLastStackTop const):
(WTF::Thread::savedStackPointerAtVMEntry): Deleted.
(WTF::Thread::savedLastStackTop): Deleted.

9:18 AM Changeset in webkit [288884] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer] Update flags in internal GStreamer source and sink elements
​https://bugs.webkit.org/show_bug.cgi?id=235871

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-01
Reviewed by Xabier Rodriguez-Calvar.

For custom source and sinks subclassing GstBin it's good practice to suppress SOURCE and
SINK flags and to keep the subclass flags as matching the element type.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed):

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):

  • platform/graphics/gstreamer/WebKitAudioSinkGStreamer.cpp:

(webKitAudioSinkConstructed):
(webkit_audio_sink_class_init):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcConstructed):

9:17 AM Changeset in webkit [288883] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GStreamer] Support for vpx in webrtc encoder
​https://bugs.webkit.org/show_bug.cgi?id=235870

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-02-01
Reviewed by Xabier Rodriguez-Calvar.

Add support for encoding to VP8 and VP9. The encoder is now available outside of the WebRTC
backend, so that it can potentially be auto-plugged (which will be useful for the
MediaRecorder support). In order to allow this metadata and pad templates were also added to
the element.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

  • platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp:

(webkit_webrtc_video_encoder_class_init):

8:53 AM Changeset in webkit [288882] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

Redefining @keyframes does not work
​https://bugs.webkit.org/show_bug.cgi?id=229437
<rdar://problem/82563372>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add a new test that reproduces the test content submitted with the bug report where
a <style> element containing a @keyframes rule with a given name is replaced with
another <style> element containing another @keyframes rule with the same name
but different keyframes. The test checks that the animation correctly uses the new
keyframes when querying the computed style.

We also get a fair few new PASS results on a ::marker animation test since that test
sets the textContent for a shared <style> element with generated @keyframes rules.

  • web-platform-tests/css/css-animations/animation-style-element-replaced-with-keyframes-rule-of-same-name-expected.txt: Added.
  • web-platform-tests/css/css-animations/animation-style-element-replaced-with-keyframes-rule-of-same-name.html: Added.
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:

Source/WebCore:

Notify the document upon insertion of a new @keyframes rule such that any running CSS Animation
using that rule name may update its computed keyframes.

Test: imported/w3c/web-platform-tests/css/css-animations/animation-style-element-replaced-with-keyframes-rule-of-same-name.html

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::addKeyframeStyle):

8:51 AM Changeset in webkit [288881] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

Animation from scale(0) has missing backing store
​https://bugs.webkit.org/show_bug.cgi?id=227733
<rdar://problem/80246192>

Reviewed by Simon Fraser.

Source/WebCore:

Use the style recorded before we applied animations to this element the last
time we resolved style for keyframes that don't set a value for the "transform"
property.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):

LayoutTests:

Add a new test which animates two squares, one on top of each other. The bottom square uses an animation
that has an explicit "from" value of scale(0) and an explicit "to" value of scale(1) and is black. The top
square uses an animation that has an explicit "from" value of scale(0) but no explicit "to" value, thus
animating to scale(1) as well, and is white, matching the background color.

The bug we are fixing is that the square with an implicit "to" value would not yield a visible animation
since we wouldn't account for the scale(1) target value and assuming we're never animating to a non-0
value.

This test assumes that both animations run at the same time and thus the white square will always cover
the black square (which is smaller to ensure no issues at the edges) and yield a completely white page.

  • webanimations/accelerated-transform-animation-from-scale-zero-and-implicit-to-kefyrame-expected.html: Added.
  • webanimations/accelerated-transform-animation-from-scale-zero-and-implicit-to-kefyrame.html: Added.
8:49 AM Changeset in webkit [288880] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Minor cleanup in RemoteLayerBackingStoreCollection
​https://bugs.webkit.org/show_bug.cgi?id=235936

Reviewed by Tim Horton.

Do time math once. Insert a blank line for clarity.

  • Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):

8:41 AM Changeset in webkit [288879] by Oriol Brufau
  • 5 edits
    2 adds in trunk

[css-cascade] Fix removal of not yet loaded CSS @import
​https://bugs.webkit.org/show_bug.cgi?id=235930

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add new test.

  • web-platform-tests/css/css-cascade/import-removal-expected.html: Added.
  • web-platform-tests/css/css-cascade/import-removal.html: Added.

Source/WebCore:

When removing a not yet loaded CSS @import, the hasPendingSheet() flag
was not cleared. This resulted in a completely blank page.
This patch makes sure to cancel the load before deleting the rule.

Test: imported/w3c/web-platform-tests/css/css-cascade/import-removal.html

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::cancelLoad):

  • css/StyleRuleImport.h:
  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::wrapperDeleteRule):

8:35 AM Changeset in webkit [288878] by Sam Sneddon
  • 6 edits in trunk/Tools

Migrate LayoutTestFinder tests from FileSystemMock to pyfakefs
​https://bugs.webkit.org/show_bug.cgi?id=235370
<rdar://problem/87785236>

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/init.py:

Register pyfakefs (last Python 2 supporting version).

  • Scripts/webkitpy/common/host_mock.py:

(MockHost.init):
Pass kwargs through to MockSystemHost.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_legacy_unittest.py:

(LayoutTestFinderTests):
(LayoutTestFinderTests.setUp):
Setup the MockHost with pyfakefs.
(LayoutTestFinderTests.test_find_glob_b):
Uncomment now we don't need to mitigate FileSystemMock bugs.
(LayoutTestFinderTests.test_find_glob_c):
Uncomment now we don't need to mitigate FileSystemMock bugs.
(LayoutTestFinderTests.test_is_w3c_resource_file):
Ensure the directory exists before writing.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RebaselineTest.test_reset_results):
Call fs.clear_written_files before test.
(RebaselineTest.test_missing_results):
Call fs.clear_written_files before test.
(RebaselineTest.test_new_baseline):
Call fs.clear_written_files before test.

  • Scripts/webkitpy/port/test.py:

(add_unit_tests_to_mock_filesystem):
Fix this with the real FileSystem class, conditionally deleting files. Remove mock-only
fs.clear_written_files call.

8:26 AM WebKitGTK/Debugging edited by Chris Lord
(diff)
8:11 AM Changeset in webkit [288877] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

RemoteRenderingBackendProxy should not be a IPC::MessageSender
​https://bugs.webkit.org/show_bug.cgi?id=235935

Reviewed by Wenson Hsieh.

Calling send() in RemoteRenderingBackendProxy fails to send a message to the GPU process,
because it has no connection(), only a StreamClientConnection or the GPUProcessConnection.

So make it not inherit from IPC::MessageSender. Code using send() now explicitly uses
ensureGPUProcessConnection().connection().

(WebKit::RemoteLayerBackingStore::setBufferVolatility):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::gpuProcessConnection):
(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::streamConnection):
(WebKit::RemoteRenderingBackendProxy::messageSenderConnection const): Deleted.
(WebKit::RemoteRenderingBackendProxy::messageSenderDestinationID const): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
7:51 AM Changeset in webkit [288876] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[BigSur+ wk2 Debug] webrtc/video-mute-vp8.html is a flaky failure
​https://bugs.webkit.org/show_bug.cgi?id=230359
<rdar://problem/83203317>

Unreviewed.

Test is no longer flaky on bots.

  • platform/mac-wk2/TestExpectations:
7:32 AM Changeset in webkit [288875] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Trigger embedded builders on pull-requests
​https://bugs.webkit.org/show_bug.cgi?id=235913
<rdar://problem/88290964>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/config.json: Pull-requests should trigger embedded builders.

Canonical link: ​https://commits.webkit.org/246627@main

7:12 AM Changeset in webkit [288874] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

AX: nullptr crash under AccessibilityRenderObject::computeAccessibilityIsIgnored
​https://bugs.webkit.org/show_bug.cgi?id=235945
rdar://88217815

Reviewed by Andres Gonzalez.

This is similar to ​https://bugs.webkit.org/show_bug.cgi?id=161276.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

m_renderer is a WeakPtr and can become null during parentObjectUnignored call, same as
the case below.

5:15 AM Changeset in webkit [288873] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GTK][WPE] Fix compile warning

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::atspiRole): Add AccessibilityRole::Model to switch.

4:29 AM Changeset in webkit [288872] by Carlos Garcia Campos
  • 21 edits
    3 adds
    6 deletes in trunk

[GTK][WPE] Switch to use ATSPI instead of ATK
​https://bugs.webkit.org/show_bug.cgi?id=235942

Reviewed by Adrian Perez de Castro.

.:

Use ATSPI by default.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

LayoutTests:

Update test expectations.

  • accessibility/aria-table-attributes.html:
  • accessibility/combo-box-collapsed-selection-changed.html:
  • accessibility/gtk/caret-browsing-select-focus-expected.txt:
  • accessibility/gtk/caret-browsing-select-focus.html:
  • accessibility/gtk/caret-browsing-text-focus-expected.txt: Removed.
  • accessibility/gtk/caret-browsing-text-focus.html: Removed.
  • accessibility/gtk/combobox-descendants-orientation-crash-expected.txt: Removed.
  • accessibility/gtk/combobox-descendants-orientation-crash.html: Removed.
  • accessibility/gtk/object-attributes-expected.txt:
  • accessibility/gtk/spans-paragraphs-and-divs-tree-expected.txt:
  • accessibility/menu-list-sends-change-notification.html:
  • platform/glib/TestExpectations:
  • platform/glib/accessibility/aria-combobox-expected.txt: Added.
  • platform/glib/accessibility/aria-combobox-hierarchy-expected.txt:
  • platform/glib/accessibility/aria-table-attributes-expected.txt: Removed.
  • platform/glib/accessibility/combo-box-collapsed-selection-changed-expected.txt: Added.
  • platform/glib/accessibility/content-editable-as-textarea-expected.txt:
  • platform/glib/accessibility/lists-expected.txt:
  • platform/glib/accessibility/menu-list-sends-change-notification-expected.txt: Removed.
  • platform/glib/accessibility/multiselect-list-reports-active-option-expected.txt: Added.
  • platform/glib/accessibility/svg-remote-element-expected.txt:
  • platform/glib/accessibility/table-attributes-expected.txt:
  • platform/glib/accessibility/table-one-cell-expected.txt:
  • platform/glib/accessibility/table-sections-expected.txt:
  • platform/glib/accessibility/transformed-element-expected.txt:
  • platform/gtk/TestExpectations:
2:32 AM Changeset in webkit [288871] by Carlos Garcia Campos
  • 14 edits
    2 adds in trunk/WebDriverTests

Unreviewed. Update W3C WebDriver imported tests.

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/bidi/client.py:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox_android.py:
  • imported/w3c/webdriver/tests/conftest.py:
  • imported/w3c/webdriver/tests/find_element_from_shadow_root/find.py:
  • imported/w3c/webdriver/tests/find_element_from_shadow_root/user_prompts.py:
  • imported/w3c/webdriver/tests/find_elements_from_shadow_root/find.py:
  • imported/w3c/webdriver/tests/find_elements_from_shadow_root/user_prompts.py:
  • imported/w3c/webdriver/tests/print/printcmd.py:
  • imported/w3c/webdriver/tests/support/asserts.py:
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/support/fixtures_bidi.py: Added.
  • imported/w3c/webdriver/tests/support/fixtures_http.py: Added.
2:26 AM Changeset in webkit [288870] by ysuzuki@apple.com
  • 7 edits in trunk/Source

Revert OSAllocator behavior to pre-Structure-Allocator change one
​https://bugs.webkit.org/show_bug.cgi?id=235940

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

Source/WTF:

Before r288815, OSAllocator::reserveAndCommit can fail only for executable memory.

if (result == MAP_FAILED) {

if (executable)

result = 0;

else

CRASH();

}

However, after r288815, this behavior was changed.

Before r288815,

  1. ExecutableAllocator uses PageReservation::reserveWithGuardPages / PageReservation::reserve / PageReservation::reserveAndCommitWithGuardPages to reserve memory.
  2. In ARM64 macOS, we use PageReservation::reserveWithGuardPages.
  3. PageReservation::reserveWithGuardPages uses OSAllocator::reserveUncommitted.
  4. OSAllocator::reserveUncommitted used OSAllocator::reserveAndCommit internally before r288815.
  5. OSAllocator::reserveAndCommit can fail for executable memory.

But after r288815,

  1. PageReservation::reserveWithGuardPages uses OSAllocator::reserveUncommitted
  2. OSAllocator::reserveUncommitted now uses OSAllocator::tryReserveUncommitted and crash if it fails.

Thus, r288815 changed the behavior of OSAllocator::reserveUncommitted for executable memory. This is causing a crash when we failed to
allocate JIT memory. And probably, it is happening in SIP-enabled root-installing environment.

In this patch,

  1. Accepting failure only for executable memory is ugly hack. We should add PageReservation::tryReserveWithGuardPages.
  2. In PageReservation::tryReserveWithGuardPages we should use OSAllocator::tryReserveUncommitted.

So, this patch reverts the behavior back to pre-r288815 state.
We also fix a bug in tryReserveUncommitted where it handles MAP_FAILED incorrectly. We should not return MAP_FAILED from OSAllocator, instead,
we should return nullptr.

  • wtf/OSAllocator.h:
  • wtf/PageReservation.h:

(WTF::PageReservation::tryReserve):
(WTF::PageReservation::tryReserveWithGuardPages):
(WTF::PageReservation::tryReserveAndCommitWithGuardPages):

  • wtf/posix/OSAllocatorPOSIX.cpp:

(WTF::OSAllocator::tryReserveAndCommit):
(WTF::OSAllocator::tryReserveUncommitted):
(WTF::OSAllocator::reserveAndCommit):
(WTF::tryReserveAndCommit): Deleted.
(WTF::tryReserveUncommitted): Deleted.

  • wtf/win/OSAllocatorWin.cpp:

(WTF::OSAllocator::tryReserveUncommitted):
(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::tryReserveAndCommit):
(WTF::OSAllocator::reserveAndCommit):

1:33 AM Changeset in webkit [288869] by ntim@apple.com
  • 18 edits
    2 deletes in trunk

Entirely remove support for -apple-trailing-word
​https://bugs.webkit.org/show_bug.cgi?id=234672

Reviewed by Simon Fraser.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

  • fast/text/trailing-word-detection-expected.txt: Removed.
  • fast/text/trailing-word-detection.html: Removed.
  • platform/glib/TestExpectations:
  • platform/win/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Jan 31, 2022:

11:44 PM Changeset in webkit [288868] by mmaxfield@apple.com
  • 59 edits in trunk/Source

Rename FontCascade::fontMetrics() and RenderStyle::fontMetrics() to fontMetricsOfPrimaryFont()
​https://bugs.webkit.org/show_bug.cgi?id=235938

Reviewed by Alan Bujtas.

Source/WebCore:

It's probably good to remind people that when they call this function,
they might not be getting what they might think they're getting.

No new tests because there is no behavior change.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::equalForLengthResolution):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxContent):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::fontMetricsOfPrimaryFont const):
(WebCore::Display::Style::fontMetrics const): Deleted.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::FontProxy::fontMetricsOfPrimaryFont const):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
(WebCore::CanvasRenderingContext2DBase::measureTextInternal):
(WebCore::CanvasRenderingContext2DBase::textOffset):
(WebCore::CanvasRenderingContext2DBase::FontProxy::fontMetrics const): Deleted.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawRulers):
(WebCore::InspectorOverlay::drawElementTitle):
(WebCore::expectedSizeForLayoutLabel):
(WebCore::drawLayoutLabel):

  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::initialLineHeight const):

  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::m_style):
(WebCore::Layout::InlineLevelBox::preferredLineHeight const):
(WebCore::Layout::InlineLevelBox::primaryfontMetricsOfPrimaryFont const):
(WebCore::Layout::InlineLevelBox::primaryFontMetrics const): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
(WebCore::Layout::LineBoxVerticalAligner::alignInlineLevelBoxes const):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::floatWidthForSimpleText const):
(WebCore::FontCascade::floatWidthForComplexText const):

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::fontMetricsOfPrimaryFont const):
(WebCore::FontCascade::fontMetrics const): Deleted.

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForEmptyElement):
(WebCore::computeCaretRectForBox):

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::paintMarkupBox):
(WebCore::LegacyEllipsisBox::nodeAtPoint):

  • rendering/LegacyInlineBox.cpp:

(WebCore::LegacyInlineBox::logicalHeight const):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::placeChildInlineBoxesInBlockDirection):
(WebCore::LegacyInlineFlowBox::placeBoxesInBlockDirection):

  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSnapAdjustment const):
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::inlineBlockBaseline const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustInitialLetterPosition):
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::setImageSizeForAltText):
(WebCore::RenderImage::paintReplaced):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):
(WebCore::RenderInline::baselinePosition const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::baselinePosition const):

  • rendering/RenderListBox.cpp:

(WebCore::itemOffsetForAlignment):
(WebCore::RenderListBox::itemHeight const):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::relativeMarkerRect):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::layoutBlock):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForeground):
(WebCore::TextBoxPainter::paintCompositionUnderline):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter::textOriginFromPaintRect const):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintBackgroundDecorations):
(WebCore::TextDecorationPainter::paintForegroundDecorations):
(WebCore::TextDecorationPainter::paintLineThrough):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):

  • rendering/line/LineInlineHeaders.h:

(WebCore::requiresLineBoxForContent):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::axisHeight):
(WebCore::toUserUnits):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::verticalParameters):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::verticalParameters const):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::verticalParameters const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::fontMetricsOfPrimaryFont const):
(WebCore::RenderStyle::computeLineHeight const):
(WebCore::RenderStyle::fontMetrics const): Deleted.

  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::positionForPoint):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::selectionRectForTextFragment const):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::calculateBoundaries const):
(WebCore::SVGInlineTextBox::nodeAtPoint):

  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphAdvanceAndOrientation const):

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::SVGTextMetrics):

  • rendering/svg/SVGTextQuery.cpp:

(WebCore::calculateGlyphBoundaries):

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS const):
(WebCore::SVGLengthContext::convertValueFromEXSToUserUnits const):

Source/WebKit:

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

Source/WebKitLegacy/mac:

  • WebView/WebImmediateActionController.mm:

(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):

9:47 PM Changeset in webkit [288867] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

Fix handling of access key events
​https://bugs.webkit.org/show_bug.cgi?id=234147
<rdar://problem/86320218>

Reviewed by David Kilzer.

Improve focus handling for HTMLElement-based elements to ensure accessKey events
are properly dispatched.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press): Ensure correct object is used after 'accessKeyAction'
is invoked.

  • dom/EventDispatcher.cpp:

(WebCore::callDefaultEventHandlersInBubblingOrder) Protect element during default
event bubbling.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::reportValidity): Ensure correct element is
used after focus event.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleAccessKey): Ensure correct object is used after
'accessKeyAction' is invoked.

8:32 PM Changeset in webkit [288866] by ddkilzer@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] get_num_free_bytes_for_each_heap_callback() is called with arg pointing to uninitialized stack memory
<​https://webkit.org/b/235931>
<rdar://problem/88303899>

Reviewed by Yusuke Suzuki.

  • libpas/src/libpas/pas_all_heaps.c:

(pas_all_heaps_get_num_free_bytes):

  • Initialize result stack variable to zero.
6:57 PM Changeset in webkit [288865] by Said Abou-Hallawa
  • 26 edits in trunk

[GPU Process] Pattern should hold SourceImage which can be converted to a NativeImage only when needed
​https://bugs.webkit.org/show_bug.cgi?id=232411
<rdar://problem/84998738>

Reviewed by Darin Adler.

Source/WebCore:

Make Pattern hold a SourceImage and add getters to retrieve a NativeImage
and an ImageBuffer. In these getters the SourceImage will either return
the current image source or get one from the other if needed.

  • html/canvas/CanvasPattern.cpp:

(WebCore::CanvasPattern::create):
(WebCore::CanvasPattern::CanvasPattern):

  • html/canvas/CanvasPattern.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createPattern):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildArrayForCanvasPattern):

  • platform/graphics/NativeImage.h:

Make NativeImage a thread-safe RefCounted and make its destruction happen
on the main thread. This is similar to what we do for ImageBuffer. And
the reason for this is the message handler in the GPUProcess may create
NativeImages on the main thread as the SourceImages for the Patterns of
the SetState item. These NativeImages will be deleted in the replaying
thread after applying the SetState item.

  • platform/graphics/Pattern.cpp:

(WebCore::Pattern::create):
(WebCore::Pattern::Pattern):

  • platform/graphics/Pattern.h:

(WebCore::Pattern::encode const):
(WebCore::Pattern::decode):
Add encoding and decoding mehods for Pattern which will be called from
SetState::encode() and SetState::decode().

  • platform/graphics/SourceImage.cpp:

(WebCore::SourceImage::nativeImage const):
(WebCore::SourceImage::imageBuffer const):
(WebCore::SourceImage::size const):
(WebCore::SourceImage::nativeImage): Deleted.
(WebCore::SourceImage::imageBuffer): Deleted.

  • platform/graphics/SourceImage.h:

Make SourceImage keep the image source it was created with. Get a temporary
image source if it is different from what is stored in m_imageVariant.

  • platform/graphics/cairo/PatternCairo.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetState::SetState):
(WebCore::DisplayList::SetState::apply):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::stateChange):
(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):
(WebCore::DisplayList::SetState::strokePatternParameters const): Deleted.
(WebCore::DisplayList::SetState::fillPatternParameters const): Deleted.
(WebCore::DisplayList::SetState::strokePatternImageIdentifier const): Deleted.
(WebCore::DisplayList::SetState::fillPatternImageIdentifier const): Deleted.
Simplify SetState by deleting the PatternData members. Replace these members
by the strokePattern and fillPattern since these patterns can be encoded
and decoded.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applySetStateItem):

  • platform/graphics/displaylists/DisplayListResourceHeap.h:

Add the helper LocalResourceHeap::getSourceImage() to be used by
applySetStateItem().

  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:

(WebCore::FETileSoftwareApplier::apply const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

Source/WebKit:

Add the helpers QualifiedResourceHeap::getSourceImage() and
RemoteResourceCache::cachedSourceImage() which will be used by
RemoteDisplayListRecorder::setState() to replace the
RenderingResourceIdentifier of the pattern's tileImage by an actual
SourceImage.

  • GPUProcess/graphics/QualifiedResourceHeap.h:

(WebKit::QualifiedResourceHeap::getSourceImage const):

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::setState):
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
(WebKit::RemoteDisplayListRecorder::setStateWithQualifiedIdentifiers): Deleted.

  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cachedSourceImage const):

  • GPUProcess/graphics/RemoteResourceCache.h:

LayoutTests:

Unskip layout tests for gpu process because they are fixed by this change.

  • gpu-process/TestExpectations:
6:43 PM Changeset in webkit [288864] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] Don't register undo actions in undoManager overridden by WKWebView client
​https://bugs.webkit.org/show_bug.cgi?id=235928
<rdar://problem/87192657>

Patch by Matt Gilligan <​matthew_gilligan@apple.com> on 2022-01-31
Reviewed by Tim Horton.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::registerEditCommand):
Use -[WKContentView undoManagerForWebView] rather than -undoManager to prevent registering
actions in an undo manager overridden by a WKWebView subclass. This ensures that all
actions are registered in the same manager. If the client has disabled groupsByEvent on the
overridden undoManager, this prevents an exception from being thrown due to registering
actions outside of an undo group.

5:57 PM Changeset in webkit [288863] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.2

Tag Safari-614.1.1.2.

5:56 PM Changeset in webkit [288862] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.2

5:30 PM Changeset in webkit [288861] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(288052?): editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html makes subsequent test fail, as DumpRenderTree compares to wrong expected result
​https://bugs.webkit.org/show_bug.cgi?id=235733

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Disabling test to verify cause of test failures.
5:19 PM Changeset in webkit [288860] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Clean up some issues in the 'com.apple.WebKit.adattributiond.sb' sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235929
<rdar://88081007>

Patch by Brent Fulgham <Brent Fulgham> on 2022-01-31
Reviewed by Alex Christensen.

Revise a few syntax issues in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
5:10 PM Changeset in webkit [288859] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Add to AXLogger the ability to log only from the specified thread.
​https://bugs.webkit.org/show_bug.cgi?id=235843
<rdar://problem/88211205>

Reviewed by Chris Fleizach.

No change in functionality, debugging code.

Determine whether to log messages for the invoking thread based on the
value of a static hardcoded variable. It makes figuring out the flow of
method calls and messages when you can log only from the main thread,
off the main thread, or the combination.

  • accessibility/AXLogger.cpp:

(WebCore::shouldLog):
(WebCore::AXLogger::AXLogger):
(WebCore::AXLogger::~AXLogger):
(WebCore::AXLogger::log):
(WebCore::AXLogger::add):
(WebCore::operator<<):

  • accessibility/AXLogger.h:
4:31 PM Changeset in webkit [288858] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.1

Tag Safari-613.1.16.1.1.

4:31 PM Changeset in webkit [288857] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.1

Tag Safari-613.1.16.0.1.

4:30 PM Changeset in webkit [288856] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Add remaining MacroAssemblerRISCV64 branching operations
​https://bugs.webkit.org/show_bug.cgi?id=235886

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-01-31
Reviewed by Yusuke Suzuki.

Provide MacroAssemblerRISCV64 implementations for the remaining
branching operations. When branching on non-overlow conditions, the
implementations remain pretty trivial. For the overflow condition,
a helper method is provided to cover different-sized operations as well
as operation-specific instruction sequences.

  • assembler/MacroAssemblerRISCV64.h:

(JSC::MacroAssemblerRISCV64::branchAdd32):
(JSC::MacroAssemblerRISCV64::branchAdd64):
(JSC::MacroAssemblerRISCV64::branchSub32):
(JSC::MacroAssemblerRISCV64::branchSub64):
(JSC::MacroAssemblerRISCV64::branchMul32):
(JSC::MacroAssemblerRISCV64::branchMul64):
(JSC::MacroAssemblerRISCV64::branchNeg32):
(JSC::MacroAssemblerRISCV64::branchNeg64):
(JSC::MacroAssemblerRISCV64::branchForArithmeticOverflow):

4:02 PM Changeset in webkit [288855] by Russell Epstein
  • 2 edits in branches/safari-614.1.2-branch/Source/JavaScriptCore

Cherry-pick r288854. rdar://problem/88299213

Try-reserving Structure heap after reserving all the other heaps including JIT heap
​https://bugs.webkit.org/show_bug.cgi?id=235922

Reviewed by Saam Barati.

Structure heap should be reserved after reserving all the other heaps including JIT heap.

  • runtime/InitializeThreading.cpp: (JSC::initialize):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288854 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:50 PM Changeset in webkit [288854] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Try-reserving Structure heap after reserving all the other heaps including JIT heap
​https://bugs.webkit.org/show_bug.cgi?id=235922

Reviewed by Saam Barati.

Structure heap should be reserved after reserving all the other heaps including JIT heap.

  • runtime/InitializeThreading.cpp:

(JSC::initialize):

3:29 PM Changeset in webkit [288853] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288829. rdar://problem/87402815

LineLayout::collectOverflow() should null check m_inlineContent
​https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::collectOverflow):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:29 PM Changeset in webkit [288852] by Russell Epstein
  • 8 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288652. rdar://problem/87169406

[WebAuthn] We should pass extensions to ASC if possible
​https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (authenticationExtensionsClientInputs):
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::toNSString): (WebKit::toASCExtensions): (WebKit::configureRegistrationRequestContext): (WebKit::configurationAssertionRequestContext):
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:29 PM Changeset in webkit [288851] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288095. rdar://problem/88286876

[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
​https://bugs.webkit.org/show_bug.cgi?id=235286

Reviewed by Antti Koivisto.

Source/WebCore:

When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").

Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): (WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts at the beginning of the run and ends right before at the last character.

LayoutTests:

  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
  • platform/ios/fast/text/basic/015-expected.txt: Progressions.
  • platform/mac/fast/text/basic/015-expected.txt:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288095 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:17 PM Changeset in webkit [288850] by Robert Jenner
  • 2 edits in branches/safari-613-branch/LayoutTests

Unreviewed test gardening, fix a bad merge (r288843)

  • platform/mac-wk2/TestExpectations:
3:11 PM Changeset in webkit [288849] by Megan Gardner
  • 4 edits in trunk

Collapsed ranges return zero rects in DocumentContext
​https://bugs.webkit.org/show_bug.cgi?id=235844

Reviewed by Tim Horton.

Source/WebKit:

Test: DocumentEditingContext.RectsRequestInContentEditableWithDivBreaks

When getting the DocumentContext for a line, followed by a blank line, the blank link will
be represented by a collapsed range. This is a result of the emitCharacter call from representNodeOffsetZero.
This possibly a bug, but rather than try and fix this issue within TextIterator itself, we are
mitigating this issue by instead of using the collapsed range and the resulting non-existent character rect,
using the caret bounding rect. This gives us a more accurate bounding rect for situations like
this that result in collapsed ranges. And this would cover all other situations that might result in
a collapsed range from TextIterator.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

3:04 PM Changeset in webkit [288848] by Patrick Angle
  • 2 edits in trunk/Source/WebKit

Web Inspector: [Cocoa] Crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange
​https://bugs.webkit.org/show_bug.cgi?id=235842

Reviewed by Timothy Hatcher.

Speculatively fix an occasional crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange by ensuring that
the WebInspectorUIProxy still exists before calling attachmentViewDidChange.

Currently we are sometimes crashing while attempting to m_objCAdapter.get(), which is the first use of a
member variable in WebInspectorUIProxy::attachmentViewDidChange. This retain pointer should never be able to
not exists, since it storing nil is a valid state. This points to the WebInspectorUIProxy itself no longer
existing. The fix is to check that we actually have a WebInspectorUIProxy before calling
attachmentViewDidChange. This is also just good practice since WebPageProxy::inspector() is also able to
return nullptr under certain circumstances, and all other calls to it are guarded to check if the
WebInspectorUIProxy is still around first.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setInspectorAttachmentView):

2:52 PM Changeset in webkit [288847] by Said Abou-Hallawa
  • 12 edits in trunk/Source/WebKit

[GPU Process] Remove the resource use counters from the remote resource cache
​https://bugs.webkit.org/show_bug.cgi?id=235636

Reviewed by Simon Fraser.

The display list items and the resource management messages are both
communicated from the WebProcess and the GPUProcess through the stream
connection. The resources will be sent to the GPUProcess, consumed by
the display items and then released in the right order. So there is no
need anymore for the resource use counters.

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::setStateWithQualifiedIdentifiers):
(WebKit::RemoteDisplayListRecorder::clipToImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawGlyphsWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawNativeImageWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawPatternWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::releaseRemoteResource):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::cacheFont):
(WebKit::RemoteResourceCache::releaseRemoteResource):
(WebKit::RemoteResourceCache::ensureResourceUseCounter): Deleted.
(WebKit::RemoteResourceCache::maybeRemoveResource): Deleted.
(WebKit::RemoteResourceCache::recordResourceUse): Deleted.
(WebKit::RemoteResourceCache::updateHasActiveDrawables): Deleted.

  • GPUProcess/graphics/RemoteResourceCache.h:

(WebKit::RemoteResourceCache::hasActiveDrawables const):
(): Deleted.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
(WebKit::RemoteRenderingBackendProxy::recordNativeImageUse): Deleted.
(WebKit::RemoteRenderingBackendProxy::recordFontUse): Deleted.
(WebKit::RemoteRenderingBackendProxy::recordImageBufferUse): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::cacheImageBuffer):
(WebKit::RemoteResourceCacheProxy::cachedImageBuffer const):
(WebKit::RemoteResourceCacheProxy::releaseImageBuffer):
(WebKit::RemoteResourceCacheProxy::recordImageBufferUse):
(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
(WebKit::RemoteResourceCacheProxy::recordFontUse):
(WebKit::RemoteResourceCacheProxy::releaseNativeImage):
(WebKit::RemoteResourceCacheProxy::clearNativeImageMap):
(WebKit::RemoteResourceCacheProxy::releaseAllRemoteFonts):
(WebKit::RemoteResourceCacheProxy::finalizeRenderingUpdateForFonts):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
2:36 PM Changeset in webkit [288846] by Robert Jenner
  • 2 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://problem/86037417

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Temporarily disabling this test.
2:24 PM Changeset in webkit [288845] by Robert Jenner
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

Revert "WindowServer returned not alive with context:,unresponsive work processor(s)"

This reverts commit ce81b19378b9a6f103bd3b4a8d126f9a10e49db1.

2:13 PM Changeset in webkit [288844] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall
​https://bugs.webkit.org/show_bug.cgi?id=235901
<rdar://88241768>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:
2:06 PM Changeset in webkit [288843] by Robert Jenner
  • 2 edits in branches/safari-613-branch/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://86037417

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2022-01-25

  • platform/mac-wk2/TestExpectations: Temporarily disabling test.
2:02 PM Changeset in webkit [288842] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.0-branch/Source/WebCore

Cherry-pick r288829. rdar://problem/87402815

LineLayout::collectOverflow() should null check m_inlineContent
​https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::collectOverflow):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:01 PM Changeset in webkit [288841] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288829. rdar://problem/87402815

LineLayout::collectOverflow() should null check m_inlineContent
​https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::collectOverflow):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:37 PM Changeset in webkit [288840] by rniwa@webkit.org
  • 8 edits
    2 deletes in trunk

Delete runtime flag for subresource integrity
​https://bugs.webkit.org/show_bug.cgi?id=235876

Reviewed by Darin Adler.

Source/WebCore:

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • html/HTMLLinkElement.idl:
  • html/HTMLScriptElement.idl:

Source/WTF:

Deleted the runtime flag.

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

Deleted the test which was testing the behavior of WebKit when subresource integrity is disabled.

  • http/tests/subresource-integrity/sri-disabled-with-setting-expected.txt: Removed.
  • http/tests/subresource-integrity/sri-disabled-with-setting.html: Removed.
1:17 PM Changeset in webkit [288839] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.3

1:15 PM Changeset in webkit [288838] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Fix offlineasm lowering of arithmetic branch instructions with address destinations
​https://bugs.webkit.org/show_bug.cgi?id=235887

Patch by Zan Dobersek <​zdobersek@igalia.com> on 2022-01-31
Reviewed by Yusuke Suzuki.

Fix lowering of baddi* and bsubi* instructions in the riscv64 offlineasm
backend. Node.riscCloneWithOperandsLowered() doesn't do the job properly
when the result of the arithmetic operation has to be stored back into
memory. In that case, right now these instructions are lowered into a
sequence that loads from memory, performs the arithmetic operation,
sets up the branch and only then stores the result back into memory,
which means the result never gets written back if the branch is taken.
Most prominently this breaks the execution counter through which JIT
entry is decided.

The riscv64LowerMisplacedAddresses() pass is specialized to cover
baddi* and bsubi* instructions whose destination operand is an address.
A manual sequence is constructed, loading, adding/subtracting, storing
and only then branching on the given condition.

  • offlineasm/riscv64.rb:
1:01 PM Changeset in webkit [288837] by Russell Epstein
  • 1 copy in branches/safari-614.1.2-branch

New branch.

12:51 PM Changeset in webkit [288836] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Revert pull request when retrying
​https://bugs.webkit.org/show_bug.cgi?id=235825
<rdar://problem/88187688>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(UnApplyPatch.doStepIf): Only run if 'patch_id' is defined.
(UnApplyPatch.hideStepIf): Hide step if we aren't doing it.
(RevertPullRequestChanges): Clean checkout and checkout base hash if
'github.base.sha' is define.
(CompileWebKit.evaluateCommand): Add RevertPullRequestChanges step.
(RunJavaScriptCoreTests.evaluateCommand): Ditto.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunWebKitTestsRedTree.evaluateCommand): Ditto.
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246601@main

12:43 PM Changeset in webkit [288835] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

[Mac] Fix TestWebKitAPI build
​https://bugs.webkit.org/show_bug.cgi?id=235906

Reviewed by Tim Horton.

/usr/include/cups/cups.h has this:
# define UniversalPrint 1

And Source/ThirdParty/gtest/include/gtest/gtest-printers.h has this:
void UniversalPrint(const T& value, ::std::ostream* os);

  • TestWebKitAPI/config.h:
12:40 PM Changeset in webkit [288834] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613.1.16.1-branch

Cherry-pick r288095. rdar://problem/88286876

[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
​https://bugs.webkit.org/show_bug.cgi?id=235286

Reviewed by Antti Koivisto.

Source/WebCore:

When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").

Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): (WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts at the beginning of the run and ends right before at the last character.

LayoutTests:

  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
  • platform/ios/fast/text/basic/015-expected.txt: Progressions.
  • platform/mac/fast/text/basic/015-expected.txt:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288095 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [288833] by Russell Epstein
  • 8 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Cherry-pick r288652. rdar://problem/87169406

[WebAuthn] We should pass extensions to ASC if possible
​https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (authenticationExtensionsClientInputs):
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::toNSString): (WebKit::toASCExtensions): (WebKit::configureRegistrationRequestContext): (WebKit::configurationAssertionRequestContext):
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288652 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [288832] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613.1.16.0-branch

Cherry-pick r288095. rdar://problem/88286876

[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
​https://bugs.webkit.org/show_bug.cgi?id=235286

Reviewed by Antti Koivisto.

Source/WebCore:

When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").

Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): (WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts at the beginning of the run and ends right before at the last character.

LayoutTests:

  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
  • platform/ios/fast/text/basic/015-expected.txt: Progressions.
  • platform/mac/fast/text/basic/015-expected.txt:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288095 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:32 PM Changeset in webkit [288831] by Aditya Keerthi
  • 4 edits in trunk/Source

[iOS] SharePlay is shown prominently for system-provided Share Sheets
​https://bugs.webkit.org/show_bug.cgi?id=235895
rdar://88268450

Reviewed by Wenson Hsieh.

Source/WebKit:

Content shared using the Web Share API should not display a SharePlay action.

  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithShareDataArray:inRect:]):

Use -[UIActivityViewController setExcludedActivityTypes:] to ensure
a SharePlay action is not displayed.

Source/WTF:

  • wtf/PlatformHave.h:
12:31 PM Changeset in webkit [288830] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.1

12:29 PM Changeset in webkit [288829] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

LineLayout::collectOverflow() should null check m_inlineContent
​https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::collectOverflow):

12:29 PM Changeset in webkit [288828] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.1

12:08 PM Changeset in webkit [288827] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Source/WebCore:
Changed playbackRate and defaultPlaybackRate from unrestricted double
to double.
​https://bugs.webkit.org/show_bug.cgi?id=235174
rdar://problem/87815745

Patch by Takeshi Sone <​takeshi.sone@gmail.com> on 2022-01-31
Reviewed by Eric Carlson.

Test: media/video-playbackrate-undefined.html

  • html/HTMLMediaElement.idl:

LayoutTests:
Added a test to verify that setting undefined to video.playbackRate
raises an exception.
​https://bugs.webkit.org/show_bug.cgi?id=235174
rdar://problem/87815745

Patch by Takeshi Sone <​takeshi.sone@gmail.com> on 2022-01-31
Reviewed by Eric Carlson.

  • media/video-playbackrate-undefined-expected.txt: Added.
  • media/video-playbackrate-undefined.html: Added.
11:51 AM Changeset in webkit [288826] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][WP] Restrict image decoders
​https://bugs.webkit.org/show_bug.cgi?id=234175
<rdar://problem/86650455>

Unreviewed, addressing additional review comments.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
11:36 AM Changeset in webkit [288825] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[WP] Remove PostScript conversion code
​https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Brent Fulgham.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::streamDidFinishLoading):
(WebKit::PDFPlugin::manualStreamDidFinishLoading):
(WebKit::PDFPlugin::convertPostScriptDataIfNeeded): Deleted.

11:29 AM Changeset in webkit [288824] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.3-branch

New branch.

11:29 AM Changeset in webkit [288823] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.2-branch

New branch.

11:29 AM Changeset in webkit [288822] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.1-branch

New branch.

11:29 AM Changeset in webkit [288821] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.0-branch

New branch.

11:04 AM Changeset in webkit [288820] by commit-queue@webkit.org
  • 37 edits
    1 delete in trunk

Fix handling of module script errors in WebCore
​https://bugs.webkit.org/show_bug.cgi?id=218284

Patch by Asumu Takikawa <​asumu@igalia.com> on 2022-01-31
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Set test expectations to PASS for fixed behavior in module tests.
For import assertion tests, set different error behavior from
load errors getting dispatched.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/content-type-checking-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/cors-crossorigin-requests-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/load-error-events-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/empty-assertion-clause-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/invalid-type-assertion-error-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/unsupported-assertion-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/cors-crossorigin-requests-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/integrity-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/load-error-events-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/compilation-error-1-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/compilation-error-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/specifier-error-expected.txt:

Source/WebCore:

According to the HTML spec, script fetch errors get dispatched to the
script (with no error value), but load errors should get reported to
the global object and dispatched with an error value included.
This patch implements that behavior for module scripts.

In addition, reported errors from module scripts are never expected to
be muted. To implement this, we add a fromModule flag to suppress the
error muting in canIncludeErrorDetails.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::reportException):

  • bindings/js/JSDOMExceptionHandling.h:
  • bindings/js/ModuleFetchFailureKind.h:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::setupModuleScriptHandlers):
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::reportExceptionFromScriptError):

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::rejectWithFetchError):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::rejectPromise):
(WebCore::ScriptModuleLoader::notifyFinished):

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::error const):
(WebCore::LoadableClassicScript::notifyFinished):

  • dom/LoadableScript.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeScriptAndDispatchEvent):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canIncludeErrorDetails):
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::dispatchErrorEvent):

  • dom/ScriptExecutionContext.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):
(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):

LayoutTests:

Adjust tests expectations to match fixed script loading behvior.
Also add DumpJSConsoleLogInStdErr for flaky test (see bug 182177).
Changed a JS DOM test to match spec behavior.

  • TestExpectations:
  • js/dom/modules/module-incorrect-relative-specifier-expected.txt:
  • js/dom/modules/module-incorrect-relative-specifier.html:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt: Removed.
10:11 AM Changeset in webkit [288819] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.1

Tag Safari-614.1.1.1.

10:05 AM Changeset in webkit [288818] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.1

9:31 AM Changeset in webkit [288817] by pvollan@apple.com
  • 10 edits in trunk/Source

[iOS][WP] Restrict image decoders
​https://bugs.webkit.org/show_bug.cgi?id=234175

Reviewed by Brent Fulgham.

Source/WebCore:

Enable restriced decoding for images.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):

Source/WebCore/PAL:

Include WebKitAdditions soft link files.

  • pal/cf/VideoToolboxSoftLink.cpp:
  • pal/cf/VideoToolboxSoftLink.h:

Source/WebKit:

Restrict image decoders in order to enable further sandbox strengthening.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

8:55 AM Changeset in webkit [288816] by J Pascoe
  • 11 edits in trunk

[WebAuthn] Provide SPI to export/import local credentials
​https://bugs.webkit.org/show_bug.cgi?id=234112
rdar://84822000

Reviewed by Brent Fulgham.

Source/WebCore:

This change adds SPI to _WKWebAuthenticationPanel to provide the ability
to import / export local credentials. Constants are used during serialization
as keys.

  • Modules/webauthn/WebAuthenticationConstants.h: constants for credential serialization

Source/WebKit:

Covered by new API tests.

This patch adds new SPI to _WKWebAuthenticationPanel.h to import and export local
webauthn credentials. CBOR is used for serialization. WKErrors are used to differentiate
between malformed vs duplicate keys during import.

  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKError.mm:

(localizedDescriptionForErrorCode):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(+[_WKWebAuthenticationPanel importLocalAuthenticatorCredential:error:]):
(+[_WKWebAuthenticationPanel exportLocalAuthenticatorCredentialWithID:error:]):

Tools:

Add tests for SPI to import / export local webauthn credentials.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST): New tests for import/export

8:05 AM Changeset in webkit [288815] by keith_miller@apple.com
  • 108 edits
    3 copies
    2 adds
    2 deletes in trunk/Source

Reland StructureID overhaul
​https://bugs.webkit.org/show_bug.cgi?id=235720

Reviewed by Yusuke Suzuki.

Changes since revert:

Source/JavaScriptCore:

Have StructureAlignedMemoryAllocator keep halving the size of VA
pool it will allocate from until it successfully reserves the
address space.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::AccessCase):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::canBeShared):

  • bytecode/AccessCase.h:

(JSC::AccessCase::structure const):
(JSC::AccessCase::newStructure const):
(JSC::AccessCase::hash const):
(JSC::AccessCase::AccessCase):

  • bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::computeUpdatedPrediction):

  • bytecode/ArrayProfile.h:
  • bytecode/CheckPrivateBrandStatus.cpp:

(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::stronglyVisitWeakReferences):

  • bytecode/GetByIdMetadata.h:

(JSC::GetByIdModeMetadata::GetByIdModeMetadata):
(JSC::GetByIdModeMetadata::clearToDefaultModeWithoutCache):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeFromLLInt):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):

  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::offsetOfStructureID):
(JSC::InternalFunctionAllocationProfile::structure):
(JSC::InternalFunctionAllocationProfile::clear):
(JSC::InternalFunctionAllocationProfile::visitAggregate):
(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):
(JSC::InternalFunctionAllocationProfile::offsetOfStructure): Deleted.

  • bytecode/PolyProtoAccessChain.cpp:

(JSC::PolyProtoAccessChain::needImpurePropertyWatchpoint const):

  • bytecode/PolyProtoAccessChain.h:
  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::visitWeak const):

  • bytecode/PutByIdFlags.h:
  • bytecode/PutByStatus.cpp:

(JSC::PutByStatus::computeFromLLInt):
(JSC::PutByStatus::computeForStubInfo):

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromCell):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::inlineAccessBaseStructure):
(JSC::StructureStubInfo::offsetOfInlineAccessBaseStructureID):
(JSC::StructureStubInfo::offsetOfInlineAccessBaseStructure): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::branchWeakStructure):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalize):

  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • heap/AbstractSlotVisitor.h:
  • heap/AbstractSlotVisitorInlines.h:

(JSC::AbstractSlotVisitor::append):
(JSC::AbstractSlotVisitor::appendHidden):

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::runEndPhase):

  • heap/Heap.h:

(JSC::Heap::structureIDTable): Deleted.

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryMallocBlock):
(JSC::IsoAlignedMemoryAllocator::freeBlock):
(JSC::IsoAlignedMemoryAllocator::commitBlock):
(JSC::IsoAlignedMemoryAllocator::decommitBlock):
(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory): Deleted.
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory): Deleted.

  • heap/IsoAlignedMemoryAllocator.h:
  • heap/IsoMemoryAllocatorBase.cpp: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp.

(JSC::IsoMemoryAllocatorBase::IsoMemoryAllocatorBase):
(JSC::IsoMemoryAllocatorBase::~IsoMemoryAllocatorBase):
(JSC::IsoMemoryAllocatorBase::releaseMemoryFromSubclassDestructor):
(JSC::IsoMemoryAllocatorBase::tryAllocateAlignedMemory):
(JSC::IsoMemoryAllocatorBase::freeAlignedMemory):

  • heap/IsoMemoryAllocatorBase.h: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):

  • heap/IsoSubspace.h:
  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::tryCreateForLowerTier):
(JSC::PreciseAllocation::createForLowerTier): Deleted.

  • heap/PreciseAllocation.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendJSCellOrAuxiliary):

  • heap/SlotVisitor.h:
  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendHidden):

  • heap/StructureAlignedMemoryAllocator.cpp: Added.

(JSC::StructureAlignedMemoryAllocator::StructureAlignedMemoryAllocator):
(JSC::StructureAlignedMemoryAllocator::~StructureAlignedMemoryAllocator):
(JSC::StructureAlignedMemoryAllocator::dump const):
(JSC::StructureAlignedMemoryAllocator::tryAllocateMemory):
(JSC::StructureAlignedMemoryAllocator::freeMemory):
(JSC::StructureAlignedMemoryAllocator::tryReallocateMemory):
(JSC::StructureMemoryManager::StructureMemoryManager):
(JSC::StructureMemoryManager::tryMallocStructureBlock):
(JSC::StructureMemoryManager::freeStructureBlock):
(JSC::StructureAlignedMemoryAllocator::initializeStructureAddressSpace):
(JSC::StructureAlignedMemoryAllocator::tryMallocBlock):
(JSC::StructureAlignedMemoryAllocator::freeBlock):
(JSC::StructureAlignedMemoryAllocator::commitBlock):
(JSC::StructureAlignedMemoryAllocator::decommitBlock):

  • heap/StructureAlignedMemoryAllocator.h: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::emitNonNullDecodeStructureID):
(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitLoadPrototype):
(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchStructure):
(JSC::AssemblyHelpers::nukeStructureAndStoreButterfly):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::PolymorphicAccessJITStubRoutine::computeHash):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::generateGetByIdInlineAccess):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_typeof_is_undefined):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_get_prototype_of):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_property_enumerator):

  • jit/JITStubRoutine.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::performLLIntGetByID):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/BigIntPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/BooleanPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • runtime/DatePrototype.cpp:

(JSC::formateDateInstance):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
(JSC::ErrorInstance::sanitizedToString):

  • runtime/ErrorPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::visitChildrenImpl):

  • runtime/FunctionExecutable.h:
  • runtime/FunctionPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::visitChildrenImpl):

  • runtime/FunctionRareData.h:
  • runtime/HasOwnPropertyCache.h:
  • runtime/InitializeThreading.cpp:

(JSC::initialize):

  • runtime/JSCConfig.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure const):
(JSC::JSValue::dumpForBacktrace const):

  • runtime/JSCell.cpp:

(JSC::JSCell::toObjectSlow const):

  • runtime/JSCell.h:

(JSC::JSCell::clearStructure):

  • runtime/JSCellInlines.h:

(JSC::JSCell::structure const):
(JSC::JSCell::setStructure):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::visitButterflyImpl):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::putDirectCustomGetterSetterWithoutTransition):
(JSC::JSObject::putDirectNonIndexAccessorWithoutTransition):

  • runtime/JSObject.h:

(JSC::JSObject::nukeStructureAndSetButterfly):
(JSC::JSObject::getPropertySlot):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
(JSC::JSObject::putDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator):
(JSC::JSPropertyNameEnumerator::visitChildrenImpl):

  • runtime/JSPropertyNameEnumerator.h:
  • runtime/NumberPrototype.cpp:

(JSC::toThisNumber):

  • runtime/ObjectPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::objectPrototypeToString):

  • runtime/RegExpPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::~Structure):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::dump const):
(JSC::Structure::canCachePropertyNameEnumerator const):

  • runtime/Structure.h:

(JSC::Structure::id const):

  • runtime/StructureChain.cpp:

(JSC::StructureChain::create):
(JSC::StructureChain::visitChildrenImpl):

  • runtime/StructureID.h: Added.

(JSC::StructureID::nuke const):
(JSC::StructureID::isNuked const):
(JSC::StructureID::decontaminate const):
(JSC::StructureID::operator bool const):
(JSC::StructureID::operator== const):
(JSC::StructureID::operator!= const):
(JSC::StructureID::bits const):
(JSC::StructureID::StructureID):
(JSC::StructureID::isHashTableDeletedValue const):
(JSC::StructureID::decode const):
(JSC::StructureID::encode):
(JSC::StructureIDHash::hash):
(JSC::StructureIDHash::equal):

  • runtime/StructureIDBlob.h:
  • runtime/StructureIDTable.cpp: Removed.
  • runtime/StructureIDTable.h: Removed.
  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::StructureRareData):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint):

  • runtime/SymbolPrototype.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::processLogEntries):
(JSC::TypeProfilerLog::visit):

  • runtime/VM.h:

(JSC::VM::getStructure): Deleted.
(JSC::VM::tryGetStructure): Deleted.

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierStructureID::WriteBarrierStructureID):
(JSC::WriteBarrierStructureID::get const):
(JSC::WriteBarrierStructureID::operator* const):
(JSC::WriteBarrierStructureID::operator-> const):
(JSC::WriteBarrierStructureID::clear):
(JSC::WriteBarrierStructureID::operator bool const):
(JSC::WriteBarrierStructureID::operator! const):
(JSC::WriteBarrierStructureID::setWithoutWriteBarrier):
(JSC::WriteBarrierStructureID::unvalidatedGet const):
(JSC::WriteBarrierStructureID::value const):

  • runtime/WriteBarrierInlines.h:

(JSC::WriteBarrierStructureID::set):
(JSC::WriteBarrierStructureID::setMayBeNull):
(JSC::WriteBarrierStructureID::setEarlyValue):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::validateJSCell):

  • tools/Integrity.cpp:
  • tools/Integrity.h:
  • tools/IntegrityInlines.h:

(JSC::Integrity::auditStructureID):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::visitChildrenImpl):

  • tools/JSDollarVM.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyGlobalPrototype.cpp:

(JSC::getGlobal):

Source/WTF:

Add a try version of reserveUncommitted and reserveAndCommit
so tryReserveUncommitted can call them if needed.

  • wtf/OSAllocator.h:
  • wtf/posix/OSAllocatorPOSIX.cpp:

(WTF::tryReserveAndCommit):
(WTF::tryReserveUncommitted):
(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::tryReserveUncommittedAligned):
(WTF::OSAllocator::reserveAndCommit):

  • wtf/win/OSAllocatorWin.cpp:

(WTF::OSAllocator::tryReserveUncommittedAligned):

7:14 AM Changeset in webkit [288814] by don.olmstead@sony.com
  • 7 edits
    1 copy
    2 moves
    1 add in trunk/Tools

Support additional WPEToolingBackend types
​https://bugs.webkit.org/show_bug.cgi?id=235745

Reviewed by Adrian Perez de Castro.

Split up code specific to the fdo backend to allow for additional WPE backend types to be
used. Add some platform defines based on the underlying backend.

This is a precursor to landing a PlayStation variant.

  • wpe/backends/CMakeLists.txt:
  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessInstance::singleton): Deleted.
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend): Deleted.
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend): Deleted.
(WPEToolingBackends::HeadlessViewBackend::backend const): Deleted.
(WPEToolingBackends::HeadlessViewBackend::snapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::updateSnapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::vsync): Deleted.

  • wpe/backends/HeadlessViewBackend.h:
  • wpe/backends/PlatformWPE.cmake:
  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::ViewBackend):

  • wpe/backends/ViewBackend.h:
  • wpe/backends/fdo/HeadlessViewBackendFdo.cpp: Copied from Tools/wpe/backends/HeadlessViewBackend.cpp.

(WPEToolingBackends::HeadlessInstance::singleton):
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::backend const):
(WPEToolingBackends::HeadlessViewBackend::snapshot):
(WPEToolingBackends::HeadlessViewBackend::updateSnapshot):
(WPEToolingBackends::HeadlessViewBackend::vsync):

  • wpe/backends/fdo/WindowViewBackend.cpp: Renamed from Tools/wpe/backends/WindowViewBackend.cpp.
  • wpe/backends/fdo/WindowViewBackend.h: Renamed from Tools/wpe/backends/WindowViewBackend.h.
6:56 AM Changeset in webkit [288813] by Antti Koivisto
  • 12 edits in trunk

[CSS Container Queries] Check for query containers when matching rules
​https://bugs.webkit.org/show_bug.cgi?id=235881

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:

Source/WebCore:

Skip rules inside container queries when there are no container ancestors.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::containerQueryMatches):

Add the matching function.

This patch doesn't yet do any actual container query matching, it just checks
if we are inside a query container.

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::containerQueryFor const):

  • style/SelectorMatchingState.h:

Add the container stack.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::popParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::updateQueryContainer):

Maintain the container stack.

  • style/StyleTreeResolver.h:

LayoutTests:

6:16 AM Changeset in webkit [288812] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] WTR: use AXMenuItemSelected for menu item selection change with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235890

Reviewed by Adrian Perez de Castro.

ATSPI uses selection-changed signal for both combo box menus and list boxes, but layout tests expect then to be
different events AXMenuItemSelected and AXSelectedChildrenChanged.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::selectionChanged): Call notifyMenuSelectionChanged() for menus.
(WebCore::AccessibilityAtspi::notifyMenuSelectionChanged const): Emit AXMenuItemSelected.

  • accessibility/atspi/AccessibilityAtspi.h:
5:29 AM Changeset in webkit [288811] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/CISupport/ews-build

[ews] Cleanup code by removing patchFailedToBuild and patchFailedTests properties
​https://bugs.webkit.org/show_bug.cgi?id=235860

Reviewed by Ryan Haddad.

Cleanup code by removing patchFailedToBuild and patchFailedTests properties. Those were added in very early days of ews bringup, when corresponding steps (e.g.: UnApplyPatchIfRequired) were listed statically in factories.py. Later on we started invoking steps dynamically using addStepsAfterCurrentStep and UnApplyPatchIfRequired is no longer called in factories.py. We can just remove all these patchFailedToBuild and patchFailedTests properties logic.

Also rename UnApplyPatchIfRequired to UnApplyPatch since this step is run only when it is required

  • Tools/CISupport/ews-build/steps.py:

(UnApplyPatchIfRequired):
(CompileWebKit.evaluateCommand):
(RunJavaScriptCoreTests.evaluateCommand):
(ReRunWebKitTests.evaluateCommand):
(RunWebKitTestsRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand):
(ReRunAPITests.evaluateCommand):
(UnApplyPatchIfRequired.doStepIf): Deleted.
(UnApplyPatchIfRequired.hideStepIf): Deleted.
(CompileWebKitWithoutPatch.doStepIf): Deleted.
(CompileWebKitWithoutPatch.hideStepIf): Deleted.

  • Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.

Canonical link: ​https://commits.webkit.org/246587@main

4:46 AM Changeset in webkit [288810] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] No longer updating due to expired GPG key
​https://bugs.webkit.org/show_bug.cgi?id=235869

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-01-31
Reviewed by Adrian Perez de Castro.

Manually synchronize the SDK GPG key in case our local copy is detected as expired.

This patch includes a drive-by fix regarding toolchains updates. Those were always
regenerated when updating the SDK, because the zip path was assumed to be a host path,
whereas it is actually a path in the sandbox.

  • flatpak/flatpakutils.py:

(run_sanitized):
(FlatpakObject.flatpak):
(FlatpakObject.flatpak_update):
(FlatpakPackage.install):
(WebkitFlatpak._reset_repository):
(WebkitFlatpak.host_path_to_sandbox_path):
(WebkitFlatpak.sandbox_path_to_host_path):
(WebkitFlatpak.main):
(WebkitFlatpak.check_toolchains_generated):
(FlatpakPackage.update): Deleted.

4:16 AM WebKitGTK/2.34.x edited by Alexander Mikhaylenko
(diff)
4:13 AM Changeset in webkit [288809] by Alexander Mikhaylenko
  • 2 edits in trunk/Source/WebKit

REGRESSION(r288644): [GTK4] Criticals when using pinch zoom
​https://bugs.webkit.org/show_bug.cgi?id=235883

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
Only cancel the click gesture on GTK3. We don't use g_object_set_data() on GTK4.

2:56 AM Changeset in webkit [288808] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK][a11y] Add support for password fields to ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235778

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification): Do not return early for password entries.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::effectiveRole const): Return PasswordText role for password fields.
(WebCore::AccessibilityObjectAtspi::effectiveRoleName const): Ditto.
(WebCore::AccessibilityObjectAtspi::effectiveLocalizedRoleName const): Ditto.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): Ignore text control inner text elements.

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textInserted): Expose the rendered text in case of password field.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.

Tools:

Add test cases for password inputs.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTextIterator):
(testTextSelections):
(testTextStateChanged):

12:48 AM Changeset in webkit [288807] by ysuzuki@apple.com
  • 16 edits
    1 add in trunk/Source

[WTF] Add GenericHashKey
​https://bugs.webkit.org/show_bug.cgi?id=235872

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use GenericHashKey and WTF::HashSet / WTF::HashMap.

  • dfg/DFGCommonData.h:
  • dfg/DFGGraph.h:
  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::RangeKey::Hash::hash):
(JSC::DFG::IntegerCheckCombiningPhase::RangeKey::Hash::equal):
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::addressOfDoubleConstant):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • runtime/DeferredWorkTimer.cpp:
  • runtime/FunctionHasExecutedCache.cpp:

(JSC::FunctionHasExecutedCache::hasExecutedAtOffset):
(JSC::FunctionHasExecutedCache::insertUnexecutedRange):
(JSC::FunctionHasExecutedCache::removeUnexecutedRange):
(JSC::FunctionHasExecutedCache::getFunctionRanges):

  • runtime/FunctionHasExecutedCache.h:

(JSC::FunctionHasExecutedCache::FunctionRange::Hash::hash):
(JSC::FunctionHasExecutedCache::FunctionRange::Hash::equal):

  • runtime/TypeLocationCache.cpp:

(JSC::TypeLocationCache::getTypeLocation):

  • runtime/TypeLocationCache.h:

(JSC::TypeLocationCache::LocationKey::Hash::hash):
(JSC::TypeLocationCache::LocationKey::Hash::equal):

Source/WebCore:

No behavior change. We should use StdMap.
This should be StdMap since it requires ordered iterations by the key, so it should not be a HashMap.

  • platform/graphics/avfoundation/objc/QueuedVideoOutput.h:

Source/WTF:

This patch adds GenericHashKey<T>, which can represent any HashTable's key
even if Key does not have Empty / Deleted values. Previously we were using
StdUnorderedSet / StdUnorderedMap instead. But, (1) they are doing similar
thing to GenericHashKey to keep empty or deleted values, and (2) by using
GenericHashKey we can consistently use WTF::HashMap etc. for all possible
cases.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/GenericHashKey.h: Added.

Jan 30, 2022:

9:47 PM Changeset in webkit [288806] by commit-queue@webkit.org
  • 194 edits
    1 delete in trunk/LayoutTests

Update LayoutTests/resources/testharness.js to 2021-6-24 version
​https://bugs.webkit.org/show_bug.cgi?id=235398
<rdar://problem/88126222>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-30
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update tests to accommodate the API change:

  • assert_throws_js check that the exception is of a particular JS exception type
  • assert_throws_dom check that the exception is of a particular DOMException type from a particular global object.
  • assert_throws_exactly check that the exception is a specific object.
  • IndexedDB-private-browsing/close-in-upgradeneeded.html:
  • IndexedDB-private-browsing/idbcursor-advance-invalid.html:
  • IndexedDB-private-browsing/idbcursor_advance_index2.html:
  • IndexedDB-private-browsing/idbcursor_advance_index3.html:
  • IndexedDB-private-browsing/idbcursor_advance_index6.html:
  • IndexedDB-private-browsing/idbcursor_advance_index7.html:
  • IndexedDB-private-browsing/idbcursor_advance_index8.html:
  • IndexedDB-private-browsing/idbcursor_advance_index9.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore4.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_continue_index2.html:
  • IndexedDB-private-browsing/idbcursor_continue_index3.html:
  • IndexedDB-private-browsing/idbcursor_continue_index4.html:
  • IndexedDB-private-browsing/idbcursor_continue_index7.html:
  • IndexedDB-private-browsing/idbcursor_continue_index8.html:
  • IndexedDB-private-browsing/idbcursor_continue_invalid.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore4.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore6.html:
  • IndexedDB-private-browsing/idbcursor_delete_index2.html:
  • IndexedDB-private-browsing/idbcursor_delete_index3.html:
  • IndexedDB-private-browsing/idbcursor_delete_index4.html:
  • IndexedDB-private-browsing/idbcursor_delete_index5.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore4.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_update_index2.html:
  • IndexedDB-private-browsing/idbcursor_update_index3.html:
  • IndexedDB-private-browsing/idbcursor_update_index4.html:
  • IndexedDB-private-browsing/idbcursor_update_index5.html:
  • IndexedDB-private-browsing/idbcursor_update_index6.html:
  • IndexedDB-private-browsing/idbcursor_update_index7.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore6.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore7.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore8.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore11.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore3.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore4.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore6.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore9-invalidparameters.html:
  • IndexedDB-private-browsing/idbdatabase_deleteObjectStore2.html:
  • IndexedDB-private-browsing/idbdatabase_deleteObjectStore3.html:
  • IndexedDB-private-browsing/idbdatabase_deleteObjectStore4-not_reused.html:
  • IndexedDB-private-browsing/idbdatabase_transaction.html:
  • IndexedDB-private-browsing/idbdatabase_transaction3.html:
  • IndexedDB-private-browsing/idbdatabase_transaction4.html:
  • IndexedDB-private-browsing/idbdatabase_transaction5.html:
  • IndexedDB-private-browsing/idbfactory_cmp2.html:
  • IndexedDB-private-browsing/idbfactory_open9.html:
  • IndexedDB-private-browsing/idbindex-multientry-arraykeypath.html:
  • IndexedDB-private-browsing/idbindex_count4.html:
  • IndexedDB-private-browsing/idbindex_get5.html:
  • IndexedDB-private-browsing/idbindex_get6.html:
  • IndexedDB-private-browsing/idbindex_get7.html:
  • IndexedDB-private-browsing/idbindex_getKey5.html:
  • IndexedDB-private-browsing/idbindex_getKey6.html:
  • IndexedDB-private-browsing/idbindex_getKey7.html:
  • IndexedDB-private-browsing/idbindex_openCursor.html:
  • IndexedDB-private-browsing/idbindex_openCursor2.html:
  • IndexedDB-private-browsing/idbindex_openKeyCursor.html:
  • IndexedDB-private-browsing/idbindex_openKeyCursor2.html:
  • IndexedDB-private-browsing/idbindex_openKeyCursor3.html:
  • IndexedDB-private-browsing/idbkeyrange_incorrect.html:
  • IndexedDB-private-browsing/idbobjectstore_add10.html:
  • IndexedDB-private-browsing/idbobjectstore_add11.html:
  • IndexedDB-private-browsing/idbobjectstore_add12.html:
  • IndexedDB-private-browsing/idbobjectstore_add13.html:
  • IndexedDB-private-browsing/idbobjectstore_add15.html:
  • IndexedDB-private-browsing/idbobjectstore_add16.html:
  • IndexedDB-private-browsing/idbobjectstore_add9.html:
  • IndexedDB-private-browsing/idbobjectstore_clear3.html:
  • IndexedDB-private-browsing/idbobjectstore_clear4.html:
  • IndexedDB-private-browsing/idbobjectstore_count4.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex10.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex11.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex12.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex13.html:
  • IndexedDB-private-browsing/idbobjectstore_delete6.html:
  • IndexedDB-private-browsing/idbobjectstore_delete7.html:
  • IndexedDB-private-browsing/idbobjectstore_deleteIndex.html:
  • IndexedDB-private-browsing/idbobjectstore_deleted.html:
  • IndexedDB-private-browsing/idbobjectstore_get6.html:
  • IndexedDB-private-browsing/idbobjectstore_get7.html:
  • IndexedDB-private-browsing/idbobjectstore_openCursor_invalid.html:
  • IndexedDB-private-browsing/idbobjectstore_put10.html:
  • IndexedDB-private-browsing/idbobjectstore_put11.html:
  • IndexedDB-private-browsing/idbobjectstore_put12.html:
  • IndexedDB-private-browsing/idbobjectstore_put13.html:
  • IndexedDB-private-browsing/idbobjectstore_put15.html:
  • IndexedDB-private-browsing/idbobjectstore_put16.html:
  • IndexedDB-private-browsing/idbobjectstore_put9.html:
  • IndexedDB-private-browsing/key_invalid.html:
  • IndexedDB-private-browsing/keypath_invalid.html:
  • IndexedDB-private-browsing/transaction-create_in_versionchange.html:

LayoutTests:

Copy testharness.js from imported/w3c/web-platform-tests

Copy idlharness.js from imported/w3c/web-platform-tests because it uses
the new testharness.js APIs.

Copy webidl2.js from imported/w3c/web-platform-tests to resources/WebIDLParser.js
because idlharness uses new webidl2.js logic.

Delete testharness.css, it is now bundled in testharness.js.

Update tests to accommodate the API change:

  • assert_throws_js check that the exception is of a particular JS exception type
  • assert_throws_dom check that the exception is of a particular DOMException type from a particular global object.
  • assert_throws_exactly check that the exception is a specific object.

Previously assert_throws was used and it hid unexpected exception errors.

Same for promise_rejects_*

async_test(f) now warns if f is not a normal function.

Singl page tests need a setup function.

  • animations/animation-direction-normal.html:
  • animations/animation-direction-reverse.html:
  • animations/change-keyframes-name.html:
  • animations/play-state-paused.html:

async_test(async function {...}) is incorrect (async test expects normal
function that has asynchronous logic, not a function returning a promise.
Use correct form:
promise_test(async function { ... });

  • css-custom-properties-api/registerProperty.html:

Update exception expectation functions.

  • editing/pasteboard/datatransfer-idl-expected.txt:
  • editing/pasteboard/datatransfer-idl.html:

Update the datatransfer related idls from source, otherwise
tests fail (harness now tests for constructor).
Update the results.

  • editing/text-iterator/count-matches-in-frames.html:
  • editing/text-iterator/hidden-textarea-selection-quirk.html:
  • fast/canvas/webgl/webgl2/bindings.html:
  • fast/custom-elements/defined-pseudo-class.html:
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html:
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html:
  • fast/dom/document-all.html:
  • fast/dom/elementFromPoint-parameters.html:
  • fast/dom/replaceable-setter-throws-if-defineownproperty-fails.html:
  • fast/dom/window-opener-setter-throws-if-defineownproperty-fails-1.html:
  • fast/dom/window-opener-setter-throws-if-defineownproperty-fails-2.html:
  • fast/events/clipboard-event-constructor.html:
  • fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js:
  • fast/files/xhr-blob-request.html:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-exceptions.html:
  • fast/mediasession/metadata/artworkdownload.html:
  • fast/mediastream/screencapture-user-gesture.html:
  • fetch/fetch-url-serialization.html:
  • http/tests/fetch/fetching-same-resource-with-different-options.html:
  • http/tests/fetch/redirectmode-and-preload.html:
  • http/tests/navigation/pushstate-at-unique-origin-denied.py:
  • http/tests/notifications/notification.html:
  • http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
  • http/tests/paymentrequest/payment-is-showing.https.html:
  • http/tests/paymentrequest/payment-request-abort-method.https.html:
  • http/tests/paymentrequest/payment-request-canmakepayment-method.https.html:
  • http/tests/paymentrequest/payment-request-merchant-validation.https.html:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
  • http/tests/paymentrequest/payment-response-rejects-if-not-active.https.html:
  • http/tests/paymentrequest/payment-response-retry-method.https.html:
  • http/tests/paymentrequest/rejects_if_not_active.https.html:
  • http/tests/paymentrequest/updateWith-method-pmi-handling.https.html:
  • http/tests/security/bypassing-cors-checks-for-extension-urls.html:
  • http/tests/security/clean-origin-css-exposed-resource-timing.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-xfo.html:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-default-src.html:
  • http/tests/security/contentSecurityPolicy/1.1/stylehash-default-src.html:
  • http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html:
  • http/tests/security/cross-origin-clean-css-resource-timing.html:
  • http/tests/security/cross-origin-css-resource-timing.html:
  • http/tests/subresource-integrity/sri-fetch.js:
  • http/tests/workers/service/service-worker-crossorigin-fetch.html:
  • http/tests/xmlhttprequest/set-bad-headervalue.html:
  • intersection-observer/intersection-observer-interface.html:
  • js/dom/dom-getters-type-check.html:
  • js/dom/legacy-platform-object-defineOwnProperty.html:
  • js/dom/post-message-symbol.html:
  • js/dom/queue-microtask-window.html:
  • media/track/opera/interfaces/TextTrackCue/vertical.html:
  • media/track/opera/resources/idlharness.js:
  • media/track/texttrackcue/texttrackcue-constructor.html:
  • media/track/w3c/interfaces/TextTrackCue/align.html:
  • pointerevents/ios/pointer-events-implicit-capture-release-exception.html:
  • pointerevents/ios/pointer-events-set-pointer-capture-exceptions.html:
  • pointerevents/pointer-id-crash.html:
  • resources/WebIDLParser.js:
  • resources/idlharness.js:

Update from wpt.

  • resources/testharness.css: Removed.
  • resources/testharness.js:

Update from wpt.

  • storage/websql/openDatabase-deprecation.html:
  • streams/readable-byte-stream-controller.js:
  • streams/readable-stream-byob-reader.js:
  • streams/readable-stream-byob-request.js:
  • streams/readable-stream-getReader.html:
  • streams/reference-implementation/bad-strategies.html:
  • streams/reference-implementation/bad-underlying-sinks.html:
  • streams/reference-implementation/transform-stream-expected.txt:
  • streams/reference-implementation/transform-stream.html:
  • webanimations/accelerated-animation-single-keyframe.html:
  • webanimations/frame-rate/animation-frame-rate.html:
  • webanimations/scheduling-of-animation-with-steps-timing-function-on-effect.html:
  • webanimations/scheduling-of-animation-with-steps-timing-function-on-keyframe.html:
  • webanimations/scheduling-of-css-animation-with-explicit-steps-timing-function-on-some-keyframes.html:
  • webanimations/scheduling-of-css-animation-with-implicit-steps-timing-function.html:
  • webaudio/webaudio-gc.html:
  • webrtc/calling-peerconnection-once-closed.html:
  • webrtc/certificates-indexeddb.html:
  • webrtc/datachannel/creation.html:
  • webrtc/datachannel/datachannel-event.html:
  • webrtc/datachannel/getStats-no-prflx-remote-candidate.html:
  • webrtc/disable-encryption.html:
  • webrtc/legacy-api-expected.txt:
  • webrtc/pc-detached-document.html:
  • webrtc/stun-server-filtering.html:
8:19 PM Changeset in webkit [288805] by Diego Pino Garcia
  • 2 edits in trunk/Source/WTF

[WinCairo] 'fileSystemRepresentation' identifier not found in URL.cpp
​https://bugs.webkit.org/show_bug.cgi?id=235875

Unreviewed build fix.

Add missing header include.

  • wtf/URL.cpp:

(WTF::URL::fileSystemPath const):

7:58 PM Changeset in webkit [288804] by rniwa@webkit.org
  • 123 edits
    20 deletes in trunk

Source/WebCore:
Delete code for keygen element
​https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto and Darin Adler.

Deleted most of code for keygen since it has been always disabled for a while but preserve
the HTML tree builder behavior for compatibility purposes as required by the HTML5 specification.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h: Also remove the entry for HTMLSlotElement which is no longer

used since the runtime flag for enabling shadow DOM had been removed.

  • css/html.css:
  • css/legacyFormControlsIOS.css:
  • css/themeWin.css:
  • editing/MarkupAccumulator.cpp:

(WebCore::elementCannotHaveEndTag):

  • html/HTMLKeygenElement.cpp: Removed.
  • html/HTMLKeygenElement.h: Removed.
  • html/HTMLKeygenElement.idl: Removed.
  • html/HTMLTagNames.in:
  • html/shadow/ShadowPseudoIds.cpp:

(WebCore::ShadowPseudoIds::webkitKeygenSelect): Deleted.

  • html/shadow/ShadowPseudoIds.h:
  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::isPhrasingContent):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setKeygenElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::keygenElementEnabled const): Deleted.

Source/WebKit:
Delete code for keygen element
​https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto and Darin Adler.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRequestVideoFrameCallbackEnabled):
(WKPreferencesGetRequestVideoFrameCallbackEnabled):
(WKPreferencesSetKeygenElementEnabled):
(WKPreferencesGetKeygenElementEnabled):
(WKPreferencesGetXSSAuditorEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/Automation/atoms/ElementAttribute.js:

(isBooleanAttribute):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:

Source/WebKitLegacy/mac:
Delete runtime preference for enabling keygen element
​https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

  • WebView/WebPreferences.mm:

(-[WebPreferences keygenElementEnabled]):
(-[WebPreferences setKeygenElementEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKitLegacy/win:
Delete runtime preference for enabling keygen element
​https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::keygenElementEnabled):
(WebPreferences::setKeygenElementEnabled):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:
Delete code for keygen element
​https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:
Delete code for keygen element
​https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

Deleted the relevant keygen tests and rebaselined other tests.

Most of the tests that happens to test keygen elements along side other form control elements
have been updated to expect keygen to behave like HTMLUnknownElement as expected.

  • accessibility/content-changed-notification-causes-crash.html:
  • accessibility/contenteditable-table-check-causes-crash.html:
  • accessibility/duplicate-axrenderobject-crash-expected.txt:
  • accessibility/duplicate-axrenderobject-crash.html:
  • fast/block/float/float-not-removed-from-first-letter-expected.txt:
  • fast/block/float/float-not-removed-from-first-letter.html:
  • fast/block/float/split-inline-sibling-of-float-crash.html:
  • fast/css/pseudo-required-optional-unapplied.html:
  • fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html:
  • fast/dom/HTMLKeygenElement/keygen-expected.txt: Removed.
  • fast/dom/HTMLKeygenElement/keygen-keytype-expected.txt: Removed.
  • fast/dom/HTMLKeygenElement/keygen-keytype.html: Removed.
  • fast/dom/HTMLKeygenElement/keygen.html: Removed.
  • fast/dom/adopt-node-crash-2-expected.txt:
  • fast/dom/adopt-node-crash-2.html:
  • fast/dom/attribute-set-before-element-in-tree.html:
  • fast/dom/domstring-attribute-reflection-expected.txt:
  • fast/dom/domstring-attribute-reflection.html:
  • fast/dom/set-custom-validity-with-too-few-arguments-expected.txt:
  • fast/dom/set-custom-validity-with-too-few-arguments.html:
  • fast/dom/tabindex-defaults-expected.txt:
  • fast/dom/tabindex-defaults.html:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/dynamic/insertAdjacentHTML-allowed-parents.html:
  • fast/flexbox/crash-button-keygen.html:
  • fast/forms/ValidityState-001-expected.txt:
  • fast/forms/ValidityState-001.html:
  • fast/forms/autofocus-keygen-expected.txt: Removed.
  • fast/forms/autofocus-keygen.html: Removed.
  • fast/forms/checkValidity-001-expected.txt:
  • fast/forms/checkValidity-001.html:
  • fast/forms/fieldset/fieldset-elements-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/fieldset/fieldset-elements.html:
  • fast/forms/form-associated-element-crash3.html:
  • fast/forms/form-attribute-expected.txt:
  • fast/forms/form-attribute.html:
  • fast/forms/form-collection-elements-expected.txt:
  • fast/forms/form-collection-elements-order-expected.txt:
  • fast/forms/form-collection-elements-order.html:
  • fast/forms/form-collection-elements.html:
  • fast/forms/form-collection-radio-node-list-expected.txt:
  • fast/forms/form-collection-radio-node-list.html:
  • fast/forms/label/labelable-elements-expected.txt:
  • fast/forms/label/labelable-elements.html:
  • fast/forms/label/labels-add-htmlFor-label-expected.txt:
  • fast/forms/label/labels-add-htmlFor-label.html:
  • fast/forms/label/labels-add-parent-label-expected.txt:
  • fast/forms/label/labels-add-parent-label.html:
  • fast/forms/label/labels-change-htmlFor-attribute-expected.txt:
  • fast/forms/label/labels-change-htmlFor-attribute.html:
  • fast/forms/label/labels-multiple-sibling-labels-expected.txt:
  • fast/forms/label/labels-multiple-sibling-labels.html:
  • fast/forms/label/labels-parent-and-sibling-labels-expected.txt:
  • fast/forms/label/labels-parent-and-sibling-labels.html:
  • fast/forms/label/labels-remove-htmlFor-attribute-expected.txt:
  • fast/forms/label/labels-remove-htmlFor-attribute.html:
  • fast/forms/label/labels-remove-htmlFor-label-expected.txt:
  • fast/forms/label/labels-remove-htmlFor-label.html:
  • fast/forms/label/labels-remove-parent-label-expected.txt:
  • fast/forms/label/labels-remove-parent-label.html:
  • fast/forms/large-parts.html:
  • fast/forms/resources/common.js:

(createFormControlDataSet): Removed keygen form the list of form control elements.

  • fast/forms/scrollheight-with-mutation-crash.html:
  • fast/forms/setCustomValidity-arguments-expected.txt:
  • fast/forms/setCustomValidity-arguments.html:
  • fast/forms/setCustomValidity-existence-expected.txt:
  • fast/forms/setCustomValidity-existence.html:
  • fast/forms/setCustomValidity-null-parameter-expected.txt:
  • fast/forms/setCustomValidity-null-parameter.html:
  • fast/forms/state-restore-skip-stateless.html:
  • fast/forms/update-form-owner-in-moved-subtree-assertion-failure.html:
  • fast/forms/validationMessage-expected.txt:
  • fast/forms/validationMessage.html:
  • fast/forms/willvalidate-expected.txt:
  • fast/forms/willvalidate.html:
  • fast/html/clone-keygen-expected.txt: Removed.
  • fast/html/clone-keygen.html: Removed.
  • fast/html/keygen.html: Removed.
  • fast/html/marquee-reparent-check.html:
  • fast/invalid/residual-style-expected.html:
  • fast/invalid/residual-style.html:
  • fast/multicol/span/positioned-child-not-removed-crash-expected.txt:
  • fast/multicol/span/positioned-child-not-removed-crash.html:
  • fast/ruby/float-object-doesnt-crash.html:
  • fast/shadow-dom/keygen-shadow-manipulation-expected.txt:
  • fast/shadow-dom/keygen-shadow-manipulation.html:
  • fast/table/crash-splitColumn-2.html:
  • fast/table/multiple-captions-crash3-expected.html:
  • fast/table/multiple-captions-crash3.html:
  • http/tests/misc/resources/check-keygen-post.py: Removed.
  • http/tests/misc/submit-post-keygen-expected.txt: Removed.
  • http/tests/misc/submit-post-keygen.html: Removed.
  • imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow-expected.html: Removed.
  • imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow.html: Removed.
  • imported/blink/fast/text/international-iteration-simple-text.html:
  • platform/glib/fast/html/keygen-expected.txt: Removed.
  • platform/gtk/fast/forms/label/labelable-elements-expected.txt:
  • platform/gtk/fast/html/keygen-expected.png: Removed.
  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/fast/forms/label/labelable-elements-expected.txt:
  • platform/ios/fast/html/keygen-expected.txt: Removed.
  • platform/mac-wk2/fast/forms/label/labelable-elements-expected.txt:
  • platform/mac/fast/html/keygen-expected.png: Removed.
  • platform/mac/fast/html/keygen-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/wincairo/fast/html/keygen-expected.txt: Removed.
  • svg/dom/css-animate-input-foucs-crash-expected.txt:
  • svg/dom/css-animate-input-foucs-crash.html:
3:24 PM Changeset in webkit [288803] by rniwa@webkit.org
  • 34 edits in trunk

Delete runtime preference for enabling input events
​https://bugs.webkit.org/show_bug.cgi?id=235864

Reviewed by Wenson Hsieh.

Source/WebCore:

  • dom/InputEvent.idl:
  • editing/Editor.cpp:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

Updated the tests.

  • fast/events/before-input-delete-empty-list-target-ranges.html:
  • fast/events/before-input-delete-text-target-ranges.html:
  • fast/events/before-input-events-different-start-end-elements.html:
  • fast/events/before-input-events-prevent-block-text-direction.html:
  • fast/events/before-input-events-prevent-default-in-textfield.html:
  • fast/events/before-input-events-prevent-default.html:
  • fast/events/before-input-events-prevent-drag-and-drop.html:
  • fast/events/before-input-events-prevent-insert-composition.html:
  • fast/events/before-input-events-prevent-recomposition.html:
  • fast/events/before-input-prevent-biu.html:
  • fast/events/before-input-prevent-cut.html:
  • fast/events/before-input-prevent-paste.html:
  • fast/events/before-input-prevent-typing.html:
  • fast/events/before-input-prevent-undo.html:
  • fast/events/before-input-replace-text-target-ranges.html:
  • fast/events/input-event-insert-link.html:
  • fast/events/input-events-drag-and-drop.html:
  • fast/events/input-events-fired-when-typing.html:
  • fast/events/input-events-forecolor-data.html:
  • fast/events/input-events-ime-composition.html:
  • fast/events/input-events-ime-recomposition.html:
  • fast/events/input-events-insert-by-drop.html:
  • fast/events/input-events-paste-data.html:
  • fast/events/input-events-paste-rich-datatransfer.html:
  • fast/events/input-events-selection-forecolor-data.html:
  • fast/events/input-events-spell-checking-datatransfer.html:
  • fast/events/input-events-typing-data.html:
  • fast/events/ios/input-events-fired-when-typing-in-contenteditable.html:
8:57 AM Changeset in webkit [288802] by commit-queue@webkit.org
  • 4 edits
    1 move
    1 add in trunk/LayoutTests

[GLIB] Update Test expectations and baselines. Unreviewed test gardening.
​https://bugs.webkit.org/show_bug.cgi?id=235826

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-30

  • platform/glib/tables/mozilla/bugs/adforce_imgis_com-expected.txt: Renamed from LayoutTests/platform/wpe/tables/mozilla/bugs/adforce_imgis_com-expected.txt.
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt:
  • platform/gtk/css2.1/t1508-c527-font-08-b-expected.txt: Added.
  • platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt:
  • platform/wpe/accessibility/math-multiscript-attributes-expected.txt:
8:11 AM Changeset in webkit [288801] by Alan Bujtas
  • 8 edits
    2 adds in trunk

(REGRESSION)[IFC][RTL] wpt/css/css-text/white-space/trailing-space-and-text-alignment-rtl-003.html
​https://bugs.webkit.org/show_bug.cgi?id=235823
<rdar://problem/88186663>

Reviewed by Antti Koivisto.

Source/WebCore:

Reset the trailing whitespace bidi level before handing them over to visual reordering.
see ​https://unicode.org/reports/tr9/#L1
"L1. On each line, reset the embedding level of the following characters to the paragraph embedding level:

...
Any sequence of whitespace characters ... at the end of the line."

It ensures that

<div style="width: 2ch; direction: rtl">AB C</div>

and

<div style="direction: rtl">AB </div>

both have the trailing whitespace positioned _visually_ as trailing (and not leading) content.

After the bidi paragraph processing "AB C" gets a uniform bidi level of 2, while "AB " is split into "AB" and " "
with bidi levels of 2 and 1 respectively.
In the latter case, the difference in bidi levels makes the runs flip visually at reordering.
It makes the trailing whitespace "pushed" to the left side of the "AB" making it _visually_ trailing (the content renders as " AB").
However in case of "AB C" with the line breaking position after " ", we would end up with a single run of "AB " with the bidi level of 2.
This run would render as "AB " turning the trailing whitespace into a _visually_ leading whitespace.

In this patch we ensure that the trailing (non-collapsible) whitespace runs

  1. are detached from their adjoining non-whitespace text runs and
  2. they get their bidi levels reset

Test: fast/text/rtl-pre-wrap-hanging-offset.html

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

LayoutTests:

  • fast/text/rtl-pre-wrap-hanging-offset-expected.html: Added.
  • fast/text/rtl-pre-wrap-hanging-offset.html: Added.
7:58 AM Changeset in webkit [288800] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Do not break content at an inline box boundary
​https://bugs.webkit.org/show_bug.cgi?id=235868

Reviewed by Antti Koivisto.

Source/WebCore:

Handle nested inline boxes, when the breaking position is between at an inline box boundary.
e.g.

<div style="width: 1px"><span><span><span>this_content_overflow</span></span></span></div>

while the breaking position is between the 3rd <span> and the letter 't', we should not let the first
line have all the <span><span><span> content only, but instead find a more reasonable breaking position by
looking at the previous runs.
This patch expands "findTrailingRunIndex" to find multiple, subsequent (nested) inline boxes.

Test: fast/inline/nested-inline-box-with-word-break.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::findTrailingRunIndex):

LayoutTests:

  • fast/inline/nested-inline-box-with-word-break-expected.html: Added.
  • fast/inline/nested-inline-box-with-word-break.html: Added.
5:19 AM Changeset in webkit [288799] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] GstStructure to JSON serialization
​https://bugs.webkit.org/show_bug.cgi?id=235760

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-01-30
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

For GstWebRTC stats logging purposes JSON is a good payload format. As the stats are
initially notified via GstStructures we need a way to export those to JSON, using a new API
in GStreamerCommon.

Covered by API tests.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::structureValueToJSON):
(WebCore::parseStructureValue):
(WebCore::structureToJSON):
(WebCore::structureToJSONString):

  • platform/graphics/gstreamer/GStreamerCommon.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp:

(TestWebKitAPI::TEST_F):

Jan 29, 2022:

10:47 PM Changeset in webkit [288798] by Kocsen Chung
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.17

9:58 PM Changeset in webkit [288797] by rniwa@webkit.org
  • 18 edits in trunk/Source

Delete runtime preference for enabling request animation frame
​https://bugs.webkit.org/show_bug.cgi?id=235866

Reviewed by Darin Adler.

Source/WebCore:

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::requestAnimationFrameEnabled const): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::clearDocumentPointer):

  • workers/WorkerAnimationController.cpp:

(WebCore::WorkerAnimationController::scheduleAnimation):
(WebCore::WorkerAnimationController::serviceRequestAnimationFrameCallbacks):

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRequestAnimationFrameEnabled):
(WKPreferencesGetRequestAnimationFrameEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setRequestAnimationFrameEnabled:]):
(-[WKPreferences _requestAnimationFrameEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(-[WebPreferences requestAnimationFrameEnabled]):
(-[WebPreferences setRequestAnimationFrameEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKitLegacy/win:

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::setRequestAnimationFrameEnabled):
(WebPreferences::requestAnimationFrameEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
9:21 PM Changeset in webkit [288796] by Ben Nham
  • 2 edits
    1 add in trunk/Tools

Add web push message decryption routines
​https://bugs.webkit.org/show_bug.cgi?id=233903

Reviewed by Brady Eidson.

Somehow the unit tests were left out of the original patch that was landed. Adding them back
in this patch.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/PushMessageCrypto.cpp: Added.

(TestWebKitAPI::mustBase64URLDecode):
(TestWebKitAPI::makeAES128GCMClientKeys):
(TestWebKitAPI::TEST):
(TestWebKitAPI::makeAESGCMClientKeys):

7:26 PM Changeset in webkit [288795] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

[WebIDL] Add a sensible error message for a primitive non-null EventListener
​https://bugs.webkit.org/show_bug.cgi?id=235863

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-29
Reviewed by Darin Adler.

Source/WebCore:

This patch moves isObject() check to JSEventListener converter, aligning it with
callback interface converter and removing now unused create() overload, and makes
code generator pass an exception thrower with a user-friendly TypeError message.

Since JSEventListener is quite different from other callback interfaces, we can't
make IsCallbackInterface() recognize it just yet, thus the type name has to be
hard-coded if we want the error message to be consistent with other generated ones.

Test: fast/events/event-listener-not-an-object.html

  • bindings/js/JSDOMConvertEventListener.h:

(WebCore::Converter<IDLEventListener<T>>::convert):

  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventListener.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetArgumentExceptionFunction):

  • bindings/scripts/test/JS/*: Updated.
  • dom/EventTarget.idl:

Rename EventListener parameter to "listener" to match MDN / Chrome DevTools / matchMedia().

LayoutTests:

  • fast/events/event-listener-not-an-object-expected.txt: Added.
  • fast/events/event-listener-not-an-object.html: Added.
3:15 PM Changeset in webkit [288794] by rniwa@webkit.org
  • 6 edits
    1 delete in trunk/Source/WebCore

Delete EventQueue.h
​https://bugs.webkit.org/show_bug.cgi?id=235862

Reviewed by Wenson Hsieh.

Deleted the useless header file.

  • Headers.cmake:
  • Modules/indexeddb/IDBDatabase.cpp:
  • Modules/indexeddb/IDBRequest.cpp:
  • Modules/indexeddb/IDBTransaction.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventQueue.h: Removed.
1:00 PM Changeset in webkit [288793] by rniwa@webkit.org
  • 27 edits
    3 deletes in trunk/Source/WebCore

Delete most code for beforeload event
​https://bugs.webkit.org/show_bug.cgi?id=234804

Reviewed by Antti Koivisto.

Delete code for beforeload event as the event has been disabled successfully in r261946.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/BeforeLoadEvent.cpp: Removed.
  • dom/BeforeLoadEvent.h: Removed.
  • dom/BeforeLoadEvent.idl: Removed.
  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
  • dom/EventNames.in:
  • dom/Node.cpp:

(WebCore::Node::dispatchBeforeLoadEvent): Deleted.

  • dom/Node.h:
  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet): m_isHandlingBeforeLoad is never true.

  • dom/ProcessingInstruction.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript): dispatchBeforeLoadEvent always returned true
when beforeload event is disabled, and the element is always connected here.
(WebCore::ScriptElement::requestModuleScript): Ditto.

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::updateWidget): Deleted the no-op code.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::shouldLoadLink):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::selectNextSourceChild):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::updateWidget):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::guardedDispatchBeforeLoadEvent): Deleted.
(WebCore::HTMLPlugInElement::pluginWidget const): m_inBeforeLoadEventHandler is never true.

  • html/HTMLPlugInElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::canLoadURL):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader): Deleted the no-op code.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement): Document will never have beforeload event listener
but keep the call to dispatchPendingBeforeLoadEvent since we depend on it updating renderer.
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): Keep the only side effect left which is
to update the renderer.

  • loader/ImageLoader.h:
  • page/Settings.yaml: Deleted the option to enable beforeload event.
11:27 AM Changeset in webkit [288792] by Patrick Griffis
  • 14 edits in trunk

CSP: Properly block image content in object elements
​https://bugs.webkit.org/show_bug.cgi?id=235837

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with more passes.

  • web-platform-tests/content-security-policy/object-src/object-src-url-blocked-expected.txt:
  • web-platform-tests/content-security-policy/object-src/object-src-url-embed-blocked-expected.txt:
  • web-platform-tests/content-security-policy/object-src/object-src-url-redirect-blocked.sub-expected.txt:

Source/WebCore:

When an image is loaded through an object element it now passes through
the object-src directive check as the spec documents:
​https://www.w3.org/TR/CSP3/#directive-object-src

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::loadedFromPluginElement):
(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::loadedFromOpaqueSource): Deleted.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowObjectFromSource const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2-expected.txt:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3-expected.txt:
8:43 AM Changeset in webkit [288791] by Tyler Wilcock
  • 5 edits
    2 adds in trunk

AX: Isolated tree objects don't update their AXPropertyName::ElementRect or AXPropertyName::BoundingBoxRect in response to dynamic page changes
​https://bugs.webkit.org/show_bug.cgi?id=235833

Reviewed by Chris Fleizach.

Source/WebCore:

Because isolated tree objects don't update their
AXPropertyName::ElementRect or AXPropertyName::BoundingBoxRect
anytime after AXIsolatedObject::initializeAttributeData,
any dynamic page change that causes the element to move or change
size will result in the isolated AX object holding out-of-date values
for these properties.

This patch remedies this deferring to the live, main-thread AX object
when serving elementRect and boundingBoxRect.

Test: accessibility/dynamic-changes-update-position.html

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
Stop caching the now removed properties AXPropertyName::ElementRect and AXPropertyName::BoundingBoxRect.
(WebCore::AXIsolatedObject::boundingBoxRect const):
(WebCore::AXIsolatedObject::elementRect const):
Retrieve these values from the main-thread instead of the now removed
AXPropertyName::ElementRect and AXPropertyName::BoundingBoxRect.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:

Remove AXPropertyName::ElementRect and AXPropertyName::BoundingBoxRect.

LayoutTests:

Add test reproducing this issue.

  • accessibility/dynamic-changes-update-position-expected.txt: Added.
  • accessibility/dynamic-changes-update-position.html: Added.
6:43 AM Changeset in webkit [288790] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[LibWebRTC] ifdef cleanups
​https://bugs.webkit.org/show_bug.cgi?id=235858

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-01-29
Reviewed by Youenn Fablet.

ENABLE(WEB_RTC) does not necessarily imply USE(LIBWEBRTC), so guard libwebrtc-specific files
with explicit USE(LIBWEBRTC) ifdefs.

  • Modules/mediastream/STUNMessageParsing.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
3:49 AM Changeset in webkit [288789] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

Capturing WebGL canvas through peer connection shows the image flipped
​https://bugs.webkit.org/show_bug.cgi?id=235600
<rdar://problem/88043325>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-29
Reviewed by Dean Jackson.

Source/WebCore:

Mirror and rotate the WebGL image at the source since WebRTC
does not support mirroring.

Test: webrtc/canvas-to-peer-connection.html

  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::paintCompositedResultsToMediaSample):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::setOwnershipIdentity):

  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm:

(WebCore::setOwnershipIdentityForCVPixelBuffer):

LayoutTests:

Test sending WebGL image through a peer connection to a local video
and assert that the image is as drawn.

  • platform/glib/TestExpectations:
  • webrtc/canvas-to-peer-connection-expected.txt: Added.
  • webrtc/canvas-to-peer-connection.html: Added.
  • webrtc/routines.js:
  • webrtc/video-replace-track.html:

Jan 28, 2022:

11:34 PM Changeset in webkit [288788] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

css/css-backgrounds/animations/box-shadow-composition.html has failures
​https://bugs.webkit.org/show_bug.cgi?id=235773

Unreviewed sync with WPT upstream, our copy of this test was outdated and we in fact pass
all assertions.

  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition.html:
11:32 PM Changeset in webkit [288787] by graouts@webkit.org
  • 3 edits
    17 adds
    6 deletes in trunk/LayoutTests

[WPT] Update CSS animation tests
​https://bugs.webkit.org/show_bug.cgi?id=235759

Unreviewed manual WPT update.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-empty-no-draw-crash-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-empty-no-draw-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-removed-element-crash-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-removed-element-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask-ref.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask.html: Added.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2-expected.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3-expected-mismatch.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-expected.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation.html: Removed.
  • web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
  • web-platform-tests/css/css-fonts/animations/system-fonts.html: Added.
  • web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation.html: Added.

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
11:24 PM Changeset in webkit [288786] by Antti Koivisto
  • 51 edits in trunk

[CSS container Queries] Include container queries in RuleSets
​https://bugs.webkit.org/show_bug.cgi?id=235763

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:

Source/WebCore:

Build the data structures in RuleSets. They are not yet used, all queries behave as if they match.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):

  • style/RuleSet.h:
  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addStyleRule):

  • style/RuleSetBuilder.h:

LayoutTests:

9:33 PM Changeset in webkit [288785] by Diego Pino Garcia
  • 4 edits in trunk/Source

Source/JavaScriptCore:
[WPE] Unreviewed, fix non-unified build after r288758
​https://bugs.webkit.org/show_bug.cgi?id=235853

  • wasm/WasmBranchHintsSectionParser.cpp:

Source/WebCore:
[WPE] Unreviewed, fix non-unified build after r288759
​https://bugs.webkit.org/show_bug.cgi?id=235853

  • Modules/webaudio/AudioWorkletNode.cpp:
9:22 PM Changeset in webkit [288784] by Fujii Hironori
  • 29 edits
    1 delete in trunk

[WinCairo] WebKitTestRunner should support pixel dump for accelerated compositing mode
​https://bugs.webkit.org/show_bug.cgi?id=215041

Reviewed by Don Olmstead.

Source/WebKit:

Windows WebKitTestRunner is using WM_PRINT message to get the
widonws content for the pixel dump support. However, in the
accelerated compositing mode, the compositor in the GPU process
directly renders to the HWND of UI process.

This change added the offscreen rendering mode for the compositor.
In this mode, the rendering results of the compositor are captured
by using glReadPixels in GPU process, and transferred it to UI
process via the non-AC mode code path.

Added WKViewSetUsesOffscreenRendering API to enable the offscreen
rendering mode.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createWCLayerTreeHost):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.cpp:

(WebKit::RemoteWCLayerTreeHost::create):
(WebKit::RemoteWCLayerTreeHost::RemoteWCLayerTreeHost):
(WebKit::RemoteWCLayerTreeHost::update):

  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.h:
  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.messages.in:
  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::WCScene):
(WebKit::WCScene::update):

  • GPUProcess/graphics/wc/WCScene.h:
  • PlatformWin.cmake:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/win/WKView.cpp:

(WKViewSetUsesOffscreenRendering):

  • UIProcess/API/C/win/WKView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/wc/DrawingAreaProxyWC.cpp:

(WebKit::DrawingAreaProxyWC::dispatchAfterEnsuringDrawing):

  • UIProcess/wc/DrawingAreaProxyWC.h:
  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::usesOffscreenRendering const):

  • UIProcess/win/PageClientImpl.h:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setUsesOffscreenRendering):
(WebKit::WebView::usesOffscreenRendering const):

  • UIProcess/win/WebView.h:
  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.cpp:

(WebKit::RemoteWCLayerTreeHostProxy::RemoteWCLayerTreeHostProxy):
(WebKit::RemoteWCLayerTreeHostProxy::ensureGPUProcessConnection):
(WebKit::RemoteWCLayerTreeHostProxy::disconnectGpuProcessIfNeeded):
(WebKit::RemoteWCLayerTreeHostProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteWCLayerTreeHostProxy::update):
(WebKit::RemoteWCLayerTreeHostProxy::didUpdate): Deleted.

  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.h:
  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.messages.in: Removed.
  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::DrawingAreaWC):
(WebKit::DrawingAreaWC::setNeedsDisplay):
(WebKit::DrawingAreaWC::setNeedsDisplayInRect):
(WebKit::DrawingAreaWC::forceRepaintAsync):
(WebKit::DrawingAreaWC::sendUpdateAC):
(WebKit::DrawingAreaWC::didUpdate):

  • WebProcess/WebPage/wc/DrawingAreaWC.h:

Tools:

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::PlatformWebView):

8:44 PM Changeset in webkit [288783] by mmaxfield@apple.com
  • 7 edits
    2 adds in trunk

REGRESSION(r281687): Space widths have synthetic bold applied to them in the fast text codepath but not the complex text codepath
​https://bugs.webkit.org/show_bug.cgi?id=235755
<rdar://problem/88052073>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/synthetic-bold-space-width-expected.html: Added.
  • web-platform-tests/css/css-fonts/synthetic-bold-space-width.html: Added.

Source/WebCore:

r281687 made Font::widthForGlyph() return the non-synthetically-expanded width,
instead of the synthetically-expanded width.

I think this is philosophically correct, because Font::widthForGlyph() is called before shaping,
and shaping requires the original width. If some custom code is asking for the width of specific
characters without going through WidthIterator or ComplexTextController, that code needs to
determine whether or not it's going to run shaping, and thus when it should be adding in the
synthetic offset.

adjustGlyphsAndAdvances() used to subtract out the synthetic offset because it was expecting
Font::widthForGlyph() to return the already-expanded width. So, the solution is just stop subtracting
the offset, because it hasn't been applied in the first place.

Test: imported/w3c/web-platform-tests/css/css-fonts/synthetic-bold-space-width.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/Font.h:

LayoutTests:

  • platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
8:22 PM Changeset in webkit [288782] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WebKit

Implement CSS overscroll-behavior for iOS
​https://bugs.webkit.org/show_bug.cgi?id=233788

Reviewed by Simon Fraser.

Add setting of ScrollView parameters based on overscroll-behavior values.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

7:29 PM Changeset in webkit [288781] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16

Tag Safari-613.1.16.

7:29 PM Changeset in webkit [288780] by Kocsen Chung
  • 1 delete in tags/Safari-613.1.16

Delete tag.

7:27 PM Changeset in webkit [288779] by Kocsen Chung
  • 21 edits
    1 move
    3 adds in branches/safari-613-branch/Source

Apply patch. rdar://problem/82627192

7:27 PM Changeset in webkit [288778] by Kocsen Chung
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r287961. rdar://problem/86282584

[Re-landing] Update hashThreadState() to exclude opaque_flags.
​https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584

Reviewed by Keith Miller.

Source/JavaScriptCore:

Removed some unused code.

  • runtime/MachineContext.h: (JSC::MachineContext::stackPointer): (JSC::MachineContext::framePointer): (JSC::MachineContext::instructionPointer): (JSC::MachineContext::linkRegister): (JSC::MachineContext::setStackPointer): Deleted. (JSC::MachineContext::setFramePointer): Deleted. (JSC::MachineContext::setLinkRegister): Deleted.

Source/WTF:

The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the
opaque_flags field.

Also remove some unused code.

  • wtf/PlatformRegisters.h:
  • wtf/threads/Signals.cpp: (WTF::hashThreadState):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:56 PM Changeset in webkit [288777] by Nikos Mouchtaris
  • 8 edits
    9 adds in trunk

Implement CSS overscroll-behavior for asynchronous scroll on Mac
​https://bugs.webkit.org/show_bug.cgi?id=220139

Reviewed by Simon Fraser.

Source/WebCore:

Split up patch by Cathie Chen and Frederic Wang. Add function for blocking scroll chaining
and filtering scroll delta depending on the values of overscroll behavior for a scrolling
node. This patch is for asynchronous scrolling only.

Tests: fast/scrolling/mac/async-overscroll-behavior-element.html

fast/scrolling/mac/async-overscroll-behavior-iframe.html
fast/scrolling/mac/async-overscroll-behavior-unscrollable-element.html
fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldBlockScrollChainingWithNode):
(WebCore::ScrollingTree::handleWheelEventWithNode):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate):
(WebCore::RenderLayerCompositor::rootOrBodyStyleChanged):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRecompositeLayer const):

LayoutTests:

  • fast/scrolling/mac/async-overscroll-behavior-element-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-element.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-iframe-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-iframe.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-element-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-element.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe.html: Added.
  • fast/scrolling/resources/overscroll-behavior-support.js: Added.

(getDeltas):
(async mouseWheelScrollAndWait):

6:42 PM Changeset in webkit [288776] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Temporarily add syscall to sandbox
​https://bugs.webkit.org/show_bug.cgi?id=235841
<rdar://88197549>

Reviewed by Brent Fulgham.

Temporarily add syscall to sandbox in the WebContent process on macOS. This can be removed when <rdar://88210738> is fixed.

  • WebProcess/com.apple.WebProcess.sb.in:
6:15 PM Changeset in webkit [288775] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ Release wk1 arm64 ] Bots are flaky exiting testing after 500 layout-test failures (235733)
​https://bugs.webkit.org/show_bug.cgi?id=235733

Uneviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skipping test for mac BigSur and later wk1 arm64 Release because it intermittently causes many tests to fail.
6:12 PM Changeset in webkit [288774] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: AccessibilitySlider::inputElement should check if the renderer has become null
​https://bugs.webkit.org/show_bug.cgi?id=235827

Reviewed by Chris Fleizach.

After ​https://bugs.webkit.org/show_bug.cgi?id=235715, we no longer
call the update version of children() from logging. This has made
accessibility/mac/spinbutton-valuedescription.html a constant failure
in debug mode only, since the logging is trying to print an AX tree that
is out of sync with the DOM. This test uses JS to remove an <input>
renderer + node.

Fixes accessibility/mac/spinbutton-valuedescription.html in debug.

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::inputElement const):
Null check m_renderer before using it.
(WebCore::AccessibilitySlider::getAttribute const):
(WebCore::AccessibilitySlider::valueForRange const):
(WebCore::AccessibilitySlider::maxValueForRange const):
(WebCore::AccessibilitySlider::minValueForRange const):
Null check the result of inputElement() before dereferencing it.

5:23 PM Changeset in webkit [288773] by Aditya Keerthi
  • 14 edits in trunk

Add SPI to retrieve the rect of a found text range
​https://bugs.webkit.org/show_bug.cgi?id=235830
rdar://88193004

Reviewed by Wenson Hsieh.

Source/WebKit:

Clients of found text ranges need a way to determine their position
in the web view. An asynchronous SPI is provided to support this need.
This information is not encoded in the text range itself, as the
position can change due to scrolling in sub-scrollable regions.
Consequently, the position must be obtained by communicating with the
WebProcess.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _requestRectForFoundTextRange:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestRectForFoundTextRange):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestRectForFoundTextRange:completionHandler:]):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::requestRectForFoundTextRange):

  • WebProcess/WebPage/WebFoundTextRangeController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestRectForFoundTextRange):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Added a test to verify the API works as expected.

The test uses an <iframe> to verify behavior for scrolled
<iframe>s.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(-[TestSearchAggregator initWithCompletionHandler:]):
(-[TestSearchAggregator foundRange:forSearchString:inDocument:]):
(-[TestSearchAggregator foundRanges]):
(-[TestSearchAggregator count]):
(TEST):

5:02 PM Changeset in webkit [288772] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Update CaptivePortal entitlements to support full GigaCage
​https://bugs.webkit.org/show_bug.cgi?id=235834
<rdar://problem/88075019>

Reviewed by Chris Dumez.

The CaptivePortal process, which does not allow JIT, cannot enable GigaCage without
a new entitlement.

  • Scripts/process-entitlements.sh:
4:54 PM Changeset in webkit [288771] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16

Tag Safari-613.1.16.

4:50 PM Changeset in webkit [288770] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288750. rdar://problem/88177392

[macOS][WP] Add required syscall
​https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Darin Adler.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:50 PM Changeset in webkit [288769] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287844. rdar://problem/87262730

[MacCatalyst] Add syscalls from iOS sandbox
​https://bugs.webkit.org/show_bug.cgi?id=234970
<rdar://problem/87262730>

Reviewed by Darin Adler.

Add syscalls from iOS sandbox that are not in the MacCatalyst sandbox, since these are potentially
still needed on MacCatalyst.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287844 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:39 PM Changeset in webkit [288768] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.6

Tag Safari-613.1.14.5.6.

4:38 PM Changeset in webkit [288767] by Russell Epstein
  • 4 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288766. rdar://problem/88207448

Catalyst builds for WebCore and WebKitLegacy don't create proper symlinks for builds with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235839

Reviewed by Saam Barati.

Source/WebCore:

Fixed ALTERNATE_ROOT_PATH to have a proper path for Catalyst builds, but not for normal macOS builds
since they are under WebKit.framework.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy/mac:

Fixed ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH to have proper paths for Catalyst builds,
but not for normal macOS builds since they are under WebKit.framework.

  • Configurations/WebKitLegacy.xcconfig:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:36 PM Changeset in webkit [288766] by msaboff@apple.com
  • 4 edits in trunk/Source

Catalyst builds for WebCore and WebKitLegacy don't create proper symlinks for builds with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235839

Reviewed by Saam Barati.

Source/WebCore:

Fixed ALTERNATE_ROOT_PATH to have a proper path for Catalyst builds, but not for normal macOS builds
since they are under WebKit.framework.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy/mac:

Fixed ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH to have proper paths for Catalyst builds,
but not for normal macOS builds since they are under WebKit.framework.

  • Configurations/WebKitLegacy.xcconfig:
4:25 PM Changeset in webkit [288765] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.6

4:14 PM Changeset in webkit [288764] by Kocsen Chung
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.16

4:05 PM Changeset in webkit [288763] by Alexey Shvayka
  • 8 edits in trunk

Remove showModalDialog-specific logic from JSDOMWindow::getOwnPropertySlot()
​https://bugs.webkit.org/show_bug.cgi?id=234282

Reviewed by Yusuke Suzuki.

Source/WebCore:

This change removes showModalDialog-specific logic from JSDOMWindow::getOwnPropertySlot()
in favor of a setter-less CustomValue property on window, which returns a function only
if modals are allowed, and can be overriden by userland code.

Since we need to support setCanRunModal(true) being called after DOMWindow is initialized,
[EnabledByQuirk] and friends could not be used. However, once the function was exposed,
there is no point in hiding it, so the CustomValue getter replaces itself with a regular
data property to preserve function's identity (covered by fast/dom/wrapper-identity.html).

The patch makes JSDOMWindow's getOwnPropertySlot() consistent with its getOwnPropertyNames()
regarding the presence of "showModalDialog" property, and fixes JSDOMWindow::getOwnPropertySlot()
being ignored by LLInt when accessing "showModalDialog" from scope, which resulted in exposing
the function even if modals were disallowed.

Test: fast/dom/Window/forbid-showModalDialog.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMWindow::showModalDialog): Deleted.

  • bindings/js/JSDOMWindowCustom.h:
  • page/DOMWindow.idl:

LayoutTests:

  • fast/dom/Window/forbid-showModalDialog-expected.txt:
  • fast/dom/Window/forbid-showModalDialog.html:
3:12 PM Changeset in webkit [288762] by Aditya Keerthi
  • 9 edits in trunk/Source/WebKit

Migrate _UITextSearching implementation to be backed by WebFoundTextRangeController
​https://bugs.webkit.org/show_bug.cgi?id=235693
rdar://88117303

Reviewed by Tim Horton.

Migrate _UITextSearching implementation to be backed by
WebFoundTextRangeController to support restoreable find results.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView scrollRangeToVisible:inDocument:]):
(-[WKWebView didBeginTextSearchOperation]):
(-[WKWebView didEndTextSearchOperation]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findTextRangesForStringMatches):
(WebKit::WebPageProxy::decorateTextRangeWithStyle):
(WebKit::WebPageProxy::scrollTextRangeToVisible):
(WebKit::WebPageProxy::clearAllDecoratedFoundText):
(WebKit::WebPageProxy::didBeginTextSearchOperation):
(WebKit::WebPageProxy::didEndTextSearchOperation):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView offsetFromPosition:toPosition:]):
(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKContentView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKContentView scrollRangeToVisible:inDocument:]):
(-[WKContentView clearAllDecoratedFoundText]):
(-[WKContentView didBeginTextSearchOperation]):
(-[WKContentView didEndTextSearchOperation]):
(+[WKFoundTextRange foundTextRangeWithWebFoundTextRange:]):
(-[WKFoundTextRange start]):
(-[WKFoundTextRange end]):
(-[WKFoundTextRange webFoundTextRange]):
(+[WKFoundTextPosition textPositionWithOffset:order:]):
(+[WKFoundTextRange foundTextRangeWithRect:index:]): Deleted.
(+[WKFoundTextPosition textPositionWithIndex:]): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::findTextRangesForStringMatches):
(WebKit::WebPage::decorateTextRangeWithStyle):
(WebKit::WebPage::scrollTextRangeToVisible):
(WebKit::WebPage::clearAllDecoratedFoundText):
(WebKit::WebPage::didBeginTextSearchOperation):
(WebKit::WebPage::didEndTextSearchOperation):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::foundTextRangeController):

  • WebProcess/WebPage/WebPage.messages.in:
3:06 PM Changeset in webkit [288761] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable wasm branch hinting
​https://bugs.webkit.org/show_bug.cgi?id=235832

Reviewed by Saam Barati.

​https://github.com/WebAssembly/branch-hinting is stage-3 wasm feature.
Flip the flag to enable it.

  • runtime/OptionsList.h:
1:46 PM Changeset in webkit [288760] by Aditya Keerthi
  • 4 edits in trunk/Source/WebKit

Add support for decorating and scrolling to ranges in WebFoundTextRangeController
​https://bugs.webkit.org/show_bug.cgi?id=235692
rdar://88117232

Reviewed by Wenson Hsieh.

  • Shared/WebFoundTextRange.h:

(WTF::HashTraits<WebKit::WebFoundTextRange>::deletedValue):

The empty and deleted values should not be the same.

(WTF::HashTraits<WebKit::WebFoundTextRange>::constructDeletedValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::isDeletedValue):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::findTextRangesForStringMatches):

Cache the found ranges and their corresponding SimpleRange, to avoid
unnecessary tree traversal each time we want to decorate or scroll to
a found result.

(WebKit::WebFoundTextRangeController::decorateTextRangeWithStyle):

Found ranges can currently be decorated with 3 styles: "Normal",
"Found", and "Highlighted". The "Found" style is drawn using
document markers. The "Highlighted" style is drawn using a
TextIndicator.

(WebKit::WebFoundTextRangeController::scrollTextRangeToVisible):

Use TemporarySelectionChange to make the range visible.

(WebKit::WebFoundTextRangeController::clearAllDecoratedFoundText):
(WebKit::WebFoundTextRangeController::didBeginTextSearchOperation):
(WebKit::WebFoundTextRangeController::didEndTextSearchOperation):
(WebKit::WebFoundTextRangeController::willMoveToPage):
(WebKit::WebFoundTextRangeController::didMoveToPage):
(WebKit::WebFoundTextRangeController::drawRect):
(WebKit::WebFoundTextRangeController::rectsForTextMatchesInRect):
(WebKit::WebFoundTextRangeController::documentForFoundTextRange const):

Use the frame identifer of the WebFoundTextRange to retrieve the
corresponding Document, so that the range can be appropriately
mapped for decoration/scrolling.

(WebKit::WebFoundTextRangeController::simpleRangeFromFoundTextRange):

A helper method to cache WebFoundTextRanges and SimpleRanges.

  • WebProcess/WebPage/WebFoundTextRangeController.h:
12:56 PM Changeset in webkit [288759] by Chris Dumez
  • 14 edits
    1 copy in trunk/Source

ASSERTION FAILED: m_processCallback in WebCore::AudioWorkletProcessor::process
​https://bugs.webkit.org/show_bug.cgi?id=235529

Reviewed by Geoffrey Garen and Darin Adler.

Source/WebCore:

m_processCallback stores the JS wrapper for the AudioWorkletProcessor and the crash
was due to that JS wrapper getting garbage collected while the AudioWorkletNode
was still rendering. The JS wrapper for AudioWorkletProcessor is actually created
by AudioWorkletGlobalScope::createProcessor() and the JavaScript does not usually
keep a reference to it.

To address the issue, I added a visitor to the AudioWorkletGlobalScope wrapper
which visits the processors that it created and that still have an associated
AudioWorkletNode owner.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::createProcessor):
(WebCore::AudioWorkletGlobalScope::processorIsNoLongerNeeded):
(WebCore::AudioWorkletGlobalScope::visitProcessors):

  • Modules/webaudio/AudioWorkletGlobalScope.h:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::~AudioWorkletNode):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setWrapper):
(WebCore::AudioWorkletProcessor::setProcessCallback): Deleted.

  • Modules/webaudio/AudioWorkletProcessor.h:

(WebCore::AudioWorkletProcessor::wrapper):
(WebCore::AudioWorkletProcessor::processCallbackWrapper): Deleted.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAudioWorkletProcessorCustom.cpp:

(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):

Source/WTF:

Add template parameter to WeakHashSet to disable threading assertions. This is useful
when the call site is using locking.

  • wtf/WeakHashSet.h:
  • wtf/WeakPtr.h:
12:48 PM Changeset in webkit [288758] by commit-queue@webkit.org
  • 10 edits
    6 adds in trunk

[JSC] Add support for WASM branch hinting proposal
​https://bugs.webkit.org/show_bug.cgi?id=235581

Patch by Tom Tartarin <​tom@leaningtech.com> on 2022-01-28
Reviewed by Yusuke Suzuki.

JSTests:

Add test for branch hinting custom section

  • wasm.yaml:
  • wasm/branch-hints/branchHintsModule.wasm: Added.
  • wasm/branch-hints/branchHintsSection.js: Added.

(const.module):

Source/JavaScriptCore:

See the proposal for a more detailed description: ​https://github.com/WebAssembly/branch-hinting.

This allows parsing a "code_annotation.branch_hint" custom section,
as per the code annotation proposal: ​https://github.com/WebAssembly/annotations.
This section provides per function information about how likely a branch at a
given offset is to be taken. It is similar to branch weight metadata in LLVM.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addIf):
(JSC::Wasm::AirIRGenerator::addBranch):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addIf):
(JSC::Wasm::B3IRGenerator::addBranch):

  • wasm/WasmBranchHints.h: Added.

(JSC::Wasm::BranchHintMap::add):
(JSC::Wasm::BranchHintMap::getBranchHint const):
(JSC::Wasm::BranchHintMap::isValidKey const):
(JSC::Wasm::isValidBranchHint):

  • wasm/WasmBranchHintsSectionParser.cpp: Added.

(JSC::Wasm::BranchHintsSectionParser::parse):

  • wasm/WasmBranchHintsSectionParser.h: Added.

(JSC::Wasm::BranchHintsSectionParser::BranchHintsSectionParser):

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::getBranchHint const):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseCustom):

12:19 PM Changeset in webkit [288757] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.5

Tag Safari-613.1.14.5.5.

12:18 PM Changeset in webkit [288756] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288749. rdar://problem/87928380

Catalyst builds fail for WebCore, WebKi and WebKitLegacy for builds with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235821

Reviewed by Saam Barati.

Source/WebCore:

The value of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR for Catalyst builds had the system content prefix
after the Catalyst prefix. I reversed them.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Eliminated the system content prefix from ALTERNATE_ROOT_PATH since it is the old location.
Changed the create symlink script to create the directory path leading up to the symlink because
it isn't created for Catalyst builds.

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:09 PM Changeset in webkit [288755] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.5

11:52 AM Changeset in webkit [288754] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Ensure session is added in network process when it creates connection to web process
​https://bugs.webkit.org/show_bug.cgi?id=235754

Reviewed by Chris Dumez.

In NetworkProcess::CreateNetworkConnectionToWebProcess, if the session that web process is using is not added
yet, WorkQueueMessageReceiver cannot be added to the connection and storage messages will be dropped. Usually
session is added in NetworkProcess::AddWebsiteDataStore, which is sent from UI process before
NetworkProcess::CreateNetworkConnectionToWebProcess; but CreateNetworkConnectionToWebProcess message has
DispatchMessageEvenWhenWaitingForSyncReply flag set, so it might get processed earlier.

To fix the issue, now we send set DispatchMessageEvenWhenWaitingForSyncReply flag on AddWebsiteDataStore message
too, so it's processed before CreateNetworkConnectionToWebProcess.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::addSession):

11:48 AM Changeset in webkit [288753] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

JSEventListener::replaceJSFunctionForAttributeListener() should not replace m_wrapper unconditionally
​https://bugs.webkit.org/show_bug.cgi?id=235658

Unreviewed, follow-up to r288648 based on Geoff's feedback.

Assert that if replaceJSFunctionForAttributeListener() is invoked, m_wrapper is
alive and remains unchanged. Remove writeBarrier() as ensureJSFunction() sets it
up only for functions created from source code.

To meet the expectation for Window-reflecting event handlers, ensure that
setAttributeEventListener() is called with the correct wrapper, and also call it
directly on DOMWindow to improve readability.

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-28

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

  • bindings/js/JSEventListener.h:

(WebCore::setWindowEventHandlerAttribute):

11:47 AM Changeset in webkit [288752] by Kocsen Chung
  • 1 edit in branches/safari-613-branch/Source/WTF/wtf/PlatformEnable.h

Apply patch. rdar://problem/88164014

11:29 AM Changeset in webkit [288751] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288591. rdar://problem/87850345

[macOS][WP] Allow mach extension to service

​https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288591 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:07 AM Changeset in webkit [288750] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall
​https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Darin Adler.

  • WebProcess/com.apple.WebProcess.sb.in:
11:03 AM Changeset in webkit [288749] by msaboff@apple.com
  • 6 edits in trunk/Source

Catalyst builds fail for WebCore, WebKi and WebKitLegacy for builds with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235821

Reviewed by Saam Barati.

Source/WebCore:

The value of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR for Catalyst builds had the system content prefix
after the Catalyst prefix. I reversed them.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Eliminated the system content prefix from ALTERNATE_ROOT_PATH since it is the old location.
Changed the create symlink script to create the directory path leading up to the symlink because
it isn't created for Catalyst builds.

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebKit.xcodeproj/project.pbxproj:
11:01 AM Changeset in webkit [288748] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] YarrJIT optimization for character BM search
​https://bugs.webkit.org/show_bug.cgi?id=235738

Reviewed by Saam Barati.

Add micro-optimization of BM search path. Since it is super hot path,
this small improvement offsers 1% in jquery-todomvc-regexp microbenchmark.

ToT Patched

jquery-todomvc-regexp 484.1399+-1.0527 479.0932+-1.0999 definitely 1.0105x faster

  • yarr/YarrJIT.cpp:
10:33 AM Changeset in webkit [288747] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Symbols not always properly hidden when using WebKitAdditions to introduce new API
​https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Follow-up to r288658 to address post commit feedback from Alexey Proskuryakov.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py:

(main):

10:28 AM Changeset in webkit [288746] by ntim@apple.com
  • 2 edits in trunk/Source/WTF

Enable inert attribute feature flag
​https://bugs.webkit.org/show_bug.cgi?id=235668

Reviewed by Darin Adler.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:09 AM Changeset in webkit [288745] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Add copy-to-clipboard button for fuzzy matching meta tag
​https://bugs.webkit.org/show_bug.cgi?id=235665

Reviewed by Darin Adler.

  • fast/harness/image-diff-template.html: Add button which cycles through different versions of

the fuzzy match string to allow for both absolute values and a range. Add a button that copies
that text and inserts into meta tag string prior to copying to clipboard.

  • fast/harness/image-diff-template-expected.txt:
9:37 AM Changeset in webkit [288744] by Ryan Haddad
  • 3 edits in trunk/Tools/CISupport/build-webkit-org

Bring up additional test queues on Big Sur
​https://bugs.webkit.org/show_bug.cgi?id=235446

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

Canonical link: ​https://commits.webkit.org/246537@main

9:29 AM Changeset in webkit [288743] by Patrick Angle
  • 2 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 15.4)
​https://bugs.webkit.org/show_bug.cgi?id=235741

Reviewed by Devin Rousso.

  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

  • Update compatibility comment to reflect that the change is not present in iOS 15.4 or earlier.
  • UserInterface/Protocol/Legacy/15.4/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-15.4.json: Added.
9:16 AM Changeset in webkit [288742] by commit-queue@webkit.org
  • 4 edits in trunk

[XCBuild] Small corrections to build-webkit and Makefile for workspace builds
​https://bugs.webkit.org/show_bug.cgi?id=235747

Patch by Elliott Williams <Elliott Williams> on 2022-01-28
Reviewed by Alexey Proskuryakov.

.:

  • Makefile: Set SCRIPTS_PATH correctly from the root of the repo

Tools:

  • Scripts/build-webkit: When --use-workspace is passed, assume --xcbuild
8:09 AM Changeset in webkit [288741] by Tyler Wilcock
  • 2 edits in trunk/Source/WebKit

AX: Isolated tree object frames no longer encode content offsets, so hit testing should be updated accordingly
​https://bugs.webkit.org/show_bug.cgi?id=235726

Reviewed by Chris Fleizach.

In -[WKAccessibilityWebPageObjectMac accessibilityHitTest], we have a special isolated tree case:

Isolated tree frames have the offset encoded into them so we don't need to undo here.
#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)

applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled();

#endif

The statement in the comment no longer seems to be true, as not applying this content offset results
in hit testing working incorrectly (the point given to WebCore is too small).

This is because isolated tree hit testing used to use relative frames:

​https://github.com/WebKit/WebKit/blob/f5525921aac090ca9544cce2a3ac28e38f92c9ba/Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp#L115

But now doesn't, instead deferring to the live, main-thread AX object, which doesn't use relative frames:

​https://github.com/WebKit/WebKit/blob/4221a510fe4678cf1a03e5c06878cf2d3f0c1738/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp#L814

This patch removes this isolated-tree-specific behavior.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

8:00 AM Changeset in webkit [288740] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Only make a single request to GitHub when validating PR
​https://bugs.webkit.org/show_bug.cgi?id=235716
<rdar://problem/88133197>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(GitHubMixin._is_pr_closed): Accept pr_json, do not make request.
(GitHubMixin._is_pr_obsolete): Ditto.
(ValidateChange.validate_github): Make request and pass json to functions.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246533@main

7:27 AM Changeset in webkit [288739] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][a11y] WTR: implement AccessibilityUIElement::isIgnored() for ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235761

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::isIgnored const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isIgnored const):

7:25 AM Changeset in webkit [288738] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][a11y] Return the list of column/row headers from header cells too with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235711

Reviewed by Adrian Perez de Castro.

Source/WebCore:

We are only returning the list of column/row headers from cells that are not headers for consistency with
chromium. However, our layout tests don't expect that and firefox doesn't do it either.

  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):

Tools:

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTableBasic):

7:22 AM Changeset in webkit [288737] by graouts@webkit.org
  • 2 edits
    4 deletes in trunk/LayoutTests

[WPT] Remove outdated Web Animations expectations
​https://bugs.webkit.org/show_bug.cgi?id=235767

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
5:28 AM Changeset in webkit [288736] by Pablo Saavedra
  • 2 edits in trunk

[WPE] Build error with ACCESSIBILITY=OFF after r288731
​https://bugs.webkit.org/show_bug.cgi?id=235764

Reviewed by Adrian Perez de Castro.

  • Source/cmake/OptionsWPE.cmake:
3:35 AM Changeset in webkit [288735] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] validate-change step fails while running for a try build
​https://bugs.webkit.org/show_bug.cgi?id=235750

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/loadConfig.py:

(loadBuilderConfig):

Canonical link: ​https://commits.webkit.org/246528@main

Jan 27, 2022:

11:58 PM Changeset in webkit [288734] by Chris Dumez
  • 20 edits in trunk

Radio buttons with no form owner are not grouped
​https://bugs.webkit.org/show_bug.cgi?id=220502
<rdar://problem/73300895>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

Per the HTML specification and to match the behavior of both Gecko and Blink,
radio buttons should still be grouped, even if they are disconnected and not
owned by a form.

This patch aligns our behavior with Gecko and Blink and is based on the following
Blink commit:

No new tests, rebaselined existing tests.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didChangeForm):
(WebCore::HTMLInputElement::insertedIntoAncestor):
(WebCore::HTMLInputElement::removedFromAncestor):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup const):

  • html/InputType.h:

(WebCore::InputType::willUpdateCheckedness):

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::valueMissing const):
(WebCore::RadioInputType::willUpdateCheckedness):

  • html/RadioInputType.h:

LayoutTests:

  • fast/forms/radio/ValidityState-valueMissing-radio-expected.txt:
  • fast/forms/radio/ValidityState-valueMissing-radio.html:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:

Update existing tests to reflect behavior change. I have verified that our behavior on those tests
is aligned with both Firefox and Chrome.

  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:

Rebaseline existing WPT tests now that more checks are passing.

11:33 PM Changeset in webkit [288733] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r288672
​https://bugs.webkit.org/show_bug.cgi?id=235756

  • Modules/webxr/XRReferenceSpaceEvent.cpp:
  • loader/ProgressTracker.h:
11:31 PM Changeset in webkit [288732] by Aditya Keerthi
  • 15 edits
    3 copies
    2 adds in trunk/Source

Introduce WebFoundTextRange and WebFoundTextRangeController to support restorable find results
​https://bugs.webkit.org/show_bug.cgi?id=235691
rdar://88117167

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/TextIterator.cpp:

(WebCore::findIteratorOptions): Deleted.

  • editing/TextIterator.h:

(WebCore::findIteratorOptions):

Moved method into header to share logic.

  • page/Page.cpp:

(WebCore::Page::findTextMatches):

Added a way to suppress marking text matches.

  • page/Page.h:

Source/WebKit:

To better support the _UITextSearching protocol, WKWebView needs to be
able to restore find-in-page results found in other views with the same
content.

The desired functionality is achieved through the use of two new interfaces:
WebFoundTextRange, which represents a range of found text, and
WebFoundTextRangeController, which will be responsible for finding,
decorating, and scrolling to ranges.

A "found text range" is uniquely identified by a location, length,
frame identifier, and order. The location and length represent a
character range in document corresponding to the frame identifier.
The order represents the relative ordering between ranges - for
example, results in the main frame are ordered before results in a
subframe.

This is the first in a series of patches that implements the interface.
The available methods on WebFoundTextRangeController map one-to-one with
the _UITextSearching protocol. This patch implements the creation of
restorable found ranges.

  • Scripts/generate-unified-sources.sh:

Increase unified build files to 120.

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebFindOptions.cpp: Copied from Source/WebKit/Shared/WebFindOptions.h.

(WebKit::core):

  • Shared/WebFindOptions.h:
  • Shared/WebFoundTextRange.cpp:

(WebKit::WebFoundTextRange::operator== const):
(WebKit::WebFoundTextRange::encode const):
(WebKit::WebFoundTextRange::decode):

  • Shared/WebFoundTextRange.h:

(WTF::WebFoundTextRangeHash::hash):
(WTF::WebFoundTextRangeHash::equal):
(WTF::HashTraits<WebKit::WebFoundTextRange>::emptyValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::constructDeletedValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::isDeletedValue):

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::decode):

Fix unified source-related build failure.

  • Sources.txt:
  • UnifiedSources-output.xcfilelist:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::core): Deleted.

  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/WebFoundTextRangeController.cpp: Added.

(WebKit::WebFoundTextRangeController::WebFoundTextRangeController):
(WebKit::WebFoundTextRangeController::findTextRangesForStringMatches):

Use the FrameTrees's uniqueName as a frame identifier for the found
text range. These names are consistent across web content with the
same markup.

(WebKit::WebFoundTextRangeController::decorateTextRangeWithStyle):
(WebKit::WebFoundTextRangeController::scrollTextRangeToVisible):
(WebKit::WebFoundTextRangeController::clearAllDecoratedFoundText):
(WebKit::WebFoundTextRangeController::didBeginTextSearchOperation):
(WebKit::WebFoundTextRangeController::didEndTextSearchOperation):
(WebKit::WebFoundTextRangeController::willMoveToPage):
(WebKit::WebFoundTextRangeController::didMoveToPage):
(WebKit::WebFoundTextRangeController::mouseEvent):
(WebKit::WebFoundTextRangeController::drawRect):

  • WebProcess/WebPage/WebFoundTextRangeController.h: Added.
11:05 PM Changeset in webkit [288731] by Carlos Garcia Campos
  • 11 edits in trunk

[WPE][a11y] Add option to build with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235701

Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • PlatformWPE.cmake:
  • SourcesWPE.txt:

Source/WebKit:

  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformDetach):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

Tools:

  • WebKitTestRunner/PlatformWPE.cmake:
11:04 PM Changeset in webkit [288730] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[GTK][a11y] Do not set the accessibility root object on svg image page elements with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235705

Reviewed by Adrian Perez de Castro.

This was needed only because of isolated tree mode.

  • accessibility/AccessibilityRenderObject.cpp:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:
  • accessibility/atspi/AccessibilityObjectAtspi.h:
11:03 PM Changeset in webkit [288729] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Ignore span elements with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235704

Reviewed by Adrian Perez de Castro.

Their text contents are exposed as part of the parent object.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

11:02 PM Changeset in webkit [288728] by graouts@webkit.org
  • 20 edits
    5 adds in trunk

[Model] Allow disabling interaction
​https://bugs.webkit.org/show_bug.cgi?id=227621
<rdar://problem/80079703>

Reviewed by Darin Adler.

Source/WebCore:

We add support for the "interactive" IDL property and HTML attribute as discussed
in the <model> explainer at ​https://github.com/WebKit/explainers/tree/main/model.

If the "interactive" property is "true", then the HTML "interactive" attribute is
set on the element. If the property is "false", then the HTML attribute is absent.

Likewise, if the HTML attribute is present, the property returns "true". If the
HTML attribute is midding, the property returns "false".

Note that the value held by the HTML attribute is not taken into account, its mere
presence is all that is required.

Based on the value of the "interactive" property, we either disable or enable
interaction. On macOS, we check the property in HTMLModelElement::defaultEventHandler()
while on iOS, where dragging is performed entirely in the UI process, we use the
new ModelPlayer::setInteractionEnabled() method.

By default, interaction is disabled.

Tests: model-element/model-element-interactive-dragging.html

model-element/model-element-interactive.html

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::isInteractive const):
(WebCore::HTMLModelElement::attributeChanged):
(WebCore::HTMLModelElement::defaultEventHandler):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:
  • Modules/model-element/ModelPlayer.cpp:

(WebCore::ModelPlayer::setInteractionEnabled):

  • Modules/model-element/ModelPlayer.h:
  • html/HTMLAttributeNames.in:

Source/WebKit:

Override the new ModelPlayer::setInteractionEnabled() method for the iOS flavor
and send the value up to the UI process such that it may set the matching value
for UIView.userInteractionEnabled on the matching WKModelView.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::setInteractionEnabledForModelElement):

  • UIProcess/ModelElementController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementSetInteractionEnabled):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKModelView.mm:

(-[WKModelView initWithModel:]):

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::setInteractionEnabled):

LayoutTests:

Add two new tests:

  • model-element/model-element-interactive.html tests the "interactive" IDL property

and the "interactive" HTML attribute,

  • model-element/model-element-interactive-dragging.html tests that the "interactive"

IDL property correctly disables setting the camera by dragging when "false", and allows
it when "true".

We also refactor some code previously found in model-element/model-element-camera.html
to now be in the shared model-element/resources/model-utils.js to ease writing <model>
tests.

  • model-element/model-element-camera.html:
  • model-element/model-element-interactive-dragging-expected.txt: Added.
  • model-element/model-element-interactive-dragging.html: Added.
  • model-element/model-element-interactive-expected.txt: Added.
  • model-element/model-element-interactive.html: Added.
  • model-element/resources/model-utils.js: Added.

(const.makeModel):
(const.bodyAvailability.async return):
(const.bodyAvailability):
(const.readyModel.async test):
(const.assert_cameras_are_equal):
(const.assert_cameras_are_not_equal):

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:01 PM Changeset in webkit [288727] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK][a11y] WTR: add implementation for all relation APIs with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235702

Reviewed by Adrian Perez de Castro.

There's more API that is ATK only but should be implemented by ATSPI too.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::ariaOwnsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaFlowToReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaControlsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaLabelledByElementAtIndex):
(WTR::AccessibilityUIElement::ariaLabelledByReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaDescribedByElementAtIndex):
(WTR::AccessibilityUIElement::ariaDescribedByReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex):
(WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex):
(WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex):

11:00 PM Changeset in webkit [288726] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[GTK][a11y] Do not set the children count when serializing objects for the ATSPI cache
​https://bugs.webkit.org/show_bug.cgi?id=235700

Reviewed by Adrian Perez de Castro.

It's confusing the cache if things don't happen in the expected order. We handle the children by emitting the
children-changed signals. When the children count is set in the cache by AddAccessible signal or as a response
to GetItems, atspi sets the accessible children vector size to the given value. If children-changed:add is
emitted after that, it's considered a new child and the children vector grows. So, we end up with the double of
children, but half of them are just null.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::registerObject): Add the registered object to the update cache list.
(WebCore::AccessibilityAtspi::unregisterObject): Remove the object from the cache and emit RemoveAccessible
signal if needed.
(WebCore::AccessibilityAtspi::parentChanged): Stop registering the objects here, they will be registered when
actually needed. Also don't emit the signal if the object is pending, because AddAccessible will update the cache.
(WebCore::AccessibilityAtspi::childrenChanged): Do not add the pending objects to the cache, we can just emit
the signal now and cache will be updated later.
(WebCore::AccessibilityAtspi::stateChanged): Ditto.
(WebCore::AccessibilityAtspi::textChanged): Ditto.
(WebCore::AccessibilityAtspi::textAttributesChanged): Ditto.
(WebCore::AccessibilityAtspi::textCaretMoved): Ditto.
(WebCore::AccessibilityAtspi::textSelectionChanged): Ditto.
(WebCore::AccessibilityAtspi::valueChanged): Ditto.
(WebCore::AccessibilityAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityAtspi::loadEvent): Ditto.
(WebCore::AccessibilityAtspi::cacheUpdateTimerFired): Copy the list because addToCacheIfNeeded() might add new
items to the that we don't want to process in this iteration.
(WebCore::AccessibilityAtspi::addToCacheIfPending): Deleted.
(WebCore::AccessibilityAtspi::addAccessible): Deleted.
(WebCore::AccessibilityAtspi::removeAccessible): Deleted.

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::registerObject): Remove the call to addAccessible, it's now done in AccessibilityAtspi::registerObject.
(WebCore::AccessibilityObjectAtspi::serialize const): Pass -1 as children count to ensure the children vector is
not modified.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::serialize const): Ditto.

10:59 PM Changeset in webkit [288725] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Keep a reference to the parent wrapper with ATSPI
​https://bugs.webkit.org/show_bug.cgi?id=235699

Reviewed by Adrian Perez de Castro.

When wrappers are destroyed it doesn't necessarily happen in the tree order, we need to keep the parent alive to
emit the children-changed signal.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
10:58 PM Changeset in webkit [288724] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Return null reference for root parent reference if queried before being embedded
​https://bugs.webkit.org/show_bug.cgi?id=235698

Reviewed by Adrian Perez de Castro.

Once embedded parent-changed will be emitted.

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::parentReference const):

10:53 PM Changeset in webkit [288723] by graouts@webkit.org
  • 9 edits in trunk/Source

<model> should not be draggable on macOS
​https://bugs.webkit.org/show_bug.cgi?id=235697

Reviewed by Dean Jackson.

Source/WebCore:

As part of bug 229246 we added support for dragging <model> elements. However, it did not
work on macOS in practice so we make that explicit.

This is also important leading up to bug 227621, where we'll implement the "interactive"
HTML attribute and IDL property, since disabling dragging over a <model> element to adjust
the camera would trigger a crash under Pasteboard::write() on macOS due to not having an
image set on the pasteboard data.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::supportsDragging const):
(WebCore::HTMLModelElement::isDraggableIgnoringAttributes const):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/ModelPlayer.cpp:

(WebCore::ModelPlayer::supportsDragging):

  • Modules/model-element/ModelPlayer.h:
  • page/DragController.cpp:

(WebCore::modelElementIsDraggable):

Source/WebKit:

Override the ModelPlayer method to disable <model> dragging on macOS.

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::supportsDragging):

10:51 PM Changeset in webkit [288722] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove unnecessary build-time branch in ARKitInlinePreviewModelPlayerMac::supportsMouseInteraction()
​https://bugs.webkit.org/show_bug.cgi?id=235729

Reviewed by Dean Jackson.

The whole file is wrapped in a #if ENABLE(ARKIT_INLINE_PREVIEW_MAC) statement already.

  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::supportsMouseInteraction):

9:13 PM Changeset in webkit [288721] by Megan Gardner
  • 9 edits in trunk

DocumentContext gives empty rects for blank lines.
​https://bugs.webkit.org/show_bug.cgi?id=235695

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: DocumentEditingContext::RectsRequestInContentEditable

When requesting the document context for the end of a document, we would give empty rects for
blank lines. This was because when calculating the absoluteBoundingRect for the range, we
would use a normal unionRect call, which would use the basic unite call, which does not combine
empty rects. And empty rect is defined as a rect that does not have a non-zero hight and width.
Since we were calculating information about <br> lines, this was causing us to union a list of
a single rect, which was an empty rect. This left us with a zero rect after unioning. The solution
is to unionIfNonZero when calculating these rects for DocumentContext. I also took the opportunity
to make some of this code more parallel to other implementations.

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::unionRectIfNonZero):

  • platform/graphics/GeometryUtilities.h:
  • platform/graphics/IntRect.cpp:

(WebCore::IntRect::uniteIfNonZero):

  • platform/graphics/IntRect.h:

(WebCore::IntRect::isZero const):

Source/WebKit:

When requesting the document context for the end of a document, we would give empty rects for
blank lines. This was because when calculating the absoluteBoundingRect for the range, we
would use a normal unionRect call, which would use the basic unite call, which does not combine
empty rects. And empty rect is defined as a rect that does not have a non-zero hight and width.
Since we were calculating information about <br> lines, this was causing us to union a list of
a single rect, which was an empty rect. This left us with a zero rect after unioning. The solution
is to unionIfNonZero when calculating these rects for DocumentContext. I also took the opportunity
to make some of this code more parallel to other implementations.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST): DocumentEditingContext::RectsRequestInContentEditable

7:11 PM Changeset in webkit [288720] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Remove ENABLE(HOVER_GESTURE_RECOGNIZER) and related code
​https://bugs.webkit.org/show_bug.cgi?id=235749
Source/WebKit:

<rdar://problem/86425437>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView setUpHoverGestureRecognizer]): Deleted.
(-[WKContentView hoverGestureRecognizerChanged:]): Deleted.

  • UIProcess/ios/WKHoverPlatter.h:
  • UIProcess/ios/WKHoverPlatter.mm:
  • UIProcess/ios/WKHoverPlatterParameters.h:
  • UIProcess/ios/WKHoverPlatterParameters.mm:
  • WebProcess/WebPage/MomentumEventDispatcher.cpp:

(WebKit::mode):
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
(WebKit::MomentumEventDispatcher::equalizeTailGaps):

  • WebProcess/WebPage/MomentumEventDispatcher.h:

Source/WTF:

Reviewed by Wenson Hsieh.

  • wtf/PlatformEnableCocoa.h:
5:51 PM Changeset in webkit [288719] by Jonathan Bedard
  • 3 edits in trunk/Tools

[git-webkit] Respect EMAIL_ADDRESS environment variable during setup
​https://bugs.webkit.org/show_bug.cgi?id=235748
<rdar://problem/88161757>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Prefer EMAIL_ADDRESS variable over git config email.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

Canonical link: ​https://commits.webkit.org/246512@main

5:23 PM Changeset in webkit [288718] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Do not require GNU Gold usage to enable DEBUG_FISSION
​https://bugs.webkit.org/show_bug.cgi?id=235737

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsCommon.cmake: Allow enabling DEBUG_FISSION with any linker.
5:08 PM Changeset in webkit [288717] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.4

Tag Safari-613.1.14.5.4.

5:07 PM Changeset in webkit [288716] by Russell Epstein
  • 15 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288710. rdar://problem/88100509

com.apple.WebKit.WebAuthn.xpc fails to build with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235734

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Adjusted build path variables to handle the case when building for Catalyst.
Did this by refactoring how the optional system content path is added as a prefix to paths.
As a result, modified the create symlink script to not be dependent on the target location,
since it isn't created when doing a catalyst build. Instead the script creates the parent
directory of the symlink if it doesn't exisst.

  • Configurations/Base.xcconfig:
  • Configurations/JSC.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/create-symlink-to-altroot.sh:

Source/ThirdParty/libwebrtc:

Added explicit PUBLIC_HEADERS_FOLDER_PATH vavriable. Otherwise we get the
project version with didn't include the "libwebrtc" component.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Since WebCore is installed under the WebKit framework on macOS, we don't need a symlink for the
WebCore.framework itself. As a result, modified the create symlink script to not be dependent
on the target location, since it isn't created when doing a catalyst build.
Instead the script creates the parent directory of the symlink if it doesn't exisst.

  • Configurations/WebCore.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Since we symlink the the whole framework when building the main "WebKit" target,
we can eliminate the create symlink script for the WebAuth target.
Eliminated the setting of ALTERNATE_ROOT_PATH build variables for all XPC services.

  • Configurations/BaseXPCService.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:06 PM Changeset in webkit [288715] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.4

4:58 PM Changeset in webkit [288714] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Differentiate UAT and production PR processing
​https://bugs.webkit.org/show_bug.cgi?id=235669
<rdar://problem/88093065>

Reviewed by Aakash Jain.

  • CISupport/ews-build/events.py:

(Events.buildFinished): Append custom_suffix to reported context.
(Events.stepStartedGitHub): Ditto.

Canonical link: ​https://commits.webkit.org/246510@main

4:53 PM Changeset in webkit [288713] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1

Tag Safari-614.1.1.

4:44 PM Changeset in webkit [288712] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed fix for older macOS builds after r288577.

  • wtf/Assertions.h:
4:42 PM Changeset in webkit [288711] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][macOS] Removed unneeded telemetry
​https://bugs.webkit.org/show_bug.cgi?id=235742

Reviewed by Darin Adler.

Remove some telemetry we have sufficient data for.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
4:24 PM Changeset in webkit [288710] by msaboff@apple.com
  • 15 edits in trunk/Source

com.apple.WebKit.WebAuthn.xpc fails to build with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235734

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Adjusted build path variables to handle the case when building for Catalyst.
Did this by refactoring how the optional system content path is added as a prefix to paths.
As a result, modified the create symlink script to not be dependent on the target location,
since it isn't created when doing a catalyst build. Instead the script creates the parent
directory of the symlink if it doesn't exisst.

  • Configurations/Base.xcconfig:
  • Configurations/JSC.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/create-symlink-to-altroot.sh:

Source/ThirdParty/libwebrtc:

Added explicit PUBLIC_HEADERS_FOLDER_PATH vavriable. Otherwise we get the
project version with didn't include the "libwebrtc" component.

  • Configurations/libwebrtc.xcconfig:

Source/WebCore:

Since WebCore is installed under the WebKit framework on macOS, we don't need a symlink for the
WebCore.framework itself. As a result, modified the create symlink script to not be dependent
on the target location, since it isn't created when doing a catalyst build.
Instead the script creates the parent directory of the symlink if it doesn't exisst.

  • Configurations/WebCore.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Since we symlink the the whole framework when building the main "WebKit" target,
we can eliminate the create symlink script for the WebAuth target.
Eliminated the setting of ALTERNATE_ROOT_PATH build variables for all XPC services.

  • Configurations/BaseXPCService.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
4:01 PM Changeset in webkit [288709] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk

Add .clangd similar to .ccls
​https://bugs.webkit.org/show_bug.cgi?id=235743

Reviewed by Saam Barati.

This patch adds .clangd local configuration, which is similar to .ccls.

  • .clangd: Added.
3:29 PM Changeset in webkit [288708] by Matt Lewis
  • 1 edit in trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/editor.py

VSCode needs to be an option for commit message editor in git-webkit
​https://bugs.webkit.org/show_bug.cgi?id=235731

Reviewed by Jonathan Bedard.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/editor.py:

(Editor):
(Editor.vscode):
(Editor.programs):

Canonical link: ​https://commits.webkit.org/246505@main

3:24 PM Changeset in webkit [288707] by Chris Dumez
  • 9 edits in trunk

Geolocation API should callback with error if doc is not fully active
​https://bugs.webkit.org/show_bug.cgi?id=228319
<rdar://problem/81450315>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/geolocation-API/non-fully-active.https-expected.txt:

Rebaseline WPT test that is now passing.

Source/WebCore:

Test: imported/w3c/web-platform-tests/geolocation-API/non-fully-active.https.html

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::getCurrentPosition):
(WebCore::Geolocation::watchPosition):
Schedule a task to call the error callback if the document is not fully active, as
per the specification:

  • dom/TaskSource.h:

As Geolocation task source for the HTML5 event loop, as per the Geolocation
specification.

LayoutTests:

Update existing layout tests to reflect behavior change.

  • fast/dom/Geolocation/disconnected-frame-already-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-already.html:

Aligns test assertions with the spec. Gecko also passes it.

3:22 PM Changeset in webkit [288706] by Devin Rousso
  • 2 edits in trunk/Source/WTF

Change version number for HAVE_PASSKIT_DEFAULT_SHIPPING_METHOD
​https://bugs.webkit.org/show_bug.cgi?id=235732
<rdar://problem/88152385>

Reviewed by Wenson Hsieh.

  • wtf/PlatformHave.h:
3:18 PM Changeset in webkit [288705] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Ignore hooks from closed PRs
​https://bugs.webkit.org/show_bug.cgi?id=235666
<rdar://problem/88091611>

Unreviewed follow-up fix.

  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits.handle_pull_request): 'state' is a member of the 'pull_request' dictionary.

3:07 PM Changeset in webkit [288704] by Russell Epstein
  • 1 copy in tags/Safari-613.1.15

Tag Safari-613.1.15.

2:23 PM Changeset in webkit [288703] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

AXIsolatedObject::children should honor the parameter updateChildrenIfNeeded.
​https://bugs.webkit.org/show_bug.cgi?id=235728
<rdar://problem/88149344>

Reviewed by Chris Fleizach.

This will allow to get a more accurate smapshot of the isolated tree
during debugging. For instance it will allow to do AXLOG of the isolated
tree in applyPendingChanges which is currently not possible because
results in infinite recursion.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::children):

2:18 PM Changeset in webkit [288702] by Devin Rousso
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: move Preserve Log checkbox navigation item to a gear-with-contextmenu to save space (and match the Network Tab)
​https://bugs.webkit.org/show_bug.cgi?id=235541

Reviewed by Patrick Angle.

Also collapse source scope bar into a single button for more space, and align it (and the
filter bar and type scope bar) to the left to better match other tabs.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):
(WI.LogContentView.prototype.get navigationItems):
(WI.LogContentView.prototype._updateOtherFiltersNavigationItemState): Added.
(WI.LogContentView.prototype._handleOtherFiltersNavigationItemContextMenu): Added.
(WI.LogContentView.prototype._handleClearLogOnNavigateSettingChanged):
(WI.LogContentView.prototype._showHiddenMessagesBannerIfNeeded):
Drive-by: Also reset the message source WI.ScopeBar when clearing filters.

  • UserInterface/Views/LogContentView.css:

(.console-find-banner): Added.
(.message-channel-scope-bar.default-item-selected:not(:hover)): Added.
(.message-channel-scope-bar.default-item-selected:hover): Added.
(.log-scope-bar + .message-channel-scope-bar): Added.
(.console-other-filters-button > .glyph): Added.
(.console-other-filters-button:active > .glyph): Added.
(.console-other-filters-button.active > .glyph): Added.
(.console-other-filters-button.active:active > .glyph): Added.

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView):
Override the flexibleNavigationItem so that there's no expanding space before the filter.

  • UserInterface/Views/ConsoleDrawer.js:

(WI.ConsoleDrawer):
Somehow this got overlooked when the constructor of WI.ContentBrowser was changed :(

  • UserInterface/Views/FindBanner.css:

(.find-banner):
(.find-banner > input[type="search"]):
Add --find-banner-input-margin-start so that this can be overridden by specific clients.

  • Localizations/en.lproj/localizedStrings.js:
2:11 PM Changeset in webkit [288701] by Kate Cheney
  • 113 edits
    10 adds in trunk

"Unrecognized Content-Security-Policy directive 'worker-src'."
​https://bugs.webkit.org/show_bug.cgi?id=235260
<rdar://problem/83734079>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/content-security-policy/child-src/child-src-cross-origin-load.sub-expected.txt:
  • web-platform-tests/content-security-policy/child-src/child-src-worker-blocked.sub-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-none.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-script-fallback.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-self-fallback.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/service-none.https.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub-expected.txt:
  • web-platform-tests/content-security-policy/worker-src/shared-child.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-list.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-none.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-self.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-default-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-script-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-self-fallback.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/blob/self-doesnt-match-blob.sub-expected.txt:
  • web-platform-tests/content-security-policy/blob/star-doesnt-match-blob.sub-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.https-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.http-expected.txt:
  • web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.https-expected.txt:

Source/WebCore:

Implementation of worker-src directive. According to ​https://www.w3.org/TR/CSP3/#changes-from-level-2
the worker-src directive now restricts URLs that can be loaded by
workers, and defers to child-src if not specified.

  • bindings/js/WorkerModuleScriptLoader.cpp:

(WebCore::WorkerModuleScriptLoader::load):
Check worker-src instead of child-src for worker loads.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/ThreadableLoader.h:

Check worker-src instead of child-src for worker loads.

  • page/csp/ContentSecurityPolicy.cpp:

We can remove allowChildContextFromSource which is now fully replaced
by allowWorkerFromSource.

(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowChildContextFromSource const): Deleted.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::operativeDirectiveForWorkerSrc const):
worker-src defers to child-src, then script-src, then default-src.

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForWorker):
(WebCore::ContentSecurityPolicyDirectiveList::addDirective):

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.h:
  • workers/AbstractWorker.cpp:

(WebCore::AbstractWorker::resolveURL):

  • workers/AbstractWorker.h:

We check LegacySchemeRegistry::schemeShouldBypassContentSecurityPolicy
in allowWorkerFromSource, so we don't need to check in in AbstractWorker::resolveURL
anymore. We can also replace the child-src checks with worker-src
ones.

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/WorkerFontLoadRequest.cpp:

(WebCore::WorkerFontLoadRequest::load):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
Block service worker registrations not specified by worker-src.

  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::create):
Block shared worker urls not specified by worker-src.

  • workers/shared/SharedWorkerScriptLoader.cpp:

(WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):

Source/WebKit:

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):

LayoutTests:

Update tests now that worker-src defaults eventually to script-src.
Since this was not the case with child-src, legacy CSP tests do not
expect script-src policies to affect workers. We can fix this by
specifying a separate worker-src policy for these tests to maintain
behavior.

Some wpt tests log random URL strings that change for every test
iteration. For now we can't unskip those.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-blocks-eval.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp.html:
  • http/tests/security/contentSecurityPolicy/worker-script-src.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-importScript-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:
1:37 PM Changeset in webkit [288700] by Antti Koivisto
  • 5 edits in trunk

Default to 32 bit refcount for CanMakeCheckedPtr
​https://bugs.webkit.org/show_bug.cgi?id=235723
rdar://86602114

Reviewed by Darin Adler.

Source/WTF:

It is currently uint16_t for no good reason. It is no unreasonable to have an object being referenced
by a large number of other objects.

We just hit the first bug caused by overrunning it (in IFC).

  • wtf/CheckedRef.h:

uint16_t -> uint32_t

Tools:

  • TestWebKitAPI/Tests/WTF/CheckedPtr.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/CheckedRef.cpp:
1:21 PM Changeset in webkit [288699] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

Fix !ENABLE(ACCESSIBILITY) after r288674
​https://bugs.webkit.org/show_bug.cgi?id=235727
<rdar://problem/88147878>

Unreviewed build fix.

In r288674 AXObjectCache had updateLoadingProgress added but it wasn't added to the block
of inlined !ENABLE(ACCESSIBILITY) methods further down the file.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::updateLoadingProgress):

1:06 PM Changeset in webkit [288698] by Devin Rousso
  • 51 edits
    3 copies
    1 move
    3 adds in trunk

[Payment Request] allow additional payment method specific data to be passed to complete()
​https://bugs.webkit.org/show_bug.cgi?id=235415
<rdar://problem/82970451>

Reviewed by Darin Adler.

Source/WebCore:

This allows for developers/merchants to give additional details to Apple Pay on completion.

Issue: <​https://github.com/w3c/payment-request/issues/981>
Spec PR: <​https://github.com/w3c/payment-request/pull/982>

Test: http/tests/paymentrequest/ApplePayPaymentCompleteDetails.https.html

  • Modules/paymentrequest/PaymentCompleteDetails.h: Added.
  • Modules/paymentrequest/PaymentCompleteDetails.idl: Added.
  • Modules/paymentrequest/PaymentResponse.h:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::complete):

  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::complete):

  • Modules/paymentrequest/PaymentHandler.h:

Add new dictionary PaymentCompleteDetails that's allowed as an optional second argument to
PaymentResponse.prototype.complete. If provided, JSON stringify it and pass the serialized
string data along to the relevant PaymentHandler for JSON (re)parsing if the associated
payment method requires it.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::convertAndValidate):
(WebCore::merge):
(WebCore::ApplePayPaymentHandler::complete):
(WebCore::ApplePayPaymentHandler::retry):

  • Modules/applepay/paymentrequest/ApplePayPaymentCompleteDetails.idl: Added.
  • Modules/applepay/paymentrequest/ApplePayPaymentCompleteDetails.h: Added.

(WebCore::ApplePayPaymentCompleteDetails::encode const):
(WebCore::ApplePayPaymentCompleteDetails::decode):
Convert the JSON (re)parsed object into a ApplePayPaymentCompleteDetails, merging it into
the ApplePayPaymentAuthorizationResult passed to the PaymentCoordinator (see below).

  • Modules/applepay/ApplePayPaymentAuthorizationResult.h:
  • Modules/applepay/ApplePayPaymentAuthorizationResult.cpp: Added.

(WebCore::ApplePayPaymentAuthorizationResult::isFinalState const):
(WebCore::ApplePayPaymentAuthorizationResult::encode const):
(WebCore::ApplePayPaymentAuthorizationResult::decode):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:
  • Modules/applepay/ApplePaySessionPaymentRequest.cpp:

(WebCore::isFinalStateResult): Deleted.

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::completePayment):

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completePaymentSession):

  • Modules/applepay/PaymentCoordinatorClient.h:
  • loader/EmptyClients.cpp:
  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completePaymentSession):
Replace PaymentAuthorizationResult with ApplePayPaymentAuthorizationResult so that data
doesn't need to be moved between identically shaped structs for sending to the UIProcess.

  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current):
Increment the current version.

  • Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.h:
  • Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:

(WebCore::ApplePayAMSUIPaymentHandler::complete):
AMS UI does not allow/require any data to be provided on completion.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • PlatformMac.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

This allows for developers/merchants to give additional details to Apple Pay on completion.

Issue: <​https://github.com/w3c/payment-request/issues/981>
Spec PR: <​https://github.com/w3c/payment-request/pull/982>

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::completePaymentSession):

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentAuthorizationResult>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::PaymentAuthorizationResult>::decode): Deleted.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toPKPaymentAuthorizationStatus):
(WebKit::PaymentAuthorizationPresenter::completePaymentSession):
Replace PaymentAuthorizationResult with ApplePayPaymentAuthorizationResult so that data
doesn't need to be moved between identically shaped structs for sending to the UIProcess.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

Add some WKA hooks.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::completePaymentSession):

LayoutTests:

  • http/tests/paymentrequest/ApplePayPaymentCompleteDetails.https.html: Added.
  • http/tests/paymentrequest/ApplePayPaymentCompleteDetails.https-expected.txt: Added.
12:56 PM Changeset in webkit [288697] by jonlee@apple.com
  • 104 edits in trunk/LayoutTests

Add fuzzy match meta headers to tests
​https://bugs.webkit.org/show_bug.cgi?id=235671

Reviewed by Simon Fraser.

LayoutTests/imported/mozilla:

  • svg/blend-saturation.svg:
  • svg/filters/feComposite-2.svg:
  • svg/filters/feFlood-1.svg:
  • svg/filters/feFlood-2.svg:
  • svg/filters/feImage-1.svg:
  • svg/mask-type-01.svg:
  • svg/opacity-and-gradient-02.svg:
  • svg/text-scale-02.svg:
  • svg/text/simple-fill-gradient.svg:

LayoutTests:

Use a conservative range of pixels based on a comparison between an EWS run and a run on an
M1 16" MacBook Pro.

  • platform/ios/TestExpectations: a few tests are real failures with accelerated drawing. Mark

as image failures.

  • compositing/clipping/border-radius-async-overflow-non-stacking.html: Some of the ranges

were not large enough, and still reported errors on my machine. Expanding range.

  • compositing/geometry/css-clip-oversize.html:
  • compositing/geometry/scroller-with-clipping-and-foreground-layers.html:
  • compositing/masks/compositing-clip-path-and-mask.html:
  • compositing/patterns/direct-pattern-compositing-add-text.html:
  • compositing/patterns/direct-pattern-compositing-contain.html:
  • compositing/patterns/direct-pattern-compositing-padding.html:
  • compositing/patterns/direct-pattern-compositing-size.html:
  • compositing/patterns/direct-pattern-compositing.html:
  • compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html:
  • css3/background/background-repeat-space-border.html:
  • css3/background/background-repeat-space-content.html:
  • css3/background/background-repeat-space-padding.html:
  • css3/blending/background-blend-mode-body-image.html:
  • css3/blending/background-blend-mode-body-transparent-color-and-image.html:
  • css3/blending/background-blend-mode-body-transparent-image.html:
  • css3/filters/filters-on-svg-root.html:
  • css3/masking/mask-luminance-gradient.html:
  • css3/masking/mask-repeat-space-border.html:
  • css3/masking/mask-repeat-space-content.html:
  • css3/masking/mask-repeat-space-padding.html:
  • fast/attachment/attachment-border-should-stay-inside-attachment.html:
  • fast/backgrounds/background-opaque-clipped-gradients.html:
  • fast/backgrounds/generated-bck-image-with-small-relative-size.html:
  • fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision.html:
  • fast/backgrounds/scaled-gradient-background.html:
  • fast/borders/border-painting-inset.html:
  • fast/borders/border-painting-outset.html:
  • fast/borders/border-radius-on-html.html:
  • fast/borders/hidpi-border-painting-groove.html:
  • fast/borders/hidpi-border-painting-ridge.html:
  • fast/borders/wrong-border-color-when-radius-is-present.html:
  • fast/box-shadow/inset-box-shadow.html:
  • fast/box-shadow/inset-spread-box-shadow-split-inline.html:
  • fast/css/cascade/box-shadow-and-webkit-box-shadow-cascade-order.html:
  • fast/css/object-fit/object-fit-img-svg2.html:
  • fast/gradients/conic-center-outside-box.html:
  • fast/gradients/conic-extended-stops.html:
  • fast/gradients/conic-from-angle.html:
  • fast/gradients/conic-off-center.html:
  • fast/gradients/conic-repeating.html:
  • fast/gradients/conic-two-hints.html:
  • fast/gradients/conic.html:
  • fast/gradients/linear-two-hints-angle.html:
  • fast/gradients/linear-two-hints.html:
  • fast/gradients/radial-two-hints.html:
  • fast/images/async-image-background-image-repeated.html:
  • fast/images/exif-orientation-background-image-repeat.html:
  • fast/images/exif-orientation-svg-feimage.html:
  • fast/images/hidpi-image-position-on-device-pixels-with-border-radius.html:
  • fast/images/sprite-sheet-image-draw.html:
  • fast/inline/inline-background-clip-text-multiline.html:
  • fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html:
  • fast/shadow-dom/svg-linear-gradient-href-in-shadow-tree.html:
  • fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html:
  • fast/shadow-dom/svg-radial-gradient-href-in-shadow-tree.html:
  • fast/text/empty-shadow.html:
  • fast/text/initial-advance-selected-text.html:
  • fast/transforms/skew-x-135deg-with-gradient.html:
  • fast/transforms/skew-y-135deg-with-gradient.html:
  • imported/blink/fast/gradients/large-horizontal-gradient.html:
  • imported/blink/fast/gradients/large-vertical-gradient.html:
  • imported/blink/svg/custom/fill-fallback-currentcolor-1.svg:
  • imported/blink/svg/text/obb-paintserver.html:
  • svg/animations/animated-string-href.svg:
  • svg/clip-path/clip-opacity.html:
  • svg/clip-path/clip-path-shape-rounded-inset-1.svg:
  • svg/clip-path/clip-path-shape-rounded-inset-2.svg:
  • svg/css/invalid-color-cascade.svg:
  • svg/custom/composited-svg-with-opacity.html:
  • svg/custom/hidpi-masking-clipping.svg:
  • svg/custom/href-svg-namespace-static.svg:
  • svg/custom/href-xlink-href-gradient-element.svg:
  • svg/custom/local-url-reference-fill.html:
  • svg/custom/local-url-reference-radial-gradient.html:
  • svg/custom/local-url-reference-srcdoc.html:
  • svg/custom/local-url-reference-stroke.html:
  • svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html:
  • svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html:
  • svg/filters/feComposite.svg:
  • svg/filters/feImage-element-primitive-subregion.svg:
  • svg/gradients/spreadMethod.svg:
  • svg/gradients/spreadMethodAlpha.svg:
  • svg/gradients/spreadMethodDiagonal.svg:
  • svg/gradients/spreadMethodDiagonal2.svg:
  • svg/gradients/spreadMethodDiagonal3.svg:
  • svg/gradients/spreadMethodDiagonal4.svg:
  • svg/gradients/spreadMethodDuplicateStop.svg:
  • svg/gradients/spreadMethodReversed.svg:
  • svg/gradients/stopAlpha.svg:
  • system-preview/badge.html:
  • webanimations/opacity-animation.html:
12:49 PM Changeset in webkit [288696] by commit-queue@webkit.org
  • 8 edits in trunk

[XCBuild] Add missing task dependencies on generate-unified-source-bundles.rb
​https://bugs.webkit.org/show_bug.cgi?id=235724

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

Source/WebCore:

The targets which generate unified sources all use
/usr/local/include/wtf/Scripts/generate-unified-source-bundles.rb, but do not declare it.
In workspace builds, WTF may not have been built and this header may not exist yet.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
12:27 PM Changeset in webkit [288695] by Chris Dumez
  • 1 edit
    2 adds in trunk/LayoutTests/imported/w3c

Add layout test for Bug 235645
​https://bugs.webkit.org/show_bug.cgi?id=235718

Reviewed by Alex Christensen.

  • web-platform-tests/html/semantics/forms/the-input-element/radio-multiple-selected-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/radio-multiple-selected.html: Added.
12:10 PM Changeset in webkit [288694] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Unreviewed, reverting r288670.
​https://bugs.webkit.org/show_bug.cgi?id=235725

broke TestWebKitAPI.DragAndDropTests.CanStartDragOnModel on
iOS

Reverted changeset:

"<model> should only be draggable on iOS"
​https://bugs.webkit.org/show_bug.cgi?id=235697
​https://commits.webkit.org/r288670

12:07 PM Changeset in webkit [288693] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Remove ancestor flag initialized ASSERT in AXIsolatedObject::initializeAttributeData
​https://bugs.webkit.org/show_bug.cgi?id=235717

Reviewed by Andres Gonzalez.

This patch removes:

ASSERT(isRoot
object.ancestorFlagsAreInitialized());

From AXIsolatedObject::initializeAttributeData.

This ASSERT is not very useful, since after
​https://bugs.webkit.org/show_bug.cgi?id=235189 we do a single
traversal to compute all flags in the rare but legitimate cases
they aren't already initialized.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

12:03 PM Changeset in webkit [288692] by commit-queue@webkit.org
  • 21 edits in trunk

Generated xcfilelists contain symlinks when building for macOS
​https://bugs.webkit.org/show_bug.cgi?id=235663
rdar://88054903

Source/WebCore:

Introduce a build variable that expands to Versions/A when building for macOS, so that our
input filelists refer to the resolved location of headers and other files inside of
framework bundles. This fixes task dependencies which were not being detected by XCBuild.

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig:
  • Configurations/WebCore.xcconfig:

Source/WebInspectorUI:

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig:
  • Configurations/WebInspectorUIFramework.xcconfig:

Source/WebKit:

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy:

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/WebKitSwift.xcconfig:
  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:

Source/WebKitLegacy/mac:

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Tools:

Patch by Elliott Williams <Elliott Williams> on 2022-01-27
Reviewed by Alexey Proskuryakov.

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
11:59 AM Changeset in webkit [288691] by Russell Epstein
  • 3 edits in branches/safari-614.1.1-branch/Source/WebKit

Cherry-pick r288658. rdar://problem/87999257

Symbols not always properly hidden when using WebKitAdditions to introduce new API
​https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Surround APIs from WebKitAdditions with #if ENABLE(API_WEBKIT_ADDITIONS) instead of
#if USE(APPLE_INTERNAL_SDK) and leaving API_WEBKIT_ADDITIONS to be intentionally
undefined. This is because we never want to build the code inside this #if block.
Instead, those blocks are only meant to be replaced by the
replace-webkit-additions-includes.py with the code from WebKitAdditions.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py: (main):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288658 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:55 AM Changeset in webkit [288690] by Wenson Hsieh
  • 8 edits
    1 add in trunk

ImageAnalysisQueue should prioritize elements that intersect the visible viewport
​https://bugs.webkit.org/show_bug.cgi?id=235664
rdar://88131827

Reviewed by Darin Adler.

Source/WebCore:

Make few adjustments to the image analysis queueing mechanism, such that we prioritize analyzing images that
are in the visible document rect over offscreen images. To do this, we turn the current image element queue into
a PriorityQueue instead, which treats images that are in the visible viewport (at enqueueing time) as higher
priority over images that are not in the visible viewport, and otherwise treats images that were queued earlier
as higher priority in the case where both images are either visible or not visible.

Test: ImageAnalysisTests.ImageAnalysisPrioritizesVisibleImages

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):
(WebCore::ImageAnalysisQueue::resumeProcessingSoon):
(WebCore::ImageAnalysisQueue::resumeProcessing):
(WebCore::ImageAnalysisQueue::clear):

  • page/ImageAnalysisQueue.h:

Swap out the Deque for a PriorityQueue, and introduce ImageAnalysisQueue::Task to represent an image analysis
task (which can be compared against other tasks to determine priority using firstIsHigherPriority() below).

(WebCore::ImageAnalysisQueue::firstIsHigherPriority):

Tools:

Add an API test to verify that batch image analysis prioritizes a visible image over another image that appears
first in DOM traversal order, but is offscreen.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::processedRequests):
(TestWebKitAPI::processRequestWithResults):
(TestWebKitAPI::makeFakeRequest):
(TestWebKitAPI::makeImageAnalysisRequestSwizzler):
(TestWebKitAPI::processRequestWithError):

Additionally add a mechanism for swizzling out VKImageAnalyzerRequest initialization to return a mock object
(TestVKImageAnalyzerRequest) instead, which can then be used to inspect the CGImage that would've been sent for
analysis. See changes in ImageAnalysisTestingUtilities.* below for more information.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/offscreen-image.html: Added.
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.h:
  • TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm:

(-[TestVKImageAnalyzerRequest initWithCGImage:orientation:requestType:]):
(-[TestVKImageAnalyzerRequest image]):
(-[TestVKImageAnalyzerRequest imageURL]):
(-[TestVKImageAnalyzerRequest setImageURL:]):
(-[TestVKImageAnalyzerRequest pageURL]):
(-[TestVKImageAnalyzerRequest setPageURL:]):
(TestWebKitAPI::createRequest):

11:45 AM Changeset in webkit [288689] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Disable WebXR experimental feature by default
​https://bugs.webkit.org/show_bug.cgi?id=235688

Patch by Ada Chan <​ada.chan@apple.com> on 2022-01-27
Reviewed by Tim Horton.

Source/WebKit:

Remove WebKit::defaultWebXREnabled() since it's no longer used.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebXREnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

Remove WebKit::defaultWebXREnabled() since it's no longer used.

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultWebXREnabled): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
11:35 AM Changeset in webkit [288688] by Jonathan Bedard
  • 10 edits in trunk/Tools

[webkitbugspy] JSON encode trackers
​https://bugs.webkit.org/show_bug.cgi?id=235426
<rdar://problem/87856802>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.Encoder.default): Encode bugzilla Tracker object.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.Encoder.default): Encode github Tracker object.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:

(Tracker.Encoder.default): Encode radar Tracker object.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:

(TestBugzilla.test_encoding):
(TestBugzilla.test_decoding):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_encoding):
(TestGitHub.test_decoding):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:

(TestRadar.test_encoding):
(TestRadar.test_decoding):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:

(Tracker.Encoder.default): Generic encoding for all Tracker objects.
(Tracker.from_json): Decode dictionary into Tracker objects.

Canonical link: ​https://commits.webkit.org/246487@main

11:25 AM Changeset in webkit [288687] by Kocsen Chung
  • 3 edits in branches/safari-612.4.9.1-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/88139659

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:23 AM Changeset in webkit [288686] by Kocsen Chung
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.8

11:16 AM Changeset in webkit [288685] by Russell Epstein
  • 3 edits in branches/safari-612.4.9.0-branch/Source/WebCore

Cherry-pick r288539. rdar://problem/88139598

Expand RefPtr / Ref use in FrameLoader
​https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840

Reviewed by Mark Lam.

Apply Ref / RefPtr instead of taking SerializedScriptValue*.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
  • loader/FrameLoader.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:14 AM Changeset in webkit [288684] by Russell Epstein
  • 8 edits in branches/safari-612.4.9.0-branch/Source

Versioning.

WebKit-7612.4.9.0.4

10:54 AM Changeset in webkit [288683] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.41.3

Tag Safari-613.1.14.41.3.

10:53 AM Changeset in webkit [288682] by Russell Epstein
  • 12 edits in branches/safari-613.1.14.41-branch/Source/WebKit

Cherry-pick r288387. rdar://problem/87468788

Inject Launch Services database before NSApplication is initialized
​https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>

Reviewed by Chris Dumez.

To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database. To make sure also prewarmed WebContent
processes are receiving the Launch Services database, the WebsiteDataStore method
sendNetworkProcessXPCEndpointToProcess is moved to the class NetworkProcessProxy, since prewarmed processes
will not have a data store initially. This allows us to simplify the code, since we are no longer depending
on having a Website data store before sending the XPC endpoint.

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess): (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const): Deleted.
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: (WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288387 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:49 AM Changeset in webkit [288681] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.41-branch/Source

Versioning.

WebKit-7613.1.14.41.3

10:27 AM Changeset in webkit [288680] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Detect failed ThreadableLoader creation in FileReaderLoader.
​https://bugs.webkit.org/show_bug.cgi?id=235566

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-01-27
Reviewed by Youenn Fablet.

When we fail to successfully create a ThreadableLoader in FileReaderLoader we should catch
the failure and return early.

  • Modules/fetch/FormDataConsumer.cpp:

(WebCore::FormDataConsumer::consumeBlob):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

10:17 AM Changeset in webkit [288679] by Alexander Mikhaylenko
  • 19 edits
    2 deletes in trunk/Source

[GTK] Support accent colors
​https://bugs.webkit.org/show_bug.cgi?id=235706

Reviewed by Michael Catanzaro.

Source/WebCore:

Use the accent color UI process provides rather than fetching it here.
Remove the last bits of ThemeGtk and stop using foreign drawing for
text selection on GTK3.

Use dark foreground color if the accent color is bright.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::Theme::singleton):
(WebCore::ThemeAdwaita::activeSelectionForegroundColor const):
(WebCore::ThemeAdwaita::activeSelectionBackgroundColor const):
(WebCore::ThemeAdwaita::inactiveSelectionForegroundColor const):
(WebCore::ThemeAdwaita::setAccentColor):

  • platform/adwaita/ThemeAdwaita.h:
  • platform/gtk/ThemeGtk.cpp: Removed.
  • platform/gtk/ThemeGtk.h: Removed.
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::setAccentColor):

  • rendering/RenderThemeAdwaita.h:

Source/WebKit:

Take the accent color from CSS named colors. Handle the colors used in
libadwaita, elementary OS 6.x and 5.x, and the generic selection bg
color that people have been using out of context for a long time.

Track changes the best we can, even though it's not perfect: css_changed()
in GTK4 won't be called unless the CSS change affects the web view itself.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::accentColor):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseStyleUpdated):
(webkit_web_view_base_class_init):

  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::accentColorDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::setAccentColor):

Source/WTF:

  • wtf/PlatformHave.h: Flip HAVE_APP_ACCENT_COLORS for GTK.
10:13 AM Changeset in webkit [288678] by Patrick Griffis
  • 37 edits in trunk

CSP: Clean up effective-violation handling in reports
​https://bugs.webkit.org/show_bug.cgi?id=235602

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Updated expectations with more passes.

  • web-platform-tests/content-security-policy/child-src/child-src-cross-origin-load.sub-expected.txt:
  • web-platform-tests/content-security-policy/frame-src/frame-src-cross-origin-load.sub-expected.txt:
  • web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted-expected.txt:

Source/WebCore:

The CSP 3 spec uses the same value for effectiveDirective and
violatedDirective noting that is now now just an alias for historical
purposes. ​https://www.w3.org/TR/CSP3/#violation-events

I have refactored this so we only pass around a single string instead of constantly
repeating the directive which was error prone.

This does result in a lot of script-src changing to script-src-elem in reports
however this behavior matches what Chromium is already reporting and it fixes some
WPT results where it expects frame-src instead of child-src.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::consoleMessageForViolation):
(WebCore::ContentSecurityPolicy::allowRunningOrDisplayingInsecureContent):
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
(WebCore::ContentSecurityPolicy::allowEval const):
(WebCore::ContentSecurityPolicy::allowFrameAncestors const):
(WebCore::ContentSecurityPolicy::allowPluginType const):
(WebCore::ContentSecurityPolicy::allowObjectFromSource const):
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource const):
(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowChildContextFromSource const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowImageFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allowFontFromSource const):
(WebCore::ContentSecurityPolicy::allowManifestFromSource const):
(WebCore::ContentSecurityPolicy::allowMediaFromSource const):
(WebCore::ContentSecurityPolicy::allowConnectToSource const):
(WebCore::ContentSecurityPolicy::allowFormAction const):
(WebCore::ContentSecurityPolicy::allowBaseURI const):
(WebCore::ContentSecurityPolicy::reportViolation const):

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):

LayoutTests:

Update effective-violation of expectations.

  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src.html:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src.html:
  • http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-blocked-when-loaded-via-javascript-url2-expected.txt:
  • http/tests/security/contentSecurityPolicy/iframe-redirect-blocked-by-child-src-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
  • platform/glib/http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
10:04 AM Changeset in webkit [288677] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Check the process has the dynamic-codesigning entitlement before trying to allocate a holding JIT region
​https://bugs.webkit.org/show_bug.cgi?id=235673
rdar://88094997

Patch by Gavin Phillips <​gavin.p@apple.com> on 2022-01-27
Reviewed by Saam Barati.

We only need to allocate a holding JIT region, for processes with the JIT disabled, if that process has the
dynamic-codesigning entitlement. We can skip this allocation if the process doesn't have that entitlement.

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::setJITEnabled):

9:58 AM Changeset in webkit [288676] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AXLogger::add should not cause tree updates via children()
​https://bugs.webkit.org/show_bug.cgi?id=235715

Reviewed by Chris Fleizach.

AXLogger::add(TextStream&, const RefPtr<AXCoreObject>&, bool) currently
calls the update version of AXCoreObject::children(bool), causing behavior
to potentially be different between builds with logging enabled and logging
disabled.

The logger should only read the current state of the object / tree, never modify it.

  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::add):

9:49 AM Changeset in webkit [288675] by Antti Koivisto
  • 10 edits in trunk

[CSS Container Queries] Basic parsing support for query syntax
​https://bugs.webkit.org/show_bug.cgi?id=235712

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:

Source/WebCore:

​https://drafts.csswg.org/css-contain-3/#at-ruledef-container

Use MediaQueryParser to parse the query syntax. Note that because the limitations
of MediaQueryParser only simple non-nested queries can be parsed for now.

  • css/StyleRule.h:
  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeContainerRule):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeSingleContainerName):

  • css/parser/CSSPropertyParserHelpers.h:
  • css/parser/MediaQueryParser.cpp:

(WebCore::MediaQueryParser::parseContainerQuery):
(WebCore::MediaQueryParser::MediaQueryParser):
(WebCore::MediaQueryParser::readContainerQuery):
(WebCore::MediaQueryParser::handleBlocks):
(WebCore::MediaQueryParser::processToken):
(WebCore::MediaQueryParser::parseInternal):

  • css/parser/MediaQueryParser.h:
8:51 AM Changeset in webkit [288674] by Tyler Wilcock
  • 21 edits in trunk

AX ITM: Defer to the tree when determining AX object loading progress
​https://bugs.webkit.org/show_bug.cgi?id=235646

Reviewed by Andres Gonzalez.

Source/WebCore:

Currently, we set AXPropertyName::IsLoaded and AXPropertyName::EstimatedLoadingProgress
once in AXIsolatedObject::initializeAttributeData and never update it. This means that
if an object is created while the page is at some non-100% load percentage, AX clients
that request these attributes will always think the object isn't loaded.

This patch removes these two properties and instead defers to the isolated tree associated
with each object when determining the load percentage. Both of these properties were based
on the entire page / document load progress anyways, so it doesn't make sense to set the
same value for all of them.

We track loading progress by changing ProgressTracker to also notify
the page when progress changes, which in turn updates the associated
AXObjectCache with the new progress value.

Covered by accessibility/mac/document-attributes.html which verifies the AXLoad and
AXLoadingProgress attributes.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::updateLoadingProgress):
Added.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::loadingFinished):
(WebCore::AXObjectCache::loadingProgress const):
Added.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::loadingProgress const):
(WebCore::AccessibilityRenderObject::estimatedLoadingProgress const):
Rename estimatedLoadingProgress methods to loadingProgress.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::updateLoadingProgress):
(WebCore::AXIsolatedTree::applyPendingChanges):
Apply m_pendingEstimatedLoadingProgress.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::loadingProgress):
Added.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
Handle rename of estimatedLoadingProgress methods to loadingProgress.

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::ProgressTracker):
Store a reference to the associated page in new m_page member.
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::progressEstimateChanged):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
Notify the Page when progress changes or completes.

  • loader/ProgressTracker.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::progressEstimateChanged const):
Added.
(WebCore::Page::progressFinished const):
Added.

  • page/Page.h:

LayoutTests:

  • accessibility/mac/document-attributes-expected.txt:

Associated test now uses js-test.js, so modify expectations to include
js-test output (e.g. test description()).

  • accessibility/mac/document-attributes.html:

Wait asynchronously for loading to complete ("AXLoaded: 1").

  • accessibility/parent-delete.html:

Don't output all attributes, since it's not necessary for the purpose
of the test (which is to ensure calling allAttributes() in this
scenario doesn't cause a crash). Previously, the test output contained
loading AX attributes, so rather than making this test wait for
loading to complete I decided to remove the output all together.

  • platform/mac/accessibility/parent-delete-expected.txt:
8:03 AM Changeset in webkit [288673] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/CISupport/ews-app/ews

[ews] Display status-bubble for try builds (builds for specific ews queues)
​https://bugs.webkit.org/show_bug.cgi?id=235679

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-app/ews/models/build.py:

(Build.save_build): Save the patch information in database.

  • Tools/CISupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble):
(StatusBubble._should_show_bubble_for_build):
(StatusBubble._build_bubbles_for_patch):

Canonical link: ​https://commits.webkit.org/246479@main

7:36 AM Changeset in webkit [288672] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

jsc_fuz/wktr: crash with new XRReferenceSpaceEvent(, {referenceSpace})
​https://bugs.webkit.org/show_bug.cgi?id=235456

Patch by Gabriel Nava Marino <​gnavamarino@apple.com> on 2022-01-27
Reviewed by Chris Dumez.

Source/WebCore:

FastMalloc.h specifies that each derived class needs to be annotated as well with WTF_MAKE_ISO_ALLOCATED
if the base class is annotated with WTF_MAKE_ISO_ALLOCATED.

After doing this, the crash in WebCore::Event::operator new(unsigned long) is no longer reproducible.
However, this caused ASSERT(m_transform) to be hit in debug builds with the attached test case.

The XRReferenceSpaceEvent spec specifies the transform attribute as nullable
(​https://immersive-web.github.io/webxr/#dictdef-xrreferencespaceeventinit), so this patch updates the
XRReferenceSpaceEvent IDL and implementation to match the spec, and removes the ASSERT accordingly.

Test: webxr/xr-reference-space-event-crash.html

  • Modules/webxr/XRReferenceSpaceEvent.cpp:

(WebCore::XRReferenceSpaceEvent::XRReferenceSpaceEvent):
(WebCore::XRReferenceSpaceEvent::transform const):

  • Modules/webxr/XRReferenceSpaceEvent.h:
  • Modules/webxr/XRReferenceSpaceEvent.idl:

LayoutTests:

  • webxr/xr-reference-space-event-crash.html: Added.
4:15 AM WebKitGTK/2.34.x edited by Alexander Mikhaylenko
Add 2 touch fixes to proposed (diff)
3:16 AM Changeset in webkit [288671] by commit-queue@webkit.org
  • 50 edits
    44 copies
    29 moves
    351 adds
    3 deletes in trunk

Update WebGL conformance test suite to 2022-01-12
​https://bugs.webkit.org/show_bug.cgi?id=235563

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-27
Reviewed by Dean Jackson.

Tools:

Add functionality to Tools/Scripts/update-webgl-conformance-tests:

  • Copy http-only tests to http/tests/webgl
  • Add template to js-test-pre.js
  • Scripts/webkitpy/update_webgl_conformance_tests_lib/js-test-pre-template.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-pre.js.
  • Scripts/webkitpy/update_webgl_conformance_tests_lib/main.py:

(_copy_tree):
(main):

LayoutTests:

Update WebGL testsuite to 2022-01-12 9b58fd243d38f4b9c72ab6f75ad701cafc131137.

Additionally:
The import script can now categorize tests to regular tests and small amount of http
tests:

  • Remove old http/tests/webgl/1.0.2/
  • Add new http/tests/webgl/1.0.x / 2.0.y
  • http/tests/webgl/1.0.2/origin-clean-conformance-expected.txt: Removed.
  • http/tests/webgl/1.0.2/origin-clean-conformance.html: Removed.
  • http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt: Removed.
  • http/tests/webgl/1.0.2/readPixelsBadArgs.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/3x3.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/blue-1x1.jpg: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/bug-32888-texture.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/floatUniformShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/fragmentShader.frag: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-256-with-128-alpha.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-256.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-default-gamma.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma0.1.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma1.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma2.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma4.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp-gamma9.0.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/gray-ramp.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/green-2x2-16bit.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/noopUniformShader.frag: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/npot-video.mp4: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/npot-video.theora.ogv: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/npot-video.webmvp8.webm: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/pnglib.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.mp4: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.theora.ogv: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-green.webmvp8.webm: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/red-indexed.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-cie-rgb-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-colormatch-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-colorspin-profile.jpg: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-colorspin-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-e-srgb-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-smpte-c-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/small-square-with-srgb-iec61966-2.1-profile.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-canvas.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-image-data.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-image.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/tex-image-and-sub-image-2d-with-video.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/vertexShader.vert: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test-utils.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/webgl-test.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/resources/zero-alpha.png: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/00_test_list.txt: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/compressed-tex-image.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/copy-tex-image-2d-formats.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/copy-tex-image-and-sub-image-2d.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/gl-get-tex-parameter.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/gl-pixelstorei.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/gl-teximage.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/mipmap-fbo.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/origin-clean-conformance.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-array-buffer-view.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-canvas.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-data.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-image.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video-rgb565.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba4444.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba5551.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-sub-image-2d-with-video.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-and-uniform-binding-bugs.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-webgl.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-format-and-type.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-invalid-data.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-input-validation.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-sub-image-2d-bad-args.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-sub-image-2d.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texparameter-test.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-active-bind-2.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-active-bind.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-attachment-formats.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-clear.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-complete.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-formats-test.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-hd-dpi.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-mips.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-npot-video.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-npot.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-size-cube-maps.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-size-limit.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-size.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-sub-image-cube-maps.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-transparent-pixels-initialized.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/textures/texture-upload-cube-maps.html: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/desktop-gl-constants.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-post.js: Removed.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/resources/webgl-test-harness.js: Removed.
  • http/tests/webgl/1.0.2/texImage2DHTML-expected.txt: Removed.
  • http/tests/webgl/1.0.2/texImage2DHTML.html: Removed.
  • http/tests/webgl/1.0.2/texSubImage2DHTML-expected.txt: Removed.
  • http/tests/webgl/1.0.2/texSubImage2DHTML.html: Removed.
  • http/tests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs-expected.txt.
  • http/tests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html.
  • http/tests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • http/tests/webgl/1.0.x/conformance/more/functions/texImage2DHTML.html: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML.html.
  • http/tests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML-expected.txt.
  • http/tests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML.html: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texSubImage2DHTML.html.
  • http/tests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs-expected.txt.
  • http/tests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs.html: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/readPixelsBadArgs.html.
  • http/tests/webgl/2.0.y/conformance/more/functions/texImage2DHTML-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texImage2DHTML-expected.txt.
  • http/tests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html: Copied from LayoutTests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html.
  • http/tests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML-expected.txt.
  • http/tests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML.html: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texSubImage2DHTML.html.
  • http/tests/webgl/resources/js-test-pre.js: Copied from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-pre.js.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/readPixelsBadArgs.html.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/unit.css: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.css.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/unit.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/unit.js.
  • http/tests/webgl/resources/webgl_test_files/conformance/more/util.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/util.js.
  • http/tests/webgl/resources/webgl_test_files/js/js-test-post.js: Added.
  • http/tests/webgl/resources/webgl_test_files/js/js-test-pre.js: Copied from LayoutTests/webgl/resources/webgl_test_files/js/js-test-pre.js.
  • http/tests/webgl/resources/webgl_test_files/js/webgl-test-utils.js: Copied from LayoutTests/webgl/resources/webgl_test_files/js/webgl-test-utils.js.
  • http/tests/webgl/resources/webgl_test_files/resources/js-test-style.css: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webgl_test_files/resources/js-test-style.css.
  • http/tests/webgl/resources/webgl_test_files/resources/opengl_logo.jpg: Added.
  • http/tests/webgl/resources/webgl_test_files/resources/thunderbird-logo-64x64.png: Added.
  • http/tests/webgl/resources/webkit-webgl-test-harness.js: Renamed from LayoutTests/http/tests/webgl/1.0.2/resources/webkit-webgl-test-harness.js.
  • webgl/1.0.x/conformance/canvas/to-data-url-after-composite-expected.txt: Renamed from LayoutTests/webgl/2.0.y/deqp/functional/gles3/multisample-expected.txt.
  • webgl/1.0.x/conformance/canvas/to-data-url-after-composite.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_001_to_008-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_001_to_008.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_009_to_016-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_009_to_016.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_017_to_024-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_017_to_024.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_025_to_032-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_025_to_032.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_033_to_040-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_033_to_040.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_041_to_048-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_041_to_048.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_049_to_056-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_049_to_056.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_057_to_064-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_057_to_064.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_065_to_072-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_065_to_072.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_073_to_080-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_073_to_080.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_081_to_088-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_081_to_088.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_089_to_096-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_089_to_096.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_097_to_104-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_097_to_104.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_105_to_112-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_105_to_112.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_113_to_120-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_113_to_120.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_121_to_128-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_121_to_128.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_129_to_136-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_129_to_136.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_137_to_144-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_137_to_144.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_145_to_152-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_145_to_152.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_153_to_160-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_153_to_160.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_161_to_168-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_161_to_168.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_169_to_176-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_169_to_176.html: Added.
  • webgl/1.0.x/conformance/ogles/GL/build/build_177_to_178-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/1.0.x/conformance/ogles/GL/build/build_177_to_178.html: Added.
  • webgl/1.0.x/conformance/rendering/clear-default-framebuffer-with-scissor-test-expected.txt: Added.
  • webgl/1.0.x/conformance/rendering/clear-default-framebuffer-with-scissor-test.html: Added.
  • webgl/1.0.x/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution-expected.txt: Added.
  • webgl/1.0.x/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution.html: Added.
  • webgl/1.0.x/conformance/textures/misc/format-filterable-renderable-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-expected.txt.
  • webgl/1.0.x/conformance/textures/misc/format-filterable-renderable.html: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html.
  • webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html: Removed.
  • webgl/1.0.x/conformance/textures/misc/png-image-types-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-expected.txt.
  • webgl/1.0.x/conformance/textures/misc/png-image-types.html: Renamed from LayoutTests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance.html.
  • webgl/2.0.y/conformance/canvas/to-data-url-after-composite-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance/canvas/to-data-url-after-composite.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_001_to_008-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_001_to_008.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_009_to_016-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_009_to_016.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_017_to_024-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_017_to_024.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_025_to_032-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_025_to_032.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_033_to_040-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_033_to_040.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_041_to_048-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_041_to_048.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_049_to_056-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_049_to_056.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_057_to_064-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_057_to_064.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_065_to_072-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_065_to_072.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_073_to_080-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_073_to_080.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_081_to_088-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_081_to_088.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_089_to_096-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_089_to_096.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_097_to_104-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_097_to_104.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_105_to_112-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_105_to_112.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_113_to_120-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_113_to_120.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_121_to_128-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_121_to_128.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_129_to_136-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_129_to_136.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_137_to_144-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_137_to_144.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_145_to_152-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_145_to_152.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_153_to_160-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_153_to_160.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_161_to_168-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_161_to_168.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_169_to_176-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_169_to_176.html: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_177_to_178-expected.txt: Added.
  • webgl/2.0.y/conformance/ogles/GL/build/build_177_to_178.html: Added.
  • webgl/2.0.y/conformance/rendering/clear-default-framebuffer-with-scissor-test-expected.txt: Added.
  • webgl/2.0.y/conformance/rendering/clear-default-framebuffer-with-scissor-test.html: Added.
  • webgl/2.0.y/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution-expected.txt: Added.
  • webgl/2.0.y/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution.html: Added.
  • webgl/2.0.y/conformance/textures/misc/format-filterable-renderable-expected.txt: Renamed from LayoutTests/webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-offscreencanvas-expected.txt.
  • webgl/2.0.y/conformance/textures/misc/format-filterable-renderable.html: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/readPixelsBadArgs.html.
  • webgl/2.0.y/conformance/textures/misc/origin-clean-conformance-offscreencanvas.html: Removed.
  • webgl/2.0.y/conformance/textures/misc/origin-clean-conformance.html: Removed.
  • webgl/2.0.y/conformance/textures/misc/png-image-types-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/textures/misc/origin-clean-conformance-offscreencanvas-expected.txt.
  • webgl/2.0.y/conformance/textures/misc/png-image-types.html: Renamed from LayoutTests/webgl/2.0.y/conformance/more/functions/texImage2DHTML.html.
  • webgl/2.0.y/conformance2/extensions/required-extensions-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance2/extensions/required-extensions.html: Added.
  • webgl/2.0.y/conformance2/glsl3/fragment-shader-loop-crash-expected.txt: Copied from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance2/glsl3/fragment-shader-loop-crash.html: Added.
  • webgl/2.0.y/conformance2/glsl3/reciprocal-sqrt-of-sum-of-squares-crash-expected.txt: Added.
  • webgl/2.0.y/conformance2/glsl3/reciprocal-sqrt-of-sum-of-squares-crash.html: Added.
  • webgl/2.0.y/conformance2/misc/blend-integer-expected.txt: Renamed from LayoutTests/webgl/1.0.x/conformance/more/functions/texImage2DHTML-expected.txt.
  • webgl/2.0.y/conformance2/misc/blend-integer.html: Added.
  • webgl/2.0.y/conformance2/rendering/blitframebuffer-unaffected-by-colormask-expected.txt: Added.
  • webgl/2.0.y/conformance2/rendering/blitframebuffer-unaffected-by-colormask.html: Added.
  • webgl/2.0.y/conformance2/rendering/draw-buffers-sparse-output-locations-expected.txt: Added.
  • webgl/2.0.y/conformance2/rendering/draw-buffers-sparse-output-locations.html: Added.
  • webgl/2.0.y/conformance2/textures/misc/origin-clean-conformance-offscreencanvas-expected.txt: Removed.
  • webgl/2.0.y/conformance2/textures/misc/origin-clean-conformance-offscreencanvas.html: Removed.
  • webgl/2.0.y/deqp/functional/gles3/multisample.html: Removed.
  • webgl/2.0.y/deqp/functional/gles3/multisample/default_fbo-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/default_fbo.html: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_4_samples-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_4_samples.html: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_8_samples-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_8_samples.html: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_max_samples-expected.txt: Added.
  • webgl/2.0.y/deqp/functional/gles3/multisample/fbo_max_samples.html: Added.
  • webgl/draw-webgl-to-context2d-memory-test-expected.txt:
  • webgl/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html:
  • webgl/resources/webgl_test_files/conformance/canvas/to-data-url-after-composite.html: Added.
  • webgl/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
  • webgl/resources/webgl_test_files/conformance/context/methods.html:
  • webgl/resources/webgl_test_files/conformance/extensions/ext-texture-compression-bptc.html:
  • webgl/resources/webgl_test_files/conformance/extensions/ext-texture-compression-rgtc.html:
  • webgl/resources/webgl_test_files/conformance/extensions/s3tc-and-rgtc.html:
  • webgl/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html:
  • webgl/resources/webgl_test_files/conformance/extensions/webgl-multi-draw.html:
  • webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html:
  • webgl/resources/webgl_test_files/conformance/glsl/bugs/character-set.html:
  • webgl/resources/webgl_test_files/conformance/glsl/constructors/glsl-construct-vec-mat-index.html:
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CG_Data_Types_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CG_Standard_Library_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectBuiltInOveride_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectComma_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectConstFolding1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectConstFolding2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectConstruct_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectExtension10_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectExtension1_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectExtension4_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFull_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFuncOverload_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFuncOverload_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectFunction1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectModule_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParse1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParse2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParse2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParseTest1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectParseTest_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectPreprocess5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectPreprocess8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectPreprocess9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectSwizzle3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/CorrectVersion_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/DuplicateVersion1_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/FunctionParam_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Include_Preprocessor_Directive_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Low_Level_Assembly_Reserved_Words_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Main_Parameters_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/ParseTest3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/ParseTest4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Permissive_Constant_Conversions_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Permissive_Scalar_Vector_Expressions_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/TernaryOp_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/Texture_Rectangle_Samplers_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array11_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/array9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/attribute_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/break_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_001_to_008.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_009_to_016.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_017_to_024.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_025_to_032.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_033_to_040.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_041_to_048.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_049_to_056.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_057_to_064.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_065_to_072.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_073_to_080.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_081_to_088.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_089_to_096.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_097_to_104.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_105_to_112.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_113_to_120.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_121_to_128.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_129_to_136.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_137_to_144.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_145_to_152.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_153_to_160.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_161_to_168.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_169_to_176.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/build_177_to_178.html: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comma3_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/comment_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/conditional1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/conditional2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/conditional3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constFunc_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constructor1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constructor2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/constructor3_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/continue_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType11_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType12_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType13_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType19_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dataType9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/default.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/default.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dowhile_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dvec2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dvec3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/dvec4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension2_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension3_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension5_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension6_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension7_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension8_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/extension9_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/float2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/float3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/float4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly3_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly4_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/fragmentOnly_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function2_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/function9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/hvec2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/hvec3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/hvec4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/identifier1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/identifier2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/identifier3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/if1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/if2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/increment6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/input.run.txt: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/main1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/main2_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/main3_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/matrix_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/normal_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser1_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/parser9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess0_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/preprocess7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/scoping1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/scoping2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct10_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct11_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct4_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct5_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct6_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct7_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct8_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/struct9_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/swizzle1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/swizzle2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/swizzle3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/typecast_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/uniform1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/uniform_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying3_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/varying_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vector_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/version2_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/version3_V100_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vertexOnly2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vertexOnly_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/vertex_vert.vert: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/while1_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/while2_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/ogles/GL/build/while_frag.frag: Added.
  • webgl/resources/webgl_test_files/conformance/programs/program-test.html:
  • webgl/resources/webgl_test_files/conformance/rendering/clear-default-framebuffer-with-scissor-test.html: Added.
  • webgl/resources/webgl_test_files/conformance/rendering/color-mask-should-not-affect-antialiased-framebuffer-resolution.html: Added.
  • webgl/resources/webgl_test_files/conformance/state/gl-object-get-calls.html:
  • webgl/resources/webgl_test_files/conformance/textures/misc/format-filterable-renderable.html: Added.
  • webgl/resources/webgl_test_files/conformance/textures/misc/png-image-types.html: Added.
  • webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html:
  • webgl/resources/webgl_test_files/conformance2/context/methods-2.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/ext-texture-norm16.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/oes-draw-buffers-indexed.html:
  • webgl/resources/webgl_test_files/conformance2/extensions/required-extensions.html: Added.
  • webgl/resources/webgl_test_files/conformance2/extensions/webgl-multi-draw-instanced-base-vertex-base-instance.html:
  • webgl/resources/webgl_test_files/conformance2/glsl3/array-equality.html:
  • webgl/resources/webgl_test_files/conformance2/glsl3/fragment-shader-loop-crash.html: Added.
  • webgl/resources/webgl_test_files/conformance2/glsl3/matrix-row-major-dynamic-indexing.html:
  • webgl/resources/webgl_test_files/conformance2/glsl3/reciprocal-sqrt-of-sum-of-squares-crash.html: Added.
  • webgl/resources/webgl_test_files/conformance2/misc/blend-integer.html: Added.
  • webgl/resources/webgl_test_files/conformance2/programs/gl-get-frag-data-location.html:
  • webgl/resources/webgl_test_files/conformance2/rendering/blitframebuffer-unaffected-by-colormask.html: Added.
  • webgl/resources/webgl_test_files/conformance2/rendering/draw-buffers-sparse-output-locations.html: Added.
  • webgl/resources/webgl_test_files/conformance2/state/gl-object-get-calls.html:
  • webgl/resources/webgl_test_files/conformance2/textures/misc/tex-storage-compressed-formats.html:
  • webgl/resources/webgl_test_files/deqp/functional/gles3/es3fMultisampleTests.js:
  • webgl/resources/webgl_test_files/deqp/functional/gles3/es3fPrimitiveRestartTests.js:
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample.html: Removed.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/default_fbo.html: Added.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/fbo_4_samples.html: Added.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/fbo_8_samples.html: Added.
  • webgl/resources/webgl_test_files/deqp/functional/gles3/multisample/fbo_max_samples.html: Added.
  • webgl/resources/webgl_test_files/js/glsl-conformance-test.js:
  • webgl/resources/webgl_test_files/js/js-test-post.js:
  • webgl/resources/webgl_test_files/js/js-test-pre.js:
  • webgl/resources/webgl_test_files/js/tests/compressed-texture-utils.js:
  • webgl/resources/webgl_test_files/js/tests/context-methods.js: Added.
  • webgl/resources/webgl_test_files/js/tests/ext-color-buffer-half-float.js:
  • webgl/resources/webgl_test_files/js/tests/gl-object-get-calls.js:
  • webgl/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-image-bitmap-from-video.js:
  • webgl/resources/webgl_test_files/js/tests/tex-image-and-sub-image-3d-with-image-bitmap-from-video.js:
  • webgl/resources/webgl_test_files/js/webgl-test-utils.js:
  • webgl/resources/webgl_test_files/resources/red-green.webmvp8.webm:
  • webgl/resources/webgl_test_files/resources/video-rotation-0.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-180.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-270.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-90.mp4:
  • webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4:
3:08 AM Changeset in webkit [288670] by graouts@webkit.org
  • 9 edits in trunk/Source

<model> should only be draggable on iOS
​https://bugs.webkit.org/show_bug.cgi?id=235697

Reviewed by Dean Jackson.

Source/WebCore:

As part of bug 229246 we added support for dragging <model> elements. However, it only
worked on iOS in practice so we make that explicit so that other platforms that do not
have complete support for <model> dragging do not have that feature.

This is also important leading up to bug 227621, where we'll implement the "interactive"
HTML attribute and IDL property, since disabling dragging over a <model> element to adjust
the camera would trigger a crash under Pasteboard::write() on macOS due to not having an
image set on the pasteboard data.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::supportsDragging const):
(WebCore::HTMLModelElement::isDraggableIgnoringAttributes const):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/ModelPlayer.cpp:

(WebCore::ModelPlayer::supportsDragging):

  • Modules/model-element/ModelPlayer.h:
  • page/DragController.cpp:

(WebCore::modelElementIsDraggable):

Source/WebKit:

Override the ModelPlayer method to enable <model> dragging on iOS.

  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
  • WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:

(WebKit::ARKitInlinePreviewModelPlayerIOS::supportsDragging):

12:48 AM Changeset in webkit [288669] by Cameron McCormack
  • 4 edits in trunk

Avoid setting and clearing :active state when dispatching synthetic click events when possible
​https://bugs.webkit.org/show_bug.cgi?id=235672
<rdar://problem/88095418>

Reviewed by Simon Fraser.

Source/WebCore:

Simulated click events are dispatched with two options:

  • whether to send associated events mouseover, mouseup, mousedown
  • whether to repaint the target element with its pressed look

We currently always set the element's :active state just after when we'd
send the mousedown event, and clear it just after that.

When we dispatch a simulated click event with neither of the above
options set, there's no way to observe the temporary :active state on
the element. We can skip it in that case.

We need to continue clearing clearing the :active state regardless,
because some callers have already set :active and are relying on
simulateClick to clear it.

This patch is a 0.3-0.4% improvement on Speedometer 2.

  • dom/SimulatedClick.cpp:

(WebCore::simulateClick):

LayoutTests:

  • platform/gtk/inspector/timeline/line-column-expected.txt:

Jan 26, 2022:

11:21 PM Changeset in webkit [288668] by graouts@webkit.org
  • 4 edits in trunk/Source

[Web Inspector] Update return value name for Animation.requestEffectTarget()
​https://bugs.webkit.org/show_bug.cgi?id=235661

Reviewed by Devin Rousso.

Source/JavaScriptCore:

I wrongly assumed the name of the return value was important for backward compatibility when
fixing bug 235234, but it's not, so let's use a better name which doesn't make any particular
assumption on the type.

  • inspector/protocol/Animation.json:

Source/WebInspectorUI:

Update the parameter name to match the name used in the protocol.

  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

10:59 PM Changeset in webkit [288667] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.
In other words:
For each update, we did the following steps:

  • Set m_data to a new big continuous chunk of data that stores all received data
  • Create a view of the new data as a SharedBuffer. This SharedBuffer references the big continuous chunk above
  • XHR stores a ref to the view, hence keep the big chunk alive.

Each XHR chunk, although small in data that can be accessed, is actually keeping in memory all temporary created m_data chunks.
Following this change, XHR will now only keeps a reference to the new DataSegment added since the last run rather than the entire previous content.

Fly-by: add some comments describing the running of the method.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

10:16 PM Changeset in webkit [288666] by ChangSeok Oh
  • 11 edits in trunk

[GTK] WTR: Native HTML form validation popover is not supported
​https://bugs.webkit.org/show_bug.cgi?id=167579

Reviewed by Carlos Garcia Campos.

This change enables form-validation-related tests. To this end, two APIs called
overridePreference and contentsOfUserInterfaceItem are added to UIScriptController.

Source/WebKit:

WebKitWebViewBase implements contentsOfUserInterfaceItem for UIScriptController
necessary for webkit tests. It returns a font size and an actual message of a validation
bubble in the dictionary format. For overridePreference, we directly call WKPreference API
in WKView.cpp

No new tests since this change is the enabler of existing tests.

  • UIProcess/API/C/gtk/WKView.cpp:

(WKViewContentsOfUserInterfaceItem):

  • UIProcess/API/C/gtk/WKViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContentsOfUserInterfaceItem):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

Tools:

UIScriptController.overridePreference configures the minimum font size of the validation bubbles
and UIScriptController.contentsOfUserInterfaceItem returns an actual bubble message along with its font size
in a json object.

  • WebKitTestRunner/TestController.h: Make paltformPreferences public.
  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::overridePreference):
(WTR::toJSONObject):
(WTR::UIScriptControllerGtk::contentsOfUserInterfaceItem const):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

We configure the minimum font size of the validation bubbles via UIScriptController.overridePreference
and retrieve a message and its font size through UIScriptController.contentsOfUserInterfaceItem.

  • platform/gtk/TestExpectations: Enable form validation related tests we can perform with native bubble widgets but skip ones related to HTML-based form validation as Cocoa-based ports do.
9:35 PM Changeset in webkit [288665] by Alan Coon
  • 1 copy in tags/Safari-613.1.14.11.2

Tag Safari-613.1.14.11.2.

9:32 PM Changeset in webkit [288664] by Alan Coon
  • 9 edits in branches/safari-613.1.14.11-branch/Source

Versioning.

WebKit-7613.1.14.11.2

8:36 PM Changeset in webkit [288663] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[WPE] Unreviewed, fix non-unified build after r288640
​https://bugs.webkit.org/show_bug.cgi?id=235682

  • bindings/js/JSDOMMicrotask.cpp: Add missing header.
8:12 PM Changeset in webkit [288662] by pvollan@apple.com
  • 9 edits in trunk/Source

[WP] Avoid calling IOSurfaceAlignProperty
​https://bugs.webkit.org/show_bug.cgi?id=235659

Reviewed by Simon Fraser.

Source/WebCore:

Add information about alignment of bytes per row to IOSurface class.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::surfaceBytesPerRowAlignment):
(WebCore::IOSurface::bytesPerRowAlignment):
(WebCore::IOSurface::setBytesPerRowAlignment):

Source/WebKit:

Avoid calling IOSurfaceAlignProperty in the WebContent process, since it requires IOKit access.
Information about the alignment of bytes per row of IOSurface will be retrieved in the UI process,
and sent to the WebContent process, where it will be stored.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::calculateBytesPerRow):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

7:20 PM Changeset in webkit [288661] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/Source/WebCore

Remove the now-unused JSGlobalObjectTask class
​https://bugs.webkit.org/show_bug.cgi?id=235675

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-26
Reviewed by Darin Adler.

It was named quite poorly and replaced with JSMicrotaskCallback.

No new tests, no behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObjectTask.cpp: Removed.
  • bindings/js/JSDOMGlobalObjectTask.h: Removed.
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
6:53 PM Changeset in webkit [288660] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Build failure with GCC 12: MediaTime.h:167:71: error: call to non-'constexpr' function 'WTF::MediaTime& WTF::MediaTime::operator=(const WTF::MediaTime&)'
​https://bugs.webkit.org/show_bug.cgi?id=235610

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-26
Reviewed by Darin Adler.

The problem is the constexpr constructor calls the non-constexpr copy assignment operator.
This is easy to fix, at the expense of readability, by open-coding the desired values here.

  • wtf/MediaTime.h:

(WTF::MediaTime::MediaTime):

5:21 PM Changeset in webkit [288659] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r288614.

Caused layout test crashes

Reverted changeset:

"REGRESSION(r287684) speedtest.net uses many GB of memory"
​https://bugs.webkit.org/show_bug.cgi?id=235615
​https://commits.webkit.org/r288614

5:04 PM Changeset in webkit [288658] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Symbols not always properly hidden when using WebKitAdditions to introduce new API
​https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Surround APIs from WebKitAdditions with #if ENABLE(API_WEBKIT_ADDITIONS) instead of
#if USE(APPLE_INTERNAL_SDK) and leaving API_WEBKIT_ADDITIONS to be intentionally
undefined. This is because we never want to build the code inside this #if block.
Instead, those blocks are only meant to be replaced by the
replace-webkit-additions-includes.py with the code from WebKitAdditions.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py:

(main):

5:02 PM Changeset in webkit [288657] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Ignore hooks from closed PRs
​https://bugs.webkit.org/show_bug.cgi?id=235666
<rdar://problem/88091611>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/events.py:

(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request): Ignore hooks coming from closed pull requests.

Canonical link: ​https://commits.webkit.org/246465@main

4:57 PM Changeset in webkit [288656] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (01/14/22?): [macOS Release WK2] imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html and createImageBitmap-flipY.html are flaky failures
​https://bugs.webkit.org/show_bug.cgi?id=235681

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark tests as flaky.
4:57 PM Changeset in webkit [288655] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: m_pdfDocument under WebKit::PDFPlugin::installPDFDocument()
​https://bugs.webkit.org/show_bug.cgi?id=235660

Unreviewed test gardening.

Speculatively skip fast/replaced/encrypted-pdf-as-object-and-embed.html, which runs right
before a non-PDF test that gets the blame for the crash.

  • platform/mac/TestExpectations:
4:15 PM Changeset in webkit [288654] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Make some minor adjustments after r288621
​https://bugs.webkit.org/show_bug.cgi?id=235598
rdar://88032375

Reviewed by Darin Adler.

Address some post-commit review comments.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

  • testing/Internals.mm:

(WebCore::Internals::fakeDataDetectorResultForTesting):

4:07 PM Changeset in webkit [288653] by don.olmstead@sony.com
  • 7 edits in trunk/Tools

Share TestRunner::installFakeHelvetica implementation
​https://bugs.webkit.org/show_bug.cgi?id=235657

Reviewed by Darin Adler.

The implementation of TestRunner::installFakeHelvetica was the same for each port. It just
calls into the WTR::installFakeHelvetica function defined in ActivateFonts.h which does the
actual work of installing the font.

  • WebKitTestRunner/InjectedBundle/ActivateFonts.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installFakeHelvetica):

  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

  • WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:

(WTR::TestRunner::installFakeHelvetica): Deleted.

4:03 PM Changeset in webkit [288652] by J Pascoe
  • 8 edits in trunk/Source/WebKit

[WebAuthn] We should pass extensions to ASC if possible
​https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(authenticationExtensionsClientInputs):

  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::toNSString):
(WebKit::toASCExtensions):
(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
3:56 PM Changeset in webkit [288651] by commit-queue@webkit.org
  • 53 edits in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
​https://bugs.webkit.org/show_bug.cgi?id=235677

This is mostly rebaselining and updating expectations after r288070
enabled LFC integration for complex text.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-26

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t1508-c527-font-00-b-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/css-text/white-space/trailing-space-position-001-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt:
  • platform/glib/transforms/2d/hindi-rotated-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/block/margin-collapse/045-expected.txt:
  • platform/gtk/fast/borders/rtl-border-05-expected.txt:
  • platform/gtk/fast/css/word-space-extra-expected.txt:
  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/gtk/fast/forms/large-toggle-elements-expected.txt:
  • platform/gtk/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/frames/iframe-scrolling-attribute-expected.txt:
  • platform/gtk/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/gtk/fast/text/wbr-expected.txt:
  • platform/gtk/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
  • platform/gtk/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
  • platform/gtk/fast/text/whitespace/span-in-word-space-causes-overflow-expected.txt:
  • platform/gtk/fast/text/word-space-expected.txt:
  • platform/gtk/fonts/sans-serif-expected.txt:
  • platform/gtk/fonts/serif-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/innerText/getter-expected.txt:
  • platform/gtk/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
  • platform/gtk/scrollbars/overflow-scrollbar-combinations-expected.txt:
  • platform/gtk/svg/as-object/object-box-sizing-no-width-height-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
  • platform/gtk/svg/custom/svg-fonts-word-spacing-expected.txt:
  • platform/gtk/svg/hixie/processing-model/003-expected.txt:
  • platform/gtk/svg/hixie/processing-model/004-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug113235-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug126742-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug14323-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2267-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2947-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2973-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug38916-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/core/col_span-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_col_width_rel-expected.txt:
  • platform/gtk/tables/mozilla/marvin/x_colgroup_width_rel-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
  • platform/gtk/transforms/3d/general/perspective-units-expected.txt:
  • platform/wpe/TestExpectations:
3:53 PM Changeset in webkit [288650] by Alan Bujtas
  • 11 edits
    2 adds in trunk

REGRESSION (r281306): Non-breaking space incorrectly collapsed when webkit-nbsp-mode is set to "space"
​https://bugs.webkit.org/show_bug.cgi?id=235627
<rdar://88004831>

Reviewed by Antti Koivisto.

Source/WebCore:

"-webkit-nbsp-mode: space" has a peculiar collapsing behavior. It only collapses as leading content
preceded by forced line break.

<div style="-webkit-nbsp-mode: space; width: 0px;">

first_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second_line

</div>
The non-breaking space is collapsed. It does not show on the second line as leading content.

<div style="-webkit-nbsp-mode: space; width: 0px;">

first_line<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second_line

</div>
The non-breaking space is NOT collapsed. It shows up as leading content on the second line, indenting the "second_line" text content.

To mimic this legacy behavior, it's easier just to switch back to handling nbsp; as a non-whitespace inline item and
collapse it as leading content (depending on the breaking context).
(as opposed to customize regular whitespace content collapsing behavior just to support this quirk)

Test: fast/text/collapsible-non-breaking-space.html

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition): remove special nbsp; handling
(WebCore::Layout::InlineItemsBuilder::handleTextContent): create an inline text item for the special mon-breaking space content.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::appendTextContent):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLine):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::isFirstLine const):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::isCollapsibleNonBreakingSpace const):

  • layout/formattingContexts/inline/InlineTextItem.h:

LayoutTests:

  • fast/text/collapsible-non-breaking-space-expected.html: Added.
  • fast/text/collapsible-non-breaking-space.html: Added.
  • platform/ios/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt: A slight behavior change with trailing content trimming, but

not generally noticeable and very specific to this non-standard property.

  • platform/mac/fast/text/whitespace/nbsp-mode-and-linewraps-expected.txt:
3:29 PM Changeset in webkit [288649] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

Move leftover JSValue inlines from JSString.h to JSCJSValueInlines.h
​https://bugs.webkit.org/show_bug.cgi?id=235662

Reviewed by Yusuke Suzuki.

JSString.h still contains some JSValue inlines from years past
(including toBoolean which doesn't overtly relate to strings at all);
these can be moved to JSCJSValueInlines.h without issue.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toBoolean const): Added.
(JSC::JSValue::toString const): Added.
(JSC::JSValue::toStringOrNull const): Added.
(JSC::JSValue::toWTFString const): Added.

  • runtime/JSString.h:

(JSC::JSValue::toBoolean const): Deleted.
(JSC::JSValue::toString const): Deleted.
(JSC::JSValue::toStringOrNull const): Deleted.
(JSC::JSValue::toWTFString const): Deleted.

3:07 PM Changeset in webkit [288648] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

JSEventListener::replaceJSFunctionForAttributeListener() should not replace m_wrapper unconditionally
​https://bugs.webkit.org/show_bug.cgi?id=235658

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-26
Reviewed by Yusuke Suzuki.

This is a follow-up to r287293, which aligns JSEventListener::replaceJSFunctionForAttributeListener()
with JSEventListener::ensureJSFunction() in terms of handling uninitilized lazy event listeners.

Without this change, the microbenchmark in <​https://webkit.org/b/234441> consumes 16 GB of memory in
30 seconds and crashes, which even isn't a regression: the same issue was observed before r287293.

According to new microbenchmark samples, I'm hopeful that with this patch, Speedometer2/Inferno-TodoMVC
will progress as promised in r287293.

No new tests, no behavior change.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

2:49 PM Changeset in webkit [288647] by Russell Epstein
  • 4 edits in branches/safari-611.3.10.1-branch/Source

Revert "Cherry-pick r281384. rdar://problem/82195071"

This reverts commit r281392.

2:35 PM Changeset in webkit [288646] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

REGRESSION(r288623) MSVC reports "InspectorDOMAgent.cpp(558,40): error C2059: syntax error: ':'"
​https://bugs.webkit.org/show_bug.cgi?id=235667

Unreviewed build fix.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushStyleableElementToFrontend):
(WebCore::InspectorDOMAgent::pushStyleablePathToFrontend):
Don't use GNU extension ?:.

2:15 PM Changeset in webkit [288645] by Alan Coon
  • 4 edits in branches/safari-609.4.1.1-branch

Cherry-pick r286308. rdar://problem/85830759

Scripting attributes are sometimes not properly stripped from elements when JS is disabled
​https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@286308 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:59 PM Changeset in webkit [288644] by Alexander Mikhaylenko
  • 2 edits in trunk/Source/WebKit

[GTK3] Pinch zooming from a link activates it
​https://bugs.webkit.org/show_bug.cgi?id=235639

Reviewed by Carlos Garcia Campos.

Turns out gestures behave differently between GTK3 and 4. On GTK4 it works
fine, but on GTK3 starting a pinch zoom triggers the multipress gesture
when one finger is down, and completes it when the second finger is down.

This results in a bogus click, with no way to prevent it as it happens
before any of the zoom callbacks are called. Since we can't know if there
will be a zoom afterwards or not, we can't do anything about it.

However, what we can do is reorder these gestures. In GTK3 the order the
gestures are processed in depends on which order they were created in.

At that point, there's a problem with the fact the gestures are grouped.
Grouping means that these 2 gestures are triggered at the same time. While
somehow the press gesture is still triggered without grouping with the
original order, they become properly decoupled in reverse order and
ungrouped.

At that point, we can safely cancel the press gesture when the zoom gesture
starts, and fix the issue.

This seems to still work fine for GTK4.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseConstructed):

1:58 PM Changeset in webkit [288643] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Make sure WGSLUnitTests can call into WGSL
​https://bugs.webkit.org/show_bug.cgi?id=235630

Reviewed by Dean Jackson.

  • WGSL/WGSL.cpp:

(WGSL::staticCheck): Apparently /usr/local/include/AssertMacros.h #defines "check"
(WGSL::check): Deleted.

  • WGSL/WGSL.h:
  • WGSLUnitTests/WGSLUnitTests.mm:

(-[WGSLUnitTests testExample]):

12:51 PM Changeset in webkit [288642] by Kocsen Chung
  • 8 edits in branches/safari-609.4.1.1-branch/Source

Versioning.

WebKit-7609.4.1.1.1

12:10 PM Changeset in webkit [288641] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Add an iterator to KeyframeList
​https://bugs.webkit.org/show_bug.cgi?id=235652

Reviewed by Darin Adler.

Add an iterator for KeyframeList and remove the keyframes() method which serves no purpose now.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computedNeedsForcedLayout):
(WebCore::KeyframeEffect::computeSomeKeyframesUseStepsTimingFunction):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::copyKeyframes):

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeList::operator[] const):
(WebCore::KeyframeList::begin const):
(WebCore::KeyframeList::end const):
(WebCore::KeyframeList::keyframes const): Deleted.

12:10 PM Changeset in webkit [288640] by Alexey Shvayka
  • 21 edits
    5 adds in trunk

globalThis.queueMicrotask() should report thrown exceptions
​https://bugs.webkit.org/show_bug.cgi?id=235614

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.serviceworker-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.worker-expected.txt:

Source/JavaScriptCore:

  1. Move JSGlobalObject::hasDebugger() to the header to facilitate inlining as it's used in a rather hot Microtask execution code.
  2. Export a few Debugger methods for JSDOMMicrotask::run().
  3. Remove the now-unused createJSMicrotask() overload.
  • debugger/Debugger.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::hasDebugger const): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::hasDebugger const):

  • runtime/JSMicrotask.cpp:
  • runtime/JSMicrotask.h:

Source/WebCore:

This patch introduces WebCore::JSDOMMicrotask so the queueMicrotask() could report
a thrown exception as per spec [1] and to avoid invocation of a userland function
from detached <iframe>, which aligns WebKit with Blink and Gecko.

Both this changes align the callback of queueMicrotask() with generated callback
functions / interfaces (see bug 232387) that are implemented via JSCallbackData.

[1] ​https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing:report-the-exception

Tests: imported/w3c/web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js

fast/dom/callback-function-detached-frame-queue-microtask.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMMicrotask.cpp: Added.

(WebCore::createJSDOMMicrotask):
(WebCore::JSDOMMicrotask::run):

  • bindings/js/JSDOMMicrotask.h: Added.
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::queueMicrotask):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::queueMicrotask):

  • dom/EventLoop.h:

LayoutTests:

  • TestExpectations: Unskip 3 WPT tests that are now passing.
  • fast/dom/callback-function-detached-frame-queue-microtask-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-queue-microtask.html: Added.
  • fast/dom/resources/callback-function-detached-frame-queue-microtask-iframe.html: Added.
  • inspector/debugger/break-on-uncaught-exception-expected.txt:
  • platform/mac-wk1/TestExpectations: Skip Service Worker test.
12:06 PM Changeset in webkit [288639] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.3

Tag Safari-613.1.14.5.3.

12:01 PM Changeset in webkit [288638] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Revert 609 "Versioning."

11:46 AM Changeset in webkit [288637] by Russell Epstein
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7609.4.1.1.1

11:44 AM Changeset in webkit [288636] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Support pull requests in built product management
​https://bugs.webkit.org/show_bug.cgi?id=235589
<rdar://problem/88024098>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(ConfigureBuild.add_patch_id_url): Set change_id.
(ConfigureBuild.add_pr_details): Ditto.
(Trigger.propertiesToPassToTriggers): Pass change_id.
(UploadBuiltProduct): Use change_id instead of patch_id.
(TransferToS3): Ditto.
(DownloadBuiltProduct): Ditto.
(DownloadBuiltProductFromMaster): Ditto.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: ​https://commits.webkit.org/246450@main

11:32 AM Changeset in webkit [288635] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Remove remaining PseudoElement.h includes
​https://bugs.webkit.org/show_bug.cgi?id=235651

Reviewed by Antti Koivisto.

After the fix for bug 235234, we've successfully removed all use of PseudoElement
under animation/ yet we had some remaining includes of PseudoElement.h.

  • animation/DeclarativeAnimation.cpp:
  • animation/WebAnimationUtilities.cpp:
11:31 AM Changeset in webkit [288634] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] Allow triggering individual EWS queues
​https://bugs.webkit.org/show_bug.cgi?id=235620

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/loadConfig.py:

(loadBuilderConfig): Allow ForceScheduler in production, configure it appropriately.

Canonical link: ​https://commits.webkit.org/246448@main

11:24 AM Changeset in webkit [288633] by Russell Epstein
  • 4 edits in branches/safari-613.1.14.5-branch/Source/WebKit

Cherry-pick r288629. rdar://problem/88061283

Build failure - webkit daemons don't need symlink with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235648

Reviewed by Darin Adler.

Removed the create symlinks for the WebKit daemons since they are under the symlink for
/System/Library/WebKit.framework.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:22 AM Changeset in webkit [288632] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Support workspace builds in build-webkit
​https://bugs.webkit.org/show_bug.cgi?id=235550

On Apple platforms, build-webkit --use-workspace now builds using WebKit.xcworkspace and
XCBuild. This complements the USE_WORKSPACE=YES Make flag added in
​https://commits.webkit.org/246232@main.

At this time, there is no guarantee of correctness when building with USE_WORKSPACE=YES, and
workspace builds are not checked by builders.

Patch by Elliott Williams <Elliott Williams> on 2022-01-26
Reviewed by Alexey Proskuryakov.

  • Scripts/build-webkit: Add --use-workspace flag, correct platform hints in $usage.
  • Scripts/webkitdirs.pm: Remove canUseXCBuild, the flag it powered is no longer used.

(buildXCodeWorkspace): Added.

11:13 AM Changeset in webkit [288631] by Chris Dumez
  • 20 edits in trunk

Unreviewed, revert r286855 as it caused form submission issues
​https://bugs.webkit.org/show_bug.cgi?id=235645
<rdar://88020080>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didChangeForm):
(WebCore::HTMLInputElement::insertedIntoAncestor):
(WebCore::HTMLInputElement::removedFromAncestor):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup const):

  • html/InputType.h:

(WebCore::InputType::willUpdateCheckedness): Deleted.

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::valueMissing const):
(WebCore::RadioInputType::willUpdateCheckedness): Deleted.

  • html/RadioInputType.h:

LayoutTests:

  • fast/forms/radio/ValidityState-valueMissing-radio-expected.txt:
  • fast/forms/radio/ValidityState-valueMissing-radio.html:
  • fast/forms/radio/radio-live-validation-style-expected.txt:
  • fast/forms/radio/radio-live-validation-style.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
10:59 AM Changeset in webkit [288630] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.3

10:55 AM Changeset in webkit [288629] by msaboff@apple.com
  • 4 edits in trunk/Source/WebKit

Build failure - webkit daemons don't need symlink with system content path
​https://bugs.webkit.org/show_bug.cgi?id=235648

Reviewed by Darin Adler.

Removed the create symlinks for the WebKit daemons since they are under the symlink for
/System/Library/WebKit.framework.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
10:04 AM Changeset in webkit [288628] by Alan Coon
  • 4 edits in branches/safari-611.3.10.1-branch

Cherry-pick r286308. rdar://problem/85830732

Scripting attributes are sometimes not properly stripped from elements when JS is disabled
​https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>

Reviewed by Geoffrey Garen.

Source/WebCore:

HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().

Covered by new API tests.

  • html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@286308 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:01 AM Changeset in webkit [288627] by Antti Koivisto
  • 10 edits
    1 delete in trunk

[CSS Container Queries] container-type property should establish containment for 'size' and 'inline-size' values
​https://bugs.webkit.org/show_bug.cgi?id=235638

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt:

Source/WebCore:

​https://drafts.csswg.org/css-contain-3/#container-type

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isLayoutContainmentBox const):
(WebCore::Layout::Box::isSizeContainmentBox const):

  • rendering/RenderObject.cpp:

(WebCore::shouldApplyAnyContainment):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::effectiveContainment const):

Add effectiveContaiment function add use it in most places instead of accessing contain()
property value directly.

Apply appropriate containment for container-type. Note that 'inline-size' containment is not
supported yet.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containsLayout const):
(WebCore::RenderStyle::containsSize const):
(WebCore::RenderStyle::containsStyle const):
(WebCore::RenderStyle::containsPaint const):

LayoutTests:

9:58 AM Changeset in webkit [288626] by Alan Coon
  • 1 copy in branches/safari-609.4.1.1-branch

New branch.

9:57 AM Changeset in webkit [288625] by Alan Coon
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.16

9:49 AM Changeset in webkit [288624] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Pass -pipe to compilers that support it
​https://bugs.webkit.org/show_bug.cgi?id=235641

Reviewed by Darin Adler.

  • Source/cmake/WebKitCompilerFlags.cmake: Add -pipe to compiler options where supported.
9:41 AM Changeset in webkit [288623] by graouts@webkit.org
  • 25 edits
    1 add in trunk

[Web Inspector] Graphics tab should display pseudo-elements for more than ::before and ::after
​https://bugs.webkit.org/show_bug.cgi?id=235234
<rdar://87766777>

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add a new DOM.Styleable type to be used as the parameter type for requestEffectTarget() callbacks.

  • inspector/protocol/Animation.json:
  • inspector/protocol/DOM.json:

Source/WebCore:

Until now, we would pass the result of KeyframeEffect::targetElementOrPseudoElement() to
InspectorAnimationAgent::willApplyKeyframeEffect(). This meant that the inspector would only
be told of an animation target as an Element or a PseudoElement but not as an Element / PseudoId
pair, thus only allowing ::before and ::after to be represented since only those pseudo-elements
create a PseudoElement.

We now pass a Styleable, which encapsulate an Element / PseudoId pair, to
InspectorAnimationAgent::willApplyKeyframeEffect(). Additionally, the Styleable target is read from
the effect for callbacks provided to requestEffectTarget().

Sadly, we still rely on PseudoElement, but this patch at least removes all use of PseudoElement
from KeyframeEffect and pushes it down to InspectorDOMAgent with a new static method
elementToPushForStyleable() which the new pushStyleableElementToFrontend() and pushStyleablePathToFrontend()
methods use to turn the Styleable to an Element or PseudoElement.

In the future, we would need to further remove PseudoElement from Web Inspector and expose something
similar to Styleable throughout the codebase, or find some other way to encapsulate an Element / PseudoId
pair.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::targetElementOrPseudoElement const): Deleted.

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::target const):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffect):

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::requestEffectTarget):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):

  • inspector/agents/InspectorAnimationAgent.h:
  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::protocolValueForPseudoId):
(WebCore::protocolValueForPseudoId): Deleted.

  • inspector/agents/InspectorCSSAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::elementToPushForStyleable):
(WebCore::InspectorDOMAgent::pushStyleableElementToFrontend):
(WebCore::InspectorDOMAgent::pushStyleablePathToFrontend):

  • inspector/agents/InspectorDOMAgent.h:

Source/WebInspectorUI:

Add a new DOMStyleable model class to match the new DOM.Styleable protocol type.

When calling Animation.requestEffectTarget(), we now use this new DOMStyleable class
to display pseudo-elements other than ::before or ::after in the Graphics tab.

  • UserInterface/Base/DOMUtilities.js:

(WI.linkifyStyleable):

  • UserInterface/Main.html:
  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

  • UserInterface/Models/DOMStyleable.js: Added.

(WI.DOMStyleable.prototype.fromPayload):
(WI.DOMStyleable.prototype.get node):
(WI.DOMStyleable.prototype.get pseudoId):
(WI.DOMStyleable.prototype.get displayName):
(WI.DOMStyleable):

  • UserInterface/Test.html:
  • UserInterface/Views/AnimationCollectionContentView.js:

(WI.AnimationCollectionContentView.prototype._handleContentViewMouseEnter):

  • UserInterface/Views/AnimationContentView.js:

(WI.AnimationContentView.prototype._refreshSubtitle):

  • UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype._refreshIdentitySection):

LayoutTests:

Check that requestEffectTarget() returns the correct Styleable by checking whether it's defined
or null, and checking its node and pseudoId members.

  • inspector/animation/targetChanged-expected.txt:
  • inspector/animation/targetChanged.html:
8:59 AM Changeset in webkit [288622] by J Pascoe
  • 7 edits in trunk

[WebAuthn] Add authenticator attachment used during authentication to credential payload
​https://bugs.webkit.org/show_bug.cgi?id=235621
rdar://86538235

Reviewed by Dean Jackson.

Source/WebCore:

This patch adds the authenticator attachment used to the credential response in get/create
webauthn calls as described in the merged PR to the spec: ​https://github.com/w3c/webauthn/pull/1668/files

Modified layout tests to check for authenticator attachment = (cross-platform/platform) where appropriate
and verified response in manual calls.

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::authenticatorAttachment const):

  • Modules/webauthn/PublicKeyCredential.h:
  • Modules/webauthn/PublicKeyCredential.idl:

LayoutTests:

Modify webauthn layout tests to check for new authenticatorAttachment field.

  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/util.js:
8:49 AM Changeset in webkit [288621] by Wenson Hsieh
  • 14 edits
    2 adds in trunk

Data detectors sometimes show up in the wrong place when resizing images with Live Text
​https://bugs.webkit.org/show_bug.cgi?id=235598
rdar://88032375

Reviewed by Dean Jackson.

Source/WebCore:

On macOS, Live Text data detectors sometimes show up in the wrong place when images are resized; this can happen
in the case where image analysis injects data detection results into the image, but then the image is resized
from underneath the user's mouse cursor. To fix this, add some logic to invalidate ImageOverlayController's
cached data detector highlight information in the case where the image overlay layout has been changed.

Test: fast/images/text-recognition/mac/image-overlay-data-detectors.html

  • WebCore.xcodeproj/project.pbxproj:

Have libWebCoreTestSupport additionally link against libPAL, so that we can use PAL's DataDetectorsCore soft-
linking utilities.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateSubtree):

Drive-by fix in adjacent code: when installing image overlays in media elements, make sure that we install them
inside the media controls root container by calling ensureUserAgentShadowRoot() before inserting the overlay
content; this ensures that we don't end up with a redundant image overlay in the shadow root. Tests for this
will be added in #235623.

(WebCore::ImageOverlay::updateWithTextRecognitionResult):

  • page/ImageOverlayController.cpp:

(WebCore::ImageOverlayController::textRecognitionResultsChanged):
(WebCore::ImageOverlayController::hasActiveDataDetectorHighlightForTesting const):

  • page/ImageOverlayController.h:
  • page/mac/ImageOverlayControllerMac.mm:

(WebCore::ImageOverlayController::textRecognitionResultsChanged):

Add a hook to inform ImageOverlayController when image overlay content changes. If the image overlay host
matches the currently active host element showing data detector highlights, then invalidate the highlights;
these highlights will be recomputed once the user hovers over the data detector elements again.

(WebCore::ImageOverlayController::hasActiveDataDetectorHighlightForTesting const):

Add a testing-only helper method to query whether or not there is an active data detector highlight. See below
for more details.

  • testing/Internals.cpp:

Add some more WebCore testing support to make it possible to test data detector highlights in Live Text on
macOS.

(WebCore::makeDataForLine):
(WebCore::Internals::installImageOverlay):

Add an optional argument to provide a list of data detector quads to inject into the overlay host. For now, each
data detector element simply corresponds to a dummy DDScannerResult returned by the static
fakeDataDetectorResultForTesting() helper below.

(WebCore::Internals::hasActiveDataDetectorHighlight const):

Add an internal testing hook to query whether or not ImageOverlayController is tracking an active data detector
highlight.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm:

(WebCore::Internals::fakeDataDetectorResultForTesting):

Source/WebCore/PAL:

Move some soft-linked DataDetectorsCore API out of the iOS-specific define, so that we can call them on macOS.
See WebCore/ChangeLog for more details.

  • pal/cocoa/DataDetectorsCoreSoftLink.h:
  • pal/cocoa/DataDetectorsCoreSoftLink.mm:

LayoutTests:

Add a layout test to exercise (some) of the changes. This new layout test consists of 4 steps:

  1. Hover over a data detector in Live Text and confirm that a data detector highlight is activated.
  2. Resize the image (via script) such that the cursor is no longer over a data detector; confirm that the data

detector highlight is cleared.

  1. Move over the data detector highlight in the resized image, and confirm that the highlight is once again

activated.

  1. Move out of the image altogether and confirm that the highlight is deactivated.
  • fast/images/text-recognition/mac/image-overlay-data-detectors-expected.txt: Added.
  • fast/images/text-recognition/mac/image-overlay-data-detectors.html: Added.
8:42 AM Changeset in webkit [288620] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

[MacOS] Set kAudioOutputUnitProperty_CurrentDevice on CoreAudioSharedUnit outputBus
​https://bugs.webkit.org/show_bug.cgi?id=235632
<rdar://87771490>

Reviewed by Eric Carlson.

When VPIO is used for rendering audio, it is not always updating the audio route when system default speaker is updated.
While it is doing so when capturing using the built-in microphone, it is not doing so with BT microphones.

To make it reliable, we are now setting kAudioOutputUnitProperty_CurrentDevice on the output bus to the default output device.
Whenever we detect a change of default output device, we reconfigure the audio unit to select the new default output device.

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::devicesChanged):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:

(WebCore::BaseAudioSharedUnit::setOutputDeviceID):
(WebCore::BaseAudioSharedUnit::validateOutputDevice):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::validateOutputDevice):

7:54 AM Changeset in webkit [288619] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Do less work under m_changeLogLock in AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
​https://bugs.webkit.org/show_bug.cgi?id=235624

Reviewed by Chris Fleizach.

AXIsolatedTree::clear and AXIsolatedTree::setFocusedNodeID
do work while holding m_changeLogLock that does not require this lock. This
patch moves this work before the lock acquisition so we hold the lock for as short
a time as possible.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::setFocusedNodeID):
Move work that doesn't require m_changeLogLock before we acquire the lock.

6:45 AM Changeset in webkit [288618] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html is failing
​https://bugs.webkit.org/show_bug.cgi?id=235640

Unreviewed rebase.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
6:35 AM Changeset in webkit [288617] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

ASSERTION FAILED: !hasPendingSheets() under WebCore::Style::Scope::~Scope()
​https://bugs.webkit.org/show_bug.cgi?id=235612
<rdar://problem/88046988>

Reviewed by Alan Bujtas.

  • dom/Document.cpp:

(WebCore::Document::didRemoveAllPendingStylesheet):

Don't try to scroll to anchor if we don't have a view. This avoids hitting ASSERT(!m_inRemovedLastRefFunction)
trying to ref the document during teardown (with refererencing node count still non-zero).

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::removedFromDocument):

Ensure we always remove the Element from the pending sheet list when it is removed from the document.

6:13 AM Changeset in webkit [288616] by youenn@apple.com
  • 28 edits
    6 copies
    100 adds in trunk/LayoutTests

Rebase WPT streams tests up to 8d1dc42
​https://bugs.webkit.org/show_bug.cgi?id=235580

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebased WPT stream tests and expectations from WPT ToT.

  • web-platform-tests/streams: Refreshed.

LayoutTests:

  • platform/mac-wk1/TestExpectations: Skipping service worker tests.
6:11 AM Changeset in webkit [288615] by commit-queue@webkit.org
  • 13 edits
    6 copies
    9 adds
    1 delete in trunk/LayoutTests

WebGL conformance tests that are pending upstreaming should not duplicate unmodified files
​https://bugs.webkit.org/show_bug.cgi?id=235631

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-26
Reviewed by Antti Koivisto.

Duplicating the unmodified files keeps the pending tests somewhat isolated from the
upstream test updates. However, this is not feasible as the tests refer to bigger files
that are inconvenient to duplicate, such as videos. Also this makes it harder to write new tests,
since if the new pending test starts to use a file, the file would need duplication.
Also if the upstream has modified the shared files, the change done to the pending test needs
to be done anyway.

It is more consistent to use the same helper media, js and css resources for the pending tests
as the conformance test suite snapshot uses.

Remove all unmodified helper css and js files from the pending test directory and
use the unmodified files from the actual test files.

WebGL conformance tests are:
webgl/2.0.y/ -- autogenerated driver html files referencing the actual test suite test files
webgl/resources/webgl_test_files -- the actual test suite files

Move the pending tests similarly:
webgl/pending -- drivers
webgl/pending/resources/webgl_test_files -- old pending actual test files
webgl/resources/pending_webgl_test_files -- new pending actual test files

This way it is easier to refer to the resources from the actual test files.

  • webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt:
  • webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2-expected.txt:
  • webgl/pending/conformance/glsl/misc/shader-with-reserved-words-2.html:
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue-expected.txt:
  • webgl/pending/conformance/glsl/misc/swizzle-as-lvalue.html:
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt:
  • webgl/pending/conformance/textures/misc/tex-image-video-repeated.html:
  • webgl/pending/conformance2/glsl3/empty-shader-with-output-expected.txt:
  • webgl/pending/conformance2/glsl3/empty-shader-with-output.html:
  • webgl/pending/conformance2/glsl3/float-constant-expressions-expected.txt:
  • webgl/pending/conformance2/glsl3/float-constant-expressions.html:
  • webgl/pending/resources/js-test-pre.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/glsl-conformance-test.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/js-test-post.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/js-test-pre.js: Removed.
  • webgl/pending/resources/webgl_test_files/js/webgl-test-utils.js: Removed.
  • webgl/pending/resources/webgl_test_files/resources/glsl-feature-tests.css: Removed.
  • webgl/pending/resources/webgl_test_files/resources/js-test-style.css: Removed.
  • webgl/pending/resources/webkit-webgl-test-harness.js: Removed.
  • webgl/resources/pending_webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html.
  • webgl/resources/pending_webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/glsl/misc/shader-with-reserved-words-2.html.
  • webgl/resources/pending_webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/glsl/misc/swizzle-as-lvalue.html.
  • webgl/resources/pending_webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html.
  • webgl/resources/pending_webgl_test_files/conformance2/glsl3/empty-shader-with-output.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance2/glsl3/empty-shader-with-output.html.
  • webgl/resources/pending_webgl_test_files/conformance2/glsl3/float-constant-expressions.html: Renamed from LayoutTests/webgl/pending/resources/webgl_test_files/conformance2/glsl3/float-constant-expressions.html.
4:56 AM Changeset in webkit [288614] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

REGRESSION(r287684) speedtest.net uses many GB of memory
​https://bugs.webkit.org/show_bug.cgi?id=235615
rdar://87830583

Reviewed by Youenn Fablet.

The regression was introduced with r286937 and is a good example of
errors introduced when attempting to optimise things too early.
CachedRawResource::updateBuffer does a search in the accumulating
resource's SharedBuffer, search that was taking O(log(n)+1) prior r286937
where n is the number of DataView segments in the SharedBuffer.
This was simplified as a O(1) operation by using the combined contiguous
SharedBuffer instead.
However, that caused every single intermediary accumulated buffers to be
kept referenced by the XMLHttpRequest SharedBufferBuilder leading to
massive memory use.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

4:18 AM Changeset in webkit [288613] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] C++20 warnings in TestConsoleMessage
​https://bugs.webkit.org/show_bug.cgi?id=235634

Patch by Philippe Normand <​pnormand@igalia.com> on 2022-01-26
Reviewed by Adrian Perez de Castro.

Fix ambiguous-reversed-operator warnings. In C++20 comparison operators (like a == b) need
to be declared const, so that reverse comparisons (like b == a) also work as intended.

  • TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp:

(ConsoleMessageTest::ConsoleMessage::operator== const):
(ConsoleMessageTest::ConsoleMessage::operator==): Deleted.

2:24 AM Changeset in webkit [288612] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Do not run testPingPongStackOverflow while running multithreaded MultithreadedMultiVMExecutionTest
​https://bugs.webkit.org/show_bug.cgi?id=235633

Reviewed by Mark Lam.

MultithreadedMultiVMExecutionTest is failing occasionally in CLoop test. This is because of the following.

  1. CLoop is slow, so multithreaded tests are running longly.
  2. Then, this multithreaded tests overlap with testPingPongStackOverflow.
  3. testPingPongStackOverflow changes global Options::maxPerThreadStackUsage to test stack-overflow behavior. This test is strongly assuming that there is only one thread using this VM. But this is wrong since MultithreadedMultiVMExecutionTest is running concurrently. Then this configuration change affects on the running MultithreadedMultiVMExecutionTest.
  4. Stack-overflow error happens in MultithreadedMultiVMExecutionTest if the changed option is observed in that test.

We should not run testPingPongStackOverflow until MultithreadedMultiVMExecutionTest finishes since it assumes
that there is only one user of this VM.

This patch also cleans up / adds diagnosis of failures in MultithreadedMultiVMExecutionTest.

  • API/tests/MultithreadedMultiVMExecutionTest.cpp:

(startMultithreadedMultiVMExecutionTest):
(finalizeMultithreadedMultiVMExecutionTest):

  • API/tests/testapi.c:

(main):

1:47 AM Changeset in webkit [288611] by commit-queue@webkit.org
  • 3 edits
    6 deletes in trunk/LayoutTests

Streams tests try to call ReadableStream.prototype.pipeThrough.call generically
​https://bugs.webkit.org/show_bug.cgi?id=235560

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-26
Reviewed by Youenn Fablet.

ReadableStream methods are nowadays defined to accept only ReadableStream instances.
Tests sometimes assert that an exception is thrown. However, the exception being actually thrown is different.
Future testharness.js will check the exception and the test will fail.

  • TestExpectations:
  • platform/win/TestExpectations:
  • streams/brand-checks-expected.txt: Removed.
  • streams/brand-checks.html: Removed.
  • streams/readable-stream-pipeThrough-expected.txt: Removed.
  • streams/readable-stream-pipeThrough.html: Removed.
  • streams/reference-implementation/brand-checks-expected.txt: Removed.
  • streams/reference-implementation/brand-checks.html: Removed.
1:25 AM Changeset in webkit [288610] by graouts@webkit.org
  • 8 edits in trunk/Source

[Model] Mouse interaction for <model> is flipped in the y-axis
​https://bugs.webkit.org/show_bug.cgi?id=235363
<rdar://problem/87772557>

Reviewed by Dean Jackson.

Source/WebCore:

The mouse coordinates we should send up to the ARQL APIs are in the coordinates
of the <model> element with the y-axis flipped.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::flippedLocationInElementForMouseEvent):
(WebCore::HTMLModelElement::dragDidStart):
(WebCore::HTMLModelElement::dragDidChange):
(WebCore::HTMLModelElement::dragDidEnd):

  • Modules/model-element/HTMLModelElement.h:

Source/WebKit:

The mouse coordinates consumed by the ARQL APIs are in the coordinates
of the <model> element with the y-axis flipped, so let's label them
as such.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::handleMouseDownForModelElement):
(WebKit::ModelElementController::handleMouseMoveForModelElement):
(WebKit::ModelElementController::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseDownForModelElement):
(WebKit::WebPageProxy::handleMouseMoveForModelElement):
(WebKit::WebPageProxy::handleMouseUpForModelElement):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:

(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseDown):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseMove):
(WebKit::ARKitInlinePreviewModelPlayerMac::handleMouseUp):

12:10 AM Changeset in webkit [288609] by Alexander Mikhaylenko
  • 9 edits in trunk

[GTK] REGRESSION: Touch scrolling is broken
​https://bugs.webkit.org/show_bug.cgi?id=235436

Reviewed by Chris Lord.

Source/WebKit:

Remove webkitWebViewBaseSetWheelHasPreciseDeltas(), instead add a parameter
to webkitWebViewBaseSynthesizeWheelEvent() that specifies whether the event
should have precise deltas or not.

Correct the touch swipe velocity, since it won't get multiplied by
pixelsPerLineStep().

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::navigationGestureDidBegin):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
(webkitWebViewBaseSetWheelHasPreciseDeltas): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateWheelInteraction):

Tools:

Stop using webkitWebViewBaseSetWheelHasPreciseDeltas(), instead pass the correct parameter into
webkitWebViewBaseSynthesizeWheelEvent().

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::~EventSenderProxy):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::setWheelHasPreciseDeltas):

12:00 AM Changeset in webkit [288608] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
​https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:

Jan 25, 2022:

11:58 PM Changeset in webkit [288607] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

Unreviewed, reverting r288606.
​https://bugs.webkit.org/show_bug.cgi?id=235629

Should never have been committed

Reverted changeset:

"[WebGPU] Fix WGSLUnitTests build"
​https://bugs.webkit.org/show_bug.cgi?id=235628
​https://commits.webkit.org/r288606

Patch by Commit Queue <​commit-queue@webkit.org> on 2022-01-25

11:54 PM Changeset in webkit [288606] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebGPU

[WebGPU] Fix WGSLUnitTests build
​https://bugs.webkit.org/show_bug.cgi?id=235628

Unreviewed.

  • Configurations/WGSLUnitTests.xcconfig:
11:00 PM Changeset in webkit [288605] by Chris Dumez
  • 12 edits in trunk

REGRESSION (iOS 15.2): Loading gets stuck after back-navigation involving COOP header
​https://bugs.webkit.org/show_bug.cgi?id=235475
<rdar://problem/87948317>

Reviewed by Geoffrey Garen.

Source/WebCore:

Make sure ShouldTreatAsContinuingLoad is properly propagated for back/forward navigations,
not just regular loadRequests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

Source/WebKit:

WebPageProxy::continueNavigationInNewProcess() was failing to pass the identifier of the
NetworkResourceLoader that needs to be resumed to ProvisionalPageProxy::goToBackForwardItem().
It was only passing it to ProvisionalPageProxy::loadRequest(), which is used for non-back/forward
navigations. As a result, in case of COOP process-swap on back/forward navigation, the network
process would start a fresh load instead of resuming the existing one. The fresh load would get
a COOP header and thus trigger yet another process swap (and so on in a loop).

Also fix an issue where ProvisionalPageProxy::goToBackForwardItem() would always use
ShouldTreatAsContinuingLoad::YesAfterNavigationPolicyDecision even in the case of a COOP
process-swap. In the case of a COOP process-swap, we should pass in
ShouldTreatAsContinuingLoad::YesAfterProvisionalLoadStarted. This was causing us to
do an extra call to didStartProvisionalLoad() and was causing the new API test to hit
an assertion on debug builds.

Covered by new API test.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::goToBackForwardItem):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadData):
(WebKit::WebPage::goToBackForwardItem):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:22 PM Changeset in webkit [288604] by eric.carlson@apple.com
  • 56 edits
    2 copies
    8 adds in trunk

[macOS] Add new screen and window capture backend
​https://bugs.webkit.org/show_bug.cgi?id=234029
Source/WebCore:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

New API test: GetDisplayMediaWindowAndScreen.mm

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • en.lproj/Localizable.strings: Add strings for window and screen prompts.
  • platform/mediastream/MediaConstraints.h:

(WebCore::StringConstraint::getExact const): Drive-by: fix logic inversion bug.
(WebCore::StringConstraint::getIdeal const): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::fitnessDistance): Assert if device ID constraint is
not a string.

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::useScreenCaptureKit const):
(WebCore::RealtimeMediaSourceCenter::setUseScreenCaptureKit):
(WebCore::RealtimeMediaSourceCenter::useMockCaptureDevices const):
(WebCore::RealtimeMediaSourceCenter::setUseMockCaptureDevices):

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::create):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::Capturer::setObserver):
(WebCore::DisplayCaptureSourceCocoa::Capturer::capturerIsRunningChanged): Deleted.

  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

(WebCore::CapturerObserver::capturerIsRunningChanged):
(WebCore::CapturerObserver::capturerFailed):

  • platform/mediastream/ios/ReplayKitCaptureSource.mm:

(WebCore::ReplayKitCaptureSource::captureStateDidChange):

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::updateDisplayCaptureDevices): Use
ScreenCaptureKitCaptureSource when available.
(WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices): Ditto.
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): Ditto.
(WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID): Ditto.

  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.h: Added.
  • platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm: Added.

(-[WebCoreScreenCaptureKitHelper initWithCallback:]):
(-[WebCoreScreenCaptureKitHelper disconnect]):
(-[WebCoreScreenCaptureKitHelper stream:didStopWithError:]):
(WebCore::usingOldAPI):
(WebCore::ScreenCaptureKitCaptureSource::isAvailable):
(WebCore::ScreenCaptureKitCaptureSource::create):
(WebCore::ScreenCaptureKitCaptureSource::ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::~ScreenCaptureKitCaptureSource):
(WebCore::ScreenCaptureKitCaptureSource::start):
(WebCore::ScreenCaptureKitCaptureSource::stop):
(WebCore::ScreenCaptureKitCaptureSource::streamFailedWithError):
(WebCore::ScreenCaptureKitCaptureSource::generateFrame):
(WebCore::ScreenCaptureKitCaptureSource::processSharableContent):
(WebCore::ScreenCaptureKitCaptureSource::findShareableContent):
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::startContentStream):
(WebCore::ScreenCaptureKitCaptureSource::intrinsicSize const):
(WebCore::ScreenCaptureKitCaptureSource::updateStreamConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::commitConfiguration):
(WebCore::ScreenCaptureKitCaptureSource::captureQueue):
(WebCore::ScreenCaptureKitCaptureSource::frameAvailableHandler):
(WebCore::ScreenCaptureKitCaptureSource::deviceType const):
(WebCore::ScreenCaptureKitCaptureSource::surfaceType const):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::screenCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDeviceWithPersistentID):
(WebCore::ScreenCaptureKitCaptureSource::windowCaptureDevices):
(WebCore::ScreenCaptureKitCaptureSource::forEachNSWindow):

  • platform/mock/MockMediaDevice.h:

(WebCore::MockMediaDevice::captureDevice const): Make devices enabled by default.
Initialize screen and window devices with the correct type.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices): Fix window device types.
(WebCore::MockRealtimeMediaSourceCenter::displayDevices):

  • platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebCore/PAL:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • PAL.xcodeproj/project.pbxproj:
  • pal/mac/ScreenCaptureKitSoftLink.h: Added.
  • pal/mac/ScreenCaptureKitSoftLink.mm: Added.

Source/WebKit:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultScreenCaptureKitEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKPreferences.mm: Add _useScreenCaptureKit private preference.

(-[WKPreferences _useScreenCaptureKit]):
(-[WKPreferences _setUseScreenCaptureKit:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add private delegate for a

getDisplayMedia-specific prompt.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setIndexOfGetDisplayMediaDeviceSelectedForTesting:]): Set the index
of the screen or window device to return for getDisplayMedia without prompting.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::promptForDisplayCapturePermission): Call new
screen/window capture delegate.
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::promptForGetDisplayMedia): Add parameter
specifying a window or screen capture prompt.

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::manager const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIndexOfGetDisplayMediaDeviceSelectedForTesting):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/DisplayCaptureSessionManager.h: Added.

(WebKit::DisplayCaptureSessionManager::setIndexOfDeviceSelectedForTesting):

  • UIProcess/mac/DisplayCaptureSessionManager.mm: Added.

(WebKit::getMockWindowList):
(WebKit::getCGWindowList):
(WebKit::getWindowList):
(WebKit::alertForWindowSelection):
(WebKit::DisplayCaptureSessionManager::alertForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::isAvailable):
(WebKit::DisplayCaptureSessionManager::singleton):
(WebKit::DisplayCaptureSessionManager::DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::~DisplayCaptureSessionManager):
(WebKit::DisplayCaptureSessionManager::promptForGetDisplayMedia):
(WebKit::DisplayCaptureSessionManager::deviceSelectedForTesting):
(WebKit::DisplayCaptureSessionManager::showWindowPicker):
(WebKit::DisplayCaptureSessionManager::showScreenPicker):

  • UIProcess/mac/UserMediaPermissionRequestProxyMac.h: Added.
  • UIProcess/mac/UserMediaPermissionRequestProxyMac.mm: Added.

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxyMac::UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::~UserMediaPermissionRequestProxyMac):
(WebKit::UserMediaPermissionRequestProxyMac::promptForGetDisplayMedia):
(WebKit::UserMediaPermissionRequestProxyMac::canPromptForGetDisplayMedia):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

rdar://problem/86347726

Reviewed by Jer Noble and Youenn Fablet.

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Add UseScreenCaptureKit.
  • wtf/PlatformEnableCocoa.h: Define ENABLE_SCREEN_CAPTURE_KIT.
  • wtf/PlatformHave.h: Define HAVE_SCREEN_CAPTURE_KIT.
  • wtf/cocoa/SoftLinking.h: Add softlink macros that take an API_AVAILABLE check.

Tools:

Reviewed by Jer Noble and Youenn Fablet.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMediaWindowAndScreen.mm: Added.

(-[WindowAndScreenCaptureTestView haveStream:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:

(-[UserMediaCaptureUIDelegate init]):
(-[UserMediaCaptureUIDelegate setGetDisplayMediaDecision:]):
(-[UserMediaCaptureUIDelegate _webView:requestDisplayCapturePermissionForOrigin:initiatedByFrame:decisionHandler:]):

8:15 PM Changeset in webkit [288603] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Build fix for Mac Catalyst
​https://bugs.webkit.org/show_bug.cgi?id=235625

Unreviewed.

The WGSL headers and .a file for Mac Catalyst need to not collide with the same files for regular Mac builds.

  • Configurations/Base.xcconfig:
  • Configurations/WGSL.xcconfig:
8:12 PM Changeset in webkit [288602] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Shadows are flattened to bitmaps in CGDisplayListImageBufferBackend
​https://bugs.webkit.org/show_bug.cgi?id=235617

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContextCG::fillRect):
(WebCore::GraphicsContextCG::fillRoundedRectImpl):
(WebCore::GraphicsContextCG::fillRectWithRoundedHole):
(WebCore::GraphicsContextCG::canUseShadowBlur const):

  • platform/graphics/cg/GraphicsContextCG.h:

Factor out canUseShadowBlur so that GraphicsContextCG subclasses can
request that we not use WebCore's custom shadow implementation.

Source/WebKit:

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

Disable ShadowBlur for CGDisplayListImageBufferBackend, allowing it to
be recorded as a "shadow" display list item instead of a series of bitmaps.

7:14 PM Changeset in webkit [288601] by Fujii Hironori
  • 23 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wincairo/fast/css/word-space-extra-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/wincairo/fast/text/atsui-spacing-features-expected.txt:
  • platform/wincairo/fast/text/basic/015-expected.txt:
  • platform/wincairo/fast/text/international/003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/wincairo/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wincairo/fast/text/international/hebrew-vowels-expected.txt:
  • platform/wincairo/fast/text/international/hindi-whitespace-expected.txt:
  • platform/wincairo/fast/text/international/thai-baht-space-expected.txt:
  • platform/wincairo/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/wincairo/fast/text/midword-break-before-surrogate-pair-2-expected.txt:
  • platform/wincairo/fast/text/stroking-decorations-expected.txt:
  • platform/wincairo/fast/text/stroking-expected.txt:
  • platform/wincairo/fast/text/wbr-expected.txt:
  • platform/wincairo/fast/text/wide-zero-width-space-expected.txt:
6:13 PM Changeset in webkit [288600] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

Fix non-unified build by adding missing headers to JSKeyframeEffectCustom.cpp

Unreviewed non-unified build fix.

No new tests needed.

  • bindings/js/JSKeyframeEffectCustom.cpp: Add missing headers Document.h,

JSDOMConvertObject.h, JSDOMConvertSequences.h, and JSDOMConvertStrings.h.

6:08 PM Changeset in webkit [288599] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: build fix for CLoop.

Not reviewed.

Code for the USE(LIBPAS_JIT_HEAP) ExecutableMemoryHandle is only built in when
ENABLE(JIT). Update the header to reflect this so that CLoop builds don't try to
link against it.

  • jit/ExecutableMemoryHandle.h:
5:37 PM Changeset in webkit [288598] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.2

Tag Safari-613.1.14.5.2.

5:36 PM Changeset in webkit [288597] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288593. rdar://problem/87906922

Install build failure when using SYSTEM_CONTENT_PATH
​https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288593 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:35 PM Changeset in webkit [288596] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.2

5:26 PM Changeset in webkit [288595] by Robert Jenner
  • 2 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://86037417

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Temporarily disabling test.
5:23 PM Changeset in webkit [288594] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebIDL] Remove the now-unused [CustomEnabled] extended attribute
​https://bugs.webkit.org/show_bug.cgi?id=235608

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

It's unlikely we will ever need it, and it's limited to Window only,
and it generates a call to a free function rather than a method.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

5:11 PM Changeset in webkit [288593] by msaboff@apple.com
  • 6 edits in trunk/Source

Install build failure when using SYSTEM_CONTENT_PATH
​https://bugs.webkit.org/show_bug.cgi?id=235609

Reviewed by Filip Pizlo.

Source/ThirdParty/libwebrtc:

Change the Create Symlinks to Alternate Root script to create the links for the headers
for both the install headers and install phases.

  • Scripts/create-symlink-to-altroot.sh:

Source/WebKit:

Eliminated the Output Files of the Create Symlink to Alt Root Path script for the targets
adattributiond, GPU, Networking, WebAuthn, webpushd, and the various WebContent targets,
since the symlink to WebKit.framework will be created by the "WebKit" target.
Also fixed the INSTALL_PATH for adattributiond and webpushd to follow the difference between
macOS and iOS.

  • Configurations/adattributiond.xcconfig:
  • Configurations/webpushd.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
5:10 PM Changeset in webkit [288592] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

[WebIDL] Blob-related methods should use _relevant_ context instead of _current_
​https://bugs.webkit.org/show_bug.cgi?id=235279

Patch by Alexey Shvayka <​ashvayka@apple.com> on 2022-01-25
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from TBA.

  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html: Added.
  • web-platform-tests/FileAPI/support/empty-document.html: Added.

Source/WebCore:

This patch fixes the following methods to rely on _relevant_ global object instead of _current_:

  1. Blob's slice() / stream() / arrayBuffer() / text() as explicitly required by the File API spec [1]. Before this change, methods from detached <iframe> were throwing when called on a main frame's Blob. Aligns WebKit with Blink and Gecko.
  1. HTMLCanvasElement's toBlob() as per HTML spec [2]: a task should be queued on _relevant_ document's event loop.
  1. HTMLCanvasElement's transferControlToOffscreen() / captureStream() per recommendatation for spec authors [4], and to align with toBlob(). transferControlToOffscreen() should certainly pass _relevant_ context, which would be used later for Blob creation.

[1] ​https://w3c.github.io/FileAPI/#blob-get-stream
[2] ​https://html.spec.whatwg.org/#canvas-blob-serialisation-task-source
[3] ​https://html.spec.whatwg.org/multipage/webappapis.html#realms-settings-objects-global-objects:concept-relevant-everything-2

Test: imported/w3c/web-platform-tests/FileAPI/blob/Blob-methods-from-detached-frame.html

Not sure if changes to HTMLCanvasElement methods are even testable.

  • fileapi/Blob.cpp:

(WebCore::Blob::slice const):
(WebCore::Blob::loadBlob):
(WebCore::Blob::text):
(WebCore::Blob::arrayBuffer):
(WebCore::Blob::stream):

  • fileapi/Blob.h:
  • fileapi/Blob.idl:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob):
(WebCore::HTMLCanvasElement::transferControlToOffscreen):
(WebCore::HTMLCanvasElement::captureStream):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:

Mark transferControlToOffscreen() as [NewObject].

5:01 PM Changeset in webkit [288591] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Allow mach extension to service
​https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
4:55 PM Changeset in webkit [288590] by Aditya Keerthi
  • 16 edits in trunk

Disable input-security CSS property
​https://bugs.webkit.org/show_bug.cgi?id=235557
rdar://87984277

Reviewed by Dean Jackson.

Source/WebCore:

CSSWG is planning to remove input-security from CSS UI 4
(​https://github.com/w3c/csswg-drafts/issues/6788).

Keep the property around as an experimental feature, so that
it can be used in the UA stylesheet, and easily turned on if the
resolution is not finalized.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):

Enable input-security when parsing the UA stylesheet, as it is used to
obscure text in password inputs.

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSInputSecurityEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::cssInputSecurityEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Make input-security a disabled-by-default experimental feature.

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

Add default for WebKitLegacy on Windows.

LayoutTests:

  • fast/css/computed-text-security-for-input-security.html:
4:31 PM Changeset in webkit [288589] by Alexey Shvayka
  • 3 edits
    2 adds in trunk

XPath::Step::nodesInAxis(): add null checks after Attr::ownerElement() calls
​https://bugs.webkit.org/show_bug.cgi?id=235500

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests from ​https://github.com/web-platform-tests/wpt/pull/32544.

  • web-platform-tests/domxpath/xpath-evaluate-crash-expected.txt: Added.
  • web-platform-tests/domxpath/xpath-evaluate-crash.html: Added.

Source/WebCore:

This patch adds null checks for results of Attr::ownerElement() to avoid crashes
when evaluating XPath expressions with an orphaned Attr as the context node.

Inspired by the recent Blink fix [1], yet this change covers all null pointer
dereferencing sites, as proven by the updated test.

[1] ​https://bugs.chromium.org/p/chromium/issues/detail?id=1236967

Test: imported/w3c/web-platform-tests/domxpath/xpath-evaluate-crash.html

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis const):

4:14 PM Changeset in webkit [288588] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix some spelling errors in Color functions
​https://bugs.webkit.org/show_bug.cgi?id=235618

Reviewed by Wenson Hsieh.

Fix the spelling of outOfLineComponentsEqual and outOfLineComponentsEqualIgnoringSemanticColor.

  • platform/graphics/Color.h:

(WebCore::operator==):
(WebCore::outOfLineComponentsEqual):
(WebCore::outOfLineComponentsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::outOfLineComponentssEqual): Deleted.
(WebCore::outOfLineComponentssEqualIgnoringSemanticColor): Deleted.

3:59 PM Changeset in webkit [288587] by Simon Fraser
  • 4 edits in trunk

Fix the lldb Color formatter
​https://bugs.webkit.org/show_bug.cgi?id=235613

Reviewed by Darin Adler.
Source/WebCore:

  • platform/graphics/ColorSpace.h:

Tools:

Copy the list of color spaces from ColorSpace.h

  • lldb/lldb_webkit.py:

(WebCoreColorProvider._to_string_out_of_line):

3:46 PM Changeset in webkit [288586] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Observe CFNetwork preference domain
​https://bugs.webkit.org/show_bug.cgi?id=235603
<rdar://87994712>

Reviewed by Darin Adler.

Since the Networking process is now using CF prefs direct mode, the CFNetwork preference domain should be observed for changes.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

2:10 PM Changeset in webkit [288585] by mmaxfield@apple.com
  • 8 edits
    7 adds in trunk

Add another test for locale-specific shaping
​https://bugs.webkit.org/show_bug.cgi?id=235558

Reviewed by Darin Adler.

Thanks so much to Just van Rossum for contributing the test font!!!

.:

  • metadata/contributors.json:

LayoutTests:

This test makes sure the LOCL lookup works correctly, even without font-feature-settings.

  • fast/text/locale-shaping-2-expected.html: Added.
  • fast/text/locale-shaping-2.html: Added.
  • fast/text/locale-shaping-3-expected.html: Added.
  • fast/text/locale-shaping-3.html: Added.
  • fast/text/resources/langlocatest_cjk/LICENSE: Added.
  • fast/text/resources/langlocatest_cjk/langlocatest_cjk.ttf: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
2:09 PM Changeset in webkit [288584] by Alexey Shvayka
  • 3 edits in trunk/Source/WebCore

Remove unused Document::ListenerType enumerators
​https://bugs.webkit.org/show_bug.cgi?id=235049

Reviewed by Sam Weinig.

Except for RESIZE_LISTENER, which just seems to be left behind, legacyType() of EventTarget.cpp
handles all other event types, deleted in this patch, according to the spec [1].

[1] ​https://dom.spec.whatwg.org/#concept-event-listener-invoke (step 9)

No new tests, no behavior change.

  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
1:55 PM Changeset in webkit [288583] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] fast/scrolling/mac/j-shaped-scroll-rubberband.html is consistently failing
​https://bugs.webkit.org/show_bug.cgi?id=235605

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as failing on arm64.
1:54 PM Changeset in webkit [288582] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

Mavericks: media/track/track-in-band-legacy-api.html fails intermittently
​https://bugs.webkit.org/show_bug.cgi?id=123522

Reviewed by Simon Fraser.

Remove expectations since it's not longer happening.

  • gpu-process/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [288581] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
​https://bugs.webkit.org/show_bug.cgi?id=235084

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as failing on arm64.
1:36 PM Changeset in webkit [288580] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Collapse blackboxed call frames by default
​https://bugs.webkit.org/show_bug.cgi?id=234581
<rdar://problem/86967088>

Reviewed by Devin Rousso.

Remove "Collapse blackboxed call frames" checkbox from the experimental settings
and enable the feature by default.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.shouldAutoExpandBlackboxedCallFrameGroup):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

1:25 PM Changeset in webkit [288579] by jonlee@apple.com
  • 4 edits in trunk/LayoutTests

[ Catalina wk1 ews ] media/remote-control-command-seek.html is a flaky timeout
​https://bugs.webkit.org/show_bug.cgi?id=215325

Reviewed by Simon Fraser.

No longer flaking on Catalina or on iOS bots. Remove expectations.

  • gpu-process/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:24 PM Changeset in webkit [288578] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287990. rdar://problem/86781432

[iOS][Networking] Add access to required network service
​https://bugs.webkit.org/show_bug.cgi?id=235188
<rdar://86781432>

Reviewed by Brent Fulgham.

Add access to required network service in the Networking process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287990 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:09 PM Changeset in webkit [288577] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WTF

[WTF] Make CRASH_WITH_INFO more useful when using GCC
​https://bugs.webkit.org/show_bug.cgi?id=235573

Make CRASH_WITH_INFO() print out the additional information instead of silently crash
when WebKit is compiled with GCC.

Reviewed by Yusuke Suzuki.

  • wtf/Assertions.h: Add a variant of CRASH_WITH_INFO() which uses VA_OPT for

GCC and Clang; MSVC is left with the existing version as the version currently in
use is not happy about VA_OPT.
(CRASH_WITH_INFO): Deleted inline function for GCC.
(CRASH_WITH_SECURITY_IMPLICATION_AND_INFO): Ditto.

12:36 PM Changeset in webkit [288576] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Parsing support for container shorthand property
​https://bugs.webkit.org/show_bug.cgi?id=235582

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:

Source/WebCore:

​https://drafts.csswg.org/css-contain-3/#container-shorthand

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeContainerShorthand):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:
12:32 PM Changeset in webkit [288575] by Wenson Hsieh
  • 5 edits in trunk

UIWKDocumentRequestSpatialAndCurrentSelection should limit context to the editable root of the current selection
​https://bugs.webkit.org/show_bug.cgi?id=235595
rdar://87835602

Reviewed by Aditya Keerthi.

Source/WebKit:

Adjust the behavior of document editing context requests in the case where the SpatialAndCurrentSelection flag
is specified, but no explicit textInputContext has been given. Instead of using the hit-tested corners of the
spatial request as-is, clamp to the visible start and end positions of the current editable root (only if it
exists).

This adjustment makes this particular request configuration useful for text input clients that just want to
request text input context information for the current editable element in a given rect, but don't already have
a text input element identifier.

Test: DocumentEditingContext.SpatialAndCurrentSelectionRequest_LimitContextToEditableRoot

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: also clean up a couple of old staging declarations.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

12:21 PM Changeset in webkit [288574] by Robert Jenner
  • 2 edits
    3 adds in trunk/LayoutTests

[CSS Container Queries] Basic parsing support for container-type property
​https://bugs.webkit.org/show_bug.cgi?id=235514

Uneviewed, rebaseline for iOS.

  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
11:54 AM Changeset in webkit [288573] by ysuzuki@apple.com
  • 13 edits in trunk

[JSC] Wasm module import should be done in sync when WebAssembly.instantiate gets module
​https://bugs.webkit.org/show_bug.cgi?id=235506

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
  • web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:

Source/JavaScriptCore:

According to the spec, module imports need to be done synchronously when WebAssembly.instantiate
is called with a wasm module[1].

To align our implementation to this behavior, we split WebAssemblyModuleRecord::initializeImportsAndExports
into WebAssemblyModuleRecord::initializeImports and WebAssemblyModuleRecord::initializeExports. The former
does not require CalleeGroups so we can execute before compiling CalleeGroups.

[1]: ​https://webassembly.github.io/spec/js-api/#asynchronously-instantiate-a-webassembly-module

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::evaluate):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::setOwner):
(JSC::Wasm::Instance::finalizeCreation): Deleted.

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::hasMemoryImport const):

  • wasm/js/JSWebAssembly.cpp:

(JSC::instantiate):
(JSC::resolve): Deleted.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::initializeImports):
(JSC::JSWebAssemblyInstance::finalizeCreation):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports): Deleted.

  • wasm/js/WebAssemblyModuleRecord.h:
11:52 AM Changeset in webkit [288572] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Use cwd as default path
​https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>

Reviewed by Aakash Jain.

Re-landing, infrastructure now handles git-webkit calls appropriately.

  • Scripts/git-webkit: Use default path behavior.
11:41 AM Changeset in webkit [288571] by graouts@webkit.org
  • 6 edits in trunk

Deduplication for @keyframes rules should account for animation-composition
​https://bugs.webkit.org/show_bug.cgi?id=235596

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Import test recently added in WPT via ​https://github.com/web-platform-tests/wpt/pull/32495.
We pass them all with the source change.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:

Source/WebCore:

The CSS Animations Level 2 spec recently changed to account for animation-composition
when deduplicating @keyframes rules (see ​https://github.com/w3c/csswg-drafts/pull/6974).

  • animation/CompositeOperation.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::keyframeRulesForName const):

11:38 AM Changeset in webkit [288570] by Russell Epstein
  • 6 edits in branches/safari-613-branch

Cherry-pick r288267. rdar://problem/87785288

<dialog> with transformed ancestor asserts under RenderGeometryMap
​https://bugs.webkit.org/show_bug.cgi?id=235194

Reviewed by Antti Koivisto.

Source/WebCore:

With this change we reparent the RenderLayers of top layer elements under the RenderView's
layer. This makes the RenderLayer hierarchy a closer match to the containing block
hierarchy, and means that all the existing RenderLayer tree walks that use
parent()/firstChild()/nextSibling() traverse the the "top layer" layers as children of the
RenderView. This in turn means that the various bits of RenderLayer state that track the
state of descendants (e.g. m_hasVisibleDescendant, m_hasSelfPaintingLayerDescendant,
m_hasNotIsolatedBlendingDescendants) reflect descendency in the top-layer-aware hierarchy.

Note that m_hasVisibleDescendant is about the inherited visibility property which follows
DOM order, but since we consult it during painting-related tree walks, we want this state to
reflect the top-layer-aware tree.

The patch adds top-layer-aware helpers on RenderElement to find the parent and next sibling,
and uses those when parenting layers.

In addition, when the top layer status changes for a RenderLayer, we unparent and
re-parent its layer (which in turn should toggle the relevant dirty bits).

  • rendering/RenderElement.cpp: (WebCore::findNextLayer): (WebCore::layerNextSiblingRespectingTopLayer): (WebCore::addLayers): (WebCore::RenderElement::layerParentRespectingTopLayer const): (WebCore::RenderElement::layerNextSiblingRespectingTopLayer const): (WebCore::RenderElement::insertedIntoTree): (WebCore::RenderElement::willBeRemovedFromTree): (WebCore::RenderElement::findNextLayer const): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer): (WebCore::RenderLayer::stackingContext const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::setHasVisibleContent): (WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus): (WebCore::RenderLayer::setAncestorChainHasVisibleDescendant): (WebCore::RenderLayer::enclosingAncestorForPosition const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::paintLayerWithEffects): Ditto (WebCore::RenderLayer::establishesTopLayerWillChange): (WebCore::RenderLayer::establishesTopLayerDidChange): (WebCore::RenderLayer::clipCrossesPaintingBoundary const): No need for the explicit establishesTopLayer() check. (WebCore::RenderLayer::calculateClipRects const): Ditto

LayoutTests:

  • TestExpectations: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html no longer asserts.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288267 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:38 AM Changeset in webkit [288569] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288127. rdar://problem/87785288

Clean up some code around RenderElement::addLayers()
​https://bugs.webkit.org/show_bug.cgi?id=235272

Reviewed by Darin Adler.

The code that looks for the next layer via render tree traversal is tricky and
hard to understand. Do some initial cleanup prior to fixing it for top layer.

First, use std::optional<> in the static addLayers() to make the beforeChild
finding easier to understand (no longer need a null newObject as the signal that
you've tried to look).

Second, use references in findNextLayer() and rename 'startPoint' to make its
purpose more clear.

  • rendering/RenderElement.cpp: (WebCore::addLayers): (WebCore::RenderElement::addLayers): (WebCore::RenderElement::findNextLayer const): (WebCore::RenderElement::findNextLayer): Deleted.
  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::insertOnlyThisLayer):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288127 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:38 AM Changeset in webkit [288568] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288059. rdar://problem/87785288

Make a function that returns the ordered list of top layer RenderLayers
​https://bugs.webkit.org/show_bug.cgi?id=235251

Reviewed by Alan Bujtas.

Factor the code in RenderLayer::rebuildZOrderLists() that generates the list of
top-layer RenderLayers into its own function.

Add Document::hasTopLayerElement() to avoid calling it when there are no top layer
elements.

  • dom/Document.h: (WebCore::Document::hasTopLayerElement const):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::rebuildZOrderLists):
  • rendering/RenderLayer.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288059 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:38 AM Changeset in webkit [288567] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Cherry-pick r287845. rdar://problem/87785288

REGRESSION(r287683): <dialog> elements inside clipped/overflowed elements are no longer shown
​https://bugs.webkit.org/show_bug.cgi?id=234984

Reviewed by Simon Fraser.

Source/WebCore:

Paint at the right place by fixing isContainerForPositioned, also fix clip rects.

  • rendering/RenderLayer.cpp: (WebCore::isContainerForPositioned): (WebCore::RenderLayer::enclosingAncestorForPosition const): (WebCore::accumulateOffsetTowardsAncestor): (WebCore::RenderLayer::calculateClipRects const):

LayoutTests:

Enable relevant tests. Set the asserting test as Crash instead of Skipping.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@287845 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:13 AM Changeset in webkit [288566] by Russell Epstein
  • 33 edits
    1 copy
    6 adds
    2 deletes in branches/safari-613-branch

Cherry-pick r288315. rdar://problem/87601762

Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams
​https://bugs.webkit.org/show_bug.cgi?id=235233
<rdar://problem/87601762>

Patch by Kimmo Kinnunen <​kkinnunen@apple.com> on 2022-01-20
Reviewed by Youenn Fablet.

Source/WebCore:

Make full texture uploads from MediaStream camera captures use CVPixelBuffers
instead of reading the pixels back.
Implement MediaPlayerInterface::pixelBufferForCurrentTime() for
MediaPlayerPrivateMediaSourceAVFObjC.
Rename functions from pixelBuffer... to videoSample...
Use new type MediaSampleVideoFrame instead of CVPixelBuffer.
MediaSampleVideoFrame contains also the frame orientation. The
orientation is needed as the camera might capture the image
with a rotation or a flip.

To avoid ifdefs, the new API videoSampleForCurrentTime exists
for all platforms, but is currently called only by Cocoa.
Also the type MediaSampleVideoFrame exists for all platforms
but has the frame contents implementation only for Cocoa.

Tested by
fast/mediastream/getUserMedia-to-canvas-1.html
fast/mediastream/getUserMedia-to-canvas-2.html

Currently the "mirrored" part is tested manually, WebKit
does not request mirrored camera image so it is dead code.

  • Headers.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::videoSampleForCurrentTime): (WebCore::MediaPlayer::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture): (WebCore::MediaPlayerPrivateInterface::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/MediaSampleVideoFrame.h: Added. (WebCore::MediaSampleVideoFrame::orientation const): (WebCore::MediaSampleVideoFrame::pixelBuffer const): (WebCore::MediaSampleVideoFrame::operator== const): (WebCore::MediaSampleVideoFrame::encode const): (WebCore::MediaSampleVideoFrame::decode):
  • platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Added. (WebCore::MediaSampleVideoFrame::MediaSampleVideoFrame):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoSampleForCurrentTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime): Deleted.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::videoOrientation): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleForCurrentTime):
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):
  • platform/graphics/cv/GraphicsContextGLCV.h:
  • platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: (WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa): (WebCore::GraphicsContextGLCVCocoa::copyVideoFrameToTexture): (WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture): Deleted.
  • platform/graphics/cv/GraphicsContextGLCVCocoa.h:

Source/WebKit:

Rename functions from pixelBuffer... to videoFrame.
Send new type MediaPlayerVideoFrame instead of CVPixelBuffer.
MediaPlayerVideoFrame contains also the frame orientation.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::invalidate): (WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime): (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm: (WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.

LayoutTests:

  • fast/mediastream/getUserMedia-to-canvas.html:
  • webrtc/routines.js: Test camera image rotations in the test.

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288315 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:08 AM Changeset in webkit [288565] by Devin Rousso
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: replace gear-with-contextmenu icons used for filtering with filter-with-contextmenu icons
​https://bugs.webkit.org/show_bug.cgi?id=235546

Reviewed by Dean Jackson.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.initialLayout):

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter:active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active): Added.
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-properties > .header > .options.filter.active:active): Added.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:active): Added.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Images/Filter.svg: Added.
10:50 AM Changeset in webkit [288564] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r281419): iCloud.com Notes web app fonts render incorrectly
​https://bugs.webkit.org/show_bug.cgi?id=235559
<rdar://problem/87268956>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character-expected.txt: Added.
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html: Added.

Source/WebCore:

Chrome and Firefox render U+0000 NULL as invisible. We should do the same, despite it technically being classified as a control character.

​https://github.com/w3c/csswg-drafts/pull/6983

Test: imported/w3c/web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/null-character.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

10:30 AM Changeset in webkit [288563] by aakash_jain@apple.com
  • 4 edits in trunk/Tools/CISupport

[buildbot] Detailed bot information should be displayed inside PrintConfiguration step instead of workers page
​https://bugs.webkit.org/show_bug.cgi?id=235583

Reviewed by Jonathan Bedard and Ryan Haddad.

  • Tools/CISupport/build-webkit-org/steps.py:

(PrintConfiguration): run 'system_profiler SPSoftwareDataType SPHardwareDataType' command in PrintConfiguration.

  • Tools/CISupport/ews-build/steps.py: Ditto.
  • Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.
  • Tools/CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.

Canonical link: ​https://commits.webkit.org/246391@main

9:48 AM Changeset in webkit [288562] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r286669. rdar://problem/81618758

[iOS] Always set audio session preferred input after changing the category
​https://bugs.webkit.org/show_bug.cgi?id=232626
rdar://81618758

Reviewed by Youenn Fablet.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule a session update so the category and/or preferred input is setup.
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred capture device if that has changed.
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID): Remember the device UID if the configuration is successful. (WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice): Reset the preferred device if necessary. (WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal): Refactored from setPreferredAudioSessionDeviceUID.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::captureDeviceChanged):

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@286669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:48 AM Changeset in webkit [288561] by Russell Epstein
  • 7 edits
    5 deletes in branches/safari-613-branch

Revert r282746. rdar://problem/87732806

9:36 AM Changeset in webkit [288560] by graouts@webkit.org
  • 6 edits
    1 add in trunk/Source/WebCore

Refactor KeyframeEffect::getKeyframes()
​https://bugs.webkit.org/show_bug.cgi?id=235504

Reviewed by Chris Dumez.

We move all the JS conversion code to a new custom implementation for JSKeyframeEffect::getKeyframes()
such that KeyframeEffect::getKeyframes() is simply in the business of compiling the list of computed
keyframes.

To do this, we start by changing the way the various KeyframeEffect structs are organized. We make
BaseComputedKeyframe extend BaseKeyframe, then ComputedKeyframe extend BaseComputedKeyframe by adding
a map of CSSPropertyID to String values, then ParsedKeyframe can simply extend ComputedKeyframe.
This makes it easy to copy ParsedKeyframe into a ComputedKeyframe for the properties relevant
to the output of getKeyframes().

We also take the opportunity to merge what used to be two methods, getBindingsKeyframes() and getKeyframes(),
into a single method since getKeyframes() is only ever called through the JS bindings.

Finally, we remove the big if/else statement in KeyframeEffect::getKeyframes() to have a small if block
for the case where the keyframes are already set via the setKeyframes() API and return early.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::CSSPropertyIDToIDLAttributeName):
(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::animatedProperties):
(WebCore::KeyframeEffect::animatesProperty const):
(WebCore::CSSPropertyIDToIDLAttributeName): Deleted.
(WebCore::KeyframeEffect::getBindingsKeyframes): Deleted.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • bindings/js/JSKeyframeEffectCustom.cpp: Added.

(WebCore::JSKeyframeEffect::getKeyframes):

9:34 AM Changeset in webkit [288559] by Pablo Saavedra
  • 5 edits in trunk/Source/WebCore

[WPE][GTK] Build error in ARMv7 Neon targets after r286152
​https://bugs.webkit.org/show_bug.cgi?id=235410

Reviewed by Simon Fraser.

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware): Deleted.

  • platform/graphics/filters/software/FEBlendSoftwareApplier.cpp:

(WebCore::FEBlendSoftwareApplier::apply const):

  • platform/graphics/filters/software/FECompositeSoftwareApplier.cpp:

(WebCore::FECompositeSoftwareApplier::applyArithmetic const):

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
9:18 AM Changeset in webkit [288558] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger (Follow-up fix)
​https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Unreviewed follow-up fix.

  • Tools/CISupport/ews-build/steps.py:

(Trigger.propertiesToPassToTriggers): Pass ews_revision for patch workflows.

9:09 AM Changeset in webkit [288557] by Russell Epstein
  • 4 edits in branches/safari-614.1.1-branch/Source/WebCore

Cherry-pick r288546. rdar://problem/87944391

Add a WebShare policy quirk for Twitter
​https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp: (WebCore::validateWebSharePolicy): (WebCore::Navigator::canShare): (WebCore::Navigator::share):
  • page/Quirks.cpp: (WebCore::isTwitterDocument): (WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const): (WebCore::Quirks::shouldDisableWebSharePolicy const):
  • page/Quirks.h:

git-svn-id: ​https://svn.webkit.org/repository/webkit/trunk@288546 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:06 AM Changeset in webkit [288556] by Antti Koivisto
  • 14 edits in trunk

[CSS Container Queries] Parsing support for container-name property
​https://bugs.webkit.org/show_bug.cgi?id=235564

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Parse 'container-name' and map it to style.

​https://drafts.csswg.org/css-contain-3/#container-name

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::containerNames const):
(WebCore::RenderStyle::setContainerNames):
(WebCore::RenderStyle::initialContainerNames):

'container-name' is actually a list of names, that's why the plural.

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertContainerName):

9:04 AM Changeset in webkit [288555] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.2

9:00 AM Changeset in webkit [288554] by Russell Epstein
  • 1 copy in branches/safari-614.1.1-branch

New branch.

8:47 AM Changeset in webkit [288553] by Sam Sneddon
  • 4 edits in trunk/Source/WebCore

Missing EnabledBySetting=WebXREnabled where Conditional=WEBXR exists
​https://bugs.webkit.org/show_bug.cgi?id=235527

Reviewed by Darin Adler.

Manually tested.

  • Modules/webxr/XRFrameRequestCallback.idl:
  • html/canvas/WebGLContextAttributes.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
8:46 AM Changeset in webkit [288552] by Jonathan Bedard
  • 2 edits in trunk/Tools

[EWS] Support pull requests in Trigger
​https://bugs.webkit.org/show_bug.cgi?id=235545
<rdar://problem/87992990>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(Trigger.init): Pass flags for patch and pull requests.
(Trigger.propertiesToPassToTriggers): Pass different properties if Triggered by a
pull request verse a patch.
(CompileWebKit.evaluateCommand): Pass flags for patch and pull request to Trigger.
(AnalyzeLayoutTestsResults.retry_build): Ditto.

Canonical link: ​https://commits.webkit.org/246384@main

8:33 AM Changeset in webkit [288551] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebKit

Regression (r235236): NetworkStorageManager sends messages to wrong StorageAreaMap
​https://bugs.webkit.org/show_bug.cgi?id=235553

Reviewed by Darin Adler.

Started from r235236, NetworkStorageManager uses StorageAreaMapIdentifier instead of StorageAreaIdentifier as
the message destination (as web process stores StorageAreaMap by StorageAreaMapIdentifier). However, the
destination is not changed accordingly when sending didSetItem, didRemoveItem and didClear messages, so the
messages are dispatched to wrong StorageAreaMaps.

Since these messages are reply for some message sent from StorageAreaMap to NetworkStorageManager (e.g.
didSetItem is reply of setItem), we may just use sendMessageWithAsyncReply when sending original message, and
we don't need to worry about the destination.

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • NetworkProcess/WebStorage/StorageManagerSet.messages.in:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::setItem):
(WebKit::NetworkStorageManager::removeItem):
(WebKit::NetworkStorageManager::clear):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • NetworkProcess/storage/NetworkStorageManager.messages.in:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):

  • WebProcess/WebStorage/StorageAreaMap.h:
  • WebProcess/WebStorage/StorageAreaMap.messages.in:
8:20 AM Changeset in webkit [288550] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Non-unified buildfix after r288546/246378@main
​https://bugs.webkit.org/show_bug.cgi?id=235590

Unreviewed build fix.

  • page/Navigator.cpp: Add missing include.
7:59 AM Changeset in webkit [288549] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r282374.
​https://bugs.webkit.org/show_bug.cgi?id=235587

Introduced perf regression

Reverted changeset:

"Playback stops although the progress bar moves"
​https://bugs.webkit.org/show_bug.cgi?id=230210
​https://commits.webkit.org/r282374

7:52 AM Changeset in webkit [288548] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

ews is displaying PR by even on patch based builds
​https://bugs.webkit.org/show_bug.cgi?id=235578

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/steps.py:

(ConfigureBuild.add_pr_details):

Canonical link: ​https://commits.webkit.org/246380@main

6:39 AM Changeset in webkit [288547] by Alan Bujtas
  • 3 edits
    2 adds in trunk

(REGRESSION r287485) [LFC][IFC] Incorrect RTL content position when intrusive float is present
​https://bugs.webkit.org/show_bug.cgi?id=235547
<rdar://87824766>

Reviewed by Antti Koivisto.

Source/WebCore:

The float box coordinates are always visual. They need to be converted to
logical to be able to properly constrain the available space on the current line.

Test: fast/inline/intrusive-float-with-rtl-content.html

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::floatConstraints const):

LayoutTests:

  • fast/inline/intrusive-float-with-rtl-content-expected.html: Added.
  • fast/inline/intrusive-float-with-rtl-content.html: Added.
6:09 AM Changeset in webkit [288546] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a WebShare policy quirk for Twitter
​https://bugs.webkit.org/show_bug.cgi?id=235502
<rdar://87944391>

Reviewed by Chris Dumez.

Disable WebShare policy in case of twitter documents as this is not yet web compatible.

Manually tested.

  • page/Navigator.cpp:

(WebCore::validateWebSharePolicy):
(WebCore::Navigator::canShare):
(WebCore::Navigator::share):

  • page/Quirks.cpp:

(WebCore::isTwitterDocument):
(WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const):
(WebCore::Quirks::shouldDisableWebSharePolicy const):

  • page/Quirks.h:
4:00 AM Changeset in webkit [288545] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/send_email.py

[ews] Remove redundant check for test mode in send_email.py
​https://bugs.webkit.org/show_bug.cgi?id=235552

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/send_email.py:

Canonical link: ​https://commits.webkit.org/246377@main

1:57 AM Changeset in webkit [288544] by Ziran Sun
  • 9 edits in trunk

[css-grid] Fix grid shorthand expansion of initial values
​https://bugs.webkit.org/show_bug.cgi?id=234430

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:

Source/WebCore:

This CL is to add the InitialValue support when parsing the grid shorthand for 6 grid properties
including grid-auto-columns, grid-auto-flow, grid-auto-rows, grid-template-areas,
grid-template-columns and grid-template-rows. The original code only adds a CSSInitial.

This is an import of chromium change at
​https://chromium-review.googlesource.com/c/chromium/src/+/3299364

Apart from fixing wpt test imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand.html,
The CL also updates the expectation file for test
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand-valid.html. This test fails before
this CL and need to be investigated as a seperated issue. Related bugs have been raised at -
​https://bugs.chromium.org/p/chromium/issues/detail?id=1028283 &
​https://bugs.webkit.org/show_bug.cgi?id=204611

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeImplicitGridAutoFlow):
(WebCore::CSSPropertyParser::consumeGridShorthand):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertGridTrackSizeList):
(WebCore::Style::BuilderConverter::convertGridAutoFlow):

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
Note: See TracTimeline for information about the timeline view.