Timeline
Oct 24, 2021:
- 11:47 PM Changeset in webkit [284772] by
-
- 4 edits in trunk/Source/WebCore
ImageBitmap should report its memory cost
https://bugs.webkit.org/show_bug.cgi?id=187964
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-24
Reviewed by Simon Fraser.
Add memory cost reporting for ImageBitmap. In order to avoid storing a lock, computing the
memory cost many times and querying the thread-unsafe image buffer, compute it only when the
image buffer updates and cache the value.
It is unclear how to test this with current infrastructure.
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::ImageBitmap):
(WebCore::ImageBitmap::takeImageBitmapBacking):
(WebCore::ImageBitmap::updateMemoryCost):
(WebCore::ImageBitmap::memoryCost const):
- html/ImageBitmap.h:
- html/ImageBitmap.idl:
- 7:48 PM Changeset in webkit [284771] by
-
- 2 edits in trunk/Source/WebCore
[GLIB] REGRESSION(r284670): Tentative LTS build fix
Unreviewed build fix.
- platform/glib/LowPowerModeNotifierGLib.cpp:
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
- 5:04 PM Changeset in webkit [284770] by
-
- 3 edits in trunk/Source/WebCore
Fix typo in MediaPlayerPrivateAVFoundationObjC::updateVideoTracks()
https://bugs.webkit.org/show_bug.cgi?id=232194
Reviewed by Darin Adler.
Reset video tracks' properties when video tracks are changing rather
than the audio ones.
There should be no observable changes, resetting the audio track properties
would have been a no-op as AudioTrackPrivateAVFObjC is just a wrapper around
AVPlayerItemTrack and properties are kept in sync thorough playback.
Not calling resetPropertiesFromTrack on the video track wouldn't have mattered
as the operation is called when the track is constructed above in the
determineChangedTracksFromNewTracksAndOldItems method.
So this code only improves readability, and could be removed entirely.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
- platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
- 3:28 PM Changeset in webkit [284769] by
-
- 19 edits in trunk/Source/WebCore
AX: AccessibilityObject::m_haveChildren and AXCoreObject::hasChildren() are misleadingly named
https://bugs.webkit.org/show_bug.cgi?id=232130
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-24
Reviewed by Chris Fleizach.
The names of
AccessibilityObject::m_haveChildrenandAXCoreObject::hasChildren()
imply that the given object has one or more children. However, what these
really indicate is whether the object has tried to initialize its children.
Bothm_haveChildrenandhasChildren()can be true for objects that have no children,
which is confusing.
This patch:
- Renames
m_haveChildrentom_childrenInitializedandhasChildren()tochildrenInitialized().
- Removes
AXPropertyName::HasChildrenrather than renaming it because isolated object children are always initialized.
- Fixes a bug in
AccessibilityRenderObject::updateRoleAfterChildrenCreationcaused by the poor names (we intended to change the role if there were no children, not if!hasChildren()).
- accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addChildren):
- accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::addChildren):
(WebCore::AccessibilityListBox::selectedChildren):
(WebCore::AccessibilityListBox::visibleChildren):
- accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::addChildren):
- accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren):
(WebCore::AccessibilityMenuListPopup::childrenChanged):
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::addChildren):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateChildrenIfNecessary):
(WebCore::AccessibilityObject::clearChildren):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::isDescendantOfObject const):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addCanvasChildren):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
(WebCore::AccessibilityRenderObject::addChildren):
(WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
- accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addChildren):
- accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::addChildren):
- accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
(WebCore::AccessibilitySpinButton::addChildren):
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
- accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::addChildren):
- accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::addChildren):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
Stop setting
AXPropertyName::HasChildrenbecause it no longer exists.
(WebCore::AXIsolatedObject::initializeAttributeData):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
Delete
AXPropertyName::HasChildren.
- 1:57 PM Changeset in webkit [284768] by
-
- 3 edits in trunk/Source/WebKit
RemoteRenderingBackend should not send IPC in the middle of destruction
https://bugs.webkit.org/show_bug.cgi?id=232179
Reviewed by Darin Adler.
Make a couple of minor adjustments to RemoteRenderingBackend (see below for more details). This is necessary in
order to avoid flaky crashes after fixing bug #232113, after which the RemoteRenderingBackend will no longer be
leaked in the GPU process.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::startListeningForIPC):
(WebKit::RemoteRenderingBackend::stopListeningForIPC):
(WebKit::RemoteRenderingBackend::didCreateImageBufferBackend):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend): Deleted.
Move logic to flush remaining incoming IPC messages in the GPU process out of the destructor, and into
stopListeningForIPC()instead. This is because the act of processing certain stream IPC messages (such as
CreateImageBuffer or FlushContext) may cause RemoteRenderingBackend to try and send IPC back to the web process.
However, if RemoteRenderingBackend is in the middle of destruction, it will crash when attempting to do so (when
attempting to call into IPC::MessageSender).
To avoid this, we need to do this work earlier, after we've already stopped listening for further IPC messages.
- GPUProcess/graphics/RemoteRenderingBackend.h:
Turn
m_remoteDisplayListsinto a regular hash map containing RemoteDisplayListRecorders by their process-
qualified rendering resource identifiers. Since this map may be modified from different threads, we (1) don't
want to be using weak pointers here, and (2) need to ensure that access to this table is guarded behind a lock.
To avoid reference cycles, entries in this table are cleared out when the remote image buffer corresponding to
each RemoteDisplayListRecorder is released in the GPU process.
- 1:43 PM Changeset in webkit [284767] by
-
- 2 edits in trunk/Source/WebCore
The code decoding std::optional<ImagePaintingOptions> can't be compiled by PlayStation due to the ImagePaintingOptions template constructor
https://bugs.webkit.org/show_bug.cgi?id=231980
<rdar://problem/84478389>
Reviewed by Darin Adler.
r284566 didn't actually fix the problem. The problem was that the
first template argument of ImagePaintingOptions template construct
can instantiated with std::optional<ImagePaintingOptions>. It
should be a type of that setOption can take.
- platform/graphics/ImagePaintingOptions.h: Added a template
variable isOptionType, and use it for SFINAE.
- 1:39 PM Changeset in webkit [284766] by
-
- 6 edits2 adds in trunk
REGRESSION (iOS 15): Safari shows zoom callout even if -webkit-user-select is none
https://bugs.webkit.org/show_bug.cgi?id=231161
rdar://83863266
Reviewed by Darin Adler.
Source/WebKit:
Make several minor tweaks to prevent the text interaction assistant's loupe gesture from beginning when long
pressing inside content with-webkit-user-select: none;. Importantly, this prevents both the text
interaction's haptic feedback and the text selection magnifier UI (introduced in iOS 15) from showing up. See
comments below for more details.
Test: editing/selection/ios/do-not-allow-text-selection-in-user-select-none.html
- Shared/ios/InteractionInformationAtPosition.h:
(WebKit::InteractionInformationAtPosition::isSelectable const):
Add a helper method to return whether the
selectabilityflag is equal toSelectable, and use this in places
where we current check theisSelectableflag.
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Break the current
isSelectableflag out into different enum types, which enumerate the reasons why we might
need to treat hit-tested content as non-user-selectable. Importantly, this allows us to only early return inside
-textInteractionGesture:shouldBeginAtPoint:below if the element has an explicit-webkit-user-select: none;,
and not because of the other reasons (i.e. large element bounds or the fact that we're long pressing editable
text while not editing).
This nuance is important in order to continue allowing the loupe gesture (which manifests as a floating caret)
to begin when long pressing inside a focused a text field.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
Return NO here in the case where we're recognizing a loupe gesture (i.e. long press) inside content with
-webkit-user-select: none;(by consulting the newselectabilityenumeration). This allows us to prevent both
haptic feedback as well as the new magnifier UI from triggering when long pressing inside content that has
explicitly disabled text selection.
(-[WKContentView closestPositionToPoint:]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionPositionInformation):
(WebKit::WebPage::positionInformation):
Additionally populate the
selectabilityflag even when long pressing inside images and links. Instead of
putting the call toselectionPositionInformationbehind theisLink/isImagecheck, move that condition into
selectionPositionInformationin the form of an early return, and always populateselectabilityin either
case.
LayoutTests:
See Source/WebKit/ChangeLog for more details.
- editing/selection/ios/do-not-allow-text-selection-in-user-select-none-expected.txt: Added.
- editing/selection/ios/do-not-allow-text-selection-in-user-select-none.html: Added.
- 11:24 AM Changeset in webkit [284765] by
-
- 2 edits in trunk/Tools
REGRESSION(r282686) [GTK] Tests are flaky due to spurious "MainFrameView: mouseEnteredContentArea" messages in the log
https://bugs.webkit.org/show_bug.cgi?id=232142
Add MockScrollAnimatorEnabled to the list of preferences to reset
between tests in TestOptions.cpp.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-24
Reviewed by Carlos Garcia Campos.
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
- 11:22 AM Changeset in webkit [284764] by
-
- 4 edits in trunk/Tools
Add an ImageDiff option to print out WPT-style pixel differences
https://bugs.webkit.org/show_bug.cgi?id=232212
Reviewed by NOBODY (OOPS!).
When passed
--difference, ImageDiff will compute and print out the "maxDifference=;totalPixels="
values documented at https://web-platform-tests.org/writing-tests/reftests.html. With these values,
there is no built-in tolerance as there is with the legacy difference computation.
Rename variables related to the legacy computation.
- ImageDiff/ImageDiff.cpp:
(processImages):
(main):
- ImageDiff/PlatformImage.cpp:
(ImageDiff::PlatformImage::difference):
- ImageDiff/PlatformImage.h:
- 11:13 AM Changeset in webkit [284763] by
-
- 10 edits in trunk/Source
[Cocoa] Adopt bridge_cast and makeVector in a few more places, including cases where adoptCF/NS was used incorrectly
https://bugs.webkit.org/show_bug.cgi?id=232200
Reviewed by Anders Carlsson.
Source/WebCore:
- platform/cocoa/SharedBufferCocoa.mm:
(WebCore::SharedBuffer::create): Use bridge_cast.
(WebCore::SharedBuffer::append): Ditto.
(WebCore::SharedBuffer::createNSData const): Ditto. Here we are replacing
a leakRef/adoptNS pair, so this fixes an ARC incompatibility.
(WebCore::SharedBuffer::createCFData const): Ditto. Here we are replacing
a leakRef/adoptCF pair, so this fixes an ARC incompatibility.
(WebCore::SharedBuffer::createFromReadingFile): Tweaked coding style.
- platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::parseStringArrayFromDictionaryToUInt16Vector): Use dynamic_cf_cast,
dynamic_objc_cast, and makeVector to reduce code without behavior changes.
- platform/mac/PasteboardWriter.mm:
(WebCore::toUTI): Use bridge_cast.
(WebCore::toUTIUnlessAlreadyUTI): Use bridge_cast after doing adoptCF
rather than first casting and then doing an adoptNS, relying on it doing the
correct thing for a CF object. This fixes an ARC incompatibility.
(WebCore::createPasteboardWriter): Ditto.
Source/WebKit:
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(-[WKSecureCodingURLWrapper encodeWithCoder:]): Use bridge_cast.
(-[WKSecureCodingURLWrapper initWithCoder:]): Use bridge_cast
after calling adoptCF rather than first doing a bridging cast and
then doing adoptNS and relying on it correctly adopting a CF object.
This fixes an ARC incompatibility.
(IPC::encodeDataInternal): Use bridge_cast.
(IPC::decodeDataInternal): Use bridge_cast/WTFMove instead of
adoptNS/cast/leakRef. This fixes an ARC incompatibility
(IPC::encodeDateInternal): Use bridge_cast.
(IPC::decodeDateInternal): Use bridge_cast/WTFMove as above.
(IPC::encodeNumberInternal): Use bridge_cast.
(IPC::decodeNumberInternal): Use bridge_cast/WTFMove as above.
(IPC::decodeSecureCodingInternal): Use bridge_cast.
(IPC::encodeStringInternal): Use bridge_cast.
(IPC::decodeStringInternal): Use bridge_cast/WTFMove as above.
(IPC::encodeURLInternal): Use bridge_cast.
(IPC::decodeURLInternal): Use bridge_cast/WTFMove as above.
- UIProcess/API/Cocoa/WKConnection.mm:
(didReceiveMessage): Use bridge_cast and remove unneeded use of
RetainPtr/get on the body.
- UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::pluginPathsInDirectory): Use bridge_cast
and makeVectort.
Source/WTF:
- wtf/cocoa/URLCocoa.mm:
(WTF::URL::URL): Use bridge_cast.
(WTF::URL::createCFURL const): Ditto, using the RetainPtr version to avoid
retain count churn.
- 10:47 AM Changeset in webkit [284762] by
-
- 5 edits in trunk/Tools
Allow ImageDiff to read from files
https://bugs.webkit.org/show_bug.cgi?id=232201
Reviewed by Darin Adler.
For improved hackability when working on pixel tolerance, allow ImageDiff to read from
files by adding support for reading two file path arguments.
Also add some nice --help output, and preliminary support for --verbose.
- ImageDiff/ImageDiff.cpp:
(processImages):
(main):
- ImageDiff/PlatformImage.h:
- ImageDiff/cairo/PlatformImageCairo.cpp:
(ImageDiff::PlatformImage::createFromFile):
- ImageDiff/cg/PlatformImageCG.cpp:
(ImageDiff::PlatformImage::createFromFile):
- 10:37 AM Changeset in webkit [284761] by
-
- 14 edits4 adds in trunk
Assertions in IDBTransaction::request*() methods fail on cross-realm methods
https://bugs.webkit.org/show_bug.cgi?id=230128
Reviewed by Sihui Liu.
LayoutTests/imported/w3c:
- web-platform-tests/IndexedDB/idbindex-cross-realm-methods-expected.txt: Added.
- web-platform-tests/IndexedDB/idbindex-cross-realm-methods.html: Added.
- web-platform-tests/IndexedDB/idbobjectstore-cross-realm-methods-expected.txt: Added.
- web-platform-tests/IndexedDB/idbobjectstore-cross-realm-methods.html: Added.
Source/WebCore:
Except when used with constructors, [CallWith=GlobalObject] WebIDL attribute passes
_current_ global object [1], one that the function was created in.
A method from another realm has different ScriptExecutionContext than the IDBTransaction,
and it's fine: function's global object is used only for IDBKey parsing and structure
cloning as per spec [2].
This patch removes incorrect assertions, fixing IDBObjectStore / IDBIndex cross-realm
methods not to crash --debug build, and removes now unused JSGlobalObject parameters.
[1] https://html.spec.whatwg.org/multipage/webappapis.html#concept-current-everything
[2] https://www.w3.org/TR/IndexedDB/#ref-for-retrieve-a-value-from-an-object-store
Tests: imported/w3c/web-platform-tests/IndexedDB/idbindex-cross-realm-methods.html
imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-cross-realm-methods.html
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::deleteFunction):
- Modules/indexeddb/IDBCursor.h:
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::doOpenCursor):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::doOpenKeyCursor):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::doGetAll):
(WebCore::IDBIndex::getAll):
(WebCore::IDBIndex::doGetAllKeys):
(WebCore::IDBIndex::getAllKeys):
- Modules/indexeddb/IDBIndex.h:
- Modules/indexeddb/IDBIndex.idl:
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::doOpenCursor):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::doOpenKeyCursor):
(WebCore::IDBObjectStore::openKeyCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::getKey):
(WebCore::IDBObjectStore::putOrAdd):
Use IDBObjectStore's context instead of _current_ global object for private browsing
check as per recommendation for spec authors [1]. This doesn't seem to be observable.
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):
(WebCore::IDBObjectStore::doGetAll):
(WebCore::IDBObjectStore::getAll):
(WebCore::IDBObjectStore::doGetAllKeys):
(WebCore::IDBObjectStore::getAllKeys):
- Modules/indexeddb/IDBObjectStore.h:
- Modules/indexeddb/IDBObjectStore.idl:
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):
- Modules/indexeddb/IDBTransaction.h:
- inspector/agents/InspectorIndexedDBAgent.cpp:
- 10:14 AM Changeset in webkit [284760] by
-
- 22 edits in trunk/Source/WebCore
AX: Any addition of children should funnel through AccessibilityObject::addChild
https://bugs.webkit.org/show_bug.cgi?id=231914
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-24
Reviewed by Chris Fleizach.
All addition of children now goes through
AccessibilityObject::addChild. This is good for two reasons:
- It ensures we aren't inserting ignored elements into the tree.
insertChild(downstream ofaddChild) checks this. Prior to this
patch, there were cases where we could insert ignored children into the
tree because no check was made.
- We can reliably set state on the child based on the state of the
parent at insertion time. For example, children can set a flag if
any of their ancestors have an application or document role, which can
be useful for some AX clients.
- accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addChildren):
- accessibility/AccessibilityLabel.cpp:
(WebCore::AccessibilityLabel::insertChild):
Add DescendIfIgnored parameter.
- accessibility/AccessibilityLabel.h:
- accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::addChildren):
- accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::addChildren):
- accessibility/AccessibilityMenuListOption.cpp:
(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
(WebCore::AccessibilityMenuListOption::isVisible const):
(WebCore::AccessibilityMenuListOption::elementRect const):
- accessibility/AccessibilityMenuListOption.h:
(WebCore::AccessibilityMenuListOption::setParent):
(WebCore::AccessibilityMenuListOption::parentObject const):
Add missingparentObject(and correspondingsetParent) methods.
Prior to this patch, these objects always returnednullptrfrom
theAccessibilityObject::parentObject().
- accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren):
- accessibility/AccessibilityObject.cpp:
(WebCore::isTableComponent): Added.
(WebCore::AccessibilityObject::insertChild):
(WebCore::AccessibilityObject::addChild):
Add DescendIfIgnored::{Yes, No} to control whether or not
these functions descend to and add the child's children if the given
child is ignored.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
- accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addChildScrollbar):
- accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::addChildren):
- accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::addChildren):
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::addTableCellChild):
- accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::addChildren):
- accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::addChildren):
- accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::addChildren):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::addChild):
(WebCore::AXIsolatedObject::insertChild):
Add DescendIfIgnored parameter.
- accessibility/isolatedtree/AXIsolatedObject.h:
- 9:53 AM Changeset in webkit [284759] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Enable the modules verifier for WebKitLegacy in Apple internal when using a new enough Xcode
https://bugs.webkit.org/show_bug.cgi?id=232190
Patch by Ian Anderson <iana@apple.com> on 2021-10-24
Reviewed by David Kilzer.
Add WK_XCODE_VERSION_BEFORE_13_1 build settings to WebKitLegacy and then
use them to enable the modules verifier in Xcode 13.1 and later.
- Configurations/Base.xcconfig:
- Configurations/WebKitLegacy.xcconfig:
- 9:01 AM Changeset in webkit [284758] by
-
- 18 edits5 adds in trunk
document.open() and friends use incorrect document as a source for reseted document's URL
https://bugs.webkit.org/show_bug.cgi?id=230131
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-same-origin-domain.sub-expected.txt:
- web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/url-entry-document-incumbent-frame.html: Added.
- web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window-expected.txt: Added.
- web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window.html: Added.
- web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window.js: Added.
Source/WebCore:
With this patch, Document's open() / write() / writeln() methods receive entry global
object's document [1] as an argument, which is used to perform same-origin security check
and to set the URL of reseted document from. Aligns WebKit with Blink and Gecko.
Instead of maintaining consistency with FirstWindow, EntryDocument is named to match
the spec and because it's not always the "first" (topmost) document, but rather a document
of closest <script> or inline event handler.
ResponsibleDocument is removed because it's now unused and, in terms of implementation,
a poor man's IncumbentWindow. Also, the spec describes different concept by that name [2].
[1] https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#opening-the-input-stream:entry-global-object
[2] https://html.spec.whatwg.org/multipage/webappapis.html#responsible-document
Tests: http/tests/security/aboutBlank/security-context-grandchildren-lexical.html
http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html
http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html
imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-entry-document-sync-call.window.html
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::responsibleDocument): Deleted.
- bindings/js/JSDOMWindowBase.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallWith):
- bindings/scripts/IDLAttributes.json:
- dom/Document+HTML.idl:
- dom/Document.cpp:
(WebCore::Document::open):
(WebCore::Document::write):
(WebCore::Document::writeln):
- dom/Document.h:
LayoutTests:
- http/tests/security/aboutBlank/security-context-grandchildren-lexical.html:
- http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html:
- http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html:
Tweak javascript: URLs to evaluate as
undefinedso the tests could be run in Firefox.
- http/tests/security/aboutBlank/security-context-grandchildren-lexical-expected.txt:
- http/tests/security/aboutBlank/security-context-grandchildren-write-lexical-expected.txt:
- http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical-expected.txt:
Align expectations with Blink and Gecko.
- http/tests/security/resources/parent-document-open.html: Added.
- http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
The test relied on behavior that wasn't spec-compliant, causing timeouts once document.open() is fixed.
This patch preserves the test semantics of calling document.open() with iframe's global object.
Similar Blink bug: crbug.com/579493.
- 8:32 AM Changeset in webkit [284757] by
-
- 3 edits1 add in trunk
InternalFunction::createSubclassStructure() should use prototype's global object
https://bugs.webkit.org/show_bug.cgi?id=231874
Patch by Alexey Shvayka <ashvayka@apple.com> on 2021-10-24
Reviewed by Yusuke Suzuki.
JSTests:
- stress/internal-function-subclass-structure-realm.js: Added.
Source/JavaScriptCore:
In case NewTarget has a cross-realm "prototype" object, even though the instance
structure is created with correct Prototype, it's m_globalObject is of NewTarget's
realm instead of prototype's.
That is observable in various places, including when calling CustomAccessor, fast paths
for iteration protocol / collection constructors, isHavingABadTime() handling etc.
This patch fixes structure's global object to be correct: per spec [1], we fallback to
NewTarget's realm only if "prototype" is a primitive.
[1]: https://tc39.es/ecma262/#sec-getprototypefromconstructor (step 3.b)
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::createSubclassStructure):
- 8:18 AM Changeset in webkit [284756] by
-
- 2 edits in trunk
Add my GitHub username to contributors.json and update credentials
Unreviewed.
- metadata/contributors.json:
- 7:50 AM Changeset in webkit [284755] by
-
- 2 edits in trunk/Source/WebCore
[css-contain] Support contain:style for counters
https://bugs.webkit.org/show_bug.cgi?id=226458
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-24
Reviewed by Antti Koivisto.
Remove unneeded logic from r284642 change.
- rendering/RenderCounter.cpp:
(WebCore::previousInPreOrder):
Oct 23, 2021:
- 9:31 PM Changeset in webkit [284754] by
-
- 3 edits2 adds in trunk
Null check in traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=230704
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-23
Reviewed by Wenson Hsieh.
Source/WebCore:
Pass startNode by value instead of by pointer to
traverseNodesForSerialization.
Test: editing/pasteboard/copy-with-shadow-tree-crash.html
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
LayoutTests:
- editing/pasteboard/copy-with-shadow-tree-crash-expected.txt: Added.
- editing/pasteboard/copy-with-shadow-tree-crash.html: Added.
- 8:02 PM Changeset in webkit [284753] by
-
- 4 edits in trunk/Source
Addressing post-commit review (r284744).
Source/WebCore:
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::midWordBreak):
Source/WTF:
- wtf/unicode/CharacterNames.h:
- 7:56 PM Changeset in webkit [284752] by
-
- 8 edits in trunk/LayoutTests
LayoutTests/imported/w3c:
Tweak test tolerance
https://bugs.webkit.org/show_bug.cgi?id=231959
<rdar://problem/84417651>
Unreviewed.
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html:
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY.html:
LayoutTests:
Update WPT test tolerance and mark some failures as simulator-only
https://bugs.webkit.org/show_bug.cgi?id=231959
<rdar://problem/84417651>
Unreviewed test gardening.
The ipad failures are really iPad simulator failures.
- platform/ios-simulator/TestExpectations:
- platform/ipad/TestExpectations:
- platform/mac/TestExpectations:
- 5:47 PM Changeset in webkit [284751] by
-
- 48 edits14 moves12 adds in trunk/JSTests
update test262
https://bugs.webkit.org/show_bug.cgi?id=232005
Patch by Phillip Mates <Phillip Mates> on 2021-10-23
Reviewed by Yusuke Suzuki.
- test262/expectations.yaml:
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_large-typed-array.js:
(concatTypedArray):
- test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_small-typed-array.js:
(concatTypedArray):
- test262/test/built-ins/Array/prototype/copyWithin/non-negative-target-and-start.js:
- test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-49.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-2.js:
- test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-available-properties.js: Added.
- test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js: Added.
(const.remainingNames.names.filter.name.esNonConfigValues.includes):
(hasOwn.call):
- test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-orginary-object.js: Added.
- test262/test/built-ins/ShadowRealm/prototype/evaluate/throws-error-from-ctor-realm.js: Added.
- test262/test/built-ins/ShadowRealm/prototype/evaluate/validates-realm-object.js:
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
(checkArgWrapperFn.realm.evaluate.string_appeared_here.assert.sameValue.checkArgWrapperFn):
- test262/test/built-ins/ShadowRealm/prototype/importValue/not-constructor.js:
- test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
- test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/basic.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-de-DE.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-en-US.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ja-JP.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ko-KR.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-zh-TW.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-de-DE.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-en-US.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ja-JP.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ko-KR.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-zh-TW.js:
- test262/test/intl402/Temporal/Instant/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/Instant/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js.
- test262/test/language/computed-property-names/basics/number.js:
- test262/test/language/computed-property-names/basics/string.js:
- test262/test/language/computed-property-names/basics/symbol.js:
- test262/test/language/computed-property-names/class/method/generator.js:
- test262/test/language/computed-property-names/class/method/number.js:
- test262/test/language/computed-property-names/class/method/string.js:
- test262/test/language/computed-property-names/class/method/symbol.js:
- test262/test/language/computed-property-names/object/method/generator.js:
- test262/test/language/computed-property-names/object/method/number.js:
- test262/test/language/computed-property-names/object/method/string.js:
- test262/test/language/computed-property-names/object/method/symbol.js:
- test262/test/language/computed-property-names/to-name-side-effects/numbers-object.js:
- test262/test/language/computed-property-names/to-name-side-effects/object.js:
- test262/test/language/identifiers/part-unicode-14.0.0-escaped.js: Added.
- test262/test/language/identifiers/part-unicode-14.0.0.js: Added.
- test262/test/language/identifiers/start-unicode-14.0.0-escaped.js: Added.
- test262/test/language/identifiers/start-unicode-14.0.0.js: Added.
- test262/test/language/rest-parameters/arrow-function.js:
- test262/test/language/rest-parameters/no-alias-arguments.js:
(f):
- test262/test/language/rest-parameters/with-new-target.js:
(Base):
(Child):
- test262/test/language/statements/class/definition/fn-length-static-precedence-order.js:
- test262/test/language/statements/class/definition/fn-name-static-precedence-order.js:
- test262/test/language/statements/class/static-init-arguments-functions.js:
- test262/test/language/statements/class/static-init-arguments-methods.js:
- test262/test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js:
- test262/test/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js:
- test262/test262-Revision.txt:
- 4:58 PM Changeset in webkit [284750] by
-
- 2 edits in trunk/Source/WebKit
Disable PiP when HAVE(UIKIT_WEBKIT_INTERNALS)
https://bugs.webkit.org/show_bug.cgi?id=232206
rdar://84516632
Reviewed by Tim Horton.
In preparation for moving to AVPictureInPictureController, disable
PiP when HAVE(UIKIT_WEBKIT_INTERNALS) is true so that we are
no longer creating an AVPlayerViewController. The rationale for the
move is to use API rather than SPI, and this will allow changes to
be made to AVPlayerViewController in this special configuration.
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::supportsVideoFullscreen const): Only support regular
fullscreen, not PiP.
(WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const): Don't support
"video fullscreen standby", which is another name for PiP.
- 3:26 PM Changeset in webkit [284749] by
-
- 19 edits2 adds in trunk
Add support for rel="noopener/noreferrer" on <form> elements
https://bugs.webkit.org/show_bug.cgi?id=232170
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing.
- web-platform-tests/html/semantics/forms/form-submission-target/rel-base-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-button-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-form-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-input-target-expected.txt:
Source/WebCore:
Add support for rel="opener/noopener/noreferrer" on <form> elements:
- https://html.spec.whatwg.org/multipage/links.html#get-an-element's-noopener
- https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-submission-algorithm:get-an-element's-noopener
- https://html.spec.whatwg.org/multipage/forms.html#dom-form-rel
- https://html.spec.whatwg.org/multipage/links.html#linkTypes
This patch also adds support for the rel and relList attributes on <form>.
Test: fast/forms/form-relList.html
- html/HTMLFormElement.cpp:
(WebCore::parseFormRelAttributes):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::parseAttribute):
(WebCore::HTMLFormElement::relList):
- html/HTMLFormElement.h:
- html/HTMLFormElement.idl:
- loader/FormSubmission.h:
(WebCore::FormSubmission::newFrameOpenerPolicy const):
(WebCore::FormSubmission::setNewFrameOpenerPolicy):
(WebCore::FormSubmission::referrerPolicy const):
(WebCore::FormSubmission::setReferrerPolicy):
- loader/NavigationScheduler.cpp:
LayoutTests:
- fast/forms/form-relList-expected.txt: Added.
- fast/forms/form-relList.html: Added.
Add test coverage for the new form.relList attribute.
- http/tests/navigation/resources/target-blank-opener-post-window.py:
- http/tests/navigation/target-blank-opener-post-expected.txt:
- http/tests/navigation/target-blank-opener-post.html:
Update existing layout test to reflect behavior change.
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
Rebaseline WPT tests now that more checks are passing.
- 2:35 PM Changeset in webkit [284748] by
-
- 8 edits1 add3 deletes in trunk
[WTF] Replace current LLVM flang's Int128 with abseil-cpp's Int128
https://bugs.webkit.org/show_bug.cgi?id=232129
Reviewed by Darin Adler.
Source/WTF:
We found that flang's signed Int128 implementation is not tested,
and it has several issues about sign extension and division.
Instead, we import abseil-cpp[1]'s int128 implementation.
abseil-cpp is more battle-tested, and abseil is already used
in WebKit too (ANGLE and libwebrtc use abseil-cpp as their utility
library).
For Apple readers, abseil-cpp for WebKit is approved in OSS-351.
[1]: https://github.com/abseil/abseil-cpp
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Int128.cpp: Added.
(WTF::UInt128Impl::UInt128Impl):
(WTF::operator/):
(WTF::operator%):
(WTF::operator<<):
(WTF::Int128Impl::Int128Impl):
- wtf/Int128.h:
(WTF::UInt128Max):
(std::numeric_limits<WTF::UInt128Impl>::min):
(std::numeric_limits<WTF::UInt128Impl>::lowest):
(std::numeric_limits<WTF::UInt128Impl>::max):
(std::numeric_limits<WTF::UInt128Impl>::epsilon):
(std::numeric_limits<WTF::UInt128Impl>::round_error):
(std::numeric_limits<WTF::UInt128Impl>::infinity):
(std::numeric_limits<WTF::UInt128Impl>::quiet_NaN):
(std::numeric_limits<WTF::UInt128Impl>::signaling_NaN):
(std::numeric_limits<WTF::UInt128Impl>::denorm_min):
(WTF::Int128Max):
(WTF::Int128Min):
(std::numeric_limits<WTF::Int128Impl>::min):
(std::numeric_limits<WTF::Int128Impl>::lowest):
(std::numeric_limits<WTF::Int128Impl>::max):
(std::numeric_limits<WTF::Int128Impl>::epsilon):
(std::numeric_limits<WTF::Int128Impl>::round_error):
(std::numeric_limits<WTF::Int128Impl>::infinity):
(std::numeric_limits<WTF::Int128Impl>::quiet_NaN):
(std::numeric_limits<WTF::Int128Impl>::signaling_NaN):
(std::numeric_limits<WTF::Int128Impl>::denorm_min):
(WTF::MakeUInt128):
(WTF::UInt128Impl::operator=):
(WTF::UInt128Impl::operator<<=):
(WTF::UInt128Impl::operator>>=):
(WTF::UInt128Impl::operator+=):
(WTF::UInt128Impl::operator-=):
(WTF::UInt128Impl::operator*=):
(WTF::UInt128Impl::operator/=):
(WTF::UInt128Impl::operator%=):
(WTF::UInt128Low64):
(WTF::UInt128High64):
(WTF::UInt128Impl::UInt128Impl):
(WTF::UInt128Impl::operator bool const):
(WTF::UInt128Impl::operator char const):
(WTF::UInt128Impl::operator signed char const):
(WTF::UInt128Impl::operator unsigned char const):
(WTF::UInt128Impl::operator char16_t const):
(WTF::UInt128Impl::operator char32_t const):
(WTF::UInt128Impl::operator ABSL_INTERNAL_WCHAR_T const):
(WTF::UInt128Impl::operator short const):
(WTF::UInt128Impl::operator unsigned short const):
(WTF::UInt128Impl::operator int const):
(WTF::UInt128Impl::operator unsigned int const):
(WTF::UInt128Impl::operator long const):
(WTF::UInt128Impl::operator unsigned long const):
(WTF::UInt128Impl::operator long long const):
(WTF::UInt128Impl::operator unsigned long long const):
(WTF::UInt128Impl::operator float const):
(WTF::UInt128Impl::operator double const):
(WTF::UInt128Impl::operator long double const):
(WTF::operator==):
(WTF::operator!=):
(WTF::operator<):
(WTF::operator>):
(WTF::operator<=):
(WTF::operator>=):
(WTF::operator+):
(WTF::operator-):
(WTF::operator!):
(WTF::operator~):
(WTF::operator|):
(WTF::operator&):
(WTF::operator):
(WTF::UInt128Impl::operator|=):
(WTF::UInt128Impl::operator&=):
(WTF::UInt128Impl::operator=):
(WTF::operator<<):
(WTF::operator>>):
(WTF::int128_internal::AddResult):
(WTF::int128_internal::SubstructResult):
(WTF::operator*):
(WTF::UInt128Impl::operator++):
(WTF::UInt128Impl::operator--):
(WTF::MakeInt128):
(WTF::Int128Impl::operator=):
(WTF::Int128Impl::operator+=):
(WTF::Int128Impl::operator-=):
(WTF::Int128Impl::operator*=):
(WTF::Int128Impl::operator/=):
(WTF::Int128Impl::operator%=):
(WTF::Int128Impl::operator|=):
(WTF::Int128Impl::operator&=):
(WTF::Int128Impl::operator=):
(WTF::Int128Impl::operator<<=):
(WTF::Int128Impl::operator>>=):
(WTF::int128_internal::BitCastToSigned):
(WTF::Int128Low64):
(WTF::Int128High64):
(WTF::Int128Impl::Int128Impl):
(WTF::Int128Impl::operator bool const):
(WTF::Int128Impl::operator char const):
(WTF::Int128Impl::operator signed char const):
(WTF::Int128Impl::operator unsigned char const):
(WTF::Int128Impl::operator char16_t const):
(WTF::Int128Impl::operator char32_t const):
(WTF::Int128Impl::operator ABSL_INTERNAL_WCHAR_T const):
(WTF::Int128Impl::operator short const):
(WTF::Int128Impl::operator unsigned short const):
(WTF::Int128Impl::operator int const):
(WTF::Int128Impl::operator unsigned int const):
(WTF::Int128Impl::operator long const):
(WTF::Int128Impl::operator unsigned long const):
(WTF::Int128Impl::operator long long const):
(WTF::Int128Impl::operator unsigned long long const):
(WTF::Int128Impl::operator float const):
(WTF::Int128Impl::operator double const):
(WTF::Int128Impl::operator long double const):
(WTF::int128_internal::SignedAddResult):
(WTF::int128_internal::SignedSubstructResult):
(WTF::Int128Impl::operator++):
(WTF::Int128Impl::operator--):
(WTF::Int128Impl::operator+ const): Deleted.
(WTF::Int128Impl::operator~ const): Deleted.
(WTF::Int128Impl::operator- const): Deleted.
(WTF::Int128Impl::operator! const): Deleted.
(WTF::Int128Impl::operator std::uint64_t const): Deleted.
(WTF::Int128Impl::operator std::int64_t const): Deleted.
(WTF::Int128Impl::high const): Deleted.
(WTF::Int128Impl::low const): Deleted.
(WTF::Int128Impl::operator& const): Deleted.
(WTF::Int128Impl::operator | const): Deleted.
(WTF::Int128Impl::operator const): Deleted.
(WTF::Int128Impl::operator<< const): Deleted.
(WTF::Int128Impl::operator>> const): Deleted.
(WTF::Int128Impl::operator* const): Deleted.
(WTF::Int128Impl::operator/ const): Deleted.
(WTF::Int128Impl::operator% const): Deleted.
(WTF::Int128Impl::operator< const): Deleted.
(WTF::Int128Impl::operator<= const): Deleted.
(WTF::Int128Impl::operator== const): Deleted.
(WTF::Int128Impl::operator!= const): Deleted.
(WTF::Int128Impl::operator>= const): Deleted.
(WTF::Int128Impl::operator> const): Deleted.
(WTF::Int128Impl::leadingZeroes const): Deleted.
- wtf/LeadingZeroBitCount.cpp: Removed.
- wtf/LeadingZeroBitCount.h: Removed.
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Int128.cpp:
(TestWebKitAPI::TYPED_TEST):
(TestWebKitAPI::TEST):
(TestWebKitAPI::ToNativeUInt128):
(TestWebKitAPI::FromNativeUInt128):
(TestWebKitAPI::ToNativeInt128):
(TestWebKitAPI::FromNativeInt128):
(TestWebKitAPI::TestBinaryUInt128):
(TestWebKitAPI::TestBinaryInt128):
(TestWebKitAPI::TestVsNativeUInt128):
(TestWebKitAPI::TestVsNativeInt128):
(TestWebKitAPI::TestUnary): Deleted.
(TestWebKitAPI::TestBinary): Deleted.
(TestWebKitAPI::ToNative): Deleted.
(TestWebKitAPI::FromNative): Deleted.
(TestWebKitAPI::TestVsNative): Deleted.
- TestWebKitAPI/Tests/WTF/LeadingZeroBitCount.cpp: Removed.
- 2:05 PM Changeset in webkit [284747] by
-
- 6 edits in trunk
LFC][IFC] Unexpected content wrap when the containing block width is relative (take 2)
https://bugs.webkit.org/show_bug.cgi?id=232192
Reviewed by Antti Koivisto.
Source/WebCore:
This is a more generic workaround (see r279678) for the block vs. inline measuring issue
where the block width is stored in a LayoutUnit while the inline layout uses float exclusively.
The implicit float flooring at computing the block width may produce an unexpectedly short available space.
e.g
<div style="font-family: Monospace; width: 3ch; overflow-wrap: anywhere">foobar</div>
assume the resolved 3ch is: 17.79999999px (float).
It should allow us to put [foo] on the first line.
However during a float -> LayoutUnit conversion, the resolved value becomes 17.79px.
This floored value leads to an early, unexpected breaking position at [fo].
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContentWithText const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleFloatContent):
(WebCore::Layout::availableWidth):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):
LayoutTests:
- TestExpectations:
- platform/mac/TestExpectations:
- 1:18 PM Changeset in webkit [284746] by
-
- 5 edits2 adds in trunk
WebContent crash when sending invalid IPC message using IPC testing API
https://bugs.webkit.org/show_bug.cgi?id=232060
Patch by Brandon Stewart <Brandon> on 2021-10-23
Reviewed by Wenson Hsieh.
Source/WebKit:
Do not trigger a crash in WebContent Process when sending an invalid IPC message using the
IPC testing API.
Test: ipc/send-invalid-message.html
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchSyncMessage):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
LayoutTests:
Add IPC test to verify that an invalid IPC message will not cause a crash in WebContent Process
when using the IPC testing API.
- TestExpectations:
- ipc/send-invalid-message-expected.txt: Added.
- ipc/send-invalid-message.html: Added.
- 9:35 AM Changeset in webkit [284745] by
-
- 6 edits in trunk
anchor.relList.supports("opener") should return true
https://bugs.webkit.org/show_bug.cgi?id=232182
Reviewed by Darin Adler.
Source/WebCore:
anchor.relList.supports("opener") should return true since we support "opener" on
anchor elements.
No new tests, updated existing test.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::relList):
LayoutTests:
Add layout test coverage.
- fast/dom/DOMTokenList-supports-expected.txt:
- fast/dom/DOMTokenList-supports.html:
- 8:54 AM Changeset in webkit [284744] by
-
- 4 edits in trunk/Source
[LFC][IFC] Breaking before hyphen is only allowed when line-break is loose
https://bugs.webkit.org/show_bug.cgi?id=232191
Reviewed by Antti Koivisto.
Source/WebCore:
This is in preparation for enabling the fix for webkit.org/b/232192.
Two hyphenation related WPT tests (line-break-normal-hyphens-002.html, line-break-strict-hyphens-002.html)
simply pass because of a LayoutUnit (block width) vs. float (measured text width) precision mismatching bug.
This precision issue makes the line breaking code believe that fewer characters fit the line
producing the expected results for those two tests.
Let's fix the line breaking logic first by adding "breaks before hyphens" rules,
so that when webkit.org/b/232192 is addressed, we won't be seeing any WPT regressions.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::midWordBreak):
Source/WTF:
- wtf/unicode/CharacterNames.h:
- 8:21 AM Changeset in webkit [284743] by
-
- 4 edits in trunk/Source/WebCore
WebAVPlayerController should use WeakPtr<> for C++ instance variables
<https://webkit.org/b/231919>
Reviewed by Eric Carlson.
- platform/ios/PlaybackSessionInterfaceAVKit.h:
(WebCore::PlaybackSessionInterfaceAVKit):
- Make RefCounted-class also subclass CanMakeWeakPtr<>.
- platform/ios/WebAVPlayerController.h:
- Add comments that
delegateandplaybackSessionInterfaceinstance variables are held weakly. The compiler won't allowweakto be used on non-Objective-C types, though.
- platform/ios/WebAVPlayerController.mm:
- Add WeakPtr<> instance variables for
delegateandplaybackSessionInterfaceproperties.
(-[WebAVPlayerController delegate]): Add.
(-[WebAVPlayerController setDelegate:]): Add.
(-[WebAVPlayerController playbackSessionInterface]): Add.
(-[WebAVPlayerController setPlaybackSessionInterface:]): Add.
- Implement getter/setter methods for
delegateandplaybackSessionInterfaceproperties that use WeakPtr<> instance variables.
- 12:46 AM Changeset in webkit [284742] by
-
- 10 edits1 move2 deletes in trunk/Source
AX: Unify speech synthesizer platform usage for Mac/iOS
https://bugs.webkit.org/show_bug.cgi?id=231895
<rdar://problem/84372479>
Reviewed by Andres Gonzalez.
Source/WebCore:
AVSpeechSynthesizer has been fully supported on macOS for a number of years. This allows us to unify platform usage.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/PlatformSpeechSynthesizerCocoa.mm: Renamed from Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm.
(getAVSpeechUtteranceDefaultSpeechRate):
(getAVSpeechUtteranceMaximumSpeechRate):
(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:]):
(-[WebSpeechSynthesisWrapper mapSpeechRateToPlatformRate:]):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didPauseSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didContinueSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didCancelSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore::PlatformSpeechSynthesizer::resume):
(WebCore::PlatformSpeechSynthesizer::speak):
(WebCore::PlatformSpeechSynthesizer::cancel):
(WebCore::PlatformSpeechSynthesizer::resetState):
- platform/mac/PlatformSpeechSynthesizerMac.mm: Removed.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
- pal/spi/cocoa/AXSpeechManagerSPI.h:
- pal/spi/mac/SpeechSynthesisSPI.h: Removed.
Source/WTF:
- wtf/PlatformHave.h: