Timeline



Jan 29, 2021:

9:41 PM Changeset in webkit [272113] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271551. rdar://problem/73473686

Scroll position is lost when homing out and resuming Safari on iOS
https://bugs.webkit.org/show_bug.cgi?id=220676

Reviewed by Tim Horton.

When homing out on iOS, UIKit snapshotting causes multiple web view resizes, which runs
the dynamicViewportSizeUpdate() logic. This can trigger programmatic scrolls via
FrameView::setContentsSize(), which get stored in the scrolling state tree. When
that tree is committed on resume, we then erroneously apply the programmatic
scrolls.

Fix by ignoring requested scroll positions updates when snapshotting, as we do when
we're in the page cache.

  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):

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

9:41 PM Changeset in webkit [272112] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271515. rdar://problem/73473627

REGRESSION(r269813): PLT5 regressed by 0.5%
https://bugs.webkit.org/show_bug.cgi?id=220652
<rdar://problem/71517335>

Reviewed by Antti Koivisto.

In r269813 we added support for animating more pseudo-elements besides ::after and ::before. However, the only other
pseudo-element we realistically should be supporting animations for at this juncture is ::marker. So instead of
calling Style::TreeResolver::resolvePseudoStyle() for all public pseudo-elements, we call it for ::after, ::before
and ::marker alone.

  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement):

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

9:41 PM Changeset in webkit [272111] by Alan Coon
  • 9 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271507. rdar://problem/73473467

[Cocoa] Strip DataDetectors links when copying content to the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=220526
<rdar://problem/71045590>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently, when DataDetectors links are written to the pasteboard when
copied. This is problematic, since clicking on a DataDetector link
outside of a valid context results in an attempt to open an invalid
URL. Instead, DataDetectors links should be stripped when copied.

To remove the link, while preserving any custom styles, the <a> element
created by Data Detection is replaced with a <span> element. Any
attributes and styles added by WebKit are removed as a part of this
transformation.

Tests: editing/pasteboard/copy-paste-data-detected-links.html

CopyRTF.StripsDataDetectedLinks
PasteWebArchive.StripsDataDetectedLinks

  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm: (WebCore::DataDetection::isDataDetectorElement):

Add a helper to check if an element was created through Data Detection.

  • editing/cocoa/HTMLConverter.mm: (HTMLConverter::_addLinkForElement):

Do not add NSLinkAttributeName for DataDetectors links.

(HTMLConverter::_exitElement):

Factor out link creation logic.

  • editing/markup.cpp: (WebCore::StyledMarkupAccumulator::spanReplacementForElement):

Centralize the logic that determines whether or not an element should
be replaced by a <span>. Previously, this only applied to <slot>
elements. Now, it applies to <slot> and DataDetectors links.

(WebCore::StyledMarkupAccumulator::appendStartTag):

If the element was created through DataDetection, append a <span>
rather than an <a>, to drop the link. The DataDetectors and href
attributes are also dropped from the markup string. Finally, remove
the text decoration style that was added by WebKit to style the
DataDetectors link.

(WebCore::StyledMarkupAccumulator::appendEndTag):

Consult shouldReplaceElementWithSpan when appending the end tag.

Tools:

Added API tests to verify DataDetectors links are not preserved when
copying/pasting WebArchives and rich text.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyRTF.mm: (StripsDataDetectorsLinks):
  • TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm: (StripsDataDetectorsLinks):

LayoutTests:

Added a test which copies content containing two data detected links
and verifies that the links are removed.

  • editing/pasteboard/copy-paste-data-detected-links-expected.txt: Added.
  • editing/pasteboard/copy-paste-data-detected-links.html: Added.

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

9:41 PM Changeset in webkit [272110] by Alan Coon
  • 18 edits in branches/safari-611-branch/Source

Cherry-pick r271503. rdar://problem/73473503

Add a quirk to disable "return to element fullscreen from picture-in-picture" for some sites
https://bugs.webkit.org/show_bug.cgi?id=220606

Reviewed by Eric Carlson.

Source/WebCore:

For iPads, we add the support of "return to element fullscreen from picture-in-picture" in r265562.
Unfortunately, some sites do not set element's styles properly when a video returns to fullscreen
from picture-in-picture. This patch adds a quirk to disable the feature for those sites for now.

  • page/Quirks.cpp: (WebCore::Quirks::blocksReturnToFullscreenFromPictureInPictureQuirk const):
  • page/Quirks.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (VideoFullscreenInterfaceAVKit::setupFullscreen): (VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
  • platform/ios/WebVideoFullscreenControllerAVKit.mm: (VideoFullscreenControllerContext::setUpFullscreen):

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
  • UIProcess/WebFullScreenManagerProxy.cpp: (WebKit::WebFullScreenManagerProxy::blocksReturnToFullscreenFromPictureInPicture const): (WebKit::WebFullScreenManagerProxy::enterFullScreen):
  • UIProcess/WebFullScreenManagerProxy.h:
  • UIProcess/WebFullScreenManagerProxy.messages.in:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: (-[WKFullScreenWindowController enterFullScreen]): (-[WKFullScreenWindowController didEnterPictureInPicture]):
  • WebProcess/FullScreen/WebFullScreenManager.cpp: (WebKit::WebFullScreenManager::enterFullScreenForElement):
  • WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp: (WebKit::InjectedBundlePageFullScreenClient::enterFullScreenForElement):
  • WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h:
  • WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):

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

9:41 PM Changeset in webkit [272109] by Alan Coon
  • 16 edits
    3 adds in branches/safari-611-branch

Cherry-pick r271459. rdar://problem/73473665

[macOS] "Correct Spelling Automatically" menu items are inconsistent when autocorrect="off"
https://bugs.webkit.org/show_bug.cgi?id=220598
<rdar://problem/71713611>

Reviewed by Tim Horton.

Source/WebCore:

Disable the context menu item to toggle automatic spelling correction, as well as the menu bar item to toggle
automatic spelling correction, in the case where the autocorrect attribute is set to "off". See below for more
details.

Tests: editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html

DisableAutomaticSpellingCorrection.AutocorrectAttribute

  • editing/AlternativeTextController.cpp: (WebCore::AlternativeTextController::canEnableAutomaticSpellingCorrection const):

Factor out logic for checking the autocorrect attribute into a separate helper function; this is used to
determine whether or not we should enable both the context menu item and menu item in the menu bar.

(WebCore::AlternativeTextController::isAutomaticSpellingCorrectionEnabled):

  • editing/AlternativeTextController.h: (WebCore::AlternativeTextController::UNLESS_ENABLED):
  • editing/Editor.cpp: (WebCore::Editor::canEnableAutomaticSpellingCorrection const):
  • editing/Editor.h:
  • page/ContextMenuController.cpp: (WebCore::ContextMenuController::checkOrEnableIfNeeded const):

Source/WebKit:

Plumb the new canEnableAutomaticSpellingCorrection flag through EditorState to the UI process, where we can
consult it when validating user interface items (namely, the "Correct Spelling Automatically" menu item, which
corresponds to the -toggleAutomaticSpellingCorrection: selector).

  • Shared/EditorState.cpp: (WebKit::EditorState::PostLayoutData::encode const): (WebKit::EditorState::PostLayoutData::decode): (WebKit::operator<<):
  • Shared/EditorState.h:
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::validateUserInterfaceItem):
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getPlatformEditorState const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/DisableAutomaticSpellingCorrection.mm: Added.

Add a new API test to verify that the NSMenuItem for toggling automatic spelling correction is invalid when
editing inside a form control with autocorrect="off".

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp: (WTR::getMenuItemEnabledCallback):

Add the readonly enabled JS property on context menu items. See the new layout test,
editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html, for more information.

LayoutTests:

Add a new API test to verify that the context menu item to toggle "Correct Spelling Automatically" is disabled
when autocorrect="off".

  • editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item-expected.txt: Added.
  • editing/mac/spelling/disable-automatic-spelling-correction-context-menu-item.html: Added.
  • platform/mac-wk1/TestExpectations:

Disable the test in DumpRenderTree, due to lack of support for context menu testing in WebKit1.

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

9:41 PM Changeset in webkit [272108] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebInspectorUI

Cherry-pick r271458. rdar://problem/73477098

Web Inspector: RTL content inside elements is reversed and unreadable
https://bugs.webkit.org/show_bug.cgi?id=220241

Patch by Ebrahim Byagowi <ebrahim@gnu.org> on 2021-01-13
Reviewed by BJ Burg.

Use appropiate unicode-bidi value so that it won't reverse RTL text
inside elements.

  • UserInterface/Views/DOMTreeOutline.css: (.tree-outline.dom li > span > .html-text-node):

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

9:41 PM Changeset in webkit [272107] by Alan Coon
  • 8 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271414. rdar://problem/73473727

REGRESSION (r265044): [macOS] Safari autocorrects text when typing in login field on amazon.com
https://bugs.webkit.org/show_bug.cgi?id=220556
<rdar://problem/71602937>

Reviewed by Darin Adler.

Source/WebCore:

Add an internal testing hook to ask an input element whether it has disabled spellchecking (except for text
replacement).

  • testing/Internals.cpp: (WebCore::Internals::isSpellcheckDisabledExceptTextReplacement const):
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Restores the implementation of WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled, which was removed in
r265044, with the reasoning that the code was unused. However, Safari still uses this SPI on macOS to prevent
automatic spelling correction from triggering when editing form fields that are AutoFillable.

Test: WebKit.DisableSpellcheck

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: (WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled):

Tools:

Add an API test that uses WebKit C API (WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled) to disable or
enable spellchecking on input elements.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DisableSpellcheck.mm: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/DisableSpellcheckPlugIn.mm: Added. (-[DisableSpellcheckPlugIn webProcessPlugIn:didCreateBrowserContextController:]): (-[DisableSpellcheckPlugIn webProcessPlugInBrowserContextController:didClearWindowObjectForFrame:inScriptWorld:]): (-[DisableSpellcheckPlugIn webProcessPlugInBrowserContextController:didFinishLoadForFrame:]):

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

9:41 PM Changeset in webkit [272106] by Alan Coon
  • 3 edits
    3 adds in branches/safari-611-branch

Cherry-pick r271388. rdar://problem/73473676

Safari 14 on 2x display renders NYS DMV page as blurry
https://bugs.webkit.org/show_bug.cgi?id=220528
<rdar://problem/71440246>

Reviewed by Tim Horton.

Source/WebCore:

Certain combinations of nested perspective and transform cause Core Animation to
rasterize at unit scale, which makes layers blurry on Retina displays.

Enable code that was already used on iOS to set layer rasterization scale.

Test: compositing/contents-scale/hidpi-tests/rasterization-scale.html

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::setContentsScale):

LayoutTests:

  • compositing/contents-scale/hidpi-tests/rasterization-scale-expected.html: Added.
  • compositing/contents-scale/hidpi-tests/rasterization-scale.html: Added.

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

9:41 PM Changeset in webkit [272105] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271384. rdar://problem/73473494

Crash in pageDidComputePageRects()
https://bugs.webkit.org/show_bug.cgi?id=220518
<rdar://problem/71065870>

Reviewed by Ryosuke Niwa.

Make _printOperation a weak pointer and check it before use.
Since WKPrintingView is ref counted, a reference could still exist
even if _printOperation is nil. Remove the comment as it is not a
justification for a raw pointer.

  • UIProcess/mac/WKPrintingView.h:
  • UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]): (-[WKPrintingView _firstPrintedPageNumber]): (-[WKPrintingView _lastPrintedPageNumber]): (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): (pageDidComputePageRects): (-[WKPrintingView _askPageToComputePageRects]): (-[WKPrintingView knowsPageRange:]): (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]): (-[WKPrintingView _drawPageBorderWithSizeOnMainThread:]): (-[WKPrintingView drawPageBorderWithSize:]): (-[WKPrintingView rectForPage:]): (-[WKPrintingView locationOfPrintRect:]): (-[WKPrintingView beginDocument]): (-[WKPrintingView endDocument]):

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

9:41 PM Changeset in webkit [272104] by Alan Coon
  • 6 edits in branches/safari-611-branch

Cherry-pick r271379. rdar://problem/73473604

Keep newly created IDBObjectStores in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220483
<rdar://problem/71934293>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Darin Adler.

Source/WebCore:

When an upgrade transaction is aborted, we move objects from m_deletedObjectStores to m_referencedObjectStores
to revert the deletion operation. When updating m_referencedObjectStores, we did not check whether key already
exists (this can happen when an object store gets deleted and a new object store with the same name is
created; see updated layout test). Therefore, some object store in m_referencedObjectStores would be replaced
and destroyed (since m_referencedObjectStores holds unique pointers) when the object store is referenced by JS
object.

Test: storage/indexeddb/modern/abort-objectstore-info.html

  • Modules/indexeddb/IDBTransaction.cpp: (WebCore::IDBTransaction::internalAbort):

LayoutTests:

  • storage/indexeddb/modern/abort-objectstore-info-expected.txt:
  • storage/indexeddb/modern/abort-objectstore-info-private-expected.txt:
  • storage/indexeddb/modern/resources/abort-objectstore-info.js: (prepareDatabase): (secondUpgradeNeeded): (checkState):

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

9:40 PM Changeset in webkit [272103] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271374. rdar://problem/73477142

Web Inspector: add nullptr check for WebInspectorProxy::m_extensionsController
https://bugs.webkit.org/show_bug.cgi?id=220485
<rdar://72496401>

Reviewed by Devin Rousso.

  • UIProcess/Inspector/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::frontendLoaded):

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

9:40 PM Changeset in webkit [272102] by Alan Coon
  • 5 edits in branches/safari-611-branch

Cherry-pick r271369. rdar://problem/73473654

WebProcessPool::establishWorkerContextConnectionToNetworkProcess should make sure to remove the selected process from the cache
https://bugs.webkit.org/show_bug.cgi?id=220503

Reviewed by Darin Adler.

Source/WebKit:

In case we reuse an existing web process, make sure to remove it from web process cache.
Covered by API test.

  • UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::addProcessIfPossible): (WebKit::WebProcessCache::addProcess):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

9:40 PM Changeset in webkit [272101] by Alan Coon
  • 3 edits
    5 adds in branches/safari-611-branch

Cherry-pick r271368. rdar://problem/73473690

Keep newly created IDBIndex objects in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220489
<rdar://problem/70498831>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebCore:

When an upgrade transaction is aborted, we move objects from m_deletedIndexes to m_referencedIndexes to revert
the index deletion operation. When updating m_referencedIndexes, we did not check whether key already exists.
Therefore, some indexes in m_referencedIndexes would be replaced and destroyed (since m_referencedIndexes holds
unique pointers) when the index is still referenced by JS.

Tests: storage/indexeddb/modern/abort-index-info-private.html

storage/indexeddb/modern/abort-index-info.html

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::rollbackForVersionChangeAbort):

LayoutTests:

  • storage/indexeddb/modern/abort-index-info-expected.txt: Added.
  • storage/indexeddb/modern/abort-index-info-private-expected.txt: Added.
  • storage/indexeddb/modern/abort-index-info-private.html: Added.
  • storage/indexeddb/modern/abort-index-info.html: Added.
  • storage/indexeddb/modern/resources/abort-index-info.js: Added. (prepareDatabase): (versionChangeSuccessCallback.secondRequest.onerror): (versionChangeSuccessCallback): (secondUpgradeNeeded): (checkState):

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

9:35 PM Changeset in webkit [272100] by Alan Bujtas
  • 20 edits in trunk

[LFC][RenderTreeAsText] Apply the "adjustForTableCells" quirk to line break runs
https://bugs.webkit.org/show_bug.cgi?id=221142

Reviewed by Antti Koivisto.

Source/WebCore:

When the table rows get stretched vertically as individual cells grow, the cell content
gets "aligned" vertically (not to confuse it with the align property) by offsetting each line.
However this offset is removed in the render tree dump for historical reasons.
This patch ensures that the modern line layout runs that we create for line breaks (<br>)
produce the same vertical position as the legacy layout runs.

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

LayoutTests:

  • platform/ios/fast/table/005-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/ios/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac-catalina/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/fast/table/005-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
8:57 PM Changeset in webkit [272099] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Adjust property order of host JSFunction
https://bugs.webkit.org/show_bug.cgi?id=221168

Reviewed by Darin Adler.

JSTests:

  • stress/host-function-property-order.js: Added.

(shouldBe):

Source/JavaScriptCore:

We should first define "length" before "name".
This will be included in upcoming test262 update[1].

[1]: https://github.com/tc39/test262/pull/2921

  • runtime/JSFunction.cpp:

(JSC::JSFunction::finishCreation):

7:17 PM Changeset in webkit [272098] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.14

7:10 PM Changeset in webkit [272097] by Simon Fraser
  • 56 edits in trunk/Source/WebCore

Devirtualize some functions on InputType
https://bugs.webkit.org/show_bug.cgi?id=221121

Reviewed by Yusuke Suzuki .

Virtual functions on InputType show up in Speedometer profiles. We can make
many of these virtual functions non-virtual by just switching on the input type.

  • dom/Element.cpp:
  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::isCheckable): Deleted.

  • html/BaseCheckableInputType.h:
  • html/BaseTextInputType.cpp:

(WebCore::BaseTextInputType::isTextType const): Deleted.

  • html/BaseTextInputType.h:
  • html/ButtonInputType.cpp:

(WebCore::ButtonInputType::isTextButton const): Deleted.

  • html/ButtonInputType.h:
  • html/CheckboxInputType.cpp:

(WebCore::CheckboxInputType::isCheckbox const): Deleted.

  • html/CheckboxInputType.h:
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::isColorControl const): Deleted.

  • html/ColorInputType.h:
  • html/DateInputType.cpp:

(WebCore::DateInputType::isDateField const): Deleted.

  • html/DateInputType.h:
  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::isDateTimeLocalField const): Deleted.

  • html/DateTimeLocalInputType.h:
  • html/EmailInputType.cpp:

(WebCore::EmailInputType::isEmailField const): Deleted.

  • html/EmailInputType.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::isFileUpload const): Deleted.

  • html/FileInputType.h:
  • html/FormAssociatedElement.h:
  • html/HTMLFormControlElement.h:
  • html/HiddenInputType.cpp:

(WebCore::HiddenInputType::isHiddenType const): Deleted.

  • html/HiddenInputType.h:
  • html/ImageInputType.cpp:

(WebCore::ImageInputType::isImageButton const): Deleted.
(WebCore::ImageInputType::isEnumeratable): Deleted.

  • html/ImageInputType.h:
  • html/InputType.cpp:

(WebCore::InputType::isTextType const):
(WebCore::InputType::isTextField const):
(WebCore::InputType::isTextButton const):
(WebCore::InputType::isInteractiveContent const):
(WebCore::InputType::supportLabels const):
(WebCore::InputType::isEnumeratable):
(WebCore::InputType::isCheckable):
(WebCore::InputType::isRangeControl const): Deleted.
(WebCore::InputType::isRadioButton const): Deleted.
(WebCore::InputType::isSearchField const): Deleted.
(WebCore::InputType::isHiddenType const): Deleted.
(WebCore::InputType::isPasswordField const): Deleted.
(WebCore::InputType::isCheckbox const): Deleted.
(WebCore::InputType::isEmailField const): Deleted.
(WebCore::InputType::isFileUpload const): Deleted.
(WebCore::InputType::isImageButton const): Deleted.
(WebCore::InputType::isNumberField const): Deleted.
(WebCore::InputType::isSubmitButton const): Deleted.
(WebCore::InputType::isTelephoneField const): Deleted.
(WebCore::InputType::isURLField const): Deleted.
(WebCore::InputType::isDateField const): Deleted.
(WebCore::InputType::isDateTimeField const): Deleted.
(WebCore::InputType::isDateTimeLocalField const): Deleted.
(WebCore::InputType::isMonthField const): Deleted.
(WebCore::InputType::isTimeField const): Deleted.
(WebCore::InputType::isWeekField const): Deleted.
(WebCore::InputType::isColorControl const): Deleted.

  • html/InputType.h:

(WebCore::InputType::isCheckbox const):
(WebCore::InputType::isColorControl const):
(WebCore::InputType::isDateField const):
(WebCore::InputType::isDateTimeField const):
(WebCore::InputType::isDateTimeLocalField const):
(WebCore::InputType::isEmailField const):
(WebCore::InputType::isFileUpload const):
(WebCore::InputType::isHiddenType const):
(WebCore::InputType::isImageButton const):
(WebCore::InputType::isMonthField const):
(WebCore::InputType::isNumberField const):
(WebCore::InputType::isPasswordField const):
(WebCore::InputType::isRadioButton const):
(WebCore::InputType::isRangeControl const):
(WebCore::InputType::isSearchField const):
(WebCore::InputType::isSubmitButton const):
(WebCore::InputType::isTelephoneField const):
(WebCore::InputType::isTimeField const):
(WebCore::InputType::isURLField const):
(WebCore::InputType::isWeekField const):

  • html/MonthInputType.cpp:

(WebCore::MonthInputType::isMonthField const): Deleted.

  • html/MonthInputType.h:
  • html/NumberInputType.cpp:

(WebCore::NumberInputType::isNumberField const): Deleted.

  • html/NumberInputType.h:
  • html/PasswordInputType.cpp:

(WebCore::PasswordInputType::isPasswordField const): Deleted.

  • html/PasswordInputType.h:
  • html/RadioInputType.cpp:

(WebCore::RadioInputType::isRadioButton const): Deleted.

  • html/RadioInputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::isRangeControl const): Deleted.

  • html/RangeInputType.h:
  • html/ResetInputType.cpp:

(WebCore::ResetInputType::isTextButton const): Deleted.

  • html/ResetInputType.h:
  • html/SearchInputType.cpp:

(WebCore::SearchInputType::isSearchField const): Deleted.

  • html/SearchInputType.h:
  • html/SubmitInputType.cpp:

(WebCore::SubmitInputType::isSubmitButton const): Deleted.
(WebCore::SubmitInputType::isTextButton const): Deleted.

  • html/SubmitInputType.h:
  • html/TelephoneInputType.cpp:

(WebCore::TelephoneInputType::isTelephoneField const): Deleted.

  • html/TelephoneInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::isTextField const): Deleted.

  • html/TextFieldInputType.h:
  • html/TimeInputType.cpp:

(WebCore::TimeInputType::isTimeField const): Deleted.

  • html/TimeInputType.h:
  • html/URLInputType.cpp:

(WebCore::URLInputType::isURLField const): Deleted.

  • html/URLInputType.h:
  • html/WeekInputType.cpp:

(WebCore::WeekInputType::isWeekField const): Deleted.

  • html/WeekInputType.h:
6:39 PM Changeset in webkit [272096] by Megan Gardner
  • 11 edits in trunk/Source

Add plumbing to allow AppHighlights to be restored.
https://bugs.webkit.org/show_bug.cgi?id=221123

Reviewed by Wenson Hsieh.

Source/WebCore:

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::restoreAppHighlights):

  • Modules/highlight/AppHighlightStorage.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _restoreAppHighlights:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::restoreAppHighlights):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::restoreAppHighlights):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
6:16 PM Changeset in webkit [272095] by Tadeu Zagallo
  • 5 edits in trunk/Source/WTF

Make check for full HashTables opt-in
https://bugs.webkit.org/show_bug.cgi?id=221166
<rdar://problem/70902458>

Reviewed by Saam Barati and Yusuke Suzuki.

Having the check always on was a regression on Speedometer2, so we only keep it for
the HashMaps in the MetaAllocator.

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):
(WTF::KeyTraits>::lookupForWriting):
(WTF::KeyTraits>::fullLookupForWriting):
(WTF::KeyTraits>::addUniqueForInitialization):
(WTF::KeyTraits>::add):

  • wtf/HashTraits.h:
  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::addFreeSpace):

  • wtf/MetaAllocator.h:
6:13 PM Changeset in webkit [272094] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

Update consumeNumberRaw() to return an Optional<double> rather than using a bool/out parameter pattern
https://bugs.webkit.org/show_bug.cgi?id=221164

Reviewed by Darin Adler.

Match modern convention and the other raw consumers by returning a Optional<double>
rather than using the older bool / out parameter pattern.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariationTag):
(WebCore::consumeCubicBezier):
(WebCore::consumeSpringFunction):
(WebCore::consumePerspective):
(WebCore::consumeCursor):
(WebCore::CSSPropertyParser::consumeFlex):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw):
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
(WebCore::CSSPropertyParserHelpers::consumeColorWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw):

  • css/parser/CSSPropertyParserHelpers.h:
5:52 PM Changeset in webkit [272093] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[webkitpy] Thread.isAlive was renamed to Thread.is_alive
https://bugs.webkit.org/show_bug.cgi?id=221160

Reviewed by Jonathan Bedard.

Python 2.6 added threading.Thread.is_alive which aliased isAlive. In Python 3.x only
threading.Thread.is_alive is available so use that instead.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:

(Worker._run_test_in_another_thread):

5:25 PM Changeset in webkit [272092] by Alan Coon
  • 1 copy in tags/Safari-611.1.13

Tag Safari-611.1.13.

5:25 PM Changeset in webkit [272091] by Alan Coon
  • 1 delete in tags/Safari-611.1.13

Delete tag.

5:19 PM Changeset in webkit [272090] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source

Cherry-pick r271619. rdar://problem/73461349

REGRESSION(r269865) Mail's context menu when right clicking on a link does not contain correct entries
https://bugs.webkit.org/show_bug.cgi?id=220745

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-19
Reviewed by Tim Horton.

Source/WebCore:

r269865 broke binary compatibility by changing the values of many WebCore::ContextMenuAction values and many WKContextMenuItemTag values,
and not in the same way. In WebContextMenuProxyMac::getContextMenuItem we call NSMenuItem setTag: with the value from WebCore::ContextMenuAction
and mail compares those values with values from WKContextMenuItemTag in our C API. This isn't ideal, but we need to retain binary compatibility.

  • platform/ContextMenuItem.h:

Source/WebKit:

  • Shared/API/c/WKContextMenuItem.cpp: Add a bunch of static_asserts to verify that our binary values correspond to each other and don't change.
  • Shared/API/c/WKContextMenuItemTypes.h:

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

5:16 PM Changeset in webkit [272089] by Beth Dakin
  • 2 edits in trunk/Websites/webkit.org

Remove non-inclusive language from webkit.org/blog-files/css-jit-introduction/html5-single-page-microbenchmark.html
https://bugs.webkit.org/show_bug.cgi?id=221154

Reviewed by Geoffrey Garen.

  • blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:
4:51 PM Changeset in webkit [272088] by Alan Coon
  • 1 copy in tags/Safari-611.1.13

Tag Safari-611.1.13.

4:51 PM Changeset in webkit [272087] by Alan Coon
  • 1 delete in tags/Safari-611.1.13

Delete tag.

4:36 PM Changeset in webkit [272086] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

SourceParseMode should be a member of the JSC::Parser
https://bugs.webkit.org/show_bug.cgi?id=221149

Reviewed by Ross Kirsling.

Right now we pass the SourceParseMode as a argument to many of the
functions in the parser. This patch move it into a member on the
class. This will make it available deeper in the parser, which is
important for implementing top level await.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseFunctionExpression):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):

  • parser/Parser.h:

(JSC::Parser::sourceParseMode const):
(JSC::Parser<LexerType>::parse):
(JSC::parse):
(JSC::parseFunctionForFunctionConstructor):

4:30 PM Changeset in webkit [272085] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, internal build fix after r272082
https://bugs.webkit.org/show_bug.cgi?id=221147

  • runtime/Options.cpp:

(JSC::canUseJITCage):

4:18 PM Changeset in webkit [272084] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

WebKit doesn't automatically right-align Adlam
https://bugs.webkit.org/show_bug.cgi?id=220885

Reviewed by Alex Christensen.

Source/WTF:

If we want to iterate across code points, we have to actually
iterate across code points instead of iterating across code units.

Test: fast/text/adlam-dir-auto.html

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::defaultWritingDirection):

LayoutTests:

  • fast/text/adlam-dir-auto-expected.html: Added.
  • fast/text/adlam-dir-auto.html: Added.
3:32 PM Changeset in webkit [272083] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Upgrade motionmark1.1.plan to r272044
https://bugs.webkit.org/show_bug.cgi?id=221148

Reviewed by Said Abou-Hallawa.

r272044 is attempting to address extreme variance in the test.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
3:31 PM Changeset in webkit [272082] by ysuzuki@apple.com
  • 5 edits in trunk/Source

[JSC] Add com.apple.private.securejit entitlement for JITCage
https://bugs.webkit.org/show_bug.cgi?id=221147

Reviewed by Keith Miller.

Source/JavaScriptCore:

Add com.apple.private.securejit only for iOS, used for JITCage.

  • entitlements.plist:
  • runtime/Options.cpp:

(JSC::canUseJITCage):

Source/WebKit:

Add com.apple.private.securejit only for iOS.

  • Scripts/process-entitlements.sh:
3:07 PM Changeset in webkit [272081] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Fix WebAssembly.Global's error message and support "funcref"
https://bugs.webkit.org/show_bug.cgi?id=221157

Reviewed by Keith Miller.

JSTests:

  • wasm/stress/global-wrong-type.js: Added.

(assert.throws):

LayoutTests/imported/w3c:

We also update test expect files failing after r272074.

  • web-platform-tests/wasm/jsapi/global/type.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/global/type.tentative.any.worker-expected.txt:

Source/JavaScriptCore:

Since it accepts "anyfunc" and "externref", we should update the error message.
And we should support "funcref" too.

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

2:55 PM Changeset in webkit [272080] by ysuzuki@apple.com
  • 8 edits in branches/safari-611-branch/Source/JavaScriptCore

[JSC] Avoid using DirectCall when executable is wasm function
https://bugs.webkit.org/show_bug.cgi?id=221055

Reviewed by Keith Miller.

This is a partial patch from https://bugs.webkit.org/show_bug.cgi?id=220339, which is reverted because of Facebook crash.
For now, we just avoid using DirectCall to wasm functions so that normal Call will be used, and it is efficient. This
patch avoids JetStream2 regression.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • jit/JITOperations.cpp:

(JSC::virtualForWithFunction):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::create):

Canonical link: https://commits.webkit.org/233420@main

2:55 PM Changeset in webkit [272079] by ysuzuki@apple.com
  • 12 edits in branches/safari-611-branch

Revert "[JSC] DFG/FTL DirectCall need to respect Wasm IC"

This reverts commit a125d083477069e9cb6bebbe6426eea7919499e4.

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

Unreviewed, reverting r272065.
https://bugs.webkit.org/show_bug.cgi?id=221155

Introduced crash

Reverted changeset:

"[macOS] Add reporting for some syscalls"
https://bugs.webkit.org/show_bug.cgi?id=221135
https://trac.webkit.org/changeset/272065

1:42 PM Changeset in webkit [272077] by Alan Coon
  • 1 copy in tags/Safari-610.4.3.1.6

Tag Safari-610.4.3.1.6.

1:37 PM Changeset in webkit [272076] by Alan Coon
  • 8 edits in branches/safari-610.4.3.1-branch/Source

Versioning.

WebKit-7610.4.3.1.6

1:26 PM Changeset in webkit [272075] by Fujii Hironori
  • 15 edits in trunk/Source/WebCore

Remove unused GraphicsContextGL::Destination enum class
https://bugs.webkit.org/show_bug.cgi?id=221122

Reviewed by Kenneth Russell.

It was used by Chromium port.

  • platform/graphics/GraphicsContextGL.h:

(WebCore::GraphicsContextGL::destination const): Deleted.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::GCGLANGLELayer):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:

(Nicosia::GCGLLayer::GCGLLayer):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.cpp:

(WebCore::GraphicsContextGLOpenGLPrivate::GraphicsContextGLOpenGLPrivate):

  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): Fix a compilation error by renaming texureType to textureTarget.

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:
12:59 PM Changeset in webkit [272074] by commit-queue@webkit.org
  • 11 edits in trunk

[WASM-References] Enable reference types by default
https://bugs.webkit.org/show_bug.cgi?id=220890

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-01-29
Reviewed by Yusuke Suzuki.

Enable wasm reference types by default.

Source/JavaScriptCore:

  • runtime/OptionsList.h:

Tools:

  • Scripts/run-jsc-stress-tests:
12:19 PM Changeset in webkit [272073] by mmaxfield@apple.com
  • 11 edits
    18 adds in trunk

font-stretch is not applied to system-ui
https://bugs.webkit.org/show_bug.cgi?id=221103
<rdar://problem/73719139>

Reviewed by Darin Adler.

Source/WebCore:

We just never hooked it up.

Tests: fast/text/system-font-width-2.html

fast/text/system-font-width-3.html
fast/text/system-font-width-4.html
fast/text/system-font-width-5.html
fast/text/system-font-width-6.html
fast/text/system-font-width-7.html
fast/text/system-font-width-8.html
fast/text/system-font-width-9.html
fast/text/system-font-width.html

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createSystemUIFont):
(WebCore::SystemFontDatabaseCoreText::createSystemDesignFont):
(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):
(WebCore::SystemFontDatabaseCoreText::createFontByApplyingWeightWidthItalicsAndFallbackBehavior):
(WebCore::mapWeight):
(WebCore::mapWidth):
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):
(WebCore::SystemFontDatabaseCoreText::createFontByApplyingWeightItalicsAndFallbackBehavior): Deleted.

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:

(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::operator== const):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::hash const):

Source/WebCore/PAL:

  • pal/spi/cocoa/CoreTextSPI.h:

Source/WTF:

  • wtf/PlatformHave.h:

LayoutTests:

  • fast/text/system-font-width-2-expected-mismatch.html: Added.
  • fast/text/system-font-width-2.html: Added.
  • fast/text/system-font-width-3-expected-mismatch.html: Added.
  • fast/text/system-font-width-3.html: Added.
  • fast/text/system-font-width-4-expected-mismatch.html: Added.
  • fast/text/system-font-width-4.html: Added.
  • fast/text/system-font-width-5-expected.html: Added.
  • fast/text/system-font-width-5.html: Added.
  • fast/text/system-font-width-6-expected-mismatch.html: Added.
  • fast/text/system-font-width-6.html: Added.
  • fast/text/system-font-width-7-expected-mismatch.html: Added.
  • fast/text/system-font-width-7.html: Added.
  • fast/text/system-font-width-8-expected-mismatch.html: Added.
  • fast/text/system-font-width-8.html: Added.
  • fast/text/system-font-width-9-expected-mismatch.html: Added.
  • fast/text/system-font-width-9.html: Added.
  • fast/text/system-font-width-expected-mismatch.html: Added.
  • fast/text/system-font-width.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
11:31 AM Changeset in webkit [272072] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Stop observing changes in one preference domain
https://bugs.webkit.org/show_bug.cgi?id=221130
<rdar://problem/70729182>

Reviewed by Brent Fulgham.

It has been determined that there is no need to observe preference changes in the domain 'com.apple.Preferences'.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

11:26 AM Changeset in webkit [272071] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

[JSC] WebAssembly.Global should support Funcref and Externref
https://bugs.webkit.org/show_bug.cgi?id=220914

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-01-29
Reviewed by Yusuke Suzuki.

JSTests:

Add tests for WebAssembly.Global ctors with
new reference types:
https://webassembly.github.io/reference-types/js-api/index.html#dom-global-global.

  • wasm/references/globals.js: Added.

(Pelmen):
(testGlobalConstructorForExternref):
(async testGlobalConstructorForFuncref):

Source/JavaScriptCore:

Allow using reference types in ctor of WebAssembly.Global
according to the spec
https://webassembly.github.io/reference-types/js-api/index.html#dom-global-global.

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

11:25 AM Changeset in webkit [272070] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add audio related shm write reporting
https://bugs.webkit.org/show_bug.cgi?id=221136
<rdar://problem/73510094>

Reviewed by Brent Fulgham.

Add audio related shm write reporting in the WebContent process' sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:
11:22 AM Changeset in webkit [272069] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Remove access to IOSurfaceSendRight
https://bugs.webkit.org/show_bug.cgi?id=221131
<rdar://problem/70496356>

Reviewed by Brent Fulgham.

Remove access to IOSurfaceSendRight in the WebContent process on macOS, since there are no reports of this being used.

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):

  • WebProcess/com.apple.WebProcess.sb.in:
11:14 AM Changeset in webkit [272068] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r272020 and r272034.
https://bugs.webkit.org/show_bug.cgi?id=221144

Revert potentially related change while investigating crash

Reverted changesets:

"[macOS] WebProcess::updateProcessName should initiate network
process connection if none exists"
https://bugs.webkit.org/show_bug.cgi?id=221094
https://trac.webkit.org/changeset/272020

"Unreviewed macOS build fix after r272020."
https://trac.webkit.org/changeset/272034

11:07 AM Changeset in webkit [272067] by Andres Gonzalez
  • 22 edits
    2 adds in trunk

Support for aria-current state changed notifications.
https://bugs.webkit.org/show_bug.cgi?id=221074

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-current-state-changed-notification.html

Added handling of the AXCurrentStateChanged notification for Mac and iOS
ports. This notification is fired when the aria-current attribute
changes.
Handling of this notification is required to properly update the
accessibility properties of the target object and convey them to
assistive technology clients.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<): Renamed notification anumerand.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):

  • accessibility/AXObjectCache.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityDOMIdentifier]):
(-[WebAccessibilityObjectWrapper postCurrentStateChangedNotification]):
(-[WebAccessibilityObjectWrapper accessibilityCurrentState]):
(-[WebAccessibilityObjectWrapper accessibilityARIACurrentStatus]): Renamed to accessibilityCurrentState.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

Tools:

Added AccessibilityUIElement::domIdentifier and currentStateValue used
in LayoutTests/accessibility/aria-current-state-changed-notification.html.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::domIdentifier const): Non-Cocoa implementation.
(WTR::AccessibilityUIElement::currentStateValue const): Non-Cocoa implementation.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::currentStateValue const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::currentStateValue const):

LayoutTests:

  • accessibility/aria-current-state-changed-notification-expected.txt: Added.
  • accessibility/aria-current-state-changed-notification.html: Added.
  • accessibility/aria-current.html:

Use AccessibilityUIElement::currentStateValue for consistency and to
match closely how actual clients will invoke this functionality.

  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:48 AM Changeset in webkit [272066] by weinig@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

Extract color model and transfer functions into their own files
https://bugs.webkit.org/show_bug.cgi?id=221105

Reviewed by Tim Horton.

Things are getting a bit cramped in ColorTypes.h and ColorConversions.
This extracts the color models into ColorModels.h and gamma transfer
functions into ColorTransferFunctions.h and generalized the transfer
functions a bit to reduce the code size.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ColorModels.h: Added.
  • platform/graphics/ColorTransferFunctions.h: Added.
  • platform/graphics/ColorConversion.cpp:
  • platform/graphics/ColorConversion.h:
  • platform/graphics/ColorTypes.h:

Move code to new files.

10:40 AM Changeset in webkit [272065] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add reporting for some syscalls
https://bugs.webkit.org/show_bug.cgi?id=221135
<rdar://problem/73513138>

Reviewed by Brent Fulgham.

Add reporting for some syscalls in the WebContent process on macOS in order to determine if they are being used.

  • WebProcess/com.apple.WebProcess.sb.in:
10:11 AM Changeset in webkit [272064] by ddkilzer@apple.com
  • 6 edits in trunk

check-webkit-style: warn about WTF::BlockPtr use in JavaScriptCore until ARC is enabled
<https://webkit.org/b/221108>
<rdar://problem/73726640>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • API/JSVirtualMachine.mm:
  • inspector/remote/RemoteConnectionToTarget.h:
  • Remove or replace unused <wtf/BlockPtr.h> headers.

Tools:

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

(_is_javascriptcore_file): Add.

  • Extract code to reuse from check_identifier_name_in_declaration().

(check_include_line):
(check_language):

  • Add check for use of WTF::BlockPtr.

(check_identifier_name_in_declaration):

  • Use _is_javascriptcore_file().

(CppChecker):

  • Add 'security/javascriptcore_wtf_blockptr' to list of checkers.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTestBase.perform_language_rules_check):

  • Add 'security/javascriptcore_wtf_blockptr' to list of checkers for testing header includes.

(OrderOfIncludesTest.test_check_wtf_blockptr_usage_in_javascriptcore):

9:34 AM Changeset in webkit [272063] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [BigSur wk1] media/mediacapabilities/vp9.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221095

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-01-29

  • platform/mac-wk1/TestExpectations:
9:20 AM Changeset in webkit [272062] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Switch over to legacy line layout when inline tree is required
https://bugs.webkit.org/show_bug.cgi?id=221118

Reviewed by Antti Koivisto.

These functions still require inline tree.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::generateLineBoxRects const):
(WebCore::RenderInline::absoluteRects const):
(WebCore::RenderInline::absoluteQuads const):
(WebCore::RenderInline::absoluteQuadsIgnoringContinuation const):
(WebCore::RenderInline::addFocusRingRects):

9:15 AM Changeset in webkit [272061] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Two 'tests' are running with out expectation files that are not real tests.
https://bugs.webkit.org/show_bug.cgi?id=208477

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
7:11 AM Changeset in webkit [272060] by commit-queue@webkit.org
  • 14 edits
    2 adds in trunk

Unreviewed, reverting r272052.
https://bugs.webkit.org/show_bug.cgi?id=221132

WPT mediacapture-record/MediaRecorder-stop.html is broken

Reverted changeset:

"Use WebRTC GPU process flag for MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=220967
https://trac.webkit.org/changeset/272052

6:53 AM Changeset in webkit [272059] by Said Abou-Hallawa
  • 3 edits
    2 adds in trunk

REGRESSION(r262893): feComponentTransfer is not rendered correctly on Retina display
https://bugs.webkit.org/show_bug.cgi?id=220576

Reviewed by Simon Fraser.

Source/WebCore:

convertImageDataToColorSpace() creates a temporary ImageBuffer with the
size of m_premultipliedImageResult. This ImageBuffer has to be scaled
with the filterScale(). But the size of m_premultipliedImageResult is
scaled with the filterScale(). This means, convertImageDataToColorSpace()
applies the filterScale() twice to the temporary ImageBuffer.

The fix is to create the temporary ImageBuffer with the unscaled size of
the input ImageData and scale it with the filterScale().

Test: fast/hidpi/filters-component-transfer.html

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::convertImageDataToColorSpace):
(WebCore::FilterEffect::copyPremultipliedResult):

LayoutTests:

  • fast/hidpi/filters-component-transfer-expected.html: Added.
  • fast/hidpi/filters-component-transfer.html: Added.
5:03 AM Changeset in webkit [272058] by commit-queue@webkit.org
  • 17 edits in trunk/Source/WebKit

Some type serialization encoders are implemented in Encoder class
https://bugs.webkit.org/show_bug.cgi?id=220519

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-29
Reviewed by Chris Dumez.

Move arithmetic type and enum type serialization from Encoder to
ArgumentCoder. This makes it a bit simpler to implement multiple
Encoder types, as the serialization code is consistently separate
from the Encoder. WebGL SHM IPC stream extensions would eventually
need a similar but slightly different Encoder.

Since Encoder is intentionally coupled with the Decoder, do the
corresponding modification to Decoder class for consistency.

Reimplement Has{Legacy,Modern}Decoder for ease of forward declaration
and (perhaps?) in a bit simpler terms.

Encoder::operator<<() and Encoder::encode() were the same function.
Remove Encoder::encode().

No new tests, a refactor.

  • NetworkProcess/NetworkSocketChannel.h:
  • Platform/IPC/ArgumentCoder.h:

(IPC::Detail::TestLegacyDecoder):
(IPC::Detail::TestModernDecoder):
(IPC::ArgumentCoder::encode):
(IPC::ArgumentCoder::decode):

  • Platform/IPC/ArgumentCoders.h:
  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::sendSync):

  • Platform/IPC/Decoder.h:

(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Platform/IPC/Encoder.h:
  • Platform/IPC/MessageSender.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):

  • Platform/cocoa/SharedMemoryCocoa.cpp:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):

  • Shared/RemoteLayerTree/RemoteScrollingUIState.cpp:

(WebKit::RemoteScrollingUIState::encode const):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::send):
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPC::sendMessage):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

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

[GTK] return-type-c-linkage warnings
https://bugs.webkit.org/show_bug.cgi?id=221047

Patch by Philippe Normand <pnormand@igalia.com> on 2021-01-29
Reviewed by Carlos Garcia Campos.

Remove extern "C" braces, un-needed for private C++ objects.

Source/WebCore:

  • platform/network/soup/WebKitFormDataInputStream.h:

Source/WebKit:

  • NetworkProcess/soup/WebKitDirectoryInputStream.h:
2:46 AM Changeset in webkit [272056] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[JSC] Implement --artifact-exec-wrapper
https://bugs.webkit.org/show_bug.cgi?id=220924

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-01-29
Reviewed by Carlos Alberto Lopez Perez.

Add an option to specify a wrapper for executing the built
artifacts for JSC (i.e. jsc, testmasm, ...). This is useful when
crossbuilding, to be able to specify the ELF interpreter and
LD_LIBRARY_PATH for the built executables (and only those; the
scripts may well execute native binaries that shouldn't be
wrapped). It's not needed when running the tests on the remotes
(as generate-bundle will take care of all that), but helps
e.g. when running 32-bit ARM binaries on a 64-bit host and not
using the system compiler/libraries.

This patch also simplifies the bytecode cache helper by switching
the argument order and changes a couple of uses of pathToVM to
vmCommand for consistency. It should be noted that
--artifact-exec-wrapper is not compatible with
--force-architecture. That shouldn't be a problem as (a) the use
cases of the two flags don't seem to overlap and (b) the exec
wrapper can subsume the functionality of --force-architecture.

  • Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper.sh:
  • Scripts/run-javascriptcore-tests:

(runTest):
(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
2:36 AM Changeset in webkit [272055] by Philippe Normand
  • 9 edits in trunk

[GStreamer][Playbin3] Support for CEA-608 closed captioned media
https://bugs.webkit.org/show_bug.cgi?id=220654

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Playbin2 currently doesn't support closed-caption formats such as CEA-608 and CEA-708.
However playbin3's decodebin3 will expose a source pad for these, so our text combiner can
handle this format, by adding a custom encoder that converts CEA-608 to WebVTT.

No new tests, although media/media-captions.html and media/track/track-in-band-style.html
will now pass when this env var is set WEBKIT_GST_USE_PLAYBIN3=1.

  • Modules/mediacontrols/mediaControlsAdwaita.css: Synchronize text-track-container and cue

CSS with mediaControlsBase.css.
(video::-webkit-media-text-track-container,):
(video::-webkit-media-text-track-container):
(video::cue):
(video::cue(:future)):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: Set track kind according

to the GstStream format this track represents.
(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Drive-by, check

WEBKIT_GST_USE_PLAYBIN3 contents and sprinkle a few more debug calls.
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::timeChanged):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp: Plug custom encoder handling

conversion of CEA-608 to WebVTT.
(webKitTextCombinerHandleCapsEvent):
(webkitTextCombinerReleasePad):
(webKitTextCombinerConstructed):

LayoutTests:

  • media/track/track-in-band-style-expected.txt:
  • media/track/track-in-band-style.html:
2:01 AM Changeset in webkit [272054] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

[css-flexbox] REGRESSION(r266695): content inside a <button> inside a flex container has a height of 0 without a declared min-height
https://bugs.webkit.org/show_bug.cgi?id=220946

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: css3/flexbox/percentage-descendants-of-skipped-flex-item.html

r252620 added an optimization which saves layouts for flexbox containers' descendants with percentage heights.
That optimization relies on a hash map of percentage height descendants that is filled in with calls to
addPercentHeightDescendant().

FlexibleBoxImpl's like RenderButton might wrap their children in anonymous blocks. Those anonymous blocks are
skipped for percentage height calculations in RenderBox::computePercentageLogicalHeight() and thus
addPercentHeightDescendant() is never called for them. This means that hasPercentageHeightDescendants() would
always wrongly return false for a child of a <button> with a percentage height.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childHasPercentHeightDescendants const): Renamed from hasPercentHeightDescendants in
order not to clash with RenderBlock method. It now also checks whether flex items skipped from percentage
height calculations are the containing blocks of any percentage height descendant of the flex container
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::hasPercentHeightDescendants const): Deleted.

  • rendering/RenderFlexibleBox.h:

LayoutTests:

  • css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Added.
  • css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Added.
1:01 AM Changeset in webkit [272053] by youenn@apple.com
  • 6 edits in trunk

[MacOS] Enable WebKitTestRunner audio and video capture in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=221035

Reviewed by Eric Carlson.

Tools:

Remove the default TestOptions values and instead on MacOS rely on capture in GPUProcess.
On iOS, capture ill still happen inprocess for the time being.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

fast/mediastream/media-stream-track-interrupted.html needs to be run with mock audio capture in process
as interruption mock testing is only supported this way.
SpeechRecognition in GPUProcess is not yet working so we disable capture in GPU Process for these two tests
until SpeechRecognition in GPUProcess is supported.

  • fast/mediastream/media-stream-track-interrupted.html:
  • fast/speechrecognition/start-recognition-then-stop.html:
  • fast/speechrecognition/start-second-recognition.html:
12:53 AM Changeset in webkit [272052] by youenn@apple.com
  • 14 edits
    2 deletes in trunk

Use WebRTC GPU process flag for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=220967

Reviewed by Eric Carlson.

Source/WebCore:

Remove Internals::setUseGPUProcessForWebRTC and rely on WebRTC codec feature flag.

  • Modules/mediarecorder/MediaRecorderProvider.h:
  • testing/Internals.cpp:

(WebCore::Internals::setUseGPUProcessForWebRTC): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • WebProcess/GPU/webrtc/MediaRecorderProvider.cpp:

(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):

LayoutTests:

Update test to use feature flag instead of internals API.
Removing webrtc/video-gpuProcess.html since it is now equivalent to webrtc/video.html.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html:
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
  • http/wpt/mediarecorder/MediaRecorder-requestData.html:
  • http/wpt/mediarecorder/mute-tracks.html:
  • http/wpt/mediarecorder/pause-recording.html:
  • platform/glib/TestExpectations:
  • webrtc/video-gpuProcess-expected.txt: Deleted.
  • webrtc/video-gpuProcess.html: Deleted.
12:49 AM Changeset in webkit [272051] by Carlos Garcia Campos
  • 7 edits
    2 adds in trunk

[SOUP] Use a GInputStream to set the request body in preparation for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=221034

Reviewed by Adrian Perez de Castro.

Source/WebCore:

In libsoup3, the request body can be set using a stream. Add the stream now, that can still be used in libsoup2
to set the body data. This moves the FormData processing code to WebKitFormDataInputStream and also implements
the file seek and range length, which makes test http/tests/local/blob/send-hybrid-blob-using-open-panel.html pass.

  • platform/SourcesSoup.txt:
  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupMessageBody const):

  • platform/network/soup/WebKitFormDataInputStream.cpp: Added.

(webkitFormDataInputStreamCreateNextStream):
(webkitFormDataInputStreamRead):
(webkitFormDataInputStreamClose):
(webkit_form_data_input_stream_class_init):
(webkitFormDataInputStreamNew):
(webkitFormDataInputStreamReadAll):

  • platform/network/soup/WebKitFormDataInputStream.h: Added.

Tools:

Add WebKitFormDataInputStream as an exception for some style checker rules.

  • Scripts/webkitpy/style/checker.py:

LayoutTests:

Remove expectations of http/tests/local/blob/send-hybrid-blob-using-open-panel.html that is now passing.

  • platform/gtk/TestExpectations:
12:47 AM Changeset in webkit [272050] by youenn@apple.com
  • 10 edits in trunk

Recover audio and video capture from GPUProcess crash
https://bugs.webkit.org/show_bug.cgi?id=221086

Reviewed by Eric Carlson.

Make RemoteRealtimeMediaSource observe GPU process crash.
If RemoteRealtimeMediaSource is live and capturing in GPUProcess, restart capture from WebProcess.
If GPU process crashes, make sure to send back the necessary entitlements and information to GPUProcess
of which processes are allowed to capture.

Covered by API test.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::gpuProcessCrashed):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::didUpdateSourceConnection):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:

(WebKit::RemoteRealtimeMediaSource::create):
(WebKit::RemoteRealtimeMediaSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeMediaSource::~RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeMediaSource.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):
(WebKit::UserMediaCaptureManager::didUpdateSourceConnection):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
12:04 AM Changeset in webkit [272049] by commit-queue@webkit.org
  • 4 edits in trunk

Fix logic error in shouldComputeLogicalHeightFromAspectRatio
https://bugs.webkit.org/show_bug.cgi?id=220965

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-29
Reviewed by Darin Adler.

Source/WebCore:

Logical height that uses percentages should be computed through
aspect-ratio only if it is not resolvable.

Test: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-005.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::shouldComputeLogicalHeightFromAspectRatio const):

LayoutTests:

percentage-resolution-005.html now passes.

Jan 28, 2021:

8:56 PM Changeset in webkit [272048] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Gardening API release passes and some debug crashes

Unreviewed test gardening.

Many debug crashes still to be listed.

  • TestWebKitAPI/glib/TestExpectations.json:
8:06 PM Changeset in webkit [272047] by mmaxfield@apple.com
  • 9 edits in trunk

Minor cleanup in CSSFontFaceSetClient
https://bugs.webkit.org/show_bug.cgi?id=221019

Reviewed by Ryosuke Niwa.

Source/WebCore:

Split up CSSFontFaceSetClient into two pieces:

  • CSSFontFaceSet::FontEventClient
  • CSSFontFaceSet::FontModifiedObserver

One is a Client because it's a struct with 3 callback methods that take different arguments.
The other is an observer because it's just a single callback method that takes no arguments
and has no return.

Both of these types are CanMakeWeakPtr, so lifetime is automatically managed.

Test: WTF_WeakPtr.MultipleInheritance

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::addFontModifiedObserver):
(WebCore::CSSFontFaceSet::addFontEventClient):
(WebCore::CSSFontFaceSet::incrementActiveCount):
(WebCore::CSSFontFaceSet::decrementActiveCount):
(WebCore::CSSFontFaceSet::add):
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::fontStateChanged):
(WebCore::CSSFontFaceSet::fontPropertyChanged):
(WebCore::CSSFontFaceSet::addClient): Deleted.
(WebCore::CSSFontFaceSet::removeClient): Deleted.

  • css/CSSFontFaceSet.h:

(WebCore::CSSFontFaceSetClient::faceFinished): Deleted.
(WebCore::CSSFontFaceSetClient::fontModified): Deleted.
(WebCore::CSSFontFaceSetClient::startedLoading): Deleted.
(WebCore::CSSFontFaceSetClient::completedLoading): Deleted.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::m_version):
(WebCore::CSSFontSelector::~CSSFontSelector):

  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::FontFaceSet):
(WebCore::FontFaceSet::~FontFaceSet):
(WebCore::FontFaceSet::startedLoading):
(WebCore::FontFaceSet::documentDidFinishLoading):
(WebCore::FontFaceSet::completedLoading):

  • css/FontFaceSet.h:

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::MultipleInheritanceDerived::meowCalled const):
(TestWebKitAPI::MultipleInheritanceDerived::woofCalled const):
(TestWebKitAPI::TEST):

7:57 PM Changeset in webkit [272046] by Chris Dumez
  • 5 edits in trunk/Source

[macOS] Policy for warning about or killing processes using too much memory triggers too easily
https://bugs.webkit.org/show_bug.cgi?id=221104
<rdar://73625621>

Reviewed by Geoff Garen.

The policy for warning about or killing processes using too much memory was triggering too
easily. I made the following changes to the policy to address this:

  1. We no longer kill WebProcesses associated with a visible (parented) view under any circumstances. We used to kill active WebProcesses when they reached 4GB. We would also kill visible WebProcesses when they reached 2GB if there were visible but not active / focused.
  2. For background WebProcesses (associated with non visible / parented views), I have raised the kill limit from 2GB to 4GB.
  3. For foreground WebProcesses (associated with visible / parent views), I have also raised the limit to show the excessive memory usage banner from 2GB to 4GB.

Source/WebCore:

  • page/PerformanceMonitor.cpp:

(WebCore::PerformanceMonitor::activityStateChanged):

Source/WTF:

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillOfInactiveProcess):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):
(WTF::MemoryPressureHandler::shrinkOrDie):
(WTF::MemoryPressureHandler::measurementTimerFired):

  • wtf/MemoryPressureHandler.h:
7:49 PM Changeset in webkit [272045] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Remove some uses of FontSelector from within CSSFontFace
https://bugs.webkit.org/show_bug.cgi?id=221064

Reviewed by Darin Adler.

This is one of the steps toward https://bugs.webkit.org/show_bug.cgi?id=208351 "CSSFontFace should
not need its m_fontSelector data member."

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadTiming const):
(WebCore::CSSFontFace::allowUserInstalledFonts const): Deleted.
(WebCore::fontLoadTimingOverride): Deleted.
(WebCore::CSSFontFace::shouldIgnoreFontLoadCompletions const): Deleted.

  • css/CSSFontFace.h:
7:42 PM Changeset in webkit [272044] by mmaxfield@apple.com
  • 4 edits in trunk/PerformanceTests

MotionMark focus test can cause extreme variance in whichever test runs directly after it
https://bugs.webkit.org/show_bug.cgi?id=221075
<rdar://problem/72143661>

Reviewed by Said Abou-Hallawa.

The focus test loads up the window server with work, which runs asynchronously from WebKit's run loop.
This means that the window server can still be busy when the next test starts.

In r270959 we already tried to combat this, and it was mostly successful, but not as successful as we'd
like. This patch goes further by:

  1. Bumping up the warmup timeout to 2000ms from 1000ms
  2. Making the warmup render at least 30 frames. This means that a single extremely long frame can't fill up the entire warmup period.
  • MotionMark/developer.html:
  • MotionMark/resources/runner/motionmark.js:

(this.clear):

  • MotionMark/tests/resources/main.js:

(Benchmark.Utilities.createClass):
(_animateLoop):

6:54 PM Changeset in webkit [272043] by commit-queue@webkit.org
  • 4 edits in trunk

[ Big Sur ] media/media-source/media-source-webm-init-inside-segment.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220552
<rdar://problem/73048070>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-01-28
Reviewed by Jer Noble.

Source/WebCore:

No new tests - fixes an existing test.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::supportedAudioCodecs): Don't make the webm supported codec
conditional.
This change makes the webm audio support consistent with video support. supportedAudioCodecs
is used by the libwebm parser to determine which codec IDs are to be rejected outright.
If a codec id that isn't supported is encountered a parsing error will be thrown, which
ultimately causes a HTML audio or video error.

If webkit is compiled without opus or vorbis support, in this particular case we do not want
an error to be produced but instead ignore the track.

LayoutTests:

  • platform/mac/TestExpectations: unskip test
6:21 PM Changeset in webkit [272042] by Megan Gardner
  • 28 edits
    1 copy in trunk/Source

Add plumbing to allow AppHighlights to be stored.
https://bugs.webkit.org/show_bug.cgi?id=221020

Reviewed by Devin Rousso.

Source/WebCore:

  • Modules/highlight/AppHighlightListData.cpp:

(WebCore::AppHighlightListData::toSharedBuffer const):
(WebCore::AppHighlightListData::toData const): Deleted.

  • Modules/highlight/AppHighlightListData.h:
  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::createAndSendAppHighlightsStorage):
(WebCore::AppHighlightStorage::createAppHighlightListData): Deleted.

  • dom/Document.cpp:
  • dom/Document.h:
  • page/Chrome.cpp:

(WebCore::Chrome::didCreateHighlightsStorageData const):

  • page/Chrome.h:
  • page/ChromeClient.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCreateHighlightsStorageData:]):
(-[WKWebView _appHighlightsStorageDelegate]):
(-[WKWebView _setAppHighlightsStorageDelegate:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::didCreateHighlightsStorageData):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateHighlightsStorageData):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::didCreateHighlightsStorageData):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createAppHighlightInSelectedRange):

5:50 PM Changeset in webkit [272041] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcrepy] Handle case where pypi serves invalid html
https://bugs.webkit.org/show_bug.cgi?id=221111
<rdar://problem/73728580>

Reviewed by David Kilzer.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version number.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.archives): Remove possibly invalid <meta> tag from html.

4:39 PM Changeset in webkit [272040] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Adopt new SPI to show no credentials error for the platform authenticator
https://bugs.webkit.org/show_bug.cgi?id=220894
<rdar://problem/73538568>

Reviewed by Brent Fulgham.

Covered by manual tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::updatePresenter):

4:19 PM Changeset in webkit [272039] by Peng Liu
  • 13 edits
    2 adds in trunk

[GPUP][MSE] A video element does not fire “canplaythrough” event if SourceBuffer.abort() is called
https://bugs.webkit.org/show_bug.cgi?id=220964

Reviewed by Jer Noble.

Source/WebCore:

This patch removes initializationSegmentIsHandledSemaphore from both SourceBufferParserAVFObjC
and SourceBufferParserWebM, and implements a media sample cache mechanism in SourceBufferPrivateAVFObjC
to ensure that "Coded Frame Processing" steps execute after SourceBufferPrivate has handled the
initialization segment and enabled video/audio tracks. Without the cache mechanism, some media
samples following the initialization segment may be dropped when we run SourceBufferPrivateAVFObjC
in the GPU process, and the media element won't fire "canplaythrough" event because it cannot change
its ready state to a value greater than HAVE_METADATA.

This patch also implements the mechanism to make sure SourceBufferPrivateAVFObjC::appendCompleted()
runs after all media samples have gone through the "Coded Frame Processing" steps, so that the source
buffer object will fire "update" and "updateend" event after the parser has completedly parsed the
appended buffer.

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

(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
(WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC):
(WebCore::SourceBufferParserAVFObjC::appendData):
Add a parameter "CompletionHandler" to notify the caller that the parser has parsed the whole buffer.
(WebCore::SourceBufferParserAVFObjC::flushPendingMediaData):
(WebCore::SourceBufferParserAVFObjC::resetParserState):
(WebCore::SourceBufferParserAVFObjC::invalidate):
(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):

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

(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
After SourceBufferPrivateClient has done the configuration with the initialization segment, we need to
push the cached media samples (if any) to SourceBufferPrivate to run the "Coded Frame Processing" steps.
And we need to call "appendCompleted()" if there is a pending callback.
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackId):
SourceBufferPrivateAVFObjC needs to cache the media sample if the initialization segment has not been
processed by SourceBufferPrivateClient yet.
(WebCore::SourceBufferPrivateAVFObjC::append):
We need to postpone the "appendCompleted()" callback if there are cached media samples.
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID): Deleted.

  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::~SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::flushPendingMediaData):
(WebCore::SourceBufferParserWebM::resetParserState):
(WebCore::SourceBufferParserWebM::invalidate):
(WebCore::SourceBufferParserWebM::OnClusterBegin):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

Source/WebKit:

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::parseByteSource):

LayoutTests:

  • gpu-process/TestExpectations:
  • media/media-source/media-source-webm-append-buffer-after-abort-expected.txt: Added.
  • media/media-source/media-source-webm-append-buffer-after-abort.html: Added.
  • platform/mac/TestExpectations:
4:05 PM Changeset in webkit [272038] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur Wk1] media/video-ended-event-negative-playback.html is flaky text failure.
https://bugs.webkit.org/show_bug.cgi?id=221106

Unreviewed test guardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-01-28

  • platform/mac-wk1/TestExpectations:
3:49 PM Changeset in webkit [272037] by Alan Coon
  • 1 copy in tags/Safari-612.1.1

Tag Safari-612.1.1.

2:58 PM Changeset in webkit [272036] by Alan Coon
  • 10 edits in branches/safari-611-branch/Source

Cherry-pick r271873. rdar://problem/73722521

REGRESSION (r270874): Some React Native apps are reported broken on iOS
https://bugs.webkit.org/show_bug.cgi?id=220809

Reviewed by Saam Barati.

Source/JavaScriptCore:

r270874 fixed for/in shadowing issue by introducing an invariant: a property
returned by getOwn*PropertyNames() in DontEnumPropertiesMode::Exclude should be
reported as Enumerable? by getOwnPropertySlot(). Otherwise, for/in skips the
property, which causes RN apps to break.

Since there is no way to enforce this invariant for opaque API objects like
JSCallbackObject, this change skips Enumerable? check for them by introducing
GetOwnPropertySlotMayBeWrongAboutDontEnum out of line type info flag.

Also, this patch reverts JSCallbackObject::getOwnPropertySlot() changes of r270874
that are no longer necessary and observable (via Object.getOwnPropertyDescriptor).

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
  • API/tests/testapiScripts/testapi.js:
  • runtime/JSObject.cpp: (JSC::JSObject::hasEnumerableProperty const):
  • runtime/JSTypeInfo.h: (JSC::TypeInfo::getOwnPropertySlotMayBeWrongAboutDontEnum const):

Source/WebCore:

  • bridge/runtime_object.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.h:

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

2:24 PM Changeset in webkit [272035] by Martin Robinson
  • 32 edits in trunk

Add support for logical variants of 'scroll-padding' and 'scroll-margin'
https://bugs.webkit.org/show_bug.cgi?id=220766
<rdar://problem/73661278>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update test expectations for this change.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-scroll-snap/inheritance-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-computed-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-shorthand-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-valid-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-computed-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-shorthand-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-valid-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-computed-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-invalid-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-shorthand-expected.txt:
  • web-platform-tests/css/css-scroll-snap/parsing/scroll-padding-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Add support for logical scroll-margin and scroll-padding properties. Also
improve parsing of scroll-padding which should not accept negative values and
should accept "auto" values. The spec gives flexibility for how to interpret
"auto", but for us this should just be 0 currently.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Add support for logical
margin and padding longhands and shortands.

  • css/CSSProperties.json: Ditto. Allow padding to accept "auto" as well.
  • css/CSSProperty.cpp:

(WebCore::CSSProperty::resolveDirectionAwareProperty): Ditto.
(WebCore::CSSProperty::isDirectionAwareProperty): Ditto.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const): Ditto.
(WebCore::StyleProperties::asText const): Ditto.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeScrollPadding): Added this helper that accepts a length, a percentage,
or auto.
(WebCore::CSSPropertyParser::parseSingleValue): Added support for logical longhands.
(WebCore::CSSPropertyParser::parseShorthand): Added support for logical shorthands.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::computeScrollSnapPortOrAreaRect): Use minimumValueForLength here because
auto should resolve to 0px.

  • rendering/RenderBox.cpp:

(RenderBox::scrollPaddingForViewportRect): Ditto.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialScrollPadding): Initialize scroll-padding values to
auto as specified.

  • rendering/style/StyleRareNonInheritedData.h: Ditto.

LayoutTests:

Update test expectations.

  • css3/scroll-snap/scroll-snap-inherit-expected.txt:
  • css3/scroll-snap/scroll-snap-inherit.html:
  • css3/scroll-snap/scroll-snap-initial-expected.txt:
  • css3/scroll-snap/scroll-snap-initial.html:
  • css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
  • css3/scroll-snap/scroll-snap-property-computed-style.js:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
1:58 PM Changeset in webkit [272034] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed macOS build fix after r272020.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):

12:50 PM Changeset in webkit [272033] by weinig@apple.com
  • 12 edits in trunk/Source/WebCore

Sort colors in ColorTypes.h alphabetically
https://bugs.webkit.org/show_bug.cgi?id=221073

Reviewed by Darin Adler.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:
  • platform/graphics/ColorConversion.cpp:
  • platform/graphics/ColorConversion.h:
  • platform/graphics/ColorSerialization.cpp:
  • platform/graphics/ColorSerialization.h:
  • platform/graphics/ColorSpace.cpp:
  • platform/graphics/ColorSpace.h:
  • platform/graphics/ColorTypes.h:
  • platform/graphics/cg/ColorSpaceCG.cpp:
  • platform/graphics/cg/ColorSpaceCG.h:

Sort things a bit more alphabetically.

12:47 PM Changeset in webkit [272032] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] Remove dead code for TestWebKit1LeaksFactory
https://bugs.webkit.org/show_bug.cgi?id=221090

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/factories.py:

(BuildAndJSCTestsFactory.init):
(TestWebKit1LeaksFactory): Deleted.
(TestWebKit1LeaksFactory.init): Deleted.

  • CISupport/build-webkit-org/steps.py:

(ExtractTestResults.finished):
(ExtractTestResultsAndLeaks): Deleted.
(ExtractTestResultsAndLeaks.addCustomURLs): Deleted.

12:41 PM Changeset in webkit [272031] by ysuzuki@apple.com
  • 1 edit
    5 adds in trunk/JSTests

Unreviewed, recover removed tests
https://bugs.webkit.org/show_bug.cgi?id=220216

These tests are important since we need to ensure that we are not accidentally expose internal-only functions.

  • stress/function-caller-async-arrow-function-body.js:

(shouldBe):
(thingy.foo.async try): Deleted.
(thingy): Deleted.

  • stress/function-caller-async-function-body.js:

(shouldBe):
(thingy.async foo):
(thingy):

  • stress/function-caller-async-generator-body.js:

(shouldBe):
(thingy.async foo):
(thingy):

  • stress/function-caller-generator-body.js:

(shouldBe):
(thingy.foo):
(thingy):

  • stress/function-caller-generator-method-body.js:

(shouldBe):
(thingy.C.prototype.foo):
(thingy.C):
(thingy):

12:37 PM Changeset in webkit [272030] by Lauro Moura
  • 4 edits in trunk/LayoutTests

REGRESSION(r271119) Check for nullness of preamble.caller
https://bugs.webkit.org/show_bug.cgi?id=220610

Reviewed by Yusuke Suzuki.

r271119 changed some kinds of functions to return null when trying to
access its caller property.

This made the preamble helper from indexeddb tests to fail when used
in places like arrow functions, like in
storage/indexeddb/result-request-cycle.html.

This commit makes preamble default to an empty name if the caller is
null.

  • http/tests/IndexedDB/resources/shared.js:

(preamble):

  • imported/blink/storage/indexeddb/resources/shared.js:

(preamble):

  • storage/indexeddb/resources/shared.js:

(preamble):

12:27 PM Changeset in webkit [272029] by Matt Lewis
  • 4 edits in trunk/Tools

Move Mac EWS to macOS Catalina.
https://bugs.webkit.org/show_bug.cgi?id=220818

Reviewed by Aakash Jain.

  • CISupport/ews-build/config.json:
  • CISupport/ews-build/factories_unittest.py:

(TestBuildFactory.test_generic_build_factory):
(TestBuildFactory.test_macos_build_factory):
(TestCommitQueueFactory.test_commit_queue_factory):
(TestLayoutTestsFactory.test_macos_wk1_release_factory):
(TestLayoutTestsFactory.test_macos_wk1_debug_factory):
(TestLayoutTestsFactory.test_macos_wk2_factory):

  • CISupport/ews-build/steps_unittest.py:

(TestAnalyzeCompileWebKitResults.test_filter_logs_containing_error_with_no_error):

12:19 PM Changeset in webkit [272028] by Alan Coon
  • 2 edits in branches/safari-612.1.1-branch/Source/WebCore

Cherry-pick r271994. rdar://problem/73718489

Don't link IOSurfaceAccelerator on simulator builds
https://bugs.webkit.org/show_bug.cgi?id=221066
rdar://73681508

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig: Don't link if the sdk matches "simulator".

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

12:12 PM Changeset in webkit [272027] by Fujii Hironori
  • 8 edits in trunk/Source

Remove the dead code of USE(WINGDI)
https://bugs.webkit.org/show_bug.cgi?id=221079

Reviewed by Don Olmstead.

Source/WebCore:

It was used by WinCE port.

  • platform/graphics/GlyphBufferMembers.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Path.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/PlatformImage.h:

Source/WebKitLegacy/win:

  • Plugins/PluginViewWin.cpp:

(WebCore::PluginView::paintWindowedPluginIntoContext):
(WebCore::PluginView::paint):
(WebCore::PluginView::snapshot):

12:04 PM Changeset in webkit [272026] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION (r271988): WebXR test failures on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=221092

Patch by Ada Chan <ada.chan@apple.com> on 2021-01-28
Reviewed by Chris Dumez.

  • platform/mac/TestExpectations: Skip failing tests
12:01 PM Changeset in webkit [272025] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Line break (and word break opportunity) is not necessarily the last inline item on the line
https://bugs.webkit.org/show_bug.cgi?id=221091

Reviewed by Antti Koivisto.

While both <br> and <wbr> are valid wrap opportunities, the actual wrap position may be at a later position on the line.
e.g. <span style="border-right: 1px solid green">text<br></span> <- the green border should show up on the same line as the text even though it is "after" the forced line break.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):

11:55 AM Changeset in webkit [272024] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Long narrow tables should not be made in data tables unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=221061
<rdar://problem/73681149>

Reviewed by Zalan Bujtas.

Source/WebCore:

Some web authors use long columns/rows of cells for layout purposes. We shouldn't
automatically turn these into data tables based on row count only.
Instead let's ensure there are at least two rows/cols of content before automatically
turning into a data table.

Test: accessibility/narrow-tables-ignored.html

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable const):

LayoutTests:

  • accessibility/narrow-tables-ignored-expected.txt: Added.
  • accessibility/narrow-tables-ignored.html: Added.
11:52 AM Changeset in webkit [272023] by Kocsen Chung
  • 1 copy in tags/Safari-611.1.12.2

Tag Safari-611.1.12.2.

11:47 AM Changeset in webkit [272022] by Kocsen Chung
  • 2 edits in branches/safari-611.1.12-branch/Source/WebCore

Cherry-pick r271994. rdar://problem/73715829

Don't link IOSurfaceAccelerator on simulator builds
https://bugs.webkit.org/show_bug.cgi?id=221066
rdar://73681508

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig: Don't link if the sdk matches "simulator".

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

11:45 AM Changeset in webkit [272021] by Kocsen Chung
  • 8 edits in branches/safari-611.1.12-branch/Source

Versioning.

WebKit-7611.1.12.2

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

[macOS] WebProcess::updateProcessName should initiate network process connection if none exists
https://bugs.webkit.org/show_bug.cgi?id=221094
<rdar://73658122>

Reviewed by Per Arne Vollan.

WebProcess::updateProcessName should initiate network process connection if none exists, instead of giving up
and returning early in this case. Same policy applies to WebProcess::updateActivePages.

This is a follow-up to:
https://trac.webkit.org/changeset/271897/webkit

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):

10:32 AM Changeset in webkit [272019] by Martin Robinson
  • 9 edits in trunk/Source

Make closestSnapOffset a method on ScrollSnapOffsetsInfo
https://bugs.webkit.org/show_bug.cgi?id=221030

Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This should not change behavior.

Make closestSnapOffset a method and change all call sites to use the new method.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::ScrollSnapOffsetsInfo<LayoutUnit>::closestSnapOffset const):
(WebCore::ScrollSnapOffsetsInfo<float>::closestSnapOffset const):

  • page/scrolling/ScrollSnapOffsetsInfo.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset):
(WebCore::ScrollController::adjustScrollDestination):

  • platform/cocoa/ScrollSnapAnimatorState.h:

(WebCore::ScrollSnapAnimatorState::snapOffsetInfo const):
(WebCore::ScrollSnapAnimatorState::setSnapOffsetInfo):

  • platform/cocoa/ScrollSnapAnimatorState.mm:

(WebCore::ScrollSnapAnimatorState::setupAnimationForState):
(WebCore::ScrollSnapAnimatorState::targetOffsetForStartOffset const):

Source/WebKit:

Make closestSnapOffset a method and change all call sites to use the new method.

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):

10:26 AM Changeset in webkit [272018] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Flatpak environment JSON is prematurely deleted with flatpak-spawn calls
https://bugs.webkit.org/show_bug.cgi?id=221070

Reviewed by Philippe Normand.

To avoid nested webkit-flatpak calls overwriting/deleting whe
environment file, only create if there is no such file and only delete
in the same process that created it.

This approach has the drawback of limiting nested calls changing the
variable values and a file undeleted after a crash might avoid the
next normal invocation creating it.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

10:01 AM Changeset in webkit [272017] by pvollan@apple.com
  • 6 edits in trunk/Source

[macOS] Crash when updating color preferences
https://bugs.webkit.org/show_bug.cgi?id=221088
<rdar://problem/73709142>

Reviewed by Brent Fulgham.

Source/WebCore:

Remove previous workaround in r271965 for preventing Launch Services connections, since this is covered
by the new approach in this patch.

  • platform/mac/ThemeMac.mm:

(-[WebCoreThemeWindow isKeyWindow]):
(-[WebCoreThemeWindow invalidateRestorableState]): Deleted.

Source/WebCore/PAL:

Declare NSApplication SPI for updating application information with Launch Services.

  • pal/spi/mac/NSApplicationSPI.h:

Source/WebKit:

After r271965, the WebContent process is no longer allowed to connect to the Launch Services daemon. This introduced a crash
in the WebContent process when color preferences were changed in System Preferences, since AppKit will then attempt to set
application information with Launch Services, which causes a crash when that fails. This patch addresses this issue by
overriding the AppKit method that updates the specific application information with Launch Services, since updating this
information should be required in the WebContent process.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::updateCanQuitQuietlyAndSafely):
(WebKit::WebProcess::platformInitializeWebProcess):

9:28 AM Changeset in webkit [272016] by Brent Fulgham
  • 6 edits in trunk/Source/WebKit

[macOS] Remove reference to deprecated SubmitDiagInfo.domains path
https://bugs.webkit.org/show_bug.cgi?id=221056
<rdar://problem/73474697>

Reviewed by Per Arne Vollan.

macOS does not use SubmitDiagInfo.domains anymore, and even when it did it failed safely.
There's no reason to have this access in any of our sandboxes, and we should remove it.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:00 AM Changeset in webkit [272015] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Remove access to com.apple.BluetoothServices
https://bugs.webkit.org/show_bug.cgi?id=221059
<rdar://problem/70509471>

Reviewed by Alex Christensen.

Remove access to com.apple.BluetoothServices in the WebContent sandbox on macOS, since there are no reports of this being used.

  • UIProcess/WebPageProxy.cpp:

(WebKit::mediaRelatedMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:
8:32 AM Changeset in webkit [272014] by commit-queue@webkit.org
  • 4 edits in trunk

REGRESSION (r271988): XRSession.end() promise is not resolved if PlatformXR::Device::supportsSessionShutdownNotification() returns false
https://bugs.webkit.org/show_bug.cgi?id=221080

Patch by Ada Chan <ada.chan@apple.com> on 2021-01-28
Reviewed by Chris Dumez.

Source/WebCore:

m_endPromise needs to be set before WebXRSession::shutdown() is called
since that can call WebXRSession::didCompleteShutdown() which will
resolve m_endPromise.

This issue caused a timeout in the cleanup step for a test like
imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::end):

LayoutTests:

Enable a test that was timing out, but now passes with the bug fix.

  • platform/mac/TestExpectations:
6:25 AM Changeset in webkit [272013] by aboya@igalia.com
  • 2 edits in trunk/Tools

[GTK] run-gtk-tests: Ensure correct count when subtests are specified
https://bugs.webkit.org/show_bug.cgi?id=221049

Reviewed by Adrian Perez de Castro.

Currently the code of run-gtk-tests adds the number of skipped tests
to the count of total tests. That computation failed to take into
account the case where specific subtests are run (by means of passing
the -p argument), instead of the full test suite.

This patch fixes that, only adding to "total tests" those skipped
subtests that were also specified with the -p argument when using that
mode.

  • glib/api_test_runner.py:

(TestRunner.run_tests):

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

[LFC][IFC] Incorrect soft opportunity position when the inline box starts with an atomic inline box
https://bugs.webkit.org/show_bug.cgi?id=221076

Reviewed by Antti Koivisto.

This patch fixes the following case:

"text_content<span><img></span>"

On trunk we find the soft wrap opportunity after the <span> which could result the following, incorrect line setup
line #1: text_content<span>
line #2 <img></span>
This makes the inline box (<span>) taller than it is supposed to be as it shows up on both the first and the second line.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::nextWrapOpportunity const):

4:48 AM Changeset in webkit [272011] by Lauro Moura
  • 3 edits in trunk/Tools

[Flatpak SDK] Avoid "Invalid byte sequence in conversion input" errors and other encoding issues
https://bugs.webkit.org/show_bug.cgi?id=221068

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.execute_command): Decode the arguments before printing.
(WebkitFlatpak.run_in_sandbox): Avoid iterating mutating dict and
export LANG.

  • flatpak/webkit-bwrap: Ignore LANG as it's exported by

flatpakutils.py.

4:42 AM Changeset in webkit [272010] by Carlos Garcia Campos
  • 10 edits in trunk/Source

[SOUP] Stop using SoupRequest API in preparation for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=220764

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • platform/network/soup/ResourceError.h: Error constructors now receive the failing URL instead of a SoupRequest

that is only used to get its URL.

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::transportError):
(WebCore::ResourceError::httpError):
(WebCore::ResourceError::genericGError):

  • platform/network/soup/ResourceRequest.h: Remmove the constructor that receives a SoupRequest and the

initiating page ID since it's currently unsused.

  • platform/network/soup/ResourceRequestSoup.cpp:
  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

It's gone in libsoup3, we can just use soup_session_send_async() instead, which is what SoupRequest does
internally.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Manually create the SoupMessage. Also connect to content-sniffed
signal that it was handled by SoupRequest internally.
(WebKit::NetworkDataTaskSoup::clearRequest): Remove the SoupRequest reset and clear m_sniffedContentType.
(WebKit::NetworkDataTaskSoup::resume): Use soup_session_send_async(). We need to know the message for passed to
the function from the async ready callback, so we use a struct to pass both the task and the message. In case of
being suspended the struct was attached to the pending result.
(WebKit::NetworkDataTaskSoup::sendRequestCallback): Finish the soup_session_send_async() operation.
(WebKit::NetworkDataTaskSoup::didSendRequest): Set the sniffed content type from m_sniffedContentType.
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): Use SoupMessage instead of SoupRequest to get the URI.
(WebKit::NetworkDataTaskSoup::didSniffContentCallback): Build the sniffed content type and call didSniffContent().
(WebKit::NetworkDataTaskSoup::didSniffContent): Save the passed content type.
(WebKit::NetworkDataTaskSoup::continueAuthenticate): Use m_currentRequest instead of the SoupRequest to build
the authentication error.
(WebKit::NetworkDataTaskSoup::skipInputStreamForRedirectionCallback): Pass the failing URL to the ResourceError constructor.
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection): Ditto.
(WebKit::NetworkDataTaskSoup::readCallback): Ditto.
(WebKit::NetworkDataTaskSoup::requestNextPartCallback): Ditto.

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: Stop setting the initiating page ID in the request because

it's unused.

4:40 AM Changeset in webkit [272009] by Carlos Garcia Campos
  • 15 edits in trunk

Load data URLs in the web process also for synchronous loads
https://bugs.webkit.org/show_bug.cgi?id=220981

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add synchronous API for DataURLDecoder. It now uses a Vector<char> for the data instead of SharedBuffer. That
way, ResourceLoader can create the SharedBuffer from the given data and loader strategy can simply move it.

  • Headers.cmake: Add DataURLDecoder.h.
  • WebCore.xcodeproj/project.pbxproj: Mark DataURLDecoder.h as private.
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL): Adapt to the DataURLDecoder API changes.

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::parseMediaType): Update the data initialization.
(WebCore::DataURLDecoder::decodeBase64): Return bool to indicate success or error and move the resulting vector
instead of creating a SharedBuffer.
(WebCore::DataURLDecoder::decodeEscaped): Move the resulting vector instead of creating a SharedBuffer.
(WebCore::DataURLDecoder::decodeSynchronously): Helper to do the actual decoding synchronously.
(WebCore::DataURLDecoder::decode): Use decodeSynchronously.
(WebCore::DataURLDecoder::decode): Synchronous implementation.

  • platform/network/DataURLDecoder.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::dataURLResponse): Create a ResourceResponse for the given url and DataURLDecoder::Result.

  • platform/text/DecodeEscapeSequences.h:

(WebCore::decodeURLEscapeSequencesAsData): Use Vector<char> so that we can avoid data copies.

Source/WebKit:

In r271879 I removed the support for data URLs in the network process for soup, assuming data URLs were always
loaded from the web process, but that's not the case for synchronous loads.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Schedule an error if URL is not file or HTTP family.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadDataURLSynchronously): Helper to load a Data URL synchronously.
(WebKit::WebLoaderStrategy::loadResourceSynchronously): Call loadDataURLSynchronously for data URLs.

  • WebProcess/Network/WebLoaderStrategy.h:

LayoutTests:

Remove expectations for tests that are no longer crashing.

  • platform/glib/TestExpectations:
2:58 AM Changeset in webkit [272008] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash from CompositeEditCommand::moveParagraphs() using Position instead of VisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=220955

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-01-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

If the start or end VisiblePositions inside InsertListCommand::moveParagraphs()
are null, then makeSimpleRange(start, end) will not return a usable SimpleRange.
Bail out early in this case, similar to bug 220630.

Test: editing/inserting/paragraph-outdent-animationframe-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

LayoutTests:

Add a test to verify that the crash here is resolved
using requestAnimationFrame(). Thanks to Ryosuke Niwa
for cleaning this up and making it reliable.

  • editing/inserting/paragraph-outdent-animationframe-crash-expected.txt: Added.
  • editing/inserting/paragraph-outdent-animationframe-crash.html: Added.
2:20 AM Changeset in webkit [272007] by Manuel Rego Casasnovas
  • 8 edits
    6 adds in trunk/LayoutTests

[selectors] Update :focus-visible tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=221037

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-007-expected.txt:
  • web-platform-tests/css/selectors/focus-visible-007.html:
  • web-platform-tests/css/selectors/focus-visible-011.html:
  • web-platform-tests/css/selectors/focus-visible-013-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-013.html: Added.
  • web-platform-tests/css/selectors/focus-visible-017-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-017.html: Added.
  • web-platform-tests/css/selectors/focus-visible-018-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-018.html: Added.
  • web-platform-tests/css/selectors/w3c-import.log:

LayoutTests:

  • TestExpectations: focus-visible-007.html has been fixed upstream and doesn't need to be skipped now.
  • platform/ios/TestExpectations: Skip focus-visible-013.html as it timeouts in iOS.
1:20 AM Changeset in webkit [272006] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

[JSC] Add JSC_SIGNAL_FOR_GC environment variable for Linux / FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=221081

Reviewed by Mark Lam.

This patch adds JSC_SIGNAL_FOR_GC environment variable,
which changes signal number used for GC suspension.

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::initializePlatformThreading):

12:08 AM Changeset in webkit [272005] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Add JSPromise::rejectedPromise
https://bugs.webkit.org/show_bug.cgi?id=221077

Reviewed by Mark Lam.

This patch adds JSPromise::rejectedPromise static function which can return newly created rejected promise.
The benefit of this function is that it avoids calling JS functions internally. It is efficient, fast, plus,
we can ensure that no JS related error happens (stack-overflow, terminated-execution errors).

  • builtins/PromiseOperations.js:
  • runtime/JSPromise.cpp:

(JSC::JSPromise::rejectedPromise):

  • runtime/JSPromise.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Jan 27, 2021:

10:54 PM Changeset in webkit [272004] by graouts@webkit.org
  • 6 edits
    11 adds in trunk

REGRESSION(r268615): images flicker on apple.com/ios/ios-14
https://bugs.webkit.org/show_bug.cgi?id=221054
<rdar://problem/72880447>

Reviewed by Dean Jackson.

Source/WebCore:

When we added support for accelerated animations of individual transform properties in r268615 (bug 217842),
we made it so that base values of each transform-related property had a non-interpolating animation in the
Core Animation animations list that would combine with interpolating animations for that property as additive
animations. Prior to any of those animations, we'd reset the combined transform with an identity transform
as another non-interpolating animation.

However, we neglected to consider the case where one of the interpolating animations would not start right
away if a positive delay was set. In the case of this apple.com page, the target element would be composited
due to a "will-change: transform" style, and a non-animated "transform" was set as well as an animation for
the "transform" property with a delay.

Since we had a "transform" animation, we'd create a Core Animation animations lists as follows:

  1. non-interpolating, non-additive animation set to the identity matrix
  2. interpolating, additive animation with the keyframes set in the CSS animation, with a begin time set to the current time plus the specified delay

The result of this was that during the animation delay, the static "transform" property was overridden
by animation #1 until animation #2 would kick in.

We now make it so that for each transform-related property, we create a non-interpoloating, additive animation
to represent the static value for that property for the duration of any potential delay until the first
interpolating animation for this property starts.

In this example, the Core Animation animations list is now as follows:

  1. non-interpolating, non-additive animation set to the identity matrix
  2. non-interpolating, additive animation set to the static transform value
  3. interpolating, additive animation with the keyframes set in the CSS animation, with a begin time set to the current time plus the specified delay

We implement this with a new lambda function within GraphicsLayerCA::updateAnimations() called
addAnimationsForProperty() which adds a non-interpolating animation in two cases:

  1. if there is no animation for this property at all, making it last forever
  2. if all animations have a delay, making it last until the first animation starts

Tests: webanimations/multiple-transform-properties-and-multiple-transform-properties-animation-with-delay-on-forced-layer.html

webanimations/rotate-property-and-rotate-animation-with-delay-on-forced-layer.html
webanimations/scale-property-and-scale-animation-with-delay-on-forced-layer.html
webanimations/transform-property-and-transform-animation-with-delay-on-forced-layer.html
webanimations/translate-property-and-translate-animation-with-delay-on-forced-layer.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

LayoutTests:

Add a series of tests ensuring that starting an animation for transform-related properties does not clobber the static
value for this property. We only run those tests on WK2 because running those in WK1 is flaky as there doesn't seem
to be a solid test utility to determine that Core Animation animations have been committed, even with long delays
that would make tests run slow.

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webanimations/multiple-transform-properties-and-multiple-transform-properties-animation-with-delay-on-forced-layer-expected.html: Added.
  • webanimations/multiple-transform-properties-and-multiple-transform-properties-animation-with-delay-on-forced-layer.html: Added.
  • webanimations/resources/wait-until-animations-are-committed.js: Added.
  • webanimations/rotate-property-and-rotate-animation-with-delay-on-forced-layer-expected.html: Added.
  • webanimations/rotate-property-and-rotate-animation-with-delay-on-forced-layer.html: Added.
  • webanimations/scale-property-and-scale-animation-with-delay-on-forced-layer-expected.html: Added.
  • webanimations/scale-property-and-scale-animation-with-delay-on-forced-layer.html: Added.
  • webanimations/transform-property-and-transform-animation-with-delay-on-forced-layer-expected.html: Added.
  • webanimations/transform-property-and-transform-animation-with-delay-on-forced-layer.html: Added.
  • webanimations/translate-property-and-translate-animation-with-delay-on-forced-layer-expected.html: Added.
  • webanimations/translate-property-and-translate-animation-with-delay-on-forced-layer.html: Added.
9:35 PM Changeset in webkit [272003] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.10.3.2

Tag Safari-611.1.10.3.2.

9:28 PM Changeset in webkit [272002] by bshafiei@apple.com
  • 8 edits in branches/safari-611.1.10.3-branch/Source

Versioning.

WebKit-7611.1.10.3.2

9:22 PM Changeset in webkit [272001] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.10.2.2

Tag Safari-611.1.10.2.2.

9:21 PM Changeset in webkit [272000] by ysuzuki@apple.com
  • 5 edits
    1 move
    24 adds in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=221078

Reviewed by Alexey Shvayka.

Update test262 to the latest one.

  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Array/prototype/sort/precise-comparefn-throws.js: Added.

(set logs):
(set const):

  • test262/test/built-ins/Array/prototype/sort/precise-getter-appends-elements.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-decreases-length.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-deletes-predecessor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-deletes-successor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-increases-length.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-pops-elements.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-sets-predecessor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-getter-sets-successor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-prototype-accessors.js: Added.

(set logs):

  • test262/test/built-ins/Array/prototype/sort/precise-prototype-element.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-appends-elements.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-decreases-length.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-deletes-predecessor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-deletes-successor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-increases-length.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-pops-elements.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-sets-predecessor.js: Added.
  • test262/test/built-ins/Array/prototype/sort/precise-setter-sets-successor.js: Added.
  • test262/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js:

(dtf.format):

  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js:

(assert.sameValue):

  • test262/test/language/expressions/class/elements/super-access-from-arrow-func-on-field.js: Added.

(C):
(C.staticFunc):

  • test262/test/language/statements/class/elements/super-access-from-arrow-func-on-field.js: Added.

(C.prototype.func):
(C.staticFunc):
(C):

  • test262/test/language/statements/for-of/head-lhs-async-dot.js: Added.
  • test262/test/language/statements/for-of/head-lhs-async-invalid.js: Added.
  • test262/test/language/statements/for/head-init-async-of.js: Added.

(async of):

  • test262/test262-Revision.txt:
9:17 PM Changeset in webkit [271999] by bshafiei@apple.com
  • 8 edits in branches/safari-611.1.10.2-branch/Source

Versioning.

WebKit-7611.1.10.2.2

8:59 PM Changeset in webkit [271998] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.10.0.6

Tag Safari-611.1.10.0.6.

8:53 PM Changeset in webkit [271997] by bshafiei@apple.com
  • 8 edits in branches/safari-611.1.10.0-branch/Source

Versioning.

WebKit-7611.1.10.0.6

8:31 PM Changeset in webkit [271996] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.10.1.5

Tag Safari-611.1.10.1.5.

8:29 PM Changeset in webkit [271995] by bshafiei@apple.com
  • 8 edits in branches/safari-611.1.10.1-branch/Source

Versioning.

WebKit-7611.1.10.1.5

5:34 PM Changeset in webkit [271994] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Don't link IOSurfaceAccelerator on simulator builds
https://bugs.webkit.org/show_bug.cgi?id=221066
rdar://73681508

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig: Don't link if the sdk matches "simulator".
5:31 PM Changeset in webkit [271993] by ysuzuki@apple.com
  • 71 edits
    2 copies
    6 adds in trunk

WebAssembly: add support for stream APIs
https://bugs.webkit.org/show_bug.cgi?id=173105

Reviewed by Keith Miller.

.:

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/WebKitFeatures.cmake:

JSTests:

  • wasm/stress/resources/tsf.wasm: Added.
  • wasm/stress/wasm-streaming-compiler-compile.js: Added.

(shouldBe):
(slice):
(async main):
(main.catch):

  • wasm/stress/wasm-streaming-compiler-instantiate.js: Added.

(shouldBe):
(slice):
(async main.):
(async main):
(main.catch):

LayoutTests/imported/w3c:

  • web-platform-tests/wasm/wasm_stream_compile_test-expected.txt:
  • web-platform-tests/wasm/wasm_stream_compile_test.html:
  • web-platform-tests/wasm/wasm_stream_instantiate_test-expected.txt:
  • web-platform-tests/wasm/wasm_stream_instantiate_test.html:
  • web-platform-tests/wasm/webapi/abort.any-expected.txt:
  • web-platform-tests/wasm/webapi/abort.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/body.any-expected.txt:
  • web-platform-tests/wasm/webapi/body.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/contenttype.any-expected.txt:
  • web-platform-tests/wasm/webapi/contenttype.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/empty-body.any-expected.txt:
  • web-platform-tests/wasm/webapi/empty-body.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/historical.any-expected.txt:
  • web-platform-tests/wasm/webapi/historical.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/idlharness.any-expected.txt:
  • web-platform-tests/wasm/webapi/idlharness.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming.any-expected.txt:
  • web-platform-tests/wasm/webapi/instantiateStreaming.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/invalid-args.any-expected.txt:
  • web-platform-tests/wasm/webapi/invalid-args.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/invalid-code.any-expected.txt:
  • web-platform-tests/wasm/webapi/invalid-code.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/modified-contenttype.any-expected.txt:
  • web-platform-tests/wasm/webapi/modified-contenttype.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/origin.sub.any-expected.txt:
  • web-platform-tests/wasm/webapi/origin.sub.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/rejected-arg.any-expected.txt:
  • web-platform-tests/wasm/webapi/rejected-arg.any.worker-expected.txt:
  • web-platform-tests/wasm/webapi/status.any-expected.txt:
  • web-platform-tests/wasm/webapi/status.any.worker-expected.txt:

Source/JavaScriptCore:

This patch implements WebAssembly.{compileStreaming,instantiateStreaming}. JavaScriptCore offers Wasm::StreamingCompiler interface to WebCore,
so that WebCore can feed FetchResponse and compile wasm code in a streaming fashion.

Wasm::StreamingCompiler drives Wasm::LLIntPlan while it does not use Wasm::Worklist since currently Wasm::Worklist is not suitable abstraction for
streaming compilation which generates compilation tasks incrementally. Instead, Wasm::StreamingCompiler generates Wasm::StreamingPlan and enqueues
them to Wasm::Worklist, and each StreamingPlan compiles one function at a time. And we gather these compiled functions into the one LLIntPlan and
finally Wasm::StreamingCompiler completes Wasm::LLIntPlan.

We already have Wasm::StreamingParser, which is designed for streaming compilation. We can pass bytes to this parser, and this parser invokes a callback
when a new wasm function is found. Then, Wasm::StreamingCompiler generates Wasm::StreamingPlan for that.

We add WasmStreamingCompiler JS objects to JSC shell to test streaming compilation easily.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/WebAssembly.js:

(compileStreaming):
(instantiateStreaming):

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::cancelPendingWork):

  • runtime/DeferredWorkTimer.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:
  • runtime/OptionsList.h:
  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::BBQPlan):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::CodeBlock):

  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::EntryPlan):

  • wasm/WasmEntryPlan.h:
  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::LLIntPlan):
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
(JSC::Wasm::LLIntPlan::completeInStreaming):
(JSC::Wasm::LLIntPlan::didCompileFunctionInStreaming):
(JSC::Wasm::LLIntPlan::didFailInStreaming):

  • wasm/WasmLLIntPlan.h:
  • wasm/WasmModule.cpp:

(JSC::Wasm::Module::validateSync):
(JSC::Wasm::Module::validateAsync):

  • wasm/WasmStreamingCompiler.cpp: Added.

(JSC::Wasm::StreamingCompiler::StreamingCompiler):
(JSC::Wasm::StreamingCompiler::~StreamingCompiler):
(JSC::Wasm::StreamingCompiler::create):
(JSC::Wasm::StreamingCompiler::didReceiveFunctionData):
(JSC::Wasm::StreamingCompiler::didCompileFunction):
(JSC::Wasm::StreamingCompiler::didFinishParsing):
(JSC::Wasm::StreamingCompiler::completeIfNecessary):
(JSC::Wasm::StreamingCompiler::didComplete):
(JSC::Wasm::StreamingCompiler::finalize):
(JSC::Wasm::StreamingCompiler::fail):
(JSC::Wasm::StreamingCompiler::cancel):

  • wasm/WasmStreamingCompiler.h: Added.
  • wasm/WasmStreamingParser.cpp:
  • wasm/WasmStreamingParser.h:
  • wasm/WasmStreamingPlan.cpp: Copied from Source/JavaScriptCore/builtins/WebAssembly.js.

(JSC::Wasm::StreamingPlan::StreamingPlan):
(JSC::Wasm::StreamingPlan::work):

  • wasm/WasmStreamingPlan.h: Copied from Source/JavaScriptCore/wasm/js/JSWebAssembly.h.
  • wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):
(JSC::JSWebAssembly::instantiateForStreaming):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/JSWebAssembly.h:

Source/WebCore:

Since WebAssembly.{compileStreaming,instantiateStreaming} needs to handle FetchResponse which is WebCore type, they need to be implemented in WebCore side.
To achieve that, JSC offers callback to JSGlobalObject, and WebCore JSDOMGlobalObject can implement them to offer WebAssembly.{compileStreaming,instantiateStreaming} features.

We use JSC's Wasm::StreamingCompiler to implement them. WebCore feeds bytes from FetchResponse and drives Wasm::StreamingCompiler.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::handleResponseOnStreamingAction):
(WebCore::JSDOMGlobalObject::compileStreaming):
(WebCore::JSDOMGlobalObject::instantiateStreaming):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMPromiseDeferred.cpp:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::tryAllocate): Deleted.
(WebCore::isResponseCorrect): Deleted.
(WebCore::handleResponseOnStreamingAction): Deleted.
(WebCore::JSDOMWindowBase::compileStreaming): Deleted.
(WebCore::JSDOMWindowBase::instantiateStreaming): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:

Source/WTF:

  • wtf/PlatformEnable.h:
5:22 PM Changeset in webkit [271992] by weinig@apple.com
  • 16 edits
    10 adds in trunk

Add support for color(a98-rgb ...) as part of CSS Color 4
https://bugs.webkit.org/show_bug.cgi?id=221018

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Add some new WPT tests for color(a98-rgb ) that will be upstreamed shortly.

  • web-platform-tests/css/css-color/a98rgb-001-expected.html: Added.
  • web-platform-tests/css/css-color/a98rgb-001.html: Added.
  • web-platform-tests/css/css-color/a98rgb-002-expected.html: Added.
  • web-platform-tests/css/css-color/a98rgb-002.html: Added.
  • web-platform-tests/css/css-color/a98rgb-003-expected.html: Added.
  • web-platform-tests/css/css-color/a98rgb-003.html: Added.
  • web-platform-tests/css/css-color/a98rgb-004-expected.html: Added.
  • web-platform-tests/css/css-color/a98rgb-004.html: Added.

Source/WebCore:

  • css/CSSValueKeywords.in:

Add keyword for a98-rgb and a comment indicating that lab, which already exists as a value,
is also a valid identifier for the color function.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForSRGBOrDisplayP3Parameters): Deleted.
Generalize parseColorFunctionForSRGBOrDisplayP3Parameters to work for all RGB types, which now include
A98RGB.

  • platform/graphics/ColorConversion.cpp:

(WebCore::SRGBTransferFunction::fromLinearClamping):
(WebCore::SRGBTransferFunction::toLinearClamping):
(WebCore::SRGBTransferFunction::fromLinearNonClamping):
(WebCore::SRGBTransferFunction::toLinearNonClamping):
(WebCore::A98RGBTransferFunction::fromLinearClamping):
(WebCore::A98RGBTransferFunction::toLinearClamping):
(WebCore::A98RGBTransferFunction::fromLinearNonClamping):
(WebCore::A98RGBTransferFunction::toLinearNonClamping):
(WebCore::toLinearClamping):
(WebCore::fromLinearClamping):
(WebCore::toLinearNonClamping):
(WebCore::fromLinearNonClamping):
(WebCore::toLinearSRGBA):
(WebCore::toLinearExtendedSRGBA):
(WebCore::toSRGBA):
(WebCore::toExtendedSRGBA):
(WebCore::toLinearDisplayP3):
(WebCore::toDisplayP3):
(WebCore::toLinearA98RGB):
(WebCore::toA98RGB):
(WebCore::toXYZA):
(WebCore::linearToRGBColorComponentClamping): Deleted.
(WebCore::rgbToLinearColorComponentClamping): Deleted.
(WebCore::linearToRGBColorComponentNonClamping): Deleted.
(WebCore::rgbToLinearColorComponentNonClamping): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::toA98RGB):
(WebCore::toLinearA98RGB):
(WebCore::callWithColorType):
Add conversion support for A98RGB and LinearA98RGB. Move gamma conversion functions
into structs named for the type of transfer function. While not used currently, this
will allow future templatizing of conversion to avoid so much boiler plate in the
future.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorSerialization.h:

Add serialization support for color(a98-rgb ...).

  • platform/graphics/ColorSpace.cpp:
  • platform/graphics/ColorSpace.h:

Add A98RGB as a ColorSpace, which really just means it is something
ExtendedColor can hold.

  • platform/graphics/cg/ColorSpaceCG.cpp:
  • platform/graphics/cg/ColorSpaceCG.h:

Add support for creating a CGColorSpace for A98RGB.

  • platform/graphics/ColorTypes.h:

(WebCore::operator==):
(WebCore::operator!=):
(WebCore::RGBAType::RGBAType):
(WebCore::asColorComponents):
(WebCore::SRGBA::SRGBA): Deleted.
(WebCore::ExtendedSRGBA::ExtendedSRGBA): Deleted.
(WebCore::LinearSRGBA::LinearSRGBA): Deleted.
(WebCore::LinearExtendedSRGBA::LinearExtendedSRGBA): Deleted.
(WebCore::DisplayP3::DisplayP3): Deleted.
(WebCore::LinearDisplayP3::LinearDisplayP3): Deleted.
(WebCore::callWithColorType): Deleted.
Simplify adding new RGB color types by adding a shared base class, RGBAType
and and a shared asColorComponents funciton. Also simplify all color types
by removing the need to define your own operator==/!= for each type by having
a single one that operates on any type that can have asColorComponents() called
on it.

To create a new RGB color (one with red, green and blue named components) one
now only needs to do:

template<typename T> struct Foo : RGBAType<Foo, T, RGBModel<T>> {

using RGBAType<Foo, T, RGBModel<T>>::RGBAType;

};
template<typename T> Foo(T, T, T, T) -> Foo<T>;

Additionally, if the type has gamma encoded and linear versions, it should have
either a using GammaEncoded = ... or using Linear = ... decalaring its
counterpart and should add a colorSpace member if the type is used by ExtendedColor.

Note, the deduction guide is necessary to keep things like the following working:

auto color = SRGB { float1, float2, ... };

Unfortunately, deduction does not come along when you explitily inherit constructors
like is being done for these. See the "Deducing from inherited constructors" section
in http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1021r4.html.

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformColorSpace):
Update to use new name for gamma conversion functions.

LayoutTests:

Un-fail some now passing tests.

  • fast/css/parsing-a98rgb-colors-expected.txt: Added.
  • fast/css/parsing-a98rgb-colors.html: Added.

Add new tests for parsing color(a98-rgb ) colors.

5:11 PM Changeset in webkit [271991] by Devin Rousso
  • 6 edits in trunk/Source/WebKit

[iOS] add accessibility image extraction contextmenu item for revealing images
https://bugs.webkit.org/show_bug.cgi?id=221058
<rdar://problem/73382220>

Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
(+[_WKElementAction imageForElementActionType:]):
(elementActionTypeToUIActionIdentifier):
(uiActionIdentifierToElementActionType):

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

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):

  • Configurations/WebKit.xcconfig:

Link UniformTypeIdentifiers.framework for use in WebKitAdditions.

4:36 PM Changeset in webkit [271990] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Add basic authentication
https://bugs.webkit.org/show_bug.cgi?id=221052

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
3:58 PM Changeset in webkit [271989] by Chris Dumez
  • 8 edits in trunk/Source

[GPUProcess] Move ownership of RingBuffer backing used by RemoteAudioSourceProviderManager::RemoteAudio to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=221048

Reviewed by Geoffrey Garen.

Move ownership of RingBuffer backing used by RemoteAudioSourceProviderManager::RemoteAudio
from the GPUProcess to WebProcess, for jetsam purposes. This moves half a megabyte of memory
from the GPUProcess to the WebProcess on https://foobar404.github.io/Wave.js.

  • Platform/SharedMemory.cpp:

(WebKit::SharedMemory::Handle::takeOwnershipOfMemory const):

  • Platform/SharedMemory.h:

Add takeOwnershipOfMemory() API to SharedMemory::Handle to take ownership of memory and
assign it to a particular memory ledger, via mach_memory_entry_ownership().

  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::toVMMemoryLedger):
(WebKit::SharedMemory::Handle::takeOwnershipOfMemory const):
Add implementation to take ownership of memory when given a mach port.

(WebKit::SharedMemory::allocate):
Add VM_FLAGS_PURGABLE flag when calling mach_vm_allocate() so that memory ownership can
be transferred later on.

(WebKit::makeMemoryEntry):
First try to call mach_make_memory_entry_64() without the MAP_MEM_VM_SHARE flag since this
flag prevents transfer of the memory ownership via mach_memory_entry_ownership(). If this
fails, we try again with the MAP_MEM_VM_SHARE flag, to be safe. MAP_MEM_VM_SHARE allows
the memory entry to cover any virtual range, possibly backed by multiple VM objects.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:

Tweak the sandbox to allow the WebProcess to call mach_memory_entry_ownership().

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:

(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::setStorage):
Take ownership of RingBuffer backing memory.

2:14 PM Changeset in webkit [271988] by commit-queue@webkit.org
  • 12 edits
    7 adds in trunk

Send the end XRSessionEvent after the platform-specific steps for session shutdown have completed
https://bugs.webkit.org/show_bug.cgi?id=220835

Patch by Ada Chan <ada.chan@apple.com> on 2021-01-27
Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/wpt/webxr/xrSession_end_device_reports_shutdown.https.html

http/wpt/webxr/xrSession_ended_by_system.https.html
http/wpt/webxr/xrSession_reject_multiple_end.https.html

  • Add the TrackingAndRenderingClient protocol that the Device can hold a

weak reference to during a tracking and rendering session. WebXRSession
implements that protocol to handle cleanup after shutdown has completed.

  • For platforms to report asynchronous completion of the session shutdown,

they can implement PlatformXR::Device::supportsSessionShutdownNotification()
to return true. This way WebXRSession will wait for the shutdown completion
(via the TrackingAndRenderingClient::sessionDidEnd() callback) before sending
the end XRSessionEvent and resolving the XRSession::end() promise.

  • Update WebXRSession::end() to throw an InvalidStateError if called more

than once. This also matches Chromium's current behavior.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::shutdown):
(WebCore::WebXRSession::didCompleteShutdown):
(WebCore::WebXRSession::end):
(WebCore::WebXRSession::sessionDidEnd):

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRSession.idl:
  • platform/xr/PlatformXR.h:

(PlatformXR::Device::setTrackingAndRenderingClient):
(PlatformXR::Device::supportsSessionShutdownNotification const):

  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::simulateShutdownCompleted):
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering):
(WebCore::WebFakeXRDevice::setSupportsShutdownNotification):
(WebCore::WebFakeXRDevice::simulateShutdown):

  • testing/WebFakeXRDevice.h:
  • testing/WebFakeXRDevice.idl:

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
  • http/wpt/webxr/xrSession_end_device_reports_shutdown.https.html: Added.
  • http/wpt/webxr/xrSession_end_device_reports_shutdown.https-expected.html: Added.
  • http/wpt/webxr/xrSession_ended_by_system.https.html: Added.
  • http/wpt/webxr/xrSession_ended_by_system.https-expected.html: Added.
  • http/wpt/webxr/xrSession_reject_multiple_end.https.html: Added.
  • http/wpt/webxr/xrSession_reject_multiple_end.https-expected.html: Added.
2:11 PM Changeset in webkit [271987] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Avoid using DirectCall when executable is wasm function
https://bugs.webkit.org/show_bug.cgi?id=221055

Reviewed by Keith Miller.

This is a partial patch from https://bugs.webkit.org/show_bug.cgi?id=220339, which is reverted because of Facebook crash.
For now, we just avoid using DirectCall to wasm functions so that normal Call will be used, and it is efficient. This
patch avoids JetStream2 regression.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • jit/JITOperations.cpp:

(JSC::virtualForWithFunction):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::create):

2:08 PM Changeset in webkit [271986] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271710. rdar://problem/73678158

[macOS] The development WebContent XPC service crashes under WebKit::AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=220777
<rdar://problem/73382584>

Reviewed by Brent Fulgham.

This happens because the development XPC service does not have the required private entitlement to enable message filtering in the sandbox,
and therefore fails to apply the sandbox. The existing runtime switching to enable message filtering based on the presence of the entitlement
is not working correctly. The 'if' clause checking the sandbox parameter in the sandbox cannot be nested inside an 'allow' clause, it appears.

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox):
  • WebProcess/com.apple.WebProcess.sb.in:

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

2:08 PM Changeset in webkit [271985] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source

Cherry-pick r271620. rdar://problem/73678115

Web Inspector: Font Details sidebar - Fractional variation axis ranges/default values are rounded.
https://bugs.webkit.org/show_bug.cgi?id=220474

Reviewed by BJ Burg.

Source/WebCore:

Use float instead of int for variation axis range and defaults, as these values can be fractional.

  • platform/graphics/FontPlatformData.h: (WebCore::FontPlatformData::FontVariationAxis::FontVariationAxis): (WebCore::FontPlatformData::FontVariationAxis::defaultValue const): (WebCore::FontPlatformData::FontVariationAxis::minimumValue const): (WebCore::FontPlatformData::FontVariationAxis::maximumValue const):

Source/WebInspectorUI:

Fixes Font Details sidebar display of variation axis values, ranges, and defaults to show fractional precision
when such precision is present.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/FontDetailsPanel.js: (WI.FontDetailsPanel.prototype.refresh): (WI.FontDetailsPanel.prototype._formatSimpleSingleValue): (WI.FontDetailsPanel.prototype._formatVariationValue): (WI.FontDetailsPanel.prototype._createVariationValueElement): (WI.FontDetailsPanel.prototype._formatAxisValueAsString):
  • Show fractional values with between 0 and 2 decimal places.

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

1:59 PM Changeset in webkit [271984] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, rebaselining builtin generator test result files
https://bugs.webkit.org/show_bug.cgi?id=221028

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
1:15 PM Changeset in webkit [271983] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU Process] Remove blind skips from TestExpectations file
https://bugs.webkit.org/show_bug.cgi?id=220935

Patch by Rini Patel <rini_patel@apple.com> on 2021-01-27
Reviewed by Simon Fraser.

  • gpu-process/TestExpectations:
1:07 PM Changeset in webkit [271982] by jer.noble@apple.com
  • 4 edits
    1 move in trunk/Source/WebCore

Make MediaRemoteSoftLink an Objective-C++ file
https://bugs.webkit.org/show_bug.cgi?id=221057
<rdar://73587795>

Reviewed by Tim Horton.

MediaRemoteSoftLink.cpp indirectly includes <MediaRemote/MediaRemote.h>, which is Objective-C.
So MediaRemoteSoftLink needs to be Objective-C++ to avoid compile errors.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/MediaRemoteSoftLink.mm: Renamed from Source/WebCore/platform/mac/MediaRemoteSoftLink.cpp.
1:00 PM Changeset in webkit [271981] by Alan Coon
  • 15 edits
    2 adds in branches/safari-612.1.1-branch

Cherry-pick r271930. rdar://problem/73674739

REGRESSION (r271584): Hovering slowly over and out of "Top 100" items on liberation.fr does not restore animated state
https://bugs.webkit.org/show_bug.cgi?id=220862
<rdar://problem/73501684>

Reviewed by Simon Fraser.

Source/WebCore:

The optimization in r271584 fails to invalidate hover/active style when clearing the existing state under some circumstances.

Test: fast/selectors/hover-invalidation-descendant-clear.html

  • dom/Document.cpp: (WebCore::Document::updateHoverActiveState):

We would do descendant invalidation when changing the hover/active state of the rootmost changing element.
However since the state of descendants was changed before this invalidation happened we would try to invalidate
them in a tree that was already in the new state.

Fix by scoping the descendant invalidation over all changes.

  • dom/Element.cpp: (WebCore::Element::setActive): (WebCore::Element::setHovered):

Switch to new 3-state enum type that allows us to skip descendant invalidation that has already been done by the caller.
Skope it to Style namepace.

  • dom/Element.h:
  • html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::setActive):
  • html/HTMLAnchorElement.h:
  • html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::setActive): (WebCore::HTMLLabelElement::setHovered):
  • html/HTMLLabelElement.h:
  • html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::setHovered):
  • html/shadow/SpinButtonElement.h:
  • style/PseudoClassChangeInvalidation.cpp: (WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
  • style/PseudoClassChangeInvalidation.h: (WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
  • style/StyleValidity.h:

LayoutTests:

  • fast/selectors/hover-invalidation-descendant-clear-expected.html: Added.
  • fast/selectors/hover-invalidation-descendant-clear.html: Added.

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

1:00 PM Changeset in webkit [271980] by Alan Coon
  • 2 edits in branches/safari-612.1.1-branch/Source/WebKit

Cherry-pick r271887. rdar://problem/73674897

Revert part of r271493
https://bugs.webkit.org/show_bug.cgi?id=220066
<rdar://problem/73615999>

We have an internal app that calls registerSchemeForCustomProtocol on a non-main thread before WebKit initializes.
While this is a problem, we have to not crash on launch until they fix this.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm: (+[WKBrowsingContextController registerSchemeForCustomProtocol:]): (+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):

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

1:00 PM Changeset in webkit [271979] by Alan Coon
  • 19 edits
    1 delete in branches/safari-612.1.1-branch

Cherry-pick r271878. rdar://problem/73674734

Unreviewed, reverting r271514 and r271549

Made TestWebKitAPI.WebKit.PrintFrame flaky

Reverted changeset:

"Use event loop to set title"
https://bugs.webkit.org/show_bug.cgi?id=218496
https://trac.webkit.org/changeset/271514

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

1:00 PM Changeset in webkit [271978] by Alan Coon
  • 4 edits in branches/safari-612.1.1-branch

Cherry-pick r271871. rdar://problem/73674787

ASSERT NOT REACHED in WebCore::DisplayList::isDrawingItem
https://bugs.webkit.org/show_bug.cgi?id=220948
<rdar://problem/73588734>

Reviewed by Tim Horton.

Source/WebCore:

Additionally, fix a bug that is also caught when running this API test under debug. In the case where an out of
line item failed to decode (and is thus invalid), we still attempt to invoke its destructor when we're done
iterating, under DisplayList::iterator::clearCurrentItem(); we should not be doing this in the case where
m_isValid is false, since we already know that m_currentBufferForItem either contains an item that has
already been destroyed, or contains garbage data.

  • platform/graphics/displaylists/DisplayList.cpp: (WebCore::DisplayList::DisplayList::iterator::clearCurrentItem):

Tools:

The API test DisplayListTests.OutOfLineItemDecodingFailure was intended to read from the display list copy
rather than the original list, in order to exercise the (intentional) decoding failure.

Instead, this test erroneously attempts to read from the original display list (which, importantly, doesn't have
a reading client) and ends up exercising the decoding failure anyways, but additionally hits a debug assertion
in the process. Simply fix this by reading out of the correct display list (and rename the original display list
in the process to make the test more clear).

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp: (TestWebKitAPI::TEST)

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

12:55 PM Changeset in webkit [271977] by Alan Coon
  • 1 copy in branches/safari-612.1.1-branch

New branch.

12:53 PM Changeset in webkit [271976] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit

[iOS] Conditionalize debugging support on internal builds
https://bugs.webkit.org/show_bug.cgi?id=221053
<rdar://problem/73520300>

Reviewed by Per Arne Vollan.

We should restrict use of the (debugging-support) rules in our iOS sandboxes to internal OS, since those
features are not accessible to production users.

Since these restrictions don't impact end user debugging use cases, we'll also rename the rules to
"internal-debugging-support".

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:49 PM Changeset in webkit [271975] by Nikolas Zimmermann
  • 5 edits
    2 copies
    6 deletes in trunk

REGRESSION (r243266): SVGStopElement does not react upon 'offset' attribute changes
https://bugs.webkit.org/show_bug.cgi?id=220971

Reviewed by Said Abou-Hallawa.

Fix regression from r243266. SVGAnimatedNumber::create() needs a
reference to the owner SVGElement, otherwise it cannot react to dynamic
changes of the attribute and invalidate the element.

This is covered by two pixel tests: svg/custom/deep-dynamic-updates.svg
and svg/custom/js-update-stop.svg, however since we no longer run pixel
tests by default nobody noticed this. Convert these tests to reftests
to avoid this in the future.

Source/WebCore:

Tests: svg/custom/deep-dynamic-updates-expected.svg

svg/custom/js-update-stop-expected.svg

  • svg/SVGStopElement.h:

LayoutTests:

  • svg/custom/deep-dynamic-updates-expected.svg: Copied from LayoutTests/svg/custom/deep-dynamic-updates.svg.
  • svg/custom/deep-dynamic-updates-expected.txt: Removed.
  • svg/custom/deep-dynamic-updates.svg:
  • svg/custom/js-update-stop-expected.svg: Copied from LayoutTests/svg/custom/js-update-stop.svg.
  • svg/custom/js-update-stop-expected.txt: Removed.
  • svg/custom/js-update-stop.svg:
12:47 PM Changeset in webkit [271974] by Alan Coon
  • 1 copy in tags/Safari-611.1.10.0.5

Tag Safari-611.1.10.0.5.

12:44 PM Changeset in webkit [271973] by Alan Coon
  • 1 copy in tags/Safari-611.1.10.1.4

Tag Safari-611.1.10.1.4.

12:42 PM Changeset in webkit [271972] by Alan Coon
  • 8 edits in branches/safari-611.1.10.0-branch/Source

Versioning.

WebKit-7611.1.10.0.5

12:39 PM Changeset in webkit [271971] by Alan Coon
  • 8 edits in branches/safari-611.1.10.1-branch/Source

Versioning.

WebKit-7611.1.10.1.4

12:24 PM Changeset in webkit [271970] by Kate Cheney
  • 14 edits in trunk

WKWebView closeAllMediaPresentations API does not have a completion handler
https://bugs.webkit.org/show_bug.cgi?id=220741
<rdar://problem/73045904>

Reviewed by Youenn Fablet.

Source/WebKit:

Adds a completion handler to WKWebView closeAllMediaPresentations.
This required handling the case for video fullscreen, picture-in-picture,
and element fullscreen. Closing fullscreen requires multiple async
operations, some of which go out of WebKit scope like PIPViewControllerDelegate
functions, so for simplicity, the callbacks are stored in
the respective *FullscreenManagerProxy object and called when
didExitFullscreen() is executed. Any additional calls to closeAllMediaPresentations
made before the previous has finished will have their callbacks
appended to a vector and called when all presentations have closed.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView closeAllMediaPresentations:]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _allMediaPresentationsClosed]):
New SPI for testing. Previously these tests used JavaScript to check
for inline video but updating the JS value is async and may not be completed
by the time didExitFullscreen() is called. So, this SPI will help avoid
flakiness.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenModelContext::requestFullscreenModeWithCallback):
(WebKit::VideoFullscreenManagerProxy::~VideoFullscreenManagerProxy):
(WebKit::VideoFullscreenManagerProxy::forEachSession):
(WebKit::VideoFullscreenManagerProxy::callCloseCompletionHandlers):
(WebKit::VideoFullscreenManagerProxy::requestFullscreenModeWithCallback):
(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
Add a new requestFullscreenModeWithCallback function
for VideoFullscreenModelContext which is used when closing fullscreen
video. This way we don't need to adjust an overridden function.

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::~WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::callCloseCompletionHandlers):
(WebKit::WebFullScreenManagerProxy::closeWithCallback):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):

  • UIProcess/WebFullScreenManagerProxy.h:

Ditto, create a new function here to be used only for closing
media presentations so we don't have to pass empty completion handlers
unnecessarily.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pauseAllMediaPlayback):
(WebKit::WebPageProxy::suspendAllMediaPlayback):
(WebKit::WebPageProxy::resumeAllMediaPlayback):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::pauseAllMediaPlayback):
(WebKit::WebPage::suspendAllMediaPlayback):
(WebKit::WebPage::resumeAllMediaPlayback):

  • WebProcess/WebPage/WebPage.h:

Remove unnecessary voids.

Tools:

Update API tests to use the new completion handler. Move from using JS
to a new SPI to check for inline video to avoid flakiness because the
JS value is async and may not be completed by the time
didExitFullscreen() is called.

Add a new case for multiple sequential calls to
closeAllMediaPresentations.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:

(TEST):

12:10 PM Changeset in webkit [271969] by Devin Rousso
  • 15 edits
    1 add in trunk

[iOS] expose existing macOS-only -[WKWebView _pageExtendedBackgroundColor] SPI
https://bugs.webkit.org/show_bug.cgi?id=221015
<rdar://problem/73636453>

Reviewed by Tim Horton.

Source/WebKit:

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didCommitLayerTree):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange):

  • UIProcess/PageClient.h:

(WebKit::PageClient::pageExtendedBackgroundColorWillChange): Added.
(WebKit::PageClient::pageExtendedBackgroundColorDidChange): Added.

  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::pageExtendedBackgroundColorWillChange): Added.
(WebKit::PageClientImplCocoa::pageExtendedBackgroundColorDidChange): Added.
Add support for ObjC KVO of -[WKWebView _themeColor].

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::pageExtendedBackgroundColorDidChange): Added.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::flushPendingPageExtendedBackgroundColorChange): Added.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange const):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
On macOS, instead of messaging the UIProcess as soon as changes happen, keep a flag of
whether the pageExtendedBackgroundColor has changed and use it when updating rendering so
that change messages are kept in sync (e.g. modifying <meta name="theme-color" content="...">).

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _pageExtendedBackgroundColor]): Added.

  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView _pageExtendedBackgroundColor]): Deleted.

Tools:

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

(TEST.PageExtendedBackgroundColor.OnLoad):
(TEST.PageExtendedBackgroundColor.MultipleTags):
(-[WKWebViewPageExtendedBackgroundColorObserver initWithWebView:]):
(-[WKWebViewPageExtendedBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]):
(TEST.PageExtendedBackgroundColor.KVO):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
11:20 AM Changeset in webkit [271968] by weinig@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/css/css-color/system-color-compute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220947

Reviewed by Simon Fraser.

  • platform/ios/imported/w3c/web-platform-tests/css/css-color: Added.

Add iOS specific result to account for different system colors.

11:19 AM Changeset in webkit [271967] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, reverting r271186.
https://bugs.webkit.org/show_bug.cgi?id=221051

Breaks Facebook on arm64e devices

Reverted changeset:

"[JSC] DFG/FTL DirectCall need to respect Wasm IC"
https://bugs.webkit.org/show_bug.cgi?id=220339
https://trac.webkit.org/changeset/271186

10:45 AM Changeset in webkit [271966] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove CFPBS access in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=221000
<rdar://problem/70501475>

Reviewed by Brent Fulgham.

Remove CFPBS access in the WebContent process on macOS, since there are no reports of this being used.

  • WebProcess/com.apple.WebProcess.sb.in:
10:36 AM Changeset in webkit [271965] by pvollan@apple.com
  • 6 edits in trunk/Source

[macOS] Re-enable ENABLE_SET_WEBCONTENT_PROCESS_INFORMATION_IN_NETWORK_PROCESS
https://bugs.webkit.org/show_bug.cgi?id=221039
<rdar://problem/73665061>
Source/WebCore:

Reviewed by Brent Fulgham.

The commit r271907 introduced a crash, since it denied access to the Launch Services daemon, which AppKit is using to get and set
application information, for example whether the app is foreground or not. To work around this, the WebCoreThemeWindow has been made
borderless, and the method +[NSWindow invalidateRestorableState] is overridden to do nothing. Running the default
+[NSWindow invalidateRestorableState] will exercise code which tries to reach out to the Launch Services daemon, and crashes if
unable to do so. This functionality should not be required in the WebContent process, and can be disabled.

  • platform/mac/ThemeMac.mm:

(-[WebCoreThemeWindow invalidateRestorableState]):
(-[WebCoreThemeView window]):

Source/WebKit:

Reviewed by Brent Fulgham.

Work around crash introduced in r271907, by disabling persistent UI. Having persistent UI enabled will exercise code
which tries to connect with the Launch Services daemon, and crash if that fails.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Reviewed by Brent Fulgham.

  • wtf/PlatformEnableCocoa.h:
10:07 AM Changeset in webkit [271964] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix sandbox violation file-read-data /dev/dtracehelper in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=221046
<rdar://problem/73625718>

Reviewed by Brent Fulgham.

Reading this file should be allowed in the Networking process on internal installs on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
10:07 AM Changeset in webkit [271963] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] WebContent sandbox regex incorrect
https://bugs.webkit.org/show_bug.cgi?id=221045
<rdar://problem/73473985>

Reviewed by Brent Fulgham.

When the regex is intended to match the character '.', the pattern '\.' should be used.

  • WebProcess/com.apple.WebProcess.sb.in:
10:05 AM Changeset in webkit [271962] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Tighten IOUSB access when camera is enabled
https://bugs.webkit.org/show_bug.cgi?id=221042
<rdar://problem/70504956>

Reviewed by Brent Fulgham.

Tighten IOUSB access when camera is enabled in the WebContent process on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
10:04 AM Changeset in webkit [271961] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove shm-write access to com.apple.AppleDatabaseChanged
https://bugs.webkit.org/show_bug.cgi?id=221041
<rdar://problem/70501252>

Reviewed by Brent Fulgham.

Remove shm-write access to com.apple.AppleDatabaseChanged in the WebContent process on maOS, since there are no reports
of this being used.

  • WebProcess/com.apple.WebProcess.sb.in:
10:04 AM Changeset in webkit [271960] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Enforce IOKit message filtering
https://bugs.webkit.org/show_bug.cgi?id=221038
<rdar://problem/71333134>

Reviewed by Brent Fulgham.

Update IOKit message filters based on telemetry, and deny messages not observed being used.

  • WebProcess/com.apple.WebProcess.sb.in:
10:03 AM Changeset in webkit [271959] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove fsctl-command in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=221002
<rdar://problem/70504451>

Reviewed by Brent Fulgham.

Remove fsctl-command in the WebContent process on macOS, since there are no reports of this being used.

  • WebProcess/com.apple.WebProcess.sb.in:
9:39 AM Changeset in webkit [271958] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use SFTranscription instead of SFTranscriptionSegment for SpeechRecognitionAlternative
https://bugs.webkit.org/show_bug.cgi?id=221026

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-27
Reviewed by Youenn Fablet.

So SpeechRecognitionAlternative contains a sentence instead of a word, which matches Blink's behavior.

Manually tested in MiniBrowser.

  • Modules/speech/cocoa/WebSpeechRecognizerTask.mm:

(-[WebSpeechRecognizerTaskImpl callbackWithTranscriptions:isFinal:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didHypothesizeTranscription:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didFinishRecognition:]):
(-[WebSpeechRecognizerTaskImpl callbackWithResult:isFinal:]): Deleted.

9:37 AM Changeset in webkit [271957] by Russell Epstein
  • 1 copy in tags/Safari-610.4.3.1.5

Tag Safari-610.4.3.1.5.

9:24 AM Changeset in webkit [271956] by Russell Epstein
  • 8 edits in branches/safari-610.4.3.1-branch/Source

Versioning.

WebKit-7610.4.3.1.5

9:14 AM Changeset in webkit [271955] by aboya@igalia.com
  • 3 edits in trunk/Tools

[GTK] run-gtk-tests: Crashing and non-existent tests should not count as a pass
https://bugs.webkit.org/show_bug.cgi?id=220863

Reviewed by Michael Catanzaro.

The current implementation doesn't account for test binaries that have
not emitted any subtests. This is the case when a test binary doesn't
exist or it crashes.

Also, in the latter case, the stderr of the crashed processes was not
being outputted to the user, masking a crashing test binary as a
passing test.

This patch fixes both issues: It adds several warning prints when
binaries can't be run or fail to add any subtest, emitting the stderr
generated by the failing or crashing binary.

  • glib/api_test_runner.py:

(TestRunner._run_test):
(TestRunner.run_tests):

  • glib/glib_test_runner.py:

(GLibTestRunner.run):

8:12 AM Changeset in webkit [271954] by youenn@apple.com
  • 2 edits in trunk/Tools

Enable GPU WebRTC codecs in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=220936

Reviewed by Eric Carlson.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

8:05 AM Changeset in webkit [271953] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r269166): not enough space around up/down arrows in execution context picker
https://bugs.webkit.org/show_bug.cgi?id=221014
<rdar://problem/73635556>

Patch by Razvan Caliman <Razvan Caliman> on 2021-01-27
Reviewed by BJ Burg.

Fix shorthand notation for logical property margin-start
used on active execution context picker.

  • UserInterface/Views/QuickConsole.css:

(.quick-console > .navigation-bar .active-execution-context > .selector-arrows):

7:37 AM Changeset in webkit [271952] by Philippe Normand
  • 3 edits in trunk/Tools

REGRESSION(r271634): keyring still failing to retrieve secrets
https://bugs.webkit.org/show_bug.cgi?id=221029

Reviewed by Sergio Villar Senin.

  • Scripts/libraries/webkitscmpy/setup.py: Reduce version number duplication by reusing the

Version object declared in the package.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version and downgrade to

usable keyring version (in Linux at least).

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

[LFC][IFC] Expand "empty line" fast path support for multiline inline boxes
https://bugs.webkit.org/show_bug.cgi?id=221024

Reviewed by Antti Koivisto.

Let's check if the inline box starts at this empty line and update its geometry accordingly.
Note that just because an inline box end (</span>) is on an empty line, it does not necessarily make the inline box
taller (e.g. <div>some content<span><br></span> <- while the </span> is after the <br> on a new and empty line, it does
not stretch the associated inline box).

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

6:21 AM Changeset in webkit [271950] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk

Unreviewed, reverting r271940.
https://bugs.webkit.org/show_bug.cgi?id=221040

Some tests are failing on bots

Reverted changeset:

"[MacOS] Enable NSURLSession WebSocket code path in
WebKitTestRunner"
https://bugs.webkit.org/show_bug.cgi?id=220973
https://trac.webkit.org/changeset/271940

6:17 AM Changeset in webkit [271949] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Restrict access to syslog in sandbox
https://bugs.webkit.org/show_bug.cgi?id=220983
<rdar://problem/73512626>

Reviewed by Brent Fulgham.

Only allow syslog access on internal builds on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
6:13 AM Changeset in webkit [271948] by commit-queue@webkit.org
  • 7 edits in trunk

Handle zero aspect-ratio width/height
https://bugs.webkit.org/show_bug.cgi?id=220970

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-27
Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Treat aspect-ratio with zero width and/or height internally
as auto, but when serializing maintain the original input.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueAspectRatio):

LayoutTests:

Enable some tests that pass now.

6:03 AM Changeset in webkit [271947] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK] Test /webkit/WebKitSettings/webkit-settings is failing since r271354
https://bugs.webkit.org/show_bug.cgi?id=221033

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-01-27
Reviewed by Adrian Perez de Castro.

Since r271354 the font values set in WebKitSettings are always the same you get no matter what the current DPI
is. The scaling factor is applied to the font size without actually changing the setting.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings): Update the test to check the correct behavior.

  • TestWebKitAPI/glib/TestExpectations.json: Remove expectation for the test.
4:39 AM Changeset in webkit [271946] by Antti Koivisto
  • 26 edits
    2 copies
    1 add in trunk/Source

Implement visibility based resource load scheduling for low priority resources
https://bugs.webkit.org/show_bug.cgi?id=220728

Reviewed by Geoff Garen.

Source/WebCore:

Track load scheduling mode during on per page basis.
Add support for prioritizing resources based on their visibility.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/LoaderStrategy.cpp:

(WebCore::LoaderStrategy::setResourceLoadSchedulingMode):
(WebCore::LoaderStrategy::prioritizeResourceLoads):

  • loader/LoaderStrategy.h:
  • page/Page.cpp:

(WebCore::Page::didStartProvisionalLoad):
(WebCore::Page::didFinishLoad):

Sheduled modes is is disabled at latest when the load completes.

(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::prioritizeVisibleResources):

After rendering update, if in scheduled mode, check the visibility status of images resources.
Prioritize loads for visible resources.
Move out of the shceduled mode if the document is fully parsed and all visibile loads are completed.

(WebCore::Page::setLoadSchedulingMode):

  • page/Page.h:

(WebCore::Page::loadSchedulingMode const):

Source/WebKit:

Add a simple network process side resource load scheduler. When active it limits the number of low priority resource loads
(mostly images) that are passed to network layer. The current limit is 6 per host, reduced by any ongoing higher priority
loads. This reduces impact of low priority loads to higher priority ones, espcially on HTTP/2.

The scheduler also supports reprioritizing loads. This is used to let images currently in the viewport to skip the queue
and start their loads faster.

The feature is not enabled in this patch.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::cancel):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::clearPageSpecificData):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::setResourceLoadSchedulingMode):
(WebKit::NetworkConnectionToWebProcess::prioritizeResourceLoads):
(WebKit::NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics): Deleted.

Rename to clearPageSpecificData and move out of #if.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::start):
(WebKit::NetworkLoad::startWithScheduling):
(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::didCompleteWithError):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadScheduler.cpp: Added.

(WebKit::NetworkLoadScheduler::HostContext::schedule):
(WebKit::NetworkLoadScheduler::HostContext::unschedule):
(WebKit::NetworkLoadScheduler::HostContext::prioritize):
(WebKit::NetworkLoadScheduler::HostContext::start):
(WebKit::NetworkLoadScheduler::HostContext::~HostContext):
(WebKit::NetworkLoadScheduler::schedule):
(WebKit::NetworkLoadScheduler::unschedule):
(WebKit::NetworkLoadScheduler::setResourceLoadSchedulingMode):
(WebKit::NetworkLoadScheduler::prioritizeLoads):
(WebKit::NetworkLoadScheduler::clearPageData):
(WebKit::NetworkLoadScheduler::contextForLoad):

  • NetworkProcess/NetworkLoadScheduler.h: Copied from Source/WebCore/loader/LoaderStrategy.cpp.
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::networkLoadScheduler):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::setResourceLoadSchedulingMode):
(WebKit::WebLoaderStrategy::prioritizeResourceLoads):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add an internal setting, default to off for now.

4:12 AM Changeset in webkit [271945] by commit-queue@webkit.org
  • 3 edits in trunk

Set ruby-indent-level to 4
https://bugs.webkit.org/show_bug.cgi?id=220982

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-01-27
Reviewed by Fujii Hironori.

All the ruby source files seem to default to 4 as the indent
level; make it official.

  • .dir-locals.el:
  • .editorconfig:
3:41 AM Changeset in webkit [271944] by Manuel Rego Casasnovas
  • 3 edits
    5 moves
    3 adds
    3 deletes in trunk/LayoutTests

Upstream to WPT Shadow DOM tests related to :focus pseudo-class
https://bugs.webkit.org/show_bug.cgi?id=220907

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

These tests landed originally in r250788 (bug #202432).

  • web-platform-tests/shadow-dom/focus/focus-pseudo-matches-on-shadow-host-expected.txt: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-matches-on-shadow-host-expected.txt.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-matches-on-shadow-host.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-matches-on-shadow-host.html. Removed workaround to wait until :focus matches on "focus" event, as that has been fixed in r271146 (bug #220243).
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-1-expected.xht: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-1.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-on-shadow-host-1.html.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2-expected.xht: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-2.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-on-shadow-host-2.html.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-3-expected.xht: Added.
  • web-platform-tests/shadow-dom/focus/focus-pseudo-on-shadow-host-3.html: Renamed from LayoutTests/fast/shadow-dom/focus-pseudo-on-shadow-host-3.html.

LayoutTests:

  • fast/shadow-dom/focus-pseudo-on-shadow-host-1-expected.html: Removed.
  • fast/shadow-dom/focus-pseudo-on-shadow-host-2-expected.html: Removed.
  • fast/shadow-dom/focus-pseudo-on-shadow-host-3-expected.html: Removed.
  • platform/ios/TestExpectations: Mark the new exported tests as passing.
3:06 AM Changeset in webkit [271943] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION(r271929): MobileSafari hangs upon launch due to a trivial deadlock in IOSurfacePool::setPoolSize
https://bugs.webkit.org/show_bug.cgi?id=221027

Reviewed by Tim Horton.

Avoid the deadlock by not grabbing the lock in IOSurfacePool::evict when discarding all surfaces.
To do this, we extract the code in discardAllSurfaces as discardAllSurfacesInternal and use it in evict.

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::evict): Calls discardAllSurfacesInternal.
(WebCore::IOSurfacePool::discardAllSurfaces):
(WebCore::IOSurfacePool::discardAllSurfacesInternal): Extracted out of discardAllSurfaces.

  • platform/graphics/cg/IOSurfacePool.h:
3:04 AM Changeset in webkit [271942] by ysuzuki@apple.com
  • 14 edits
    3 deletes in trunk/Source/JavaScriptCore

[JSC] Remove InspectorInstrumentation object
https://bugs.webkit.org/show_bug.cgi?id=221028

Reviewed by Ryosuke Niwa.

Remove InspectorInstrumentation since it is not used. We would like to clean up Promise's rejection path.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/tests/builtins/JavaScriptCore-Builtin.Promise-Combined.js:

(rejectPromise):
(fulfillPromise):

  • Scripts/tests/builtins/JavaScriptCore-Builtin.Promise-Separate.js:

(rejectPromise):
(fulfillPromise):

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Sources.txt:
  • builtins/BuiltinNames.h:
  • builtins/InspectorInstrumentationObject.js: Removed.
  • builtins/PromiseOperations.js:

(globalPrivate.rejectPromise):
(globalPrivate.fulfillPromise):

  • bytecode/LinkTimeConstant.h:
  • runtime/InspectorInstrumentationObject.cpp: Removed.
  • runtime/InspectorInstrumentationObject.h: Removed.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

3:04 AM Changeset in webkit [271941] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Complete WebXRRigidTransform implementation
https://bugs.webkit.org/show_bug.cgi?id=220732
<rdar://problem/73617302>

Patch by Imanol Fernandez <imanol> on 2021-01-27
Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

Enable XRRigidTransform WebXR tests.

  • web-platform-tests/webxr/xrRigidTransform_inverse.https-expected.txt: Added.
  • web-platform-tests/webxr/xrRigidTransform_matrix.https-expected.txt: Added.

Source/WebCore:

  • Implement XRRigidTransform.inverse().
  • Expose raw matrix to be used in other WebXR math calculations (e.g pose composition).
  • Correctly lazily initialize and reuse the Float32Array matrixData.

Tested by the WebXR platform tests.

  • Modules/webxr/WebXRRigidTransform.cpp:

(WebCore::normalizeQuaternion):
(WebCore::WebXRRigidTransform::create):
(WebCore::WebXRRigidTransform::WebXRRigidTransform):
(WebCore::m_orientation):
(WebCore::m_rawTransform):
(WebCore::WebXRRigidTransform::matrix):
(WebCore::WebXRRigidTransform::inverse):
(WebCore::WebXRRigidTransform::rawTransform const):

  • Modules/webxr/WebXRRigidTransform.h:
  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::fromQuaternion):

  • platform/graphics/transforms/TransformationMatrix.h:

LayoutTests:

Enable XRRigidTransform WebXR tests.

  • platform/wpe/TestExpectations:
2:57 AM Changeset in webkit [271940] by youenn@apple.com
  • 6 edits
    70 adds in trunk

[MacOS] Enable NSURLSession WebSocket code path in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=220973

Reviewed by Darin Adler.

Source/WebKit:

Disable a debug assert unti it get fixed below.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:webSocketTask:didCloseWithCode:reason:]):

Tools:

Enable NSURLSession WebSocket code path in MacOS.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Add platform specific expectations.
The differences are mostly due to different handling in case of server-side closure of the web socket connection (see rdar://problem/73613227).

  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/client-close-2-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/client-close-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/contentextensions/display-none-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/contentextensions/display-none-worker-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/deflate-frame-comp-bit-onoff-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/deflate-frame-set-bfinal-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/inspector/client-close-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/inspector/send-and-receive-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/inspector/server-close-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/interleaved-fragments-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/pong-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-arraybuffer-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-arraybufferview-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-blob-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-blob-onmessage-origin-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-empty-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-onmessage-origin-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/unicode-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/send-arraybuffer-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/send-arraybufferview-expected.txt: Added.
  • platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/send-blob-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-65K-data.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-binary-65K-arraybuffer.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-binary-arraybuffer.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-data.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/Send-paired-surrogates.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/basic-auth.any-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/basic-auth.any.worker-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/constructor/009-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/008-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/send/009-expected.txt: Added.
  • platform/mac-bigsur-wk2/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt: Added.
  • platform/mac/TestExpectations:
1:07 AM Changeset in webkit [271939] by aestes@apple.com
  • 11 edits
    3 adds in trunk

[Mac] MediaSampleCursor::stepInOrderedMap can hang when stepping to the end of a track that hasn't been fully parsed
https://bugs.webkit.org/show_bug.cgi?id=220555
<rdar://problem/72910000>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/video-canplaythrough-webm.html

  • platform/graphics/FloatSize.h: Exported toJSONObject.

Source/WebKit:

When a container has multiple tracks, CoreMedia determines the overall duration by creating
a cursor at a presentation time of +infinity then asking for its timing info, the expectation
being that the cursor will clamp itself to the track duration and report that in
MediaSampleCursor::getSampleTiming.

Previously, this could result in a hang for tracks that had not yet finished parsing, as
MediaSampleCursor was designed to wait for samples outside the playable range. With this
change, MediaSampleCursor no longer waits for samples outside the playable range but
rather reports clamped timing info without waiting for a sample. If CoreMedia asks for
information that requires a sample (e.g., sample location), MediaSampleCursor will respond
with kMTPluginSampleCursorError_LocationNotAvailable. So that CoreMedia can determine
the range of playable samples, this patch implements MediaSampleCursor::getPlayableHorizon.

To simplify this implementation, MediaSampleCursor now assumes that decode time equals
presentation time (for video tracks) or is invalid (for audio tracks). While here, also
added media logging that helped debug this issue.

Test: http/tests/media/video-canplaythrough-webm.html

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:

(WebKit::MediaSampleByteRange::MediaSampleByteRange): Asserted our assmpution about the
relationship between presentation time and decode time.

  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:

(WebKit::assumedDecodeTime): Added to compute decode time from presentation time and a
nominal sample.
(WebKit::upperBound): Changed to compute the decode key based on assumed decode time.
(WebKit::stepIterator): Removed the MediaTime specialization.
(WebKit::stepTime): Added to step a MediaTime rather than an iterator.
(WebKit::MediaSampleCursor::MediaSampleCursor): Initialized logging.
(WebKit::MediaSampleCursor::locateIterator const): Changed to find an iterator based on
presentation time and assumed decode time.
(WebKit::MediaSampleCursor::locateMediaSample const): Ditto.
(WebKit::MediaSampleCursor::locateTiming const): Added to locate timing info even if no
sample is available.
(WebKit::MediaSampleCursor::stepInOrderedMap): Changed to call getSampleMap, and removed
the MediaTime specialization.
(WebKit::MediaSampleCursor::stepInPresentationTime): Added to replace the MediaTime
specialization of stepInOrderedMap.
(WebKit::MediaSampleCursor::getSampleMap const): Added to call
MediaTrackReader::waitForSample and return as soon as at least one sample is available.
Returns kMTPluginSampleCursorError_NoSamples if the track finishes parsing with no
samples.
(WebKit::MediaSampleCursor::getMediaSample const): Changed to call getSampleMap.
(WebKit::MediaSampleCursor::getTiming const): Added to get timing info.
(WebKit::MediaSampleCursor::copyProperty): Added logging.
(WebKit::MediaSampleCursor::stepInDecodeOrderAndReportStepsTaken): Changed to call the new
version of stepInOrderedMap.
(WebKit::MediaSampleCursor::stepInPresentationOrderAndReportStepsTaken): Ditto.
(WebKit::MediaSampleCursor::stepByDecodeTime): Changed to call stepInPresentationTime.
(WebKit::MediaSampleCursor::stepByPresentationTime): Ditto.
(WebKit::MediaSampleCursor::compareInDecodeOrder const): Changed to call getTiming.
(WebKit::MediaSampleCursor::getSampleTiming const): Ditto.
(WebKit::MediaSampleCursor::getPlayableHorizon const): Implemented by taking the
difference between the last sample's end time and the cursor's presentation time.
(WebKit::MediaSampleCursor::logChannel const): Added.
(WebKit::makeIterator): Deleted.
(WebKit::makeTime): Deleted.
(WebKit::MediaSampleCursor::createAtDecodedSample): Deleted.

  • Shared/mac/MediaFormatReader/MediaSampleCursor.h:

(WebKit::MediaSampleCursor::logger const): Configured logging.
(WebKit::MediaSampleCursor::logClassName const): Ditto.
(WebKit::MediaSampleCursor::logIdentifier const): Ditto.

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::mediaTypeString const): Ditto.
(WebKit::MediaTrackReader::nextSampleCursorLogIdentifier const): Ditto.

  • Shared/mac/MediaFormatReader/MediaTrackReader.h:

LayoutTests:

  • http/conf/mime.types: Added an entry for video/webm.
  • http/tests/media/resources/long-test-vp9-vorbis.webm: Added.
  • http/tests/media/video-canplaythrough-webm-expected.txt: Added.
  • http/tests/media/video-canplaythrough-webm.html: Added.
1:05 AM Changeset in webkit [271938] by Philippe Normand
  • 3 edits in trunk/Tools

[Flatpak SDK] Flatpak 1.10 environment variable issues
https://bugs.webkit.org/show_bug.cgi?id=220781

Patch by Philippe Normand <pnormand@igalia.com> and Lauro Moura <Lauro Moura> on 2021-01-27
Reviewed by Adrian Perez de Castro.

Flatpak no longer passes its env variables to bwrap, so the workaround is now to serialize
it on-disk in a JSON file and load it from our webkit-bwrap script.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

  • flatpak/webkit-bwrap:
12:41 AM Changeset in webkit [271937] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Use ScrollSnapOffsetsInfo in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=220915

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-01-27
Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This should not change behavior.

Use ScrollSnapOffsets more often in the scrolling tree to continue to
abstract away the details of how snap offsets are implemented.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):
(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):
(WebCore::AsyncScrollingCoordinator::updateScrollSnapPropertiesWithFrameView):

  • page/scrolling/ScrollSnapOffsetsInfo.h:

(WebCore::ScrollSnapOffsetsInfo::isEqual const):

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::applicableProperties const):
(WebCore::ScrollingStateScrollingNode::setSnapOffsetsInfo):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateFromStateNode):
(): Deleted.

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::updateScrollSnapState):
(WebCore::ScrollController::updateScrollSnapPoints):
(WebCore::otherScrollEventAxis): Deleted.

Source/WebKit:

Use ScrollSnapOffsets more often in the scrolling tree to continue to
abstract away the details of how snap offsets are implemented.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(ArgumentCoder<ScrollSnapOffsetsInfo<float>>::encode):
(ArgumentCoder<ScrollSnapOffsetsInfo<float>>::decode):
(WebKit::dump):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapOffset const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

12:36 AM Changeset in webkit [271936] by youenn@apple.com
  • 17 edits
    2 copies in trunk

Add support for RTCRtpParameters.rtcp
https://bugs.webkit.org/show_bug.cgi?id=220912

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCRtpParameters-codecs-expected.txt:
  • web-platform-tests/webrtc/RTCRtpParameters-encodings-expected.txt:
  • web-platform-tests/webrtc/RTCRtpParameters-headerExtensions-expected.txt:
  • web-platform-tests/webrtc/RTCRtpParameters-rtcp-expected.txt:
  • web-platform-tests/webrtc/RTCRtpParameters-transactionId-expected.txt:
  • web-platform-tests/webrtc/RTCRtpReceiver-getParameters-expected.txt:

Source/WebCore:

Introduce corresponding WebIDL and binding to webrtc backend.
Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCRtcpParameters.h: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.h.
  • Modules/mediastream/RTCRtcpParameters.idl: Copied from Source/WebCore/Modules/mediastream/RTCRtpParameters.idl.
  • Modules/mediastream/RTCRtpParameters.h:
  • Modules/mediastream/RTCRtpParameters.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::toRTCRtpParameters):
(WebCore::updateRTCRtpSendParameters):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Jan 26, 2021:

11:57 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
11:57 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
10:31 PM Changeset in webkit [271935] by commit-queue@webkit.org
  • 10 edits in trunk

Mute audio capture for speech recognition based on shouldInterruptAudioOnPageVisibilityChange when page is invisible
https://bugs.webkit.org/show_bug.cgi?id=220960

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-26
Reviewed by Youenn Fablet.

Source/WebCore:

Add a boolean to indicate recognition state so we don't send end event twice.

  • Modules/speech/SpeechRecognizer.cpp:

(WebCore::SpeechRecognizer::startRecognition):
(WebCore::SpeechRecognizer::abortRecognition):
(WebCore::SpeechRecognizer::stopRecognition):
(WebCore::SpeechRecognizer::resetRecognition):

  • Modules/speech/SpeechRecognizer.h:

Source/WebKit:

We used to abort ongoing recognition when page becomes invisible. To match media capture's behavior, now we only
abort recognition when shouldInterruptAudioOnPageVisibilityChange is true.

Updated API test: WebKit2.SpeechRecognitionPageBecomesInvisible

  • UIProcess/SpeechRecognitionServer.cpp:

(WebKit::SpeechRecognitionServer::abortForPageIsBecomingInvisible): Deleted.

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

(WebKit::WebProcessProxy::pageIsBecomingInvisible):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/speechrecognition-basic.html:
9:22 PM Changeset in webkit [271934] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

Refactor computePreferredLogicalWidths
https://bugs.webkit.org/show_bug.cgi?id=220984

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-26
Reviewed by Darin Adler.

Refactor computePreferredLogicalWidths so the common
code dealing with min/max and border/padding handling
is centralized in RenderBox.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computePreferredLogicalWidths):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePreferredLogicalWidths):

  • rendering/RenderBox.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):

  • rendering/RenderFragmentContainer.cpp:

(WebCore::RenderFragmentContainer::computePreferredLogicalWidths):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::computePreferredLogicalWidths):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::computePreferredLogicalWidths):

  • rendering/RenderSlider.cpp:

(WebCore::RenderSlider::computePreferredLogicalWidths):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::computePreferredLogicalWidths):

8:56 PM Changeset in webkit [271933] by Simon Fraser
  • 5 edits
    2 adds in trunk

REGRESSION (r268947) Some table elements become blank when scroll-bar is toggled
https://bugs.webkit.org/show_bug.cgi?id=221016
<rdar://72881404>

Reviewed by Zalan Bujtas.
Source/WebCore:

FloatingObject aliased the state of layer->isSelfPainting() in its m_shouldPaint,
so when compositing code changed isSelfPaintingLayer() for a layer that is also
a float post-layout, FloatingObject was left in a state where it didn't paint.

Fix by dissociating FloatingObject's shouldPaint from the state of the layer.
Rename shouldPaint() to paintsFloat() for clarity (multiple FloatingObjects in
different block flows can represent the same float, and only one paints the float).

Test: compositing/scrolling/async-overflow-scrolling/self-painting-layer-float.html

  • rendering/FloatingObjects.cpp:

(WebCore::FloatingObject::FloatingObject):
(WebCore::FloatingObject::create):
(WebCore::FloatingObject::cloneForNewParent const):
(WebCore::FloatingObject::shouldPaint const):
(WebCore::operator<<):

  • rendering/FloatingObjects.h:

(WebCore::FloatingObject::paintsFloat const):
(WebCore::FloatingObject::setPaintsFloat):
(WebCore::FloatingObject::shouldPaint const): Deleted.
(WebCore::FloatingObject::setShouldPaint): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::paintFloats):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::hitTestFloats):
(WebCore::RenderBlockFlow::adjustForBorderFit const):

LayoutTests:

  • compositing/scrolling/async-overflow-scrolling/self-painting-layer-float-expected.html: Added.
  • compositing/scrolling/async-overflow-scrolling/self-painting-layer-float.html: Added.
8:39 PM Changeset in webkit [271932] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening soup crashes and other timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
6:42 PM Changeset in webkit [271931] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Do not create empty runs for empty lines
https://bugs.webkit.org/show_bug.cgi?id=220994

Reviewed by Antti Koivisto.

Add a fast path for cases when the line has some inline level boxes but we don't consider them "contentful".
e.g. <div><span></span><span></span></div>
It is a relatively common when block level boxes are wrapped inside inline level boxes and
we end up constructing "empty" pre/post blocks (see continuation) e.g. <span><div>content</div></span>.
Such content generates "empty" lines and while this is clearly a performance improvement, it is
also a correctness fix as RenderBlockFlow checks for the number of lines to see if the block is empty and
the integration layer checks the number of runs on the line to decide if the line is "empty" (see LineLayout::lineCount).
(In LFC we check if the lines are empty and not if the line count is 0 since according to the spec even "empty" content generates (empty)lines)

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::hasContent const):
(WebCore::Layout::LineBox::setHasContent):

6:38 PM Changeset in webkit [271930] by Antti Koivisto
  • 15 edits
    2 adds in trunk

REGRESSION (r271584): Hovering slowly over and out of "Top 100" items on liberation.fr does not restore animated state
https://bugs.webkit.org/show_bug.cgi?id=220862
<rdar://problem/73501684>

Reviewed by Simon Fraser.

Source/WebCore:

The optimization in r271584 fails to invalidate hover/active style when clearing the existing state under some circumstances.

Test: fast/selectors/hover-invalidation-descendant-clear.html

  • dom/Document.cpp:

(WebCore::Document::updateHoverActiveState):

We would do descendant invalidation when changing the hover/active state of the rootmost changing element.
However since the state of descendants was changed before this invalidation happened we would try to invalidate
them in a tree that was already in the new state.

Fix by scoping the descendant invalidation over all changes.

  • dom/Element.cpp:

(WebCore::Element::setActive):
(WebCore::Element::setHovered):

Switch to new 3-state enum type that allows us to skip descendant invalidation that has already been done by the caller.
Skope it to Style namepace.

  • dom/Element.h:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::setActive):

  • html/HTMLAnchorElement.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::setActive):
(WebCore::HTMLLabelElement::setHovered):

  • html/HTMLLabelElement.h:
  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::setHovered):

  • html/shadow/SpinButtonElement.h:
  • style/PseudoClassChangeInvalidation.cpp:

(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):

  • style/PseudoClassChangeInvalidation.h:

(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):

  • style/StyleValidity.h:

LayoutTests:

  • fast/selectors/hover-invalidation-descendant-clear-expected.html: Added.
  • fast/selectors/hover-invalidation-descendant-clear.html: Added.
5:36 PM Changeset in webkit [271929] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[GPU Process] Compositing layout test crash in WebKit::GPUProcess::lowMemoryHandler
https://bugs.webkit.org/show_bug.cgi?id=221010
<rdar://problem/73631552>

Reviewed by Simon Fraser.

Make IOSurfacePool thread-safe now that it is used from multiple threads in the
GPUProcess.

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::IOSurfacePool):
(WebCore::IOSurfacePool::sharedPool):
(WebCore::IOSurfacePool::takeSurface):
(WebCore::IOSurfacePool::addSurface):
(WebCore::IOSurfacePool::setPoolSize):
(WebCore::IOSurfacePool::collectionTimerFired):
(WebCore::IOSurfacePool::discardAllSurfaces):

  • platform/graphics/cg/IOSurfacePool.h:
5:13 PM Changeset in webkit [271928] by Alan Coon
  • 1 copy in tags/Safari-611.1.10.1.3

Tag Safari-611.1.10.1.3.

5:12 PM Changeset in webkit [271927] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION(r270637) Filtering does not work in Styles sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=220993
<rdar://problem/73623818>

Patch by Razvan Caliman <Razvan Caliman> on 2021-01-26
Reviewed by Devin Rousso.

Stop expecting StyleDetailsPanel to define an abstract filterDidChange() method.
Subclasses implement their own on a per-use case basis.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.filterDidChange):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.filterDidChange):

5:11 PM Changeset in webkit [271926] by BJ Burg
  • 4 edits in trunk/Source

REGRESSION(r267641): WebKitDeveloperExtras preference has no effect for WebKitLegacy clients
https://bugs.webkit.org/show_bug.cgi?id=220996
<rdar://72173139>

Reviewed by Sam Weinig.

Source/WebKitLegacy/mac:

Read back this preference when propagating it, because the value depends on
more than just the preference key. For example, it allows Debug builds to act
as if the preference is always enabled.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WTF:

This preference should use custom bindings for WebKitLegacy.

  • Scripts/Preferences/WebPreferencesDebug.yaml:
5:06 PM Changeset in webkit [271925] by Alan Coon
  • 1 copy in tags/Safari-611.1.10.0.4

Tag Safari-611.1.10.0.4.

4:59 PM Changeset in webkit [271924] by Alan Coon
  • 1 copy in tags/Safari-611.1.10.2.1

Tag Safari-611.1.10.2.1.

4:57 PM Changeset in webkit [271923] by Alan Coon
  • 2 edits in branches/safari-611.1.10.2-branch/Source/WTF

Cherry-pick r271904. rdar://problem/73636597

Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:56 PM Changeset in webkit [271922] by Alan Coon
  • 8 edits in branches/safari-611.1.10.2-branch/Source

Versioning.

WebKit-7611.1.10.2.1

4:32 PM Changeset in webkit [271921] by sbarati@apple.com
  • 35 edits in trunk/Source

Revive the build when MALLOC_HEAP_BREAKDOWN is enabled
https://bugs.webkit.org/show_bug.cgi?id=220999

Reviewed by Yusuke Suzuki.

Source/WebCore:

  • display/css/DisplayBox.cpp:
  • display/css/DisplayBox.h:
  • display/css/DisplayBoxClip.cpp:
  • display/css/DisplayBoxClip.h:
  • display/css/DisplayBoxDecorationData.cpp:
  • display/css/DisplayBoxDecorationData.h:
  • display/css/DisplayBoxModelBox.cpp:
  • display/css/DisplayBoxModelBox.h:
  • display/css/DisplayBoxRareGeometry.cpp:
  • display/css/DisplayBoxRareGeometry.h:
  • display/css/DisplayContainerBox.cpp:
  • display/css/DisplayContainerBox.h:
  • display/css/DisplayImageBox.cpp:
  • display/css/DisplayImageBox.h:
  • display/css/DisplayReplacedBox.cpp:
  • display/css/DisplayReplacedBox.h:
  • display/css/DisplayStyle.cpp:
  • display/css/DisplayStyle.h:
  • display/css/DisplayTextBox.cpp:
  • display/css/DisplayTextBox.h:

Source/WTF:

  • wtf/Bag.cpp:
  • wtf/BitVector.cpp:
  • wtf/ConcurrentBuffer.cpp:
  • wtf/FastBitVector.cpp:
  • wtf/HashTable.cpp:
  • wtf/MetaAllocator.cpp:
  • wtf/RefCountedArray.cpp:
  • wtf/SegmentedVector.cpp:
  • wtf/SmallPtrSet.cpp:
  • wtf/UniqueArray.cpp:
  • wtf/Vector.cpp:
  • wtf/text/CString.cpp:
  • wtf/text/StringBuffer.cpp:
4:31 PM Changeset in webkit [271920] by Devin Rousso
  • 29 edits
    1 add in trunk

Expose the value of <meta name="theme-color" content="..."> as SPI
https://bugs.webkit.org/show_bug.cgi?id=220944
<rdar://problem/72198083>

Reviewed by Tim Horton.

Source/WebCore:

  • html/HTMLMetaElement.h:
  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::attributeChanged): Added.
(WebCore::HTMLMetaElement::parseAttribute):
(WebCore::HTMLMetaElement::removedFromAncestor): Added.
(WebCore::HTMLMetaElement::process):

  • dom/Document.h:

(WebCore::Document::themeColor const): Added.

  • dom/Document.cpp:

(WebCore::Document::processThemeColor): Added.

  • page/Page.h:
  • page/Page.cpp:

(WebCore::Page::themeColor const): Added.

  • page/ChromeClient.h:

(WebCore::ChromeClient::themeColorChanged const): Added.
Save the Color to a variable so it can be accessed later during rendering so that updates
are kept in sync with other changes (e.g. modifying the CSS background-color).

  • platform/graphics/cocoa/ColorCocoa.h:
  • WebCore.xcodeproj/project.pbxproj:

Expose this file and export its functions so they can be used in WebKit.

Source/WebKit:

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::themeColorChanged): Added.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::flushPendingThemeColorChange): Added.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::themeColorChanged const):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateRendering):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::themeColorChanged): Added.
On macOS, keep a flag indicating whether the themeColor has changed. Use this flag when
updating rendering to send the Color to the UIProcess so that it's kept in sync with other
changes (e.g. modifying the CSS background-color).

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::themeColor const): Added.
(WebKit::RemoteLayerTreeTransaction::setThemeColor): Added.

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode const):
(WebKit::RemoteLayerTreeTransaction::decode):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didCommitLayerTree):
On iOS, include the themeColor in every RemoteLayerTreeTransaction so that it's kept in
sync with other changes (e.g. modifying the CSS background-color).

  • UIProcess/PageClient.h:

(WebKit::PageClient::themeColorWillChange): Added.
(WebKit::PageClient::themeColorDidChange): Added.

  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::themeColorWillChange): Added.
(WebKit::PageClientImplCocoa::themeColorDidChange): Added.
Add support for ObjC KVO of -[WKWebView _themeColor].

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::themeColor const): Added.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _themeColor]): Added.

Tools:

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

(TEST.HTMLMetaThemeColor.OnLoad):
(TEST.HTMLMetaThemeColor.MultipleTags):
(-[WKWebViewThemeColorObserver initWithWebView:]):
(-[WKWebViewThemeColorObserver observeValueForKeyPath:ofObject:change:context:]):
(TEST.HTMLMetaThemeColor.KVO):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
4:11 PM Changeset in webkit [271919] by Alan Coon
  • 2 edits in branches/safari-611.1.10.0-branch/Source/WTF

Cherry-pick r271904. rdar://problem/73629533

Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:08 PM Changeset in webkit [271918] by Alan Coon
  • 8 edits in branches/safari-611.1.10.0-branch/Source

Versioning.

WebKit-7611.1.10.0.4

4:07 PM Changeset in webkit [271917] by Alan Coon
  • 8 edits in branches/safari-611.1.10.1-branch/Source

Versioning.

WebKit-7611.1.10.1.3

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

IPC::Decoder constructor should mark the Decoder as invalid if header decoding fails
https://bugs.webkit.org/show_bug.cgi?id=220990
<rdar://problem/64984186>

Reviewed by Darin Adler.

Mark the decoder as invalid if any of the decode operations fail, not just the first one.

  • Platform/IPC/Decoder.cpp:
4:03 PM Changeset in webkit [271915] by Alan Coon
  • 1 copy in tags/Safari-611.1.10.3.1

Tag Safari-611.1.10.3.1.

4:01 PM Changeset in webkit [271914] by Alan Coon
  • 2 edits in branches/safari-611.1.10.3-branch/Source/WTF

Cherry-pick r271904. rdar://problem/73636466

Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:56 PM Changeset in webkit [271913] by Alan Coon
  • 8 edits in branches/safari-611.1.10.3-branch/Source

Versioning.

WebKit-7611.1.10.3.1

3:29 PM Changeset in webkit [271912] by Alan Coon
  • 1 copy in branches/safari-611.1.10.3-branch

New branch.

3:29 PM Changeset in webkit [271911] by Alan Coon
  • 1 copy in branches/safari-611.1.10.2-branch

New branch.

3:27 PM Changeset in webkit [271910] by Alan Coon
  • 2 edits in branches/safari-611.1.10.1-branch/Source/WTF

Cherry-pick r271904. rdar://problem/73629333

Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@271904 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:55 PM Changeset in webkit [271909] by Jonathan Bedard
  • 16 edits in trunk/LayoutTests

[LayoutTests] Pass authentication to CGI scripts
https://bugs.webkit.org/show_bug.cgi?id=221007
<rdar://problem/73630042>

Reviewed by Stephanie Lewis.

  • http/conf/apache2.2-httpd.conf: Pass authentication to CGI scripts.
  • http/conf/apache2.4-httpd.conf: Ditto.
  • http/conf/apache2.4-php7-httpd.conf: Ditto.
  • http/conf/archlinux-httpd.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.0.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.1.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.2.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.3.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.4.conf: Ditto.
  • http/conf/fedora-httpd-2.2.conf: Ditto.
  • http/conf/fedora-httpd-2.4-php7.conf: Ditto.
  • http/conf/fedora-httpd-2.4.conf: Ditto.
  • http/conf/flatpak-httpd.conf: Ditto.
  • http/conf/win-httpd-2.4-php5.conf: Ditto.
  • http/conf/win-httpd-2.4-php7.conf: Ditto.
2:36 PM Changeset in webkit [271908] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Harden NetworkProcess against integer overflow in CacheStorageEngine size calculation
https://bugs.webkit.org/show_bug.cgi?id=220997
<rdar://problem/66116827>

Reviewed by Youenn Fablet.

Since the CacheStorage allocation is based on data provided by the WebContent process, we should
check for integer overflow before making an allocation.

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::put): Use checked arithmetic and return a failure if we overflow.

2:23 PM Changeset in webkit [271907] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

[macOS] Disable ENABLE_SET_WEBCONTENT_PROCESS_INFORMATION_IN_NETWORK_PROCESS
https://bugs.webkit.org/show_bug.cgi?id=221006

Unreviewed crash fix.

Enabling this is causing a crash. Disable while investigating.

  • wtf/PlatformEnableCocoa.h:
2:20 PM Changeset in webkit [271906] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make showRenderTree() dump FloatingObjects
https://bugs.webkit.org/show_bug.cgi?id=220991

Reviewed by Zalan Bujtas.

It's useful to see which RenderBlockFlows have floating object sets and which
floating objects they contain, so dump that in render tree dumps.

Other minor logging/initializer cleanup.

  • rendering/FloatingObjects.cpp:

(WebCore::operator<<):
(WebCore::FloatingObjects::FloatingObjects):

  • rendering/FloatingObjects.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::outputFloatingObjects const):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderSubTreeAndMark const):

  • rendering/RenderView.cpp:
2:19 PM Changeset in webkit [271905] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] fast/harness/render-tree-as-text-options.html is flaky failing in WK1
https://bugs.webkit.org/show_bug.cgi?id=221009

unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:45 PM Changeset in webkit [271904] by dino@apple.com
  • 2 edits in branches/safari-611-branch/Source/WTF

Disable WebGL 2 on safari-611-branch
rdar://73629533
rdar://73624686

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:45 PM Changeset in webkit [271903] by commit-queue@webkit.org
  • 8 edits in trunk

[WASM-References] Change default value for externref's tables from null to undefined
https://bugs.webkit.org/show_bug.cgi?id=220918

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-01-26
Reviewed by Yusuke Suzuki.

JSTests:

According to the reference types spec
https://webassembly.github.io/reference-types/js-api/#defaultvaluey
we should use undefined as a default value in Table ctor, set and grow
methods, so this patch replaces previous null default value for
externref's table to undefined.

  • wasm/references/externref_table_import.js:

(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):

  • wasm/references/table_js_api.js:

(testTableGrowForExternrefTables):

  • wasm/references/table_misc.js:

Source/JavaScriptCore:

Update reference types tests to satisfy the spec:
Externref's tables default value should be undefined.

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::defaultValueForTable):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

1:33 PM Changeset in webkit [271902] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] API tests fail to report harness failures
https://bugs.webkit.org/show_bug.cgi?id=220938

Reviewed by Carlos Garcia Campos.

The GLibTestRunner class parses the stdout of the child test program to
detect failures and crashes using GLib's g_test_* protocol, but the
setup and teardown of each suite/program is done manually in the
beforeAll/afterAll functions. Their output/status need to be checked
separately by the runner scripts.

This commit checks if a failure happens before any test is run (a
beforeAll failure) and if there is still pending stderr output not
processed by g_test_run (an afterAll failure).

  • glib/glib_test_runner.py:

(GLibTestRunner.run):

1:31 PM Changeset in webkit [271901] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Deny mach-lookup to the service 'com.apple.tccd.system' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=220976
<rdar://problem/68935772>

Reviewed by Brent Fulgham.

Deny mach-lookup to the service 'com.apple.tccd.system' in the WebContent process, since there are no longer reports of this being used.

No new tests, since the result will depend on OS version.

  • WebProcess/com.apple.WebProcess.sb.in:
1:20 PM Changeset in webkit [271900] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Disable TBA availability macro post-processing on iOS 14 / macOS 11
https://bugs.webkit.org/show_bug.cgi?id=221004

Reviewed by Tim Horton.

Disable TBA availability macro post-processing on iOS 14 / macOS 11, now that TBA headers have been updated in r271813.

  • Configurations/WebKit.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:
1:14 PM Changeset in webkit [271899] by commit-queue@webkit.org
  • 14 edits in trunk

