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

Timeline



Nov 5, 2020:

11:27 PM Changeset in webkit [269503] by Said Abou-Hallawa
  • 29 edits in trunk/Source

[GPU Process] Use the Ref counting of ImageBuffer to control its life cycle in Web Process and GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218529

Reviewed by Simon Fraser.

Source/WebCore:

Every ImageBuffer will have a valid RenderingResourceIdentifer. It can be
either generated when the ImageBuffer is created. Or it can be set by the
caller. Setting it by the caller will happen only in the GPUP where we
need it match what was generated in the WebP.

When recording a DrawImageBuffer item, a Ref<ImageBuffer> of the source
ImageBuffer will be added to a HashSet in DisplayList. The goal is keep
this ImageBuffer alive till the DisplayList is cleared. The HashSet will
be cleared in DisplayList::clear() which will happen when either the
DisplayList is replayed back or sent to the GPUP.

This HashSet can be used to resolve the RenderingResourceIdentifer to an
ImageBuffer when replaying back the DisplayList either in WebP or in GPUP.

  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::ConcreteImageBuffer):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImageBuffer):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::clear):

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::imageBuffers const):
(WebCore::DisplayList::DisplayList::cacheImageBuffer):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawImageBuffer::DrawImageBuffer):
(WebCore::DisplayList::DrawImageBuffer::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::~Delegate):
(WebCore::DisplayList::Recorder::Delegate::lockRemoteImageBuffer): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::Replayer::replay):

  • platform/graphics/displaylists/DisplayListReplayer.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawImageBuffer):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:

Source/WebKit:

When a DrawImageBuffer item is appended to DisplayList, a Ref<ImageBuffer>
will be cached till the DisplayList items list is cleared. So no need to
lock the remote resource in RemoteResourceCacheProxy.

All we need to is to pass the ImageBufferHashMap which is maintained by
the DisplayList or by RemoteResourceCache to the DisplayList::Replayer.
It is going to be used to resolve the RenderingResourceIdentifer to an
ImageBuffer so the DrawImageBuffer can be applied.

No need to special-case DrawImageBuffer::apply() in the RemoteImageBuffer.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::applyResourceItem): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::remoteResourceCache):

  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheImageBuffer):

  • GPUProcess/graphics/RemoteResourceCache.h:

(WebKit::RemoteResourceCache::imageBuffers const):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::releaseImageBuffer):
(WebKit::RemoteResourceCacheProxy::RemoteResourceCacheProxy): Deleted.
(WebKit::RemoteResourceCacheProxy::lockRemoteImageBufferForRemoteClient): Deleted.
(WebKit::RemoteResourceCacheProxy::lockRemoteResourceForRemoteClient): Deleted.
(WebKit::RemoteResourceCacheProxy::releaseRemoteResource): Deleted.
(WebKit::RemoteResourceCacheProxy::unlockRemoteResourcesForRemoteClient): Deleted.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
8:18 PM Changeset in webkit [269502] by ysuzuki@apple.com
  • 2 edits
    1 add in trunk/JSTests

toLocaleDateString() resolves incorrect date for some old dates
https://bugs.webkit.org/show_bug.cgi?id=161623

Reviewed by Ryosuke Niwa.

The issue is that timezone offset in old Warsaw date was broken because localtime_r's tzdata is broken.
The issue itself was fixed in r218348. This patch adds another test case to ensure this is fixed.

  • complex.yaml:
  • complex/timezone-offset-and-dst-in-warsaw.js: Added.

(shouldBe):

7:07 PM Changeset in webkit [269501] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Remove mdnsresponder access from WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=218633
<rdar://problem/69133548>

Unreviewed follow-up: Make the sandbox rule conditional on recent macOS to
avoid breaking STP use on older macOS releases.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
7:06 PM WebKitGTK/2.30.x edited by clopez@igalia.com
(diff)
7:04 PM WebKitGTK/2.30.x edited by clopez@igalia.com
(diff)
6:05 PM Changeset in webkit [269500] by Chris Dumez
  • 9 edits in trunk

window.event should not be affected by nodes moving post-dispatch
https://bugs.webkit.org/show_bug.cgi?id=218635

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline test now that it is fully passing.

  • web-platform-tests/dom/events/event-global-extra.window-expected.txt:

Source/WebCore:

window.event should not be affected by nodes moving post-dispatch:

In particular, window.event should not get set when the event target was inside
a shadow tree initially when dispatchEvent() got called, even if the event target
gets moved out of the shadow tree during the execution of the event listeners.

Previously, our code was checking if the node was in a shadow tree at the point
of calling each event listener, instead of doing that check very initially when
dispatchEvent() is called.

No new tests, rebaselined existing test.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • dom/Event.cpp:

(WebCore::Event::setCurrentTarget):
(WebCore::Event::resetAfterDispatch):

  • dom/Event.h:

(WebCore::Event::currentTargetIsInShadowTree const):

  • dom/EventContext.cpp:

(WebCore::EventContext::handleLocalEvents const):

  • dom/EventContext.h:

(WebCore::EventContext::isCurrentTargetInShadowTree const):

  • dom/EventPath.cpp:

(WebCore::WindowEventContext::handleLocalEvents const):

6:02 PM Changeset in webkit [269499] by commit-queue@webkit.org
  • 11 edits
    1 move
    12 adds
    3 deletes in trunk

Align GBK and gb18030 encoder and decoder with specification and other browsers
https://bugs.webkit.org/show_bug.cgi?id=218380

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-05
Reviewed by David Kilzer.

LayoutTests/imported/w3c:

  • web-platform-tests/encoding/gb18030-encoder-expected.txt: Removed.
  • web-platform-tests/encoding/gb18030-encoder.html: Removed.
  • web-platform-tests/encoding/legacy-mb-schinese/gb18030/gb18030-decoder-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-schinese/gb18030/gb18030-decoder.html: Added.
  • web-platform-tests/encoding/legacy-mb-schinese/gb18030/gb18030-encoder-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-schinese/gb18030/gb18030-encoder.html: Added.
  • web-platform-tests/encoding/legacy-mb-schinese/gb18030/resources/ranges.js: Added.
  • web-platform-tests/encoding/legacy-mb-schinese/gbk/gbk-encoder-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/gbk-encoder-expected.txt.
  • web-platform-tests/encoding/legacy-mb-schinese/gbk/gbk-encoder.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/gbk-encoder.html.
  • web-platform-tests/encoding/legacy-mb-schinese/gbk/gbk-decoder-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-schinese/gbk/gbk-decoder.html: Added.

Source/WebCore:

We had been limping along using ICU with some post-processing to encode and decode legacy-encoded Simplified Chinese text,
but I implemented the standard with tests and compared behavior with other browsers. A few characters and several of the ranges
from https://encoding.spec.whatwg.org/index-gb18030-ranges.txt were missing from our copy of ICU's encoding tables.

I derive the encoding table from ICU's with one correction, then assert that it is equal to a reference copy of the table.
This keeps a release build of WebKit small.

Firefox's GBK decoder accepts anything that a gb18030 encoder would generate, which makes it more permissive than Chrome's,
but the spec says to be this permissive so we will, and we will have sites that currently work only in Firefox also work in WebKit.
See https://encoding.spec.whatwg.org/#gbk-decoder

Also, Chrome and WebKit before this change do not implement https://encoding.spec.whatwg.org/#gb18030-decoder step 7, which decodes 0x80
into U+20AC, the Euro sign.

No comprehensive tests had been written, so I wrote such tests to cover each failure mode and each range. Existing tests covered the differences
between GBK and gb18030 encoding and some of the code points from https://encoding.spec.whatwg.org/index-gb18030.txt . Comparison with ICU revealed
exactly one difference between ICU's decoder and Firefox's implementation, which was that a pointer of 6555 should map to a code point of U+e5e5,
so I added that code point to the unit tests. Because that was the only difference between ICU and the whatwg standard, I felt it would have been
overkill to test each of the 23940 code points, but I did move the Simplified Chinese legacy encoding tests to their own directory like Traditional
Chinese, Korean, and Japanese.

Tests: imported/w3c/web-platform-tests/encoding/legacy-mb-schinese/gb18030/gb18030-decoder.html

imported/w3c/web-platform-tests/encoding/legacy-mb-schinese/gb18030/gb18030-encoder.html
imported/w3c/web-platform-tests/encoding/legacy-mb-schinese/gbk/gbk-encoder.html

  • platform/text/EncodingTables.cpp:

(WebCore::gb18030):

  • platform/text/EncodingTables.h:

(WebCore::CompareSecond::operator()):
(WebCore::makeSecondAdapter):

  • platform/text/TextCodecCJK.cpp:

(WebCore::TextCodecCJK::registerEncodingNames):
(WebCore::TextCodecCJK::registerCodecs):
(WebCore::eucJPEncode):
(WebCore::iso2022JPEncode):
(WebCore::shiftJISEncode):
(WebCore::eucKREncode):
(WebCore::big5Encode):
(WebCore::gb18030Ranges):
(WebCore::gb18030RangesCodePoint):
(WebCore::gb18030RangesPointer):
(WebCore::gb18030EncodeIndex):
(WebCore::TextCodecCJK::gb18030Decode):
(WebCore::gbEncodeShared):
(WebCore::gb18030Encode):
(WebCore::TextCodecCJK::gbkDecode):
(WebCore::gbkEncode):
(WebCore::TextCodecCJK::decode):
(WebCore::TextCodecCJK::encode const):

  • platform/text/TextCodecCJK.h:
  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::createICUConverter const):
(WebCore::TextCodecICU::decode):
(WebCore::TextCodecICU::encode const):
(WebCore::fallbackForGBK): Deleted.
(WebCore::gbkCallbackEscape): Deleted.
(WebCore::gbkUrlEscapedEntityCallack): Deleted.
(WebCore::gbkCallbackSubstitute): Deleted.

  • platform/text/TextCodecICU.h:

LayoutTests:

  • fast/encoding/char-encoding-expected.txt:
  • fast/encoding/char-encoding.html:
6:01 PM Changeset in webkit [269498] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Add null checks effectively in UserInputBridge
https://bugs.webkit.org/show_bug.cgi?id=218622
<rdar://problem/70724960>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-05
Reviewed by Wenson Hsieh.

Source/WebCore:

  • replay/UserInputBridge.cpp:

(WebCore::UserInputBridge::reloadFrame):
(WebCore::UserInputBridge::stopLoadingFrame):

  • replay/UserInputBridge.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::stopLoadingFrame):
(WebKit::WebPage::stopLoading):
(WebKit::WebPage::reload):

5:45 PM Changeset in webkit [269497] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

[Cocoa] REGRESSION(r269211): Text with emoji can trigger drawing corruption
https://bugs.webkit.org/show_bug.cgi?id=218636
<rdar://problem/71066011>

Reviewed by Simon Fraser.

Source/WebCore:

We have an optimization for frequently-painting layers that we will turn text drawing
commands into display lists. r269211 added a bunch of context state introspection and
recreation code to make sure that the state being recorded matches the state during
playback. However, that code is incompatible with this cache idea, where the same DL
might be played back into multiple places.

The solution is to have two kinds of text display list drawing:

  1. Deconstruct drawing commands into a series of commands. E.g. emoji will get

deconstructed into DrawImage commands. This kind of drawing must do state introspection
to make sure the emoji is drawn in the right place

  1. Don't deconstruct the drawing commands; simply gather up the DrawGlyphs commands

and record them directly. This doesn't do state introspection.

GPU Process display lists use the first kind, while this text cache optimization uses
the second kind.

Test: fast/text/frequent-text.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::DrawGlyphsRecorder):
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::DrawGlyphsRecorder):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):

  • platform/graphics/displaylists/DisplayListRecorder.h:

LayoutTests:

  • fast/text/frequent-text-expected.html: Added.
  • fast/text/frequent-text.html: Added.
5:27 PM Changeset in webkit [269496] by Alan Coon
  • 1 copy in tags/Safari-610.3.6.2

Tag Safari-610.3.6.2.

5:13 PM Changeset in webkit [269495] by Alan Coon
  • 8 edits in branches/safari-610.3.6-branch/Source

Versioning.

WebKit-7610.3.6.2

5:01 PM Changeset in webkit [269494] by Chris Dumez
  • 3 edits in trunk/LayoutTests

unreviewed, rebaseline a couple tests on iOS after r269477.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
4:51 PM Changeset in webkit [269493] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.1.1

Tag Safari-610.3.7.1.1.

4:49 PM Changeset in webkit [269492] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.0.1

Tag Safari-610.3.7.0.1.

4:32 PM Changeset in webkit [269491] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[macOS] Remove mdnsresponder access from WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=218633
<rdar://problem/69133548>

Reviewed by Per Arne Vollan.

Now that all network loading (including media) happens in the Network process,
we can remove an old permission to open outbound connections to mdnsresponder.
This is also unneeded in the GPU process, for the same reason.

I noticed that the new WebAuthn process sandbox mistakenly included this,
and removed it there, too.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
4:17 PM Changeset in webkit [269490] by Alan Coon
  • 1 copy in tags/Safari-610.3.6.1

Tag Safari-610.3.6.1.

4:16 PM Changeset in webkit [269489] by wilander@apple.com
  • 16 edits in trunk

PCM: Switch to JSON report format
https://bugs.webkit.org/show_bug.cgi?id=218634
<rdar://problem/70469923>

Reviewed by Brent Fulgham.

The standards conversation has landed in attribution reports in a JSON
format as opposed to the currently implemented URL format. Discussion
here: https://github.com/privacycg/private-click-measurement/issues/30

Source/WebCore:

No new tests. Existing layout and API tests were updated.

  • Headers.cmake:

Added platform/network/HTTPHeaderValues.h to be able to expose it
to WebKit.

  • WebCore.xcodeproj/project.pbxproj:

Now exporting platform/network/HTTPHeaderValues.h.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

Changed a function call from AdClickAttribution::url() to
AdClickAttribution::reportURL().

  • loader/AdClickAttribution.cpp:

(WebCore::AdClickAttribution::reportURL const):

The URL no longer carries the report values.
Renamed from AdClickAttribution::url().

(WebCore::AdClickAttribution::json const):

New function to generate and return the report JSON.

(WebCore::AdClickAttribution::url const): Deleted.

Renamed to AdClickAttribution::reportURL().

(WebCore::AdClickAttribution::referrer const): Deleted.

The referrer is now part of the report JSON.

(WebCore::AdClickAttribution::urlForTesting const): Deleted.

This class no longer needs to help generate test URLs
since report values are now in JSON.

  • loader/AdClickAttribution.h:
  • platform/network/FormData.h:

Added export of create(const CString&).

  • platform/network/HTTPHeaderValues.cpp:

(WebCore::HTTPHeaderValues::applicationJSONContentType):

Used create the new JSON report request.

  • platform/network/HTTPHeaderValues.h:

Added export of maxAge0().

Source/WebKit:

  • NetworkProcess/AdClickAttributionManager.cpp:

(WebKit::AdClickAttributionManager::fireConversionRequest):

Tools:

  • TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp:

(TestWebKitAPI::TEST):

LayoutTests:

  • http/tests/adClickAttribution/resources/conversionReport.php:
  • http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:
4:16 PM Changeset in webkit [269488] by Alan Coon
  • 3 edits in branches/safari-610.3.6-branch/Source/WebCore

Cherry-pick r269321. rdar://problem/71083865

Integrator's note: added a custom null check in HTMLMediaElement.cpp.

Protect against HTMLMediaElement being destroyed during disptachEvent().
https://bugs.webkit.org/show_bug.cgi?id=218398
<rdar://problem/67613836>

Reviewed by Chris Dumez.

Make the MainThreadGenericEventQueue protect the target as well as the owner of the queue.

Drive-by fix: Create the scoped eventFiringScope object after the protect object, to ensure
that the member variable set by the first scope will safely occur.

Drive-by fix #2: Also null-check the result of document().page() within HTMLMediaElement::dispatchEvent().

  • dom/GenericEventQueue.cpp: (WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEvent):

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

4:11 PM Changeset in webkit [269487] by Alan Coon
  • 8 edits in branches/safari-610.3.6-branch/Source

Versioning.

WebKit-7610.3.6.1

4:03 PM Changeset in webkit [269486] by BJ Burg
  • 34 edits
    10 copies
    5 adds in trunk

[Cocoa] Inspector Extensions: Add _WKInspectorExtension and related plumbing
https://bugs.webkit.org/show_bug.cgi?id=217783
<rdar://problem/69968787>

Reviewed by Devin Rousso.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

In order for WebInspectorUIExtensionController to work with remote and local
inspectors, it stores a weak pointer the inspector's InspectorFrontendClient.
Expose the frontend's page so that the frontend API dispatcher can dispatch to it.

Source/WebInspectorUI:

  • UserInterface/Main.html: Add new files.
  • UserInterface/Controllers/AppControllerBase.js:

(WI.AppControllerBase):
(WI.AppControllerBase.prototype.get extensionController):
Hang the extension controller off of the global singleton, as there can only be one.

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController):
(WI.WebInspectorExtensionController.prototype.registerExtension):
(WI.WebInspectorExtensionController.prototype.unregisterExtension):
Added. For now, just keep the UUIDs in a map and log the result.

  • UserInterface/Models/WebInspectorExtension.js:

(WI.WebInspectorExtension):
(WI.WebInspectorExtension.prototype.get extensionID):
(WI.WebInspectorExtension.prototype.get displayName):
Added. This is a data object for now.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.loadCompleted):
(InspectorFrontendAPI.registerExtension):
(InspectorFrontendAPI.unregisterExtension):
Added. Forward invocations to the extension controller.

Source/WebKit:

_WKInspectorExtension is new SPI that represents a Web Extension that uses the 'devtools'
API to interact with Web Inspector. An extension is associated with its _WKInspectorExtensionHost.
A WebKit client that supports Web Extensions can use this class to implement 'devtools' extension APIs.

Add _WKInspectorExtensionHost methods to register and unregister an extension.
Add plumbing so that the extension in registered in the frontend with WI.InspectorExtensionController.

Later patches will flesh out the needed functionality to implement rest of the 'devtools' API.

  • Sources.txt:
  • SourcesCocoa.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebKit.xcodeproj/project.pbxproj:

Add new files.

  • Scripts/webkit/messages.py: If a message includes InspectorExtensionError,

then generate an include for InspectorExtensionTypes.h where it is declared.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):
New API object type.

  • Shared/InspectorExtensionTypes.h: Added error code enum and useful type aliases.
  • Shared/InspectorExtensionTypes.cpp:

(WebKit::inspectorExtensionErrorToString):

  • UIProcess/API/APIInspectorExtension.h:
  • UIProcess/API/APIInspectorExtension.cpp:

(API::InspectorExtension::create):
(API::InspectorExtension::InspectorExtension):
(API::InspectorExtension::~InspectorExtension):
Added. This is a placeholder object that's used for the wrapper system,
since we don't have single C++ objects for each extension to back the API object.

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

(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]):
(-[_WKInspector unregisterExtension:completionHandler:]):
Implement new _WKInspectorExtensionHost methods. Send IPC to the Inspector web process.

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

(-[_WKInspectorExtension initWithIdentifier:]):
(-[_WKInspectorExtension dealloc]):
(-[_WKInspectorExtension _apiObject]):
(-[_WKInspectorExtension extensionID]):
Added. This is a data object that's also used as a token to unregister the extension.

  • UIProcess/API/Cocoa/_WKInspectorExtensionHost.h: Add new SPI.
  • UIProcess/API/Cocoa/_WKInspectorExtensionInternal.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]):
(-[_WKRemoteWebInspectorViewController unregisterExtension:completionHandler:]):
Implement new _WKInspectorExtensionHost methods. Send IPC to the Inspector web process.

  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorProxy.messages.in: Add FrontendLoaded.

(WebKit::RemoteWebInspectorProxy::extensionController const): Added.

  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::frontendLoaded):
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
Set up the extension controller object after the frontend has been created.
Hook up the FrontendLoaded event sent from Inspector web process so that the
extension controller can be notified of when it's safe to message the frontend.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorProxy::frontendLoaded):
Set up the extension controller object after the frontend has been created.

  • UIProcess/Inspector/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::extensionController const): Added.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp: Added.

(WebKit::WebInspectorUIExtensionControllerProxy::WebInspectorUIExtensionControllerProxy):
(WebKit::WebInspectorUIExtensionControllerProxy::~WebInspectorUIExtensionControllerProxy):
(WebKit::WebInspectorUIExtensionControllerProxy::whenFrontendHasLoaded):
(WebKit::WebInspectorUIExtensionControllerProxy::inspectorFrontendLoaded):
(WebKit::WebInspectorUIExtensionControllerProxy::registerExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):
Added. Forward API requests to the Web Inspector's web process to be evaluated in the frontend.

  • WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.h:
  • WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.cpp:

(WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand):
Add a more generic way to encode values to be passed as arguments to InspectorFrontendAPI.dispatch.

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::establishConnection):
(WebKit::WebInspectorUI::closeWindow):

  • WebProcess/Inspector/WebInspectorUI.h:

(WebKit::WebInspectorUI::frontendPage const): Added.
(WebKit::WebInspectorUI::frontendAPIDispatcher): Added.

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.messages.in: Added.
  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp: Added.

(WebKit::WebInspectorUIExtensionController::WebInspectorUIExtensionController):
(WebKit::WebInspectorUIExtensionController::~WebInspectorUIExtensionController):
(WebKit::WebInspectorUIExtensionController::registerExtension):
(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromResult):
Handle incoming messages by forwarding the associated command to WI.WebExtensionController
via InspectorFrontendAPI evaluations.

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

Fallout from unified build chunking shifts.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
Fallout from unified build chunking shifts, but more.

Tools:

Add API tests to exercise new methods of the _WKInspectorExtensionHost protocol.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: New test file.
  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionHost.mm: Added.

(resetGlobalState):
(-[UIDelegateForTestingInspectorExtensionHost _webView:didAttachLocalInspector:]):
(TEST):

3:58 PM Changeset in webkit [269485] by Alan Coon
  • 1 copy in branches/safari-610.3.6-branch

New branch.

3:47 PM Changeset in webkit [269484] by Alan Coon
  • 3 edits in branches/safari-610.3.7.100-branch/Source/WebCore

Cherry-pick r269321. rdar://problem/71083865

Integrator's note: added a custom null check in HTMLMediaElement.cpp.

Protect against HTMLMediaElement being destroyed during disptachEvent().
https://bugs.webkit.org/show_bug.cgi?id=218398
<rdar://problem/67613836>

Reviewed by Chris Dumez.

Make the MainThreadGenericEventQueue protect the target as well as the owner of the queue.

Drive-by fix: Create the scoped eventFiringScope object after the protect object, to ensure
that the member variable set by the first scope will safely occur.

Drive-by fix #2: Also null-check the result of document().page() within HTMLMediaElement::dispatchEvent().

  • dom/GenericEventQueue.cpp: (WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEvent):

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

3:42 PM Changeset in webkit [269483] by Alan Coon
  • 8 edits in branches/safari-610.3.7.100-branch/Source

Versioning.

WebKit-7610.3.7.100.1

3:29 PM Changeset in webkit [269482] by Alan Coon
  • 1 copy in branches/safari-610.3.7.100-branch

New branch.

3:27 PM Changeset in webkit [269481] by Chris Dumez
  • 6 edits in trunk

Add implementation for Object.getOwnPropertyNames() on HTMLDocument
https://bugs.webkit.org/show_bug.cgi?id=218625

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing. The checks we are failing are failing
in Blink & Gecko also. The checks are are now passing are also passing in Blink & Gecko.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-names-expected.txt:

Source/WebCore:

Add implementation for Object.getOwnPropertyNames() on HTMLDocument so that it properly
returns names of the properties that would be returned by the named property getter.
This aligns our behavior with Blink and Gecko.

No new tests, rebaselined existing test.

  • dom/TreeScopeOrderedMap.cpp:

(WebCore::TreeScopeOrderedMap::keys const):

  • dom/TreeScopeOrderedMap.h:
  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::supportedPropertyNames const):

3:25 PM Changeset in webkit [269480] by Alan Coon
  • 7 edits
    1 delete in branches/safari-610.3.7.0-branch/Source

Revert r269208. rdar://problem/71044969

3:03 PM Changeset in webkit [269479] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

Add back swap() free function for RefPtr
https://bugs.webkit.org/show_bug.cgi?id=218454

Reviewed by Darin Adler.

Add back the swap() free function I removed in r269115. Darin's suggestion
of specializing only a single type of RefPtr instead of two, solved the
issue. I also removed some previous hack where we didn't enable this for
RawPtrTraits. It's now enabled for all PtrTraits.

  • wtf/RefPtr.h:

(WTF::swap):

3:02 PM Changeset in webkit [269478] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

Change RELEASE_ASSERT to use branch+crash inside HashTable.h
https://bugs.webkit.org/show_bug.cgi?id=218624
<rdar://problem/70901101>

Reviewed by Mark Lam.

The assertions added in r269017 used RELEASE_ASSERT. RELEASE_ASSERT
is implemented as invoking WTFCrashWithInfo, which does a bunch of register
argument/moves. Doing this in inlined hash table code bloats WK binaries
by a lot. This patch changes it so we just branch+crash on the same condition.

  • wtf/HashTable.h:

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

2:40 PM Changeset in webkit [269477] by Chris Dumez
  • 10 edits in trunk

Expose referrerPolicy attribute on HTMLLinkElement and HTMLAreaElement
https://bugs.webkit.org/show_bug.cgi?id=218632

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline existing web-platform tests now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:

Source/WebCore:

Expose referrerPolicy attribute on HTMLLinkElement and HTMLAreaElement:

No new tests, rebaselined existing tests.

  • html/HTMLAreaElement.idl:
  • html/HTMLLinkElement.idl:

LayoutTests:

Rebaselined existing WPT tests now that more checks are passing.

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
2:39 PM Changeset in webkit [269476] by Chris Dumez
  • 7 edits in trunk

DOMStringList, TextMetrics & ImageBitmapRenderingContext should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=218631

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/dom/idlharness.worker-expected.txt:

Source/WebCore:

DOMStringList, TextMetrics & ImageBitmapRenderingContext should be exposed to workers:

No new tests, rebaselined existing test.

  • dom/DOMStringList.idl:
  • html/TextMetrics.idl:
  • html/canvas/ImageBitmapRenderingContext.idl:
2:22 PM Changeset in webkit [269475] by Chris Dumez
  • 18 edits
    2 adds in trunk

Crash in AudioBuffer::sampleRate()
https://bugs.webkit.org/show_bug.cgi?id=218603

Reviewed by Geoffrey Garen.

Source/WebCore:

Have OfflineAudioDestinationNode store the sample rate instead of getting
it from the render buffer. It is possible for an OfflineAudioContext to
have no rendering buffer when constructing this rendering buffer fails
(e.g. because the length is too large).

Test: webaudio/OfflineAudioContext-bad-buffer-crash.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::BaseAudioContext):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::WebKitAudioContext):

  • Modules/webaudio/WebKitAudioContext.h:
  • Modules/webaudio/WebKitOfflineAudioContext.cpp:

(WebCore::WebKitOfflineAudioContext::WebKitOfflineAudioContext):
(WebCore::WebKitOfflineAudioContext::create):

  • Modules/webaudio/WebKitOfflineAudioContext.h:

LayoutTests:

Add layout test coverage.

  • webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt: Added.
  • webaudio/OfflineAudioContext-bad-buffer-crash.html: Added.
1:41 PM Changeset in webkit [269474] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Update message filters in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=218520

Reviewed by Brent Fulgham.

Based on telemetry, update the message filters with allowed messages in the WebContent sandbox.

No new tests, covered by existing tests.

  • WebProcess/com.apple.WebProcess.sb.in:
1:35 PM Changeset in webkit [269473] by Ryan Haddad
  • 1 edit
    1 move
    1 add in trunk/LayoutTests

fast/forms/search/search-size-with-decorations.html is failing on Catalina.

Unreviewed test gardening.

  • platform/mac-catalina/fast/forms/search/search-size-with-decorations-expected.txt: Renamed from LayoutTests/platform/mac-catalina/fast/forms/search-size-with-decorations-expected.txt.
1:35 PM Changeset in webkit [269472] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the build with recent SDKs.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::platformInvalidate):

1:35 PM Changeset in webkit [269471] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[GPU Process] Add tests for sbix and COLR fonts in canvas
https://bugs.webkit.org/show_bug.cgi?id=218346

Unreviewed test gardening.

  • platform/mac/TestExpectations: Skip the tests for Mojave.
1:32 PM Changeset in webkit [269470] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GTK] Add missing const_cast in gdk_event_get_source_device()

Unreviewed build fix.

  • platform/gtk/GtkVersioning.h:

(gdk_event_get_source_device):

12:58 PM Changeset in webkit [269469] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Rename BUILD_WEBKIT_URL to CURRENT_HOSTNAME
https://bugs.webkit.org/show_bug.cgi?id=218629

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:
12:52 PM Changeset in webkit [269468] by don.olmstead@sony.com
  • 14 edits in trunk/Source

Non-unified build fixes, early November 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=218628

Unreviewed non-unified build fix.

Source/JavaScriptCore:

  • llint/LLIntSlowPaths.cpp:

Source/WebCore:

  • display/css/DisplayBox.cpp:
  • display/css/DisplayBoxFactory.cpp:
  • display/css/DisplayBoxFactory.h:
  • page/PageConfiguration.cpp:
  • rendering/style/StyleContentAlignmentData.cpp:
  • rendering/style/StyleContentAlignmentData.h:
  • rendering/style/StyleSelfAlignmentData.cpp:
  • rendering/style/StyleSelfAlignmentData.h:

Source/WebKit:

  • UIProcess/SpeechRecognitionServer.cpp:

(WebKit::SpeechRecognitionServer::start):
(WebKit::SpeechRecognitionServer::removePendingRequest):

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:
12:40 PM Changeset in webkit [269467] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Patch which break layout-test shouldn't cause infinite RETRY loop
https://bugs.webkit.org/show_bug.cgi?id=218618

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunWebKitTests.evaluateResult): Do not retry when layout-tests fail with exit code 254. Instead fail the build-step, which
will trigger re-run and run-layout-tests-without-patch steps.
(RunWebKitTestsWithoutPatch.evaluateCommand): Set clean_tree_run_status build property.
(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.start): If clean tree run passes, mark the build as failure.

  • CISupport/ews-build/steps_unittest.py: Added/updated unit-tests.
12:29 PM Changeset in webkit [269466] by Alan Coon
  • 3 edits
    2 adds in branches/safari-610.3.7.1-branch

Cherry-pick r269384. rdar://problem/71084559

REGRESSION (r257839): Miscomputed style due to computed 'rem' value in matched declaration cache
https://bugs.webkit.org/show_bug.cgi?id=218561
<rdar://problem/70074191>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/dom/focus-rem-style-update.html

Call to focus() causes computed style update for the element’s ancestor chain before the the document
has otherwise been styled (using the shortcut mechanism introduced in r257839). This style, which uses ‘rem’
unit and so depends on root element font size, gets cached in MatchedDeclarationsCache. The root font size
then changes but during the resulting style update we use this cached value, failing to re-resolve ‘rem’.

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

Invalidate matched declarations cache also when there is no existing document element style.

LayoutTests:

  • fast/dom/focus-rem-style-update-expected.html: Added.
  • fast/dom/focus-rem-style-update.html: Added.

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

12:29 PM Changeset in webkit [269465] by Alan Coon
  • 2 edits in branches/safari-610.3.7.1-branch/Source/JavaScriptCore

Cherry-pick r269338. rdar://problem/71021911

Don't assert there is no checkpoint side state when dropping the JSLock
https://bugs.webkit.org/show_bug.cgi?id=218537

Reviewed by Filip Pizlo.

You may have multiple OSR exit sidestate data on the stack, and then call into
API code, which might DropAllLocks. Hence, this assert is wrong.

Working on a test. Will land in a followup.

  • runtime/JSLock.cpp: (JSC::JSLock::willReleaseLock):

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

12:29 PM Changeset in webkit [269464] by Alan Coon
  • 3 edits in branches/safari-610.3.7.1-branch/Source/WebCore

Cherry-pick r269321. rdar://problem/71083871

Protect against HTMLMediaElement being destroyed during disptachEvent().
https://bugs.webkit.org/show_bug.cgi?id=218398
<rdar://problem/67613836>

Reviewed by Chris Dumez.

Make the MainThreadGenericEventQueue protect the target as well as the owner of the queue.

Drive-by fix: Create the scoped eventFiringScope object after the protect object, to ensure
that the member variable set by the first scope will safely occur.

Drive-by fix #2: Also null-check the result of document().page() within HTMLMediaElement::dispatchEvent().

  • dom/GenericEventQueue.cpp: (WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEvent):

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

12:29 PM Changeset in webkit [269463] by Alan Coon
  • 2 edits in branches/safari-610.3.7.1-branch/Source/WebCore

Cherry-pick r269190. rdar://problem/71080386

Increase camera failing timer to 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=218389

Reviewed by Eric Carlson.

From testing, 3 seconds is not always enough if getUserMedia is quickly called multiple times.
Let's increase to 30 seconds to give room for slow systems while still being able to identify failures.

  • platform/mediastream/mac/AVVideoCaptureSource.h:

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

12:29 PM Changeset in webkit [269462] by Alan Coon
  • 1 edit in branches/safari-610.3.7.1-branch/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c

Apply patch. rdar://problem/71083441

12:11 PM Changeset in webkit [269461] by Alan Coon
  • 8 edits in branches/safari-610.3.7.1-branch/Source

Versioning.

WebKit-7610.3.7.1.1

12:07 PM Changeset in webkit [269460] by Alan Coon
  • 1 edit in branches/safari-610.3.7.0-branch/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c

Apply patch. rdar://problem/71083435

12:05 PM Changeset in webkit [269459] by youenn@apple.com
  • 8 edits in trunk

WebSocket constructor should not throw in case port is blocked
https://bugs.webkit.org/show_bug.cgi?id=218617
LayoutTests/imported/w3c:

Reviewed by Alex Christensen.

  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WebCore:

Reviewed by Alex Christensen.

Update as per spec, see https://github.com/web-platform-tests/wpt/pull/5212.
Covered by existing tests.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

LayoutTests:

<rdar://problem/71080398>

Reviewed by Alex Christensen.

Removing no longer valid test, correct version covered by WPT test.

  • http/tests/websocket/tests/hybi/url-parsing-expected.txt:
  • http/tests/websocket/tests/hybi/url-parsing.html:
11:52 AM Changeset in webkit [269458] by Simon Fraser
  • 15 edits in trunk/Source/WebCore

Clean up ScrollingStateTree setPropertyChangesAfterReattach() code
https://bugs.webkit.org/show_bug.cgi?id=218621

Reviewed by Antti Koivisto.

Replace lots of individual setPropertyChangedInternal() calls with a single call
with an OptionSet<> argument.

The virtual applicableProperties() calls base classes to generate an OptionSet<>
of all the properties for a node type.

  • page/scrolling/ScrollingStateFixedNode.cpp:

(WebCore::ScrollingStateFixedNode::applicableProperties const):
(WebCore::ScrollingStateFixedNode::setPropertyChangesAfterReattach): Deleted.

  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::applicableProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangesAfterReattach): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::applicableProperties const):
(WebCore::ScrollingStateNode::setPropertyChangesAfterReattach):

  • page/scrolling/ScrollingStateNode.h:

(WebCore::ScrollingStateNode::setPropertiesChangedInternal):

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.cpp:

(WebCore::ScrollingStateOverflowScrollProxyNode::applicableProperties const):
(WebCore::ScrollingStateOverflowScrollProxyNode::setPropertyChangesAfterReattach): Deleted.

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.h:
  • page/scrolling/ScrollingStatePositionedNode.cpp:

(WebCore::ScrollingStatePositionedNode::applicableProperties const):
(WebCore::ScrollingStatePositionedNode::setPropertyChangesAfterReattach): Deleted.

  • page/scrolling/ScrollingStatePositionedNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::applicableProperties const):
(WebCore::ScrollingStateScrollingNode::setPropertyChangesAfterReattach): Deleted.

  • page/scrolling/ScrollingStateScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.cpp:

(WebCore::ScrollingStateStickyNode::applicableProperties const):
(WebCore::ScrollingStateStickyNode::setPropertyChangesAfterReattach): Deleted.

  • page/scrolling/ScrollingStateStickyNode.h:
11:51 AM Changeset in webkit [269457] by Alan Coon
  • 2 edits in branches/safari-610.3.7.0-branch/Source/WebCore

Cherry-pick r269190. rdar://problem/70970247

Increase camera failing timer to 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=218389

Reviewed by Eric Carlson.

From testing, 3 seconds is not always enough if getUserMedia is quickly called multiple times.
Let's increase to 30 seconds to give room for slow systems while still being able to identify failures.

  • platform/mediastream/mac/AVVideoCaptureSource.h:

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

11:49 AM Changeset in webkit [269456] by Alan Coon
  • 3 edits
    2 adds in branches/safari-610.3.7.0-branch

Cherry-pick r269384. rdar://problem/71043200

REGRESSION (r257839): Miscomputed style due to computed 'rem' value in matched declaration cache
https://bugs.webkit.org/show_bug.cgi?id=218561
<rdar://problem/70074191>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/dom/focus-rem-style-update.html

Call to focus() causes computed style update for the element’s ancestor chain before the the document
has otherwise been styled (using the shortcut mechanism introduced in r257839). This style, which uses ‘rem’
unit and so depends on root element font size, gets cached in MatchedDeclarationsCache. The root font size
then changes but during the resulting style update we use this cached value, failing to re-resolve ‘rem’.

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

Invalidate matched declarations cache also when there is no existing document element style.

LayoutTests:

  • fast/dom/focus-rem-style-update-expected.html: Added.
  • fast/dom/focus-rem-style-update.html: Added.

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

11:49 AM Changeset in webkit [269455] by Alan Coon
  • 3 edits in branches/safari-610.3.7.0-branch/Source/WebCore

Cherry-pick r269321. rdar://problem/71083865

Integrator's note: added a custom null check in HTMLMediaElement.cpp.

Protect against HTMLMediaElement being destroyed during disptachEvent().
https://bugs.webkit.org/show_bug.cgi?id=218398
<rdar://problem/67613836>

Reviewed by Chris Dumez.

Make the MainThreadGenericEventQueue protect the target as well as the owner of the queue.

Drive-by fix: Create the scoped eventFiringScope object after the protect object, to ensure
that the member variable set by the first scope will safely occur.

Drive-by fix #2: Also null-check the result of document().page() within HTMLMediaElement::dispatchEvent().

  • dom/GenericEventQueue.cpp: (WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEvent):

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

11:49 AM Changeset in webkit [269454] by Alan Coon
  • 7 edits
    1 add in branches/safari-610.3.7.0-branch/Source

Cherry-pick r269208. rdar://problem/71044969

AX: Incorrect list of voices being displayed on iOS
https://bugs.webkit.org/show_bug.cgi?id=218293

Reviewed by Per Arne Vollan.

Source/WebCore:

Limit the voices that we display in WebSpeech to only built-in system voices. This was the intention of the "compact"
decision, but some mobile assets have compact voices, which are not available WebContent.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm: (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cocoa/AXSpeechManagerSPI.h: Added.

Source/WTF:

  • wtf/PlatformHave.h:

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

11:17 AM Changeset in webkit [269453] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Clean up Source/WebCore/platform/graphics/DashArray.h
https://bugs.webkit.org/show_bug.cgi?id=218619

Reviewed by Simon Fraser.

Attempting to #include <WebCore/DisplayList.h> in API tests currently results in a compilation error when
parsing DashArray.h, due to the CGFloat type being unknown. Fix this by including CoreGraphics.h if
USE(CG) is defined.

  • platform/graphics/DashArray.h:

Also do some more cleanup around this file:

  • Use #pragma once instead of #define-based header guards.
  • Use using instead of typedef
  • Add a missing namespace WebCore around this file
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h: Add WebCore namespaces for DashArray.
11:12 AM Changeset in webkit [269452] by Chris Dumez
  • 7 edits
    4 adds in trunk

<input disabled> does not fire click events after dispatchEvent
https://bugs.webkit.org/show_bug.cgi?id=215461
<rdar://problem/67030950>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-input-cancel-expected.txt:

Source/WebCore:

We should allow mouse events from JS to get dispatched on disabled form controls. Only mouse events from the
user and calling input.click() should not cause an event to get dispatched on disabled form controls.

Tests: fast/dom/HTMLInputElement/disabled-checkbox-click.html

fast/dom/HTMLInputElement/disabled-radio-click.html

  • dom/Node.cpp:

(WebCore::Node::handleLocalEvents):
Allow mouse events from JS to get dispatched on disabled form controls. Trusted mouse events (events from
the user-agent) are still not dispatched on disabled form controls.

  • html/RadioInputType.cpp:

(WebCore::RadioInputType::didDispatchClick):
Fix post activation behavior for radio input elements so that we set the elements' checkedness to false
if the activation was cancelled and we are not restoring the checkedness of the previously checked element
in the group.

LayoutTests:

Extend layout test coverage.

  • fast/dom/HTMLInputElement/disabled-checkbox-click-expected.txt: Added.
  • fast/dom/HTMLInputElement/disabled-checkbox-click.html: Added.
  • fast/dom/HTMLInputElement/disabled-radio-click-expected.txt: Added.
  • fast/dom/HTMLInputElement/disabled-radio-click.html: Added.
10:45 AM Changeset in webkit [269451] by Chris Dumez
  • 32 edits
    1 copy
    19 adds
    11 deletes in trunk/LayoutTests

Resync web-platform-tests/html/browsers & web-platform-tests/html/dom tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=218590

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/browsers & web-platform-tests/html/dom tests from upstream 7a287c9e26fbc12c91e.

  • web-platform-tests/html/browsers/*: Updated.
  • web-platform-tests/html/dom/*: Updated.

LayoutTests:

10:36 AM Changeset in webkit [269450] by graouts@webkit.org
  • 4 edits
    4 adds in trunk

REGRESSION (r263179): CSS checkbox no longer visible in iOS 14
https://bugs.webkit.org/show_bug.cgi?id=216690
<rdar://problem/69156576>

Reviewed by Simon Fraser.

Source/WebCore:

We revert the changes to RenderBox::addVisualEffectOverflow() introduced in
r263179 for bug 213260.

Instead of that original change, which affected painting instead of hit-testing,
we now ensure that RenderBlock::nodeAtPoint() will check the hit-test point is
within an element's clipped bounds before considering its children. Whether the
element has a self-painting layer should have no bearing here.

Tests: fast/box-shadow/box-shadow-with-zero-height.html

fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container-2.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeAtPoint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::addVisualEffectOverflow):

LayoutTests:

Add two new tests: one that identifies the particular regression introduced by r263179 where
<div style="box-shadow: 0 0 0 10px"> would render nothing at all, and another one that does
further hit-testing on clipped child of an element with height: 0 and box-shadow to set ink
overflow which was failing even after r263179.

  • fast/box-shadow/box-shadow-with-zero-height-expected.html: Added.
  • fast/box-shadow/box-shadow-with-zero-height.html: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container-2-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container-2.html: Added.
10:29 AM Changeset in webkit [269449] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the build with recent SDKs.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::kill):

10:14 AM Changeset in webkit [269448] by Alan Coon
  • 1 copy in tags/Safari-610.2.11.51.9

Tag Safari-610.2.11.51.9.

10:13 AM Changeset in webkit [269447] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.9

9:50 AM Changeset in webkit [269446] by Kocsen Chung
  • 1 copy in branches/safari-610.3.7.1-branch

New branch.

9:48 AM Changeset in webkit [269445] by Kocsen Chung
  • 8 edits in branches/safari-610.3.7.0-branch/Source

Versioning.

WebKit-7610.3.7.0.1

9:38 AM Changeset in webkit [269444] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Remove redundant rule using never-granted extension
https://bugs.webkit.org/show_bug.cgi?id=218596
<rdar://problem/66581246>

Reviewed by Per Arne Vollan.

WebKit has long had a sandbox rule granting the ability to issue iokit-open
operations if a particular security extension was granted to the process. The
WebKit processes are known to never grant this extension, so this rule is not
needed.

We should remove the rule to reduce sandbox complexity and increase the speed
of sandbox compilation.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:36 AM Changeset in webkit [269443] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Remove redundant rule for shared-preference.read-write
https://bugs.webkit.org/show_bug.cgi?id=218594
<rdar://problem/66581796>

Reviewed by Per Arne Vollan.

We have long had a rule to allow shared preferences to be read and written if a
particular sandbox extension was granted to the process. However, we do not issue
this extension to any WebKit process, so the rule is unnecessary.

We should remove it to reduce confusion, and make the sandbox smaller (and quicker
to compile).

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:36 AM Changeset in webkit [269442] by Darin Adler
  • 24 edits in trunk/Source

Remove more functions that implicitly use composed tree
https://bugs.webkit.org/show_bug.cgi?id=218544

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • dom/Node.cpp:

(WebCore::commonInclusiveAncestor): Changed this into a function template.

  • dom/Node.h: Ditto. Note this defaults to the traditional tree, and callers

have all been modified to use composed tree explicitly.

  • dom/Position.cpp:

(WebCore::commonInclusiveAncestor): Changed return type to a raw pointer.
Since I created this returning a smart pointer, Ryosuke clarified that our
approach to object lifetime does not involve returning smart pointers in
cases like this. Call commonInclusiveAncestor<ComposedTree>.
(WebCore::documentOrder): Ditto.

  • dom/Position.h: Updated return value.
  • dom/Range.cpp:

(WebCore::Range::commonAncestorContainer const): Made this non-inline.
Note that this now calls the non-composed-tree version of
commonInclusiveAncestor, which is what we want, but since live ranges
maintain the invariant that both containers are in the same tree, this is
not an observable change.

  • dom/Range.h: Made commonAncestorContainer non-inline. Not critical to

optimize out the function call.

  • dom/SimpleRange.cpp:

(WebCore::commonInclusiveAncestor): Changed this into a function template.

  • dom/SimpleRange.h: Updated for the above.
  • editing/ChangeListTypeCommand.cpp:

(WebCore::listConversionTypeForSelection): Use commonInclusiveAncestor<ComposedTree>.

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::styleAtSelectionStart): Ditto.

  • editing/Editor.cpp:

(WebCore::Editor::adjustedSelectionRange): Ditto.

  • editing/FormatBlockCommand.cpp:

(WebCore::FormatBlockCommand::elementForFormatBlockCommand): Ditto.

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::scheduleObservationUpdate): Ditto.
(WebCore::TextManipulationController::replace): Ditto.

  • editing/VisiblePosition.cpp:

(WebCore::commonInclusiveAncestor): Added.
(WebCore::intersects): Added.
(WebCore::contains): Added.
(WebCore::intersection): Added.
(WebCore::midpoint): Added.

  • editing/VisiblePosition.h: Added functions that work with VisiblePositionRange.

These are used in WebKit editing-related code for iOS, and having these higher
level operations is starting to make that code more readable. This was originally
motivated because it was a use of a function template outside WebCore and I wanted
to sidestep the need to export, which I can't figure out how to do yet. But the
refactoring ended up changing the code completely.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::cacheAncestorsOfStartToBeConverted): Updated since
commonInclusiveAncestor does not return a smart pointer any more.

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearanceInternal): Ditto.

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret): Use
commonInclusiveAncestor<ComposedTree>.

  • page/EventHandler.cpp:

(WebCore::targetNodeForClickEvent): Ditto.

  • page/TextIndicator.cpp:

(WebCore::estimatedBackgroundColorForRange): Ditto.
(WebCore::initializeIndicator): Ditto.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::collectSelectionRectsInternal): Ditto.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::constrainRangeToSelection): Factored this function out of the
requestDocumentEditingContext and also rewrote it to use higher level operations.
(WebKit::WebPage::requestDocumentEditingContext): Refactored to use the new
constrainRangeToSelection.

9:33 AM Changeset in webkit [269441] by Kocsen Chung
  • 1 copy in branches/safari-610.3.7.0-branch

New branch.

9:29 AM Changeset in webkit [269440] by Kocsen Chung
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.4.1

9:19 AM Changeset in webkit [269439] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build after r269435
https://bugs.webkit.org/show_bug.cgi?id=218599

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::opener):
(WebCore::FrameLoader::opener const):

9:01 AM Changeset in webkit [269438] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(?): Sources: override banner is squished for large images
https://bugs.webkit.org/show_bug.cgi?id=218196

Reviewed by Devin Rousso.

Progressions made in https://trac.webkit.org/changeset/266695/webkit caused the image container to occupy the
maximum amount of space possible, which caused the override banner to be squished and a scrollbar to appear.
This is resolved by making sure the minimum dimensions of the image containers are 0, so that the container can
be flex-shrinked.

  • UserInterface/Views/ImageResourceContentView.css:

(.content-view.resource.image > .img-container):

8:58 AM Changeset in webkit [269437] by Aditya Keerthi
  • 9 edits
    2 adds in trunk

[macOS] Toggling dark mode does not update the scrollbar appearance in overflow: scroll elements
https://bugs.webkit.org/show_bug.cgi?id=218538
<rdar://problem/68953006>

Reviewed by Simon Fraser.

Source/WebCore:

This functionality regressed in r260276 with the introduction of async
overflow scrolling on macOS. The appearance of the scrollbar is determined
by [WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]. Prior to
r260276, ScrollbarThemeMac::paint was responsible for painting the scrollbar,
using [NSScrollerImp drawKnob]. Calling this method results in a call to
effectiveAppearanceForScrollerImp:, ensuring the scrollbar has the correct
appearance.

However, async overflow scrolling no longer paints the scrollbar using
drawKnob, and a call to effectiveAppearanceForScrollImp: is no longer made
when switching between light/dark appearances. Since we no longer draw the
knob ourselves, and the NSScrollerImp does not belong to an NSView, the
scrollbar does not automatically get repainted on an appearance change.
To fix, we need to ensure the scrollbar is repainted by making a call to
[NSScrollerImp setNeedsDisplay:] when the page's appearance changes. This
should be done for all scrollbars to ensure their appearance is up to date.

Note that hovering over the scrollbar still results in an update to its
appearance, since AppKit always repaints the scrollbar on hover.

Test: fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode.html

  • dom/Document.cpp:

(WebCore::Document::invalidateScrollbars): Tell the FrameView to invalidate scrollbars in all its ScrollableAreas.

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

(WebCore::FrameView::invalidateScrollbarsForAllScrollableAreas):

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::appearanceDidChange): Tell each document to invalidate its scrollbars.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::setScrollbarOverlayStyle):
(WebCore::ScrollableArea::invalidateScrollbars):

Moved scrollbar invalidation out of setScrollbarOverlayStyle and into
its own method, so that it can be called for all ScrollableAreas in a
FrameView.

  • platform/ScrollableArea.h:

LayoutTests:

Added a layout test which draws a scrollbar in the dark appearance,
switches to the light appearance, and draws the scrollbar again. The
final image should have a light appearance scrollbar.

  • fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode-expected.html: Added.
  • fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode.html: Added.
8:56 AM Changeset in webkit [269436] by youenn@apple.com
  • 9 edits
    1 copy
    1 move
    3 adds
    1 delete in trunk

Consider blocking ports 5060 and 5061
https://bugs.webkit.org/show_bug.cgi?id=218557
<rdar://problem/71031479>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.any.html: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.any.js: Added.

(BLOCKED_PORTS_LIST.map):

  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker.html: Added.
  • web-platform-tests/fetch/api/request/request-bad-port.html: Removed.
  • web-platform-tests/tools/wptserve/wptserve/utils.py:

(is_bad_port):

  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

  • wtf/URL.cpp:

(WTF::portAllowed):

LayoutTests:

8:54 AM Changeset in webkit [269435] by achristensen@apple.com
  • 30 edits in trunk/Source

Store WeakPtr<Frame> instead of Frame*
https://bugs.webkit.org/show_bug.cgi?id=218599

Reviewed by Youenn Fablet.

Source/WebCore:

No change in behavior, but this probably fixes some bugs.

  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::WindowProxy):
(WebCore::WindowProxy::frame const):

  • bindings/js/WindowProxy.h:

(WebCore::WindowProxy::frame const): Deleted.

  • dom/Document.cpp:

(WebCore::Document::willBeRemovedFromFrame):
(WebCore::Document::canNavigateInternal):
(WebCore::Document::setDesignMode):
(WebCore::Document::getDesignMode const): Deleted.

  • dom/Document.h:
  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::setContentFrame):
(WebCore::HTMLFrameOwnerElement::disconnectContentFrame):

  • html/HTMLFrameOwnerElement.h:

(WebCore::HTMLFrameOwnerElement::contentFrame const):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::frameForId):
(WebCore::InspectorPageAgent::frameId):

  • inspector/agents/InspectorPageAgent.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::commitLoad):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::decoder):
(WebCore::DocumentWriter::setFrame):

  • loader/DocumentWriter.h:

(WebCore::DocumentWriter::setFrame): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::detachFromAllOpenedFrames):
(WebCore::FrameLoader::opener):
(WebCore::FrameLoader::setOpener):
(WebCore::FrameLoader::hasOpenedFrames const):
(WebCore::FrameLoader::addExtraFieldsToRequest):

  • loader/FrameLoader.h:
  • loader/FrameNetworkingContext.h:

(WebCore::FrameNetworkingContext::FrameNetworkingContext):
(WebCore::FrameNetworkingContext::frame const):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::update):
(WebCore::ApplicationCacheGroup::didFinishLoadingEntry):
(WebCore::ApplicationCacheGroup::didFailLoadingEntry):
(WebCore::ApplicationCacheGroup::didFailLoadingManifest):
(WebCore::ApplicationCacheGroup::startLoadingEntry):

  • loader/appcache/ApplicationCacheGroup.h:
  • page/AbstractFrame.h:
  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::addDestructionObserver):
(WebCore::Frame::removeDestructionObserver):

  • page/Frame.h:
  • page/FrameDestructionObserver.cpp:

(WebCore::FrameDestructionObserver::frame const):
(WebCore::FrameDestructionObserver::observeFrame):

  • page/FrameDestructionObserver.h:

(WebCore::FrameDestructionObserver::frame const): Deleted.

  • page/FrameTree.cpp:

(WebCore::FrameTree::FrameTree):
(WebCore::FrameTree::parent const):
(WebCore::FrameTree::appendChild):
(WebCore::FrameTree::removeChild):
(WebCore::FrameTree::traverseNextInPostOrder const):

  • page/FrameTree.h:

(WebCore::FrameTree::previousSibling const):
(WebCore::FrameTree::lastChild const):
(WebCore::FrameTree::FrameTree): Deleted.

  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::RenderScrollbar):

  • rendering/RenderScrollbar.h:

Source/WebKit:

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::initWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
(WebKit::WebFrame::coreFrame const):
(WebKit::WebFrame::info const):
(WebKit::WebFrame::handlesPageScaleGesture const):
(WebKit::WebFrame::requiresUnifiedScaleFactor const):

  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::coreFrame const): Deleted.

8:46 AM Changeset in webkit [269434] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Use fewer raw pointers and more const correctness in Frame.h
https://bugs.webkit.org/show_bug.cgi?id=218598

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-05
Reviewed by Youenn Fablet.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::opener): Deleted.

  • loader/FrameLoader.h:
  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::page const):
(WebCore::Frame::ownerElement const):
(WebCore::Frame::ownerRenderer const):

  • page/Frame.h:

(WebCore::Frame::loader const): Deleted.
(WebCore::Frame::ownerElement const): Deleted.
(WebCore::Frame::page const): Deleted.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

(WebKit::toWebFrameLoaderClient):

8:21 AM Changeset in webkit [269433] by Patrick Angle
  • 2 edits in trunk/Tools

Change my (Patrick Angle's) status to committer.

Unreviewed, updating contributors.json for myself.

  • Scripts/webkitpy/common/config/contributors.json:
8:12 AM Changeset in webkit [269432] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use std::exchange instead of WTFMove to avoid using members after moving them in NavigationScheduler.cpp
https://bugs.webkit.org/show_bug.cgi?id=218597

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-05
Reviewed by Wenson Hsieh.

This shouldn't change behavior, but it leaves the members in a defined state.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::timerFired):
(WebCore::NavigationScheduler::cancel):

7:35 AM Changeset in webkit [269431] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Add visual support for text-overflow: ellipsis
https://bugs.webkit.org/show_bug.cgi?id=218572

Reviewed by Antti Koivisto.

In this patch we replace the trailing overflow content with ellipsis:

  1. Check if the current run is the last run on the line that can include the ellipsis text without getting clipped.
  2. "Empty" any subsequent runs as far as Run::renderedContent() is concerned (see Run::originalContent vs. Run::renderedContent)
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

7:02 AM Changeset in webkit [269430] by Lauro Moura
  • 3 edits in trunk/Tools

[GTK] Test /webkit/WebKitWebsiteData/configuration is flaky
https://bugs.webkit.org/show_bug.cgi?id=205441

Reviewed by Carlos Garcia Campos.

Checking the last 200 runs of gtk-release in the bots, the original
error from the report does not appear, but other flakies happened
related to checking if some directories were created (namely
indexeddb, service-workers and dom-cache). As they are created
asynchronously or lazily (i.e. requiring some operation to happen).
This could be seen in the WPE bots, not covered by the original
expectation, and also reproduced locally by running the test case
alone.

This commit adds some steps/wait time before each of these to make
sure the directories are created properly.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataConfiguration): Add required steps before checking
directories

  • TestWebKitAPI/glib/TestExpectations.json: Remove expectation
6:44 AM Changeset in webkit [269429] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Test that skip_validation is effective
https://bugs.webkit.org/show_bug.cgi?id=218611

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-05
Reviewed by Aakash Jain.

  • CISupport/ews-build/steps_unittest.py:
6:23 AM Changeset in webkit [269428] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Test that TransferToS3 is skipped properly
https://bugs.webkit.org/show_bug.cgi?id=218610

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-05
Reviewed by Aakash Jain.

I.e. when not running on steps.EWS_BUILD_HOSTNAME.

  • CISupport/ews-build/steps_unittest.py:
6:14 AM Changeset in webkit [269427] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Transition hyphenated content to Run::renderedContent()
https://bugs.webkit.org/show_bug.cgi?id=218552

Reviewed by Antti Koivisto.

Currently hyphenated content is being constructed during paint time. This patch takes advantage of the
new Run::renderedContent() API.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::LineLayout::paint):

5:11 AM Changeset in webkit [269426] by commit-queue@webkit.org
  • 3 edits
    1 move
    3 adds
    4 deletes in trunk/LayoutTests

[css-grid] Move tests grid-columns-rows-get-set-multiple and grid-content-sized-columns-resolution to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=218565
LayoutTests/imported/w3c:

Patch by Ziran Sun <Ziran Sun> on 2020-11-05
Reviewed by Manuel Rego Casasnovas.

  • web-platform-tests/css/css-grid/parsing/grid-columns-rows-get-set-multiple-expected.txt: Added.
  • web-platform-tests/css/css-grid/parsing/grid-columns-rows-get-set-multiple.html: Added.
  • web-platform-tests/css/css-grid/parsing/grid-content-sized-columns-resolution-expected.txt: Added.
  • web-platform-tests/css/css-grid/parsing/grid-content-sized-columns-resolution.html: Renamed from LayoutTests/fast/css-grid-layout/grid-content-sized-columns-resolution.html.
  • web-platform-tests/css/css-grid/parsing/w3c-import.log: Updated.

LayoutTests:

These changes have been moved upstream in Chromium
at https://chromium-review.googlesource.com/c/chromium/src/+/2436821
and ported in WPT at
https://github.com/web-platform-tests/wpt/commit/7a287c9e26fbc12c91e1dde91859fabed96254b6

Patch by Ziran Sun <Ziran Sun> on 2020-11-05
Reviewed by Manuel Rego Casasnovas.

  • fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt: Removed.
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple.html: Removed.
  • fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt: Removed.
  • fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js: Removed.
5:06 AM WebKitGTK/2.30.x edited by clopez@igalia.com
(diff)
4:49 AM Changeset in webkit [269425] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Gardened several flaky failures reported in test bot.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:23 AM Changeset in webkit [269424] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Let's compute display lines visual alignments first before the runs
https://bugs.webkit.org/show_bug.cgi?id=218551

Reviewed by Antti Koivisto.

In this patch we pre-compute visual adjustement properties that we later use during run construction
(e.g. whether the runs on the line need vertical snapping).
This patch is also in preparation for adding support for "text-overflow: ellipsis". The pre-computed
LineLevelVisualAdjustmentsForRuns.needsTrailingContentReplacement will drive the content truncation logic for the ellipsis.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::lineOverflowWidth):
(WebCore::LayoutIntegration::LineLayout::constructContent):

4:17 AM Changeset in webkit [269423] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Don't mark TransferToS3 as failed if it was skipped
https://bugs.webkit.org/show_bug.cgi?id=218606

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-05
Reviewed by Aakash Jain.

  • CISupport/ews-build/steps.py:

(TransferToS3.getResultSummary):

3:10 AM Changeset in webkit [269422] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Update my information in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=218608

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-05
Reviewed by Carlos Garcia Campos.

Update my information in contributors.json to change the autocomplete email address to be Igalia.

  • Scripts/webkitpy/common/config/contributors.json:
12:47 AM Changeset in webkit [269421] by Carlos Garcia Campos
  • 4 edits in trunk

WebDriver: handle surrogate pairs in keyboard actions
https://bugs.webkit.org/show_bug.cgi?id=218279

Reviewed by Brian Burg.

Source/WebKit:

And fail with invalid argument if the string can be represented as a single code point.

Fixes: imported/w3c/webdriver/tests/perform_actions/key_special_keys.py::test_codepoint_keys_behave_correctly[\U0001f604]

imported/w3c/webdriver/tests/perform_actions/key_special_keys.py::test_codepoint_keys_behave_correctly[\U0001f60d]
imported/w3c/webdriver/tests/perform_actions/key_special_keys.py::test_invalid_multiple_codepoint_keys_fail[fa]
imported/w3c/webdriver/tests/perform_actions/key_special_keys.py::test_invalid_multiple_codepoint_keys_fail[\u0ba8\u0bbfb]
imported/w3c/webdriver/tests/perform_actions/key_special_keys.py::test_invalid_multiple_codepoint_keys_fail[\u0ba8\u0bbf\u0ba8]
imported/w3c/webdriver/tests/perform_actions/key_special_keys.py::test_invalid_multiple_codepoint_keys_fail[\u1100\u1161\u11a8c]

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::pressedCharKey):
(WebKit::WebAutomationSession::performInteractionSequence):

WebDriverTests:

Remove expectations for tests that are now passing.

12:46 AM Changeset in webkit [269420] by jiewen_tan@apple.com
  • 4 edits in trunk

[WebAuthn] Determine an AAGUID for the platform authenticators
https://bugs.webkit.org/show_bug.cgi?id=217945
<rdar://problem/70811618>

Reviewed by Brent Fulgham.

Source/WebKit:

Relying parties use the AAGUID to recognize supported authenticators. Using a NULL AAGUID blocks them from recognizing Apple products as valid WebAuthentication targets.
We need to assign ourselves a GUID representing Apple authenticators, then publish with our attestation certificate and with the FIDO Alliance.

Covered by existing tests.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::aaguidVector):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
12:45 AM Changeset in webkit [269419] by Carlos Garcia Campos
  • 7 edits in trunk/Source

WebDriver: session can have more than one active input source of the same type
https://bugs.webkit.org/show_bug.cgi?id=218382

Reviewed by Brian Burg.

Source/WebDriver:

Only send to the browser the list of input sources actually used by the action sequence.

  • Session.cpp:

(WebDriver::Session::performActions):

Source/WebKit:

We are failing in that case, and the dispatcher assumes it's not possible, but the spec doesn't say there's such
limitation and there's a WPT infrastructure test checking that (infrastructure/testdriver/actions/eventOrder.html).

  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputKeyFrame::keyFrameFromStateOfInputSources): Input sources are now stored in a HashMap.
(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ditto.
(WebKit::SimulatedInputDispatcher::run): We don't need to copy the given input sources, since they are owned by
the session.
(WebKit::SimulatedInputDispatcher::finishDispatching): Ditto.

  • UIProcess/Automation/SimulatedInputDispatcher.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::WebAutomationSession): Do not create initial input sources for each type.
(WebKit::WebAutomationSession::performInteractionSequence): Check there aren't multiple input sources with the
same ID, but don't fail if there are multiple input sources with the same type.
(WebKit::WebAutomationSession::cancelInteractionSequence): Clear the active input sources.
(WebKit::WebAutomationSession::inputSourceForType): Removed.

  • UIProcess/Automation/WebAutomationSession.h:
12:21 AM Changeset in webkit [269418] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, build fix for ARM64E part 2
https://bugs.webkit.org/show_bug.cgi?id=218587

  • cssjit/SelectorCompiler.h:
12:12 AM Changeset in webkit [269417] by ysuzuki@apple.com
  • 4 edits in trunk/Source

Unreviewed, build fix for ARM64E
https://bugs.webkit.org/show_bug.cgi?id=218587

Source/JavaScriptCore:

  • llint/LLIntData.cpp:

Source/WebCore:

  • cssjit/SelectorCompiler.h:

Nov 4, 2020:

9:59 PM Changeset in webkit [269416] by Said Abou-Hallawa
  • 19 edits in trunk/Source

[GPU Process] Move the internal GPU rendering flags from WebPage to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=218549

Reviewed by Tim Horton.

Source/WebCore:

Add a new RenderingPurpose for DOM rendering.

  • platform/graphics/RenderingMode.h:

Source/WebKit:

Move UseGPUProcessForCanvasRendering from WebPage to WebProcess. Add a
new setting for UseGPUProcessForDOMRendering to WebProcess.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

Encode/decode the flags from the UI Process to the Web Process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
Read the flags in from the preferences.

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::setUseGPUProcess):
(WebKit::RemoteMediaPlayerManager::updatePreferences): Deleted.

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:

These flags belong to WebKit so they should not be accessed through the
Settings.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::shouldUseRemoteRenderingFor): Deleted.

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

(WebKit::WebProcess::setUseGPUProcessForCanvasRendering):
(WebKit::WebProcess::setUseGPUProcessForDOMRendering):
(WebKit::WebProcess::shouldUseRemoteRenderingFor):

  • WebProcess/WebProcess.h:

The rendering and media flags can now be accessed from the WebPorcess.

Source/WebKitLegacy/mac:

GPU Process can't be enabled for WK1.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences useGPUProcessForMediaEnabled]): Deleted.
(-[WebPreferences setUseGPUProcessForMediaEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

Fix a layering issue for the preference 'UseGPUProcessForMediaEnabled'.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
9:17 PM Changeset in webkit [269415] by ysuzuki@apple.com
  • 14 edits
    1 delete in trunk/Source

Apply JITCage to CSSJIT
https://bugs.webkit.org/show_bug.cgi?id=218587

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • llint/LLIntData.cpp:
  • llint/LowLevelInterpreter.asm:
  • runtime/JSCPtrTag.h:
  • yarr/YarrJIT.cpp:

Source/WebCore:

Since CSSJIT does not call JIT function recursively, supporting it in JITCage is simple: we can have trampoline in C
and jump to JIT code, and instead of doing "ret", returning back to C code via jump.

No behavior change.

  • WebCore.xcodeproj/project.pbxproj:
  • cssjit/CSSPtrTag.h: Removed.
  • cssjit/CompiledSelector.h:
  • cssjit/FunctionCall.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateReturn):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorChecker):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorChecker):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerWithCheckingContext):
(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorCheckerFunction): Deleted.
(WebCore::SelectorCompiler::querySelectorSimpleSelectorCheckerFunction): Deleted.
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerFunctionWithCheckingContext): Deleted.
(WebCore::SelectorCompiler::querySelectorSelectorCheckerFunctionWithCheckingContext): Deleted.

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker const):
(WebCore::SelectorDataList::executeCompiledSelectorCheckerWithCheckingContext const):
(WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData const):
(WebCore::SelectorDataList::execute const):

  • dom/SelectorQuery.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):

6:23 PM Changeset in webkit [269414] by Chris Dumez
  • 10 edits
    6 adds in trunk

window.event may get set on wrong global when dispatching an event
https://bugs.webkit.org/show_bug.cgi?id=218546

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/dom/events/event-global-extra.window-expected.txt:

Source/WebCore:

As per the specification [1], while invoking an event listener, we should set the global's
'current event', stating that global is the 'listener callback’s associated Realm’s global
object'. It also states we should do so only if global is a Window object. Previously,
we were setting the 'current event' on the wrong global. We were using the global of the
object the event listener was registered on.

[1] https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke

Tests: fast/events/window-event-onerror-recursive.html

fast/events/window-event-onerror.html
fast/events/window-event-recursive.html

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

(WebCore::JSDOMWindowBase::setCurrentEvent):
(WebCore::JSDOMWindowBase::currentEvent const):

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

LayoutTests:

Extend layout test coverage.

  • fast/events/window-event-onerror-expected.txt: Added.
  • fast/events/window-event-onerror-recursive-expected.txt: Added.
  • fast/events/window-event-onerror-recursive.html: Added.
  • fast/events/window-event-onerror.html: Added.
  • fast/events/window-event-recursive.html: Added.
5:58 PM Changeset in webkit [269413] by Kocsen Chung
  • 1 copy in tags/Safari-610.3.7

Tag Safari-610.3.7.

5:57 PM Changeset in webkit [269412] by Kocsen Chung
  • 1 delete in tags/Safari-610.3.7

Delete tag.

5:56 PM Changeset in webkit [269411] by Kocsen Chung
  • 2 edits in branches/safari-610-branch/Source/WebCore

Revert r269190. rdar://problem/70970247

5:40 PM Changeset in webkit [269410] by commit-queue@webkit.org
  • 2 edits in trunk

Fix JSC build on macOS Big Sur
https://bugs.webkit.org/show_bug.cgi?id=218566

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-11-04
Reviewed by David Kilzer.

  • Source/cmake/WebKitFindPackage.cmake:
5:23 PM Changeset in webkit [269409] by Diego Pino Garcia
  • 2 edits
    4 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update expectations of flaky text failures.

The updated tests have been failing consistently for the last 4000 revisions.
A few tests are actually passing now, after emiting a new baseline.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt: Added.
5:11 PM Changeset in webkit [269408] by Alan Coon
  • 1 copy in tags/Safari-610.3.7

Tag Safari-610.3.7.

5:05 PM Changeset in webkit [269407] by eric.carlson@apple.com
  • 10 edits
    2 adds in trunk

Transparent video poster image doesn't keep element transparent once first frame is preloaded
https://bugs.webkit.org/show_bug.cgi?id=218391
<rdar://problem/70916944>

Reviewed by Jer Noble.
Source/WebCore:

Redo the poster frame logic to use the show poster flag logic from the spec.

Test: media/video-poster-visible-after-first-video-frame.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_showPoster.
(WebCore::HTMLMediaElement::prepareForLoad): m_displayMode was removed.
(WebCore::HTMLMediaElement::selectMediaResource): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::loadResource): Remove calls to setDisplayMode and updateDisplayState,
they have been deleted.
(WebCore::HTMLMediaElement::waitForSourceChange): Call setShowPosterFlag. Update spec text.
(WebCore::HTMLMediaElement::noneSupported): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaLoadingFailed): Remove call to updateDisplayState.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::seekWithTolerance): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::seekTask): Check m_showPoster, not displayMode.
(WebCore::HTMLMediaElement::playInternal): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Don't check displayMode.
(WebCore::HTMLMediaElement::updatePlayState): No more setDisplayMode.
(WebCore::HTMLMediaElement::userCancelledLoad): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::setShowPosterFlag):
(WebCore::HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::showPosterFlag const):
(WebCore::HTMLMediaElement::setShowPosterFlag):
(WebCore::HTMLMediaElement::displayMode const): Deleted.
(WebCore::HTMLMediaElement::setDisplayMode): Deleted.
(WebCore::HTMLMediaElement::updateDisplayState): Deleted.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::didAttachRenderers): No more updateDisplayState.
(WebCore::HTMLVideoElement::parseAttribute): Ditto. Call updateFromElement when poster is removed.
(WebCore::HTMLVideoElement::shouldDisplayPosterImage const): New.
(WebCore::HTMLVideoElement::mediaPlayerFirstVideoFrameAvailable): New, update player and
renderer if the poster isn't supposed to be visible.
(WebCore::HTMLVideoElement::setDisplayMode): Deleted.
(WebCore::HTMLVideoElement::updateDisplayState): Deleted.

  • html/HTMLVideoElement.h:
  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::failedToLoadPosterImage const): New.

  • rendering/RenderVideo.h:
  • testing/Internals.cpp:

(WebCore::Internals::elementShouldDisplayPosterImage const):

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

LayoutTests:

  • TestExpectations: Mark a test that expect video state changes to be visible on the

next rAF to be flaky. HTMLMediaElement uses taskQueues to change properties, and
taskQueue isn't synchronized to rAF, so sometimes the task runs before the next
rAF and sometimes after, making the test flaky.

  • compositing/video/video-poster.html: Don't expect the transition to having layers

to be instantaneous.

  • media/video-poster-visible-after-first-video-frame-expected.txt: Added.
  • media/video-poster-visible-after-first-video-frame.html: Added.
4:58 PM Changeset in webkit [269406] by Alan Coon
  • 5 edits
    1 add in branches/safari-611.1.4-branch

Revert r269199. rdar://problem/70831130

4:42 PM Changeset in webkit [269405] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Mac WK1 ] fast/text/canvas-color-fonts/COLR.html is failing
https://bugs.webkit.org/show_bug.cgi?id=218591

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:39 PM Changeset in webkit [269404] by Alan Coon
  • 1 copy in tags/Safari-611.1.4.1

Tag Safari-611.1.4.1.

4:36 PM Changeset in webkit [269403] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, add workaround for Linux build
https://bugs.webkit.org/show_bug.cgi?id=218143

  • wtf/WTFConfig.h:
4:11 PM Changeset in webkit [269402] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Introduce LayoutIntegration::Run::renderedContent
https://bugs.webkit.org/show_bug.cgi?id=218550

Reviewed by Antti Koivisto.

This is in preparation for supporting "text-overflow: ellipsis" where the rendered content could
be very different from the original content (e.g. runs after the truncation go completely blank)

  • layout/integration/LayoutIntegrationLine.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationRun.h:

(WebCore::LayoutIntegration::Run::TextContent::originalContent const):
(WebCore::LayoutIntegration::Run::TextContent::renderedContent const):
(WebCore::LayoutIntegration::Run::isLineBreak const):
(WebCore::LayoutIntegration::Run::TextContent::TextContent):
(WebCore::LayoutIntegration::Run::TextContent::content const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::text const):

4:05 PM Changeset in webkit [269401] by Jonathan Bedard
  • 10 edits
    1 add in trunk/Tools

[webkitscmpy] Add checkout command
https://bugs.webkit.org/show_bug.cgi?id=218360
<rdar://problem/70828312>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.checkout): Checkout repository to specified commit, branch or tag.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.checkout): Checkout repository to specified commit, branch or tag.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.checkout): Checkout repository to specified commit, branch or tag.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add concept of HEAD commit, mock git checkout command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:

(Svn.init): Add concept of HEAD commit, mock svn up -r *.
(Svn.branch): The HEAD's branch is the current branch.
(Svn.find): Use the HEAD of the repository as the default.
(Svn.up): Change the repository's HEAD.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program.py:

(Checkout): Checkout repository to specified commit.
(main): Add Checkout subcommand.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py: Added.

(TestCheckout):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit):
(TestGit.test_checkout):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestSvn):
(TestSvn.test_checkout):

3:48 PM Changeset in webkit [269400] by Chris Dumez
  • 29 edits
    26 adds in trunk/LayoutTests

Resync web-platform-tests/dom tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=218570

Reviewed by David Kilzer.

Resync web-platform-tests/dom tests from upstream 7a287c9e26fbc12c91.

  • resources/resource-files.json:
  • web-platform-tests/dom/*: Updated
3:41 PM Changeset in webkit [269399] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/JavaScriptCore

Revert r269338. rdar://problem/71021911

This revision reverts r269398.

3:34 PM Changeset in webkit [269398] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/JavaScriptCore

Cherry-pick r269338. rdar://problem/71021911

Don't assert there is no checkpoint side state when dropping the JSLock
https://bugs.webkit.org/show_bug.cgi?id=218537

Reviewed by Filip Pizlo.

You may have multiple OSR exit sidestate data on the stack, and then call into
API code, which might DropAllLocks. Hence, this assert is wrong.

Working on a test. Will land in a followup.

  • runtime/JSLock.cpp: (JSC::JSLock::willReleaseLock):

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

3:24 PM Changeset in webkit [269397] by Alan Coon
  • 11 edits
    2 deletes in branches/safari-611.1.4-branch/Source

Revert r268386. rdar://problem/70831174

3:07 PM Changeset in webkit [269396] by commit-queue@webkit.org
  • 4 edits in trunk

Add new build option USE(64KB_PAGE_BLOCK)
https://bugs.webkit.org/show_bug.cgi?id=217989

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-04
Reviewed by Yusuke Suzuki.

.:

Why do we need this option? Because JSC and bmalloc both want to know the userspace page
size at compile time, which is impossible on Linux because it's a runtime setting. We
cannot test the system page size at build time in hopes that it will be the same on the
target system, because (a) cross compiling wouldn't work, and (b) the build system could
use a different page size than the target system (which will be true for Fedora aarch64,
because Fedora is built using RHEL), so the best we can do is guess based on the target CPU
architecture. In practice, guessing works for all architectures except aarch64 (unless
unusual page sizes are used), but it fails for aarch64 because distros are split between
using 4 KB and 64 KB pages there. Most distros (including Fedora) use 4 KB, but RHEL uses
64 KB. SUSE actually supports both. Since there is no way to guess correctly, the best we
can do is provide an option for it. You should probably only use this if building for
aarch64. Otherwise, known CPUs except PowerPC will use 4 KB, while PowerPC and unknown CPUs
will use 64 KB (see wtf/PageBlock.h). aarch64 will continue to default to 4 KB because this
is a much better default on systems where it doesn't crash.

Having one flag will help avoid mistakes. E.g. both RHEL and SUSE were manually passing
-DENABLE_JIT=OFF and -DUSE_SYSTEM_MALLOC=ON, but we missed -DENABLE_C_LOOP=ON and
-DENABLE_SAMPLING_PROFILER=OFF, so wound up running with both JIT and cloop disabled, a
configuration not otherwise used on Linux (and not supported by GTK or WPE ports). It will
be easier to not mess up if we only have to pass one special build option. This will also
allow us to stop patching PageBlock.h downstream, because I don't like downstream patches
that we have to keep forever.

  • Source/cmake/WebKitFeatures.cmake:

Source/WTF:

  • wtf/PageBlock.h:
2:56 PM Changeset in webkit [269395] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] remove unnecessary code from loadConfig
https://bugs.webkit.org/show_bug.cgi?id=218582

Reviewed by Dewei Zhu.

  • CISupport/ews-build/loadConfig.py:

(loadBuilderConfig): Also renamed variables to be consistent with EWS counterpart.

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

(loadBuilderConfig):

2:36 PM Changeset in webkit [269394] by Aditya Keerthi
  • 24 edits
    9 adds in trunk

[Contact Picker API] Add support for picker UI on iOS
https://bugs.webkit.org/show_bug.cgi?id=218189
<rdar://problem/69862277>

Reviewed by Devin Rousso.

Source/WebKit:

ContactsManager.select() should present a contact picker on platforms
which support one. This patch enables the end-to-end functionality on
iOS, presenting a contact picker upon a call to the API and returning
the selected contacts upon dismissal.

Tests: contact-picker/contacts-select-after-dismissing-picker.html

contact-picker/contacts-select-while-presenting-picker.html
contact-picker/contacts-select.html

  • Platform/spi/Cocoa/ContactsUISPI.h: Added.
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _didPresentContactPicker]):
(-[WKWebView _didDismissContactPicker]):
(-[WKWebView _dismissContactPickerWithContacts:]):

  • UIProcess/Cocoa/WKContactPicker.h: Added.
  • UIProcess/Cocoa/WKContactPicker.mm: Added.

WKContactPicker is a WebKit wrapper around CNContactPickerViewController.

(-[WKCNContactPickerDelegate initWithContactPickerDelegate:]):

WKCNContactPickerDelegate is wrapper around CNContactPickerDelegate.
This is necessary as single/multiple selection in a
CNContactPickerViewController is determined by which delegate methods
are implemented. The two specializations of this class include the
methods necessary to present a single-select and multi-select picker
respectively.

(-[WKCNContactPickerDelegate contactPickerDidCancel:]):
(-[WKCNContactPickerSingleSelectDelegate contactPicker:didSelectContact:]):
(-[WKCNContactPickerMultiSelectDelegate contactPicker:didSelectContacts:]):
(-[WKContactPicker delegate]):
(-[WKContactPicker setDelegate:]):
(-[WKContactPicker initWithView:]):
(-[WKContactPicker presentWithRequestData:completionHandler:]):
(-[WKContactPicker contactPickerDidCancel:]):

This delegate method is called when the picker is dismissed by
tapping the done button or when the picker is dismissed by swiping
down.

(-[WKContactPicker contactPicker:didSelectContact:]):
(-[WKContactPicker contactPicker:didSelectContacts:]):
(-[WKContactPicker _contactPickerDidDismissWithContactInfo:]):
(-[WKContactPicker _contactInfoFromCNContact:]):
(-[WKContactPicker dismissWithContacts:]):
(-[WKContactPicker _contactsFromJSContacts:]):

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

(WebKit::PageClientImpl::showContactPicker):

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

(-[WKContentView _showContactPicker:completionHandler:]):
(-[WKContentView contactPickerDidPresent:]):
(-[WKContentView contactPickerDidDismiss:]):
(-[WKContentView _dismissContactPickerWithContacts:]):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/PlatformHave.h:

Added HAVE(CONTACTSUI) and HAVE(CNCONTACTPICKERVIEWCONTROLLER) macros.

Tools:

Added UIScriptController hooks to observe the presentation and
dismissal of a contact picker. Furthermore, the
dismissContactPickerWithContacts method was added to allow tests to
dismiss the presented contact picker with a set of selected contacts.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptContext.h:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::isShowingContactPicker const):
(WTR::UIScriptController::dismissContactPickerWithContacts):

  • TestRunnerShared/UIScriptContext/UIScriptControllerShared.cpp:

(WTR::UIScriptController::setDidShowContactPickerCallback):
(WTR::UIScriptController::didShowContactPickerCallback const):
(WTR::UIScriptController::setDidHideContactPickerCallback):
(WTR::UIScriptController::didHideContactPickerCallback const):

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView resetInteractionCallbacks]):
(-[TestRunnerWKWebView _didPresentContactPicker]):
(-[TestRunnerWKWebView _didDismissContactPicker]):

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::setDidShowContactPickerCallback):
(WTR::UIScriptControllerCocoa::setDidHideContactPickerCallback):
(WTR::UIScriptControllerCocoa::isShowingContactPicker const):
(WTR::UIScriptControllerCocoa::dismissContactPickerWithContacts):

LayoutTests:

Added tests to verify the presentation and dismissal of a contact
picker on iOS. The new tests are only run on iOS WK2, since that is the
only platform which currently supports the presentation of a contact
picker. Note that these tests will be enabled on macOS WK2 once support
is added in a forthcoming patch.

  • TestExpectations:
  • contact-picker/contacts-select-after-dismissing-picker-expected.txt: Added.
  • contact-picker/contacts-select-after-dismissing-picker.html: Added.
  • contact-picker/contacts-select-expected.txt: Added.
  • contact-picker/contacts-select-while-presenting-picker-expected.txt: Added.
  • contact-picker/contacts-select-while-presenting-picker.html: Added.
  • contact-picker/contacts-select.html: Added.
  • platform/ios-wk2/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.waitForContactPickerToShow):
(window.UIHelper.waitForContactPickerToHide):
(window.UIHelper.dismissContactPickerWithContacts):

2:32 PM Changeset in webkit [269393] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix build with very recent SDK by silencing a deprecation warning.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):

2:29 PM Changeset in webkit [269392] by Aditya Keerthi
  • 2 edits
    1 add in trunk/LayoutTests

REGRESSION (Big Sur): fast/forms/hidpi-textfield-background-bleeding.html is failing
https://bugs.webkit.org/show_bug.cgi?id=218540
<rdar://problem/66295552>

Reviewed by Wenson Hsieh.

The purpose of the failing test is to verify that textfield backgrounds
(which are drawn completely by WebKit) do not bleed outside of the
textfield border (which is drawn using AppKit).

The test is currently failing as there is a 0.5px shadow that appears
outside the border on Big Sur. This is a result of changes made to the
appearance of system controls in Big Sur. The failure is benign, as the
test still confirms that the background does not bleed.

In order to ensure that we can still run this test on Big Sur, update
the expectation to account for the shadow.

  • platform/mac-bigsur/fast/forms/hidpi-textfield-background-bleeding-expected.html: Added.
  • platform/mac/TestExpectations:
2:27 PM Changeset in webkit [269391] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Conditionally disable the patch validation step
https://bugs.webkit.org/show_bug.cgi?id=218441

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-04
Reviewed by Aakash Jain.

This makes it easy to submit an arbitrary patch (i.e. one that doesn't
appear on bugzilla) for an EWS run. Useful for non-interactive testing.

Note that the skip_validation parameter can only be supplied by
ews-app, so patches cannot skip the validation step in the
production EWS deployment.

  • CISupport/ews-build/steps.py:

(ValidatePatch.doStepIf):

2:22 PM Changeset in webkit [269390] by weinig@apple.com
  • 9 edits in trunk/Tools

Remove support for experimental: and internal: prefixes from WebKitTestRunner and DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=218569

Reviewed by Tim Horton.

The prefixes were removed from use in tests in r269360.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::webViewIsCompatibleWithOptions const):
Replace duplicated comparison code with call to operator==.

  • TestRunnerShared/TestFeatures.cpp:

(WTR::merge):
Remove special maps for internal and experimental features.

(WTR::operator==):
(WTR::operator!=):
Add operator== support for use by TestOptions in determining compatibility.

(WTR::parseTestHeaderFeature):
(WTR::parseTestHeader):
Split out feature parsing for future use in command line parsing.

  • TestRunnerShared/TestFeatures.h:

Remove special maps for internal and experimental features.

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionAcceleratedDrawing):
(WTR::handleOptionRemoteLayerTree):
(WTR::handleOptionShowWebView):
(WTR::handleOptionShowTouches):
(WTR::parseFeature):
(WTR::handleOptionExperimentalFeature):
(WTR::handleOptionInternalFeature):

  • WebKitTestRunner/Options.h:

Rather than parsing into bools / extra maps, parse the command line options
directly into a TestFeatures.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
Initialize global features from the new Options' TestFeatures.

(WTR::TestController::resetPreferencesToConsistentValues):
Remove special casing for experimental and internal features, they are now just
generic bool WebPreferences. Move special cases for internal features into TestOptions.

(WTR::TestController::testOptionsForTest const):
Now that global features is not seeded with the default features, construct the
full merge chain starting with the default features instead.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
Add some additional defaults moved from TestController::resetPreferencesToConsistentValues.

(WTR::TestOptions::hasSameInitializationOptions const):
Use operator== to reduce duplicated code.

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::experimentalFeatures const): Deleted.
(WTR::TestOptions::internalDebugFeatures const): Deleted.
Remove now unused extra maps for external and internal features.

2:07 PM Changeset in webkit [269389] by Alan Coon
  • 8 edits
    2 adds
    1 delete in branches/safari-610-branch

Cherry-pick r269025. rdar://problem/70970161

REGRESSION (r268386): Flashes of inverted color when zooming the map on windy.com
https://bugs.webkit.org/show_bug.cgi?id=218177
<rdar://problem/70676037>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-27
Reviewed by Dean Jackson.

Source/WebCore:

Refactoring r268386 changed the behavior so that a new WebGL drawing
buffer would be created when CA would be using the oldest IOSurface
display buffer of the WebGL layer. Before r268386 the WebGL would just
draw on top of the IOSurface even if CA was using it.

This change made the existing bug of using uninitialized IOSurfaces
visible, since IOSurfaces seem to be initialized with red. The existing
bug was probably in r262366.

The fix in this commit fixes the case where WebGL context is drawn to
but the CA does not display the contents. Draw would cause preparation
of the drawing buffer for display, along with the contract that drawing
buffer might be uninitialized. However, the clear of the drawing buffer
was marked needed only during display.

Case that failed at the time of writing was the case where after draw,
the element would be removed by setting display:none. This would return
red contents, e.g. uninitialized IOSurface contents. Before r268386 this
would first return red until 3 buffers had passed and then it would
start recycling old display buffer contents.

The naming is not fixed in this commit due to just fixing the
regression. Other ports contain code that makes renaming or
restructuring the callbacks more confusing for the other ports.

Test: fast/canvas/webgl/webgl-clear-composited-notshowing.html

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::prepareForDisplay):
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm: (-[WebGLLayer initWithDevicePixelRatio:contentsOpaque:]): (-[WebGLLayer display]): (-[WebGLLayer detachClient]):
  • platform/graphics/cocoa/WebGLLayerClient.h: Removed.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

LayoutTests:

Test case for WebGL which is drawn to a canvas that is not visible. This should still
adhere to preserveDrawingBuffer == false contract of clearing the drawing buffer
correctly.

Case that failed at the time of writing was the case where after draw, the element
would be removed by setting display:none.

  • fast/canvas/webgl/webgl-clear-composited-notshowing-expected.txt: Added.
  • fast/canvas/webgl/webgl-clear-composited-notshowing.html: Added.

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

2:07 PM Changeset in webkit [269388] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r268446. rdar://problem/70970178

REGRESSION: fast/canvas/webgl/context-attributes-alpha.html fails
https://bugs.webkit.org/show_bug.cgi?id=217697

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-14
Reviewed by Antti Koivisto.

The original work in "Cocoa: Make WebGLLayer not dependent on
GraphicsContextGLOpenGL" was missing the hunk to initialize
WebGLLayer contentsOpaque. Neither the EWS nor the local testing
used the test case.

No new tests, tested by
fast/canvas/webgl/context-attributes-alpha.html.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm: (-[WebGLLayer initWithClient:devicePixelRatio:contentsOpaque:]): (-[WebGLLayer initWithClient:devicePixelRatio:]): Deleted.

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

2:07 PM Changeset in webkit [269387] by Alan Coon
  • 11 edits
    1 copy
    1 add in branches/safari-610-branch/Source

Cherry-pick r268386. rdar://problem/70970067

Cocoa: Make WebGLLayer not dependent on GraphicsContextGLOpenGL
https://bugs.webkit.org/show_bug.cgi?id=217212
<rdar://problem/69876022>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-13
Reviewed by Dean Jackson.

Source/WebCore:

WebGLLayer was needlessly using GraphicsContextGLOpenGL.
This is problematic because WebGLLayer should work with
upcoming remote GraphicsContextGL implementation.

The prepare callgraph was:

GCGLOpenGL -> WebGLLayer -> GCGLOpenGL

Refactor it to be:

GCGLOpenGL -> WebGLLayer

Move the back buffer ownership to the GraphicsContextGLOpenGL.
Make the front buffer ownership explicit in WebGLLayer.
Move the EGL bindings ownerships of all buffers to
GraphicsContextGLOpenGL.

Make the WebGLLayer not use EGL or OpenGL, it does not
need and cannot use it as not all of its clients use OpenGL
(i.e. the above mentioned remote use-case).

Improves the memory usage by not allocating front buffers
unless needed. In case the canvas does not present, will
not allocate front buffers at all.

Improves error handling of the allocations and EGL bindings.

No new tests, a refactor.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs): (WebCore::GraphicsContextGLOpenGL::prepareTexture): (WebCore::GraphicsContextGLOpenGL::prepareTextureImpl):
  • platform/graphics/angle/GraphicsContextGLANGLEUtilities.h: Added. (WebCore::ScopedRestoreTextureBinding::ScopedRestoreTextureBinding): (WebCore::ScopedRestoreTextureBinding::~ScopedRestoreTextureBinding):
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking): (WebCore::GraphicsContextGLOpenGL::bindDisplayBufferBacking): (WebCore::GraphicsContextGLOpenGL::prepareForDisplay): (WebCore::GraphicsContextGLOpenGL::didDisplay):
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm: (-[WebGLLayer initWithClient:devicePixelRatio:]): (-[WebGLLayer copyImageSnapshotWithColorSpace:]): (-[WebGLLayer recycleBuffer]): (-[WebGLLayer prepareForDisplayWithContents:]): (-[WebGLLayer display]): (-[WebGLLayer detachClient]):
  • platform/graphics/cocoa/WebGLLayerClient.h: Copied from Source/WebCore/platform/graphics/cocoa/WebGLLayer.h. (WebCore::WebGLLayerClient::~WebGLLayerClient):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

Source/WebKit:

Removed unneeded inclusions of GraphicsContextGLOpenGL.h. The
file is now using non-public headers.

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/mac/WebPageMac.mm:

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

2:06 PM Changeset in webkit [269386] by Alan Coon
  • 28 edits
    3 deletes in branches/safari-610-branch/Source/WebCore

Cherry-pick r268198. rdar://problem/70970161

Mac: Remove OpenGL and OpenGL ES backends
https://bugs.webkit.org/show_bug.cgi?id=217374

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-08
Reviewed by Darin Adler.

Remove macOS OpenGL (CGL) and iOS OpenGL ES (EAGL)
implementations of GraphicsContextGLOpenGL. These
are not used anymore and cannot be used for conformant
WebGL. The two removed backends would just create
maintainance burden.

Removes TextureCacheCV, this was not implemented for
ANGLE and in comments it was said to be disabled in
the platform.

Fixes a bug where iOS apps on Mac Apple Silicon would
not use correct texture target to convert the video
frames in VideoTextureCopierCV.

Fixes few instances of using GL types in WebGL implementation
instead of WebCore defined GCGL types. This is needed
now that the includes are (a bit) more correct.

No new tests, a refactoring.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/canvas/ANGLEInstancedArrays.cpp: (WebCore::ANGLEInstancedArrays::supported):
  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::create): (WebCore::WebGLRenderingContextBase::readPixels):
  • platform/graphics/GraphicsContextGL.cpp:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs): (WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::IOSurfaceTextureTarget): (WebCore::GraphicsContextGLOpenGL::IOSurfaceTextureTargetQuery): (WebCore::GraphicsContextGLOpenGL::EGLIOSurfaceTextureTarget): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::setContextVisibility): (WebCore::GraphicsContextGLOpenGL::screenDidChange):
  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm: (-[WebGLLayer initWithGraphicsContextGL:]): (-[WebGLLayer setAnchorPoint:]): (-[WebGLLayer copyImageSnapshotWithColorSpace:]): (-[WebGLLayer prepareForDisplay]): (-[WebGLLayer display]): (-[WebGLLayer releaseGLResources]): (-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]): (-[WebGLLayer bindFramebufferToNextAvailableSurface]):
  • platform/graphics/cv/TextureCacheCV.h: Removed.
  • platform/graphics/cv/TextureCacheCV.mm: Removed.
  • platform/graphics/cv/VideoTextureCopierCV.cpp: (WebCore::VideoTextureCopierCV::initializeContextObjects): (WebCore::VideoTextureCopierCV::initializeUVContextObjects): (WebCore::VideoTextureCopierCV::attachIOSurfaceToTexture): (WebCore::VideoTextureCopierCV::detachIOSurfaceFromTexture): (WebCore::VideoTextureCopierCV::copyImageToPlatformTexture): (WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture):
  • platform/graphics/cv/VideoTextureCopierCV.h:
  • platform/graphics/ios/GraphicsContextGLOpenGLESIOS.h: Removed.
  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp: (WebCore::ExtensionsGLOpenGL::blitFramebuffer): (WebCore::ExtensionsGLOpenGL::createVertexArrayOES): (WebCore::ExtensionsGLOpenGL::deleteVertexArrayOES): (WebCore::ExtensionsGLOpenGL::isVertexArrayOES): (WebCore::ExtensionsGLOpenGL::bindVertexArrayOES): (WebCore::ExtensionsGLOpenGL::supportsExtension): (WebCore::ExtensionsGLOpenGL::drawBuffersEXT): (WebCore::ExtensionsGLOpenGL::drawArraysInstanced): (WebCore::ExtensionsGLOpenGL::drawElementsInstanced): (WebCore::ExtensionsGLOpenGL::vertexAttribDivisor):
  • platform/graphics/opengl/ExtensionsGLOpenGL.h:
  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp: (WebCore::ExtensionsGLOpenGLCommon::initializeAvailableExtensions):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::setContextVisibility):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp: (WebCore::GraphicsContextGLOpenGL::readPixelsAndConvertToBGRAIfNecessary): (WebCore::GraphicsContextGLOpenGL::reshapeFBOs): (WebCore::GraphicsContextGLOpenGL::resolveMultisamplingIfNecessary): (WebCore::GraphicsContextGLOpenGL::getIntegerv): (WebCore::GraphicsContextGLOpenGL::depthRange): (WebCore::GraphicsContextGLOpenGL::clearDepth): (WebCore::GraphicsContextGLOpenGL::getExtensions): (WebCore::GraphicsContextGLOpenGL::readPixels):
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp: (WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas): (WebCore::GraphicsContextGLOpenGL::copyTexImage2D): (WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D): (WebCore::GraphicsContextGLOpenGL::finish): (WebCore::GraphicsContextGLOpenGL::flush): (WebCore::GraphicsContextGLOpenGL::deleteTexture):
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp: (WebCore::GraphicsContextGLOpenGLManager::updateAllContexts): (WebCore::GraphicsContextGLOpenGLManager::updateHighPerformanceState): (WebCore::GraphicsContextGLOpenGLManager::disableHighPerformanceGPUTimerFired):
  • platform/graphics/opengl/GraphicsContextGLOpenGLManager.h:

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

2:06 PM Changeset in webkit [269385] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266840. rdar://problem/70970161

2:04 PM Changeset in webkit [269384] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r257839): Miscomputed style due to computed 'rem' value in matched declaration cache
https://bugs.webkit.org/show_bug.cgi?id=218561
<rdar://problem/70074191>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/dom/focus-rem-style-update.html

Call to focus() causes computed style update for the element’s ancestor chain before the the document
has otherwise been styled (using the shortcut mechanism introduced in r257839). This style, which uses ‘rem’
unit and so depends on root element font size, gets cached in MatchedDeclarationsCache. The root font size
then changes but during the resulting style update we use this cached value, failing to re-resolve ‘rem’.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Invalidate matched declarations cache also when there is no existing document element style.

LayoutTests:

  • fast/dom/focus-rem-style-update-expected.html: Added.
  • fast/dom/focus-rem-style-update.html: Added.
1:39 PM Changeset in webkit [269383] by Chris Dumez
  • 8 edits in trunk

REGRESSION(r268161?): [ macOS ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217542
<rdar://problem/70159546>

Reviewed by Youenn Fablet.

Source/WebCore:

When the script calls suspend(), we call AudioDestinationCocoa::stop() to stop rendering and then resolve the suspend promise.
At this point, the script saves the AudioContext's current sample frame and expects this value to not change until the
AudioContext is resumed. The issue was that we previously were potentially resolving the promise on the main thread while
the last rendering quantum was still being processed on the AudioWorklet thread. This meant that the sample frame could
still increase a bit, a short while after the suspend promise has been resolved. To address the issue, we now do a round
trip to the AudioWorklet thread after stopping rendering, to make sure we only resolve the promise after the last rendering
quantum has been processed on the AudioWorklet thread.

No new tests, unskipped existing test.

  • Modules/webaudio/AudioDestinationNode.h:

Use an std::atomic<size_t> for AudioDestinationNode's currentSampleFrame since this value is being written by the rendering
thread and read by the main thread.

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::stop):

Source/WebKit:

When the script calls suspend(), we call AudioDestinationCocoa::stop() to stop rendering and then resolve the suspend promise.
At this point, the script saves the AudioContext's current sample frame and expects this value to not change until the
AudioContext is resumed. The issue was that we previously were potentially resolving the promise on the main thread while
the last rendering quantum was still being processed on the AudioWorklet thread. This meant that the sample frame could
still increase a bit, a short while after the suspend promise has been resolved. To address the issue, we now to a round
trip to the AudioWorklet thread after stopping rendering, to make sure we only resolve the promise after the last rendering
quantum has been processed on the AudioWorklet thread.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::stop):

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/mac/TestExpectations:
1:37 PM Changeset in webkit [269382] by ddkilzer@apple.com
  • 5 edits
    1 delete in trunk/Source/bmalloc

Remove bmalloc::logVMFailure() and BSoftLinking.h
<https://webkit.org/b/218571>
<rdar://problem/69813381>

Reviewed by Geoffrey Garen.

  • PlatformMac.cmake:
  • bmalloc.xcodeproj/project.pbxproj:
  • Remove BSoftLinking.h from project files.
  • bmalloc/Logging.cpp:
  • bmalloc/Logging.h:

(bmalloc::logVMFailure): Delete.

  • bmalloc/darwin/BSoftLinking.h: Remove.
1:31 PM Changeset in webkit [269381] by Said Abou-Hallawa
  • 8 edits in trunk/Source

[GPU Process] Enable Document based ImageBitmap and OffscreenCanvas drawing to use GPU Process rendering
https://bugs.webkit.org/show_bug.cgi?id=217735

Reviewed by Simon Fraser.

Source/WebCore:

Add a new static method ImageBitmap::createImageBuffer() which takes a
ScriptExecutionContext. It gets HostWindow from ScriptExecutionContext.
If a HostWindow exists, creating the ImageBuffer will be delegated to
WebChromeClient which will create a RemoteImageBuffer in Web Process and
a RemoteImageBufferProxy in the GPU Process.

Rename all the variables of type ScriptExecutionContext to 'scriptExecutionContext'
to avoid confusing it with GraphicsContext, CanvasRenderingContext and
WebGLRenderingContext.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readImageBitmap):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::create):
(WebCore::ImageBitmap::createImageBuffer):
(WebCore::ImageBitmap::resolveWithBlankImageBuffer):
(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):

  • html/ImageBitmap.h:
  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::create):
(WebCore::OffscreenCanvas::OffscreenCanvas):
(WebCore::OffscreenCanvas::createContextWebGL):
(WebCore::OffscreenCanvas::transferToImageBitmap):
(WebCore::OffscreenCanvas::securityOrigin const):
(WebCore::OffscreenCanvas::cssValuePool):
(WebCore::OffscreenCanvas::createImageBuffer const):
(WebCore::OffscreenCanvas::takeImageBuffer const):

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

putImageData() might be called immediately after creating the ImageBuffer
and before receiving the RemoteRenderingBackend.CreateImageBufferBackend
message. We need to handle for this case and avoid asserting.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
If the size of the ImageBuffer is very big, no remote ImageBuffer can be
created. So we have to be bail out quietly in this case.

1:17 PM Changeset in webkit [269380] by ddkilzer@apple.com
  • 54 edits in trunk

WebKit should remove unused debug variant support
<https://webkit.org/b/218315>
<rdar://problem/70785369>

Reviewed by Darin Adler.

Remove support for building the debug variant since it is
currently unused. We now set default values for the
DEAD_CODE_STRIPPING, DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL and
STRIP_INSTALLED_PRODUCT variables.

Also move these values out of the Xcode project into
Base.xcconfig files using the [config=Debug] specifier so that
these overrides are next to the definitions.

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • bmalloc.xcodeproj/project.pbxproj:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:

Source/ThirdParty/ANGLE:

Additional changes in behavior are noted below.

  • Configurations/ANGLE-dynamic.xcconfig:
  • Move DEBUG_DEFINES to Base.xcconfig.
  • Set up DEAD_CODE_STRIPPING and STRIP_INSTALLED_PRODUCT the same as for other WebKit projects. Previously dead code and symbols were never stipped in Release or Production builds.
  • Configurations/ANGLE-static.xcconfig:
  • Move DEBUG_DEFINES to Base.xcconfig.
  • Configurations/Base.xcconfig:
  • Set up DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL the same as other WebKit projects. Previously Debug builds were built with -Os instead of -O0.

Source/ThirdParty/libwebrtc:

Additional changes in behavior are noted below.

  • Configurations/Base.xcconfig:
  • Add missing copyright block.
  • Set up DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL the same as other WebKit projects.
  • Configurations/DebugRelease.xcconfig:
  • Add missing copyright block.
  • Move DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL to Base.xcconfig for [config=Debug].
  • Configurations/libwebrtc.xcconfig:
  • Add missing copyright block.
  • Set up STRIP_INSTALLED_PRODUCT the same as for other WebKit projects. Previously symbols were never stripped in Release or Production builds.
  • Configurations/yasm.xcconfig:
  • Add missing copyright block.

(GCC_PREPROCESSOR_DEFINITIONS):

  • Add $(DEBUG_DEFINES) so yasm builds with -DNDEBUG in Release and Production configurations.
  • libwebrtc.xcodeproj/project.pbxproj:
  • Remove unneeded PRODUCT_NAME variables.

Source/WebCore:

  • Configurations/Base.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • PAL.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

Additional changes in behavior are noted below.

  • Configurations/Base.xcconfig:
  • Set up DEAD_CODE_STRIPPING, DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL and STRIP_INSTALLED_PRODUCT the same as other WebKit projects. Previously dead code was always stripped in Debug builds. Previously symbols were never stripped in Release or Production builds. Previously Debug builds were built with -Os instead of -O0.
  • WebInspectorUI.xcodeproj/project.pbxproj:
  • Move DEBUG_DEFINES to Base.xcconfig.

Source/WebKit:

Additional changes in behavior are noted below.

  • Configurations/Base.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
  • STRIP_INSTALLED_PRODUCT is now set to NO for Debug builds. Previously symbols were always stripped in Debug builds.

Source/WebKitLegacy:

Additional changes in behavior are noted below.

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • Move DEBUG_DEFINES to mac/Configurations/Base.xcconfig.
  • Remove useless OTHER_LDFLAGS definitions.
  • Remove unneeded BUILD_VARIANTS definition.

Source/WebKitLegacy/mac:

Additional changes in behavior are noted below.

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
  • Move definition of ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH in DEBUG_DEFINES from the Xcode project to WebKitLegacy.xcconfig.

Source/WTF:

  • Configurations/Base.xcconfig:
  • WTF.xcodeproj/project.pbxproj:

Tools:

Additional changes in behavior are noted below.

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj:
  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • Remove unneeded Xcode variables that have no effect or are already set in xcconfig files.
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • ImageDiff/ImageDiff.xcodeproj/project.pbxproj:
  • Remove redundant PRODUCT_NAME which is defined in ImageDiff.xcconfig.
  • Let Xcode have its way with the project file.
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • Scripts/check-for-exit-time-destructors:
  • Scripts/check-for-global-initializers:
  • Switch to use BUILD_VARIANTS instead of CURRENT_VARIANT. Xcode only invokes build phase scripts once (even when multiple variants are defined for a build), and it always sets CURRENT_VARIANT=normal, so using BUILD_VARIANTS is more accurate.
  • Add FIXME about building with multiple variants. These scripts are only used in engineering builds, which are only ever built with BUILD_VARIANTS=normal, so there is no urgency to handle multiple variants here.
  • Scripts/check-for-inappropriate-objc-class-names:
  • Scripts/check-for-weak-vtables-and-externals:
  • Remove unused $variants variable.
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/lldbWebKitTester.xcconfig:
  • lldb/lldbWebKitTester/lldbWebKitTester.xcodeproj/project.pbxproj:
  • Correctly define DEAD_CODE_STRIPPING, GCC_OPTIMIZATION_LEVEL and STRIP_INSTALLED_PRODUCT when buliding Debug configuration.
1:08 PM Changeset in webkit [269379] by Wenson Hsieh
  • 5 edits in trunk/Source

Add some missing header includes in media sources
https://bugs.webkit.org/show_bug.cgi?id=218568

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediarecorder/MediaRecorderProvider.h: Include WTFString.h.

Source/WebKit:

  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp: Include WebCoreArgumentCoders.h, since we need to

know how to encode a MediaPlaybackTargetContext.

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Add a missing WebCore:: namespace.
1:05 PM Changeset in webkit [269378] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix ARM64 only crash (ARM64E works) after JIT Cage
https://bugs.webkit.org/show_bug.cgi?id=218143

  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::execute):

12:49 PM Changeset in webkit [269377] by Lauro Moura
  • 6 edits in trunk/LayoutTests

[GLIB] Gardening some failures and rebaseline panner tests

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • platform/wpe/TestExpectations:
12:43 PM Changeset in webkit [269376] by Ryan Haddad
  • 1 edit
    2 copies
    3 adds
    1 delete in trunk/LayoutTests

Unreviewed test gardening, fix pre-existing failures for EWS.

  • platform/mac-catalina/fast/forms/search-size-with-decorations-expected.txt: Copied from LayoutTests/platform/mac-catalina/fast/forms/search/search-size-with-decorations-expected.txt.
  • platform/mac-mojave/fast/forms/listbox-width-change-expected.txt: Added.
  • platform/mac-mojave/fast/forms/search-rtl-expected.txt: Added.
  • platform/mac-mojave/fast/forms/search/search-size-with-decorations-expected.txt: Renamed from LayoutTests/platform/mac-catalina/fast/forms/search/search-size-with-decorations-expected.txt.
12:33 PM Changeset in webkit [269375] by Kocsen Chung
  • 18 edits
    2 adds in branches/safari-611.1.4-branch

Revert r268932. rdar://problem/70702224

10:55 AM Changeset in webkit [269374] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

[watchOS] Don't allow managed preference to enable legacy sync XHRs on watchOS
https://bugs.webkit.org/show_bug.cgi?id=218548
<rdar://problem/68417252>

Patch by Luming Yin <luming_yin@apple.com> on 2020-11-04
Reviewed by Geoffrey Garen.

The managed preference to allow legacy sync XHRs during page dismissal is not applicable to watchOS, but we
still attempt to dlopen ManagedConfiguration to get the managed configuration value. This redundant check
blocks the main thread and leads to hangs.

We now compile out this code for the watchOS platforms.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultDisallowSyncXHRDuringPageDismissalEnabled):

  • Shared/WebPreferencesDefaultValues.h:
  • Shared/ios/WebPreferencesDefaultValuesIOS.mm:
10:45 AM Changeset in webkit [269373] by Simon Fraser
  • 20 edits in trunk/Source/WebCore

A programmatic scroll should stop any rubberbanding
https://bugs.webkit.org/show_bug.cgi?id=218545

Reviewed by Antti Koivisto.

Part of rdar://problem/69599531: Scrolling on netflix.com sometimes jumps to the top.

If the scrolling thread is in the middle of a rubberband (say, when a modal overlay is
up), and then the main thread triggers a programmatic scroll to some other location,
we should stop rubberbanding immediately. If we don't, then the rubberband timer
continues to generate scrolls on the scrolling thread which get to the main thread
after it has handled the programatic scroll, thus resetting the scroll position.

This change shares some edgePinnedState() around which is used to allow rubberbanding
to continue of the programmatic scroll is to the edge which is already pinned
(commonly the top).

Also address some review comments from a previous patch.

Very hard to make tests that do things while rubberbanding is happening.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::applyLayerPositionsInternal):
(WebCore::ScrollingTree::addPendingScrollUpdate):
(WebCore::ScrollingTree::takePendingScrollUpdates):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):
(WebCore::ScrollingTreeScrollingNode::currentScrollPositionChanged):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::currentScrollPositionChanged):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::currentScrollPositionChanged):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::edgePinnedState const):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::notifyPositionChanged):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::edgePinnedState const):

  • platform/ScrollableArea.h:
  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::snapRubberBandTimerFired):
(WebCore::ScrollController::scrollPositionChanged):
(WebCore::ScrollController::stopRubberbanding):
(WebCore::ScrollController::updateRubberBandingState):
(WebCore::ScrollController::updateRubberBandingEdges):
(WebCore::ScrollController::scrolledToRubberbandingEdge const):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::edgePinnedState const):

  • platform/mock/ScrollAnimatorMock.h:
10:44 AM Changeset in webkit [269372] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

WKContentView might get KVO notifications it doesn't expect
https://bugs.webkit.org/show_bug.cgi?id=218558
<rdar://problem/71031491>

Reviewed by Tim Horton.

It's possible that code elsewhere in the system adds KVO
observation to the CALayer of a WKContentView, which is
a problem because our implementation of observeValue only
expects calls that it registered for. Fix this by passing
a context to the registration and passing the observation
call onto the superclass if it isn't the expected context.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView observeValueForKeyPath:ofObject:change:context:]):

10:27 AM Changeset in webkit [269371] by youenn@apple.com
  • 21 edits
    1 copy in trunk/Source

Make functional WebRTC encoders in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=218498

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add support for a remote encoder and remote factory that will first try to create a remote encoder and use an in process encoder otherwise.
This is similar to what was done for remote video decoders.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitEncoder.h:

(webrtc::WebKitEncodedFrameInfo::decode):
(webrtc::WebKitRTPFragmentationHeader::encode const):
(webrtc::WebKitRTPFragmentationHeader::decode):
Fix issues in routines to encode/decode frame/fragmentation headers.

  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(-[WK_RTCLocalVideoH264H265Encoder initWithCodecInfo:]):
(-[WK_RTCLocalVideoH264H265Encoder codecType]):
(webrtc::RemoteVideoEncoderFactory::RemoteVideoEncoderFactory):
(webrtc::RemoteVideoEncoderFactory::CreateVideoEncoder):
(webrtc::createWebKitEncoderFactory):
(webrtc::RemoteVideoEncoder::~RemoteVideoEncoder):
(webrtc::RemoteVideoEncoder::Release):
(webrtc::encoderVideoTaskComplete):
(webrtc::initializeLocalEncoder):
(webrtc::encodeLocalEncoderFrame):

Source/WebCore:

Exporting necessary methods and allow to override creation of encoder factory in WebKit.
Covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cv/PixelBufferConformerCV.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:

Source/WebKit:

Update code according libwebrtc changes.
Add missing support for timestamp.
Also, in case of samples that are non IO Surface and not BGRA, do a conversion to BGRA and then create an IO surface from it.
This allows supporting sending black frames generated in case of muted tracks.

Create a remote factory in LibWebRTCProvider based on whether using gpu process or not.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::encodeFrame):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::createVideoDecoder):
(WebKit::encodeVideoFrame):
(WebKit::toWebRTCCodecType):
(WebKit::LibWebRTCCodecs::createEncoder):
(WebKit::LibWebRTCCodecs::encodeFrame):
(WebKit::LibWebRTCCodecs::completedEncoding):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.mm: Added.

(WebKit::LibWebRTCCodecs::convertToBGRA):

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createEncoderFactory):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
10:17 AM Changeset in webkit [269370] by Ryan Haddad
  • 1 edit
    1 move
    1 add
    3 deletes in trunk/LayoutTests

Unreviewed test gardening, fix the test baselines for pre-Big Sur bots that I broke with r269345.

  • platform/mac-catalina/fast/forms/search/search-size-with-decorations-expected.txt: Renamed from LayoutTests/platform/mac-catalina/fast/forms/search-size-with-decorations-expected.txt.
  • platform/mac-mojave/fast/forms/listbox-width-change-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/search-rtl-expected.txt: Removed.
  • platform/mac-mojave/fast/forms/search-size-with-decorations-expected.txt: Removed.
10:17 AM Changeset in webkit [269369] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[GPU Process] Add tests for sbix and COLR fonts in canvas
https://bugs.webkit.org/show_bug.cgi?id=218346

Unreviewed test gardening.

  • platform/mac/TestExpectations: Skip these tests on Mojave since they

aren't supported and they crash under GuardMalloc.

9:44 AM Changeset in webkit [269368] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS 14 wk2] animations/unprefixed-events-mixed-with-prefixed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=218559
<rdar://problem/67034553>

Reviewed by Dean Jackson.

Increase this test's fidelity by using a longer animation-duration to reduce the likelihood that
the the animation would be run without an intermediary frame in the second iteration.

  • animations/unprefixed-events-mixed-with-prefixed.html:
9:42 AM Changeset in webkit [269367] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION (r266972): [ Mojave+ debug wk2 ] compositing/animation/repaint-after-clearing-shared-backing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217540
<rdar://problem/70157935>

Reviewed by Dean Jackson.

Improve the fidelity of this test by using a longer initial animation.

  • compositing/animation/repaint-after-clearing-shared-backing.html:
  • platform/mac-wk2/TestExpectations:
9:40 AM Changeset in webkit [269366] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[ macOS ] webanimations/accelerated-animation-easing-update-after-pause.html is a flaky ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=216481
<rdar://problem/68858100>

Reviewed by Dean Jackson.

Improve this test's fidelity by making the animation much longer (1 day) and ensuring we always wait one presentation
and one rendering update before committing any changes to the animations.

  • platform/mac/TestExpectations:
  • webanimations/accelerated-animation-easing-update-after-pause.html:
9:21 AM Changeset in webkit [269365] by dino@apple.com
  • 1 edit
    3 deletes in trunk/Source/ThirdParty/ANGLE

Add schemes for ANGLE to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=217546
rdar://69062082

Revert r269292 due to build errors on Apple internal systems.

9:21 AM Changeset in webkit [269364] by dino@apple.com
  • 6 edits in trunk/Source/WebCore

Link against the ANGLE Shared Library
https://bugs.webkit.org/show_bug.cgi?id=218539
<rdar://problem/69062211>

Revert r269344.

8:24 AM Changeset in webkit [269363] by Diego Pino Garcia
  • 29 edits
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines of failing tests that should be actually passing.

The tests removed were marked as text flaky failures. Inspecting the
last 4000 revisions for each test shows they have been actually passing
consistently. Each test had its corresponding baseline which was
outdated causing the test to fail.

  • platform/gtk/TestExpectations:
  • platform/gtk/compositing/video/video-object-fit-expected.txt:
  • platform/gtk/editing/input/option-page-up-down-expected.txt: Removed.
  • platform/gtk/editing/pasteboard/drag-drop-dead-frame-expected.txt:
  • platform/gtk/editing/selection/5057506-expected.txt:
  • platform/gtk/fast/frames/flattening/frameset-flattening-grid-expected.txt:
  • platform/gtk/fast/frames/flattening/iframe-flattening-fixed-width-expected.txt:
  • platform/gtk/fast/frames/flattening/iframe-flattening-offscreen-expected.txt:
  • platform/gtk/fast/frames/flattening/iframe-flattening-out-of-view-expected.txt:
  • platform/gtk/fast/hidpi/image-set-background-dynamic-expected.txt:
  • platform/gtk/fast/hidpi/image-set-border-image-dynamic-expected.txt:
  • platform/gtk/fast/inline-block/14498-positionForCoordinates-expected.txt:
  • platform/gtk/fast/lists/inlineBoxWrapperNullCheck-expected.txt:
  • platform/gtk/fast/multicol/scrolling-overflow-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/gtk/fast/overflow/overflow-text-hit-testing-expected.txt:
  • platform/gtk/fast/table/dynamic-caption-add-before-child-expected.txt:
  • platform/gtk/fast/table/multiple-captions-display-expected.txt:
  • platform/gtk/fast/writing-mode/Kusa-Makura-background-canvas-expected.txt:
  • platform/gtk/fast/writing-mode/japanese-ruby-horizontal-bt-expected.txt:
  • platform/gtk/fast/writing-mode/japanese-ruby-vertical-lr-expected.txt:
  • platform/gtk/fast/writing-mode/japanese-ruby-vertical-rl-expected.txt:
  • platform/gtk/http/tests/misc/acid2-expected.txt:
  • platform/gtk/http/tests/misc/acid2-pixel-expected.txt:
  • platform/gtk/mathml/presentation/roots-expected.txt:
  • platform/gtk/media/controls-without-preload-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt:
  • platform/gtk/transitions/move-after-transition-expected.txt:
8:19 AM Changeset in webkit [269362] by Karl Rackler
  • 1 edit
    6 adds in trunk/LayoutTests

Rebaseline tests for after r269345, r268958, and r268520.

Unreviewed test gardening.

  • platform/mac-catalina/fast/forms/listbox-width-change-expected.txt: Added.
  • platform/mac-catalina/fast/forms/search-rtl-expected.txt: Added.
  • platform/mac-catalina/fast/forms/search-size-with-decorations-expected.txt: Added.
  • platform/mac-mojave/fast/forms/listbox-width-change-expected.txt: Added.
  • platform/mac-mojave/fast/forms/search-rtl-expected.txt: Added.
  • platform/mac-mojave/fast/forms/search-size-with-decorations-expected.txt: Added.
8:09 AM Changeset in webkit [269361] by Chris Dumez
  • 96 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections.html fails on some platforms
https://bugs.webkit.org/show_bug.cgi?id=218527
<rdar://problem/68947198>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that floating point values are truncated to 6 decimals in the tests' output.

  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/ctor-audiobuffersource-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/adding-events-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setTargetAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurveAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-connection-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/set-target-conv-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/ctor-dynamicscompressor-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/dynamicscompressor-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-getFrequencyResponse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/distance-exponential-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/distance-inverse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/distance-linear-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-equalpower-stereo-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-azimuth-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo-expected.txt:

LayoutTests:

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:

Unskip test that should no longer be flaky.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback):
In addition to stripping arrays of floating point values from webaudio tests' output,
we now also truncate all floating point values to 6 decimals in those tests too.
This allows tests like k-rate-panner-connections.html to consistently pass on all
platforms because the floating point values that were causing failures are not in an
array.

7:56 AM Changeset in webkit [269360] by weinig@apple.com
  • 867 edits in trunk/LayoutTests

Remove experimental: and internal: prefixes from test header commands
https://bugs.webkit.org/show_bug.cgi?id=218547

Reviewed by Wenson Hsieh.

They are no longer necessary.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/lh-rlh-on-root-001.html:
  • web-platform-tests/css/css-values/lh-unit-001.html:
  • web-platform-tests/css/css-values/lh-unit-002.html:
  • web-platform-tests/css/cssom-view/inheritance.html:
  • web-platform-tests/css/cssom-view/parsing/scroll-behavior-computed.html:
  • web-platform-tests/css/cssom-view/parsing/scroll-behavior-valid.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-default-css.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-element.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html:
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/content-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html:
  • web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html:
  • web-platform-tests/media-source/mediasource-changetype-play.html:
  • web-platform-tests/media-source/mediasource-changetype.html:
  • web-platform-tests/requestidlecallback/basic.html:
  • web-platform-tests/requestidlecallback/callback-exception.html:
  • web-platform-tests/requestidlecallback/callback-idle-periods.html:
  • web-platform-tests/requestidlecallback/callback-iframe.html:
  • web-platform-tests/requestidlecallback/callback-invoked.html:
  • web-platform-tests/requestidlecallback/callback-multiple-calls.html:
  • web-platform-tests/requestidlecallback/callback-removed-frame.html:
  • web-platform-tests/requestidlecallback/callback-suspended.html:
  • web-platform-tests/requestidlecallback/callback-timeout-when-busy.html:
  • web-platform-tests/requestidlecallback/callback-timeout.html:
  • web-platform-tests/requestidlecallback/callback-xhr-sync.html:
  • web-platform-tests/requestidlecallback/cancel-invoked.html:
  • web-platform-tests/requestidlecallback/idlharness.window.html:
  • web-platform-tests/resize-observer/eventloop.html:
  • web-platform-tests/resize-observer/idlharness.window.html:
  • web-platform-tests/resize-observer/notify.html:
  • web-platform-tests/resize-observer/observe.html:
  • web-platform-tests/resize-observer/svg.html:

LayoutTests:

  • accessibility/ios-simulator/scroll-in-overflow-div.html:
  • compositing/backing/foreground-layer-no-paints-into-ancestor-expected.html:
  • compositing/backing/foreground-layer-no-paints-into-ancestor.html:
  • compositing/clipping/border-radius-async-overflow-clipping-layer.html:
  • compositing/clipping/border-radius-async-overflow-non-stacking.html:
  • compositing/clipping/border-radius-async-overflow-stacking.html:
  • compositing/clipping/nested-overflow-with-border-radius-expected.html:
  • compositing/clipping/nested-overflow-with-border-radius.html:
  • compositing/geometry/fixed-inside-overflow-scroll.html:
  • compositing/geometry/rtl-overflow-scroll-expected.html:
  • compositing/geometry/rtl-overflow-scroll.html:
  • compositing/ios/overflow-scroll-touch-tiles.html:
  • compositing/ios/overflow-scroll-update-overlap.html:
  • compositing/ios/rtl-overflow-scrolling-2.html:
  • compositing/layer-creation/absolute-in-async-overflow-scroll.html:
  • compositing/layer-creation/clipping-scope/nested-scroller-overlap.html:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller.html:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-stacking-context-scroller.html:
  • compositing/layer-creation/clipping-scope/scroller-with-negative-z-children.html:
  • compositing/layer-creation/clipping-scope/shared-layers-in-scroller.html:
  • compositing/layer-creation/overlap-in-scroller-expected.html:
  • compositing/layer-creation/overlap-in-scroller.html:
  • compositing/overflow/absolute-in-overflow-expected.html:
  • compositing/overflow/absolute-in-overflow.html:
  • compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
  • compositing/overflow/iframe-inside-overflow-clipping.html:
  • compositing/overflow/nested-scrolling.html:
  • compositing/overflow/overflow-auto-with-touch-no-overflow.html:
  • compositing/overflow/overflow-auto-with-touch-toggle.html:
  • compositing/overflow/overflow-auto-with-touch.html:
  • compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html:
  • compositing/overflow/overflow-hidden-with-touch.html:
  • compositing/overflow/overflow-overlay-with-touch-no-overflow.html:
  • compositing/overflow/overflow-overlay-with-touch.html:
  • compositing/overflow/overflow-scroll-with-touch-no-overflow.html:
  • compositing/overflow/overflow-visible-with-touch.html:
  • compositing/overflow/remove-overflow-crash.html:
  • compositing/overflow/rtl-scrollbar-layer-positioning.html:
  • compositing/overflow/scrolling-content-clip-to-viewport.html:
  • compositing/overflow/scrolling-without-painting.html:
  • compositing/overflow/should-not-override-z-index-for-element-with-non-auto-z-index-and-overflow-scroll-and-touch.html:
  • compositing/overflow/stacking-context-composited-scroller-with-foreground-paint-phases.html:
  • compositing/overflow/subpixel-overflow.html:
  • compositing/overflow/textarea-scroll-touch.html:
  • compositing/overflow/updating-scrolling-content.html:
  • compositing/repaint/compositing-toggle-in-overflow-scroll-repaint.html:
  • compositing/repaint/scroller-with-foreground-layer-repaints.html:
  • compositing/rtl/rtl-overflow-scrolling.html:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
  • compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child-expected.html:
  • compositing/scrolling/async-overflow-scrolling/become-non-scrollable-with-child.html:
  • compositing/scrolling/async-overflow-scrolling/become-non-scrollable.html:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll.html:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested.html:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow.html:
  • compositing/scrolling/async-overflow-scrolling/foreground-layer-paint-phase-expected.html:
  • compositing/scrolling/async-overflow-scrolling/foreground-layer-paint-phase.html:
  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller.html:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden.html:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible.html:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer.html:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped.html:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer.html:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow.html:
  • compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles-expected.html:
  • compositing/scrolling/async-overflow-scrolling/mac/overflow-in-flex-empty-tiles.html:
  • compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller-expected.html:
  • compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller.html:
  • compositing/scrolling/async-overflow-scrolling/nested-scrollers-backing-attachment.html:
  • compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling-expected.html:
  • compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling.html:
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-dynamic.html:
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-inside-hidden.html:
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-nested.html:
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar.html:
  • compositing/scrolling/async-overflow-scrolling/position-inside-rtl-overflow.html:
  • compositing/scrolling/async-overflow-scrolling/toggle-visibility-on-scroller.html:
  • compositing/scrolling/async-overflow-scrolling/transform-change-scrollbar-position.html:
  • compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers.html:
  • compositing/scrolling/fixed-inside-scroll-expected.html:
  • compositing/scrolling/fixed-inside-scroll.html:
  • compositing/scrolling/overflow-scrolling-layers-are-self-painting.html:
  • compositing/scrolling/touch-scroll-to-clip.html:
  • compositing/scrolling/touch-scrolling-repaint-expected.html:
  • compositing/scrolling/touch-scrolling-repaint-spans-expected.html:
  • compositing/scrolling/touch-scrolling-repaint-spans.html:
  • compositing/scrolling/touch-scrolling-repaint.html:
  • compositing/shared-backing/clipping-and-shared-backing-expected.html:
  • compositing/shared-backing/clipping-and-shared-backing.html:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller.html:
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller.html:
  • compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow.html:
  • compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html:
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping.html:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping.html:
  • compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll.html:
  • compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll-expected.html:
  • compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll.html:
  • compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content.html:
  • compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip-expected.html:
  • compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip.html:
  • compositing/shared-backing/overflow-scroll/shared-layer-clipping-expected.html:
  • compositing/shared-backing/overflow-scroll/shared-layer-clipping.html:
  • compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds.html:
  • compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking.html:
  • compositing/shared-backing/overflow-scroll/shared-layer-repaint.html:
  • compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable-expected.html:
  • compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable.html:
  • compositing/shared-backing/repaint-into-shared-backing-expected.html:
  • compositing/shared-backing/repaint-into-shared-backing.html:
  • compositing/shared-backing/sharing-cached-clip-rects.html:
  • compositing/tiling/perspective-on-scroller-tile-coverage.html:
  • compositing/transforms/perspective-with-scrolling-expected.html:
  • compositing/transforms/perspective-with-scrolling.html:
  • contact-picker/contacts-interfaces.html:
  • contact-picker/contacts-manager-get-properties.html:
  • contact-picker/contacts-select-invalid-properties-and-options.html:
  • contact-picker/contacts-select-requires-user-gesture.html:
  • contact-picker/contacts-select-subframe.html:
  • css-custom-properties-api/crash.html:
  • css-custom-properties-api/cycles.html:
  • css-custom-properties-api/inherits.html:
  • css-custom-properties-api/initialValueJS.html:
  • css-custom-properties-api/inline.html:
  • css-custom-properties-api/length.html:
  • css-custom-properties-api/length2.html:
  • css-custom-properties-api/registerProperty.html:
  • css-typedom/attributeStyleMap.html:
  • css-typedom/sameobject.html:
  • css3/scroll-snap/nested-elements.html:
  • css3/scroll-snap/scroll-snap-children-with-overflow.html:
  • css3/scroll-snap/scroll-snap-offsets-mixed-rtl.html:
  • css3/scroll-snap/scroll-snap-offsets-rtl.html:
  • css3/scroll-snap/scroll-snap-offsets.html:
  • css3/scroll-snap/scroll-snap-positions.html:
  • css3/scroll-snap/scroll-snap-programmatic-overflow-scroll.html:
  • css3/scroll-snap/scroll-snap-style-changed-align.html:
  • editing/async-clipboard/clipboard-change-data-while-getting-type.html:
  • editing/async-clipboard/clipboard-change-data-while-reading.html:
  • editing/async-clipboard/clipboard-change-data-while-writing.html:
  • editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html:
  • editing/async-clipboard/clipboard-get-type-with-old-items.html:
  • editing/async-clipboard/clipboard-interfaces.html:
  • editing/async-clipboard/clipboard-item-basic.html:
  • editing/async-clipboard/clipboard-item-get-type-basic.html:
  • editing/async-clipboard/clipboard-read-basic.html:
  • editing/async-clipboard/clipboard-read-text-from-platform.html:
  • editing/async-clipboard/clipboard-read-text-same-origin.html:
  • editing/async-clipboard/clipboard-read-text.html:
  • editing/async-clipboard/clipboard-read-while-pasting.html:
  • editing/async-clipboard/clipboard-read-write-images.html:
  • editing/async-clipboard/clipboard-wrapper-stays-alive.html:
  • editing/async-clipboard/clipboard-write-basic.html:
  • editing/async-clipboard/clipboard-write-in-copy-event-handler-in-subframe.html:
  • editing/async-clipboard/clipboard-write-in-copy-event-handler.html:
  • editing/async-clipboard/clipboard-write-items-twice.html:
  • editing/async-clipboard/clipboard-write-text-requires-user-gesture.html:
  • editing/async-clipboard/clipboard-write-text.html:
  • editing/async-clipboard/sanitize-when-reading-markup.html:
  • editing/async-clipboard/sanitize-when-writing-image.html:
  • editing/selection/expando.html:
  • editing/selection/ios/update-selection-after-iframe-scroll.html:
  • editing/selection/ios/update-selection-after-overflow-scroll.html:
  • editing/selection/overflow-scroll-while-selecting-text.html:
  • editing/undo-manager/undo-manager-add-item-exceptions.html:
  • editing/undo-manager/undo-manager-add-item.html:
  • editing/undo-manager/undo-manager-delete-stale-undo-items.html:
  • editing/undo-manager/undo-manager-interfaces.html:
  • editing/undo-manager/undo-manager-item-labels.html:
  • editing/undo-manager/undo-manager-keeps-wrapper-alive.html:
  • editing/undo-manager/undo-manager-undo-redo-after-garbage-collection.html:
  • fast/canvas/webgl/hide-some-renderer-info.html:
  • fast/css-custom-paint/animate-repaint.html:
  • fast/css-custom-paint/animate.html:
  • fast/css-custom-paint/arguments.html:
  • fast/css-custom-paint/basic.html:
  • fast/css-custom-paint/constructor.html:
  • fast/css-custom-paint/delay-repaint.html:
  • fast/css-custom-paint/delay.html:
  • fast/css-custom-paint/image.html:
  • fast/css-custom-paint/leaks.html:
  • fast/css-custom-paint/multiple-worklets-isolation.html:
  • fast/css-custom-paint/multiple-worklets.html:
  • fast/css-custom-paint/properties-expected.html:
  • fast/css-custom-paint/properties.html:
  • fast/css-custom-paint/registerPaintBindings-expected.html:
  • fast/css-custom-paint/registerPaintBindings.html:
  • fast/css-custom-paint/resources/leaks-frame.html:
  • fast/css-custom-paint/simple-hidpi.html:
  • fast/css-custom-paint/worklet-expected.html:
  • fast/css-custom-paint/worklet.html:
  • fast/events/drag-smooth-scroll-element.html:
  • fast/events/ios/ipad/fast-click-always-mobile-content-mode.html:
  • fast/events/ios/ipad/fast-click-not-always.html:
  • fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html:
  • fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html:
  • fast/events/scroll-subframe-in-rendering-update.html:
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html:
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html:
  • fast/events/touch/ios/drag-block-without-overflow-scroll.html:
  • fast/events/touch/ios/mouse-events-dispatch-with-touch.html:
  • fast/events/touch/ios/prevent-default-on-touch-start-with-slow-event-listener.html:
  • fast/events/touch/ios/resources/finish-test-after-scrolling-with-touch-event-handlers.html:
  • fast/events/touch/ios/scroll-on-touch-start-with-slow-event-listener.html:
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html:
  • fast/layers/overflow-scroll-self-painting-expected.html:
  • fast/layers/overflow-scroll-self-painting.html:
  • fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling-expected.html:
  • fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling.html:
  • fast/layoutformattingcontext/absolute-positioned-simple-table-expected.html:
  • fast/layoutformattingcontext/absolute-positioned-simple-table.html:
  • fast/layoutformattingcontext/absolute-positioned-simple-table2-expected.html:
  • fast/layoutformattingcontext/absolute-positioned-simple-table2.html:
  • fast/layoutformattingcontext/absolute-positioned-simple-table3-expected.html:
  • fast/layoutformattingcontext/absolute-positioned-simple-table3.html:
  • fast/layoutformattingcontext/anonymous-inline-container-simple-expected.html:
  • fast/layoutformattingcontext/anonymous-inline-container-simple.html:
  • fast/layoutformattingcontext/block-only/abs-pos-with-border-padding-and-float-child-expected.html:
  • fast/layoutformattingcontext/block-only/abs-pos-with-border-padding-and-float-child.html:
  • fast/layoutformattingcontext/block-only/absolute-auto-with-sibling-margin-bottom.html:
  • fast/layoutformattingcontext/block-only/absolute-height-stretch.html:
  • fast/layoutformattingcontext/block-only/absolute-left-auto.html:
  • fast/layoutformattingcontext/block-only/absolute-left-right-top-bottom-auto.html:
  • fast/layoutformattingcontext/block-only/absolute-nested.html:
  • fast/layoutformattingcontext/block-only/absolute-nested2.html:
  • fast/layoutformattingcontext/block-only/absolute-position-left-right-margin.html:
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-height.html:
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-width.html:
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html:
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html:
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple-expected.html:
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple.html:
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple2-expected.html:
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple2.html:
  • fast/layoutformattingcontext/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html:
  • fast/layoutformattingcontext/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html:
  • fast/layoutformattingcontext/block-only/absolute-simple.html:
  • fast/layoutformattingcontext/block-only/absolute-width-shrink-to-fit.html:
  • fast/layoutformattingcontext/block-only/absolute-width-stretch.html:
  • fast/layoutformattingcontext/block-only/absolute-with-static-block-position-nested.html:
  • fast/layoutformattingcontext/block-only/almost-intruding-left-float-simple.html:
  • fast/layoutformattingcontext/block-only/block-replaced-with-vertical-margins-expected.html:
  • fast/layoutformattingcontext/block-only/block-replaced-with-vertical-margins.html:
  • fast/layoutformattingcontext/block-only/block-root-top-should-start-from-float-top-expected.html:
  • fast/layoutformattingcontext/block-only/block-root-top-should-start-from-float-top.html:
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk.html:
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk2.html:
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk.html:
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk2.html:
  • fast/layoutformattingcontext/block-only/border-simple.html:
  • fast/layoutformattingcontext/block-only/box-sizing-inflow-out-of-flow-simple.html:
  • fast/layoutformattingcontext/block-only/collapsed-margin-with-min-height.html:
  • fast/layoutformattingcontext/block-only/collapsed-through-siblings.html:
  • fast/layoutformattingcontext/block-only/collapsed-through-with-parent.html:
  • fast/layoutformattingcontext/block-only/fixed-nested.html:
  • fast/layoutformattingcontext/block-only/float-and-siblings-with-margins.html:
  • fast/layoutformattingcontext/block-only/float-avoider-multiple-roots.html:
  • fast/layoutformattingcontext/block-only/float-avoider-simple-left.html:
  • fast/layoutformattingcontext/block-only/float-avoider-simple-right.html:
  • fast/layoutformattingcontext/block-only/float-avoider-with-margins.html:
  • fast/layoutformattingcontext/block-only/float-clear-with-auto-width-expected.html:
  • fast/layoutformattingcontext/block-only/float-clear-with-auto-width.html:
  • fast/layoutformattingcontext/block-only/float-left-when-container-has-padding-margin.html:
  • fast/layoutformattingcontext/block-only/float-min-max-height.html:
  • fast/layoutformattingcontext/block-only/float-min-max-width.html:
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html:
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin.html:
  • fast/layoutformattingcontext/block-only/floating-box-clear-both-simple.html:
  • fast/layoutformattingcontext/block-only/floating-box-clear-right-simple.html:
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-with-top-offset.html:
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple.html:
  • fast/layoutformattingcontext/block-only/floating-box-right-simple.html:
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-siblings.html:
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-simple.html:
  • fast/layoutformattingcontext/block-only/floating-box-with-new-formatting-context.html:
  • fast/layoutformattingcontext/block-only/floating-box-with-relative-positioned-sibling.html:
  • fast/layoutformattingcontext/block-only/floating-left-and-right-with-clearance.html:
  • fast/layoutformattingcontext/block-only/floating-left-right-simple.html:
  • fast/layoutformattingcontext/block-only/floating-left-right-with-all-margins.html:
  • fast/layoutformattingcontext/block-only/floating-lefts-and-rights-simple.html:
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-in-body.html:
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-multiple-lines.html:
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts.html:
  • fast/layoutformattingcontext/block-only/floating-with-new-block-formatting-context.html:
  • fast/layoutformattingcontext/block-only/floats-and-block-formatting-roots-expected.html:
  • fast/layoutformattingcontext/block-only/floats-and-block-formatting-roots.html:
  • fast/layoutformattingcontext/block-only/inflow-min-max-height.html:
  • fast/layoutformattingcontext/block-only/inflow-min-max-width.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-bottom.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-nested.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-first-last-are-floating.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-simple.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-top-nested.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-when-child-has-padding-border.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context2.html:
  • fast/layoutformattingcontext/block-only/margin-collapse-with-clearance.html:
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-out-of-flow.html:
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing.html:
  • fast/layoutformattingcontext/block-only/margin-propagation-simple-content-height.html:
  • fast/layoutformattingcontext/block-only/margin-sibling-collapse-propagated.html:
  • fast/layoutformattingcontext/block-only/margin-simple.html:
  • fast/layoutformattingcontext/block-only/min-max-and-preferred-width-simple-expected.html:
  • fast/layoutformattingcontext/block-only/min-max-and-preferred-width-simple.html:
  • fast/layoutformattingcontext/block-only/min-max-height-percentage.html:
  • fast/layoutformattingcontext/block-only/negative-margin-simple.html:
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-auto-margins.html:
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-margins.html:
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html:
  • fast/layoutformattingcontext/block-only/out-of-flow-is-never-float-box-expected.html:
  • fast/layoutformattingcontext/block-only/out-of-flow-is-never-float-box.html:
  • fast/layoutformattingcontext/block-only/out-of-flow-with-containing-block-border-padding.html:
  • fast/layoutformattingcontext/block-only/padding-nested.html:
  • fast/layoutformattingcontext/block-only/padding-simple.html:
  • fast/layoutformattingcontext/block-only/relative-auto-with-parent-offset.html:
  • fast/layoutformattingcontext/block-only/relative-auto.html:
  • fast/layoutformattingcontext/block-only/relative-bottom.html:
  • fast/layoutformattingcontext/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html:
  • fast/layoutformattingcontext/block-only/relative-right.html:
  • fast/layoutformattingcontext/block-only/relative-siblings.html:
  • fast/layoutformattingcontext/block-only/relative-simple.html:
  • fast/layoutformattingcontext/block-only/replaced-as-inline-block-simple-expected.html:
  • fast/layoutformattingcontext/block-only/replaced-as-inline-block-simple.html:
  • fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple-expected.html:
  • fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple.html:
  • fast/layoutformattingcontext/br-and-wbr-simple-expected.html:
  • fast/layoutformattingcontext/br-and-wbr-simple.html:
  • fast/layoutformattingcontext/br-in-inline-content-simple-expected.html:
  • fast/layoutformattingcontext/br-in-inline-content-simple.html:
  • fast/layoutformattingcontext/center-alignment-with-block-content-simple-expected.html:
  • fast/layoutformattingcontext/center-alignment-with-block-content-simple.html:
  • fast/layoutformattingcontext/empty-block-level-box-with-clearance-expected.html:
  • fast/layoutformattingcontext/empty-block-level-box-with-clearance.html:
  • fast/layoutformattingcontext/empty-table-box-expected.html:
  • fast/layoutformattingcontext/empty-table-box.html:
  • fast/layoutformattingcontext/empty-table-with-specified-height-quirk-simple-expected.html:
  • fast/layoutformattingcontext/empty-table-with-specified-height-quirk-simple.html:
  • fast/layoutformattingcontext/empty-table-with-specified-height-standards-simple-expected.html:
  • fast/layoutformattingcontext/empty-table-with-specified-height-standards-simple.html:
  • fast/layoutformattingcontext/fit-content-width-simple-expected.html:
  • fast/layoutformattingcontext/fit-content-width-simple.html:
  • fast/layoutformattingcontext/flex-box-simple.html:
  • fast/layoutformattingcontext/float-and-br-inline-content-only-expected.html:
  • fast/layoutformattingcontext/float-and-br-inline-content-only.html:
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space-expected.html:
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space.html:
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space2-expected.html:
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space2.html:
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space3-expected.html:
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space3.html:
  • fast/layoutformattingcontext/float-avoider-with-inline-content-expected.html:
  • fast/layoutformattingcontext/float-avoider-with-inline-content.html:
  • fast/layoutformattingcontext/float-avoiding-br-last-line-expected.html:
  • fast/layoutformattingcontext/float-avoiding-br-last-line.html:
  • fast/layoutformattingcontext/float-avoiding-br-simple-expected.html:
  • fast/layoutformattingcontext/float-avoiding-br-simple.html:
  • fast/layoutformattingcontext/float-in-inline-context-simple-expected.html:
  • fast/layoutformattingcontext/float-in-inline-context-simple.html:
  • fast/layoutformattingcontext/float-inside-table-cell-simple-expected.html:
  • fast/layoutformattingcontext/float-inside-table-cell-simple.html:
  • fast/layoutformattingcontext/float-with-clear-simple-expected.html:
  • fast/layoutformattingcontext/float-with-clear-simple.html:
  • fast/layoutformattingcontext/floats-shrinking-line-simple-expected.html:
  • fast/layoutformattingcontext/floats-shrinking-line-simple.html:
  • fast/layoutformattingcontext/flow-integration-basic-paint.html:
  • fast/layoutformattingcontext/flow-integration-basic.html:
  • fast/layoutformattingcontext/height-percentage-quirk-to-icb-expected.html:
  • fast/layoutformattingcontext/height-percentage-quirk-to-icb.html:
  • fast/layoutformattingcontext/height-precentage-with-anonymous-wrapper-expected.html:
  • fast/layoutformattingcontext/height-precentage-with-anonymous-wrapper.html:
  • fast/layoutformattingcontext/horizontal-sizing-with-trailing-letter-spacing-expected.html:
  • fast/layoutformattingcontext/horizontal-sizing-with-trailing-letter-spacing.html:
  • fast/layoutformattingcontext/html-is-absolute-positioned-expected.html:
  • fast/layoutformattingcontext/html-is-absolute-positioned.html:
  • fast/layoutformattingcontext/inlin-box-content-fits-but-the-box-does-not-expected.html:
  • fast/layoutformattingcontext/inlin-box-content-fits-but-the-box-does-not.html:
  • fast/layoutformattingcontext/inline-box-overlaps-multiple-lines-expected.html:
  • fast/layoutformattingcontext/inline-box-overlaps-multiple-lines.html:
  • fast/layoutformattingcontext/inline-float-simple-expected.html:
  • fast/layoutformattingcontext/inline-float-simple.html:
  • fast/layoutformattingcontext/inline-max-width-height-simple-expected.html:
  • fast/layoutformattingcontext/inline-max-width-height-simple.html:
  • fast/layoutformattingcontext/inline-text-outside-of-inline-container-simple-expected.html:
  • fast/layoutformattingcontext/inline-text-outside-of-inline-container-simple.html:
  • fast/layoutformattingcontext/intrusive-floats-takes-entire-horizontal-space-expected.html:
  • fast/layoutformattingcontext/intrusive-floats-takes-entire-horizontal-space.html:
  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container-expected.html:
  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html:
  • fast/layoutformattingcontext/min-max-content-width-simple-expected.html:
  • fast/layoutformattingcontext/min-max-content-width-simple.html:
  • fast/layoutformattingcontext/min-max-content-width-simple2-expected.html:
  • fast/layoutformattingcontext/min-max-content-width-simple2.html:
  • fast/layoutformattingcontext/min-max-content-width-with-floats-simple-expected.html:
  • fast/layoutformattingcontext/min-max-content-width-with-floats-simple.html:
  • fast/layoutformattingcontext/min-max-content-width-with-nested-floats-simple-expected.html:
  • fast/layoutformattingcontext/min-max-content-width-with-nested-floats-simple.html:
  • fast/layoutformattingcontext/out-of-flow-html-and-body-stretches-to-viewport.html:
  • fast/layoutformattingcontext/out-of-flow-positioned-line-breaks.html:
  • fast/layoutformattingcontext/out-of-flow-with-non-fixed-height-simple-expected.html:
  • fast/layoutformattingcontext/out-of-flow-with-non-fixed-height-simple.html:
  • fast/layoutformattingcontext/quirk-margin-not-collapse-when-floating-expected.html:
  • fast/layoutformattingcontext/quirk-margin-not-collapse-when-floating.html:
  • fast/layoutformattingcontext/replaced-and-trailing-trimmable-content-expected.html:
  • fast/layoutformattingcontext/replaced-and-trailing-trimmable-content.html:
  • fast/layoutformattingcontext/replaced-box-with-margin-on-baseline-expected.html:
  • fast/layoutformattingcontext/replaced-box-with-margin-on-baseline.html:
  • fast/layoutformattingcontext/run-expansion-extends-line-content-width-expected.html:
  • fast/layoutformattingcontext/run-expansion-extends-line-content-width.html:
  • fast/layoutformattingcontext/simple-absolute-positioned-inline-element-expected.html:
  • fast/layoutformattingcontext/simple-absolute-positioned-inline-element.html:
  • fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height-expected.html:
  • fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height.html:
  • fast/layoutformattingcontext/simple-inline-block-expected.html:
  • fast/layoutformattingcontext/simple-inline-block.html:
  • fast/layoutformattingcontext/simple-table-with-empty-td.html:
  • fast/layoutformattingcontext/subframe-with-display-none-html-expected.html:
  • fast/layoutformattingcontext/subframe-with-display-none-html.html:
  • fast/layoutformattingcontext/table-basic-row-baseline-align.html:
  • fast/layoutformattingcontext/table-basic-row-baseline-with-nested-table.html:
  • fast/layoutformattingcontext/table-basic-row-vertical-align-baseline.html:
  • fast/layoutformattingcontext/table-cell-baseline-offset-simple-expected.html:
  • fast/layoutformattingcontext/table-cell-baseline-offset-simple.html:
  • fast/layoutformattingcontext/table-cell-baseline-offset-simple2-expected.html:
  • fast/layoutformattingcontext/table-cell-baseline-offset-simple2.html:
  • fast/layoutformattingcontext/table-cell-height-middle-align-simple-expected.html:
  • fast/layoutformattingcontext/table-cell-height-middle-align-simple.html:
  • fast/layoutformattingcontext/table-cell-vertical-alignment-simple-expected.html:
  • fast/layoutformattingcontext/table-cell-vertical-alignment-simple.html:
  • fast/layoutformattingcontext/table-colspan-simple-expected.html:
  • fast/layoutformattingcontext/table-colspan-simple.html:
  • fast/layoutformattingcontext/table-fixed-row-height-simple-expected.html:
  • fast/layoutformattingcontext/table-fixed-row-height-simple.html:
  • fast/layoutformattingcontext/table-fixed-width-colspans.html:
  • fast/layoutformattingcontext/table-fixed-width-with-max-distribution.html:
  • fast/layoutformattingcontext/table-flex-width-border-collapse.html:
  • fast/layoutformattingcontext/table-flex-width-colspans.html:
  • fast/layoutformattingcontext/table-min-max-flex-distribution-simple-expected.html:
  • fast/layoutformattingcontext/table-min-max-flex-distribution-simple.html:
  • fast/layoutformattingcontext/table-min-max-width-empty-content-simple-expected.html:
  • fast/layoutformattingcontext/table-min-max-width-empty-content-simple.html:
  • fast/layoutformattingcontext/table-min-max-width-simple-expected.html:
  • fast/layoutformattingcontext/table-min-max-width-simple.html:
  • fast/layoutformattingcontext/table-missing-cells-simple-expected.html:
  • fast/layoutformattingcontext/table-missing-cells-simple.html:
  • fast/layoutformattingcontext/table-quirk-vertical-margin-simple-expected.html:
  • fast/layoutformattingcontext/table-quirk-vertical-margin-simple.html:
  • fast/layoutformattingcontext/table-simple-border-collapse-expected.html:
  • fast/layoutformattingcontext/table-simple-border-collapse-with-padding-expected.html:
  • fast/layoutformattingcontext/table-simple-border-collapse-with-padding.html:
  • fast/layoutformattingcontext/table-simple-border-collapse.html:
  • fast/layoutformattingcontext/table-simple-border-collapse2-expected.html:
  • fast/layoutformattingcontext/table-simple-border-collapse2.html:
  • fast/layoutformattingcontext/table-simple-border-collapse3-expected.html:
  • fast/layoutformattingcontext/table-simple-border-collapse3.html:
  • fast/layoutformattingcontext/table-simple-collapsed-row-border-expected.html:
  • fast/layoutformattingcontext/table-simple-collapsed-row-border.html:
  • fast/layoutformattingcontext/table-simple-collapsed-row-border2-expected.html:
  • fast/layoutformattingcontext/table-simple-collapsed-row-border2.html:
  • fast/layoutformattingcontext/table-simple-collapsed-tbody-border-expected.html:
  • fast/layoutformattingcontext/table-simple-collapsed-tbody-border.html:
  • fast/layoutformattingcontext/table-simple-fixed-width-with-wide-content-expected.html:
  • fast/layoutformattingcontext/table-simple-fixed-width-with-wide-content.html:
  • fast/layoutformattingcontext/table-simple-multiple-sections-expected.html:
  • fast/layoutformattingcontext/table-simple-multiple-sections-with-border-spacing-and-collapse-expected.html:
  • fast/layoutformattingcontext/table-simple-multiple-sections-with-border-spacing-and-collapse.html:
  • fast/layoutformattingcontext/table-simple-multiple-sections.html:
  • fast/layoutformattingcontext/table-simple-row-border-expected.html:
  • fast/layoutformattingcontext/table-simple-row-border.html:
  • fast/layoutformattingcontext/table-simple-rowspan-with-spacing-expected.html:
  • fast/layoutformattingcontext/table-simple-rowspan-with-spacing.html:
  • fast/layoutformattingcontext/table-simple-tall-cell-content-with-fixed-height-expected.html:
  • fast/layoutformattingcontext/table-simple-tall-cell-content-with-fixed-height.html:
  • fast/layoutformattingcontext/table-simple-thead-border-ignore-expected.html:
  • fast/layoutformattingcontext/table-simple-thead-border-ignore.html:
  • fast/layoutformattingcontext/table-simple-with-border.html:
  • fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content.html:
  • fast/layoutformattingcontext/table-simple-with-padding.html:
  • fast/layoutformattingcontext/table-with-column-spanner-first-row.html:
  • fast/layoutformattingcontext/table-with-margin-content-simple-expected.html:
  • fast/layoutformattingcontext/table-with-margin-content-simple.html:
  • fast/layoutformattingcontext/table-with-margin-simple-expected.html:
  • fast/layoutformattingcontext/table-with-margin-simple.html:
  • fast/layoutformattingcontext/table-with-padding-and-border-simple-expected.html:
  • fast/layoutformattingcontext/table-with-padding-and-border-simple.html:
  • fast/layoutformattingcontext/vertical-align-bottom-nested-expected.html:
  • fast/layoutformattingcontext/vertical-align-bottom-nested.html:
  • fast/layoutformattingcontext/vertical-align-middle-nested-expected.html:
  • fast/layoutformattingcontext/vertical-align-middle-nested.html:
  • fast/layoutformattingcontext/vertical-align-middle-simple-expected.html:
  • fast/layoutformattingcontext/vertical-align-middle-simple.html:
  • fast/layoutformattingcontext/vertical-align-top-nested-expected.html:
  • fast/layoutformattingcontext/vertical-align-top-nested.html:
  • fast/layoutformattingcontext/wbr-simple-expected.html:
  • fast/layoutformattingcontext/wbr-simple.html:
  • fast/scrolling/ios/adjust-scroll-snap-during-gesture.html:
  • fast/scrolling/ios/body-overflow-hidden-expected.html:
  • fast/scrolling/ios/body-overflow-hidden-frame-expected.html:
  • fast/scrolling/ios/body-overflow-hidden-frame.html:
  • fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html:
  • fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-1.html:
  • fast/scrolling/ios/body-overflow-hidden-height-100-percent-zoomed-2.html:
  • fast/scrolling/ios/body-overflow-hidden-keyboard-expected.html:
  • fast/scrolling/ios/body-overflow-hidden-keyboard.html:
  • fast/scrolling/ios/body-overflow-hidden.html:
  • fast/scrolling/ios/border-radius-event-region.html:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested.html:
  • fast/scrolling/ios/change-scrollability-on-content-resize.html:
  • fast/scrolling/ios/click-events-after-long-press-during-momentum-scroll-in-overflow.html:
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html:
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html:
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html:
  • fast/scrolling/ios/clip-path-hit-test.html:
  • fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
  • fast/scrolling/ios/event-region-float.html:
  • fast/scrolling/ios/event-region-pointer-events.html:
  • fast/scrolling/ios/event-region-scale-transform-shared.html:
  • fast/scrolling/ios/event-region-scrolled-contents-layer.html:
  • fast/scrolling/ios/event-region-translate-transform-shared.html:
  • fast/scrolling/ios/event-region-visibility-hidden.html:
  • fast/scrolling/ios/fixed-inside-overflow-inside-iframe-expected.html:
  • fast/scrolling/ios/fixed-inside-overflow-inside-iframe.html:
  • fast/scrolling/ios/frame-scrolling-no-expected.html:
  • fast/scrolling/ios/frame-scrolling-no.html:
  • fast/scrolling/ios/iframe-inside-overflow-clipping.html:
  • fast/scrolling/ios/non-invertible-transformed-over-scroller.html:
  • fast/scrolling/ios/non-invertible-transformed-scroller-ancestor.html:
  • fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor.html:
  • fast/scrolling/ios/overflow-scroll-inherited.html:
  • fast/scrolling/ios/overflow-scroll-overlap-2.html:
  • fast/scrolling/ios/overflow-scroll-overlap-3.html:
  • fast/scrolling/ios/overflow-scroll-overlap-4.html:
  • fast/scrolling/ios/overflow-scroll-overlap-5.html:
  • fast/scrolling/ios/overflow-scroll-overlap-6.html:
  • fast/scrolling/ios/overflow-scroll-overlap.html:
  • fast/scrolling/ios/overflow-scroll-touch.html:
  • fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html:
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html:
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip.html:
  • fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking-expected.html:
  • fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking.html:
  • fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking-expected.html:
  • fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html:
  • fast/scrolling/ios/programmatic-scroll-element-crash.html:
  • fast/scrolling/ios/programmatic-scroll-via-scrollIntoView-inside-iframe-should-clamp-top.html:
  • fast/scrolling/ios/reconcile-layer-position-recursive.html:
  • fast/scrolling/ios/remove-overflow-crash.html:
  • fast/scrolling/ios/reveal-focused-element-right-above-keyboard-on-ipad.html:
  • fast/scrolling/ios/scroll-into-view-with-top-content-inset.html:
  • fast/scrolling/ios/scrollbar-hiding-iframes.html:
  • fast/scrolling/ios/scrollbar-hiding.html:
  • fast/scrolling/ios/scrolling-content-clip-to-viewport.html:
  • fast/scrolling/ios/scrollview-adjusts-to-keyboard-insets.html:
  • fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html:
  • fast/scrolling/ios/table-cell-touch-scrolling.html:
  • fast/scrolling/ios/textarea-scroll-touch.html:
  • fast/scrolling/ios/touch-scroll-back-forward.html:
  • fast/scrolling/ios/touch-scroll-pointer-events-none.html:
  • fast/scrolling/ios/touch-stacking.html:
  • fast/scrolling/ios/user-then-programmatic-scroll-expected.html:
  • fast/scrolling/ios/user-then-programmatic-scroll.html:
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode-expected.html:
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html:
  • fast/scrolling/latching/iframe-latch-small-deltas.html:
  • fast/scrolling/latching/latched-scroll-into-nonfast-region.html:
  • fast/scrolling/latching/latching-stuck-to-main-page.html:
  • fast/scrolling/mac/absolute-in-overflow-scroll-dynamic-expected.html:
  • fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html:
  • fast/scrolling/mac/absolute-in-overflow-scroll.html:
  • fast/scrolling/mac/adjust-scroll-snap-after-gesture.html:
  • fast/scrolling/mac/adjust-scroll-snap-during-gesture.html:
  • fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis.html:
  • fast/scrolling/mac/async-scroll-overflow-rtl-zoomed.html:
  • fast/scrolling/mac/async-scroll-overflow-rtl.html:
  • fast/scrolling/mac/async-scroll-overflow-top-inset.html:
  • fast/scrolling/mac/async-scroll-overflow.html:
  • fast/scrolling/mac/border-radius-event-region.html:
  • fast/scrolling/mac/clip-path-hit-test.html:
  • fast/scrolling/mac/event-region-scrolled-contents-layer.html:
  • fast/scrolling/mac/event-region-subframe.html:
  • fast/scrolling/mac/event-region-subscroller-frame.html:
  • fast/scrolling/mac/event-region-subscroller-overflow.html:
  • fast/scrolling/mac/event-region-visibility-hidden.html:
  • fast/scrolling/mac/hit-test-overflow-tiled-layer.html:
  • fast/scrolling/mac/horizontal-overflow-trapping-small-deltas.html:
  • fast/scrolling/mac/mousewheel-over-scrollbar.html:
  • fast/scrolling/mac/move-node-in-overflow-scroll.html:
  • fast/scrolling/mac/negative-z-index-overflow-scroll.html:
  • fast/scrolling/mac/nested-overflow-proxy-node.html:
  • fast/scrolling/mac/non-invertible-transform-hit-testing.html:
  • fast/scrolling/mac/overflow-scrollbars-should-be-visible-expected-mismatch.html:
  • fast/scrolling/mac/overflow-scrollbars-should-be-visible.html:
  • fast/scrolling/mac/overflow-scrolled-document.html:
  • fast/scrolling/mac/overflow-zoomed-document.html:
  • fast/scrolling/mac/overlapped-overflow-scroll.html:
  • fast/scrolling/mac/rubberband-overflow-in-wheel-region-root-jiggle.html:
  • fast/scrolling/mac/rubberband-overflow-in-wheel-region.html:
  • fast/scrolling/mac/scroll-snapping-in-progress.html:
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html:
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html:
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html:
  • fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html:
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html:
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html:
  • fast/scrolling/mac/scrollbars/overlay-scrollbar-state.html:
  • fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html:
  • fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal.html:
  • fast/scrolling/mac/slow-scrolling-overflow.html:
  • fast/scrolling/mac/wheel-event-listener-region-basic.html:
  • fast/scrolling/mac/wheel-event-listener-region-document.html:
  • fast/scrolling/mac/wheel-event-listener-region-element-invalidation.html:
  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-clipped-out.html:
  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll.html:
  • fast/scrolling/mac/wheel-event-listener-region-layer-offset.html:
  • fast/scrolling/mac/wheel-event-listener-region-root-invalidation.html:
  • fast/scrolling/mac/wheel-event-listener-region-window.html:
  • fast/scrolling/overflow-inside-foreignobject.html:
  • fast/scrolling/programmatic-scroll-to-negative-offset.html:
  • fast/scrolling/scroll-behavior-invalidate-if-disabled.html:
  • fast/scrolling/scroll-behavior-validate-if-enabled.html:
  • fast/scrolling/scrolling-event-target-gc.html:
  • fast/text/embed-at-end-of-pre-wrap-line-simple-lines-expected.html:
  • fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html:
  • fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak-expected.html:
  • fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html:
  • fast/text/simple-lines-float-expected.html:
  • fast/text/simple-lines-float.html:
  • fast/text/whitespace/pre-wrap-long-word-simple-lines-expected.html:
  • fast/text/whitespace/pre-wrap-long-word-simple-lines.html:
  • fast/web-share/canShare-with-files-feature-disabled.html:
  • fast/web-share/share-with-files-feature-disabled.html:
  • highlight/highlight-interfaces.html:
  • highlight/highlight-map-and-group.html:
  • highlight/highlight-pseudo-element-style.html:
  • http/tests/adClickAttribution/anchor-tag-attributes-reflect.html:
  • http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html:
  • http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/adClickAttribution/clear-through-website-data-removal.html:
  • http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html:
  • http/tests/webAPIStatistics/font-load-data-collection.html:
  • http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html:
  • http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html:
  • http/wpt/webauthn/ctap-hid-failure.https.html:
  • http/wpt/webauthn/ctap-hid-success.https.html:
  • http/wpt/webauthn/ctap-nfc-failure.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-nfc.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:
  • http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html:
  • http/wpt/webauthn/public-key-credential-ip-address.html:
  • http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html:
  • http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html:
  • http/wpt/webauthn/public-key-credential-unfocused-document.https.html:
  • intersection-observer/intersection-observer-callback-after-gc.html:
  • intersection-observer/intersection-observer-callback-leak.html:
  • mathml/mathml-overflow-crash.html:
  • mathml/non-core/frac-linethickness-001-expected.html:
  • mathml/non-core/frac-linethickness-001.html:
  • mathml/non-core/frac-linethickness-002-expected.html:
  • mathml/non-core/frac-linethickness-002.html:
  • mathml/non-core/frac-numalign-denomalign-001-expected.html:
  • mathml/non-core/frac-numalign-denomalign-001.html:
  • mathml/non-core/lengths-1-expected.html:
  • mathml/non-core/lengths-1.html:
  • mathml/non-core/lengths-2-expected.html:
  • mathml/non-core/lengths-2.html:
  • mathml/non-core/lengths-3.html:
  • mathml/presentation/attributes-background-color-expected.html:
  • mathml/presentation/attributes-background-color.html:
  • mathml/presentation/attributes-mathvariant.html:
  • mathml/presentation/mstyle-css-attributes.html:
  • platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit.html:
  • platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position.html:
  • platform/ios/fast/scrolling/find-text-in-overflow-node.html:
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html:
  • pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html:
  • pointerevents/ios/touch-action-none-no-scroll-indicators.html:
  • pointerevents/ios/touch-action-none-with-frame-inside.html:
  • pointerevents/ios/touch-action-pan-y-in-overflow-scroll-horizontal-gesture-prevents-vertical-scrolling.html:
  • pointerevents/ios/touch-action-region-backing-sharing.html:
  • pointerevents/ios/touch-action-region-clip-and-transform.html:
  • pointerevents/ios/touch-action-region-overflow.html:
  • printing/page-with-10mm-left-margin.html:
  • printing/page-with-zero-margin.html:
  • requestidlecallback/requestidlecallback-document-gc.html:
  • requestidlecallback/requestidlecallback-enabled.html:
  • requestidlecallback/requestidlecallback-id.html:
  • requestidlecallback/requestidlecallback-in-page-cache.html:
  • requestidlecallback/requestidlecallback-is-called.html:
  • requestidlecallback/requestidlecallback-is-not-called-when-canceled.html:
  • requestidlecallback/requestidlecallback-not-enabled.html:
  • resize-observer/delete-observers-in-callbacks.html:
  • resize-observer/element-leak.html:
  • resize-observer/modify-frametree-in-callback.html:
  • resize-observer/multi-frames.html:
  • resize-observer/observe-element-from-other-frame.html:
  • resize-observer/resize-observer-callback-leak.html:
  • resize-observer/resize-observer-entry-keeps-js-wrapper-of-target-alive.html:
  • resize-observer/resize-observer-keeps-js-wrapper-of-target-alive.html:
  • resize-observer/resize-observer-with-zoom.html:
  • scrollbars/async-overflow-custom-scrollbar-expected.html:
  • scrollbars/async-overflow-custom-scrollbar.html:
  • scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll-expected.html:
  • scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html:
  • scrollingcoordinator/ios/fixed-frame-overflow-swipe-expected.html:
  • scrollingcoordinator/ios/fixed-frame-overflow-swipe.html:
  • scrollingcoordinator/ios/fixed-in-overflow-scroll-expected.html:
  • scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree.html:
  • scrollingcoordinator/ios/fixed-in-overflow-scroll.html:
  • scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll-2-expected.html:
  • scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll-2.html:
  • scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll-expected.html:
  • scrollingcoordinator/ios/fixed-in-stacking-context-overflow-scroll.html:
  • scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed-expected.html:
  • scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-frame-expected.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-frame.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2-expected.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-expected.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-stacking-context-expected.html:
  • scrollingcoordinator/ios/fixed-inside-sticky-stacking-context.html:
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1-expected.html:
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1.html:
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2-expected.html:
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2.html:
  • scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary-expected.html:
  • scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary.html:
  • scrollingcoordinator/ios/programmatic-frame-scroll-expected.html:
  • scrollingcoordinator/ios/programmatic-frame-scroll.html:
  • scrollingcoordinator/ios/programmatic-overflow-scroll-expected.html:
  • scrollingcoordinator/ios/programmatic-overflow-scroll.html:
  • scrollingcoordinator/ios/programmatic-page-scroll-expected.html:
  • scrollingcoordinator/ios/programmatic-page-scroll.html:
  • scrollingcoordinator/ios/relative-layer-should-move-with-scroll-expected.html:
  • scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html:
  • scrollingcoordinator/ios/scroll-element-at-point.html:
  • scrollingcoordinator/ios/scroll-position-after-reattach-expected.html:
  • scrollingcoordinator/ios/scroll-position-after-reattach.html:
  • scrollingcoordinator/ios/scroller-initial-scroll-position-expected.html:
  • scrollingcoordinator/ios/scroller-initial-scroll-position.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-1-expected.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-1.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-2-expected.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-no-stick-2.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-1-expected.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-1.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-2-expected.html:
  • scrollingcoordinator/ios/sticky-overflow-no-stacking-context-stick-2.html:
  • scrollingcoordinator/ios/sticky-overflow-stacking-context-no-stick-expected.html:
  • scrollingcoordinator/ios/sticky-overflow-stacking-context-no-stick.html:
  • scrollingcoordinator/ios/sticky-overflow-stacking-context-stick-expected.html:
  • scrollingcoordinator/ios/sticky-overflow-stacking-context-stick.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-repaint-expected.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-repaint.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow.html:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow.html:
  • scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe.html:
  • scrollingcoordinator/mac/latching/horizontal-overflow-in-vertical-overflow.html:
  • scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html:
  • scrollingcoordinator/mac/latching/zero-delta-began-should-not-latch.html:
  • scrollingcoordinator/mac/programmatic-frame-scroll-expected.html:
  • scrollingcoordinator/mac/programmatic-frame-scroll.html:
  • scrollingcoordinator/mac/programmatic-overflow-scroll-expected.html:
  • scrollingcoordinator/mac/programmatic-overflow-scroll.html:
  • scrollingcoordinator/mac/rtl-programmatic-overflow-scroll.html:
  • scrollingcoordinator/overflow-proxy-reattach-expected.html:
  • scrollingcoordinator/overflow-proxy-reattach.html:
  • scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers.html:
  • scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller.html:
  • scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested.html:
  • scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow.html:
  • scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow.html:
  • scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow.html:
  • scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent.html:
  • scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent.html:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow.html:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html:
  • scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html:
  • scrollingcoordinator/scrolling-tree/overflow-in-fixed.html:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html:
  • scrollingcoordinator/scrolling-tree/positioned-nodes.html:
  • scrollingcoordinator/scrolling-tree/remove-scrolling-role.html:
  • scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers.html:
  • scrollingcoordinator/scrolling-tree/reparent-with-layer-removal.html:
  • scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:
  • scrollingcoordinator/scrolling-tree/scroller-with-negative-z-child.html:
  • scrollingcoordinator/scrolling-tree/sticky-in-overflow.html:
  • tiled-drawing/scrolling/overflow/overflow-scrolled-down-tile-coverage.html:
  • tiled-drawing/scrolling/overflow/overflow-scrolled-up-tile-coverage.html:
  • tiled-drawing/scrolling/overflow/overflow-tile-coverage.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-async-iframe.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow-stateless.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-async-overflow.html:
3:30 AM Changeset in webkit [269359] by Devin Rousso
  • 115 edits
    12 deletes in trunk

Web Inspector: use weak collections for holding event listeners
https://bugs.webkit.org/show_bug.cgi?id=196956

Reviewed by Brian Burg.

Source/WebInspectorUI:

Replace the ListMultimap/LinkedList with a Multimap for holding listener data:
`

Map<String eventType, Set<{Function listener, WeakRef thisObject}>> _listeners;

`
This preserves addition order while also not strongly holding any thisObject so they can
be GCed (and remove the listener along with it).

  • UserInterface/Base/Object.js:

(WI.Object.addEventListener):
(WI.Object.singleFireEventListener):
(WI.Object.awaitEvent):
(WI.Object.removeEventListener):
(WI.Object.prototype.singleFireEventListener):
(WI.Object.prototype.removeEventListener):
(WI.Object.prototype.dispatchEventToListeners.dispatch):
(WI.Object.hasEventListeners):
(WI.Object.activelyListeningObjectsWithPrototype): Added.
(WI.Object.prototype.activelyListeningObjectsWithPrototype): Added.

  • UserInterface/Base/SearchUtilities.js:

(WI.SearchUtilities.createSettings):
(WI.SearchUtilities.createSettingsButton):

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI.contentLoaded):

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.requestContent):

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager):

  • UserInterface/Views/AuditTestCaseContentView.js:

(WI.AuditTestCaseContentView.prototype.showRunningPlaceholder):

  • UserInterface/Views/AuditTestContentView.js:

(WI.AuditTestContentView.prototype.showNoResultPlaceholder):

  • UserInterface/Views/AuditTestGroupContentView.js:

(WI.AuditTestGroupContentView.prototype.showRunningPlaceholder):

  • UserInterface/Views/CodeMirrorEditor.js:

(WI.CodeMirrorEditor.create):

  • UserInterface/Debug/Bootstrap.js:

(WI.runBootstrapOperations):

  • UserInterface/Views/ConsoleDrawer.js:

(WI.ConsoleDrawer):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype.clearSessionState):
(WI.ConsoleMessageView.prototype._appendSavedResultIndex):
(WI.ConsoleMessageView.prototype._rootPropertyPathForObject):

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser):
(WI.ContentBrowser.prototype.async handleFindNextShortcut):
(WI.ContentBrowser.prototype.async handleFindPreviousShortcut):

  • UserInterface/Views/HeapSnapshotContentView.js:

(WI.HeapSnapshotContentView):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):

  • UserInterface/Views/MediaTimelineOverviewGraph.js:

(WI.MediaTimelineOverviewGraph.prototype._processRecord):

  • UserInterface/Views/NetworkDetailView.js:

(WI.NetworkDetailView.prototype.initialLayout):

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView.prototype.addShowMoreIfNeeded):

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel):
(WI.SearchSidebarPanel.prototype.closed):
(WI.SearchSidebarPanel.prototype.performSearch):

  • UserInterface/Views/SettingEditor.js:

(WI.SettingEditor.createForSetting):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
(WI.SettingsTabContentView.prototype._createConsoleSettingsView):
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange):
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
(WI.SettingsTabContentView.prototype._createDebugSettingsView):

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.closed):
(WI.SourcesNavigationSidebarPanel.prototype.createContentTreeOutline):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):

  • UserInterface/Views/ThreadTreeElement.js:

(WI.ThreadTreeElement.prototype._updateStatus):

  • UserInterface/Views/TimelineTreeElement.js:

(WI.TimelineTreeElement.prototype._showCloseButton):
Update callers of WI.Object.prototype.addEventListener to always pass a thisObject. This
is especially important for inlined listener, as there needs to be a strong reference to
some "longer lived" thisObject (which is held by a WeakRef) in order for the listener
to not be GCed.

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles):
(WI.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
(WI.DOMNodeStyles.prototype._parseRulePayload):
(WI.DOMNodeStyles.prototype._handleCSSStyleSheetContentDidChange): Added.
(WI.DOMNodeStyles.prototype._styleSheetContentDidChange): Deleted.

  • UserInterface/Views/TimelineRecordingProgressView.js:

(WI.TimelineRecordingProgressView):
(WI.TimelineRecordingProgressView.prototype.set visible):
(WI.TimelineRecordingProgressView.prototype._updateState):
Use a global event listener instead of adding event listeners to specific objects as it's
already likely that all the objects would be listened to anyways.

  • UserInterface/Models/DOMTree.js:

(WI.DOMTree.prototype.disconnect):

  • UserInterface/Controllers/ApplicationCacheManager.js:

(WI.ApplicationCacheManager.prototype.disable):

  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype.disconnect):

  • UserInterface/Controllers/DOMStorageManager.js:

(WI.DOMStorageManager.prototype.disable):

  • UserInterface/Controllers/DatabaseManager.js:

(WI.DatabaseManager.prototype.disable):

  • UserInterface/Controllers/IndexedDBManager.js:

(WI.IndexedDBManager.prototype.disable):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.capturingStopped):

  • UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:

(WI.ApplicationCacheDetailsSidebarPanel.prototype.closed):

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WI.ApplicationCacheFrameContentView.prototype.closed):

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.closed):

  • UserInterface/Views/AuditTreeElement.js:

(WI.AuditTreeElement.prototype.ondetach):

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.closed):

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView.prototype.detached):

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype.detached):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype.set canvas):
(WI.CanvasSidebarPanel.prototype.set recording):
(WI.CanvasSidebarPanel.prototype.hidden):

  • UserInterface/Views/ClusterContentView.js:

(WI.ClusterContentView.prototype.closed):

  • UserInterface/Views/CollectionContentView.js:

(WI.CollectionContentView.prototype.removeContentViewForItem):
(WI.CollectionContentView.prototype.detached):

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype.hidden):
(WI.ContentBrowserTabContentView.prototype.closed):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.closed):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype.closed):

  • UserInterface/Views/DOMTreeUpdater.js:

(WI.DOMTreeUpdater.prototype.close):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView.prototype.closed):

  • UserInterface/Views/FrameDOMTreeContentView.js:

(WI.FrameDOMTreeContentView.prototype.closed):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.removeEventListeners):

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WI.HeapAllocationsTimelineView):
(WI.HeapAllocationsTimelineView.prototype.closed):

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.closed): Deleted.

  • UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch.prototype.didDismissPopover):

  • UserInterface/Views/LayoutTimelineView.js:

(WI.LayoutTimelineView.prototype.closed):

  • UserInterface/Views/LocalResourceOverrideWarningView.js:

(WI.LocalResourceOverrideWarningView.prototype.detached):

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView.prototype.closed):

  • UserInterface/Views/MultipleScopeBarItem.js:

(WI.MultipleScopeBarItem.prototype.set scopeBarItems):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.closed):

  • UserInterface/Views/NetworkTimelineView.js:

(WI.NetworkTimelineView.prototype.closed):

  • UserInterface/Views/OverviewTimelineView.js:

(WI.OverviewTimelineView.prototype.closed):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WI.ProbeDetailsSidebarPanel.prototype.closed):

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype.closed):

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype._handleRecordingProcessedAction):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WI.RenderingFrameTimelineView.prototype.closed):

  • UserInterface/Views/ResourceCollectionContentView.js:

(WI.ResourceCollectionContentView.prototype.detached):
(WI.ResourceCollectionContentView.prototype.contentViewRemoved):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.closed):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype.set resource):
(WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):
(WI.ResourceDetailsSidebarPanel.prototype._handleResourceInitiatedResourcesDidChange): Added.

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype.closed):

  • UserInterface/Views/ResourceSecurityContentView.js:

(WI.ResourceSecurityContentView.prototype.closed):

  • UserInterface/Views/ResourceSizesContentView.js:

(WI.ResourceSizesContentView.prototype.closed):

  • UserInterface/Views/ResourceTimingContentView.js:

(WI.ResourceTimingContentView.prototype.closed):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WI.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
(WI.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
(WI.ScopeChainDetailsSidebarPanel.prototype.closed):

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype.closed):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WI.ScriptDetailsTimelineView.prototype.closed):

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WI.ScriptProfileTimelineView.prototype.closed):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.close):
(WI.SourceCodeTextEditor.prototype._showPopover):
(WI.SourceCodeTextEditor.prototype._showPopoverForObject):
(WI.SourceCodeTextEditor.prototype._dismissPopover):
(WI.SourceCodeTextEditor.prototype._trackPopoverEvents): Deleted.

  • UserInterface/Views/StorageSidebarPanel.js:

(WI.StorageSidebarPanel.prototype.closed):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.closed):

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype.closed):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype.closed):
(WI.TimelineRecordingContentView.prototype._recordingUnloaded):

  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler.prototype.clearMarkers):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.prototype.closed):

  • UserInterface/Views/TreeOutlineGroup.js:

(WI.TreeOutlineGroup.prototype.itemRemoved):
Replace the removeEventListener(null, null, this) pattern by instead having callers remove
each event listener explicitly. This is a safer design as it can avoid situations where
parent classes inadvertently remove event listeners added by subclasses. For objects with
lots of event listeners this is also more efficient as it doesn't require as much iteration.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement):
(WI.RecordingActionTreeElement.prototype._handleValidityChanged):
Use singleFireEventListener where possible.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.pause):
(WI.DebuggerManager.prototype.resume):
(WI.DebuggerManager.prototype.stepNext):
(WI.DebuggerManager.prototype.stepOver):
(WI.DebuggerManager.prototype.stepInto):
(WI.DebuggerManager.prototype.stepOut):

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.onattach):
(WI.BreakpointTreeElement.prototype.ondetach):
(WI.BreakpointTreeElement.prototype.get listenerSet): Deleted.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype.insertColumn):
(WI.DataGrid.prototype.removeColumn):

  • UserInterface/Views/JavaScriptBreakpointTreeElement.js:

(WI.JavaScriptBreakpointTreeElement):
(WI.JavaScriptBreakpointTreeElement.prototype.onattach):
(WI.JavaScriptBreakpointTreeElement.prototype.ondetach):

  • UserInterface/Views/ProbeSetDataGrid.js:

(WI.ProbeSetDataGrid):
(WI.ProbeSetDataGrid.prototype.closed):
(WI.ProbeSetDataGrid.prototype._setupData):
(WI.ProbeSetDataGrid.prototype._teardownData):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WI.ProbeSetDetailsSection):
(WI.ProbeSetDetailsSection.prototype.closed):
Remove the legacy WI.EventListener and WI.EventListenerSet as they basically do the same
thing as WI.Object with extra steps.

  • UserInterface/Models/WebSocketResource.js:
  • UserInterface/Proxies/HeapSnapshotWorkerProxy.js:
  • UserInterface/Controllers/TargetManager.js:
  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.collapse):
(WI.DataGridNode.prototype.expand):
(WI.DataGridNode.prototype.reveal):
(WI.DataGridNode.prototype.traverseNextNode):
(WI.DataGridNode.prototype.traversePreviousNode):

  • UserInterface/Views/HeapSnapshotClassDataGridNode.js:

(WI.HeapSnapshotClassDataGridNode):
(WI.HeapSnapshotClassDataGridNode.prototype._populate):

  • UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:

(WI.HeapSnapshotInstanceDataGridNode):

  • UserInterface/Views/ProfileDataGridNode.js:

(WI.ProfileDataGridNode):
(WI.ProfileDataGridNode.prototype._populate):

  • UserInterface/Views/ProfileNodeDataGridNode.js:

(WI.ProfileNodeDataGridNode):
(WI.ProfileNodeDataGridNode.prototype._populate):

  • UserInterface/Views/TreeOutline.js:
  • UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:

(HeapSnapshotWorker.prototype.createSnapshot):
Ensure that all event names are strings defined on the class Event object.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.set selectedSidebarPanel):
Drive-by: fix an issue where hidden is called twice, once from the selected sidebar panel
being changed and then again when that sidebar panel is removed.

  • .eslintrc:
  • UserInterface/Base/EventListener.js: Removed.
  • UserInterface/Base/EventListenerSet.js: Removed.
  • UserInterface/Base/LinkedList.js: Removed.
  • UserInterface/Base/ListMultimap.js: Removed.
  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/TestStub.html:
  • Tools/SourceMaps/index.html:

LayoutTests:

  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:

Use newly named WI.Object.prototype.activelyListeningObjectsWithPrototype instead of the
previously named WI.Object.prototype.retainedObjectsWithPrototype since WI.Object
doesn't retain any thisObject anymore.

  • inspector/debugger/setPauseOnMicrotasks.html:

Only remove the event listener if it didn't fire.

  • inspector/dom/setEventListenerDisabled.html:

No need to remove the event listener as calling reject after a Promise is already
settled won't have any effect.

  • inspector/unit-tests/event-listener.html: Removed.
  • inspector/unit-tests/event-listener-expected.txt: Removed.
  • inspector/unit-tests/event-listener-set.html: Removed.
  • inspector/unit-tests/event-listener-set-expected.txt: Removed.

Remove the legacy WI.EventListener and WI.EventListenerSet as they basically do the same
thing as WI.Object with extra steps.

  • inspector/unit-tests/linked-list.html: Removed.
  • inspector/unit-tests/linked-list-expected.txt: Removed.
  • inspector/unit-tests/list-multimap.html: Removed.
  • inspector/unit-tests/list-multimap-expected.txt: Removed.

Remove LinkedList and ListMultimap as they're no longer used.

  • platform/gtk/TestExpectations:
2:11 AM Changeset in webkit [269358] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove text flaky failures of tests that are actually passing.

The test failures removed have been consistently passing for the last 4000
revisions.

  • platform/gtk/TestExpectations:
Note: See TracTimeline for information about the timeline view.