Timeline
Nov 15, 2021:
- 11:02 PM Changeset in webkit [285853] by
-
- 77 edits1 add in trunk
[libpas] Build and enable libpas on 64bit JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=233097
Reviewed by Filip Pizlo.
This patch makes libpas built on 64bit Linux. And now enabling it on JSCOnly port.
libpas is built in C and tailored to the current clang. It made building libpas on
GCC hard since GCC is stricter on C languages.
- C does not handle
constvariables as constants. So libpas's config is not strictly constant in the C spec, and GCC actually rejects it. To make it built correctly, we need to build them in C++. In this patch, when building libpas via CMake, we build some libpas C files as C++. - GCC C++ does not allow designated initializer for array. We work-around this problem by adding cpp_initialization_t constexpr constructors only when building these headers in C++ compiler.
- Atomic operations are using clang extension, so they cannot be built with GCC. This patch adds GCC version of these implementations.
- Add PAS_OS(DARWIN) ifdefs for Darwin specific code (e.g. malloc handling).
- Add explicit cast / PAS_UNUSED_PARAM since GCC emits warnings
- Use (unsigned long long) explicit cast for printing uint64_t via
%llx/%llusince uint64_t definition isunsigned long intin GCC (while clang's one isunsigned long long). - Reorder designated initializer for structures since not following to the definition ordering becomes compile error in GCC.
- Use uint128_t for pas_pair in GCC to avoid compile error.
- CMakeLists.txt:
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/BCompiler.h:
- bmalloc/BPlatform.h:
- bmalloc/Heap.cpp:
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):
- libpas/src/libpas/bmalloc_heap.c:
- libpas/src/libpas/bmalloc_heap_config.c:
(bmalloc_heap_config_activate):
- libpas/src/libpas/bmalloc_heap_inlines.h:
- libpas/src/libpas/jit_heap.c:
- libpas/src/libpas/jit_heap_config.c:
(jit_page_header_for_boundary_remote):
(jit_prepare_to_enumerate):
- libpas/src/libpas/jit_heap_config.h:
- libpas/src/libpas/pas_basic_heap_config_enumerator_data.c:
(pas_basic_heap_config_enumerator_data_add_page_header_table):
- libpas/src/libpas/pas_bitfit_page.c:
(pas_bitfit_page_deallocation_did_fail):
- libpas/src/libpas/pas_bitfit_page_config_kind.c:
- libpas/src/libpas/pas_bitfit_page_inlines.h:
(pas_bitfit_page_finish_allocation):
(pas_bitfit_page_allocate):
(pas_bitfit_page_deallocate_with_page_impl):
- libpas/src/libpas/pas_cartesian_tree.h:
(pas_cartesian_tree_construct):
- libpas/src/libpas/pas_compact_ptr.h:
- libpas/src/libpas/pas_debug_spectrum.c:
(pas_debug_spectrum_dump):
- libpas/src/libpas/pas_dyld_state.c:
(pas_dyld_is_libsystem_initialized):
- libpas/src/libpas/pas_enumerator.c:
(pas_enumerator_record_page_payload_and_meta):
- libpas/src/libpas/pas_epoch.c:
(pas_get_epoch):
- libpas/src/libpas/pas_fast_large_free_heap.c:
(get_x_key_callback):
(insert_node):
(dump_heap):
(fast_write_cursor):
(fast_merge):
- libpas/src/libpas/pas_fast_megapage_cache.c:
(table_set_by_index):
- libpas/src/libpas/pas_fast_megapage_table.c:
(pas_fast_megapage_table_set_by_index):
- libpas/src/libpas/pas_fast_megapage_table.h:
(pas_fast_megapage_table::pas_fast_megapage_table):
- libpas/src/libpas/pas_generic_large_free_heap.h:
(pas_generic_large_free_heap_try_allocate):
- libpas/src/libpas/pas_heap_config.h:
- libpas/src/libpas/pas_heap_config_inlines.h:
- libpas/src/libpas/pas_heap_config_kind.c:
- libpas/src/libpas/pas_heap_config_kind.def:
- libpas/src/libpas/pas_heap_config_kind.h:
(pas_heap_config_kind_get_config):
(pas_heap_config_kind_is_active):
- libpas/src/libpas/pas_heap_config_utils.h:
- libpas/src/libpas/pas_internal_config.h:
- libpas/src/libpas/pas_intrinsic_heap_support.h:
(pas_intrinsic_heap_support::pas_intrinsic_heap_support):
- libpas/src/libpas/pas_large_expendable_memory.h:
- libpas/src/libpas/pas_large_free_inlines.h:
(pas_large_free_create_merged):
- libpas/src/libpas/pas_large_sharing_pool.c:
(validate_min_heap):
(create_node):
(try_splat_impl):
(pas_large_sharing_pool_decommit_least_recently_used):
(pas_large_sharing_pool_validate):
(pas_large_sharing_pool_compute_summary):
- libpas/src/libpas/pas_local_allocator_inlines.h:
(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_try_allocate_with_free_bits):
- libpas/src/libpas/pas_lock.h:
(pas_lock_unlock):
- libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c:
(pas_lock_free_read_ptr_ptr_hashtable_set):
- libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.h:
(pas_lock_free_read_ptr_ptr_hashtable_find):
- libpas/src/libpas/pas_min_heap.h:
- libpas/src/libpas/pas_monotonic_time.c:
(pas_get_current_monotonic_time_nanoseconds):
- libpas/src/libpas/pas_page_base_config_utils_inlines.h:
- libpas/src/libpas/pas_page_malloc.c:
(pas_page_malloc_commit):
(decommit_impl):
- libpas/src/libpas/pas_page_sharing_participant.c:
(pas_page_sharing_participant_get_parent_pool):
- libpas/src/libpas/pas_page_sharing_pool.c:
(verify_participants):
(dump_min_heap):
(get_current_participant):
(pas_page_sharing_pool_take_least_recently_used):
(pas_physical_page_sharing_pool_scavenge):
- libpas/src/libpas/pas_platform.h: Added.
- libpas/src/libpas/pas_root.c:
- libpas/src/libpas/pas_root.h:
- libpas/src/libpas/pas_scavenger.c:
(scavenger_thread_main):
- libpas/src/libpas/pas_scavenger.h:
- libpas/src/libpas/pas_segregated_directory.c:
(pas_segregated_directory_get_use_epoch):
- libpas/src/libpas/pas_segregated_directory.h:
- libpas/src/libpas/pas_segregated_exclusive_view_inlines.h:
(pas_segregated_exclusive_view_did_start_allocating):
- libpas/src/libpas/pas_segregated_page.c:
(pas_segregated_page_construct):
(pas_segregated_page_take_empty_granules):
- libpas/src/libpas/pas_segregated_page.h:
(pas_segregated_page_offset_from_page_boundary_to_first_object_for_hugging_mode):
(pas_segregated_page_offset_from_page_boundary_to_end_of_last_object_for_hugging_mode):
- libpas/src/libpas/pas_segregated_page_config_kind.c:
- libpas/src/libpas/pas_segregated_page_config_kind.h:
- libpas/src/libpas/pas_segregated_page_inlines.h:
(pas_segregated_page_deallocate_with_page):
- libpas/src/libpas/pas_segregated_partial_view.c:
(pas_segregated_partial_view_set_is_in_use_for_allocation):
- libpas/src/libpas/pas_segregated_shared_handle.c:
(pas_segregated_shared_handle_create):
- libpas/src/libpas/pas_segregated_shared_page_directory.c:
(take_last_empty_consider_view):
- libpas/src/libpas/pas_segregated_shared_view.c:
(compute_summary):
- libpas/src/libpas/pas_segregated_size_directory.c:
(pas_segregated_size_directory_select_allocator_slow):
(take_last_empty_should_consider_view_parallel):
(take_last_empty_consider_view):
- libpas/src/libpas/pas_segregated_size_directory.h:
- libpas/src/libpas/pas_segregated_view_allocator_inlines.h:
(pas_segregated_view_will_start_allocating):
- libpas/src/libpas/pas_simple_large_free_heap.c:
(dump_free_list):
(append):
(merge):
(simple_write_cursor):
- libpas/src/libpas/pas_status_reporter.c:
(report_segregated_directory_contents):
(dump_large_sharing_pool_node_callback):
- libpas/src/libpas/pas_thread_local_cache.c:
(destructor):
(allocate_cache):
(dump_thread_diagnostics):
(pas_thread_local_cache_create):
(pas_thread_local_cache_get_local_allocator_slow):
(stop_local_allocators_if_necessary_set_bit_source):
(stop_local_allocators_if_necessary_set_bit_callback):
(pas_thread_local_cache_for_all):
- libpas/src/libpas/pas_try_allocate_intrinsic.h:
- libpas/src/libpas/pas_utility_heap_config.c:
- libpas/src/libpas/pas_utility_heap_config.h:
- libpas/src/libpas/pas_utils.h:
(pas_compare_and_swap_uintptr_weak):
(pas_compare_and_swap_uintptr_strong):
(pas_compare_and_swap_bool_weak):
(pas_compare_and_swap_bool_strong):
(pas_compare_and_swap_uint8_weak):
(pas_compare_and_swap_uint16_weak):
(pas_compare_and_swap_uint32_weak):
(pas_compare_and_swap_uint32_strong):
(pas_compare_and_swap_uint64_weak):
(pas_compare_and_swap_uint64_strong):
(pas_compare_and_swap_ptr_weak):
(pas_compare_and_swap_ptr_strong):
(pas_pair_create):
(pas_compare_and_swap_pair_weak):
(pas_compare_and_swap_pair_strong):
(pas_atomic_load_pair):
(pas_atomic_store_pair):
- libpas/src/libpas/pas_utils_prefix.h:
- 10:12 PM Changeset in webkit [285852] by
-
- 29 edits1 copy24 moves6 adds6 deletes in trunk/LayoutTests
Re-import css/css-text-decor WPT
https://bugs.webkit.org/show_bug.cgi?id=233154
Reviewed by Cameron McCormack.
Since mismatches are now properly renamed to
-expected-mismatch.htmlon import since bug 207175,
re-import this directory to reduce numbers of false negatives/positives.
Some tests have also been added/updated/removed since.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-text-decor/text-decoration-propagation-display-contents-expected.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-propagation-display-contents.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-004-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-004-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-005-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-005-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-subelements-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-subelements-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-thickness-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-001-expected.html.
- web-platform-tests/css/css-text-decor/text-decoration-thickness-single-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-single-expected.html.
- web-platform-tests/css/css-text-decor/text-emphasis-color-001-expected.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-color-001.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002-expected.xht: Removed.
- web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002-expected.xht: Removed.
- web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002-expected.xht: Removed.
- web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002-expected.xht: Removed.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001-expected.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-002-expected.xht: Added.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-left-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001-expected.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-002-expected.xht: Added.
- web-platform-tests/css/css-text-decor/text-emphasis-position-over-right-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001-expected.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-002-expected.xht: Added.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-left-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-001-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001-expected.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-001.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-002-expected.xht: Added.
- web-platform-tests/css/css-text-decor/text-emphasis-position-under-right-002.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002.xht.
- web-platform-tests/css/css-text-decor/text-emphasis-style-002-expected.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-002.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-006-expected.html: Removed.
- web-platform-tests/css/css-text-decor/text-emphasis-style-006.html: Removed.
- web-platform-tests/css/css-text-decor/text-emphasis-style-007-expected.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-007.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-008-expected.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-008.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-010-expected.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-010.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-012-expected.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-012.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-016-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-emphasis-style-002-expected.html.
- web-platform-tests/css/css-text-decor/text-emphasis-style-016.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-021-expected.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-021.html:
- web-platform-tests/css/css-text-decor/text-emphasis-style-filled-001-expected.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-filled-001.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-none-001-expected.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-none-001.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-open-001-expected.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-open-001.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-shape-001-expected.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-shape-001.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-string-001-expected.xht:
- web-platform-tests/css/css-text-decor/text-emphasis-style-string-001.xht:
- web-platform-tests/css/css-text-decor/text-underline-offset-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-underline-offset-001-expected.html.
- web-platform-tests/css/css-text-decor/text-underline-offset-negative-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-underline-offset-negative-expected.html.
- web-platform-tests/css/css-text-decor/w3c-import.log:
LayoutTests:
- 10:01 PM Changeset in webkit [285851] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles: Autocomplete should support mid-line completions
https://bugs.webkit.org/show_bug.cgi?id=227411
Reviewed by Devin Rousso.
Autocompletion for CSS property values was lacking in the ability to perform mid-line completions, including
within functions, and a lack of support for multi-line CSS property values. This resolves those pain points by
making SpreadsheetTextField multi-line aware and allowing mid-line autocompletion.
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
- UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype.valueWithoutSuggestion):
Because suggestions can occur anywhere within the value, we need to iterate through each of the nodes and
collect the text of any of them that are not the completion suggestion.
(WI.SpreadsheetTextField.prototype.set suggestionHint):
When removing the suggestion hint element, we should recombine the text nodes we may have split upon insertion
to prevent the text content from becoming endlessly fragmented into multiple text nodes unnecessarily.
(WI.SpreadsheetTextField.prototype.startEditing):
Reset the last known caret position when editing starts so that we don't mistake keys that are already down as
having moved the cursor to its initial position.
(WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
We should only attempt to reattach the suggestion hint element if we have a suggestion hint to show, otherwise
we could end up with a phantom empty suggestion hint that isn't properly placed later.
(WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
Updated to use existing completion committing path to reduce duplicated logic.
(WI.SpreadsheetTextField.prototype._handleMouseDown):
When the user clicks inside the text field while suggestions are visible treat that as intent to stop
autocompletion similar to the escape key, since the new cursor location could be anywhere in the text field.
This behavior also matches other code editors like Xcode, where clicking outside a completion popup will dismiss
the completions list.
(WI.SpreadsheetTextField.prototype._handleKeyDown):
Keep track of where the caret was as well as if the the key event was handled by the suggestion view at the time
a key is pressed so that we can later compare the position to that of when the key is released to determine if
completions should be discarded.
(WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
We can no longer assume that the current selection's offset will match the value's length, as the offset could
be on any line, or the suggestion could be in middle of a line. Because a suggestionHint only contains text when
we are in middle of autocompletion, it alone is an indicator that pressing the right arrow key should commit the
completion.document.execCommandis deprecated, so instead we now use the existing completion committing path
to reduce duplicated logic here.
Note that the left arrow key is still explicitly handled for dismissing autocompletion, as the new mechanism for
dismissing autocompletion won't trigger unless the caret has moved, and the caret will not move if you press the
left arrow key at the start of the text field.
(WI.SpreadsheetTextField.prototype._handleKeyUp):
When a key is released, we should check to see if the caret has moved as a result of the keystroke that we have
not already explicitly handled. If it has moved and was not handled, we dismiss the autocompletion suggestions.
(WI.SpreadsheetTextField.prototype._handleInput):
(WI.SpreadsheetTextField.prototype._updateCompletions):
Provide the current caret position to the completion provided.
(WI.SpreadsheetTextField.prototype._showSuggestionsView):
In order to correctly align the completion list with the current text content, it must be offset from the caret
position excluding the current prefix.
(WI.SpreadsheetTextField.prototype._getCaretPosition):
Added to get the index of the caret in the complete text value, accounting for multi-line values and mid-line
suggestions.
(WI.SpreadsheetTextField.prototype._getCaretRect):
(WI.SpreadsheetTextField.prototype._rangeAtCaretPosition):
Find the range for a caret at the given position. This compliments_getCaretPosition, and allows us to count
back some number of characters and create a range of which we later get the client rectangle.
(WI.SpreadsheetTextField.prototype._applyCompletionHint):
Add optional support for updating the caret position to be at the end of the newly inserted text.
(WI.SpreadsheetTextField.prototype._combineEditorElementChildren):
Added to handle combining the fragmented text nodes (and possibly a suggestion hint element) back into a single
text node while maintaining the current cursor position or optionally moving the cursor to a new location (e.g.
the end of a completion).
(WI.SpreadsheetTextField.prototype._reAttachSuggestionHint):
Now that completions are not guaranteed to be at the end of the value, we may need to split the text node to
insert the suggestion hint node.
- 7:48 PM Changeset in webkit [285850] by
-
- 4 edits1 add in trunk
[JSC] Use operation path when PutByVal child1 is not speculated as a Cell
https://bugs.webkit.org/show_bug.cgi?id=233147
rdar://85344310
Reviewed by Mark Lam.
JSTests:
- stress/put-by-val-slow-dfg.js: Added.
(foo):
Source/JavaScriptCore:
r285530 removed non CellUse / non KnownCellUse case incorrectly (when we do not have Cell edge,
then we should use the slow operation path). This patch recovers it.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePutByVal):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
- 7:20 PM Changeset in webkit [285849] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r285812.
https://bugs.webkit.org/show_bug.cgi?id=233162
Introduced test failures
Reverted changeset:
"[macOS][GPUP] Add telemetry for syscalls"
https://bugs.webkit.org/show_bug.cgi?id=232888
https://commits.webkit.org/r285812
- 7:13 PM Changeset in webkit [285848] by
-
- 1 copy in tags/Safari-612.3.6.0.2
Tag Safari-612.3.6.0.2.
- 6:44 PM Changeset in webkit [285847] by
-
- 1 copy in tags/Safari-612.3.6.1.2
Tag Safari-612.3.6.1.2.
- 6:11 PM Changeset in webkit [285846] by
-
- 13 edits1 copy11 adds in trunk/Source
Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more
https://bugs.webkit.org/show_bug.cgi?id=233112
Reviewed by Dean Jackson.
Source/WebCore:
Adds basic SceneKit based ModelPlayer implementation. Like the ARKit player, this one
also requires writing the USD file to a temporary file as SceneKit does not support
loading USD files from NSData, and therefore is not actually something that can be used
for production yet.
The player is backed by a SceneKitModel class, which is created via a SceneKitModelLoader.
Both SceneKitModel and SceneKitModelLoader are abstract so that different types of models
can be supported. Currently, there is only a USD loader implemented for parity with the
ARKit based implementation.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
Add new files.
- Modules/model-element/scenekit: Added.
- Modules/model-element/scenekit/SceneKitModel.h: Added.
- Modules/model-element/scenekit/SceneKitModel.mm: Added.
Abstract base class for loader specific implementations.
- Modules/model-element/scenekit/SceneKitModelLoader.h: Added.
- Modules/model-element/scenekit/SceneKitModelLoader.mm: Added.
(WebCore::loadSceneKitModel):
Entry point where different loaders can be referenced for different
file types. As noted above, currenly only a USD loader is implementend.
- Modules/model-element/scenekit/SceneKitModelLoaderClient.h: Added.
- Modules/model-element/scenekit/SceneKitModelLoaderClient.mm: Added.
Interface to pass state back to whatever requested the load.
- Modules/model-element/scenekit/SceneKitModelLoaderUSD.h: Added.
- Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm: Added.
Loads USD file into a SCNScene which the client can attach to a
renderer (e.g. the SCNMetalLayer).
- Modules/model-element/scenekit/SceneKitModelPlayer.h: Added.
- Modules/model-element/scenekit/SceneKitModelPlayer.mm: Added.
The SceneKitModelPlayer uses loadSceneKitModel() to load and build
a SCNScene asynchonously that it then attaches to its SCNMetalLayer.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/SceneKitSPI.h: Added.
Adds forward declaration of SCNMetalLayer SPI so SceneKit can be used
without an NSView/UIView.
Source/WebKit:
Add support for instantiating the new SceneKit backed ModelPlayer.
If both ARKit based ModelPlayer and SceneKit based ModelPlayer are enabled,
the ARKit one wins.
- WebProcess/Model/WebModelPlayerProvider.cpp:
(WebKit::WebModelPlayerProvider::createModelPlayer):
Add support for creating a SceneKit based ModelPlayer and add checks
for whether the backend is enabled.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::useARKitForModel const):
(WebKit::WebPage::useSceneKitForModel const):
Add bits to store which <model> backends are enabled.
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add some internal settings to enable/disable the ARKit and SceneKit based
<model> backends.
- wtf/PlatformHave.h:
Add HAVE macro for SceneKit. Only enabled for macOS at the moment, but could
probably be enabled for iOS if it is useful.
- 5:42 PM Changeset in webkit [285845] by
-
- 4 edits in branches/safari-613.1.9-branch/Source
Cherry-pick r285828. rdar://problem/85341122
Unreviewed, fix the internal iOS 15 build
Source/WebCore/PAL:
In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
know exports these symbols.
- pal/spi/cocoa/NSAttributedStringSPI.h:
Source/WTF:
Add a new compile-time flag.
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:42 PM Changeset in webkit [285844] by
-
- 2 edits in branches/safari-613.1.9-branch/Source/WebCore/PAL
Cherry-pick r285811. rdar://problem/85341122
Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122
Reviewed by Tim Horton.
Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
(NSString * vs. NSTextListMarkerFormat). To address this, we directly importNSTextList.hif it's available in
the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
each of these constants, since WebCore cannot explicitly link against UIKit.
- pal/spi/cocoa/NSAttributedStringSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:20 PM Changeset in webkit [285843] by
-
- 2 edits in trunk/LayoutTests
Remove redundant [ Pass ] from TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=233157
Reviewed by Cameron McCormack.
- 5:07 PM Changeset in webkit [285842] by
-
- 1 copy in tags/Safari-613.1.8.2
Tag Safari-613.1.8.2.
- 5:03 PM Changeset in webkit [285841] by
-
- 5 edits in trunk/Source
_AXSCopyPathForAccessibilityBundle is going to be deprecated.
https://bugs.webkit.org/show_bug.cgi?id=233081
Patch by Eric Liang <ericliang@apple.com> on 2021-11-15
Reviewed by Andres Gonzalez.
To support macOS Accessibility v2 runtime, on macOS there are two places where bundles can live. By doing so,
_AXSCopyPathForAccessibilityBundlewill going to be deprecated because it won’t always return the correct path you would expect.
Source/WebKit:
- Platform/spi/Cocoa/AccessibilitySupportSPI.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::webProcessLoaderAccessibilityBundlePath):
Source/WTF:
- wtf/PlatformHave.h:
- 4:25 PM Changeset in webkit [285840] by
-
- 5 edits in branches/safari-613.1.9-branch
Cherry-pick r285827. rdar://problem/85391118
Revert r285235
https://bugs.webkit.org/show_bug.cgi?id=233142
Unreviewed.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt:
Source/WebCore:
Causes crash with simple repro
<div id=t style="border-radius: unset"></div>
<script>
t.style.borderRadius;
</script>
- css/StyleProperties.cpp: (WebCore::StyleProperties::getPropertyValue const): (WebCore::StyleProperties::borderRadiusValue const): Deleted.
- css/StyleProperties.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:07 PM Changeset in webkit [285839] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Layers Tab: the position of composited layer with box-shadow is wrong
https://bugs.webkit.org/show_bug.cgi?id=233026
Reviewed by Devin Rousso.
If an element has box-shadow, Layers Tab showed the composited
layer positioned wrongly. It assumed the composited layer position
was same with its element position. This isn't true. If an element
has box-shadow, its composited layer includes the surrounding
box-shadow.
- UserInterface/Models/Layer.js:
(WI.Layer):
- UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView.prototype._updateLayers):
(WI.Layers3DContentView.prototype._createLayerMesh):
- 2:44 PM Changeset in webkit [285838] by
-
- 6 edits in trunk/Source/WebCore
[Curl] Security information sometimes do not appear in inspector network tab
https://bugs.webkit.org/show_bug.cgi?id=232971
Reviewed by Fujii Hironori.
Get certificate information from SSL context when CurlSSLVerifier is empty.
No tests yet.
- platform/network/curl/CertificateInfo.h:
- platform/network/curl/CurlContext.cpp:
(WebCore:: const):
(WebCore::CurlHandle::addExtraNetworkLoadMetrics):
(WebCore::CurlHandle::certificateInfo const):
- platform/network/curl/CurlContext.h:
- platform/network/curl/OpenSSLHelper.cpp:
(OpenSSL::StackOfX509::StackOfX509):
(OpenSSL::StackOfX509::~StackOfX509):
(OpenSSL::pemDataFromCtx):
(OpenSSL::createCertificateInfo):
- platform/network/curl/OpenSSLHelper.h:
- 2:41 PM Changeset in webkit [285837] by
-
- 3 edits in trunk/Source/WebCore
Add helper to add CSS property with implicit default
https://bugs.webkit.org/show_bug.cgi?id=233108
Patch by Kiet Ho <Kiet Ho> on 2021-11-15
Reviewed by Myles C. Maxfield.
Add a helper in CSSPropertyParser to add a property with implicit default. This helper
accepts a RefPtr<> value and a Ref<> default. If the value is a null pointer, the
default is added, and the implicit flag is set. Otherwise, the value is added. This is
useful for parsing shorthands, because the CSS spec requires that missing value be
set to its default value, and WebCore additionally requires the implicit flag to be set.
This helper handles both of them.
No functional changes; no tests needed.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::addPropertyWithImplicitDefault):
(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::CSSPropertyParser::consumeFont):
(WebCore::CSSPropertyParser::consumeFontVariantShorthand):
(WebCore::CSSPropertyParser::consumeColumns):
(WebCore::CSSPropertyParser::consumeShorthandGreedily):
(WebCore::CSSPropertyParser::consumeBorderImage):
- css/parser/CSSPropertyParser.h:
- 2:25 PM Changeset in webkit [285836] by
-
- 2 edits in trunk/Source/WebCore/PAL
[iOS] Adopt -[AVAudioSession setAuditTokensForProcessAssertion:]
https://bugs.webkit.org/show_bug.cgi?id=232909
<rdar://68184444>
Reviewed by Eric Carlson.
Re-declare -setAuditTokensForProcessAssertion in APPLE_INTERNAL_SDK section.
- pal/spi/cocoa/AVFoundationSPI.h:
- 2:16 PM Changeset in webkit [285835] by
-
- 4 edits in branches/safari-612.3.6.1-branch/Source/WebCore
Apply patch. rdar://problem/83971417
- 2:16 PM Changeset in webkit [285834] by
-
- 3 edits2 adds in branches/safari-612.3.6.1-branch
Cherry-pick r285728. rdar://problem/85236241
[Web Animations] Accelerated animations with a single keyframe don't account for prior forward-filling animations
https://bugs.webkit.org/show_bug.cgi?id=233041
<rdar://problem/85236241>
Reviewed by Dean Jackson.
Source/WebCore:
Test: webanimations/accelerated-animation-after-forward-filling-animation.html
When starting an accelerated animation, we would fill any implicit keyframes based on the unanimated style.
We now also apply all animations below this animation in the target's effect stack such that a previous
forward-filling animation is accounted for.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
LayoutTests:
Add a new test that runs a forward-filling animation for
transform, waits for its completion,
then runs anothertransformanimation with an implicit initial keyframe, ensuring that the
result of the first forward-filling animation is accounted for when computing the initial
keyframe.
This test would fail prior to this patch.
- webanimations/accelerated-animation-after-forward-filling-animation-expected.html: Added.
- webanimations/accelerated-animation-after-forward-filling-animation.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:16 PM Changeset in webkit [285833] by
-
- 8 edits in branches/safari-612.3.6.1-branch/Source
Versioning.
WebKit-7612.3.6.1.2
- 2:07 PM Changeset in webkit [285832] by
-
- 3 edits2 adds in branches/safari-612.3.6.0-branch
Cherry-pick r285728. rdar://problem/85236241
[Web Animations] Accelerated animations with a single keyframe don't account for prior forward-filling animations
https://bugs.webkit.org/show_bug.cgi?id=233041
<rdar://problem/85236241>
Reviewed by Dean Jackson.
Source/WebCore:
Test: webanimations/accelerated-animation-after-forward-filling-animation.html
When starting an accelerated animation, we would fill any implicit keyframes based on the unanimated style.
We now also apply all animations below this animation in the target's effect stack such that a previous
forward-filling animation is accounted for.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
LayoutTests:
Add a new test that runs a forward-filling animation for
transform, waits for its completion,
then runs anothertransformanimation with an implicit initial keyframe, ensuring that the
result of the first forward-filling animation is accounted for when computing the initial
keyframe.
This test would fail prior to this patch.
- webanimations/accelerated-animation-after-forward-filling-animation-expected.html: Added.
- webanimations/accelerated-animation-after-forward-filling-animation.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:06 PM Changeset in webkit [285831] by
-
- 2 edits49 adds in trunk/Source/WebCore/PAL
[WebGPU] [Cocoa] Connect WebCore & PAL to WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=233106
Reviewed by Dean Jackson.
This adds an implementation of WebGPU's virtual interfaces on top of WebGPU.framework.
That framework's headers almost exactly match the WebGPU API, so the connections are
mostly mechanical. There's just a bunch of marshalling code to convert between
descriptor and structs from WebCore's interface to WebGPU.framework's
descriptors/structs.
This uses the same "convertToBacking" convention, where functions that convert from the
higher-level WebCore types to the lower-level WebGPU.framework types are named
"convertToBacking()". Unfortunately, the WebGPU API takes many of these structs by
non-const reference, and the structs are nested by non-const reference, which means I
can't just have simple 1-in-1-out converter functions for every struct, since the
inner structs have to be referenced by-reference and therefore have to be in-scope. This
means that the simple enum and flags types use convertToBacking(), but most of the
structs have to be converted at their use site. Luckily, almost all of these structs
only have a single use site, so there isn't much duplication.
For now, this implementation is Cocoa-only, because in order for these calls to
WebGPU.framework to be legal, WebCore has to link with an implementation of those
functions. The Cocoa ports are the only ones which actually have an implementation of
those functions, so those are the only ports which can actually compile this code. If
the other ports want to link with Dawn or WGPU, this code should be (mostly) usable
out-of-the-box for them. I say "mostly" because the header that's shared between Dawn,
WGPU, and WebGPU.framework isn't finalized yet. As such, this implementation relies on
functions from WebGPUExt.h, which is an additional header (that only exists in
WebGPU.framework) that adds the missing pieces.
- PAL.xcodeproj/project.pbxproj:
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp: Added.
(PAL::WebGPU::adapterName):
(PAL::WebGPU::supportedFeatures):
(PAL::WebGPU::supportedLimits):
(PAL::WebGPU::isFallbackAdapter):
(PAL::WebGPU::AdapterImpl::AdapterImpl):
(PAL::WebGPU::AdapterImpl::~AdapterImpl):
(PAL::WebGPU::requestDeviceCallback):
(PAL::WebGPU::AdapterImpl::requestDevice):
(PAL::WebGPU::AdapterImpl::requestDeviceCallback):
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.cpp: Added.
(PAL::WebGPU::BindGroupImpl::BindGroupImpl):
(PAL::WebGPU::BindGroupImpl::~BindGroupImpl):
(PAL::WebGPU::BindGroupImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.cpp: Added.
(PAL::WebGPU::BindGroupLayoutImpl::BindGroupLayoutImpl):
(PAL::WebGPU::BindGroupLayoutImpl::~BindGroupLayoutImpl):
(PAL::WebGPU::BindGroupLayoutImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp: Added.
(PAL::WebGPU::BufferImpl::BufferImpl):
(PAL::WebGPU::BufferImpl::~BufferImpl):
(PAL::WebGPU::mapCallback):
(PAL::WebGPU::BufferImpl::mapAsync):
(PAL::WebGPU::BufferImpl::mapCallback):
(PAL::WebGPU::BufferImpl::getMappedRange):
(PAL::WebGPU::BufferImpl::unmap):
(PAL::WebGPU::BufferImpl::destroy):
(PAL::WebGPU::BufferImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.cpp: Added.
(PAL::WebGPU::CommandBufferImpl::CommandBufferImpl):
(PAL::WebGPU::CommandBufferImpl::~CommandBufferImpl):
(PAL::WebGPU::CommandBufferImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp: Added.
(PAL::WebGPU::CommandEncoderImpl::CommandEncoderImpl):
(PAL::WebGPU::CommandEncoderImpl::~CommandEncoderImpl):
(PAL::WebGPU::CommandEncoderImpl::beginRenderPass):
(PAL::WebGPU::CommandEncoderImpl::beginComputePass):
(PAL::WebGPU::CommandEncoderImpl::copyBufferToBuffer):
(PAL::WebGPU::CommandEncoderImpl::copyBufferToTexture):
(PAL::WebGPU::CommandEncoderImpl::copyTextureToBuffer):
(PAL::WebGPU::CommandEncoderImpl::copyTextureToTexture):
(PAL::WebGPU::CommandEncoderImpl::fillBuffer):
(PAL::WebGPU::CommandEncoderImpl::pushDebugGroup):
(PAL::WebGPU::CommandEncoderImpl::popDebugGroup):
(PAL::WebGPU::CommandEncoderImpl::insertDebugMarker):
(PAL::WebGPU::CommandEncoderImpl::writeTimestamp):
(PAL::WebGPU::CommandEncoderImpl::resolveQuerySet):
(PAL::WebGPU::CommandEncoderImpl::finish):
(PAL::WebGPU::CommandEncoderImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp: Added.
(PAL::WebGPU::ComputePassEncoderImpl::ComputePassEncoderImpl):
(PAL::WebGPU::ComputePassEncoderImpl::~ComputePassEncoderImpl):
(PAL::WebGPU::ComputePassEncoderImpl::setPipeline):
(PAL::WebGPU::ComputePassEncoderImpl::dispatch):
(PAL::WebGPU::ComputePassEncoderImpl::dispatchIndirect):
(PAL::WebGPU::ComputePassEncoderImpl::beginPipelineStatisticsQuery):
(PAL::WebGPU::ComputePassEncoderImpl::endPipelineStatisticsQuery):
(PAL::WebGPU::ComputePassEncoderImpl::endPass):
(PAL::WebGPU::ComputePassEncoderImpl::setBindGroup):
(PAL::WebGPU::ComputePassEncoderImpl::pushDebugGroup):
(PAL::WebGPU::ComputePassEncoderImpl::popDebugGroup):
(PAL::WebGPU::ComputePassEncoderImpl::insertDebugMarker):
(PAL::WebGPU::ComputePassEncoderImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.cpp: Added.
(PAL::WebGPU::ComputePipelineImpl::ComputePipelineImpl):
(PAL::WebGPU::ComputePipelineImpl::~ComputePipelineImpl):
(PAL::WebGPU::ComputePipelineImpl::getBindGroupLayout):
(PAL::WebGPU::ComputePipelineImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUConvertToBacking.cpp: Added.
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::convertBufferUsageFlagsToBacking):
(PAL::WebGPU::convertColorWriteFlagsToBacking):
(PAL::WebGPU::convertMapModeFlagsToBacking):
(PAL::WebGPU::convertShaderStageFlagsToBacking):
(PAL::WebGPU::convertTextureUsageFlagsToBacking):
- pal/graphics/WebGPU/Impl/WebGPUConvertToBacking.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp: Added.
(PAL::WebGPU::DeviceImpl::DeviceImpl):
(PAL::WebGPU::DeviceImpl::~DeviceImpl):
(PAL::WebGPU::DeviceImpl::destroy):
(PAL::WebGPU::DeviceImpl::createBuffer):
(PAL::WebGPU::DeviceImpl::createTexture):
(PAL::WebGPU::DeviceImpl::createSampler):
(PAL::WebGPU::DeviceImpl::importExternalTexture):
(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::DeviceImpl::createShaderModule):
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createComputePipeline):
(PAL::WebGPU::DeviceImpl::createRenderPipeline):
(PAL::WebGPU::createComputePipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsyncCallback):
(PAL::WebGPU::createRenderPipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createCommandEncoder):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):
(PAL::WebGPU::DeviceImpl::pushErrorScope):
(PAL::WebGPU::popErrorScopeCallback):
(PAL::WebGPU::DeviceImpl::popErrorScope):
(PAL::WebGPU::DeviceImpl::popErrorScopeCallback):
(PAL::WebGPU::DeviceImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.cpp: Added.
(PAL::WebGPU::ExternalTextureImpl::ExternalTextureImpl):
(PAL::WebGPU::ExternalTextureImpl::~ExternalTextureImpl):
(PAL::WebGPU::ExternalTextureImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: Added.
(PAL::WebGPU::GPUImpl::GPUImpl):
(PAL::WebGPU::GPUImpl::~GPUImpl):
(PAL::WebGPU::requestAdapterCallback):
(PAL::WebGPU::GPUImpl::requestAdapter):
(PAL::WebGPU::GPUImpl::requestAdapterCallback):
- pal/graphics/WebGPU/Impl/WebGPUImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.cpp: Added.
(PAL::WebGPU::PipelineLayoutImpl::PipelineLayoutImpl):
(PAL::WebGPU::PipelineLayoutImpl::~PipelineLayoutImpl):
(PAL::WebGPU::PipelineLayoutImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.cpp: Added.
(PAL::WebGPU::QuerySetImpl::QuerySetImpl):
(PAL::WebGPU::QuerySetImpl::~QuerySetImpl):
(PAL::WebGPU::QuerySetImpl::destroy):
(PAL::WebGPU::QuerySetImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp: Added.
(PAL::WebGPU::QueueImpl::QueueImpl):
(PAL::WebGPU::QueueImpl::~QueueImpl):
(PAL::WebGPU::QueueImpl::submit):
(PAL::WebGPU::onSubmittedWorkDoneCallback):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDoneCallback):
(PAL::WebGPU::QueueImpl::writeBuffer):
(PAL::WebGPU::QueueImpl::writeTexture):
(PAL::WebGPU::QueueImpl::copyExternalImageToTexture):
(PAL::WebGPU::QueueImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp: Added.
(PAL::WebGPU::RenderBundleEncoderImpl::RenderBundleEncoderImpl):
(PAL::WebGPU::RenderBundleEncoderImpl::~RenderBundleEncoderImpl):
(PAL::WebGPU::RenderBundleEncoderImpl::setPipeline):
(PAL::WebGPU::RenderBundleEncoderImpl::setIndexBuffer):
(PAL::WebGPU::RenderBundleEncoderImpl::setVertexBuffer):
(PAL::WebGPU::RenderBundleEncoderImpl::draw):
(PAL::WebGPU::RenderBundleEncoderImpl::drawIndexed):
(PAL::WebGPU::RenderBundleEncoderImpl::drawIndirect):
(PAL::WebGPU::RenderBundleEncoderImpl::drawIndexedIndirect):
(PAL::WebGPU::RenderBundleEncoderImpl::setBindGroup):
(PAL::WebGPU::RenderBundleEncoderImpl::pushDebugGroup):
(PAL::WebGPU::RenderBundleEncoderImpl::popDebugGroup):
(PAL::WebGPU::RenderBundleEncoderImpl::insertDebugMarker):
(PAL::WebGPU::RenderBundleEncoderImpl::finish):
(PAL::WebGPU::RenderBundleEncoderImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.cpp: Added.
(PAL::WebGPU::RenderBundleImpl::RenderBundleImpl):
(PAL::WebGPU::RenderBundleImpl::~RenderBundleImpl):
(PAL::WebGPU::RenderBundleImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp: Added.
(PAL::WebGPU::RenderPassEncoderImpl::RenderPassEncoderImpl):
(PAL::WebGPU::RenderPassEncoderImpl::~RenderPassEncoderImpl):
(PAL::WebGPU::RenderPassEncoderImpl::setPipeline):
(PAL::WebGPU::RenderPassEncoderImpl::setIndexBuffer):
(PAL::WebGPU::RenderPassEncoderImpl::setVertexBuffer):
(PAL::WebGPU::RenderPassEncoderImpl::draw):
(PAL::WebGPU::RenderPassEncoderImpl::drawIndexed):
(PAL::WebGPU::RenderPassEncoderImpl::drawIndirect):
(PAL::WebGPU::RenderPassEncoderImpl::drawIndexedIndirect):
(PAL::WebGPU::RenderPassEncoderImpl::setBindGroup):
(PAL::WebGPU::RenderPassEncoderImpl::pushDebugGroup):
(PAL::WebGPU::RenderPassEncoderImpl::popDebugGroup):
(PAL::WebGPU::RenderPassEncoderImpl::insertDebugMarker):
(PAL::WebGPU::RenderPassEncoderImpl::setViewport):
(PAL::WebGPU::RenderPassEncoderImpl::setScissorRect):
(PAL::WebGPU::RenderPassEncoderImpl::setBlendConstant):
(PAL::WebGPU::RenderPassEncoderImpl::setStencilReference):
(PAL::WebGPU::RenderPassEncoderImpl::beginOcclusionQuery):
(PAL::WebGPU::RenderPassEncoderImpl::endOcclusionQuery):
(PAL::WebGPU::RenderPassEncoderImpl::beginPipelineStatisticsQuery):
(PAL::WebGPU::RenderPassEncoderImpl::endPipelineStatisticsQuery):
(PAL::WebGPU::RenderPassEncoderImpl::executeBundles):
(PAL::WebGPU::RenderPassEncoderImpl::endPass):
(PAL::WebGPU::RenderPassEncoderImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.cpp: Added.
(PAL::WebGPU::RenderPipelineImpl::RenderPipelineImpl):
(PAL::WebGPU::RenderPipelineImpl::~RenderPipelineImpl):
(PAL::WebGPU::RenderPipelineImpl::getBindGroupLayout):
(PAL::WebGPU::RenderPipelineImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.cpp: Added.
(PAL::WebGPU::SamplerImpl::SamplerImpl):
(PAL::WebGPU::SamplerImpl::~SamplerImpl):
(PAL::WebGPU::SamplerImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp: Added.
(PAL::WebGPU::ShaderModuleImpl::ShaderModuleImpl):
(PAL::WebGPU::ShaderModuleImpl::~ShaderModuleImpl):
(PAL::WebGPU::ShaderModuleImpl::compilationInfo):
(PAL::WebGPU::ShaderModuleImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp: Added.
(PAL::WebGPU::TextureImpl::TextureImpl):
(PAL::WebGPU::TextureImpl::~TextureImpl):
(PAL::WebGPU::TextureImpl::createView const):
(PAL::WebGPU::TextureImpl::destroy):
(PAL::WebGPU::TextureImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h: Added.
- pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.cpp: Added.
(PAL::WebGPU::TextureViewImpl::TextureViewImpl):
(PAL::WebGPU::TextureViewImpl::~TextureViewImpl):
(PAL::WebGPU::TextureViewImpl::setLabelInternal):
- pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h: Added.
- 2:02 PM Changeset in webkit [285830] by
-
- 8 edits in branches/safari-612.3.6.0-branch/Source
Versioning.
WebKit-7612.3.6.0.2
- 1:46 PM Changeset in webkit [285829] by
-
- 4 edits in branches/safari-613.1.8-branch/Source
Cherry-pick r285828. rdar://problem/85427036
Unreviewed, fix the internal iOS 15 build
Source/WebCore/PAL:
In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
know exports these symbols.
- pal/spi/cocoa/NSAttributedStringSPI.h:
Source/WTF:
Add a new compile-time flag.
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:40 PM Changeset in webkit [285828] by
-
- 4 edits in trunk/Source
Unreviewed, fix the internal iOS 15 build
Source/WebCore/PAL:
In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
know exports these symbols.
- pal/spi/cocoa/NSAttributedStringSPI.h:
Source/WTF:
Add a new compile-time flag.
- wtf/PlatformHave.h:
- 1:18 PM Changeset in webkit [285827] by
-
- 5 edits in trunk
Revert r285235
https://bugs.webkit.org/show_bug.cgi?id=233142
Unreviewed.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt:
Source/WebCore:
Causes crash with simple repro
<div id=t style="border-radius: unset"></div>
<script>
t.style.borderRadius;
</script>
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderRadiusValue const): Deleted.
- css/StyleProperties.h:
- 12:47 PM Changeset in webkit [285826] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Fix fast/text/letter-spacing-negative-opacity.html
https://bugs.webkit.org/show_bug.cgi?id=233132
Reviewed by Antti Koivisto.
Special case the negative letter spacing content when computing the content logical width.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::appendTextContent):
- Negative letter space value could produce negative content width
- Subsequent text content (e.g. "this text has whitepspace content") may go from positive to negative content width as parts of the content may produce positive width even with negative letter spacing.
- 12:39 PM Changeset in webkit [285825] by
-
- 8 edits in branches/safari-613.1.8-branch/Source
Versioning.
WebKit-7613.1.8.2
- 12:30 PM Changeset in webkit [285824] by
-
- 1 copy in tags/Safari-613.1.8.1
Tag Safari-613.1.8.1.
- 12:21 PM Changeset in webkit [285823] by
-
- 3 edits3 adds in trunk
Cross-Origin-Embedder-Policy: require-corpprevents loading of data URL images
https://bugs.webkit.org/show_bug.cgi?id=233131
<rdar://85236459>
Reviewed by Geoffrey Garen.
Source/WebCore:
When doing an initial data URL <img> load, we properly wouldn't perform a cross-origin resource policy check.
This is per the Fetch specification that says to use a scheme fetch [1] when the request URL is a data URL.
When the protocol is data, the scheme fetch algorithm would return a response without performing an HTTP
Fetch. The HTTP check [2] is the algorithm that actually performs a cross-origin resource policy check, at
step 7.
The issue with our implementation was that data URL <img> loads would perform a cross-origin resource policy
check in the case where the image is loaded from our memory cache, due to a check we had in
CachedResourceLoader::requestResource(). As a result, data URL <img> loads would fail when served from the
memory cache, when CORP is enforced. To address the issue and match the specification, we now disable this
CORP check when the request URL is a data URL.
[1] https://fetch.spec.whatwg.org/#scheme-fetch
[2] https://fetch.spec.whatwg.org/#concept-http-fetch
Test: http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
LayoutTests:
Add layout test coverage. This test is based on a reduce test case from Cameron McCormack.
- http/wpt/html/cross-origin-embedder-policy/require-corp-data-url-expected.txt: Added.
- http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html: Added.
- http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html.headers: Added.
- 12:18 PM Changeset in webkit [285822] by
-
- 26 edits4 adds in trunk
Implement parsing and animation support for offset-rotate
https://bugs.webkit.org/show_bug.cgi?id=232752
Patch by Kiet Ho <Kiet Ho> on 2021-11-15
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
Rebaselined tests that now should pass.
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- web-platform-tests/css/motion/animation/offset-rotate-composition-expected.txt:
- web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt:
- web-platform-tests/css/motion/inheritance-expected.txt:
- web-platform-tests/css/motion/offset-supports-calc-expected.txt:
- web-platform-tests/css/motion/parsing/offset-rotate-computed-expected.txt:
- web-platform-tests/css/motion/parsing/offset-rotate-parsing-valid-expected.txt:
- web-platform-tests/css/motion/parsing/offset-shorthand-expected.txt:
Source/WebCore:
Implement parsing and animation support for offset-rotate as specified in the CSS
motion path specification. 'auto' and 'reverse' modifiers are supported.
Tests: imported/w3c/web-platform-tests/css/motion/inheritance.html
imported/w3c/web-platform-tests/css/motion/offset-supports-calc.html
imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-composition.html
imported/w3c/web-platform-tests/css/motion/animation/offset-rotate-interpolation.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-rotate-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-rotate-parsing-invalid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-rotate-parsing-valid.html
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Added blendFunc override for blending OffsetRotation.
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Added animation support for offset-rotate.
- css/CSSComputedStyleDeclaration.cpp: Added computed style support for offset-rotate.
(WebCore::valueForOffsetRotate):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSOffsetRotateValue.cpp: Added.
(WebCore::CSSOffsetRotateValue::customCSSText const):
(WebCore::CSSOffsetRotateValue::equals const):
- css/CSSOffsetRotateValue.h: Added.
- css/CSSProperties.json: Added entry for offset-rotate.
- css/CSSValue.cpp:
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):
- css/CSSValue.h:
(WebCore::CSSValue::isOffsetRotateValue const):
- css/parser/CSSPropertyParser.cpp: Added parsing support for offset-rotate.
(WebCore::consumeOffsetRotate):
(WebCore::CSSPropertyParser::parseSingleValue):
- rendering/style/OffsetRotation.cpp: Added.
(WebCore::OffsetRotation::OffsetRotation):
(WebCore::OffsetRotation::operator== const):
(WebCore::operator<<):
- rendering/style/OffsetRotation.h: Added.
(WebCore::OffsetRotation::hasAuto const):
(WebCore::OffsetRotation::angle const):
(WebCore::OffsetRotation::operator!= const):
- rendering/style/RenderStyle.h: Added support for offset-rotate.
(WebCore::RenderStyle::offsetRotate const):
(WebCore::RenderStyle::setOffsetRotate):
(WebCore::RenderStyle::initialOffsetRotate):
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h: Added storage space for offset-path.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertOffsetRotate):
LayoutTests:
Rebaselined test to account for new CSS property.
- platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- 12:15 PM Changeset in webkit [285821] by
-
- 2 edits in branches/safari-613.1.8-branch/Source/WebCore/PAL
Cherry-pick r285811. rdar://problem/85422144
Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122
Reviewed by Tim Horton.
Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
(NSString * vs. NSTextListMarkerFormat). To address this, we directly importNSTextList.hif it's available in
the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
each of these constants, since WebCore cannot explicitly link against UIKit.
- pal/spi/cocoa/NSAttributedStringSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:15 PM Changeset in webkit [285820] by
-
- 2 edits in branches/safari-613.1.8-branch/Source/WebCore/PAL
Cherry-pick r285744. rdar://problem/85422144
Stop statically declaring various UIFoundation constants in NSAttributedStringSPI.h
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122
Reviewed by Tim Horton.
Replace these static NSString definitions with soft-linked constants instead.
- pal/spi/cocoa/NSAttributedStringSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285744 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:46 AM Changeset in webkit [285819] by
-
- 8 edits1 add in trunk
Make valgrind work properly without extra environment variables
https://bugs.webkit.org/show_bug.cgi?id=230460
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-15
Reviewed by Carlos Garcia Campos.
Source/bmalloc:
Currently to run WebKit under valgrind, we have to manually disable bmalloc with Malloc=1,
or else the Gigacage breaks everything, because valgrind shadows the entire address space in
resident memory, and it just can't handle that much address space. Even with
GIGACAGE_ENABLED=0, diagnostics are worse because bmalloc does not use valgrind's
annotations.
Using valgrind.h, we can automatically disable bmalloc when running under valgrind to avoid
needing to use the environment variable.
- CMakeLists.txt:
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/Environment.cpp:
(bmalloc::isRunningOnValgrind):
(bmalloc::Environment::computeIsDebugHeapEnabled):
- bmalloc/valgrind.h: Added.
(valgrind_do_client_request_expr):
(VALGRIND_PRINTF):
(VALGRIND_PRINTF_BACKTRACE):
Source/WebKit:
WebKitGTK and WPE WebKit users also have to set the WEBKIT_FORCE_SANDBOX=0 environment
variable, because the web process sandbox breaks valgrind for some reason I never attempted
to understand. If we have bmalloc expose valgrind.h as a public header, then we can check
for valgrind in higher layers and make this work automatically too.
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
Tools:
Exempt valgrind.h from the style checker.
- Scripts/webkitpy/style/checker.py:
- 11:19 AM Changeset in webkit [285818] by
-
- 5 edits in trunk/Source/WebKit
Remove some dead code from IPC::Encoder / IPC::Decoder
https://bugs.webkit.org/show_bug.cgi?id=233134
Reviewed by Sam Weinig.
Remove some dead code from IPC::Encoder / IPC::Decoder and make sure both
types are non-copyable / non-movable.
- Platform/IPC/Decoder.cpp:
- Platform/IPC/Decoder.h:
(IPC::Decoder::decodeSingleObject): Deleted.
(): Deleted.
- Platform/IPC/Encoder.cpp:
(IPC::Encoder::Encoder):
- Platform/IPC/Encoder.h:
- 11:15 AM Changeset in webkit [285817] by
-
- 9 edits in trunk
Skip tests newly-failing on mips
https://bugs.webkit.org/show_bug.cgi?id=233124
Unreviewed gardening.
After 3f59d2aa489ec843e055fc3104c275851d7fbd35, these tests started
failing with a SIGBUS on MIPS (on fuloong hardware, they pass on the
ci20 boards). Temporarily skip them on this arch until we can track
down the issue.
JSTests:
- stress/call-varargs-double-new-array-buffer.js:
- stress/callee-save-fpr.js:
- stress/forward-varargs-double-new-array-buffer.js:
- stress/new-array-with-spread-cow-double.js:
- stress/new-array-with-spread-double-new-array-buffer.js:
- stress/spread-escapes-but-new-array-buffer-does-not-double.js:
PerformanceTests:
- ARES-6/Basic/basic-tests.yaml:
- 11:00 AM Changeset in webkit [285816] by
-
- 9 edits in branches/safari-613.1.9-branch/Source
Versioning.
WebKit-7613.1.9
- 10:58 AM Changeset in webkit [285815] by
-
- 1 copy in branches/safari-613.1.9-branch
New branch.
- 10:57 AM Changeset in webkit [285814] by
-
- 9 edits in trunk/Source
Versioning.
WebKit-7613.1.10
- 10:56 AM Changeset in webkit [285813] by
-
- 3 edits2 adds in trunk
nullptr deref in CompositeEditCommand::insertNodeAt
https://bugs.webkit.org/show_bug.cgi?id=232837
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-15
Reviewed by Wenson Hsieh and Darin Adler.
Source/WebCore:
Check endingSelection is not orphan before inserting nodes at
the start position.
Test: fast/editing/editing-position-crash.html
- editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply):
LayoutTests:
- fast/editing/editing-position-crash-expected.txt: Added.
- fast/editing/editing-position-crash.html: Added.
- 10:49 AM Changeset in webkit [285812] by
-
- 3 edits in trunk/Source/WebKit
[macOS][GPUP] Add telemetry for syscalls
https://bugs.webkit.org/show_bug.cgi?id=232888
<rdar://problem/85207011>
Reviewed by Brent Fulgham.
Add more telemetry for syscalls in the GPU process' sandbox on macOS. Also add entitlement for the GPU
process to use message filtering.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Scripts/process-entitlements.sh:
- 10:36 AM Changeset in webkit [285811] by
-
- 2 edits in trunk/Source/WebCore/PAL
Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122
Reviewed by Tim Horton.
Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
(NSString * vs. NSTextListMarkerFormat). To address this, we directly importNSTextList.hif it's available in
the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
each of these constants, since WebCore cannot explicitly link against UIKit.
- pal/spi/cocoa/NSAttributedStringSPI.h:
- 10:36 AM Changeset in webkit [285810] by
-
- 4 edits in trunk
Null bytes aren't percent-encoded on urlencoded over POST
https://bugs.webkit.org/show_bug.cgi?id=220780
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-15
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt:
Source/WebCore:
This change fixes a bug where strchr was being used to match a character against a set
character list, without checking whether the character was NUL. This resulted in NUL bytes
being passed through in the urlencoded enctype over POST, rather than being percent-escaped.
Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window.html
- platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::appendFormURLEncoded):
- 10:07 AM Changeset in webkit [285809] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r285774.
https://bugs.webkit.org/show_bug.cgi?id=233136
Introduced GPUP crash on some configurations
Reverted changeset:
"[macOS][GPUP] Add telemetry for syscalls"
https://bugs.webkit.org/show_bug.cgi?id=232888
https://commits.webkit.org/r285774
- 9:32 AM Changeset in webkit [285808] by
-
- 4 edits in trunk
Empty <input type=file> controls don't show up in the urlencoded and text/plain enctypes
https://bugs.webkit.org/show_bug.cgi?id=221549
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-15
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window-expected.txt:
Source/WebCore:
In the HTML spec, and in Firefox and Chrome's implementations, an empty <input type="file">
control is represented in form submission as if it were an empty file with an empty
filename. WebKit, however, does not include a form entry corresponding to the file input at
all in the application/x-www-form-urlencoded and text/plain enctypes. This change fixes it.
Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window.html
- html/FileInputType.cpp:
(WebCore::FileInputType::appendFormData const):
- 7:51 AM Changeset in webkit [285807] by
-
- 11 edits in trunk/Source/WebCore
[LFC][Integration] fast/text/international/bidi-innertext.html fails with BiDi enabled
https://bugs.webkit.org/show_bug.cgi?id=233125
Reviewed by Alan Bujtas.
TextIterator needs to know that RenderText contains bidi text.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
Use the InlineTextBox bit.
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::containsBidiText):
Add a helper.
- layout/formattingContexts/inline/text/TextUtil.h:
- layout/integration/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::makeTextLogicalOrderCacheIfNeeded):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/layouttree/LayoutInlineTextBox.cpp:
(WebCore::Layout::InlineTextBox::InlineTextBox):
(WebCore::Layout::m_containsBidiText):
Add a bit to the InlineTextBox.
(WebCore::Layout::m_canUseSimplifiedContentMeasuring): Deleted.
- layout/layouttree/LayoutInlineTextBox.h:
(WebCore::Layout::InlineTextBox::containsBidiText const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createTextBox):
- rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
(WebCore::RenderText::positionLineBox):
- rendering/RenderText.h:
(WebCore::RenderText::containsBidiText const):
(WebCore::RenderText::setContainsBidiText):
(WebCore::RenderText::containsReversedText const): Deleted.
- 6:47 AM Changeset in webkit [285806] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Take text-indent into account when computing preferred width
https://bugs.webkit.org/show_bug.cgi?id=233115
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- 6:46 AM Changeset in webkit [285805] by
-
- 2 edits in trunk/LayoutTests
AX: Un-skip accessibility/mac/search-predicate-for-adhoc-radio-groups.html for Mac WK1
https://bugs.webkit.org/show_bug.cgi?id=233116
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-15
Reviewed by Andres Gonzalez.
https://bugs.webkit.org/show_bug.cgi?id=233017 implemented
AccessibilityUIElement::domIdentifier for WK1, so we don't
need to skip accessibility/mac/search-predicate-for-adhoc-radio-groups.html anymore.
- platform/mac-wk1/TestExpectations:
Un-skip because AccessibilityUIElement::domIdentifier is now
implemented.
- 6:06 AM Changeset in webkit [285804] by
-
- 2 edits in trunk
Add my GitHub username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=233122
Unreviewed.
Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2021-11-15
- metadata/contributors.json:
- 5:08 AM Changeset in webkit [285803] by
-
- 16 edits2 copies89 adds in trunk/LayoutTests
[CSS contain] Update css-contain tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=233121
Reviewed by Rob Buis.
Update css/css-contain/ tests to commit 625a2df832.
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/css/css-contain/contain-body-bg-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-001.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-002.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-003.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-bg-004.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-001.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-002.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-003.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-dir-004.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-001.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-002.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-003.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-overflow-004.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-001.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-002.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-003.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-t-o-004.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-001.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-002.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-003.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-body-w-m-004.html: Added.
- web-platform-tests/css/css-contain/contain-content-011-expected.html:
- web-platform-tests/css/css-contain/contain-content-011.html:
- web-platform-tests/css/css-contain/contain-html-bg-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-001.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-002.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-003.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-bg-004.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-001.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-002.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-003.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-dir-004.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-001.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-002.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-003.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-overflow-004.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-001.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-002.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-003.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-t-o-004.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-001.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-002.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-003-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-003.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-004-expected.html: Added.
- web-platform-tests/css/css-contain/contain-html-w-m-004.html: Added.
- web-platform-tests/css/css-contain/contain-layout-019-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-layout-019.html: Added.
- web-platform-tests/css/css-contain/contain-paint-010.html:
- web-platform-tests/css/css-contain/contain-paint-026-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-paint-026.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-paint-010.html.
- web-platform-tests/css/css-contain/contain-paint-change-opacity-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-paint-change-opacity.html: Added.
- web-platform-tests/css/css-contain/contain-paint-clip-005.html:
- web-platform-tests/css/css-contain/contain-strict-011-expected.html:
- web-platform-tests/css/css-contain/contain-strict-011.html:
- web-platform-tests/css/css-contain/crashtests/contain-nested-crash-001.html: Added.
- web-platform-tests/css/css-contain/crashtests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/parsing/w3c-import.log.
- web-platform-tests/css/css-contain/parsing/contain-computed-children-expected.txt: Added.
- web-platform-tests/css/css-contain/parsing/contain-computed-children.html: Added.
- web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
- web-platform-tests/css/css-contain/parsing/contain-computed.html:
- web-platform-tests/css/css-contain/parsing/contain-invalid-expected.txt:
- web-platform-tests/css/css-contain/parsing/contain-invalid.html:
- web-platform-tests/css/css-contain/parsing/w3c-import.log:
- web-platform-tests/css/css-contain/w3c-import.log:
LayoutTests:
- 4:57 AM Changeset in webkit [285802] by
-
- 5 edits in trunk
[GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229964
Reviewed by Carlos Garcia Campos.
Source/WebCore:
I can't reproduce the timeout locally anymore, but I'm getting a crash sometimes. This fix is for the crash.
Unregister dbus objects on MediaSessionGLib destruction to prevent the dbus connection to keep processing requests.
- platform/audio/glib/MediaSessionGLib.cpp:
(WebCore::MediaSessionGLib::MediaSessionGLib()): Don't register a GBusNameLostCallback, as unregistration is now going to be handled in the destructor.
(WebCore::MediaSessionGLib::~MediaSessionGLib()): Unregister dbus objects.
(WebCore::MediaSessionGLib::nameLost()): Refactored into the destructor.
- platform/audio/glib/MediaSessionGLib.h:
(WebCore::MediaSessionGLib::nameLost()): Deleted.
LayoutTests:
Removed failing test from TestExpectations.
- platform/gtk/TestExpectations:
- 3:12 AM Changeset in webkit [285801] by
-
- 4 edits2 adds in trunk
Stack overflow with revert-layer
https://bugs.webkit.org/show_bug.cgi?id=233119
rdar://85342210
Reviewed by Antoine Quint.
Source/WebCore:
We would decrement the cascade layer priority by one after finding 'revert-layer' value and then try
to apply again. If both the default layer and a cascade layer contained 'revert-layer' we would
enter a very deep recursion as the default layer priority is 64k and the cascade layer priorities
start from zero.
Test: fast/css/revert-layer-stack-overflow-2.html
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyRollbackCascadeProperty):
Fix by getting the new cascade layer priority from the actual property rather than the cascade
minimum value.
Factor into a function.
(WebCore::Style::Builder::applyProperty):
- style/StyleBuilder.h:
LayoutTests:
- fast/css/revert-layer-stack-overflow-2-expected.txt: Added.
- fast/css/revert-layer-stack-overflow-2.html: Added.
- 12:42 AM Changeset in webkit [285800] by
-
- 4 edits in trunk
CSP: Fix missing lineNumber and columnNumber in inline violation reports
https://bugs.webkit.org/show_bug.cgi?id=233102
Reviewed by Carlos Garcia Campos.
LayoutTests/imported/w3c:
Update expectations as passing.
- web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-inline-expected.txt:
Source/WebCore:
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation const):
Nov 14, 2021:
- 11:17 PM Changeset in webkit [285799] by
-
- 14 edits2 adds in trunk
Get daemon API ready to work in the iOS simulator (starting with WebPushD)
https://bugs.webkit.org/show_bug.cgi?id=232982
Reviewed by Geoff Garen.
Source/WebKit:
Move all the "enable Notifications" SPI from Mac-only to cross platform:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setNotificationsEnabled:]):
(-[WKPreferences _notificationsEnabled]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):
- WebKit.xcodeproj/project.pbxproj: Add a build phase script to install the daemon executables inside a Daemons directory within the built WebKit.framework for engineering builds.
- webpushd/WebPushDaemon.mm:
Tools:
To get this working we needed to:
- Have the Daemons installed in a simulator-runtime-root-visible path
- Point the OSLaunchDJob plist to the simulator-relative path, not Mac-relative
- Solve the "How do I kill existing instances to run a clean test?" problem within the simulator.
This patch does those things.
- TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::testWebPushDaemonPList):
(TestWebKitAPI::setUpTestWebPushD):
(TestWebKitAPI::cleanUpTestWebPushD):
- TestWebKitAPI/cocoa/DaemonTestUtilities.h:
- TestWebKitAPI/cocoa/DaemonTestUtilities.mm:
(TestWebKitAPI::registerPlistWithLaunchD):
(TestWebKitAPI::pidOfFirstDaemonInstance):
(TestWebKitAPI::killFirstInstanceOfDaemon):
WebKitLibraries:
- WebKitPrivateFrameworkStubs/iOS/15/AppServerSupport.framework/AppServerSupport.tbd: Added.
- 8:22 PM Changeset in webkit [285798] by
-
- 2 edits in trunk/Source/WebKit
[GraphicsLayerWC] Incorrect compositing debug border color
https://bugs.webkit.org/show_bug.cgi?id=233107
Reviewed by Don Olmstead.
GraphicsLayer::updateDebugIndicators() should be called after
changing some layer properties.
- WebProcess/WebPage/wc/GraphicsLayerWC.cpp:
(WebKit::GraphicsLayerWC::setMasksToBounds):
(WebKit::GraphicsLayerWC::setDrawsContent):
(WebKit::GraphicsLayerWC::setContentsToPlatformLayer):
(WebKit::GraphicsLayerWC::setBackdropFilters):
Call updateDebugIndicators.
- 8:06 PM Changeset in webkit [285797] by
-
- 5 edits2 adds in trunk
Fingers down on the trackpad should stop an animated scroll
https://bugs.webkit.org/show_bug.cgi?id=233114
Reviewed by Wenson Hsieh.
Source/WebCore:
Fingers down on the trackpad sends a "MayBegin" event; this needs to stop any in-progress
animated momentum scroll.
This failed because ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent() early-returned
on the MayBegin event before it got to ScrollingEffectsController. Fix that, and have
ScrollingEffectsController::handleWheelEvent() return true to say it was handled.
This triggered an assertion in ScrollingTreeGestureState, but for "post-main-thread"
handling for which the assertion was wrong.
Test: fast/scrolling/mac/momentum-animator-maybegin-stops.html
- page/scrolling/ScrollingTreeGestureState.cpp:
(WebCore::ScrollingTreeGestureState::nodeDidHandleEvent):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::handleWheelEvent):
LayoutTests:
- fast/scrolling/mac/momentum-animator-maybegin-stops-expected.txt: Added.
- fast/scrolling/mac/momentum-animator-maybegin-stops.html: Added.
- 6:45 PM Changeset in webkit [285796] by
-
- 90 edits in trunk/Source/WebCore
[GPU Process] Remove the reference to Filter from FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=232551
rdar://85136447
Reviewed by Cameron McCormack.
This patch removes an unnecessary dependency of individual FilterEffects
on the Filter object, which makes it easier to send the filter description
over IPC.
Instead of having a reference to the Filter in the FilterEffect, we are
going to pass a reference to the Filter to the FilterEffect functions
only when needed. FilterEffect may need access to the Filter only in two
methods: determineAbsolutePaintRect() and platformApplySoftware().
We need to change all the FilterEffect create methods to not take a Filter
as input. This requires the SVG filter effect elements to change their
build() method. And it requires also CSSFilter to not pass itself to the
FilterEffects its create.
- platform/graphics/coreimage/FilterEffectRendererCoreImage.h:
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:
(WebCore::FilterEffectRendererCoreImage::applyEffects):
(WebCore::FilterEffectRendererCoreImage::connectCIFilters):
(WebCore::FilterEffectRendererCoreImage::imageForSourceGraphic):
- platform/graphics/cpu/arm/filters/FEBlendNEON.h:
(WebCore::FEBlend::platformApplySoftware):
- platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::create):
(WebCore::FEBlend::FEBlend):
(WebCore::FEBlend::platformApplySoftware):
- platform/graphics/filters/FEBlend.h:
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::create):
(WebCore::FEColorMatrix::FEColorMatrix):
(WebCore::FEColorMatrix::platformApplySoftware):
- platform/graphics/filters/FEColorMatrix.h:
- platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::create):
(WebCore::FEComponentTransfer::FEComponentTransfer):
(WebCore::FEComponentTransfer::platformApplySoftware):
- platform/graphics/filters/FEComponentTransfer.h:
- platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::create):
(WebCore::FEComposite::FEComposite):
(WebCore::FEComposite::determineAbsolutePaintRect):
(WebCore::FEComposite::platformApplySoftware):
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::create):
(WebCore::FEConvolveMatrix::FEConvolveMatrix):
(WebCore::FEConvolveMatrix::platformApplySoftware):
- platform/graphics/filters/FEConvolveMatrix.h:
- platform/graphics/filters/FEDiffuseLighting.cpp:
(WebCore::FEDiffuseLighting::create):
(WebCore::FEDiffuseLighting::FEDiffuseLighting):
- platform/graphics/filters/FEDiffuseLighting.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::create):
(WebCore::FEDisplacementMap::FEDisplacementMap):
(WebCore::FEDisplacementMap::platformApplySoftware):
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::create):
(WebCore::FEDropShadow::FEDropShadow):
(WebCore::FEDropShadow::determineAbsolutePaintRect):
(WebCore::FEDropShadow::platformApplySoftware):
- platform/graphics/filters/FEDropShadow.h:
- platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::create):
(WebCore::FEFlood::FEFlood):
(WebCore::FEFlood::platformApplySoftware):
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::create):
(WebCore::FEGaussianBlur::FEGaussianBlur):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
(WebCore::FEGaussianBlur::platformApplySoftware):
- platform/graphics/filters/FEGaussianBlur.h:
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::FELighting):
(WebCore::FELighting::platformApplySoftware):
- platform/graphics/filters/FELighting.h:
- platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::create):
(WebCore::FEMerge::FEMerge):
(WebCore::FEMerge::platformApplySoftware):
- platform/graphics/filters/FEMerge.h:
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::create):
(WebCore::FEMorphology::FEMorphology):
(WebCore::FEMorphology::determineAbsolutePaintRect):
(WebCore::FEMorphology::platformApplySoftware):
- platform/graphics/filters/FEMorphology.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::create):
(WebCore::FEOffset::FEOffset):
(WebCore::FEOffset::determineAbsolutePaintRect):
(WebCore::FEOffset::platformApplySoftware):
- platform/graphics/filters/FEOffset.h:
- platform/graphics/filters/FESpecularLighting.cpp:
(WebCore::FESpecularLighting::create):
(WebCore::FESpecularLighting::FESpecularLighting):
- platform/graphics/filters/FESpecularLighting.h:
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::create):
(WebCore::FETile::FETile):
(WebCore::FETile::platformApplySoftware):
- platform/graphics/filters/FETile.h:
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::create):
(WebCore::FETurbulence::FETurbulence):
(WebCore::FETurbulence::fillRegion const):
(WebCore::FETurbulence::fillRegionWorker):
(WebCore::FETurbulence::platformApplySoftware):
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/Filter.h:
(WebCore::Filter::sourceImage const):
(WebCore::Filter::sourceImage): Deleted.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::FilterEffect):
(WebCore::FilterEffect::determineAbsolutePaintRect):
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::imageBufferResult):
(WebCore::FilterEffect::convertPixelBufferToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::createImageBufferResult):
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::filter): Deleted.
(WebCore::FilterEffect::filter const): Deleted.
Create a unaccelerated filter image result for now. This will be fixed
in the following patch. Anyway currently we never create accelerated
intermediate ImageBuffers for filters.
- platform/graphics/filters/FilterEffectRenderer.h:
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::SourceAlpha):
(WebCore::SourceAlpha::determineAbsolutePaintRect):
(WebCore::SourceAlpha::platformApplySoftware):
- platform/graphics/filters/SourceAlpha.h:
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::create):
(WebCore::SourceGraphic::SourceGraphic):
(WebCore::SourceGraphic::determineAbsolutePaintRect):
(WebCore::SourceGraphic::platformApplySoftware):
- platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::SourceGraphic): Deleted.
- rendering/CSSFilter.cpp:
(WebCore::createBlurEffect):
(WebCore::createBrightnessEffect):
(WebCore::createContrastEffect):
(WebCore::createDropShadowEffect):
(WebCore::createGrayScaleEffect):
(WebCore::createHueRotateEffect):
(WebCore::createInvertEffect):
(WebCore::createOpacityEffect):
(WebCore::createSaturateEffect):
(WebCore::createSepiaEffect):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::determineFilterPrimitiveSubregion):
(WebCore::CSSFilter::apply):
- rendering/CSSFilter.h:
Apply the FilterFunctions of the CSSFilter in the forward direction.
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
- svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::build const):
- svg/SVGFEBlendElement.h:
- svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build const):
- svg/SVGFEColorMatrixElement.h:
- svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build const):
- svg/SVGFEComponentTransferElement.h:
- svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::build const):
- svg/SVGFECompositeElement.h:
- svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build const):
- svg/SVGFEConvolveMatrixElement.h:
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::build const):
- svg/SVGFEDiffuseLightingElement.h:
- svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::build const):
- svg/SVGFEDisplacementMapElement.h:
- svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::build const):
- svg/SVGFEDropShadowElement.h:
- svg/SVGFEFloodElement.cpp:
(WebCore::SVGFEFloodElement::build const):
- svg/SVGFEFloodElement.h:
- svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::build const):
- svg/SVGFEGaussianBlurElement.h:
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::build const):
- svg/SVGFEImageElement.h:
- svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build const):
- svg/SVGFEMergeElement.h:
- svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::build const):
- svg/SVGFEMorphologyElement.h:
- svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::build const):
- svg/SVGFEOffsetElement.h:
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::build const):
- svg/SVGFESpecularLightingElement.h:
- svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::build const):
- svg/SVGFETileElement.h:
- svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::build const):
- svg/SVGFETurbulenceElement.h:
- svg/SVGFilterPrimitiveStandardAttributes.h:
Remove the Filter as an input to the build() method and pass a reference
to SVGFilterBuilder instead of passing a pointer.
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::create):
(WebCore::FEImage::FEImage):
(WebCore::FEImage::determineAbsolutePaintRect):
(WebCore::FEImage::platformApplySoftware):
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::apply):
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::buildFilterEffects):
- svg/graphics/filters/SVGFilterBuilder.h:
- 6:44 PM Changeset in webkit [285795] by
-
- 61 edits1 add1 delete in trunk
[JSC] Use CallLinkInfo in LLInt
https://bugs.webkit.org/show_bug.cgi?id=232746
Reviewed by Saam Barati.
JSTests:
- stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js:
- stress/sampling-profiler-wasm-name-section.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
- stress/sampling-profiler-wasm.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
- stress/sampling-profiler/samplingProfiler.js:
(doesTreeHaveStackTrace):
(runTest):
- wasm/function-tests/nameSection.js:
Source/JavaScriptCore:
This patch integrates normal CallLinkInfo into LLInt and remove adhoc LLIntCallLinkInfo.
So that we can simplify our IC software stack, and unifying call IC mechanism into one CallLinkInfo.
- LLInt can fully use our polymorphic call IC, and we no longer need to reset call IC when tiering up from LLInt to Baseline JIT since both now uses the same CallLinkInfo data structure. DFG and FTL can also retrieve call information from this CallLinkInfo.
- LLInt varargs calls get the same level of optimization to Baseline. Previously it does not have call IC.
- When JIT is disabled, we disable polymorphic call IC since it requires dynamic code generation. In that case, we only use monomorphic one, which is the same to the old LLIntCallLinkInfo.
- CallLinkInfo::doneLocation is set up only after Baseline JIT. We adjust call IC code so that we no longer rely on doneLocation when using DataIC. This allows us to smoothly tiering up from LLInt to Baseline JIT while using the same CallLinkInfo. We set up doneLocation in Baseline JIT just because DFG OSR exit requires when exiting to Baseline JIT code.
- We remove CallLinkInfo from JIT constant pool, and we store CallLinkInfo in metadata so that LLInt and Baseline JIT quickly access to that and keeping unlinked Baseline JIT working.
- We implement LLInt version of call IC thunks so that we can use them even when JIT is disabled.
Speedometer2 is neutral. JetStream2 is 0.7% progressed.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/CodeLocation.h:
- assembler/LinkBuffer.cpp:
(JSC::shouldDumpDisassemblyFor): Deleted.
- assembler/LinkBuffer.h:
- assembler/MacroAssemblerCodeRef.cpp:
(JSC::shouldDumpDisassemblyFor):
- assembler/MacroAssemblerCodeRef.h:
(JSC::MacroAssemblerCodePtr::dumpWithName const):
- bytecode/BytecodeList.rb:
- bytecode/BytecodeOperandsForCheckpoint.h:
(JSC::callLinkInfoFor):
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::clearStub):
(JSC::CallLinkInfo::setMonomorphicCallee):
(JSC::CallLinkInfo::clearCallee):
(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::CallLinkInfo::emitTailCallFastPath):
(JSC::CallLinkInfo::emitTailCallDataICFastPath):
(JSC::CallLinkInfo::emitSlowPath):
(JSC::CallLinkInfo::initializeDataIC):
(JSC::CallLinkInfo::emitDirectTailCallFastPath):
(JSC::CallLinkInfo::revertCallToStub):
- bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::isLinked const):
(JSC::CallLinkInfo::stub const):
(JSC::CallLinkInfo::updateMaxArgumentCountIncludingThis):
(JSC::CallLinkInfo::forEachDependentCell const):
(JSC::CallLinkInfo::setSlowStub): Deleted.
(JSC::CallLinkInfo::clearSlowStub): Deleted.
(JSC::CallLinkInfo::addressOfMaxArgumentCountIncludingThis): Deleted.
- bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeFromLLInt): Deleted.
- bytecode/CallLinkStatus.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::finalizeJITInlineCaches):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
(JSC::CodeBlock::linkIncomingCall):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::getArrayProfile):
(JSC::CodeBlock::updateAllArrayProfilePredictions):
- bytecode/CodeBlock.h:
- bytecode/CodeBlockInlines.h:
(JSC::CodeBlock::forEachLLIntOrBaselineCallLinkInfo):
(JSC::CodeBlock::forEachLLIntCallLinkInfo): Deleted.
- bytecode/LLIntCallLinkInfo.h: Removed.
- bytecode/Opcode.h:
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::allocateSharedProfiles):
- bytecode/UnlinkedCodeBlock.h:
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::callerReturnPC):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitVirtualCall):
(JSC::AssemblyHelpers::emitVirtualCallWithoutMovingGlobalObject):
- jit/AssemblyHelpers.h:
- jit/BaselineJITCode.h:
- jit/CallFrameShuffleData.cpp:
(JSC::CallFrameShuffleData::createForBaselineOrLLIntTailCall):
- jit/CallFrameShuffleData.h:
- jit/JIT.cpp:
(JSC::JIT::addUnlinkedCallLinkInfo):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::emit_op_ret):
(JSC::JIT::returnFromBaselineGenerator):
(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileTailCall):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITOpcodes.cpp:
(JSC::JIT::op_ret_handlerGenerator): Deleted.
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::handleHostCall): Deleted.
(JSC::virtualForWithFunction): Deleted.
- jit/Repatch.cpp:
(JSC::linkSlowPathTo):
(JSC::linkSlowFor):
(JSC::webAssemblyOwner):
(JSC::linkMonomorphicCall):
(JSC::revertCall):
(JSC::unlinkCall):
(JSC::jsToWasmICCodePtr):
(JSC::linkVirtualFor):
(JSC::linkPolymorphicCall):
- jit/Repatch.h:
- jit/RepatchInlines.h: Added.
(JSC::handleHostCall):
(JSC::linkFor):
(JSC::virtualForWithFunction):
- jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
(JSC::virtualThunkForRegularConstruct): Deleted.
(JSC::virtualThunkForTailConstruct): Deleted.
(JSC::virtualThunkForConstructCall): Deleted.
- jit/ThunkGenerators.h:
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_link_call):
(JSC::LLInt::llint_virtual_call):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
(JSC::LLInt::varargsSetup):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::commonCallEval):
(JSC::LLInt::genericCall): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LLIntThunks.cpp:
(JSC::LLInt::createJSGateThunk):
(JSC::LLInt::createTailCallGate):
(JSC::LLInt::returnLocationThunk):
- llint/LLIntThunks.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter.cpp:
(JSC::CLoopRegister::operator CallLinkInfo*):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- offlineasm/cloop.rb:
- offlineasm/instructions.rb:
- runtime/ExecutableBase.h:
- runtime/FunctionExecutable.h:
- runtime/Gate.h:
- runtime/VM.cpp:
(JSC::VM::getCTILinkCall):
(JSC::VM::getCTIThrowExceptionFromCallSlowPath):
(JSC::VM::getCTIVirtualCall):
- runtime/VM.h:
- 12:54 PM Changeset in webkit [285794] by
-
- 156 edits in trunk/Source/WebCore
[WebGPU] Various mechanical cleanups
https://bugs.webkit.org/show_bug.cgi?id=233104
Reviewed by Dean Jackson.
Source/WebCore:
- Trailing commas in enums
- Update GPUFeatureName to the latest spec
No new tests because there is no behavior change (yet).
- Modules/WebGPU/GPUAddressMode.h:
- Modules/WebGPU/GPUBlendFactor.h:
- Modules/WebGPU/GPUBlendOperation.h:
- Modules/WebGPU/GPUBufferBindingType.h:
- Modules/WebGPU/GPUCanvasCompositingAlphaMode.h:
- Modules/WebGPU/GPUCompareFunction.h:
- Modules/WebGPU/GPUCompilationMessageType.h:
- Modules/WebGPU/GPUComputePassTimestampLocation.h:
- Modules/WebGPU/GPUCullMode.h:
- Modules/WebGPU/GPUDeviceLostReason.h:
- Modules/WebGPU/GPUErrorFilter.h:
- Modules/WebGPU/GPUFeatureName.h:
(WebCore::convertToBacking):
- Modules/WebGPU/GPUFeatureName.idl:
- Modules/WebGPU/GPUFilterMode.h:
- Modules/WebGPU/GPUFrontFace.h:
- Modules/WebGPU/GPUIndexFormat.h:
- Modules/WebGPU/GPULoadOp.h:
- Modules/WebGPU/GPUPipelineStatisticName.h:
- Modules/WebGPU/GPUPowerPreference.h:
- Modules/WebGPU/GPUPredefinedColorSpace.h:
- Modules/WebGPU/GPUPrimitiveTopology.h:
- Modules/WebGPU/GPUQueryType.h:
- Modules/WebGPU/GPURenderPassTimestampLocation.h:
- Modules/WebGPU/GPUSamplerBindingType.h:
- Modules/WebGPU/GPUStencilOperation.h:
- Modules/WebGPU/GPUStorageTextureAccess.h:
- Modules/WebGPU/GPUStoreOp.h:
- Modules/WebGPU/GPUTextureAspect.h:
- Modules/WebGPU/GPUTextureDimension.h:
- Modules/WebGPU/GPUTextureFormat.h:
- Modules/WebGPU/GPUTextureSampleType.h:
- Modules/WebGPU/GPUTextureViewDimension.h:
- Modules/WebGPU/GPUVertexFormat.h:
- Modules/WebGPU/GPUVertexStepMode.h:
Source/WebCore/PAL:
- Explicitly delete some constructors and operators that we don't want
- Tweak const methods
- Add " namespace WebCore" around closing namespace braces
- Trailing commas on enums
- pal/graphics/WebGPU/WebGPU.h:
- pal/graphics/WebGPU/WebGPUAdapter.h:
(PAL::WebGPU::Adapter::features const):
(PAL::WebGPU::Adapter::limits const):
- pal/graphics/WebGPU/WebGPUAddressMode.h:
- pal/graphics/WebGPU/WebGPUBindGroup.h:
- pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
- pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
- pal/graphics/WebGPU/WebGPUBindGroupLayout.h:
- pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
- pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h:
- pal/graphics/WebGPU/WebGPUBlendComponent.h:
- pal/graphics/WebGPU/WebGPUBlendFactor.h:
- pal/graphics/WebGPU/WebGPUBlendOperation.h:
- pal/graphics/WebGPU/WebGPUBlendState.h:
- pal/graphics/WebGPU/WebGPUBuffer.h:
- pal/graphics/WebGPU/WebGPUBufferBinding.h:
- pal/graphics/WebGPU/WebGPUBufferBindingLayout.h:
- pal/graphics/WebGPU/WebGPUBufferBindingType.h:
- pal/graphics/WebGPU/WebGPUBufferDescriptor.h:
- pal/graphics/WebGPU/WebGPUBufferUsage.h:
- pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h:
- pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
- pal/graphics/WebGPU/WebGPUColorTargetState.h:
- pal/graphics/WebGPU/WebGPUColorWrite.h:
- pal/graphics/WebGPU/WebGPUCommandBuffer.h:
- pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h:
- pal/graphics/WebGPU/WebGPUCommandEncoder.h:
- pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h:
- pal/graphics/WebGPU/WebGPUCompareFunction.h:
- pal/graphics/WebGPU/WebGPUCompilationInfo.h:
- pal/graphics/WebGPU/WebGPUCompilationMessage.h:
- pal/graphics/WebGPU/WebGPUCompilationMessageType.h:
- pal/graphics/WebGPU/WebGPUComputePassDescriptor.h:
- pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
- pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h:
- pal/graphics/WebGPU/WebGPUComputePipeline.h:
- pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h:
- pal/graphics/WebGPU/WebGPUCullMode.h:
- pal/graphics/WebGPU/WebGPUDepthStencilState.h:
- pal/graphics/WebGPU/WebGPUDevice.h:
- pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
- pal/graphics/WebGPU/WebGPUDeviceLostInfo.h:
- pal/graphics/WebGPU/WebGPUDeviceLostReason.h:
- pal/graphics/WebGPU/WebGPUErrorFilter.h:
- pal/graphics/WebGPU/WebGPUExternalTexture.h:
- pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h:
- pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
- pal/graphics/WebGPU/WebGPUFeatureName.h:
- pal/graphics/WebGPU/WebGPUFilterMode.h:
- pal/graphics/WebGPU/WebGPUFragmentState.h:
- pal/graphics/WebGPU/WebGPUFrontFace.h:
- pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
- pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
- pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
- pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h:
- pal/graphics/WebGPU/WebGPUImageDataLayout.h:
- pal/graphics/WebGPU/WebGPUIndexFormat.h:
- pal/graphics/WebGPU/WebGPULoadOp.h:
- pal/graphics/WebGPU/WebGPUMapMode.h:
- pal/graphics/WebGPU/WebGPUMultisampleState.h:
- pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h:
- pal/graphics/WebGPU/WebGPUOutOfMemoryError.h:
(PAL::WebGPU::OutOfMemoryError::create):
- pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
- pal/graphics/WebGPU/WebGPUPipelineLayout.h:
- pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
- pal/graphics/WebGPU/WebGPUPipelineStatisticName.h:
- pal/graphics/WebGPU/WebGPUPowerPreference.h:
- pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h:
- pal/graphics/WebGPU/WebGPUPrimitiveState.h:
- pal/graphics/WebGPU/WebGPUPrimitiveTopology.h:
- pal/graphics/WebGPU/WebGPUProgrammableStage.h:
- pal/graphics/WebGPU/WebGPUQuerySet.h:
- pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
- pal/graphics/WebGPU/WebGPUQueryType.h:
- pal/graphics/WebGPU/WebGPUQueue.h:
- pal/graphics/WebGPU/WebGPURenderBundle.h:
- pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h:
- pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
- pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.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/WebGPURenderPassTimestampLocation.h:
- pal/graphics/WebGPU/WebGPURenderPipeline.h:
- pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h:
- pal/graphics/WebGPU/WebGPURequestAdapterOptions.h:
- pal/graphics/WebGPU/WebGPUSampler.h:
- pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h:
- pal/graphics/WebGPU/WebGPUSamplerBindingType.h:
- pal/graphics/WebGPU/WebGPUSamplerDescriptor.h:
- pal/graphics/WebGPU/WebGPUShaderModule.h:
- pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h:
- pal/graphics/WebGPU/WebGPUShaderStage.h:
- pal/graphics/WebGPU/WebGPUStencilFaceState.h:
- pal/graphics/WebGPU/WebGPUStencilOperation.h:
- pal/graphics/WebGPU/WebGPUStorageTextureAccess.h:
- pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h:
- pal/graphics/WebGPU/WebGPUStoreOp.h:
- pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
- pal/graphics/WebGPU/WebGPUSupportedLimits.h:
- pal/graphics/WebGPU/WebGPUTexture.h:
- pal/graphics/WebGPU/WebGPUTextureAspect.h:
- pal/graphics/WebGPU/WebGPUTextureBindingLayout.h:
- pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
- pal/graphics/WebGPU/WebGPUTextureDimension.h:
- pal/graphics/WebGPU/WebGPUTextureFormat.h:
- pal/graphics/WebGPU/WebGPUTextureSampleType.h:
- pal/graphics/WebGPU/WebGPUTextureUsage.h:
- pal/graphics/WebGPU/WebGPUTextureView.h:
- pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h:
- pal/graphics/WebGPU/WebGPUTextureViewDimension.h:
- pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h:
- pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h:
- pal/graphics/WebGPU/WebGPUValidationError.h:
- pal/graphics/WebGPU/WebGPUVertexAttribute.h:
- pal/graphics/WebGPU/WebGPUVertexBufferLayout.h:
- pal/graphics/WebGPU/WebGPUVertexFormat.h:
- pal/graphics/WebGPU/WebGPUVertexState.h:
- pal/graphics/WebGPU/WebGPUVertexStepMode.h:
- 11:52 AM Changeset in webkit [285793] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Initialize m_usesT2
https://bugs.webkit.org/show_bug.cgi?id=233095
Reviewed by Alexey Shvayka.
m_usesT2 is not initialized as "false" correctly.
- yarr/YarrJIT.cpp:
- 11:38 AM Changeset in webkit [285792] by
-
- 37 edits in trunk/Source/WebGPU
[WebGPU] Add necessary additions to WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=233091
Reviewed by Dean Jackson.
WebGPU.framework's header file is lagging a bit behind the official WebGPU API.
This updates a companion header, WebGPUExt.h, with the necessary additions.
I don't want to modify the primary header, WebGPU.h, because it's shared among
multiple projects, so coordination is necessary to modify it.
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
(WebGPU::Adapter::getFeatureAtIndex):
(wgpuAdapterGetFeatureAtIndex):
- WebGPU/BindGroup.h:
- WebGPU/BindGroup.mm:
(WebGPU::BindGroup::setLabel):
(wgpuBindGroupSetLabel):
- WebGPU/BindGroupLayout.h:
- WebGPU/BindGroupLayout.mm:
(WebGPU::BindGroupLayout::setLabel):
(wgpuBindGroupLayoutSetLabel):
- WebGPU/Buffer.h:
- WebGPU/Buffer.mm:
(WebGPU::Buffer::setLabel):
(wgpuBufferSetLabel):
- WebGPU/CommandBuffer.h:
- WebGPU/CommandBuffer.mm:
(WebGPU::CommandBuffer::setLabel):
(wgpuCommandBufferSetLabel):
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::fillBuffer):
(WebGPU::CommandEncoder::setLabel):
(wgpuCommandEncoderFillBuffer):
(wgpuCommandEncoderSetLabel):
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::setLabel):
(wgpuComputePassEncoderSetLabel):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::setLabel):
(wgpuDeviceSetLabel):
- WebGPU/Instance.mm:
(wgpuGetProcAddress):
- WebGPU/PipelineLayout.h:
- WebGPU/PipelineLayout.mm:
(WebGPU::PipelineLayout::setLabel):
(wgpuPipelineLayoutSetLabel):
- WebGPU/QuerySet.h:
- WebGPU/QuerySet.mm:
(WebGPU::QuerySet::setLabel):
(wgpuQuerySetSetLabel):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(WebGPU::Queue::setLabel):
(wgpuQueueSetLabel):
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundle.mm:
(WebGPU::RenderBundle::setLabel):
(wgpuRenderBundleSetLabel):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::setLabel):
(wgpuRenderBundleEncoderSetLabel):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::setLabel):
(wgpuRenderPassEncoderSetLabel):
- WebGPU/Sampler.h:
- WebGPU/Sampler.mm:
(WebGPU::Sampler::setLabel):
(wgpuSamplerSetLabel):
- WebGPU/Texture.h:
- WebGPU/Texture.mm:
(WebGPU::Texture::setLabel):
(wgpuTextureSetLabel):
- WebGPU/TextureView.h:
- WebGPU/TextureView.mm:
(WebGPU::TextureView::setLabel):
(wgpuTextureViewSetLabel):
- WebGPU/WebGPUExt.h:
- 10:47 AM Changeset in webkit [285791] by
-
- 5 edits in trunk
Modal dialogs should make the root element unfocusable
https://bugs.webkit.org/show_bug.cgi?id=233099
Reviewed by Simon Fraser.
From https://html.spec.whatwg.org/multipage/interaction.html#inert,
A Document document is blocked by a modal dialog subject if subject is
the topmost dialog element in document's top layer. While document is
so blocked, every node that is connected to document, with the
exception of the subject element and its shadow-including descendants,
must be marked inert.
RenderStyle::effectiveInert() already matches this definition, Node::deprecatedIsInert() does not.
Main reason the removed check was there is to prevent the whole document from being inert to hit-testing, but with the RenderStyle
approach, we instead override effectiveInert to false for the modal dialog. Removing this check for focus is absolutely fine
however, since focusability isn't inherited (Node::deprecatedIsInert is only used for focus).
Tests added by this Chromium WPT: https://github.com/web-platform-tests/wpt/commit/0457111e7109ec3d9e575aa421b96d8c36ce2ae8
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable.html:
Source/WebCore:
- dom/Node.cpp:
(WebCore::Node::deprecatedIsInert const):
- 10:38 AM Changeset in webkit [285790] by
-
- 16 edits in trunk/Source
Attach IOHIDEvent timestamps to wheel events
https://bugs.webkit.org/show_bug.cgi?id=233051
Reviewed by Wenson Hsieh.
Source/WebCore:
On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.
- platform/PlatformWheelEvent.cpp:
(WebCore::PlatformWheelEvent::createFromGesture):
- platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::ioHIDEventTimestamp const):
- platform/mac/PlatformEventFactoryMac.h:
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::eventTimeStampSince1970):
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):
(WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder):
(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):
Source/WebCore/PAL:
Expose a few bits of SPI needed.
- pal/spi/cg/CoreGraphicsSPI.h:
- pal/spi/cocoa/IOKitSPI.h:
Source/WebKit:
On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.
- Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
- Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::WebWheelEvent):
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h:
(WebKit::WebWheelEvent::ioHIDEventTimestamp const):
- Shared/WebWheelEventCoalescer.cpp:
(WebKit::WebWheelEventCoalescer::coalesce):
- Shared/ios/WebIOSEventFactory.mm:
(WebIOSEventFactory::createWebWheelEvent):
- Shared/mac/NativeWebGestureEventMac.mm:
- Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebWheelEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):
- 10:33 AM Changeset in webkit [285789] by
-
- 96 edits15 adds16 deletes in trunk/Source/bmalloc
[libpas] update to 48d608bf31ba92f8059d2c76488f00c52aaca15a: changes to support universal isoheaps
https://bugs.webkit.org/show_bug.cgi?id=233094
Reviewed by Yusuke Suzuki.
This includes a bunch of changes to make it possible to use isoheaps universally:
- The bmalloc_heap API now supports isoheaped array allocations and isoheaped objects with flexible array members (i.e. flex).
- Array allocations are now byte-based, not count-based, by default. When I first wrote libpas, I was sure that it would be easier for everyone if array allocation was engineered to take the array length, and the allocator worked things out from there. But this doesn't work well when the rubber hits the road:
-> Array allocation sites already know the size in bytes, and often don't even have a convenient way
of passing the length to the allocator.
-> Performing the multiplication at the allocation site means we are multiplying by a constant rather
than multiplying by a variable (as the by-count array allocation sites were doing before).
-> C++ operator new[] takes the size, not the count (though this matters less, since operator new[]
isn't useful for isoheaps anyway).
- All allocation sites now have the fast path hacks that the intrinsic allocation fast path had. Specifically, they all now compile to something that has no stack frame and doesn't require PAC. The "slow" path is a tail call. Note that because that path isn't actually all that slow, it's called the "casual" path.
- Size class lookup tables can now be decommitted. This is accomplished using a thing called pas_expendable_memory.
- The status reporter can now report the type name of isoheaps. This relies on bmalloc_heap now using its own kind of type, rather than the generic libpas pas_simple_type, so that it can have a string. This change required corresponding changes in IsoHeap.h and bmalloc.cpp.
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/IsoHeap.h:
(bmalloc::api::IsoHeap::allocate):
(bmalloc::api::IsoHeap::tryAllocate):
(bmalloc::api::IsoHeap::provideHeap):
- bmalloc/bmalloc.cpp:
(bmalloc::api::mallocOutOfLine):
- libpas/.gitignore:
- libpas/CMakeLists.txt: Added.
- libpas/README: Added.
- libpas/clean.sh: Added.
- libpas/libpas.xcodeproj/project.pbxproj:
- libpas/src/libpas/bmalloc_heap.c:
(bmalloc_try_allocate_casual):
(bmalloc_allocate_casual):
(bmalloc_try_iso_allocate_casual):
(bmalloc_iso_allocate_casual):
(bmalloc_try_allocate_array_by_size_with_alignment_casual):
(bmalloc_allocate_array_by_size_with_alignment_casual):
(bmalloc_try_iso_allocate_array_by_size):
(bmalloc_iso_allocate_array_by_size):
(bmalloc_try_iso_allocate_zeroed_array_by_size):
(bmalloc_iso_allocate_zeroed_array_by_size):
(bmalloc_try_iso_allocate_array_by_size_with_alignment):
(bmalloc_iso_allocate_array_by_size_with_alignment):
(bmalloc_try_iso_reallocate_array_by_size):
(bmalloc_iso_reallocate_array_by_size):
(bmalloc_try_iso_allocate_array_by_count):
(bmalloc_iso_allocate_array_by_count):
(bmalloc_try_iso_allocate_array_by_count_with_alignment):
(bmalloc_iso_allocate_array_by_count_with_alignment):
(bmalloc_try_iso_reallocate_array_by_count):
(bmalloc_iso_reallocate_array_by_count):
(bmalloc_try_allocate_flex_with_alignment_casual):
(bmalloc_allocate_flex_with_alignment_casual):
(bmalloc_try_allocate_flex):
(bmalloc_allocate_flex):
(bmalloc_try_allocate_zeroed_flex):
(bmalloc_allocate_zeroed_flex):
(bmalloc_try_allocate_flex_with_alignment):
(bmalloc_allocate_flex_with_alignment):
(bmalloc_try_reallocate_flex):
(bmalloc_reallocate_flex):
(bmalloc_try_allocate_auxiliary_with_alignment_casual):
(bmalloc_allocate_auxiliary_with_alignment_casual):
(bmalloc_heap_ref_get_type_size):
(bmalloc_get_allocation_size):
(bmalloc_allocate_slow): Deleted.
(bmalloc_try_iso_allocate_array): Deleted.
(bmalloc_iso_allocate_array): Deleted.
(bmalloc_try_iso_allocate_array_with_alignment): Deleted.
(bmalloc_iso_allocate_array_with_alignment): Deleted.
- libpas/src/libpas/bmalloc_heap.h:
- libpas/src/libpas/bmalloc_heap_config.h:
- libpas/src/libpas/bmalloc_heap_inlines.h:
(bmalloc_try_allocate_inline):
(bmalloc_allocate_inline):
(bmalloc_try_iso_allocate_inline):
(bmalloc_iso_allocate_inline):
(bmalloc_try_iso_allocate_array_by_size_inline):
(bmalloc_try_iso_allocate_zeroed_array_by_size_inline):
(bmalloc_try_iso_allocate_array_by_size_with_alignment_inline):
(bmalloc_try_iso_allocate_array_by_count_inline):
(bmalloc_try_iso_allocate_array_by_count_with_alignment_inline):
(bmalloc_iso_allocate_array_by_size_inline):
(bmalloc_iso_allocate_zeroed_array_by_size_inline):
(bmalloc_iso_allocate_array_by_size_with_alignment_inline):
(bmalloc_iso_allocate_array_by_count_inline):
(bmalloc_iso_allocate_array_by_count_with_alignment_inline):
(bmalloc_try_iso_reallocate_array_by_size_inline):
(bmalloc_iso_reallocate_array_by_size_inline):
(bmalloc_try_iso_reallocate_array_by_count_inline):
(bmalloc_iso_reallocate_array_by_count_inline):
(bmalloc_try_allocate_flex_inline):
(bmalloc_allocate_flex_inline):
(bmalloc_try_allocate_zeroed_flex_inline):
(bmalloc_allocate_zeroed_flex_inline):
(bmalloc_try_allocate_flex_with_alignment_inline):
(bmalloc_allocate_flex_with_alignment_inline):
(bmalloc_try_reallocate_flex_inline):
(bmalloc_reallocate_flex_inline):
(bmalloc_try_allocate_auxiliary_inline):
(bmalloc_allocate_auxiliary_inline):
(bmalloc_try_allocate_auxiliary_with_alignment_inline):
(bmalloc_allocate_auxiliary_with_alignment_inline):
(bmalloc_try_iso_allocate_array_inline): Deleted.
(bmalloc_try_iso_allocate_array_with_alignment_inline): Deleted.
(bmalloc_iso_allocate_array_inline): Deleted.
(bmalloc_iso_allocate_array_with_alignment_inline): Deleted.
- libpas/src/libpas/bmalloc_heap_innards.h:
- libpas/src/libpas/bmalloc_heap_ref.h:
- libpas/src/libpas/bmalloc_type.c: Added.
(bmalloc_type_create):
(bmalloc_type_try_name_dump):
(bmalloc_type_name_dump):
(bmalloc_type_dump):
(bmalloc_type_as_heap_type_dump):
- libpas/src/libpas/bmalloc_type.h: Added.
(bmalloc_type_size):
(bmalloc_type_alignment):
(bmalloc_type_name):
(bmalloc_type_as_heap_type_get_type_size):
(bmalloc_type_as_heap_type_get_type_alignment):
- libpas/src/libpas/hotbit_heap_config.h:
- libpas/src/libpas/iso_heap.c:
(iso_heap_ref_construct):
(iso_try_allocate_array_by_count):
(iso_allocate_array_by_count):
(iso_try_allocate_array_by_count_zeroed):
(iso_allocate_array_by_count_zeroed):
(iso_try_reallocate_array_by_count):
(iso_reallocate_array_by_count):
(iso_primitive_heap_ref_construct):
(iso_try_allocate_array): Deleted.
(iso_allocate_array): Deleted.
(iso_try_allocate_array_zeroed): Deleted.
(iso_allocate_array_zeroed): Deleted.
(iso_try_reallocate_array): Deleted.
(iso_reallocate_array): Deleted.
- libpas/src/libpas/iso_heap.h:
- libpas/src/libpas/iso_heap_config.h:
- libpas/src/libpas/iso_heap_inlines.h:
(iso_try_allocate_inline):
(iso_allocate_inline):
(iso_try_allocate_array_by_count_inline):
(iso_allocate_array_by_count_inline):
(iso_try_allocate_array_by_count_zeroed_inline):
(iso_allocate_array_by_count_zeroed_inline):
(iso_try_reallocate_array_by_count_inline):
(iso_reallocate_array_by_count_inline):
(iso_try_allocate_array_inline): Deleted.
(iso_allocate_array_inline): Deleted.
(iso_try_allocate_array_zeroed_inline): Deleted.
(iso_allocate_array_zeroed_inline): Deleted.
(iso_try_reallocate_array_inline): Deleted.
(iso_reallocate_array_inline): Deleted.
- libpas/src/libpas/iso_heap_ref.h:
- libpas/src/libpas/iso_test_heap.c:
(iso_test_allocate):
(iso_test_allocate_array_by_count):
(iso_test_allocate_array): Deleted.
- libpas/src/libpas/iso_test_heap.h:
- libpas/src/libpas/iso_test_heap_config.h:
- libpas/src/libpas/jit_heap_config.c:
(jit_type_dump):
(jit_heap_config_dump_shared_page_directory_arg):
- libpas/src/libpas/jit_heap_config.h:
- libpas/src/libpas/minalign32_heap.c:
(minalign32_allocate):
(minalign32_allocate_array_by_count):
(minalign32_allocate_array): Deleted.
- libpas/src/libpas/minalign32_heap.h:
- libpas/src/libpas/minalign32_heap_config.h:
- libpas/src/libpas/pagesize64k_heap.c:
(pagesize64k_allocate):
(pagesize64k_allocate_array_by_count):
(pagesize64k_allocate_array): Deleted.
- libpas/src/libpas/pagesize64k_heap.h:
- libpas/src/libpas/pagesize64k_heap_config.h:
- libpas/src/libpas/pas_baseline_allocator_table.c:
(initialize):
- libpas/src/libpas/pas_basic_segregated_page_caches.h: Removed.
- libpas/src/libpas/pas_compact_expendable_memory.c: Added.
(pas_compact_expendable_memory_allocate):
(pas_compact_expendable_memory_commit_if_necessary):
(pas_compact_expendable_memory_scavenge):
- libpas/src/libpas/pas_compact_expendable_memory.h: Added.
(pas_compact_expendable_memory_note_use):
(pas_compact_expendable_memory_touch):
- libpas/src/libpas/pas_compact_skip_list_node_ptr.h: Removed.
- libpas/src/libpas/pas_compact_skip_list_node_ptr_ptr.h: Removed.
- libpas/src/libpas/pas_config.h:
- libpas/src/libpas/pas_count_lookup_mode.h: Removed.
- libpas/src/libpas/pas_designated_intrinsic_heap.c:
(set_up_range):
(pas_designated_intrinsic_heap_initialize):
- libpas/src/libpas/pas_designated_intrinsic_heap_inlines.h:
(pas_designated_index_result_get_allocator_index):
- libpas/src/libpas/pas_ensure_heap_with_page_caches.c:
(pas_ensure_heap_with_page_caches):
- libpas/src/libpas/pas_enumerate_segregated_heaps.c:
(pas_enumerate_segregated_heaps):
- libpas/src/libpas/pas_expendable_memory.c: Added.
(pas_expendable_memory_construct):
(pas_expendable_memory_try_allocate):
(pas_expendable_memory_allocate):
(pas_expendable_memory_commit_if_necessary):
(scavenge_impl):
(pas_expendable_memory_scavenge):
- libpas/src/libpas/pas_expendable_memory.h: Added.
(pas_expendable_memory_state_get_kind):
(pas_expendable_memory_state_get_version):
(pas_expendable_memory_state_create):
(pas_expendable_memory_state_with_kind):
(pas_expendable_memory_state_with_version):
(pas_expendable_memory_note_use_impl):
(pas_expendable_memory_note_use):
(pas_expendable_memory_num_pages):
(pas_expendable_memory_num_pages_in_use):
- libpas/src/libpas/pas_heap.c:
(pas_heap_reset_heap_ref):
(pas_heap_ensure_size_directory_for_size_slow):
(pas_heap_ensure_size_directory_for_count_slow): Deleted.
- libpas/src/libpas/pas_heap.h:
- libpas/src/libpas/pas_heap_config.h:
- libpas/src/libpas/pas_heap_config_inlines.h:
- libpas/src/libpas/pas_heap_config_utils.h:
- libpas/src/libpas/pas_heap_inlines.h:
(pas_heap_ensure_size_directory_for_size):
(pas_heap_ensure_size_directory_for_count): Deleted.
- libpas/src/libpas/pas_heap_kind.h:
(pas_heap_kind_get_string):
- libpas/src/libpas/pas_heap_ref_prefix.h:
- libpas/src/libpas/pas_internal_config.h:
- libpas/src/libpas/pas_intrinsic_heap_support.h:
- libpas/src/libpas/pas_large_expendable_memory.c: Added.
(allocate_new_large_expendable_memory):
(pas_large_expendable_memory_allocate):
(pas_large_expendable_memory_commit_if_necessary):
(pas_large_expendable_memory_scavenge):
- libpas/src/libpas/pas_large_expendable_memory.h: Added.
(pas_large_expendable_memory_payload):
(pas_large_expendable_memory_header_for_object):
(pas_large_expendable_memory_note_use):
(pas_large_expendable_memory_touch):
- libpas/src/libpas/pas_large_heap.c:
(allocate_impl):
- libpas/src/libpas/pas_local_allocator.c:
(pas_local_allocator_construct_unselected):
- libpas/src/libpas/pas_local_allocator.h:
- libpas/src/libpas/pas_local_allocator_config_kind.h:
(pas_local_allocator_config_kind_get_string):
- libpas/src/libpas/pas_local_allocator_inlines.h:
(pas_local_allocator_start_allocating_in_primordial_partial_view):
(pas_local_allocator_refill_with_known_config):
(pas_local_allocator_try_allocate_slow_impl):
(pas_local_allocator_try_allocate):
- libpas/src/libpas/pas_lock_free_read_hashtable.h: Removed.
- libpas/src/libpas/pas_object_size_mode.h: Removed.
- libpas/src/libpas/pas_page_malloc.c:
(pas_page_malloc_commit):
(decommit_impl):
(pas_page_malloc_decommit):
(pas_page_malloc_decommit_asymmetric):
- libpas/src/libpas/pas_page_malloc.h:
- libpas/src/libpas/pas_page_sharing_pool.c:
(pas_physical_page_sharing_pool_take_for_page_config):
- libpas/src/libpas/pas_redundant_local_allocator_node.c:
(pas_redundant_local_allocator_node_create):
- libpas/src/libpas/pas_scavenger.c:
(scavenger_thread_main):
(pas_scavenger_decommit_expendable_memory):
(pas_scavenger_run_synchronously_now):
(pas_scavenger_perform_synchronous_operation):
- libpas/src/libpas/pas_scavenger.h:
- libpas/src/libpas/pas_segregated_exclusive_view_inlines.h:
(pas_segregated_exclusive_view_note_eligibility):
- libpas/src/libpas/pas_segregated_heap.c:
(max_object_size_for_page_config):
(max_bitfit_object_size_for_heap_config):
(pas_segregated_heap_construct):
(pas_segregated_heap_get_cached_index_for_heap_type):
(pas_segregated_heap_cached_index_is_set):
(pas_segregated_heap_get_cached_index):
(pas_segregated_heap_index_is_cached_index_and_cached_index_is_set):
(pas_segregated_heap_index_is_cached_index_or_cached_index_is_unset):
(pas_segregated_heap_index_is_not_cached_index_and_cached_index_is_set):
(pas_segregated_heap_index_is_greater_than_cached_index_and_cached_index_is_set):
(pas_segregated_heap_index_is_greater_equal_cached_index_and_cached_index_is_set):
(pas_segregated_heap_size_directory_for_index_slow):
(pas_segregated_heap_medium_allocator_index_for_index):
(compute_small_index_upper_bound):
(ensure_size_lookup):
(size_directory_min_heap_compare):
(size_directory_min_heap_get_index):
(size_directory_min_heap_set_index):
(recompute_size_lookup):
(rematerialize_size_lookup_set_index_to_small_allocator_index):
(rematerialize_size_lookup_set_index_to_small_size_directory):
(rematerialize_size_lookup_set_medium_directory_tuple):
(rematerialize_size_lookup_if_necessary):
(pas_segregated_heap_ensure_allocator_index):
(compute_ideal_object_size):
(ensure_size_lookup_if_necessary):
(check_size_lookup_recomputation_did_become_not_all_good):
(check_size_lookup_recomputation_set_index_to_small_allocator_index):
(check_size_lookup_recomputation_set_index_to_small_size_directory):
(check_size_lookup_recomputation_set_medium_directory_tuple):
(check_size_lookup_recomputation):
(pas_segregated_heap_ensure_size_directory_for_size):
(max_count_for_page_config): Deleted.
(max_small_count_for_heap_config): Deleted.
(ensure_count_lookup): Deleted.
(ensure_count_lookup_if_necessary): Deleted.
(pas_segregated_heap_ensure_size_directory_for_count): Deleted.
- libpas/src/libpas/pas_segregated_heap.h:
(pas_segregated_heap_index_for_size):
(pas_segregated_heap_size_for_index):
(pas_segregated_heap_allocator_index_for_index_inline_only):
(pas_segregated_heap_allocator_index_for_index):
(pas_segregated_heap_allocator_index_for_size_inline_only):
(pas_segregated_heap_allocator_index_for_size):
(pas_segregated_heap_index_for_primitive_count): Deleted.
(pas_segregated_heap_primitive_count_for_index): Deleted.
(pas_segregated_heap_index_for_count): Deleted.
(pas_segregated_heap_count_for_index): Deleted.
(pas_segregated_heap_allocator_index_for_count_not_primitive): Deleted.
- libpas/src/libpas/pas_segregated_heap_inlines.h:
(pas_segregated_heap_size_directory_for_index):
(pas_segregated_heap_size_directory_for_size):
(pas_segregated_heap_touch_lookup_tables):
(pas_segregated_heap_size_directory_for_count): Deleted.
- libpas/src/libpas/pas_segregated_heap_page_sharing_mode.h: Removed.
- libpas/src/libpas/pas_segregated_page.c:
(pas_segregated_page_construct):
- libpas/src/libpas/pas_segregated_page_granule_use_count.h: Removed.
- libpas/src/libpas/pas_segregated_page_header_placement_mode.h: Removed.
- libpas/src/libpas/pas_segregated_shared_page_directory.c:
(take_last_empty_consider_view):
- libpas/src/libpas/pas_segregated_shared_page_directory.h:
- 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_create_tlc_view_cache):
(pas_segregated_size_directory_select_allocator_slow):
(pas_segregated_size_directory_get_allocator_from_tlc):
(pas_segregated_size_directory_dump_reference):
- libpas/src/libpas/pas_segregated_size_directory.h:
(pas_segregated_size_directory_decode_baseline_allocator_index):
(pas_segregated_size_directory_decode_min_index):
(pas_segregated_size_directory_encode_stuff):
(pas_segregated_size_directory_as_view):
(pas_segregated_size_directory_alignment):
(pas_segregated_size_directory_baseline_allocator_index):
(pas_segregated_size_directory_min_index):
(pas_segregated_size_directory_set_baseline_allocator_index):
(pas_segregated_size_directory_compare_and_swap_baseline_allocator_index_weak):
(pas_segregated_size_directory_set_min_index):
(pas_segregated_size_directory_has_tlc_allocator):
- libpas/src/libpas/pas_segregated_size_directory_inlines.h:
(pas_segregated_size_directory_select_allocator):
- libpas/src/libpas/pas_shared_handle_or_page.h: Removed.
- libpas/src/libpas/pas_shared_handle_or_page_inlines.h: Removed.
- libpas/src/libpas/pas_shared_page_directory_by_size.c:
(pas_shared_page_directory_by_size_get):
(pas_shared_page_directory_by_size_dump_directory_arg):
- libpas/src/libpas/pas_shared_page_directory_by_size.h:
- libpas/src/libpas/pas_simple_type.c: Added.
(pas_simple_type_dump):
(pas_simple_type_as_heap_type_dump):
- libpas/src/libpas/pas_simple_type.h:
- libpas/src/libpas/pas_size_lookup_mode.h: Added.
(pas_size_lookup_mode_get_string):
- libpas/src/libpas/pas_size_thunk.h: Removed.
- libpas/src/libpas/pas_skip_list.c: Removed.
- libpas/src/libpas/pas_skip_list.h: Removed.
- libpas/src/libpas/pas_skip_list_inlines.h: Removed.
- libpas/src/libpas/pas_status_reporter.c:
(pas_status_reporter_dump_segregated_shared_page_directory):
(pas_status_reporter_dump_heap):
(pas_status_reporter_dump_thread_local_caches):
(pas_status_reporter_dump_configuration):
(pas_status_reporter_dump_physical_page_sharing_pool):
(dump_expendable_memory):
(pas_status_reporter_dump_expendable_memories):
(pas_status_reporter_dump_everything):
- libpas/src/libpas/pas_status_reporter.h:
- libpas/src/libpas/pas_thread_local_cache.c:
(allocate_cache):
(pas_thread_local_cache_create):
(pas_thread_local_cache_get_local_allocator_slow):
(pas_thread_local_cache_get_local_allocator_if_can_set_cache_for_possibly_uninitialized_index_slow):
(stop_local_allocators_if_necessary_set_bit_callback):
(pas_thread_local_cache_for_all):
(pas_thread_local_cache_get_local_allocator_if_can_set_cache_slow): Deleted.
- libpas/src/libpas/pas_thread_local_cache.h:
(pas_thread_local_cache_get_local_allocator_direct_without_any_checks_whatsoever):
(pas_thread_local_cache_get_local_allocator_direct_for_initialization):
(pas_thread_local_cache_get_local_allocator_direct_unchecked):
(pas_thread_local_cache_get_local_allocator_direct):
(pas_thread_local_cache_get_local_allocator_for_possibly_uninitialized_but_not_unselected_index):
(pas_thread_local_cache_get_local_allocator_for_initialized_index):
(pas_thread_local_cache_get_local_allocator_for_possibly_uninitialized_index):
(pas_thread_local_cache_try_get_local_allocator_or_unselected_for_uninitialized_index):
(pas_thread_local_cache_try_get_local_allocator_for_possibly_uninitialized_but_not_unselected_index):
(pas_thread_local_cache_get_local_allocator_if_can_set_cache_for_possibly_uninitialized_index):
(pas_thread_local_cache_get_local_allocator_impl): Deleted.
(pas_thread_local_cache_get_local_allocator): Deleted.
(pas_thread_local_cache_try_get_local_allocator): Deleted.
(pas_thread_local_cache_get_local_allocator_if_can_set_cache): Deleted.
- libpas/src/libpas/pas_thread_local_cache_layout.c:
(pas_thread_local_cache_layout_add_node):
- libpas/src/libpas/pas_thread_local_cache_layout_node.c:
(pas_thread_local_cache_layout_node_construct):
(pas_thread_local_cache_layout_node_move):
(pas_thread_local_cache_layout_node_stop):
- libpas/src/libpas/pas_try_allocate.h:
(pas_try_allocate_impl_casual_case):
(pas_try_allocate_impl_inline_only):
(pas_try_allocate_impl_size_thunk): Deleted.
(pas_try_allocate_impl): Deleted.
- libpas/src/libpas/pas_try_allocate_array.h:
(pas_try_allocate_array_impl_casual_case_with_heap):
(pas_try_allocate_array_impl_inline_only_with_heap):
(pas_try_allocate_array_impl_inline_only):
(pas_try_allocate_array_impl): Deleted.
- libpas/src/libpas/pas_try_allocate_common.h:
(pas_try_allocate_compute_aligned_size):
(pas_try_allocate_common_impl_fast):
(pas_try_allocate_common_impl_slow):
(pas_try_allocate_common_impl):
- libpas/src/libpas/pas_try_allocate_intrinsic.h:
(pas_try_allocate_intrinsic_impl_casual_case):
(pas_try_allocate_intrinsic_impl_inline_only):
(pas_try_allocate_intrinsic_impl_medium_slow_case): Deleted.
- libpas/src/libpas/pas_try_allocate_primitive.h:
(pas_try_allocate_primitive_impl_casual_case):
(pas_try_allocate_primitive_impl_inline_only):
(pas_try_allocate_primitive_impl): Deleted.
- libpas/src/libpas/pas_try_reallocate.h:
(pas_try_allocate_for_reallocate_and_copy):
(pas_try_reallocate_table_segregated_case):
(pas_try_reallocate_table_bitfit_case):
(pas_try_reallocate):
(pas_try_reallocate_intrinsic_allocate_callback):
(pas_try_reallocate_intrinsic):
(pas_try_reallocate_single_allocate_callback):
(pas_try_reallocate_single):
(pas_try_reallocate_array_allocate_callback):
(pas_try_reallocate_array_by_size):
(pas_try_reallocate_array_by_count):
(pas_try_reallocate_primitive_allocate_callback):
(pas_try_reallocate_primitive):
(pas_try_reallocate_array): Deleted.
- libpas/src/libpas/pas_typed_allocation_result.h: Removed.
- libpas/src/libpas/pas_utility_heap.c:
- libpas/src/libpas/pas_utility_heap_config.c:
(pas_utility_heap_config_dump_shared_page_directory_arg):
- libpas/src/libpas/pas_utility_heap_config.h:
- libpas/src/libpas/pas_utils.c:
(pas_reallocation_did_fail):
- libpas/src/libpas/pas_utils.h:
(pas_compare_and_swap_uint8_weak):
- libpas/src/libpas/pas_utils_prefix.h:
- libpas/src/libpas/thingy_heap.c:
(thingy_try_allocate):
(thingy_try_allocate_zeroed):
(thingy_try_allocate_array):
(thingy_try_allocate_zeroed_array):
(thingy_try_reallocate_array):
- libpas/src/libpas/thingy_heap_config.h:
- libpas/src/test/ExpendableMemoryTests.cpp: Added.
(std::testPayloadImpl):
(std::forEachExpendableMemory):
(std::checkAllDecommitted):
(std::checkAllInUseCommitted):
(std::testSynchronousScavengingExpendsExpendableMemory):
(std::scavengerWillShutDown):
(std::testScavengerExpendsExpendableMemory):
(std::testSoManyHeaps):
(addExpendableMemoryTests):
- libpas/src/test/HeapRefAllocatorIndexTests.cpp: Added.
(addHeapRefAllocatorIndexTests):
- libpas/src/test/IsoHeapChaosTests.cpp:
(std::createIsoHeapRefForSize):
(std::createBmallocHeapRefForSize):
(std::testAllocationChaos):
(std::addIsoTests):
(std::addAllTests):
(addIsoHeapChaosTests):
- libpas/src/test/IsoHeapPageSharingTests.cpp:
(std::testLargeHeapTakesPagesFromCorrectLargeHeapWithFancyOrder):
(std::addAllTests):
- libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:
(std::addScavengerDependentTests):
- libpas/src/test/TSDTests.cpp:
(std::destructor):
- libpas/src/test/TestHarness.cpp:
(EnablePageBalancing::EnablePageBalancing):
(DisablePageBalancing::DisablePageBalancing):
(main):
- libpas/src/test/TestHarness.h:
- libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp:
(std::verifyHeapEmpty):
(std::createIsolatedHeapRef):
(std::addSmallHeapTests):
- 12:45 AM Changeset in webkit [285788] by
-
- 4 edits in trunk
Prevent fused multiply add during ParseInt
https://bugs.webkit.org/show_bug.cgi?id=232951
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-11-14
Reviewed by Yusuke Suzuki.
When parsing the string in parseInt, gcc can wrongfully generate
a fused multiply-add instruction, causing the conversion to be wrong
for some high values. An add followed by a multiply gives the correct
result and it is the code generated most of the times.
This patch adds a volatile qualifier to the number variable, so the
compiler doesn't try to optimize it, and enables a failing test on
mips.
Alternative solutions that I tried but gcc seems to ignore: #pragma
STDC FP_CONTRACT OFF, compiling with -ffp-contract=off, and setting function
attributes attribute((optimize("fp-contract=off"))) and
attribute((optimize("-ffp-contract=off"))), so volative seems to be
a good compromise.
The issue was found when cross compiling to mips with gcc 8.4.0 and
options -ffp-contract=off -mmadd4.
JSTests:
- ChakraCore.yaml:
Source/JavaScriptCore:
- runtime/ParseInt.h:
(JSC::parseInt):