Forbid '|' in URL hosts
https://bugs.webkit.org/show_bug.cgi?id=220778

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-26
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/failure-expected.txt:
  • web-platform-tests/url/resources/urltestdata.json:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-origin-expected.txt:

Source/WTF:

This is one of the proposed solutions to https://github.com/whatwg/url/issues/559
and RFC 3986 and 3987 forbid such characters, so let's try forbidding it.

  • wtf/URLParser.cpp:

(WTF::isC0Control):
(WTF::isForbiddenHostCodePoint):

LayoutTests:

  • fast/url/file-http-base-expected.txt:
  • fast/url/file-http-base.html:
1:06 PM Changeset in webkit [271898] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ScopedHighPerformanceGPURequest.h not marked framework private
https://bugs.webkit.org/show_bug.cgi?id=220989

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-26
Reviewed by Simon Fraser.

The header was listed twice in the project, causing build failures.

No new tests, build fix.

  • WebCore.xcodeproj/project.pbxproj:
1:03 PM Changeset in webkit [271897] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Close all XPC connections to Launch Services after checking in
https://bugs.webkit.org/show_bug.cgi?id=220952
<rdar://13785139>

Reviewed by Brent Fulgham.

After checking in with Launch Services on macOS, close all open XPC connections to the service.
This patch also adds checks for a valid Network process connection when updating the WebContent
process' information.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateActivePages):

12:44 PM Changeset in webkit [271896] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add local sandbox reporting for access to Metal services in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=220986

Reviewed by Brent Fulgham.

To determine if these services are still used in the WebContent process when the GPU process is enabled, add local sandbox reporting for access to Metal services.

  • WebProcess/com.apple.WebProcess.sb.in:
12:40 PM Changeset in webkit [271895] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r261238): WKWebView crashes on launch inside a quicklook preview
https://bugs.webkit.org/show_bug.cgi?id=219632
<rdar://problem/72154830>

Reviewed by Alexey Proskuryakov.

Partially revert r261238 to allow applications without access to 'nsurlsessiond' to still
be able to use WebKit for local file access. This workaround should be removed once we
complete the work needed to support true offline WebKit use.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::checkEntitlements): Add an early return if the application
possesses the 'com.apple.security.network.client' entitlement.

12:37 PM Changeset in webkit [271894] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Restrict process-info in sandbox
https://bugs.webkit.org/show_bug.cgi?id=220985
<rdar://problem/70353532>

Reviewed by Brent Fulgham.

Access to process-info should be restricted to self.

  • WebProcess/com.apple.WebProcess.sb.in:
12:25 PM Changeset in webkit [271893] by commit-queue@webkit.org
  • 12 edits
    6 copies
    76 adds in trunk/LayoutTests

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=220968

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-26
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream c882810b64.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-015-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-015.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-016-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-016.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-029-crash.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-030-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-030.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-025-expected.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-026-expected.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-001-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-001.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-002-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-002.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-003-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-003.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-004-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-004.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-005-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-005.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-006-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-006.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-007-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-007.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-008-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-008.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-009-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-009.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-010-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-010.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-011-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-011.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-012-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-012.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-013-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-013.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-014-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-014.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-009-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-009.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-010-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-010.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-011-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-011.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-005-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-028-expected.txt: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-028.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-029-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-029.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-030-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-030.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-031.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-032.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/support/100x100-green.png: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/support/1x1-green.png: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/support/200x200-green.png: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/support/w3c-import.log:
  • web-platform-tests/css/css-sizing/aspect-ratio/table-element-001-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/table-element-001.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-001-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-001.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-002-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-002.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-003-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-003.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-004-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-004.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-005-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-005.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-006-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-006.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-007-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-007.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-008-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-008.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-009-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-009.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-010-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/zero-or-infinity-010.html: Added.

LayoutTests:

Adapt platform test expectations.

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

[macOS] Deny mach-lookup to the service 'com.apple.audio.SandboxHelper' in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=220978
<rdar://problem/69320352>

Reviewed by Brent Fulgham.

Deny mach-lookup to the service 'com.apple.audio.SandboxHelper' in the WebContent process. Access to this service is only allowed
by extension if Media is running in the WebContent process.

  • WebProcess/com.apple.WebProcess.sb.in:
12:07 PM Changeset in webkit [271891] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Restrict access to OpenGL profiler
https://bugs.webkit.org/show_bug.cgi?id=220980
<rdar://problem/70354481>

Reviewed by Brent Fulgham.

Only allow the OpenGL profiler to attach on internal installs.

  • WebProcess/com.apple.WebProcess.sb.in:
12:02 PM Changeset in webkit [271890] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[CoreIPC] Add size check in decodeSharedBuffer to allow it to be validated against the SharedMemory received
https://bugs.webkit.org/show_bug.cgi?id=220962
<rdar://problem/68204552>

Reviewed by Darin Adler.

Add a new check during decoding so that we fail if the expected buffer size is larger than the block of
shared memory supplied in the IPC call.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::decodeSharedBuffer):

11:53 AM Changeset in webkit [271889] by Lauro Moura
  • 5 edits in trunk/Tools

Unreviewed, reverting r271578.
https://bugs.webkit.org/show_bug.cgi?id=221003

Title changes reverted made WPEQt tests fail

Reverted changeset:

"[WPE] Fix WPEQt tests after r271514"
https://bugs.webkit.org/show_bug.cgi?id=220681
https://trac.webkit.org/changeset/271578

Patch by Commit Queue <commit-queue@webkit.org> on 2021-01-26

11:36 AM Changeset in webkit [271888] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Release assert in Document::updateStyleIfNeeded() via PrintContext::end() inside HTMLTitleElement::insertedIntoAncestor and removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=218496

Unreviewed test gardening.

10:52 AM Changeset in webkit [271887] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Revert part of r271493
https://bugs.webkit.org/show_bug.cgi?id=220066
<rdar://problem/73615999>

We have an internal app that calls registerSchemeForCustomProtocol on a non-main thread before WebKit initializes.
While this is a problem, we have to not crash on launch until they fix this.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(+[WKBrowsingContextController registerSchemeForCustomProtocol:]):
(+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):

10:24 AM Changeset in webkit [271886] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[JSC] Do not specify remote file location to the JSConly bots
https://bugs.webkit.org/show_bug.cgi?id=220923

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-01-26
Reviewed by Carlos Alberto Lopez Perez.

There is no need to treat JSC buildbots that use remotes any
different. The worker side needs to supply the remote
configuration file in any case and it can also specify
--remote-config-file in TEST_JSC_ARGS.

What's more, letting the worker be in control makes it easier to
implement changes without having to request upstream configuration
changes (or, worse, temporarily overriding the configuration
recorded in config.json).

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories.py:

(BuildAndJSCTestsFactory):
(BuildAndJSCTestsFactory.init):

  • CISupport/build-webkit-org/steps.py:

(RunJavaScriptCoreTests.countFailures):

10:22 AM Changeset in webkit [271885] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[GPU process][macOS] Only allow access to diagnostic services for internal builds
https://bugs.webkit.org/show_bug.cgi?id=220957

Reviewed by Brent Fulgham.

This patch also removes access to an unused logging service.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
9:48 AM Changeset in webkit [271884] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, silence deprecation warning for our own API to address build issues.

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
9:28 AM Changeset in webkit [271883] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r271882.

Broke the build

Reverted changeset:

"Unreviewed, silence deprecation warning for our own API to
address build issues."
https://trac.webkit.org/changeset/271882

9:05 AM Changeset in webkit [271882] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, silence deprecation warning for our own API to address build issues.

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
7:00 AM Changeset in webkit [271881] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Incorrect inline box width with horizontal alignment
https://bugs.webkit.org/show_bug.cgi?id=220961

Reviewed by Antti Koivisto.

While the runs are relative to the line box, and the line box has the horizontal alignment offset
the final inline boxes are expected to include the horizontal alignment.
This patch ensures alignment offset is taken into account when the inline box width is computed.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

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

5:43 AM Changeset in webkit [271880] by commit-queue@webkit.org
  • 20 edits
    2 copies
    1 add in trunk/Source

WebGL power preference and discrete/internal gpu selection implemented incorrectly with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=220843

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-26
Reviewed by Dean Jackson.

Source/WebCore:

Use ANGLE extension EGL_ANGLE_power_preference to signal to ANGLE that the underlying
CGL context should be updated as a response to display reconfiguration signal.
This ensures that ANGLE state stays consistent with the actual CGL context behavior, as
we don't change the context behind ANGLE's back.

Remove the feature where the context GPU is selected based on the display the window is
on. This cannot work with the logic of "powerPreference = "high-performance" goes to
discrete GPU". Also, this cannot work with ANGLE at all, since all contexts are backed
by a single platform context. Thus all contexts will use the same underlying GPU.

No new tests due to the test runner missing features. The bug blockers track the testing.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::isHighPerformanceContext):

  • page/Chrome.cpp:

(WebCore::Chrome::windowScreenDidChange):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
  • platform/graphics/RemoteGraphicsContextGLProxyBase.h:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::createShared):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::setContextVisibility):
(WebCore::GraphicsContextGLOpenGL::displayWasReconfigured):
(WebCore::GraphicsContextGLOpenGL::simulateContextChanged):

  • platform/graphics/mac/GraphicsChecksMac.cpp: Added.

(WebCore::attachToAppleGraphicsControl):
(WebCore::hasMuxCapability):
(WebCore::hasLowAndHighPowerGPUs):

  • platform/graphics/mac/GraphicsChecksMac.h: Copied from Source/WebKit/WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.h.
  • platform/graphics/mac/ScopedHighPerformanceGPURequest.h: Copied from Source/WebCore/platform/graphics/mac/SwitchingGPUClient.h.

(WebCore::ScopedHighPerformanceGPURequest::ScopedHighPerformanceGPURequest):
(WebCore::ScopedHighPerformanceGPURequest::~ScopedHighPerformanceGPURequest):
(WebCore::ScopedHighPerformanceGPURequest::operator=):
(WebCore::ScopedHighPerformanceGPURequest::acquire):

  • platform/graphics/mac/SwitchingGPUClient.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:

(WebCore::GraphicsContextGLOpenGLManager::displayWasReconfigured):
(WebCore::GraphicsContextGLOpenGLManager::addContext):
(WebCore::GraphicsContextGLOpenGLManager::removeContext):

  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.h:
  • testing/Internals.cpp:

Source/WebKit:

Move the high-performance GPU shutdown timer from individual web processes to the main class
in the ui process. This simplifies the implementation and reduces the number of timers.

  • UIProcess/mac/HighPerformanceGPUManager.h:
  • UIProcess/mac/HighPerformanceGPUManager.mm:

(WebKit::HighPerformanceGPUManager::HighPerformanceGPUManager):
(WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::updateState):

  • WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.cpp:

(WebKit::WebSwitchingGPUClient::requestHighPerformanceGPU):
(WebKit::WebSwitchingGPUClient::releaseHighPerformanceGPU):

  • WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.h:
3:49 AM Changeset in webkit [271879] by Carlos Garcia Campos
  • 11 edits
    5 adds in trunk

[SOUP] Stop using SoupRequest API to load files in preparation for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=220509

Reviewed by Adrian Perez de Castro.

Source/WebCore/platform/gtk/po:

  • POTFILES.in: Add WebKitDirectoryInputStream.cpp

Source/WebKit:

SoupRequest API is gone in libsoup3 and there's no replacement for file requests. GResource and data URI loads
already happen in the web process so we only need to care about file and directory loads.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Create a GFile for local files.
(WebKit::NetworkDataTaskSoup::clearRequest): Clear the m_file.
(WebKit::NetworkDataTaskSoup::resume): Check also if there's a file operation to resume.
(WebKit::NetworkDataTaskSoup::didSendRequest): We always have a soup message now here because SoupRequest is
only used for HTTP.
(WebKit::NetworkDataTaskSoup::readCallback): In case of failure check if this is an HTTP or file request to
create the error.
(WebKit::NetworkDataTaskSoup::fileQueryInfoCallback): Call didGetFileInfo() and continue reading the file or directory.
(WebKit::NetworkDataTaskSoup::didGetFileInfo): Set URL, content type and length of the response for the given GFileInfo.
(WebKit::NetworkDataTaskSoup::readFileCallback): Complete the g_file_read_async operation.
(WebKit::NetworkDataTaskSoup::enumerateFileChildrenCallback): Create a WebKitDirectoryInputStream.
(WebKit::NetworkDataTaskSoup::didReadFile): Set the input stream and notify the response is ready.

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
  • NetworkProcess/soup/Resources/directory.css: Added.
  • NetworkProcess/soup/Resources/directory.js: Added.
  • NetworkProcess/soup/WebKitDirectoryInputStream.cpp: Added.

(webkitDirectoryInputStreamCreateHeader):
(webkitDirectoryInputStreamCreateFooter):
(webkitDirectoryInputStreamCreateRow):
(webkitDirectoryInputStreamReadNextFile):
(webkitDirectoryInputStreamRead):
(webkitDirectoryInputStreamClose):
(webkit_directory_input_stream_class_init):
(webkitDirectoryInputStreamNew):

  • NetworkProcess/soup/WebKitDirectoryInputStream.h: Added.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:

Tools:

Add WebKitDirectoryInputStream.cpp as exception for style checker.

  • Scripts/webkitpy/style/checker.py:

Jan 25, 2021:

10:56 PM Changeset in webkit [271878] by rniwa@webkit.org
  • 19 edits
    1 delete in trunk

Unreviewed, reverting r271514 and r271549

Made TestWebKitAPI.WebKit.PrintFrame flaky

Reverted changeset:

"Use event loop to set title"
https://bugs.webkit.org/show_bug.cgi?id=218496
https://trac.webkit.org/changeset/271514

10:21 PM Changeset in webkit [271877] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Expand scope of tests skipped due to rdar://65287528.
9:09 PM Changeset in webkit [271876] by Simon Fraser
  • 3 edits in trunk/Source/JavaScriptCore

Crash when remote inspecting in debug builds
https://bugs.webkit.org/show_bug.cgi?id=220956
<rdar://73379637>

Reviewed by Devin Rousso.

Convert RemoteConnectionToTarget from using BlockPtr<> to Function<> because BlockPtr<>
was triggering crashes which seem to be related to mixing ARC and non-ARC code.

  • inspector/remote/RemoteConnectionToTarget.h:
  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteTargetHandleRunSourceGlobal):
(Inspector::RemoteTargetQueueTaskOnGlobalQueue):
(Inspector::RemoteTargetHandleRunSourceWithInfo):
(Inspector::RemoteConnectionToTarget::dispatchAsyncOnTarget):
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
(Inspector::RemoteConnectionToTarget::queueTaskOnPrivateRunLoop):
(Inspector::RemoteConnectionToTarget::takeQueue):

7:43 PM Changeset in webkit [271875] by Alan Bujtas
  • 5 edits in trunk

[Legacy Line Layout] Multiple inline boxes may stretch the line
https://bugs.webkit.org/show_bug.cgi?id=220905

Reviewed by Antti Koivisto.

Source/WebCore:

This is a follow-up on r271110 where the top position of the inline box with the maximum ascent
gets adjusted to make sure it does not stick out of the line. This patch fixes the case when
multiple inline boxes have the same maximum ascent value.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::computeLogicalBoxHeights):

LayoutTests:

  • platform/ios/fast/block/basic/014-expected.txt:
  • platform/mac/fast/block/basic/014-expected.txt:
7:29 PM Changeset in webkit [271874] by Nikita Vasilyev
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Add experimental setting to show Layout panel in Elements tab
https://bugs.webkit.org/show_bug.cgi?id=220954
<rdar://problem/73590856>

Reviewed by BJ Burg.

Add "Show layout panel" checkbox to the Experimental settings that shows an empty
panel (for now) in Elements tab.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):

  • UserInterface/Views/LayoutDetailsSidebarPanel.js: Added.

(WI.LayoutDetailsSidebarPanel):
(WI.LayoutDetailsSidebarPanel.prototype.supportsDOMNode):
(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.detached):
(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype._mainResourceDidChange):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

6:13 PM Changeset in webkit [271873] by Alexey Shvayka
  • 10 edits in trunk/Source

REGRESSION (r270874): Some React Native apps are reported broken on iOS
https://bugs.webkit.org/show_bug.cgi?id=220809

Reviewed by Saam Barati.

Source/JavaScriptCore:

r270874 fixed for/in shadowing issue by introducing an invariant: a property
returned by getOwn*PropertyNames() in DontEnumPropertiesMode::Exclude should be
reported as Enumerable? by getOwnPropertySlot(). Otherwise, for/in skips the
property, which causes RN apps to break.

Since there is no way to enforce this invariant for opaque API objects like
JSCallbackObject, this change skips Enumerable? check for them by introducing
GetOwnPropertySlotMayBeWrongAboutDontEnum out of line type info flag.

Also, this patch reverts JSCallbackObject::getOwnPropertySlot() changes of r270874
that are no longer necessary and observable (via Object.getOwnPropertyDescriptor).

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):

  • API/tests/testapiScripts/testapi.js:
  • runtime/JSObject.cpp:

(JSC::JSObject::hasEnumerableProperty const):

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::getOwnPropertySlotMayBeWrongAboutDontEnum const):

Source/WebCore:

  • bridge/runtime_object.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.h:
5:33 PM Changeset in webkit [271872] by Chris Dumez
  • 7 edits in trunk/Source

Unreviewed, add missing header includes to address build issues.

Source/WebCore:

  • Modules/webauthn/AuthenticationExtensionsClientOutputs.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKUserScript.mm:
  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:
  • UIProcess/Cocoa/AutomationClient.mm:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
5:30 PM Changeset in webkit [271871] by Wenson Hsieh
  • 4 edits in trunk

ASSERT NOT REACHED in WebCore::DisplayList::isDrawingItem
https://bugs.webkit.org/show_bug.cgi?id=220948
<rdar://problem/73588734>

Reviewed by Tim Horton.

Source/WebCore:

Additionally, fix a bug that is also caught when running this API test under debug. In the case where an out of
line item failed to decode (and is thus invalid), we still attempt to invoke its destructor when we're done
iterating, under DisplayList::iterator::clearCurrentItem(); we should not be doing this in the case where
m_isValid is false, since we already know that m_currentBufferForItem either contains an item that has
already been destroyed, or contains garbage data.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::iterator::clearCurrentItem):

Tools:

The API test DisplayListTests.OutOfLineItemDecodingFailure was intended to read from the display list copy
rather than the original list, in order to exercise the (intentional) decoding failure.

Instead, this test erroneously attempts to read from the original display list (which, importantly, doesn't have
a reading client) and ends up exercising the decoding failure anyways, but additionally hits a debug assertion
in the process. Simply fix this by reading out of the correct display list (and rename the original display list
in the process to make the test more clear).

  • TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:

(TestWebKitAPI::TEST)

4:58 PM Changeset in webkit [271870] by Peng Liu
  • 6 edits in trunk/Source/WebCore

Twitter PiP video pauses when scrolling
https://bugs.webkit.org/show_bug.cgi?id=220887

This patch adds two quirks (requiresUserGestureToPauseInPictureInPicture and
requiresUserGestureToLoadInPictureInPicture) for twitter.com, so that when we scroll
the page while a video is in picture-in-picture, the video won't pause or close.

This patch also fixes a race condition related to function MediaElementSession::playbackPermitted()
by adding a parameter (MediaPlaybackOperation) to it. Because of the race condition, we
cannot resume a paused video in a picture-in-picture window on some sites (e.g., twitter.com).
That happens because when we click the play button on the picture-in-picture window to resume
a video, MediaElementSession::playbackPermitted() will be called by
HTMLMediaElement::mediaPlayerDidAddAudioTrack() when HTMLMediaElement::pause() returns false
(means the playback has already been resumed), so the request to add audio track will be rejected
due to the requiresUserGestureToPauseInPictureInPicture quirk and the video will be paused.
This patch fixes this race condition by enabling the requiresUserGestureToPauseInPictureInPicture
quirk only when the playback operation is "pause".

Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::suspendPlayback): We should use pauseInternal() instead of pause() here,
otherwise, it will be prevented by the requiresUserGestureToPauseInPictureInPicture quirk.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted const):

  • html/MediaElementSession.h:
  • page/Quirks.cpp:

(WebCore::Quirks::requiresUserGestureToPauseInPictureInPicture const):
(WebCore::Quirks::requiresUserGestureToLoadInPictureInPicture const):

  • page/Quirks.h:
4:50 PM Changeset in webkit [271869] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Changes to commit-log-editor should trigger webkitpy EWS tests
https://bugs.webkit.org/show_bug.cgi?id=220953

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(CheckPatchRelevance): Added commit-log-editor to list of relevant files for webkitpy ews.

  • CISupport/ews-build/steps_unittest.py: Improved unit-test to check for various file-names.
4:36 PM Changeset in webkit [271868] by Devin Rousso
  • 3 edits in trunk/Source/WebKit

[iOS] improve support for sequential scribble interactions that involving different inputs
https://bugs.webkit.org/show_bug.cgi?id=220933
<rdar:/problem/71911346>

Reviewed by Tim Horton.

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

(-[WKContentView cleanUpInteraction]):
(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView _willBeginTextInteractionInTextInputContext:]):
(-[WKContentView _didFinishTextInteractionInTextInputContext:]):
Rather than have a simple "yes/no" _textInteractionIsHappening we should keep a count of
scribble interactions (increment in willBegin* and decrement in didFinish*) so that we
don't send unnecessary/incorrect IPC to the WebProcess after the first scribble commits if
there's a second scribble in progress for another element.

4:33 PM Changeset in webkit [271867] by Jonathan Bedard
  • 18 edits
    3 moves in trunk

[run-webkit-tests] Support python layout tests
https://bugs.webkit.org/show_bug.cgi?id=220749
Tools:

<rdar://problem/73375271>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder._real_tests): Exclude "tools" directories.
(LayoutTestFinder._is_test_file): Special case for web socket's *_wsh.py files.
(LayoutTestFinder._is_w3c_resource_file): Exclude w3c Python files.

LayoutTests:

Reviewed by Alexey Proskuryakov.

  • html5lib/generate-test-wrappers: Copied from LayoutTests/html5lib/generate-test-wrappers.py.
  • html5lib/generate-test-wrappers.py: Removed.
  • http/conf/apache2.2-httpd.conf: Allow .py files to be run as CGI binaries.
  • http/conf/apache2.4-httpd.conf: Ditto.
  • http/conf/apache2.4-php7-httpd.conf: Ditto.
  • http/conf/archlinux-httpd.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.0.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.1.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.2.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.3.conf: Ditto.
  • http/conf/debian-httpd-2.4-php7.4.conf: Ditto.
  • http/conf/fedora-httpd-2.2.conf: Ditto.
  • http/conf/fedora-httpd-2.4-php7.conf: Ditto.
  • http/conf/fedora-httpd-2.4.conf: Ditto.
  • http/conf/flatpak-httpd.conf: Ditto.
  • http/conf/win-httpd-2.4-php5.conf: Ditto.
  • http/conf/win-httpd-2.4-php7.conf: Ditto.
  • media/track/opera/track/webvtt/parsing-cue-data/buildtests: Copied from LayoutTests/media/track/opera/track/webvtt/parsing-cue-data/buildtests.py.
  • media/track/opera/track/webvtt/parsing-cue-data/buildtests.py: Removed.
  • webgl/generate-webgl-tests: Copied from LayoutTests/webgl/generate-webgl-tests.py.
  • webgl/generate-webgl-tests.py: Removed.
3:32 PM Changeset in webkit [271866] by weinig@apple.com
  • 6 edits in trunk

Support percentages when parsing color(srgb ...) and color(display-p3 ...) per-spec
https://bugs.webkit.org/show_bug.cgi?id=220940

Reviewed by Simon Fraser.

Add support for using percentages when using the color(srgb ) and color(display-p3 ) syntax. Also
fix color(lab ) to allow elliding parameters and defaulting them to 0 as per-spec.

Source/WebCore:

Unfails some WPT tests and adds additional parsing tests for lab to fast/css/parsing-lab-colors.html

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionForSRGBOrDisplayP3Parameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):

LayoutTests:

  • TestExpectations:
  • fast/css/parsing-lab-colors-expected.txt:
  • fast/css/parsing-lab-colors.html:
3:14 PM Changeset in webkit [271865] by Ryan Haddad
  • 2 edits in trunk/Tools

Unreviewed, reverting r271805.

Appears to have broken generation of changed files/functions
in commit logs

Reverted changeset:

"The generated commit message have a directory label at the
first line rather than the bug's title if ChangeLogs have
different bug titles"
https://bugs.webkit.org/show_bug.cgi?id=220822
https://trac.webkit.org/changeset/271805

2:59 PM Changeset in webkit [271864] by achristensen@apple.com
  • 2 edits in trunk/Tools

ASSERTION FAILED: This HTTPServer does not know how to respond to a request for /Ahem.svg
https://bugs.webkit.org/show_bug.cgi?id=220949

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):
A path in the test I added in r271770 was missing a / at the beginning of a path.
It passes before and after this change, but it doesn't assert after it.

2:57 PM Changeset in webkit [271863] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271753. rdar://problem/73586655

[WebAuthn] Should only check default browsers for the Modern WebAuthn
https://bugs.webkit.org/show_bug.cgi?id=220840
<rdar://problem/73375937>

Reviewed by Brent Fulgham.

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::makeCredential): (WebKit::WebAuthenticatorCoordinator::getAssertion): (WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable):

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

2:57 PM Changeset in webkit [271862] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271531. rdar://problem/73586664

Playback fails at marketwatch.com
https://bugs.webkit.org/show_bug.cgi?id=220646
<rdar://72950166>

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Test: media/media-play-promise-reject-play-notallowed-audio.html

When audio playback is blocked by settings, the HTMLMediaElement must load its source
media's metadata in order to determine whether the media should be allowed to play without a
user gesture. If a play promise is pending, the expectation is that those promises will
reject with a NotAllowedError to indicate that a user gesture is needed. However, by calling
pauseInternal() to block (possibly) existing playback, this causes those promises to be
rejected with an AbortError, as if the pause() method had been called. Call
scheduleRejectPendingPlayPromises() with NotAllowedError to ensure the correct error is used
to reject.

Drive-by fix: no reason to dispatch and call rejectPendingPlayPromises() or
resolvePendingPlayPromises() if there are no promises to reject or resolve, and not calling
these methods makes the logs less noisy.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises): (WebCore::HTMLMediaElement::scheduleRejectPendingPlayPromises): (WebCore::HTMLMediaElement::setVolume): (WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): (WebCore::HTMLMediaElement::updateShouldPlay):

LayoutTests:

  • media/media-play-promise-reject-play-notallowed-audio-expected.txt: Added.
  • media/media-play-promise-reject-play-notallowed-audio.html: Added.

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

2:51 PM Changeset in webkit [271861] by Aditya Keerthi
  • 5 edits
    2 adds in trunk

[iOS] Obscured elements should not be focusable using the accessory bar
https://bugs.webkit.org/show_bug.cgi?id=220929
<rdar://problem/73239409>

Reviewed by Tim Horton.

Source/WebCore:

  • rendering/HitTestResult.h:

Export function so it can be called from WebKit layer.

Source/WebKit:
Currently, assistable elements hidden behind unassistable elements can
be focused using the next/previous buttons on the accessory bar. This
behavior is undesirable since users cannot see the focused element, but
are still presented UI to enter information into the element.

While the current behavior has been longstanding, its undesirability was
exposed after r269059, which made it possible to use the accessory bar
to focus elements across focusable scopes. As a result, it became possible
to focus a hidden input field on appleid.apple.com using the accessory bar.
Note that the hidden field is inside a subframe, which was previously
excluded from accessory bar next/previous operations. However, the same
bug would still exist even if the field was not inside a subframe, which
means that r269059 is not the root cause of the issue, but simply exposed
a larger underlying problem.

To prevent obscured elements from being focusable using the accessory bar,
we now use hit testing to determine whether or not an element is obscured,
before considering the element "assistable".

Test: fast/forms/ios/accessory-bar-navigation-obscured-input.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isObscuredElement):

An element is considered obscured if a hit test at its center position
relative to the main document targets a different element.

(WebKit::nextAssistableElement):

Obscured elements should not be assistable.

LayoutTests:

  • fast/forms/ios/accessory-bar-navigation-obscured-input-expected.txt: Added.
  • fast/forms/ios/accessory-bar-navigation-obscured-input.html: Added.
2:39 PM Changeset in webkit [271860] by pvollan@apple.com
  • 7 edits in trunk/Source/WebKit

[macOS] Create extension to Metal compiler service based on GPUP flags
https://bugs.webkit.org/show_bug.cgi?id=220931
<rdar://problem/73574476>

Reviewed by Brent Fulgham.

Depending on which GPUP settings are enabled, an extension to the Metal compiler service should be created.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuMachServices):
(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/com.apple.WebProcess.sb.in:
2:24 PM Changeset in webkit [271859] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] imported/w3c/web-platform-tests/css/css-color/system-color-compute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220947

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as failing.
2:13 PM Changeset in webkit [271858] by Alan Coon
  • 8 edits in branches/safari-611-branch

Cherry-pick r271799. rdar://problem/73581832

PCM: Use different well-known locations for triggering and reporting attribution
https://bugs.webkit.org/show_bug.cgi?id=220902
<rdar://problem/73550632>

Reviewed by Brent Fulgham.

The discussion in W3C Privacy CG concluded that we should use distinct
well-known URL paths for websites triggering attribution and for the
browser reporting attribution
(https://github.com/privacycg/private-click-measurement/issues/59).

This patch changes the one location to these two:
/.well-known/private-click-measurement/trigger-attribution
/.well-known/private-click-measurement/report-attribution

Source/WebCore:

Existing tests updated.

  • loader/PrivateClickMeasurement.cpp: (WebCore::PrivateClickMeasurement::parseAttributionRequest): (WebCore::PrivateClickMeasurement::reportURL const):

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm: (TestWebKitAPI::TEST):

LayoutTests:

  • http/tests/privateClickMeasurement/resources/redirectToConversion.php:
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php:

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

2:13 PM Changeset in webkit [271857] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271618. rdar://problem/73477509

REGRESSION(r266695) Range control with custom track width sized incorrectly
https://bugs.webkit.org/show_bug.cgi?id=220608

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/forms/range/input-range-sizing-fixed-size.html

In r266695 we modified the way min-{width|height}: auto was computed for flexbox elements. That broke the sizing
of input range controls that were working under the assumption that min-{width|height} was 0. We have to force it
in the UA CSS in order to keep the same behaviour.

  • css/html.css: (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): force min-width: 0.

LayoutTests:

New test case to verify that input range controls are sized correctly with specified widths.

  • fast/forms/range/input-range-sizing-fixed-size-expected.html: Added.
  • fast/forms/range/input-range-sizing-fixed-size.html: Added.

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

2:13 PM Changeset in webkit [271856] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271613. rdar://problem/73477407

[WebAuthn] Polish the new WebAuthn UI
https://bugs.webkit.org/show_bug.cgi?id=220617
<rdar://problem/73185470>

Reviewed by Brent Fulgham.

This patch does the following few things:

  1. It updates the way how the PIN error for security keys is handled.
  2. It uses the credential name to identify a credential that passed to the UI instead of the login choice object as it turns out that the UI won't return the same object at all.
  3. It delays to show the UI if the platform authenticator is involved given the platform authenticator might not contain the requested credentials. If not, we should either show an error or just requesting the security key ones.

Covered by manual tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h: (NS_ERROR_ENUM):
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm: (WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator): (WebKit::AuthenticatorPresenterCoordinator::updatePresenter): (WebKit::AuthenticatorPresenterCoordinator::selectAssertionResponse): (WebKit::AuthenticatorPresenterCoordinator::didSelectAssertionResponse):
  • UIProcess/WebAuthentication/Cocoa/WKASCAuthorizationPresenterDelegate.mm: (-[WKASCAuthorizationPresenterDelegate authorizationPresenter:credentialRequestedForLoginChoice:authenticatedContext:completionHandler:]):

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

2:13 PM Changeset in webkit [271855] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/WebInspectorUI

Cherry-pick r271612. rdar://problem/73478355

Web Inspector: Historical Figures string should be Alternate Glyphs
https://bugs.webkit.org/show_bug.cgi?id=220731

Reviewed by BJ Burg.

Changed title for CSS property font-variant-alternates to be Alternate Glyphs.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/FontDetailsPanel.js: (WI.FontDetailsPanel.prototype.initialLayout):

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

2:13 PM Changeset in webkit [271854] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271589. rdar://problem/73477370

Apple Mail AX, VoiceOver: When composing a new email message, moving VO focus to the message body field does not bring keyboard focus along.
https://bugs.webkit.org/show_bug.cgi?id=220672
<rdar://problem/73045466>

Reviewed by Darin Adler.

The call to AccessibilityObject::setFocused to set the focus to the
scroll view needs to happen before the check for canSetFocusAttribute.

  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::setFocused):

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

2:13 PM Changeset in webkit [271853] by Alan Coon
  • 9 edits
    1 delete in branches/safari-611-branch

Cherry-pick r271587. rdar://problem/73477379

Fix for LayoutTests/accessibility/canvas-fallback-content.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=220644

Reviewed by Chris Fleizach.

Source/WebCore:

Tests:
accessibility/canvas-fallback-content.html
accessibility/canvas-fallback-content-2.html

  • Updates the accessibility isolated tree when the ARIA role attribute changes for a DOM element.
  • Modified tests to use Promises and retrieve accessible elements by IDs so that they work in both isolated tree mode on and off.
  • accessibility/AXLogger.cpp: (WebCore::operator<<): Added new value to the AXNotification enum.
  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAriaRoleChanged): Updates the isolated tree when an ARIA role attribute changes. (WebCore::AXObjectCache::updateIsolatedTree): Handles the AXAriaRoleChanged notification.
  • accessibility/AXObjectCache.h:

LayoutTests:

  • accessibility/canvas-fallback-content-2-expected.txt: Removed the checks for the document.activeElement since the goal here is not to test this method.
  • accessibility/canvas-fallback-content-2.html: Retrieved the accessibility Objects by ID directly from the accessibilityController. This simplifies the code since it is not necessary to set focus to the object via the document, to then retrieve the focused accessibility element. This works for isolated tree mode on and off.
  • accessibility/canvas-fallback-content.html: Kept the focus manipulations but used Promises to make it work in both isolated mode on and off.
  • platform/win/accessibility/canvas-fallback-content-expected.txt: Deleted.
  • platform/win/TestExpectations: Skip since this test was already failing in win.

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

2:13 PM Changeset in webkit [271852] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r271586. rdar://problem/73477459

[AppleWin 32bit] LLInt C Loop: LowLevelInterpreter.cpp(90,7): error C2653: 'WebConfig': is not a class or namespace name
https://bugs.webkit.org/show_bug.cgi?id=220405

Reviewed by Fujii Hironori.

Add a missing #if ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD).

  • llint/LowLevelInterpreter.cpp:

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

2:13 PM Changeset in webkit [271851] by Alan Coon
  • 12 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271584. rdar://problem/73473616

Optimize :hover/:active style invalidation for deep trees and descendant selectors
https://bugs.webkit.org/show_bug.cgi?id=220711

Reviewed by Zalan Bujtas.

Hover and active states are flipped for the entire ancestor chain. We compute invalidation for each flipped
element separately. If the selectors are of form ':active .descendant' then each of these invalidations needs
to traverse the whole subtree, leading to O(n2) behavior.

We really only need to traverse the descendants once, starting from the element closest to the root that changes state.

  • dom/Document.cpp: (WebCore::Document::updateHoverActiveState):

Compute the change root and pass the information to setActive/Hover.
Reorganize the function a bit to allow this, and for general readability.

  • dom/Element.cpp: (WebCore::Element::setActive): (WebCore::Element::setHovered):
  • dom/Element.h:
  • html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::setActive):
  • html/HTMLAnchorElement.h:
  • html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::setActive): (WebCore::HTMLLabelElement::setHovered):
  • html/HTMLLabelElement.h:
  • html/shadow/SpinButtonElement.cpp: (WebCore::SpinButtonElement::setHovered):
  • html/shadow/SpinButtonElement.h:
  • style/PseudoClassChangeInvalidation.cpp: (WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):

Only include descendant traversing rulesets for the change root.

  • style/PseudoClassChangeInvalidation.h: (WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):

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

2:13 PM Changeset in webkit [271850] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271542. rdar://problem/73477309

(REGRESSION) Playback pauses upon entering PiP via media controls on trailers.apple.com
https://bugs.webkit.org/show_bug.cgi?id=220669

Reviewed by Jer Noble.

Add a quirk to disable the "webkitendfullscreen" event when a video enters picture-in-picture
from fullscreen for the sites which cannot handle the event properly.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::enterFullscreen):
  • page/Quirks.cpp: (WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):
  • page/Quirks.h:

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

2:13 PM Changeset in webkit [271849] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271537. rdar://problem/73478698

REGRESSION(r267763) Uploading zipped directories does not work on iOS
https://bugs.webkit.org/show_bug.cgi?id=220666
<rdar://problem/72940505>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-15
Reviewed by Geoffrey Garen.

r267763 removed indexedDatabaseTempBlobDirectoryExtensionHandle with no replacement, which used to give the network process
read/write access to /tmp inside the parent process's container. This seems to have been unused for IndexedDB, but it was used
by createTemporaryZipArchive when uploading directories, such as Pages, Numbers, and Keynote documents.

Unfortunately the unit test added by r248139 is macOS-only because WKOpenPanelParameters is only available on macOS and it would
require a large and risky amount of refactoring to add SPI on iOS to test this because iOS uses WKFileUploadPanel instead.
I did manually verify that the bug is fixed using my phone, though.

  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

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

2:13 PM Changeset in webkit [271848] by Alan Coon
  • 5 edits in branches/safari-611-branch

Cherry-pick r271536. rdar://problem/73477501

AX: increment/decrement synthetic arrow events don't work in ARIA slider examples
https://bugs.webkit.org/show_bug.cgi?id=220626
<rdar://problem/73228924>

Reviewed by Zalan Bujtas.

Source/WebCore:

keyCode is still expected to be filled in with standard codes for arrow keys.

Updated test: accessibility/keyevents-posted-for-increment-actions.html

  • accessibility/AccessibilityNodeObject.cpp: (WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange):

LayoutTests:

  • accessibility/keyevents-posted-for-increment-actions-expected.txt:
  • accessibility/keyevents-posted-for-increment-actions.html:

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

2:12 PM Changeset in webkit [271847] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271530. rdar://problem/73478410

CRASH in MediaSourcePrivateAVFObjC::removeSourceBuffer()
https://bugs.webkit.org/show_bug.cgi?id=220647
<rdar://73173684>

Reviewed by Darin Adler.

In exceptional circumstances, the MediaPlayerPrivateMediaSourceAVFObjC can be destroyed before
MediaSourcePrivateAVFObjC, which leaves behind a null WeakPtr. Null check m_player before
using everywhere in MediaSourcePrivateAVFObjC.

Drive-by fix: it would be invalid to pass in a null player to MediaSourcePrivateAVFObjC::create(),
so modify that method to take a reference rather than a pointer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::create): (WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): (WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): (WebCore::MediaSourcePrivateAVFObjC::durationChanged): (WebCore::MediaSourcePrivateAVFObjC::markEndOfStream): (WebCore::MediaSourcePrivateAVFObjC::readyState const): (WebCore::MediaSourcePrivateAVFObjC::setReadyState): (WebCore::MediaSourcePrivateAVFObjC::waitForSeekCompleted): (WebCore::MediaSourcePrivateAVFObjC::seekCompleted): (WebCore::MediaSourcePrivateAVFObjC::currentMediaTime const): (WebCore::MediaSourcePrivateAVFObjC::sourceBufferPrivateDidChangeActiveState): (WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded): (WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo):

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

2:12 PM Changeset in webkit [271846] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebInspectorUI

Cherry-pick r271528. rdar://problem/73477082

Web Inspector: Font Details sidebar - Improve line wrapping of table row titles when space is available
https://bugs.webkit.org/show_bug.cgi?id=219997

Reviewed by Devin Rousso.

Adjust the width of the title in each row to 105px, which provides space for both Historical Figures which is
an always-present row and Optical Size (opsz) which is a registed variation axis and is used in numerous
fonts including San Francisco. This overrides the normal fixed width of these titles of 85px, which causes these
and numerous other unregistered axis names and tags to wrap their title more aggresively than is stricly
necessary.

  • UserInterface/Views/FontDetailsPanel.css: (.sidebar > .panel.details.style-font > .content .details-section > .content > .group > .row.simple > .label):

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

2:12 PM Changeset in webkit [271845] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271516. rdar://problem/73477422

[LFC][Integration] REGRESSION (r270123) facebook.com birthday dropdown do not work when creating new account
https://bugs.webkit.org/show_bug.cgi?id=220638
<rdar://problem/73175259>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes incorrect hittest results when the hittest target

  1. participates in the modern line layout and
  2. prior to the hittesting its style changes in a way that it does not trigger layout. e.g. <div><div id=inner style="display: inline-block; visibility: hidden"><div></div> <script>inner.style.visibility = "visible"</script>

Any subsequent hittest will miss the inner <div> as the loop in LineLayout::hitTest() early returns due to stale style information.
The reason why we end up with stale style is because we only update the layout box's style when the style diff >= StyleDifference::Layout () in RenderBox::styleDidChange.

Test: fast/inline-block/hittest-fails-on-inline-block-with-visibility-change.html

  • rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange):

LayoutTests:

  • fast/inline-block/hittest-fails-on-inline-block-with-visibility-change-expected.txt: Added.
  • fast/inline-block/hittest-fails-on-inline-block-with-visibility-change.html: Added.

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

2:12 PM Changeset in webkit [271844] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271486. rdar://problem/73478688

Use callOnMainRunLoop in MediaPermissionUtilities
https://bugs.webkit.org/show_bug.cgi?id=220616
<rdar://problem/73002655>

Reviewed by Chris Dumez.

This ensures that we are in main thread and not in web thread.

  • UIProcess/Cocoa/MediaPermissionUtilities.mm: (WebKit::requestAVCaptureAccessForType): (WebKit::requestSpeechRecognitionAccess):

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

2:12 PM Changeset in webkit [271843] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271476. rdar://problem/73478439

Crash ASSERT in AccessibilityRenderObject::textUnderElement during AXIsolatedObject initialization.
https://bugs.webkit.org/show_bug.cgi?id=220446

Reviewed by Chris Fleizach.

AXIsolatedObject methods that need to forward the call to the associated
AXObject on the main thread, should call the updateBackingStore method
on the AXObject.
This fixes the issue with AccessibilityRenderObject::textUnderElement
shown in the stack trace.

  • accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::associatedAXObject const):

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

2:12 PM Changeset in webkit [271842] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source

Cherry-pick r271473. rdar://problem/73478401

PCM: Output logs by default, including to Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=220596
<rdar://problem/73159180>

Reviewed by Brent Fulgham.

This change turns on PCM output to Web Inspector and logs
Source/WebCore:

by default. In the case of WebCore::PrivateClickMeasurement,
this means we no longer need the debugModeEnabled()
convenience function.

  • loader/PrivateClickMeasurement.cpp: (WebCore::PrivateClickMeasurement::parseAttributionRequest): (WebCore::PrivateClickMeasurement::debugModeEnabled): Deleted.
  • loader/PrivateClickMeasurement.h:

Source/WebKit:

by default. In some of the cases, the syslog output was
deleted since it doesn't make sense to log those messages
now that we have output in Web Inspector.

  • NetworkProcess/PrivateClickMeasurementManager.cpp: (WebKit::PrivateClickMeasurementManager::storeUnattributed): (WebKit::PrivateClickMeasurementManager::handleAttribution): (WebKit::PrivateClickMeasurementManager::attribute): (WebKit::PrivateClickMeasurementManager::fireConversionRequest):

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

2:12 PM Changeset in webkit [271841] by Alan Coon
  • 14 edits in branches/safari-611-branch

Cherry-pick r271471. rdar://problem/73477068

Source/WebCore:
[HANG] 496ms to 1360ms in WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices()
https://bugs.webkit.org/show_bug.cgi?id=220471

Reviewed by Youenn Fablet.

Refactor RealtimeMediaSourceCenter::getMediaStreamDevices() to take a completion handler, rather than
synchronously return a Vector of CaptureDevices. This also requires all CaptureDeviceManager subclasses
to support taking a completion handler themselves. By default, all CaptureDeviceManagers will support
the CompletionHandler path by just synchronously calling the completion handler with the existing
synchronous method. But for AVAudioSessionCaptureDeviceManager, override that default implementation by
activating the AVAudioSession on a background thread, and querying that session's inputs on a background
thread as well.

  • platform/mediastream/CaptureDeviceManager.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp: (WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices):
  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceFactory.h: (WebCore::AudioCaptureFactory::getSpeakerDevices const):
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::audioSessionDeviceWithUID): (WebCore::AVAudioSessionCaptureDeviceManager::scheduleUpdateCaptureDevices): (WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): (WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices): (WebCore::AVAudioSessionCaptureDeviceManager::activateAudioSession): (WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices const): (WebCore::AVAudioSessionCaptureDeviceManager::setAudioCaptureDevices): (WebCore::AVAudioSessionCaptureDeviceManager::audioSessionCaptureDevices): Deleted.

Source/WebKit:
[HANG] 496ms to 1360ms in WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices()
https://bugs.webkit.org/show_bug.cgi?id=220471

Reviewed by Youenn Fablet.

Use the completion-handler version of RealtimeMediaSourceCenter::getMediaStreamDevices().

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaProcessManager.cpp: (WebKit::UserMediaProcessManager::updateCaptureDevices): (WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices):
  • UIProcess/UserMediaProcessManager.h:

LayoutTests:
[Cocoa] Support key rotation with HLS-backed encrypted media streams
https://bugs.webkit.org/show_bug.cgi?id=220493
<rdar://68227709>

Reviewed by Youenn Fablet.

Fix a broken layout test; the test enumerates devices, then uses the deviceIds returned to generate
constraints for a call to getUserMedia(). However, it assumes all devices will either be of kind
'audioinput' or 'videoinput'. If an 'audiooutput' device is returned (as the MockRealtimeMediaSourceCenter
does), then the test turns that into a video capture constraint, which fails.

  • fast/mediastream/get-user-media-device-id.html:

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

2:12 PM Changeset in webkit [271840] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271467. rdar://problem/73477045

Crash at SOAuthorizationSession::dismissViewController
https://bugs.webkit.org/show_bug.cgi?id=220482
<rdar://problem/72375494>

Reviewed by Darin Adler.

A crash report suggests that SOAuthorizationSession::dismissViewController could crash at evaluating m_page.
This could only happen if the SOAuthorizationSession object is freed. The stack trace starts with callbacks
from NSNotificationCenter, which capture a RefPtr of the SOAuthorizationSession object and should guarantee
the lifetime of the object. So it contradicts the crash report.

One of the possible explanations is that the RefPtr is somehow over-released within NSNotificationCenter since
it's not thread-safe. To fix that, the RefPtr can be made thread-safe.

No tests.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm: (WebKit::SOAuthorizationSession::dismissViewController):

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

2:12 PM Changeset in webkit [271839] by Alan Coon
  • 3 edits in branches/safari-611-branch/LayoutTests

Cherry-pick r271453. rdar://problem/73477471

Fix for LayoutTests/accessibility/mac/details-summary.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=220597

Reviewed by Chris Fleizach.

  • Use Promises to wait for the expanded state change.
  • Added a comment to clarify why it is necessary to fetch a new accessible object by ID every time after setting the AXExpanded attribute for <details> elements.
  • accessibility/mac/details-summary-expected.txt: The order in which the notifications come through changed.
  • accessibility/mac/details-summary.html:

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

2:12 PM Changeset in webkit [271838] by Alan Coon
  • 4 edits in branches/safari-611-branch

Cherry-pick r271436. rdar://problem/73477448

REGRESSION(r268666) Incorrect vertical position inside grid items with padding
https://bugs.webkit.org/show_bug.cgi?id=220524

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

In r268666 we sanitized and renamed the old overrideLogicalXXX sizes so that they store what they say.
There was a mistake in one of those renames, in availableLogicalHeightForPercentageComputation() we were
returning the border box size for the case of grid items. That's clearly wrong as we should return the
content box size. That's why adding a padding to a grid item was causing their children to wrongly
evaluate the available logical height.

This fixes a WPT that was marked as failure.

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): Return the overridingContentLogicalHeight instead of the overridingLogicalHeight.

LayoutTests:

  • TestExpectations: remove web-platform-tests/css/css-grid/grid-items/percentage-size-subitems-001.html from the list of image failures.

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

2:12 PM Changeset in webkit [271837] by Alan Coon
  • 7 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271435. rdar://problem/73477090

REGRESSION (r267571): black line appears upon navigating back from apple.com shopping bag
https://bugs.webkit.org/show_bug.cgi?id=220550
<rdar://problem/72459816>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark two additional PASS results for ::marker tests.

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:

Source/WebCore:

Test: webanimations/no-transition-on-after-pseudo-element-upon-creation.html

In r267571, we refactored the code to use Styleable instead of Element in pseudo-element resolution code. While there
should have been no behavior change, there was a change in Style::TreeResolver::createAnimatedElementUpdate() that
mistakenly introduced one.

In order to get the "before" style to be used to consider CSS Transitions, we used to simply call Element::renderOrDisplayContentsStyle()
on the element provided to createAnimatedElementUpdate(), which would be either an Element or a PseudoElement in the
case of ::before and ::after. When we switched to using Styleable, we made a change where we'd call renderOrDisplayContentsStyle()
on the Styleable's element, if it didn't a pseudo-element, or try to get the matching PseudoElement in the case of
::before and ::after. However, if we got a nullptr RenderStyle in the PseudoElement case, we'd fall back to using the
style from the host element.

This yielded this regression on apple.com where a transition is started on an ::after pseudo-element which has an
"opacity: 0" style and a "transition" style set for "opacity". The host element is created first, and later the
::after pseudo-element added. While it should not consider starting a transition in this case since upon creation
there is no existing style to work with, it did start a transition since it would use the host element's style
and see "opacity: 1" to start a transition.

In this patch, we address the FIXME we'd left behind in TreeResolver::createAnimatedElementUpdate() and make
Element::renderOrDisplayContentsStyle() take in a PseudoId, defaulting to PseudoId::None. In case we have a
pseudo-element, we first try to call renderOrDisplayContentsStyle() on the matching PseudoElement if it exists,
or we return the existing computed style for this pseudo-element.

If there is no existing computed style, we return nullptr, which means that in the apple.com scenario, no transition
is started because we correctly don't have a "before" style to work within upon creation of the ::after pseudo-element.

  • dom/Element.cpp: (WebCore::beforeOrAfterPseudoElement): (WebCore::Element::renderOrDisplayContentsStyle const):
  • dom/Element.h:
  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

Add a test that checks that adding a pseudo-element for an existing host element does not use
the host element's style to consider starting a transition.

  • webanimations/no-transition-on-after-pseudo-element-upon-creation-expected.html: Added.
  • webanimations/no-transition-on-after-pseudo-element-upon-creation.html: Added.

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

2:12 PM Changeset in webkit [271836] by Alan Coon
  • 2 edits in branches/safari-611-branch/LayoutTests/imported/w3c

Cherry-pick r271434. rdar://problem/73478450

Use promise_test in WPT beacon/beacon-common.sub.js instead of async_test
https://bugs.webkit.org/show_bug.cgi?id=220541
<rdar://problem/72940308>

Reviewed by Geoffrey Garen.

Use promise_test to limit the number of requests sent in parallel.
This helps the server responds properly.

  • web-platform-tests/beacon/beacon-common.sub.js: (runTests):

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

2:12 PM Changeset in webkit [271835] by Alan Coon
  • 8 edits
    1 add in branches/safari-611-branch

Cherry-pick r271422. rdar://problem/73477541

[JSC] Bypass OperationPtrTagging for JITCage verification for CallDOMGetter
https://bugs.webkit.org/show_bug.cgi?id=220564

Reviewed by Saam Barati.

JSTests:

  • stress/domjit-getter2.js: Added. (shouldBe): (access):

Source/JavaScriptCore:

CustomAccessorPtrTag functions are not registered ones for JITCage since we are using C++ trampoline to invoke them.
However, we do not want to use this trampoline in x64 due to performance issue. So we would like to call these
functions directly from JIT while they are not registered (And this is OK in JITCage since they are called from trampoline).
In this patch we bypass OperationPtrTagging by using WTF::tagNativeCodePtrImpl directly for non JITCage case.

  • dfg/DFGJITCompiler.h: (JSC::DFG::JITCompiler::appendOperationCall):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
  • dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::appendOperationCall):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter): (JSC::FTL::DFG::LowerDFGToB3::vmCall):
  • ftl/FTLOutput.h: (JSC::FTL::Output::operation):
  • tools/JSDollarVM.cpp:

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

2:11 PM Changeset in webkit [271834] by Alan Coon
  • 12 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271416. rdar://problem/73478416

AX: Implement aria-braillelabel and aria-brailleroledescription
https://bugs.webkit.org/show_bug.cgi?id=220516
<rdar://problem/73004715>

Reviewed by Zalan Bujtas.

Source/WebCore:

Add support for new ARIA attributes.

Test: accessibility/mac/braille-label-role.html

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityBrailleLabel]): (-[WebAccessibilityObjectWrapper accessibilityBrailleRoleDescription]):
  • accessibility/isolatedtree/AXIsolatedObject.cpp: (WebCore::AXIsolatedObject::initializeAttributeData):
  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
  • html/HTMLAttributeNames.in:

LayoutTests:

  • accessibility/braille-label-role-expected.txt: Added.
  • accessibility/braille-label-role.html: Added.

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

2:11 PM Changeset in webkit [271833] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source/WebInspectorUI

Cherry-pick r271410. rdar://problem/73478423

Web Inspector: Remove experimental setting and enable Font details sidebar
https://bugs.webkit.org/show_bug.cgi?id=220438

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/ElementsTabContentView.js: (WI.ElementsTabContentView):
  • UserInterface/Views/SettingsTabContentView.js: (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

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

2:11 PM Changeset in webkit [271832] by Alan Coon
  • 4 edits in branches/safari-611-branch/LayoutTests

Cherry-pick r271407. rdar://problem/73477392

REGRESSION (r271341): media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=220530

Reviewed by Eric Carlson.

Similar to r271377, this patch fixes a layout test failure/timeout by enabling "MockVideoPresentationMode"
and sending a request to enter/exit fullscreen after the current mode change is completed.

  • media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html:
  • platform/mac/TestExpectations:

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

2:11 PM Changeset in webkit [271831] by Alan Coon
  • 2 edits in branches/safari-611-branch/Tools

Cherry-pick r271380. rdar://problem/73477386

ASSERTION FAILED: !event
event.type == NSEventTypeLeftMouseDown event.type == NSEventTypeRightMouseDown event.type == NSEventTypeOtherMouseDown

https://bugs.webkit.org/show_bug.cgi?id=220520
<rdar://problem/73007898>

Reviewed by Tim Horton.

Fix the assertion by synthesizing a "mouse down" event instead of "mouse entered".

  • TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm: (TestWebKitAPI::TEST):

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

2:11 PM Changeset in webkit [271830] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source

Cherry-pick r271417. rdar://problem/73376369

[macOS] Reset user directory suffix before getting sandbox directory
https://bugs.webkit.org/show_bug.cgi?id=220358
<rdar://problem/57616019>

Reviewed by Alexey Proskuryakov.

Source/WebCore/PAL:

Declare functions to get and set user directory suffix.

  • pal/spi/cocoa/CoreServicesSPI.h:

Source/WebKit:

Reset the user directory suffix before getting the sandbox data vault directory with confstr. We do not want to include the user
directory suffix, since the sandbox data vault will then end up inside the host process' cache folder, which is undesirable.
Also, creating the data vault directory with confstr can fail under some circumstances if the user directory suffix is not empty.
This patch also changes how we next set the user directory suffix for the process. Instead of setting the environment variable
DIRHELPER_USER_DIR_SUFFIX, we can use the SPI _set_user_dir_suffix. The behavior should be identical, but I believe it is better
to use SPI for this.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):

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

2:11 PM Changeset in webkit [271829] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r271544. rdar://problem/73471591

[JSC] Clean up DFGPreciseLocalClobberize to avoid duplicate code
https://bugs.webkit.org/show_bug.cgi?id=220670

Reviewed by Filip Pizlo.

This patch cleans up DFGPreciseLocalClobberize by extracting code to lambda to remove duplicate code.

  • dfg/DFGPreciseLocalClobberize.h: (JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

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

2:11 PM Changeset in webkit [271828] by Alan Coon
  • 9 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271543. rdar://problem/73469576

[iOS] Emoji keyboard covers text field on twitter.com/messages
https://bugs.webkit.org/show_bug.cgi?id=220664
<rdar://problem/68400471>

Reviewed by Devin Rousso.

Source/WebKit:

After iOS 14, the emoji software keyboard layout now includes a search field that can be used to filter for
specific emojis. This slightly increases the overall height of the software keyboard when the emoji keyplane is
active; in turn, this means that if the selection or caret is positioned right above the top of the software
keyboard when the normal (alphabetic) keyplane is active, switching to the emoji keyplane will cause the
keyboard to overlap the selection, making it difficult to see inserted text.

To address this, add a mechanism to detect when a change in the bounds of the software keyboard causes a visible
selection or caret rect to become overlapped, and react by scrolling to keep the selection visible. This has the
effect of fixing this bug by scrolling to reveal the text field after switching to the emoji keyboard, but it
also has the effect of scrolling to keep the selection visible after detaching a connected hardware keyboard,
in the case where it would've otherwise been overlapped by the (much taller) software keyboard that appears.

Test: editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _selectionRectIsFullyVisibleAndNonEmpty]):

Add an internal helper to check whether the selection bounds are fully visible.

(-[WKWebView _scrollToRevealSelectionIfNeeded]):
(-[WKWebView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):

In the case where changing input view bounds causes a previously visible selection to become overlapped, call
-_scrollToRevealSelectionIfNeeded to make the selection visible again.

(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm: (-[WKContentView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): (-[WKContentView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.

Drive-by fix: remove the unused insideFixed: parameter from this adjacent method.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView rectToRevealWhenZoomingToFocusedElement]): (-[WKContentView _zoomToRevealFocusedElement]): (rectToRevealWhenZoomingToFocusedElement): Deleted.

Pull this into the -rectToRevealWhenZoomingToFocusedElement internal helper method instead, and use the new
selectionBoundingRectInRootViewCoordinates method below.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::selectionBoundingRectInRootViewCoordinates const):

Pull out code to compute the selection bounding rect (for both ranged and caret selections) into a method on
WebPageProxy, so that it can be used in WKContentView and WKWebView.

LayoutTests:

Add a test to verify that after disconnecting a hardware keyboard and showing the software keyboard, we scroll
up to reveal the caret in a focused text field.

  • editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard-expected.txt: Added.
  • editing/selection/ios/scroll-to-reveal-selection-when-showing-software-keyboard.html: Added.

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

2:11 PM Changeset in webkit [271827] by Alan Coon
  • 11 edits
    6 adds in branches/safari-611-branch

Cherry-pick r271524. rdar://problem/73473371

Reversed transform animation not applied alongside other transform animations
https://bugs.webkit.org/show_bug.cgi?id=218655
<rdar://problem/71116284>

Reviewed by Simon Fraser.

Source/WebCore:

Tests: webanimations/combining-transform-animations-with-different-acceleration-capabilities-2.html

webanimations/combining-transform-animations-with-different-acceleration-capabilities-3.html
webanimations/combining-transform-animations-with-different-acceleration-capabilities.html

While, in theory, animations for a transform-related CSS property (translate, rotate, scale and transform)
can be accelerated, there are various reasons why it might not, in fact, run accelerated.

One example is that the timing function is not something we can translate in terms Core Animation can
understand, such as the steps() timing function. In this case, the KeyframeEffect itself is aware of
the limitation and the method KeyframeEffect::canBeAccelerated() returns false.

Another example is that the playback rate of the animation is not 1, which we currently don't support for
Core Animation animations (see bug 211839). In this case, GraphicsLayerCA is where the impossibility to
run an animation accelerated is determined.

While we support running transform-related animations with or without acceleration, one thing we cannot
support is, for the same element, running some transform-related animations with acceleration, and some
without.

Thus, regardless of where we determine that a transform-related animation cannot be accelerated, we need
to send this information up to the KeyframeEffectStack in which this animation's effect belongs to make
sure that any other transform-related animation that may already be running accelerated no longer does
and continues running without acceleration.

There are two locations where we determine that a transform-related animation cannot be accelerated:

  1. in DocumentTimeline::applyPendingAcceleratedAnimations() under which we start, update or stop accelerated animations that have been invalidated since the last page rendering,
  2. in KeyframeEffect::updateAcceleratedActions() which is called for each page rendering, including animations that cannot be accelerated.

In the first case, we catch situations where an animation that could have been accelerated but failed
to be started due to the internal logic of GraphicsLayerCA. We use the new KeyframeEffect method
applyPendingAcceleratedActions() return value to determine this, and for each effect where the result
indicates that a transform-related animation could not be accelerated, we add the KeyframeEffectStack
to which it belongs and, once we're done with updating all effects, call the new
stopAcceleratingTransformRelatedProperties() method on the keyframe effect stack.

In the second case, we catch situations where an animation is known to not be able to run accelerated
even without involving GraphicsLayerCA. We check whether the animation targets a transform-related
property and if it is active, and if so call stopAcceleratingTransformRelatedProperties()
on the keyframe effect stack there as well.

When KeyframeEffectStack::stopAcceleratingTransformRelatedProperties() is called, we go
through all the registered effects and call stopAcceleratingTransformRelatedProperties(). This new
KeyframeEffect method will either add a pending accelerated action to stop the accelerated animation,
or if we're currently apply accelerated actions (ie. during DocumentTimeline::applyPendingAcceleratedAnimations()),
we stop the accelerated animation right away.

In both cases we know not to try running this animation again with acceleration by setting m_runningAccelerated
to RunningAccelerated::No.

  • animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::applyPendingAcceleratedAnimations):
  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isTargetingTransformRelatedProperty const): (WebCore::KeyframeEffect::isRunningAcceleratedTransformRelatedAnimation const): (WebCore::KeyframeEffect::updateAcceleratedActions): (WebCore::KeyframeEffect::applyPendingAcceleratedActions): (WebCore::KeyframeEffect::stopAcceleratingTransformRelatedProperties):
  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::stopAcceleratingTransformRelatedProperties):
  • animation/KeyframeEffectStack.h:
  • animation/WebAnimation.cpp: (WebCore::WebAnimation::applyPendingAcceleratedActions): Deleted.
  • animation/WebAnimation.h:
  • animation/WebAnimationTypes.h:

LayoutTests:

Add new tests that start a transform-related animation that runs accelerated, then add another
transform-related animation that either initially or eventually is not accelerated. In all cases,
we check that once the second animation is no longer accelerated that the first animation is also
no longer accelerated.

  • platform/win/TestExpectations:
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-2-expected.txt: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-2.html: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-3-expected.txt: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-3.html: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities-expected.txt: Added.
  • webanimations/combining-transform-animations-with-different-acceleration-capabilities.html: Added.

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

2:11 PM Changeset in webkit [271826] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source

Cherry-pick r271497. rdar://problem/73469623

Exceptions thrown when invoking a <select> on an iPhone-idiom app running on macOS
https://bugs.webkit.org/show_bug.cgi?id=220628
<rdar://problem/70546547>

Reviewed by Wenson Hsieh.
Source/WebCore/PAL:

  • pal/spi/ios/MobileGestaltSPI.h:

Source/WebKit:

iPhone-idiom apps running on macOS need to behave exactly like iPhone apps,
even in ways that might not totally make sense on the platform (e.g.
using input accessory views for <select> instead of popover) for two reasons:

  • we want to maximize compatibility, so they should behave exactly as they do on the only platform they're tested on
  • other frameworks (mostly UIKit) enforce the use of iPhone UI in iPhone-idiom apps, even on macOS
  • Shared/UserInterfaceIdiom.mm: (WebKit::currentUserInterfaceIdiomIsPadOrMac): (WebKit::setCurrentUserInterfaceIdiomIsPadOrMac): (WebKit::updateCurrentUserInterfaceIdiom): (WebKit::userInterfaceIdiomIsPad): Deleted. Simplify our UIUserInterfaceIdiom-caching code.

currentUserInterfaceIdiomIsPadOrMac now does what it says on the tin, globally;
previously on macOS it said YES for iPhone-idiom apps, but now it says NO,
like you would expect.

Use UIDevice everywhere instead of the soft-deprecated UICurrentUserInterfaceIdiomIsPad,
both because it is soft-deprecated, and because it lets us elide the static helper.

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

2:11 PM Changeset in webkit [271825] by Alan Coon
  • 5 edits in branches/safari-611-branch

Cherry-pick r271479. rdar://problem/73469631

REGRESSION (r266634): Messages crashes sometimes while scrolling around and playing YouTube videos
https://bugs.webkit.org/show_bug.cgi?id=220602
<rdar://problem/70402593>

Reviewed by Wenson Hsieh.

Source/WebKit:

No new tests; we are unable to API test video full-screen because of the lack of UIApp;
I have written a stand-alone test app that can reliably reproduce before this patch
and not afterwards.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::scheduleActivityStateUpdate): We can't call dispatchActivityStateChange directly underneath a post-commit callback, because it has side-effects (like un-parenting the full-screen window) that may result in other frameworks (e.g. UIKit) trying to install commit handlers for the same phase, which is not allowed.

To fix this, add a dispatch_async; we _only_ care that the activity state change
doesn't apply until after the active commit is complete.

Tools:

  • TestWebKitAPI/PlatformWebView.h: Mark PlatformWebView noncopyable, since it is effectively noncopyable (at least, the macOS implementation will overrelease the view if you copy it, whoops).
  • TestWebKitAPI/Tests/WebKit/DeferredViewInWindowStateChange.mm: (TestWebKitAPI::TEST): Add a matching dispatch_async, or this test fails.

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

2:11 PM Changeset in webkit [271824] by Alan Coon
  • 10 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r271469. rdar://problem/73468174

[Cocoa] Network extension sandbox extensions are sometimes issued too late
https://bugs.webkit.org/show_bug.cgi?id=220525
<rdar://problem/68443565>

Reviewed by Brent Fulgham.

Currently, Network extension sandbox extensions are sent to the WebContent process as part of the load parameters, but this is too late in some cases.
In these cases, the extensions can be sent along with the DidReceivePolicyDecision message.

  • Shared/Cocoa/LoadParametersCocoa.mm: (WebKit::LoadParameters::platformEncode const): (WebKit::LoadParameters::platformDecode):
  • Shared/LoadParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::addPlatformLoadParameters):
  • UIProcess/WebPageProxy.cpp: (WebKit::createNetworkExtensionsSandboxExtensions): (WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponseShared):
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didReceivePolicyDecision):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

2:11 PM Changeset in webkit [271823] by Alan Coon
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271446. rdar://problem/73469344

REGRESSION (r257839): Broken focus when 'display' changes in an attribute selector
https://bugs.webkit.org/show_bug.cgi?id=217240
<rdar://problem/69891684>

Reviewed by Wenson Hsieh.

Source/WebCore:

Focus optimization that avoids full style resolution when setting focus in unrendered subtrees
misbehaves when the style is invalidated via an attribute change.

Test case by Ali Juma.

Test: fast/dom/focus-style-resolution-attribute-change.html

  • dom/Element.cpp: (WebCore::Element::invalidateStyle):
  • dom/Node.cpp: (WebCore::Node::invalidateStyle):

We need to set the computed style invalidity bit on all style invalidation code paths.

  • html/InputType.cpp: (WebCore::InputType::setValue):

Don't invalidate style when nothing changes.

LayoutTests:

  • fast/dom/focus-style-resolution-attribute-change-expected.html: Added.
  • fast/dom/focus-style-resolution-attribute-change.html: Added.

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

2:11 PM Changeset in webkit [271822] by Alan Coon
  • 4 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271425. rdar://problem/73469655

Multi-codepoint CJK grapheme clusters are not oriented correctly in vertical writing mode
https://bugs.webkit.org/show_bug.cgi?id=220536
<rdar://problem/70633887>

Reviewed by Zalan Bujtas.

Source/WebCore:

We have two codeblocks in this section that are meant to be used
for non-CJK text, but the compound "if" statement was causing us to hit
one of them even for CJK text.

Test: fast/text/cjk-multi-codepoint-cluster-vertical.html

  • platform/graphics/coretext/FontCascadeCoreText.cpp: (WebCore::FontCascade::fontForCombiningCharacterSequence const):

LayoutTests:

  • fast/text/cjk-multi-codepoint-cluster-vertical-expected.html: Added.
  • fast/text/cjk-multi-codepoint-cluster-vertical.html: Added.
  • platform/win/TestExpectations:

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

2:10 PM Changeset in webkit [271821] by Alan Coon
  • 4 edits
    1 add
    10 deletes in branches/safari-611-branch/LayoutTests

Cherry-pick r271419. rdar://problem/73469613

Make fast/text/international/complex-character-based-fallback.html more robust by migrating it to be a reftest instead of a DRT test
https://bugs.webkit.org/show_bug.cgi?id=220488
<rdar://problem/70556068>

Reviewed by Darin Adler.

Reference tests are more robust than render-tree dump tests.

  • fast/text/international/complex-character-based-fallback-expected.html: Added.
  • fast/text/international/complex-character-based-fallback.html:
  • platform/gtk/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/gtk/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/ios/TestExpectations:
  • platform/ios/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/ios/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/mac/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/win/fast/text/international/complex-character-based-fallback-expected.png: Removed.
  • platform/win/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/wincairo/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
  • platform/wpe/fast/text/international/complex-character-based-fallback-expected.txt: Removed.

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

2:10 PM Changeset in webkit [271820] by Alan Coon
  • 17 edits
    1 add in branches/safari-611-branch/Source

Cherry-pick r271405. rdar://problem/73466993

[Cocoa] Support key rotation with HLS-backed encrypted media streams
https://bugs.webkit.org/show_bug.cgi?id=220493
<rdar://68227709>

Reviewed by Eric Carlson.

Source/WebCore:

Support key rotation through AVContentKeySession by explicitly handling unexpected key requests
submitted through the new -contentKeySession:didProvideContentKeyRequests:forInitializationData:.
Rotation was previously handled in the delegate method -contentKeySession:didProvideContentKeyRequest,
but that method is no longer called after the replacement delegate method was implemented, and
that method never handled "skd://" style initialization data.

Update the helper method, initTypeForRequest(), to detect "skd://" identifiers and correctly identify
those sessions as "skd".

Add a new helper method, initializationDataForRequest(), which will package the AVContentKeySession's
identifier as initialization data.

Drive-by Fix: Fixing this bug causes the default key group to update it's identifier, which causes an assert
when the group in question isn't any of those associated with an existing MediaKeySession, so handle that case
explicitly.

Drive-by Fix 2: Sometimes, when GPUP is enabled for media, we will get spurious mediaPlayerEngineUpdated()
calls which cause cdmInstanceAttached() to be called multiple times for the same player, triggering an ASSERT.
If called twice with the same CDM, just return early rather than ASSERTing.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::initTypeForRequest): (WebCore::initializationDataForRequest): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequests): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::handleUnexpectedRequests): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::cdmInstanceAttached):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

Support handling the "unexpectedInitializationDataReceived()" client callback from within the GPUP.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp: (WebKit::RemoteCDMInstanceProxy::create): (WebKit::RemoteCDMInstanceProxy::RemoteCDMInstanceProxy): (WebKit::RemoteCDMInstanceProxy::~RemoteCDMInstanceProxy): (WebKit::RemoteCDMInstanceProxy::unrequestedInitializationDataReceived):
  • GPUProcess/media/RemoteCDMInstanceProxy.h:
  • GPUProcess/media/RemoteCDMProxy.cpp: (WebKit::RemoteCDMProxy::createInstance):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteCDMInstance.cpp: (WebKit::RemoteCDMInstance::RemoteCDMInstance): (WebKit::RemoteCDMInstance::~RemoteCDMInstance): (WebKit::RemoteCDMInstance::unrequestedInitializationDataReceived):
  • WebProcess/GPU/media/RemoteCDMInstance.h:
  • WebProcess/GPU/media/RemoteCDMInstance.messages.in: Added.

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

2:10 PM Changeset in webkit [271819] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r271394. rdar://problem/73425595

[Multicol] set the childrenInline flag on the RenderBlockFlow properly
https://bugs.webkit.org/show_bug.cgi?id=218555

Reviewed by Zalan Bujtas.

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp: (WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):

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

2:10 PM Changeset in webkit [271818] by Alan Coon
  • 5 edits in branches/safari-611-branch/Source

Cherry-pick r271387. rdar://problem/73469606

Receiving two enter/exit fullscreen delegate callbacks on iPad when presenting fullscreen elements
https://bugs.webkit.org/show_bug.cgi?id=218688

Reviewed by Darin Adler.

Source/WebCore:

On iPads, when a video enters/exits fullscreen standby, we should not call the
video fullscreen delegate callbacks.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (VideoFullscreenInterfaceAVKit::setupFullscreen): (VideoFullscreenInterfaceAVKit::exitFullscreen):

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: (WebKit::VideoFullscreenManagerProxy::didExitFullscreen): (WebKit::VideoFullscreenManagerProxy::didEnterFullscreen):

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

2:10 PM Changeset in webkit [271817] by Alan Coon
  • 4 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271386. rdar://problem/73426229

Double tap to select does not work if the page clears selections on tap, like grammarly.com does
https://bugs.webkit.org/show_bug.cgi?id=220454
Source/WebKit:

rdar://67757411

Reviewed by Wenson Hsieh.

Double tap to select content did not work on grammerly.com on iPad because this is a desktop website run on a touch-based device,
and there was a script running that would clear the selection on a mouseDown event. When we would send synthetic click events to the page
we would first update the selection and then on completion of the tap, we would dispatch a mouseDown and mouseUp event on iOS. On Mac, we
update the selection between the mouseDown and the mouseUp, so in order to bring us more in line with mac/mouse behaviors, we are now saving
the information needed to update the selection when we believe we are in the middle of a potential tap, and then setting the selection between
these two events. This makes for a more expected change of events, and does not let grammerly.com clear a valid selection based off of synthetic
clicks.

Test: fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch.html

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::completeSyntheticClick): (WebKit::WebPage::setSelectionRange): (WebKit::WebPage::selectTextWithGranularityAtPoint):

LayoutTests:

Reviewed by Wenson Hsieh.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch-expected.txt: Added.
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch.html: Added.

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

2:10 PM Changeset in webkit [271816] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r271367. rdar://problem/73469641

REGRESSION (r258321): CSS rules using :first-of-type are applied to any/all siblings in a group under certain circumstances
https://bugs.webkit.org/show_bug.cgi?id=218256
<rdar://problem/70749584>

Reviewed by Simon Fraser.

Source/WebCore:

More accurate invalidation for :hover resulted in smaller style updates that revealed a bug in the way we
mark style non-shareable. We reset style relation bits when resolving the parent but may fail to set them again if we
don't re-resolve all children.

Test case by Eben Packwood.

Test: fast/css/positional-selector-style-sharing.html

  • style/StyleRelations.cpp: (WebCore::Style::commitRelationsToRenderStyle):

Just mark all styles affected by relations non-shareable. This is achieved via various bit tests but there
is no reason not to set the simplest no-sharing bit. Since this forces real style resolution the parent
bits will also get properly reset.

LayoutTests:

  • fast/css/positional-selector-style-sharing-expected.html: Added.
  • fast/css/positional-selector-style-sharing.html: Added.

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

2:09 PM Changeset in webkit [271815] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Restrict access to dtracehelper
https://bugs.webkit.org/show_bug.cgi?id=220927
<rdar://70350947>

Reviewed by Brent Fulgham.

Only allow access to dtracehelper for internal installs.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
1:37 PM Changeset in webkit [271814] by Nikolas Zimmermann
  • 28 edits in trunk/Source

Finish introduction of RenderLayerScrollableArea: remove remaining glue code from RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=220851

Reviewed by Simon Fraser.

Remove the last remaining glue code from RenderLayer, that was added
in r271559 to minimize the patch size. After this patch all call sites
use RenderLayerScrollableArea directly, removing the need for proxy
methods in RenderLayer that forward to RenderLayerScrollableArea.

The decade old bug 60305 (Separate scrolling code out of RenderLayer)
is finally closed.

Covered by existing tests.

Source/WebCore:

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::scrollTo const):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::revealSelection):

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::renderMarquee const):

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectCursor):

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayerPositionsAfterScrolling):

  • page/SpatialNavigation.cpp:

(WebCore::scrollInDirection):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::overflowScrollPositionChangedForNode):

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::isPointInOverflowControl):
(WebCore::RenderBlock::baselinePosition const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::scrollLeft const):
(WebCore::RenderBox::scrollTop const):
(WebCore::setupWheelEventMonitor):
(WebCore::RenderBox::setScrollLeft):
(WebCore::RenderBox::setScrollTop):
(WebCore::RenderBox::setScrollPosition):
(WebCore::RenderBox::verticalScrollbarWidth const):
(WebCore::RenderBox::horizontalScrollbarHeight const):
(WebCore::RenderBox::scrollLayer):
(WebCore::RenderBox::logicalScroll):
(WebCore::RenderBox::panScroll):
(WebCore::RenderBox::scrollPosition const):
(WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
(WebCore::RenderBox::overflowClipRect const):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const):
(WebCore::RenderBoxModelObject::constrainingRectForStickyPosition const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::computeOverflowTiledBackingCoverage):
(WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateScrollOffset):
(WebCore::RenderLayerBacking::updateClippingStackLayerGeometry):
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer const):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollingNodeLayers):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::LegacyWebKitScrollingLayerCoordinator::updateScrollingLayer):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::paintOverflowControls):
(WebCore::RenderLayerScrollableArea::scrollByRecursively):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::hasScrollableOrRubberbandableAncestor):

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::start):
(WebCore::RenderMarquee::timerFired):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::scroll):
(WebCore::RenderTextControlSingleLine::logicalScroll):

  • rendering/RenderTreeAsText.cpp:

Source/WebKitLegacy/mac:

  • DOM/DOMHTML.mm:

(-[DOMHTMLElement scrollXOffset]):
(-[DOMHTMLElement scrollYOffset]):
(-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]):

  • WebView/WebFrame.mm:

(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::gesture):

1:36 PM Changeset in webkit [271813] by Chris Dumez
  • 52 edits in trunk/Source

Update availability annotations to match the macOS 11.0 and iOS 14.0 GM SDKs
https://bugs.webkit.org/show_bug.cgi?id=220874
<rdar://73474368>

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • API/JSContextPrivate.h:
  • API/JSContextRefPrivate.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKContentWorld.h:
  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKFindConfiguration.h:
  • UIProcess/API/Cocoa/WKFindResult.h:
  • UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h:
  • UIProcess/API/Cocoa/WKPDFConfiguration.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKScriptMessage.h:
  • UIProcess/API/Cocoa/WKScriptMessageHandlerWithReply.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.h:
  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/API/Cocoa/WKUserScript.h:
  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKFrameTreeNode.h:
  • UIProcess/API/Cocoa/_WKInputDelegate.h:
  • UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h:
  • UIProcess/API/Cocoa/_WKTextManipulationConfiguration.h:
  • UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.h:
  • UIProcess/API/Cocoa/_WKTextManipulationItem.h:
  • UIProcess/API/Cocoa/_WKTextManipulationToken.h:
  • UIProcess/API/Cocoa/_WKUserContentWorld.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
1:29 PM Changeset in webkit [271812] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Commit Queue should retry the build when update-working-directory step fails
https://bugs.webkit.org/show_bug.cgi?id=220836

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(UpdateWorkingDirectory):
(UpdateWorkingDirectory.getResultSummary): Provide better failure message.
(UpdateWorkingDirectory.evaluateCommand): Retry the build when this step fails.

  • CISupport/ews-build/steps_unittest.py:
1:26 PM Changeset in webkit [271811] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

[iOS] Stop leaking an XPC boost message to XPC services
https://bugs.webkit.org/show_bug.cgi?id=220883
<rdar://47402853>

Reviewed by Geoffrey Garen.

Turn on RB_full_manage_WK_jetsam feature flag so that we stop leaking an XPC boost
message to XPC services on IOS_FAMILY. Instead, RunningBoard will now be setting
the priority of our XPC services based on the RunningBoard assertions we're holding
for them. The feature flag is checked both by RunningBoard and WebKit.

I have verified that our bots have upgraded to a build that supports this.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-watchos.plist:
1:25 PM Changeset in webkit [271810] by commit-queue@webkit.org
  • 3 edits
    3 deletes in trunk/LayoutTests

REGRESSION (Big Sur): Some tests in http/tests/security/http-0.9 flakily fail
https://bugs.webkit.org/show_bug.cgi?id=220188
<rdar://problem/72709565>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-25
Reviewed by Alexey Proskuryakov.

rdar://69534004 caused two tests to become flaky on Big Sur.
That change was correct, but caused issues with our test infrastructure.
r271652 successfully made default-port-script-blocked.html no longer flaky, but made default-port-plugin-blocked.html a flaky timeout.
Now that all plugins are blocked, let's just remove this test, which is no longer needed.

  • http/tests/security/http-0.9/default-port-plugin-blocked-expected.txt: Removed.
  • http/tests/security/http-0.9/default-port-plugin-blocked.html: Removed.
  • http/tests/security/http-0.9/resources/nph-load-plugin-fail.pl: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/wk2/TestExpectations:
1:24 PM Changeset in webkit [271809] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

[macOS] Restrict access to mds data
https://bugs.webkit.org/show_bug.cgi?id=220920
<rdar://70355552>

Reviewed by Brent Fulgham.

Only root show have write access.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
12:52 PM Changeset in webkit [271808] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[Cocoa] Adjust logic for creating sandbox extensions based on GPUP flags
https://bugs.webkit.org/show_bug.cgi?id=220917

Reviewed by Brent Fulgham.

Update which GPUP flag should be used in this logic. This patch also includes many IOKit classes on macOS in the set of
classes that should be extended when the appropriate GPU flags are set. In the case they are not being extended, logging
rules have been added in the sandbox, to determine if they are being used in that case.

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):
(WebKit::WebPageProxy::creationParameters):

  • WebProcess/com.apple.WebProcess.sb.in:
12:27 PM Changeset in webkit [271807] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Many WPT tests in css/css-color/predefined-*.html failing
https://bugs.webkit.org/show_bug.cgi?id=220928

Unreviewed test gardening.

12:06 PM Changeset in webkit [271806] by Chris Dumez
  • 57 edits
    4 copies
    5 adds in trunk

Support AbortSignal in addEventListenerOptions to unsubscribe from events
https://bugs.webkit.org/show_bug.cgi?id=218753
<rdar://problem/71258012>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:
Import test coverage from WPT.

  • web-platform-tests/dom/events/AddEventListenerOptions-signal.any-expected.txt: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-signal.any.html: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-signal.any.js: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-signal.any.worker-expected.txt: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-signal.any.worker.html: Added.
  • web-platform-tests/dom/events/w3c-import.log:

Source/WebCore:
Support AbortSignal in addEventListenerOptions to unsubscribe from events:

Blink already added support for this.

Tests: imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-signal.any.html

imported/w3c/web-platform-tests/dom/events/AddEventListenerOptions-signal.any.worker.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/async-clipboard/Clipboard.h:
  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/indexeddb/IDBRequest.h:
  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/paymentrequest/PaymentRequest.h:
  • Modules/speech/SpeechRecognition.h:
  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webxr/WebXRSystem.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/WebAnimation.h:
  • css/MediaQueryList.cpp:

(WebCore::MediaQueryList::addListener):
(WebCore::MediaQueryList::removeListener):

  • css/MediaQueryList.h:
  • dom/AbortSignal.h:
  • dom/AddEventListenerOptions.h: Copied from Source/WebCore/loader/appcache/DOMApplicationCache.h.

(WebCore::AddEventListenerOptions::AddEventListenerOptions):

  • dom/AddEventListenerOptions.idl: Copied from Source/WebCore/loader/appcache/DOMApplicationCache.h.
  • dom/EventListener.h:
  • dom/EventListenerMap.cpp:
  • dom/EventListenerOptions.h: Copied from Source/WebCore/loader/appcache/DOMApplicationCache.h.

(WebCore::EventListenerOptions::EventListenerOptions):

  • dom/EventListenerOptions.idl: Copied from Source/WebCore/loader/appcache/DOMApplicationCache.h.
  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::innerInvokeEventListeners):

  • dom/EventTarget.h:

(WebCore::EventTarget::removeEventListener):

  • dom/EventTarget.idl:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::removeEventListener):

  • dom/MessagePort.h:
  • dom/Node.cpp:

(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):

  • dom/Node.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::removeEventListener):

  • html/HTMLMediaElement.h:
  • html/ImageDocument.cpp:
  • html/track/TextTrackCue.h:
  • inspector/agents/InspectorDOMAgent.cpp:
  • loader/appcache/DOMApplicationCache.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::removeEventListener):

  • page/DOMWindow.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::removeEventListener):

  • svg/SVGElement.h:
  • svg/SVGTRefElement.cpp:
  • svg/animation/SVGSMILElement.cpp:
  • testing/Internals.cpp:
  • workers/service/ServiceWorkerContainer.h:

Source/WebKit:
Minor build fixes.

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:

Source/WebKitLegacy/mac:
Minor build fixes.

  • DOM/DOMNode.mm:

Source/WTF:
Add initializeWeakPtrFactory() protection function to CanMakeWeakPtr so that a subclass
can eagerly initialize the WeakPtrFactory even if it does not subclass
WeakPtrFactory<T, WeakPtrFactoryInitialization::Eager>. MessagePort used to subclass
WeakPtrFactory<T, WeakPtrFactoryInitialization::Eager> for thread-safety reason but it
now subclasses WeakPtrFactory<T, WeakPtrFactoryInitialization::Lazy> via EventTarget.

  • wtf/WeakPtr.h:

(WTF::CanMakeWeakPtr::initializeWeakPtrFactory):

11:58 AM Changeset in webkit [271805] by Fujii Hironori
  • 2 edits in trunk/Tools

The generated commit message have a directory label at the first line rather than the bug's title if ChangeLogs have different bug titles
https://bugs.webkit.org/show_bug.cgi?id=220822

Reviewed by Darin Adler.

commit-log-editor generates the default commit message by
collecting all ChangeLog entries and merging them with prepending
directory lables. If it finds out a common prefix for all entries,
it removes the prefix from entries and hoists the prefix as the
beginning of the commit message. This step removes duplicated
lines of the bug title, the bug URL, the reviewed-by line, and the
descriptions.

If such prefix is not found, i.e. ChangeLog entries has different
bug titles, it simply merges all entries with directory labels. As
the result, the generated commit message has the directory label
at the first line. This is not desirable. The first line of the
commit message should be the bug title.

This patch yanks the first line of the first entry as the common
prefix in the case.

  • Scripts/commit-log-editor:

(createCommitMessage):
(removeLongestCommonPrefixEndingInNewline):

11:57 AM Changeset in webkit [271804] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

[macOS] Fix OS version check for ENABLE_SET_WEBCONTENT_PROCESS_INFORMATION_IN_NETWORK_PROCESS
https://bugs.webkit.org/show_bug.cgi?id=219534
<rdar://problem/71973149>

Reviewed by Brent Fulgham.

The OS version check for ENABLE_SET_WEBCONTENT_PROCESS_INFORMATION_IN_NETWORK_PROCESS is incorrect.

  • wtf/PlatformEnableCocoa.h:
11:05 AM Changeset in webkit [271803] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Gardening API failures after r271794

Unreviewed test gardening.

Looks like these failures flew under the radar by not actually being
run by run-gtk/wpe-tests, and were uncovered by r271794.

Marking them as failure to allow the EWS to run normally while they're
fixed.

  • TestWebKitAPI/glib/TestExpectations.json:
11:04 AM Changeset in webkit [271802] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Download the build archive from master when download from S3 fails
https://bugs.webkit.org/show_bug.cgi?id=220932

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(DownloadBuiltProduct):
(DownloadBuiltProduct.evaluateCommand): If this fails, run DownloadBuiltProductFromMaster.
(DownloadBuiltProductFromMaster): Build step to download archive from master using buildbot FileDownload class.
(DownloadBuiltProductFromMaster.init):
(DownloadBuiltProductFromMaster.getResultSummary): Custom failure message.

10:52 AM Changeset in webkit [271801] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

layout-test results shouldn't be hosted on build.webkit.org server
https://bugs.webkit.org/show_bug.cgi?id=220864

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(ExtractTestResults.resultDirectoryURL):

10:33 AM Changeset in webkit [271800] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

[GPU Process] Web process should be terminated if DisplayListReaderHandle advances past 0
https://bugs.webkit.org/show_bug.cgi?id=220926

Reviewed by Simon Fraser.

Address another FIXME in the GPU Process by replacing a release assertion with a MESSAGE_CHECK. See below for
more details.

  • GPUProcess/graphics/DisplayListReaderHandle.cpp:

(WebKit::DisplayListReaderHandle::advance):

Return WTF::nullopt instead of just crashing in the case where the number of bytes to advance exceeds the
number of unread bytes. This can (and should) only happen in the case where a compromised web content process
attempts to overwrite the number of unread bytes in the shared display list header.

  • GPUProcess/graphics/DisplayListReaderHandle.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):

  • Shared/SharedDisplayListHandle.h:

Remove this virtual method from the base class, since the reader handle now returns an Optional<size_t>
instead of just a size_t.

  • WebProcess/GPU/graphics/DisplayListWriterHandle.h:
10:28 AM Changeset in webkit [271799] by wilander@apple.com
  • 8 edits in trunk

PCM: Use different well-known locations for triggering and reporting attribution
https://bugs.webkit.org/show_bug.cgi?id=220902
<rdar://problem/73550632>

Reviewed by Brent Fulgham.

The discussion in W3C Privacy CG concluded that we should use distinct
well-known URL paths for websites triggering attribution and for the
browser reporting attribution
(https://github.com/privacycg/private-click-measurement/issues/59).

This patch changes the one location to these two:
/.well-known/private-click-measurement/trigger-attribution
/.well-known/private-click-measurement/report-attribution

Source/WebCore:

Existing tests updated.

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::reportURL const):

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • http/tests/privateClickMeasurement/resources/redirectToConversion.php:
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php:
10:19 AM Changeset in webkit [271798] by weinig@apple.com
  • 14 edits
    17 copies
    24 adds in trunk/LayoutTests

Import css/css-color tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=220247
<rdar://problem/73002231>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update WPT css/css-color tests.

  • web-platform-tests/css/css-color/lab-002-expected.html:
  • web-platform-tests/css/css-color/lab-003-expected.html:
  • web-platform-tests/css/css-color/lch-001-expected.html:
  • web-platform-tests/css/css-color/lch-002-expected.html:
  • web-platform-tests/css/css-color/lch-003-expected.html:
  • web-platform-tests/css/css-color/predefined-001-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-001.html: Added.
  • web-platform-tests/css/css-color/predefined-002-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-002.html: Added.
  • web-platform-tests/css/css-color/predefined-003-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-003.html: Added.
  • web-platform-tests/css/css-color/predefined-004-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-004.html: Added.
  • web-platform-tests/css/css-color/predefined-005-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-005.html: Added.
  • web-platform-tests/css/css-color/predefined-006-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-006.html: Added.
  • web-platform-tests/css/css-color/predefined-007-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-007.html: Added.
  • web-platform-tests/css/css-color/predefined-008-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-008.html: Added.
  • web-platform-tests/css/css-color/predefined-009-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-009.html: Added.
  • web-platform-tests/css/css-color/predefined-010-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-010.html: Added.
  • web-platform-tests/css/css-color/predefined-011-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-011.html: Added.
  • web-platform-tests/css/css-color/predefined-012-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-012.html: Added.
  • web-platform-tests/css/css-color/predefined-013-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-013.html: Added.
  • web-platform-tests/css/css-color/predefined-014-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-014.html: Added.
  • web-platform-tests/css/css-color/predefined-015-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-015.html: Added.
  • web-platform-tests/css/css-color/predefined-016-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-016.html: Added.
  • web-platform-tests/css/css-color/predefined-017-expected.html: Added.
  • web-platform-tests/css/css-color/predefined-017.html: Added.
  • web-platform-tests/css/css-color/system-color-compute-expected.txt: Added.
  • web-platform-tests/css/css-color/system-color-compute.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-basic-0.6-a-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-basic-0.6-a.xht:
  • web-platform-tests/css/css-color/t32-opacity-zorder-c-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-zorder-c.xht:
  • web-platform-tests/css/css-color/t421-rgb-hex3-expand-b-expected.html: Added.
  • web-platform-tests/css/css-color/t421-rgb-hex3-expand-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-a0.6-a-expected.html: Added.
  • web-platform-tests/css/css-color/t422-rgba-a0.6-a.xht:
  • web-platform-tests/css/css-color/t425-hsla-basic-a-expected.html: Added.
  • web-platform-tests/css/css-color/t425-hsla-basic-a.xht:
  • web-platform-tests/css/css-color/w3c-import.log:

LayoutTests:

Add failing expectations for newly imported reftests that fail. Fixing them is
tracked in https://bugs.webkit.org/show_bug.cgi?id=220928.

9:12 AM Changeset in webkit [271797] by youenn@apple.com
  • 13 edits in trunk

Activate simulcast through addTransceiver
https://bugs.webkit.org/show_bug.cgi?id=173262
<rdar://problem/32713416>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addTransceiver.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-transceivers.https-expected.txt:
  • web-platform-tests/webrtc/protocol/simulcast-offer-expected.txt:

Source/WebCore:

Update WebIDL according latest version of the spec.
Add binding code to go from WebIDL to webrtc backend for sendEncodings parameters.
Minor refactoring to bring to web pages information on addTransceiver failures.

Covered by rebased tests.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpEncodingParameters.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):
(WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
(WebCore::LibWebRTCMediaEndpoint::addTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::addTransceiverFromTrackOrKind):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRTCEncodingParameters):
(WebCore::fromRtpTransceiverInit):

8:52 AM Changeset in webkit [271796] by Andres Gonzalez
  • 7 edits
    4 adds in trunk

AX: @alt and bounds ignored when using img[src] points to an inaccessible SVG
https://bugs.webkit.org/show_bug.cgi?id=160705
<rdar://problem/27771579>

Reviewed by Chris Fleizach and Darin Adler.

Source/WebCore:

Tests: accessibility/img-with-svg-source.html

accessibility/ios-simulator/img-with-svg-source.html

The problem was caused by AccessibilityRenderObject::determineAccessibilityRole
that was returning AccessibilityRole::SVGRoot for all images with a remote
SVG source, regardless whether the SVG hierarchy contained some accessibility
data or not. This resulted in VoiceOver reading the image like an empty
group on Mac, or completely ignoring the image on iOS.
The solution in this patch is to only return AccessibilityRole::SVGRoot
if the SVG has some accessibility conveyable data. Added the method
AccessibilitySVGRoot::hasAccessibleContent for this purpose.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):
Comment was missplaced, moved it to the right place.
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):

  • accessibility/AccessibilitySVGRoot.cpp:

(WebCore::AccessibilitySVGRoot::hasAccessibleContent const):

  • accessibility/AccessibilitySVGRoot.h:

LayoutTests:

  • accessibility/img-with-svg-source-expected.txt: Added.
  • accessibility/img-with-svg-source.html: Added.
  • accessibility/ios-simulator/img-with-svg-source-expected.txt: Added.
  • accessibility/ios-simulator/img-with-svg-source.html: Added.
  • accessibility/svg-shape-labelled-expected.txt:
  • accessibility/svg-shape-labelled.html:

Removed the <img> test cases since they are covered correctly in the new
test img-with-svg-source.html.

8:31 AM Changeset in webkit [271795] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Razvan Caliman to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=220921

Patch by Razvan Caliman <Razvan Caliman> on 2021-01-25
Reviewed by Timothy Hatcher.

  • Scripts/webkitpy/common/config/contributors.json:
7:08 AM Changeset in webkit [271794] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Unreviewed, reverting r270074 and r270170.
https://bugs.webkit.org/show_bug.cgi?id=220922

Broke all GLib unit tests using a SoupServer

Reverted changesets:

"[GTK] Migrate WebKitTestServer to libsoup 2.48 API"
https://bugs.webkit.org/show_bug.cgi?id=219160
https://trac.webkit.org/changeset/270074

"[GTK] Allow WebKitTestServer to run non-loopback addresses
for API tests"
https://bugs.webkit.org/show_bug.cgi?id=219257
https://trac.webkit.org/changeset/270170

5:40 AM Changeset in webkit [271793] by youenn@apple.com
  • 8 edits in trunk/Source/ThirdParty/libwebrtc

Resync libwebrtc with M87 latest branch
https://bugs.webkit.org/show_bug.cgi?id=220913

Reviewed by Eric Carlson.

Cherry-picking two changes that have been cherry-picked in upstream M87 after our latest resync.
This includes: https://webrtc-review.googlesource.com/c/src/+/187349 and https://webrtc-review.googlesource.com/c/src/+/191485.

  • Source/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc:
  • Source/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h:
  • Source/webrtc/modules/audio_coding/codecs/opus/opus_interface.cc:
  • Source/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc:
  • Source/webrtc/modules/audio_coding/test/TestVADDTX.cc:
  • Source/webrtc/pc/peer_connection_rtp_unittest.cc:
  • Source/webrtc/pc/sdp_offer_answer.cc:
4:34 AM Changeset in webkit [271792] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools

DumpRenderTree behaves differently to WebKitTestRunner wrt integrated/discrete GPU behavior
https://bugs.webkit.org/show_bug.cgi?id=220852

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-25
Reviewed by Alexey Proskuryakov.

Mark DumpRenderTree as supporting graphics switching. This lets
--prefer-integrated-gpu work as intended and compatible with WebKitTestRunner.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/mac/Info.plist: Added.
4:30 AM Changeset in webkit [271791] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr dereference in SpeechRecognition::stop()
https://bugs.webkit.org/show_bug.cgi?id=220869
<rdar://problem/73507085>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-25
Reviewed by Ryosuke Niwa.

Source/WebCore:

It is possible that SpeechRecognition is created with a Document having no frame and ActiveDOMObjects of the
Document are stopped. In this case, SpeechRecognition::stop() will be invoked after a SpeechRecognition, of
which m_connection is nullptr, is constructed.

Test: fast/speechrecognition/detached-iframe.html

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::stop):

LayoutTests:

  • fast/speechrecognition/detached-iframe-expected.txt: Added.
  • fast/speechrecognition/detached-iframe.html: Added.
4:28 AM Changeset in webkit [271790] by Chris Fleizach
  • 10 edits
    2 adds in trunk

AX: iOS: VO: Web: Column Names Not Announced
https://bugs.webkit.org/show_bug.cgi?id=220829
<rdar://problem/73469037>

Reviewed by Zalan Bujtas.

Source/WebCore:

We no longer use containedInTraits, but mean to override the tableAncestor methods.
Those need to account for the three types of tables.

Test: accessibility/ios-simulator/table-ancestory.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isInTable const):
(WTR::AccessibilityUIElement::isInLandmark const):
(WTR::AccessibilityUIElement::isInList const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::isInTable const):
(WTR::AccessibilityUIElement::isInLandmark const):
(WTR::AccessibilityUIElement::isInList const):

LayoutTests:

  • accessibility/ios-simulator/table-ancestory.html: Added.
  • accessibility/ios-simulator/table-ancestory-expected.txt: Added.
  • accessibility/ios-simulator/tables-lists.html: Updated.
2:23 AM Changeset in webkit [271789] by aboya@igalia.com
  • 2 edits in trunk/Tools

[GTK] run-gtk-tests: Use sys.exit(1) instead of return 1
https://bugs.webkit.org/show_bug.cgi?id=220860

Reviewed by Philippe Normand.

Several parts of the code in api_test_runner.py returned 1 on failure.
While common for main() functions, this is bad in functions that are
expected to return something else than an exit code, and lets the
program run after the error. sys.exit(1) should be used in those cases
instead.

  • glib/api_test_runner.py:

(TestRunner._get_tests_from_google_test_suite):
(TestRunner.run_tests):

1:45 AM Changeset in webkit [271788] by commit-queue@webkit.org
  • 15 edits
    4 adds in trunk

scroll-padding should affect paging operations
https://bugs.webkit.org/show_bug.cgi?id=219074
<rdar://problem/71747786>

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-01-25
Reviewed by Simon Fraser.

Source/WebCore:

Have scroll-padding affect the amount of the scrollable area that moves during
paging operations. This is the behavior specified in the scroll snap specification
and allows scrollable areas with partially obscured areas to properly page through
their content.

See https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding.

Tests: css3/scroll-snap/scroll-padding-mainframe-paging.html

css3/scroll-snap/scroll-padding-overflow-paging.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateScrollbarSteps): Added this override method which
properly sets page steps. Only FrameView has access to the document.

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars): Added this helper method, which is
virtual so that FrameView can override it.
(WebCore::ScrollView::updateScrollbarSteps): Use the helper method to actually
set the scrollbar steps.

  • platform/ScrollView.h: Add new method declarations.
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::scrollPaddingForViewportRect): Add this new helper which
gets the scroll-padding for a box.

  • rendering/RenderBox.h: Add new helper.
  • rendering/RenderLayer.cpp:

(WebCore::expandScrollRectToVisibleTargetRectToIncludeScrollPadding): Use the new
RenderBox helper.
(WebCore::RenderLayer::updateScrollbarsAfterLayout): Use the new updateScrollbarSteps helper.
(WebCore::RenderLayer::updateScrollbarSteps): Added this helper so that RenderLayerModelObject
can update steps when necessary.

  • rendering/RenderLayer.h: Added new declarations.
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange): Update steps on FrameViews and RenderLayers
when the style change dictates it.

LayoutTests:

  • css3/scroll-snap/scroll-padding-mainframe-paging-expected.txt: Added.
  • css3/scroll-snap/scroll-padding-mainframe-paging.html: Added.
  • css3/scroll-snap/scroll-padding-overflow-paging-expected.txt: Added.
  • css3/scroll-snap/scroll-padding-overflow-paging.html: Added.
  • platform/ios-wk2/TestExpectations: Skip failing tests.
  • platform/mac-wk1/TestExpectations: Skip failing tests.
12:33 AM Changeset in webkit [271787] by Carlos Garcia Campos
  • 3 edits
    2 adds in trunk

Null Ptr Deref @ WebCore::ReplaceSelectionCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=218493

Reviewed by Youenn Fablet.

Source/WebCore:

Test: editing/execCommand/insert-image-replace-selection-crash.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::fragmentNeedsColorTransformed): Remove invalid assert.
(WebCore::ReplaceSelectionCommand::doApply): Null check insert position container node before using it.

LayoutTests:

  • editing/execCommand/insert-image-replace-selection-crash-expected.txt: Added.
  • editing/execCommand/insert-image-replace-selection-crash.html: Added.
Note: See TracTimeline for information about the timeline view.