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

Timeline



Jun 10, 2021:

10:29 PM Changeset in webkit [278755] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

CARingBuffer::frameOffset() makes incorrect assumptions about the frame count
https://bugs.webkit.org/show_bug.cgi?id=226253
<rdar://problem/78463453>

Reviewed by Eric Carlson.

CARingBuffer::frameOffset() was trying to avoid doing a frameNumber % m_frameCount
modulo operation by doing a frameNumber & (m_frameCount - 1). However, this bitwise
operation is only equivalent if m_frameCount is a power of 2. It isn't enforced
anywhere that the frameCount is a power of 2. As a matter of fact, we frequently use
2*sampleRate which is often 2*44100=88200, which is NOT a power of 2.

When adding logging, I saw frameOffset(512) returning 0 for a frameCount of 88200, which
made no sense. It was causing offset0 and offset1 in CARingBuffer::fetchInternal() to
be both 0 (even though startRead was 0 and endRead was 512) and it was leading the
function to make bad computations.

To address the issue, I updated CARingBuffer::frameOffset() to use a simple modulo
operation. It is safer as it makes no assumption on the frame count and it is more
readable. If we're worried about the performance, we could alternatively round up the
frameCount to the next power of 2 and keep using the bitwise operation, but I am
personally do not think it is worth it.

  • platform/audio/cocoa/CARingBuffer.cpp:

(WebCore::CARingBuffer::initializeAfterAllocation):

  • platform/audio/cocoa/CARingBuffer.h:

(WebCore::CARingBuffer::frameOffset):

10:03 PM Changeset in webkit [278754] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebKit

takeSnapshotWithConfiguration() should wait for the next flush before it does callSnapshotRect()
https://bugs.webkit.org/show_bug.cgi?id=226257
<rdar://76411685>

Reviewed by Simon Fraser.

This will ensure the latest IOSurfaces are pushed to backboardd before
taking the snapshot.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

9:52 PM Changeset in webkit [278753] by clopez@igalia.com
  • 4 edits in trunk

[CMake][GTK][WPE] Improve error message when libsoup3 is not found
https://bugs.webkit.org/show_bug.cgi?id=226905

Reviewed by Adrian Perez de Castro.

When libsoup 3 is not found be more clear about the problem and
offer possible workaround to continue the build.

  • Source/cmake/FindLibSoup.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
8:37 PM Changeset in webkit [278752] by yurys@chromium.org
  • 2 edits in trunk/Source/WebCore

[REGRESSION][Curl] Network::ResourceTiming are broken after r278391
https://bugs.webkit.org/show_bug.cgi?id=226901

Reviewed by Fujii Hironori.

Initialize fetchStart with startTime in Curl.

No new tests.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::getNetworkLoadMetrics):

8:22 PM Changeset in webkit [278751] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Unreviewed macOS build fix.

Add some missing header includes.

  • Shared/mac/MediaFormatReader/CoreMediaWrapped.h:
  • Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
  • Shared/mac/MediaFormatReader/MediaSampleCursor.h:
  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
8:00 PM Changeset in webkit [278750] by weinig@apple.com
  • 6 edits
    3 adds in trunk

Nothing is keeping navigator.xr alive during GC
https://bugs.webkit.org/show_bug.cgi?id=226898

Reviewed by Chris Dumez.

Source/WebCore:

Ensure the navigator.xr wrapper is kept alive when it has custom properties
by annotating it with GenerateIsReachable=ReachableFromNavigator.

Test: webxr/gc.html

  • Modules/webxr/NavigatorWebXR.cpp:

(WebCore::NavigatorWebXR::xr):

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::create):
(WebCore::WebXRSystem::WebXRSystem):
(WebCore::WebXRSystem::navigator):

  • Modules/webxr/WebXRSystem.h:
  • Modules/webxr/WebXRSystem.idl:

LayoutTests:

Add test that ensure the navigator.xr wrapper is kept alive when it has
custom properties.

  • webxr: Added.
  • webxr/gc-expected.txt: Added.
  • webxr/gc.html: Added.
7:56 PM Changeset in webkit [278749] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary call to StringView::toStringWithoutCopying() in shouldTreatAsPotentiallyTrustworthy()
https://bugs.webkit.org/show_bug.cgi?id=226907

Reviewed by Darin Adler.

Drop unnecessary call to StringView::toStringWithoutCopying() in shouldTreatAsPotentiallyTrustworthy() since
the function we're calling takes a StringView.

  • page/SecurityOrigin.cpp:

(WebCore::shouldTreatAsPotentiallyTrustworthy):

7:36 PM Changeset in webkit [278748] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] Can't open WebInspector UI since r277787
https://bugs.webkit.org/show_bug.cgi?id=226908

Reviewed by Don Olmstead.

r277787 (Bug 226001) changed the return type of
WebURLSchemeTask::request() from const WebCore::ResourceRequest&
to WebCore::ResourceRequest.

InspectorResourceURLSchemeHandler::platformStartTask shouldn't
hold the reference of the temporary object.

  • UIProcess/Inspector/win/InspectorResourceURLSchemeHandler.cpp:

(WebKit::InspectorResourceURLSchemeHandler::platformStartTask):
Changed the type of requestURL from auto& to auto to copy the URL.

6:22 PM Changeset in webkit [278747] by Wenson Hsieh
  • 9 edits
    2 adds in trunk

[Live Text] Add a mechanism to regenerate text in an image element when it changes dimensions
https://bugs.webkit.org/show_bug.cgi?id=226858
rdar://77522786

Reviewed by Devin Rousso.

Source/WebCore:

Push m_elementsWithTextRecognitionResults from WebPage down to Page, and additionally keep track of a
TextRecognitionResult per element, as well as the size of the element at the time when we last injected text
recognition results. Use this information to tell elements to update their OCR text containers if their
dimenions have changed since the last update, after finishing a rendering update.

Test: fast/images/text-recognition/image-overlay-size-change.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithTextRecognitionResult):

Refactor this to take a const TextRecognitionResult& instead of a TextRecognitionResult&&, since this method
doesn't actually take ownership of the TextRecognitionResult. This allows us to avoid explicitly copying a
TextRecognitionResult when calling this method from Page::updateElementsWithTextRecognitionResults. Also, add
a CacheTextRecognitionResults enum flag as an argument, to avoid entering Page::cacheTextRecognitionResult
every time we update a resized element in Page::updateElementsWithTextRecognitionResults; since we know that
the dimensions are the only thing that changed, we simply update the cached dimensions.

Call into Page::cacheTextRecognitionResult to store per-element TextRecognitionResults when we
finish injecting the OCR text and data detectors into the image element.

  • html/HTMLElement.h:
  • page/Page.cpp:

(WebCore::Page::didCommitLoad):

Clear out both m_textRecognitionResultsByElement and m_elementsWithTextRecognitionResults.

(WebCore::Page::doAfterUpdateRendering):

At the end of each rendering update, go through m_elementsWithTextRecognitionResults and check if any of the
elements' dimensions have changed; if so, tell those elements to re-update their OCR text quads and data
detectors in the UA shadow tree.

(WebCore::Page::resetTextRecognitionResults):
(WebCore::Page::updateElementsWithTextRecognitionResults):
(WebCore::Page::hasCachedTextRecognitionResult const):
(WebCore::Page::cacheTextRecognitionResult):

Add the element to m_elementsWithTextRecognitionResults and m_textRecognitionResultsByElement, appending a
new entry to m_textRecognitionResultsByElement only if necessary.

  • page/Page.h:

Source/WebKit:

Push m_elementsWithTextRecognitionResults from WebKit::WebPage down to WebCore::Page. See WebCore
ChangeLog for more details.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::requestTextRecognition):
(WebKit::WebPage::updateWithTextRecognitionResult):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

  • fast/images/text-recognition/image-overlay-size-change-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-size-change.html: Added.
6:02 PM Changeset in webkit [278746] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

REGRESSION: (r278544) [ Mac-wk1 ] media/media-continues-playing-after-replace-source.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226899
<rdar://problem/79160701>

Reviewed by Ryosuke Niwa.

Have MediaPlayerPrivateAVFoundationObjC schedule tasks on the HTML event loop instead of simply using
callOnMainThread() to address flakiness issues, since the rest of the media code uses the HTML event
loop.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerQueueTaskOnEventLoop):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::queueTaskOnEventLoop):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerQueueTaskOnEventLoop):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::queueTaskOnEventLoop):

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

(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]):
(-[WebCoreAVFMovieObserver metadataCollector:didCollectDateRangeMetadataGroups:indexesOfNewGroups:indexesOfModifiedGroups:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):

5:49 PM Changeset in webkit [278745] by pvollan@apple.com
  • 11 edits
    2 adds in trunk/Source/WebKit

[iOS] Sync Accessibility preferences
https://bugs.webkit.org/show_bug.cgi?id=226738
<rdar://77922839>

Reviewed by Brent Fulgham.

Implement Per-App Accessibility preferences on iOS. The Per-App Accessibility preferences in the WebContent process
should reflect the values in the UI process. This is addressed by syncing the values between the two processes on
startup of the WebContent process, and when the values change.

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::accessibilityPreferencesChangedCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::accessibilityPreferencesDidChange):

5:31 PM Changeset in webkit [278744] by Ruben Turcios
  • 2 edits in branches/safari-612.1.18-branch/Source/WebKit

Cherry-pick r278741. rdar://problem/79169276

Regression(r278449): add null check for completionHandler in WebIDBServer::close
https://bugs.webkit.org/show_bug.cgi?id=226900
rdar://79160392

Reviewed by Chris Dumez.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::close):

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

5:28 PM Changeset in webkit [278743] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening, mark some WebGL tests as passing
https://bugs.webkit.org/show_bug.cgi?id=226847

These tests appear to pass consistently on both GTK and WPE now.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-10

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:58 PM Changeset in webkit [278742] by Chris Dumez
  • 5 edits in trunk/LayoutTests

REGRESSION: service-workers/service-worker/credentials.https.html and content-security-policy/reporting/report-only-in-meta.sub.html failing together constantly.
https://bugs.webkit.org/show_bug.cgi?id=226884
<rdar://problem/79148983>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync set-cookie.py from upsteam WPT 7f913d9d12a54858 as it had a hard-coded
expiration for the cookie (which has just passed).

  • web-platform-tests/content-security-policy/reporting/support/set-cookie.py:

(main):

  • web-platform-tests/cookies/resources/set-cookie.py:

(main):

LayoutTests:

Unskip tests that should no longer be failing.

4:55 PM Changeset in webkit [278741] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Regression(r278449): add null check for completionHandler in WebIDBServer::close
https://bugs.webkit.org/show_bug.cgi?id=226900
rdar://79160392

Reviewed by Chris Dumez.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::close):

4:51 PM Changeset in webkit [278740] by eric.carlson@apple.com
  • 7 edits in trunk/Source/WebKit

[Cocoa] Remote video layer should respect video gravity when resizing
https://bugs.webkit.org/show_bug.cgi?id=226784

Reviewed by Jer Noble.

Tested manually.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback): Pass specify video gravity
when creating remote layer.
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity): Remember gravity.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/VideoLayerRemote.h:
  • WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h:
  • WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:

(-[WKVideoLayerRemote videoGravity]):
(-[WKVideoLayerRemote setVideoGravity:]):
(-[WKVideoLayerRemote resizePreservingGravity]): Return true when in PiP, fullscreen,
or when video gravity is not "resize".
(-[WKVideoLayerRemote layoutSublayers]): Preserve aspect ration when appropriate.
(WebKit::createVideoLayerRemote):

4:32 PM Changeset in webkit [278739] by Devin Rousso
  • 2 edits in trunk/LayoutTests

(r278618) media/modern-media-controls/overflow-support/chapters.html is timing out since introduction
https://bugs.webkit.org/show_bug.cgi?id=226828
<rdar://problem/79084756>

Unreviewed followup for flaky test.

  • media/modern-media-controls/overflow-support/chapters.html:

Add manual timeouts for each await to see where exactly the test fails.

4:29 PM Changeset in webkit [278738] by achristensen@apple.com
  • 77 edits
    70 adds in trunk

Move Timing-Allow-Origin checks to the network process
https://bugs.webkit.org/show_bug.cgi?id=226678
<rdar://problem/45227788>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/CodingConventions.md: Added.
  • web-platform-tests/resource-timing/SO-XO-SO-redirect-chain-tao.https-expected.txt: Added.
  • web-platform-tests/resource-timing/SO-XO-SO-redirect-chain-tao.https.html: Added.
  • web-platform-tests/resource-timing/SyntheticResponse.py:

(main):

  • web-platform-tests/resource-timing/TAO-match-expected.txt: Added.
  • web-platform-tests/resource-timing/TAO-match.html: Added.
  • web-platform-tests/resource-timing/TAO-null-opaque-origin-expected.txt: Added.
  • web-platform-tests/resource-timing/TAO-null-opaque-origin.html: Added.
  • web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin-expected.txt: Added.
  • web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin.html: Added.
  • web-platform-tests/resource-timing/init.py: Added.
  • web-platform-tests/resource-timing/buffer-full-add-after-full-event-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-add-after-full-event.html:
  • web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop.html:
  • web-platform-tests/resource-timing/buffer-full-add-entries-during-callback.html:
  • web-platform-tests/resource-timing/buffer-full-add-then-clear-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-add-then-clear.html:
  • web-platform-tests/resource-timing/buffer-full-decrease-buffer-during-callback.html:
  • web-platform-tests/resource-timing/buffer-full-increase-buffer-during-callback-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-increase-buffer-during-callback.html:
  • web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback.html:
  • web-platform-tests/resource-timing/buffer-full-set-to-current-buffer-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-set-to-current-buffer.html:
  • web-platform-tests/resource-timing/buffer-full-store-and-clear-during-callback-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-store-and-clear-during-callback.html:
  • web-platform-tests/resource-timing/buffer-full-then-increased-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-then-increased.html:
  • web-platform-tests/resource-timing/buffer-full-when-populate-entries-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-when-populate-entries.html:

All these buffer-full tests start failing when I update them.
That is an unrelated bug. Firefox has the same bug, and we had the same bug before and after this change.

  • web-platform-tests/resource-timing/connection-reuse-expected.txt: Added.
  • web-platform-tests/resource-timing/connection-reuse.html: Added.
  • web-platform-tests/resource-timing/connection-reuse.https-expected.txt: Added.
  • web-platform-tests/resource-timing/connection-reuse.https.html: Added.
  • web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects-expected.txt: Added.
  • web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects.html: Added.
  • web-platform-tests/resource-timing/cross-origin-status-codes.html:
  • web-platform-tests/resource-timing/document-domain-no-impact-opener-expected.txt: Added.
  • web-platform-tests/resource-timing/document-domain-no-impact-opener.html: Added.
  • web-platform-tests/resource-timing/entry-attributes-expected.txt: Added.
  • web-platform-tests/resource-timing/entry-attributes.html: Added.
  • web-platform-tests/resource-timing/fetch-cross-origin-redirect.https-expected.txt: Added.
  • web-platform-tests/resource-timing/fetch-cross-origin-redirect.https.html: Added.
  • web-platform-tests/resource-timing/font-timestamps-expected.txt: Added.
  • web-platform-tests/resource-timing/font-timestamps.html: Added.
  • web-platform-tests/resource-timing/iframe-failed-commit-expected.txt: Added.
  • web-platform-tests/resource-timing/iframe-failed-commit.html: Added.
  • web-platform-tests/resource-timing/initiator-type-for-script-expected.txt: Added.
  • web-platform-tests/resource-timing/initiator-type-for-script.html: Added.
  • web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https-expected.txt: Added.
  • web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https.html: Added.
  • web-platform-tests/resource-timing/object-not-found-after-TAO-cross-origin-redirect-expected.txt: Added.
  • web-platform-tests/resource-timing/object-not-found-after-TAO-cross-origin-redirect.html: Added.
  • web-platform-tests/resource-timing/object-not-found-after-cross-origin-redirect-expected.txt: Added.
  • web-platform-tests/resource-timing/object-not-found-after-cross-origin-redirect.html: Added.
  • web-platform-tests/resource-timing/redirects-expected.txt: Added.
  • web-platform-tests/resource-timing/redirects.html: Added.
  • web-platform-tests/resource-timing/resource-ignore-data-url-expected.txt: Added.
  • web-platform-tests/resource-timing/resource-ignore-data-url.html: Added.
  • web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain-expected.txt:

This apparent regression is actually a progression.
When this test is run from our test infrastructure, Chrome and Firefox fail the same tests that you see now failing here,
indicating that something is wrong with our test infrastructure. When run on wpt.live, all browsers pass this test
after this change.

  • web-platform-tests/resource-timing/resource_cached.html: Added.
  • web-platform-tests/resource-timing/resource_initiator_types.html:
  • web-platform-tests/resource-timing/resource_nested_dedicated_worker.worker.js:

(async_test):
(async_test.async const): Deleted.

  • web-platform-tests/resource-timing/resource_timing_content_length-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_content_length.html: Added.
  • web-platform-tests/resource-timing/resources/200_empty.asis: Added.
  • web-platform-tests/resource-timing/resources/TAOResponse.py:

(main):

  • web-platform-tests/resource-timing/resources/all_resource_types.html: Added.
  • web-platform-tests/resource-timing/resources/buffer-full-utilities.js:

(const.waitForNextTask):
(const.forceBufferFullEvent.async clearBufferAndSetSize):
(const.forceBufferFullEvent):
(const.fillUpTheBufferWithTwoResources.async clearBufferAndSetSize):
(async const.fillUpTheBufferWithSingleResource.async clearBufferAndSetSize):
(async const):
(let.appendScript): Deleted.
(let.waitForNextTask): Deleted.
(let.waitUntilConditionIsMet.cond.return.new.Promise.resolve.let.checkCondition): Deleted.
(let.waitForEventToFire.return.new.Promise): Deleted.
(let.waitForEventToFire): Deleted.
(let.fillUpTheBufferWithTwoResources.async src): Deleted.

  • web-platform-tests/resource-timing/resources/cacheable-and-validated.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/connection-reuse-test.js: Added.

(attribute_test.async client):
(attribute_test):

  • web-platform-tests/resource-timing/resources/csp-default-none.html: Added.
  • web-platform-tests/resource-timing/resources/csp-default-none.html.headers: Added.
  • web-platform-tests/resource-timing/resources/document-domain-no-impact.html: Added.
  • web-platform-tests/resource-timing/resources/document-refreshed.html: Added.
  • web-platform-tests/resource-timing/resources/document-that-refreshes.html: Added.
  • web-platform-tests/resource-timing/resources/embed-refresh.html: Added.
  • web-platform-tests/resource-timing/resources/green-frame.html: Added.
  • web-platform-tests/resource-timing/resources/green.html: Added.
  • web-platform-tests/resource-timing/resources/green.html.headers: Added.
  • web-platform-tests/resource-timing/resources/gzip_xml.py:
  • web-platform-tests/resource-timing/resources/iframe-refresh.html: Added.
  • web-platform-tests/resource-timing/resources/iframe-reload-TAO.sub.html:
  • web-platform-tests/resource-timing/resources/multi_redirect.py:

(main):

  • web-platform-tests/resource-timing/resources/object-refresh.html: Added.
  • web-platform-tests/resource-timing/resources/redirect-cors.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/resource-timing-content-length.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/resource_timing_test0.xml:
  • web-platform-tests/resource-timing/resources/sizes-helper.js: Added.

(const.checkSizeFields):

  • web-platform-tests/resource-timing/resources/status-code.py:

(main):

  • web-platform-tests/resource-timing/resources/webperftestharness.js:

(test_namespace):
(test_attribute_exists):
(test_enum):

  • web-platform-tests/resource-timing/resources/webperftestharnessextension.js:

(test_method_exists):

  • web-platform-tests/resource-timing/same-origin-from-cross-origin-redirect-expected.txt: Added.
  • web-platform-tests/resource-timing/same-origin-from-cross-origin-redirect.html: Added.
  • web-platform-tests/resource-timing/sizes-cache.any.js: Added.

(const.accumulateEntries):
(const.checkResourceSizes.list.let.entry.of.entries.else):
(promise_test):

  • web-platform-tests/resource-timing/sizes-redirect-img-expected.txt: Added.
  • web-platform-tests/resource-timing/sizes-redirect-img.html: Added.
  • web-platform-tests/resource-timing/sizes-redirect.any.js: Added.

(const.accumulateEntry):
(const.checkResourceSizes):
(const.redirectUrl):
(promise_test):

  • web-platform-tests/resource-timing/status-codes-create-entry.html:
  • web-platform-tests/resource-timing/test_resource_timing-expected.txt:
  • web-platform-tests/resource-timing/test_resource_timing.https-expected.txt:
  • web-platform-tests/resource-timing/workerStart-tao-protected.https.html:

Source/WebCore:

We tried hard to do it in the web process by keeping track of whether the last redirect was cross-origin
and checking the final response and original security origin. We got many tests to pass, but to get the rest
and be correct, we need to check the Timing-Allow-Origin header field of each redirect against the original security origin.

Tests: imported/w3c/web-platform-tests/resource-timing/SO-XO-SO-redirect-chain-tao.https.html

imported/w3c/web-platform-tests/resource-timing/TAO-match.html
imported/w3c/web-platform-tests/resource-timing/TAO-null-opaque-origin.html
imported/w3c/web-platform-tests/resource-timing/TAO-port-mismatch-means-crossorigin.html
imported/w3c/web-platform-tests/resource-timing/connection-reuse.html
imported/w3c/web-platform-tests/resource-timing/connection-reuse.https.html
imported/w3c/web-platform-tests/resource-timing/cross-origin-start-end-time-with-redirects.html
imported/w3c/web-platform-tests/resource-timing/document-domain-no-impact-opener.html
imported/w3c/web-platform-tests/resource-timing/entry-attributes.html
imported/w3c/web-platform-tests/resource-timing/fetch-cross-origin-redirect.https.html
imported/w3c/web-platform-tests/resource-timing/font-timestamps.html
imported/w3c/web-platform-tests/resource-timing/iframe-failed-commit.html
imported/w3c/web-platform-tests/resource-timing/initiator-type-for-script.html
imported/w3c/web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https.html
imported/w3c/web-platform-tests/resource-timing/object-not-found-after-TAO-cross-origin-redirect.html
imported/w3c/web-platform-tests/resource-timing/object-not-found-after-cross-origin-redirect.html
imported/w3c/web-platform-tests/resource-timing/redirects.html
imported/w3c/web-platform-tests/resource-timing/resource-ignore-data-url.html
imported/w3c/web-platform-tests/resource-timing/resource_cached.html
imported/w3c/web-platform-tests/resource-timing/resource_timing_content_length.html
imported/w3c/web-platform-tests/resource-timing/same-origin-from-cross-origin-redirect.html
imported/w3c/web-platform-tests/resource-timing/sizes-redirect-img.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
Get a SecurityOrigin for our WebKitLegacy ResourceHandle use like we do in WebLoaderStrategy::scheduleLoadFromNetworkProcess

  • loader/ResourceTiming.cpp:

(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::initServerTiming):
(WebCore::ResourceTiming::isolatedCopy const):
(WebCore::passesTimingAllowCheck): Deleted.

  • loader/ResourceTiming.h:

(WebCore::ResourceTiming::networkLoadMetrics const):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::allowTimingDetails const): Deleted.
(): Deleted.

  • page/PerformanceNavigation.cpp:

(WebCore::PerformanceNavigation::redirectCount const):

  • page/PerformanceNavigationTiming.cpp:

(WebCore::PerformanceNavigationTiming::sameOriginCheckFails const):
(WebCore::PerformanceNavigationTiming::redirectCount const):

  • page/PerformanceResourceTiming.cpp:

(WebCore::entryStartTime):
(WebCore::entryEndTime):
(WebCore::PerformanceResourceTiming::redirectStart const):
(WebCore::PerformanceResourceTiming::redirectEnd const):
(WebCore::PerformanceResourceTiming::domainLookupStart const):
(WebCore::PerformanceResourceTiming::domainLookupEnd const):
(WebCore::PerformanceResourceTiming::connectStart const):
(WebCore::PerformanceResourceTiming::connectEnd const):
(WebCore::PerformanceResourceTiming::secureConnectionStart const):
(WebCore::PerformanceResourceTiming::requestStart const):
(WebCore::PerformanceResourceTiming::responseStart const):
(WebCore::PerformanceResourceTiming::transferSize const):
(WebCore::PerformanceResourceTiming::encodedBodySize const):
(WebCore::PerformanceResourceTiming::decodedBodySize const):

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::unloadEventStart const):
(WebCore::PerformanceTiming::unloadEventEnd const):
(WebCore::PerformanceTiming::redirectStart const):
(WebCore::PerformanceTiming::redirectEnd const):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::BlobResourceHandle):

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):

  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::loadResourceSynchronously):
(WebCore::ResourceHandle::isCrossOriginWithoutTAO const):
(WebCore::ResourceHandle::markAsCrossOriginWithoutTAO):
(WebCore::ResourceHandle::sourceOrigin const):
(WebCore::ResourceHandle::hasCrossOriginRedirect const): Deleted.
(WebCore::ResourceHandle::setHasCrossOriginRedirect): Deleted.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/TimingAllowOrigin.cpp: Added.

(WebCore::passesTimingAllowOriginCheck):

  • platform/network/TimingAllowOrigin.h: Added.
  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):
(WebCore::copyTimingData):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::platformLoadResourceSynchronously):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):

Source/WebKit:

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::sendReplyToSynchronousRequest):
Pass complete metrics with sync xhr responses. Many of the tests use sync xhr.
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

Source/WebKitLegacy:

  • WebCoreSupport/PingHandle.h:
  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::loadResourceSynchronously):

LayoutTests:

4:26 PM Changeset in webkit [278737] by achristensen@apple.com
  • 6 edits in trunk

Origin is null in http requests when baseURL has custom scheme on iOS 15.0
https://bugs.webkit.org/show_bug.cgi?id=226760
Source/WebCore:

<rdar://79027280>

Reviewed by Chris Dumez.

This fixes a regression from r272469 where I made two mistakes.

  1. I made schemes handled by a WKURLSchemeHandler able to create non-null origins to increase compatibility.

I forgot that one can also call loadHTMLString and pass a baseURL that can be a custom scheme.
In this case, the custom scheme is also treated as the "origin" so it should be non-null.

  1. When updateRequestForAccessControl is called in the Network Process, it uses SecurityOrigins that have been

serialized and deserialized then passed through the SecurityOrigin constructor, which doesn't know about the
registry of custom schemes that are handled for that WKWebView and may deserialize to a different (null) origin.
We want to deserialize the origin having been made with the rules of SecurityOrigins in the Web Process, so
set its data to be the same as the serialized data.

I added a unit test to prevent future regression.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::decode):

Source/WebKit:

Reviewed by Chris Dumez.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):

Tools:

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:

(TEST):

4:10 PM Changeset in webkit [278736] by Ryan Haddad
  • 6 edits
    1 add in trunk

AX: TestWebKitAPI.WebKit.AccessibilityReduceMotion failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=226758
<rdar://problem/78984253>

Patch by Chris Fleizach <Chris Fleizach> on 2021-06-10
Reviewed by Alex Christensen.

Source/WebKit:

For releases that don't have the accessibility update method, the direct setters need to be called
in order to update the cache.

  • Platform/spi/Cocoa/AccessibilitySupportSPI.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::increaseContrastPreferenceKey):
(WebKit::setPreferenceValue):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/AccessibilityIncreaseContrast.mm: Added.

(-[WKPreferenceObserverForTestingIncreaseContrast preferenceDidChange:key:encodedValue:]):
(TEST):

3:19 PM Changeset in webkit [278735] by Ruben Turcios
  • 3 edits in branches/safari-612.1.18-branch/Source/WebKit

Cherry-pick r278727. rdar://problem/79161529

REGRESSION (r277820): Trackpad interaction in Web Content is not working on iOS or macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=226892
<rdar://79080057>

Patch by Tim Horton <timothy_horton@apple.com> on 2021-06-10
Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKMouseGestureRecognizer.h:
  • UIProcess/ios/WKMouseGestureRecognizer.mm: Stop inheriting from UIHoverGestureRecognizer; since r277820 removed our override of _shouldReceiveTouch, and the default implementation always says NO, r277820 broke trackpad-origiating mouse events (but left hover working, since that is not a touch).

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

2:54 PM Changeset in webkit [278734] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Shouldn't drain the micro task queue when calling out to ObjC
https://bugs.webkit.org/show_bug.cgi?id=161942

Reviewed by Saam Barati.

It looks like the issue is that we aren't checking for the
presence of dropped locks when deciding to drain microtasks during
JSLock::unlock. This meant that when we drop all locks when
calling out to API clients we would drain our microtasks at that
point. An alternative would be to pass an extra parameter to the
unlock function that says not to drain microtasks. I chose not to
do that since it seemed a bit less robust.

This patch is very likely to break existing API users. So I'm adding
a linked on or after check to protect existing Apps.

Lastly, change our Poker Bros check to use applicationSDKVersion too
so others trying to add a linked on or after check don't use
the dyld function directly too.

  • API/tests/testapi.cpp:

(TestAPI::promiseDrainDoesNotEatExceptions):
(testCAPIViaCpp):

  • API/tests/testapi.mm:

(testMicrotaskWithFunction):
(testObjectiveCAPI):

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):

  • runtime/ObjectPrototype.cpp:

(JSC::isPokerBros):

  • runtime/VM.cpp:

(JSC::VM::didExhaustMicrotaskQueue):

2:19 PM Changeset in webkit [278733] by Cameron McCormack
  • 3 edits
    4 copies
    4 adds
    1 delete in trunk/LayoutTests

Move some Mac MathML test expectation files around
https://bugs.webkit.org/show_bug.cgi?id=226868
<rdar://78786837>

Reviewed by Frédéric Wang.

This should give better forward compatibility for Mac platforms, by
making the mac/ directory the default correct one, and the
mac-catalina/ and mac-mojave/ ones be exceptions.

  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Removed.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt.
  • platform/mac-mojave/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
  • platform/mac-mojave/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt:
2:11 PM Changeset in webkit [278732] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] 6x performance improvement in Memoized
https://bugs.webkit.org/show_bug.cgi?id=226891
<rdar://problem/79151940>

Reviewed by Stephanie Lewis.

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

(Memoize.call.decorator): inspect.getargspec retrieves many bits of
information about the function we don't care about. Retrieve arguments manually
(and only do it once) to increase performance of Memoized function calls.

2:03 PM Changeset in webkit [278731] by Aditya Keerthi
  • 5 edits in trunk/Source/WebKit

[iOS] VinylWall app crashes when tapping on 'format' dropdown menu in 'Add Record' menu
https://bugs.webkit.org/show_bug.cgi?id=226886
<rdar://problem/77207322>

Reviewed by Tim Horton.

The VinylWall app contains a WKWebView, and uses <select> to let users
choose options. With the new form controls on iOS, tapping on a <select>
presents a UIContextMenuInteraction, rather than a picker wheel or
popover. However, UIContextMenuInteraction is not supported on apps
linked against an SDK older than iOS 14, resulting in this crash.

To fix, perform a linked-on-or-after check before showing the new UI
for <select> and <input type=text> with a <datalist>. If the check
fails, fallback to the old UI. We already have this check in place for
other context menus in -[WKContentView _shouldUseContextMenus], so we
reuse that method.

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

(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _elementTypeRequiresAccessoryView:]):
(-[WKContentView _shouldUseContextMenusForFormControls]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(WebKit::WebDataListSuggestionsDropdownIOS::show):

  • UIProcess/ios/forms/WKFormSelectControl.mm:

(-[WKFormSelectControl initWithView:]):

1:56 PM Changeset in webkit [278730] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cairo] Fix Path::boundingRectSlowCase when the path is a single MoveTo
https://bugs.webkit.org/show_bug.cgi?id=226613

Cairo says there is no bounding rectangle in this case, whereas the SVG
standard says there it should be a zero-size rectangle at the moved-to
point. This fixes the recently added test
fast/svg/bounding-rect-for-path-with-only-move-command.html

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-10
Reviewed by Fujii Hironori.

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::boundingRectSlowCase const):

1:53 PM Changeset in webkit [278729] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix incorrect check in AudioNode.disconnect()
https://bugs.webkit.org/show_bug.cgi?id=226818
<rdar://problem/79076999>

Reviewed by Eric Carlson.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::disconnect):

1:50 PM Changeset in webkit [278728] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[MSE] When currentTime is a large value, it takes time to process SourceBufferPrivate::evictCodedFrames().
https://bugs.webkit.org/show_bug.cgi?id=226867

Patch by Toshio Ogasawara <toshio.ogasawara@access-company.com> on 2021-06-10
Reviewed by Eric Carlson.

Source/WebCore:

SourceBufferPrivate::evictCodedFrames() now starts with the earliest PTS value
in trackBuffer instead of MediaTime::zeroTime() to avoid unnecessary loops.

Test: media/media-source/media-source-evict-codedframe-large-currenttime.html

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::evictCodedFrames):

LayoutTests:

  • media/media-source/media-source-evict-codedframe-large-currenttime-expected.txt: Added.
  • media/media-source/media-source-evict-codedframe-large-currenttime.html: Added.
1:47 PM Changeset in webkit [278727] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit

REGRESSION (r277820): Trackpad interaction in Web Content is not working on iOS or macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=226892
<rdar://79080057>

Patch by Tim Horton <timothy_horton@apple.com> on 2021-06-10
Reviewed by Wenson Hsieh.

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

Stop inheriting from UIHoverGestureRecognizer; since r277820
removed our override of _shouldReceiveTouch, and the default implementation
always says NO, r277820 broke trackpad-origiating mouse events (but
left hover working, since that is not a touch).

1:17 PM Changeset in webkit [278726] by don.olmstead@sony.com
  • 4 edits in trunk/Source/ThirdParty/ANGLE

[CMake] Make ANGLE library types configurable
https://bugs.webkit.org/show_bug.cgi?id=226840

Reviewed by Kenneth Russell.

The type for ANGLE's libraries was being hard coded. Now the libraries can be set by
specifying the _LIBRARY_TYPE which defaults to STATIC. Windows platforms override this
and use SHARED libraries.

Additionally make compiling ANGLE's EGL library contingent on USE_ANGLE_EGL being enabled
since its not used otherwise.

  • CMakeLists.txt:
  • PlatformFTW.cmake:
  • PlatformWin.cmake:
1:13 PM Changeset in webkit [278725] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Skip tiled-drawing/scrolling/non-fast-region/wheel-event-plugin.html for arm64
https://bugs.webkit.org/show_bug.cgi?id=226896

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:43 PM Changeset in webkit [278724] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.4.4

Tag Safari-612.1.15.4.4.

12:42 PM Changeset in webkit [278723] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/JavaScriptCore

Cherry-pick r278711. rdar://problem/79147214

Another speculative build fix for Win32.
https://bugs.webkit.org/show_bug.cgi?id=226880
rdar://79124858

Reviewed by Keith Miller.

We're getting reports of "warning C4206: nonstandard extension used: translation
unit is empty" turning into a build error on Win32 ports. By design, we rely on
#define flags to make some translation units empty. Hence, we don't want this
warning to turn into an error.

  • config.h:

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

12:41 PM Changeset in webkit [278722] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.4-branch/Source

Versioning.

WebKit-7612.1.15.4.4

12:40 PM Changeset in webkit [278721] by Russell Epstein
  • 1 delete in tags/Safari-612.1.15.4.4

Delete tag.

12:39 PM Changeset in webkit [278720] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.4.4

Tag Safari-612.1.15.4.4.

12:24 PM Changeset in webkit [278719] by commit-queue@webkit.org
  • 5 edits in trunk

[WPE] Enable Cog for developer builds
https://bugs.webkit.org/show_bug.cgi?id=224360

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-10
Reviewed by Adrian Perez de Castro.

.:

Cog would be preferred over MiniBrowser for WPE developer builds because it provides a nicer
user experience, while keeping the same spirit as MiniBrowser. Pass -DENABLE_COG=NO to
CMake to disable it and fall back to MiniBrowser.

  • Source/cmake/OptionsWPE.cmake:

Tools:

  • PlatformWPE.cmake: Enable X11 support in Cog. Re-enable headless support in Cog. Map

libsoup configuration in Cog with the one used by the WebKit build.

12:08 PM Changeset in webkit [278718] by Andres Gonzalez
  • 11 edits in trunk/Source/WebCore

iOS - VoiceOver reads the programmatically associated label instead of the accessible name provided via the aria-label or aria-labelledby attribute
https://bugs.webkit.org/show_bug.cgi?id=226534
rdar://65935211

Reviewed by Chris Fleizach.

The problem is due to VoiceOver retrieving the titleUIElement for the
given object, and using the label of that title element as the label of
the object in question. The solution in this patch is to only return a
title element if the object can have title elements (if exposesTitleUIElement
is true). This check was missing in AccessibilityRenderObject::titleUIElement.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::exposesTitleUIElement const):
This method is no longer necessary in the AXCoreObject interface,
instead is a virtual in the AXObject class hierarchy.

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::titleUIElement const):
Checks whether this object can have a title element.

(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::accessibilityHitTest const):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/atk/WebKitAccessibleUtil.cpp:

(accessibilityTitle):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
No need to cache this value any more.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • accessibility/win/AccessibilityObjectWrapperWin.cpp:

(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):

12:02 PM Changeset in webkit [278717] by Ben Nham
  • 18 edits
    3 adds in trunk

Only cache GET requests in the memory cache
https://bugs.webkit.org/show_bug.cgi?id=226359

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/cache/memory-cache-only-caches-get.html

We only cache GET requests at the disk cache level, but we don't have that same restriction
at the memory cache level. We should make the policies match. In particular, in long-running
webpages, we're accumulating POSTs from XMLHttpRequests in our memory cache and should stop
doing that, since POST response caching is generally not used or expected.

I also changed InspectorInstrumentation::willSendRequest to take an optional CachedResource
parameter because it currently uses InspectorPageAgent::cachedResource to find the resource,
which in turn expects to find the resource in the memory cache. That doesn't work anymore
for these non-GET requests, so we now pass down the CachedResource explicitly in the cases
where that's necessary.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willSendRequestImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willSendRequest):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::resourceTypeForCachedResource):
(WebCore::InspectorNetworkAgent::willSendRequest):

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

(WebCore::DocumentLoader::tryLoadingSubstituteData):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::loadMainResource):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::requestFromDelegate):

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::willSendRequest):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • loader/ResourceLoadNotifier.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::cachedResource const):

  • loader/SubresourceLoader.cpp:
  • loader/SubresourceLoader.h:
  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::update):
(WebCore::ApplicationCacheGroup::startLoadingEntry):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::add):

LayoutTests:

Added tests to make sure only GETs end up in the memory cache.

Also fixed a flaky test that was depending on a POST response in an iframe to be in the
memory cache when doing a history navigation.

  • http/tests/cache/memory-cache-only-caches-get-expected.txt: Added.
  • http/tests/cache/memory-cache-only-caches-get.html: Added.
  • http/tests/cache/resources/echo-cacheable.cgi: Added.
  • http/tests/navigation/post-frames-goback1.html:
  • platform/mac/TestExpectations:
11:54 AM Changeset in webkit [278716] by Chris Dumez
  • 5 edits in trunk/Source

Do some hardening in XPCServiceEventHandler()
https://bugs.webkit.org/show_bug.cgi?id=226860
<rdar://66837596>

Reviewed by Geoffrey Garen.

Do some hardening in XPCServiceEventHandler() to deal with unexpected values and add
some more logging as well.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

  • WebProcess/cocoa/HandleXPCEndpointMessages.h:
  • WebProcess/cocoa/HandleXPCEndpointMessages.mm:

(WebKit::handleXPCEndpointMessages):

11:53 AM Changeset in webkit [278715] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Re-enable legacy WebView plug-ins (but not NPAPI)
https://bugs.webkit.org/show_bug.cgi?id=226890
<rdar://79075349>

Reviewed by Tim Horton.

In r276720 I put the check in the wrong place.
This should also fix rdar://77179042 again, which I broke, fixed, broke, and am now fixing again.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPlugin):

11:53 AM Changeset in webkit [278714] by Chris Dumez
  • 11 edits
    1 delete in trunk/Source/WebCore

Replace ReadableStreamChunk struct with a WTF::Span
https://bugs.webkit.org/show_bug.cgi?id=226879

Reviewed by Alex Christensen.

Replace ReadableStreamChunk struct with a WTF::Span now that we support
Span and they are essentially the same thing.

  • Headers.cmake:
  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::addAll):
(WebCore::DOMCache::put):

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::resolve):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveData):
(WebCore::FetchResponse::BodyLoader::consumeDataByChunk):

  • Modules/fetch/FetchResponse.h:
  • Modules/streams/ReadableStreamChunk.h: Removed.
  • Modules/streams/ReadableStreamSink.cpp:

(WebCore::ReadableStreamToSharedBufferSink::enqueue):

  • Modules/streams/ReadableStreamSink.h:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/context/ServiceWorkerFetch.cpp:
11:26 AM Changeset in webkit [278713] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: (r278650 - r278655) service-workers/service-worker/credentials.https.html and content-security-policy/reporting/report-only-in-meta.sub.html failing together constantly.
https://bugs.webkit.org/show_bug.cgi?id=226884

Unreviewed test gardening.

11:11 AM Changeset in webkit [278712] by Chris Dumez
  • 10 edits in trunk/Source

Enable WebPage's release logging in ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=226510

Reviewed by Eric Carlson.

Enable WebPage's release logging in ephemeral sessions. Our release logging doesn't contain
anything sensitive and not having this logging makes it hard to debug issues in apps using
ephemeral sessions.

Source/WebCore:

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::supportsVersion const):
(WebCore::PaymentCoordinator::canMakePayments):
(WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard):
(WebCore::PaymentCoordinator::openPaymentSetup):
(WebCore::PaymentCoordinator::beginPaymentSession):
(WebCore::PaymentCoordinator::completeMerchantValidation):
(WebCore::PaymentCoordinator::completeShippingMethodSelection):
(WebCore::PaymentCoordinator::completeShippingContactSelection):
(WebCore::PaymentCoordinator::completePaymentMethodSelection):
(WebCore::PaymentCoordinator::completePaymentMethodModeChange):
(WebCore::PaymentCoordinator::completePaymentSession):
(WebCore::PaymentCoordinator::abortPaymentSession):
(WebCore::PaymentCoordinator::cancelPaymentSession):
(WebCore::PaymentCoordinator::validateMerchant):
(WebCore::PaymentCoordinator::didAuthorizePayment):
(WebCore::PaymentCoordinator::didSelectPaymentMethod):
(WebCore::PaymentCoordinator::didSelectShippingMethod):
(WebCore::PaymentCoordinator::didSelectShippingContact):
(WebCore::PaymentCoordinator::didChangePaymentMethodMode):
(WebCore::PaymentCoordinator::didCancelPaymentSession):
(WebCore::PaymentCoordinator::shouldEnableApplePayAPIs const):
(WebCore::PaymentCoordinator::setApplePayIsActiveIfAllowed const):
(WebCore::PaymentCoordinator::shouldAllowUserAgentScripts const):
(WebCore::PaymentCoordinator::getSetupFeatures):
(WebCore::PaymentCoordinator::beginApplePaySetup):
(WebCore::PaymentCoordinator::endApplePaySetup):

  • Modules/applepay/PaymentCoordinatorClient.h:
  • testing/MockPaymentCoordinator.h:

Source/WebKit:

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

(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::close):
(WebKit::WebPage::freezeLayerTree):
(WebKit::WebPage::unfreezeLayerTree):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::cancelMarkLayersVolatile):
(WebKit::WebPage::touchEventSync):
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::setIsTakingSnapshotsForApplicationSuspension):
(WebKit::WebPage::suspend):
(WebKit::WebPage::resume):
(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::registerURLSchemeHandler):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

10:18 AM Changeset in webkit [278711] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Another speculative build fix for Win32.
https://bugs.webkit.org/show_bug.cgi?id=226880
rdar://79124858

Reviewed by Keith Miller.

We're getting reports of "warning C4206: nonstandard extension used: translation
unit is empty" turning into a build error on Win32 ports. By design, we rely on
#define flags to make some translation units empty. Hence, we don't want this
warning to turn into an error.

  • config.h:
10:06 AM Changeset in webkit [278710] by youenn@apple.com
  • 7 edits in trunk

CountQueuingStrategy.constructor misses checking the type of init param
https://bugs.webkit.org/show_bug.cgi?id=226759

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/queuing-strategies.any-expected.txt:
  • web-platform-tests/streams/queuing-strategies.any.worker-expected.txt:

Source/WebCore:

Now that streams are WebIDLed, add related parameter type checks.
Covered by rebased tests.

  • Modules/streams/CountQueuingStrategy.js:

(initializeCountQueuingStrategy):

LayoutTests:

  • streams/shadowing-defineProperty.html:
10:02 AM Changeset in webkit [278709] by Truitt Savell
  • 3 edits in trunk/Tools

Remove Ews179 and bot279 from configs
https://bugs.webkit.org/show_bug.cgi?id=226855

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/config.json:
  • CISupport/ews-build/config.json:
9:56 AM Changeset in webkit [278708] by Russell Epstein
  • 7 edits in branches/safari-611-branch

Cherry-pick r278177. rdar://problem/79144899

Increase NumberToStringBuffer to account for negative number
https://bugs.webkit.org/show_bug.cgi?id=226014

Patch by Mikhail R. Gadelha <mikhail.ramalho@gmail.com> on 2021-05-27
Reviewed by Robin Morisset.

In r250389, NumberToStringBuffer length was increased from 96 to 123 because:

<21 digits> + decimal point + <100 digits> + null char = 123.

however,

a = -100000000000000000000
a.toFixed(100)

is a valid conversion and it is 124 chars long, because of the "-" sign.

So this patch increases the length of NumberToStringBuffer to 124 and adds new
test cases.

Source/WTF:

Reviewed by Ryosuke Niwa.

  • wtf/dtoa.h:

LayoutTests:

  • js/dom/number-tofixed-expected.txt:
  • js/dom/script-tests/number-tofixed.js:
  • js/kde/Number-expected.txt:
  • js/kde/script-tests/Number.js:

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

9:55 AM Changeset in webkit [278707] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r278166. rdar://problem/79144884

Pass frame ref during navigationPolicyCompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=226268
<rdar://problem/78512383>

Reviewed by Ryosuke Niwa.

Pass the active frame to the navigationPolicyCompletionHandler lambda as a Ref to
ensure it is kept alive during the policy check and subsequent steps.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::willSendRequest):

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

9:52 AM Changeset in webkit [278706] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.3.8

9:41 AM Changeset in webkit [278705] by commit-queue@webkit.org
  • 4 edits
    4 copies
    2 moves in trunk

Treat intrinsic like *-content
https://bugs.webkit.org/show_bug.cgi?id=226790

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-10
Reviewed by Sergio Villar Senin.

Source/WebCore:

Treat intrinsic like *-content for intrinsic logical
content calculations.

Tests: fast/flexbox/intrinsic-width-column-flow-crash.html

fast/flexbox/intrinsic-width-crash.html
fast/flexbox/min-intrinsic-width-crash.html

  • platform/Length.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing const):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing const):

LayoutTests:

Add tests for intrinsic and min-intrinsic and move relevant tests to fast/flexbox.

  • fast/flexbox/intrinsic-width-column-flow-crash-expected.txt: Copied from LayoutTests/fast/css/flex-box-intrinsic-width-crash-expected.txt.
  • fast/flexbox/intrinsic-width-column-flow-crash.html: Copied from LayoutTests/fast/css/flex-box-intrinsic-width-crash.html.
  • fast/flexbox/intrinsic-width-crash-expected.txt: Copied from LayoutTests/fast/css/flex-box-intrinsic-width-crash-expected.txt.
  • fast/flexbox/intrinsic-width-crash.html: Copied from LayoutTests/fast/css/flex-box-intrinsic-width-crash.html.
  • fast/flexbox/min-intrinsic-width-crash-expected.txt: Renamed from LayoutTests/fast/css/flex-box-intrinsic-width-crash-expected.txt.
  • fast/flexbox/min-intrinsic-width-crash.html: Renamed from LayoutTests/fast/css/flex-box-intrinsic-width-crash.html.
9:20 AM Changeset in webkit [278704] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Mark a navigation timing test as flaky
https://bugs.webkit.org/show_bug.cgi?id=226629

8:15 AM Changeset in webkit [278703] by Ruben Turcios
  • 1 copy in branches/safari-612.1.18-branch

New branch.

8:08 AM Changeset in webkit [278702] by Chris Dumez
  • 36 edits in trunk/Source

Fix some inefficient uses of SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=226857

Reviewed by Darin Adler.

Fix some inefficient uses of SharedBuffer:

  • Avoid calling SharedBuffer::data() whenever possible since this function may have to combine internal segments of SharedBuffer. Added a convenience function on SharedBuffer (forEachSegment()) to get the data pointer / size of each segment.
  • Avoid some unnecessary construction of SharedBuffer simply to get a Vector. We should construct the Vector directly in such cases. I dropped the Blob factory that took in a SharedBuffer as it was inefficient and frequently called instead of the more efficient factory that takes in a Vector<uint8_t>.
  • Add convenience functions to SharedBuffer that return a Vector, including one named takeData() that avoids copying the data.
  • Add convenience functions to SharedBuffer for doing a prefix check or copying to a destination pointer.
  • Modules/async-clipboard/ClipboardItem.cpp:

(WebCore::ClipboardItem::blobFromString):

  • Modules/async-clipboard/ios/ClipboardImageReaderIOS.mm:

(WebCore::ClipboardImageReader::readBuffer):

  • Modules/async-clipboard/mac/ClipboardImageReaderMac.mm:

(WebCore::ClipboardImageReader::readBuffer):

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::blobFromData):
(WebCore::packageFormData):
(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::takeAsBlob):

  • Modules/indexeddb/IDBGetResult.cpp:
  • Modules/indexeddb/IDBGetResult.h:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::createDataAvailableEvent):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::didReceiveRawData):

  • editing/WebCorePasteboardFileReader.cpp:

(WebCore::WebCorePasteboardFileReader::readBuffer):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::createFragmentAndAddResources):
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readImage):
(WebCore::attachmentForData):

  • editing/gtk/WebContentReaderGtk.cpp:

(WebCore::WebContentReader::readImage):

  • fileapi/Blob.cpp:
  • fileapi/Blob.h:
  • fileapi/NetworkSendQueue.cpp:

(WebCore::NetworkSendQueue::processMessages):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::didReceiveResponse):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer):

  • loader/ResourceCryptographicDigest.cpp:

(WebCore::cryptographicDigestForSharedBuffer):

  • loader/ResourceCryptographicDigest.h:
  • loader/SubresourceIntegrity.cpp:

(WebCore::matchIntegrityMetadata):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::notifyFinished):

  • platform/SharedBuffer.cpp:

(WebCore::combineSegmentsData):
(WebCore::SharedBuffer::combineIntoOneSegment const):
(WebCore::SharedBuffer::data const):
(WebCore::SharedBuffer::takeData):
(WebCore::SharedBuffer::toHexString const):
(WebCore::SharedBuffer::forEachSegment const):
(WebCore::SharedBuffer::startsWith const):
(WebCore::SharedBuffer::copyTo const):

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::createCFData const):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemBuffer::append):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • workers/ScriptBuffer.cpp:

(WebCore::ScriptBuffer::toString const):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createResponseBlob):

7:38 AM Changeset in webkit [278701] by youenn@apple.com
  • 1880 edits
    2 moves
    465 adds
    118 deletes in trunk

Update libwebrtc to M92
https://bugs.webkit.org/show_bug.cgi?id=226494

LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
  • web-platform-tests/webrtc/protocol/rtp-payloadtypes-expected.txt:
  • web-platform-tests/webrtc/protocol/unknown-mediatypes-expected.txt:
  • web-platform-tests/webrtc/receiver-track-live.https-expected.txt:

Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/webrtc: Resynced.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Covered by existing tests.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::LibWebRTCRtpReceiverBackend::createSource):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillInboundRtpStreamStats):
(WebCore::fillOutboundRtpStreamStats):
(WebCore::fillRTCIceCandidateStats):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::signalingThread):
(WebCore::LibWebRTCProvider::createPeerConnectionFactory):
(WebCore::LibWebRTCProvider::setPeerConnectionFactory):
(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::createConnection):
(WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnectionOrError):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

Reviewed by Eric Carlson.

  • webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html:

Update test since the backend is now fixed.

6:39 AM Changeset in webkit [278700] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

ASSERT NOT REACHED in webcore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree()
https://bugs.webkit.org/show_bug.cgi?id=226866
<rdar://problem/79120482>

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:34 AM Changeset in webkit [278699] by ysuzuki@apple.com
  • 6 edits in trunk

[JSC] Remove useDataICInOptimizingJIT option
https://bugs.webkit.org/show_bug.cgi?id=226862

Reviewed by Mark Lam.

Source/JavaScriptCore:

Originally this option is added to fix performance problem when using DataIC in DFG / FTL.
But it turned out that that performance regression was caused due to disablement of InlineAccess when
using DataIC. With the configuration using DataIC and InlineAccess, we do not observe performance regression.
So, let's just drop this option.

  • jit/JITCode.h:

(JSC::JITCode::useDataIC):

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:

Tools:

  • Scripts/run-jsc-stress-tests:
1:36 AM Changeset in webkit [278698] by Adrian Perez de Castro
  • 22 edits in trunk/Source

Non-unified build fixes, early May 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=226763

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • bytecode/InlineAccess.h: Add missing forward declaration for the CodeBlock type.
  • jit/JITInlineCacheGenerator.cpp: Add missing CCallHelpers.h header.
  • runtime/Intrinsic.h: Add missing <optional> header.
  • yarr/YarrUnicodeProperties.h: Ditto.

Source/WebCore:

  • css/calc/CSSCalcValue.cpp: Add missing CSSCalcSymbolTable.h header.
  • layout/formattingContexts/inline/text/TextUtil.h: Add missing forward declaration for

InlineTextBox class.

  • loader/MixedContentChecker.h: Add missing <optional> header.
  • page/FrameSnapshotting.cpp: Remove unneeded inclusion of DestinationColorSpace.h and

wtf/OptionSet.h headers.

  • page/FrameSnapshotting.h: Add mission DestinationColorSpace.h and wtf/OptionSet.h headers,

remove now unneeded wtf/Forward.h heeder and forward declaration for the
DestinationColorSpace class.

  • platform/DateComponents.h: Add missing <optional> header, remove unneeded <limits> header.
  • platform/Theme.h: Add missin <optional> header.
  • platform/graphics/HEVCUtilities.h: Ditto.
  • rendering/HighlightData.h: Add missing forward declaration for the RenderText class.
  • rendering/MarkedText.cpp: Add missing HighlightData.h header.
  • rendering/RenderLineBoxList.cpp: Add missing inclusion of the LegacyInlineElementBox.h

header.

  • style/StyleAdjuster.cpp: Add missing ShadowRoot.h header.
  • svg/SVGToOTFFontConversion.h: Add missing <optional> header.
  • workers/service/ServiceWorkerClientQueryOptions.h: Ditto.

Source/WebKit:

  • Shared/WebPageNetworkParameters.cpp: Add missing inclusion of the ArgumentCoders.h header.
1:06 AM Changeset in webkit [278697] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Ignore Intl.NumberFormat feature options when linked-ICU is old
https://bugs.webkit.org/show_bug.cgi?id=226861
rdar://77393100

Reviewed by Ross Kirsling.

Let's just ignore the option when Intl.NumberFormat features cannot be implemented since the linked ICU is old.
There is no way not to expose these features since Intl.NumberFormat's these changes are additional ones and Intl.NumberFormat existed before.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

Jun 9, 2021:

11:26 PM Changeset in webkit [278696] by Ross Kirsling
  • 20 edits
    6 moves in trunk/Source/JavaScriptCore

[JSC] Rename *ByIdVariant to *ByVariant and *ByKind::Normal to *ByKind::ById
https://bugs.webkit.org/show_bug.cgi?id=226750

Reviewed by Yusuke Suzuki.

Cleanup patch following r278445.

  1. {Get, Delete, In}ByStatus (but not Put) have had Id removed from their names; likewise, remove Id from the names of {Get, Delete, In}ByIdVariant. These are used *before* ByVal has been converted to ById.
  1. The {Get, Del, In}ByKind enum classes shouldn't really call ById Normal -- let's say ById explicitly.
  1. Bonus: In DFGBytecodeParser, move some *Status::computeFor calls inside the conditional that uses them.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/DeleteByStatus.cpp:

(JSC::DeleteByStatus::appendVariant):
(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::DeleteByStatus::visitAggregateImpl):
(JSC::DeleteByStatus::markIfCheap):

  • bytecode/DeleteByStatus.h:
  • bytecode/DeleteByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/DeleteByIdVariant.cpp.

(JSC::DeleteByVariant::DeleteByVariant):
(JSC::DeleteByVariant::~DeleteByVariant):
(JSC::DeleteByVariant::operator=):
(JSC::DeleteByVariant::attemptToMerge):
(JSC::DeleteByVariant::writesStructures const):
(JSC::DeleteByVariant::visitAggregateImpl):
(JSC::DeleteByVariant::markIfCheap):
(JSC::DeleteByVariant::dump const):
(JSC::DeleteByVariant::finalize):
(JSC::DeleteByVariant::dumpInContext const):

  • bytecode/DeleteByVariant.h: Renamed from Source/JavaScriptCore/bytecode/DeleteByIdVariant.h.

(JSC::DeleteByVariant::overlaps):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::appendVariant):
(JSC::GetByStatus::computeFromLLInt):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::merge):
(JSC::GetByStatus::visitAggregateImpl):
(JSC::GetByStatus::markIfCheap):
(JSC::GetByStatus::finalize):

  • bytecode/GetByStatus.h:
  • bytecode/GetByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/GetByIdVariant.cpp.

(JSC::GetByVariant::GetByVariant):
(JSC::GetByVariant::~GetByVariant):
(JSC::GetByVariant::operator=):
(JSC::GetByVariant::canMergeIntrinsicStructures const):
(JSC::GetByVariant::attemptToMerge):
(JSC::GetByVariant::visitAggregateImpl):
(JSC::GetByVariant::markIfCheap):
(JSC::GetByVariant::finalize):
(JSC::GetByVariant::dump const):
(JSC::GetByVariant::dumpInContext const):

  • bytecode/GetByVariant.h: Renamed from Source/JavaScriptCore/bytecode/GetByIdVariant.h.

(JSC::GetByVariant::overlaps):

  • bytecode/InByStatus.cpp:

(JSC::InByStatus::appendVariant):
(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::InByStatus::merge):
(JSC::InByStatus::markIfCheap):
(JSC::InByStatus::finalize):

  • bytecode/InByStatus.h:
  • bytecode/InByVariant.cpp: Renamed from Source/JavaScriptCore/bytecode/InByIdVariant.cpp.

(JSC::InByVariant::InByVariant):
(JSC::InByVariant::attemptToMerge):
(JSC::InByVariant::markIfCheap):
(JSC::InByVariant::finalize):
(JSC::InByVariant::dump const):
(JSC::InByVariant::dumpInContext const):

  • bytecode/InByVariant.h: Renamed from Source/JavaScriptCore/bytecode/InByIdVariant.h.

(JSC::InByVariant::overlaps):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handleGetPrivateNameById):
(JSC::DFG::ByteCodeParser::handleDeleteById):
(JSC::DFG::ByteCodeParser::handleInById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitDeleteByOffset):

  • dfg/DFGNode.h:
  • dfg/DFGValidate.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiDeleteByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
(JSC::tryCacheGetBy):
(JSC::repatchDeleteBy):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::resetGetBy):
(JSC::resetDelBy):
(JSC::resetInBy):

  • jit/Repatch.h:
10:27 PM Changeset in webkit [278695] by Russell Epstein
  • 1 copy in tags/Safari-612.1.17.10.2

Tag Safari-612.1.17.10.2.

10:24 PM Changeset in webkit [278694] by Russell Epstein
  • 8 edits in branches/safari-612.1.17.10-branch/Source

Versioning.

WebKit-7612.1.17.10.2

9:59 PM Changeset in webkit [278693] by svillar@igalia.com
  • 2 edits in trunk/Tools

Add email address for Igalia's WebKit layout team to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=226829

Reviewed by Simon Fraser.

  • Scripts/webkitpy/common/config/contributors.json:
9:52 PM Changeset in webkit [278692] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check page in generateCertificate
https://bugs.webkit.org/show_bug.cgi?id=226798

Patch by Rob Buis <rbuis@igalia.com> on 2021-06-09
Reviewed by Youenn Fablet.

Source/WebCore:

Null check page in generateCertificate.

Test: http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash.html

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::generateCertificate):

LayoutTests:

  • http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash-expected.txt: Added.
  • http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash.html: Added.
9:41 PM Changeset in webkit [278691] by Megan Gardner
  • 3 edits
    1 add in trunk/Source/WebKit

Create SPI file for Synapse so external builds will work.
https://bugs.webkit.org/show_bug.cgi?id=226844

Reviewed by Tim Horton.

  • Platform/spi/Cocoa/SynapseSPI.h: Added.
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • WebKit.xcodeproj/project.pbxproj:
8:23 PM Changeset in webkit [278690] by Cameron McCormack
  • 4 edits in trunk/Source/WebCore

Add window.internals.log()
https://bugs.webkit.org/show_bug.cgi?id=226403

Reviewed by Tim Horton.

window.internals.log() writes output to stderr using WTFLogAlways.
This may be useful for interleaving some output generated from within a
test with WebCore logging, which also goes to stderr. console.log()
doesn't work for this, since that goes to stdout and is captured as
the test output.

  • testing/Internals.cpp:

(WebCore::Internals::log):

  • testing/Internals.h:
  • testing/Internals.idl:
8:17 PM Changeset in webkit [278689] by cathiechen
  • 6 edits in trunk

Aspect ratio from width and height attribute is not compatible to string with invalid ends
https://bugs.webkit.org/show_bug.cgi?id=226469

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:

Source/WebCore:

The patch follows the steps defined in [1] to parse the dimension values from the attribute values.
It adds HTMLDimension to present the dimension value which has two types, Percentage and Pixel.
And parseHTMLDimension() follows the specification steps to check validation and parse the dimension
value. Currently, it is only used by parsing aspect-ratio from width and height attributes. It will
apply to other attributes length parse in the future patch.

[1] https://html.spec.whatwg.org/#rules-for-parsing-dimension-values

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::applyAspectRatioFromWidthAndHeightAttributesToStyle): Call parseHTMLDimension to get the length values.

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseHTMLDimensionNumber):
(WebCore::parseHTMLDimension):

  • html/parser/HTMLParserIdioms.h:
8:10 PM Changeset in webkit [278688] by Chris Gambrell
  • 2 edits in trunk/Tools

Add personal email to Tools/Scripts/webkitpy/common/config/contributors.json
https://bugs.webkit.org/show_bug.cgi?id=226845
<rdar://problem/79095492>

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/contributors.json:
6:32 PM Changeset in webkit [278687] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

clang-cl: JIT.h(966,67): error: no viable conversion from 'JSC::AbstractMacroAssembler<JSC::X86Assembler>::Address' to 'FunctionPtr<CFunctionPtrTag>'
https://bugs.webkit.org/show_bug.cgi?id=226850

Reviewed by Yusuke Suzuki.

WinCairo clang-cl builds got broken since r278656 (Bug 226072).

  • jit/JIT.h: Use the common callOperation(Address, Args...) for

x64 Windows. Added static_assert to check the return type.

6:15 PM Changeset in webkit [278686] by Russell Epstein
  • 1 copy in tags/Safari-612.1.15.4.3

Tag Safari-612.1.15.4.3.

6:13 PM Changeset in webkit [278685] by Russell Epstein
  • 2 edits in branches/safari-612.1.15.4-branch/Source/JavaScriptCore

Cherry-pick r278672. rdar://problem/79111918

Speculative build fix for Win32.
https://bugs.webkit.org/show_bug.cgi?id=226793
rdar://79032803

Reviewed by Saam Barati.

  • API/JSCallbackObject.h:

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

6:12 PM Changeset in webkit [278684] by Russell Epstein
  • 8 edits in branches/safari-612.1.15.4-branch/Source

Versioning.

WebKit-7612.1.15.4.3

5:11 PM Changeset in webkit [278683] by Andres Gonzalez
  • 3 edits
    4 adds in trunk

iOS - VoiceOver reads the old heading text when updated with heading.firstChild.data.
https://bugs.webkit.org/show_bug.cgi?id=226754
Source/WebCore:

rdar://44949563

Reviewed by Chris Fleizach.

Tests: accessibility/ios-simulator/heading-text-updates.html

accessibility/mac/heading-text-updates.html

The problem was caused by [WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]
setting the value and label of static text inside headings. since this
method is called only on the initialization of the object, the label is
never updated when the text changes.
The solution is to move the logic to return the label and value of
static text inside headings to the accessibilityLabel and accessibilityValue
respectively.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):

LayoutTests:

Reviewed by Chris Fleizach.

  • accessibility/ios-simulator/heading-text-updates-expected.txt: Added.
  • accessibility/ios-simulator/heading-text-updates.html: Added.
  • accessibility/mac/heading-text-updates-expected.txt: Added.
  • accessibility/mac/heading-text-updates.html: Added.
4:44 PM Changeset in webkit [278682] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

[GTK] Duplicate WebKitWebView::show-option-menu confuses introspection, should use --warn-error when building gir
https://bugs.webkit.org/show_bug.cgi?id=222985

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-09
Reviewed by Adrian Perez de Castro.

WebKitWebView::show-option-menu has different parameters for GTK than it does for WPE. It
seems g-ir-scanner is taking the WPE documentation and merging it with the GTK parameters.
We can fix this by moving the introspection comment into platform-specific files.

Additionally, let's use --warn-error to turn warnings into errors to prevent this from ever
happening again, as we already do when generating introspection for JavaScriptCore.

  • PlatformGTK.cmake:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_class_init):

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(createShowOptionMenuSignal):

  • UIProcess/API/wpe/WebKitWebViewWPE.cpp:

(createShowOptionMenuSignal):

4:41 PM Changeset in webkit [278681] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Nullptr crash in MediaSource::updateBufferedIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=226851
rdar://79059134

Reviewed by Devin Rousso.

No new tests, I was unable to come up with a reproducible case.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::updateBufferedIfNeeded): NULL-check m_private.

3:46 PM Changeset in webkit [278680] by Russell Epstein
  • 1 copy in tags/Safari-612.1.17.10.1

Tag Safari-612.1.17.10.1.

3:45 PM Changeset in webkit [278679] by Russell Epstein
  • 8 edits in branches/safari-612.1.17.10-branch/Source

Versioning.

WebKit-7612.1.17.10.1

3:42 PM Changeset in webkit [278678] by Devin Rousso
  • 6 edits in trunk/LayoutTests

(r278618) media/modern-media-controls/overflow-support/chapters.html is timing out since introduction
https://bugs.webkit.org/show_bug.cgi?id=226828
<rdar://problem/79084756>

Unreviewed text fix.

  • media/modern-media-controls/overflow-support/chapters.html:
  • media/modern-media-controls/overflow-support/chapters-expected.txt:

Wait for the <track kind="chapters"> to load before clicking on the overflow button as
otherwise there won't be any chapter cues to display in the contextmenu, meaning that the
contextmenu would be empty and therefore not be shown.

  • http/tests/resources/js-test-pre.js:

(shouldBecomeEqual):
(shouldBecomeDifferent):

  • resources/js-test-pre.js:

(shouldBecomeEqual):
(shouldBecomeDifferent):

  • resources/js-test.js:

(shouldBecomeEqual):
(shouldBecomeDifferent):
Allow for completionHandler to not be provided, which will cause the function to return a Promise.

3:41 PM Changeset in webkit [278677] by Russell Epstein
  • 1 copy in branches/safari-612.1.17.10-branch

New branch.

2:44 PM Changeset in webkit [278676] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

REGRESSION (r278630?): [iOS 14] http/tests/ssl/applepay/ApplePayButton.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=226826

Unreviewed test gardening.

Updating expectations while EWS is being updated with patch.

  • platform/ios-wk2/TestExpectations:
2:34 PM Changeset in webkit [278675] by Russell Epstein
  • 8 edits in branches/safari-612.1.16.10-branch/Source

Versioning.

WebKit-7612.1.16.10.1

2:28 PM Changeset in webkit [278674] by Ryan Haddad
  • 2 edits in trunk/Tools

[test-webkit-lldb] 3 dump_class_layout_unittest.TestDumpClassLayout tests failing with Xcode 12.5
https://bugs.webkit.org/show_bug.cgi?id=226540

Unreviewed test gardening.

  • lldb/dump_class_layout_unittest.py: Rebaseline tests.
2:23 PM Changeset in webkit [278673] by Russell Epstein
  • 1 copy in branches/safari-612.1.16.10-branch

New branch.

2:14 PM Changeset in webkit [278672] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Speculative build fix for Win32.
https://bugs.webkit.org/show_bug.cgi?id=226793
rdar://79032803

Reviewed by Saam Barati.

  • API/JSCallbackObject.h:
2:03 PM Changeset in webkit [278671] by Fujii Hironori
  • 39 edits in trunk/LayoutTests

LayoutTests: Use os.path.dirname() instead of split('/') for Windows Python
https://bugs.webkit.org/show_bug.cgi?id=226802

Reviewed by Jonathan Bedard.

Windows Python uses backlash for path separator. Use
os.path.dirname() to get a parent directory.

  • http/tests/appcache/resources/scope1/cookie-protected-manifest.py:
  • http/tests/appcache/resources/scope2/cookie-protected-script.py:
  • http/tests/cache/disk-cache/resources/make-sha1-collision.py:
  • http/tests/cache/resources/load-and-check-referer.py:
  • http/tests/cache/resources/post-image-to-verify.py:
  • http/tests/cookies/multiple-redirect-and-set-cookie.py:

(redirect_url):

  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.py:
  • http/tests/cookies/same-site/resources/fetch-after-top-level-same-origin-redirect.py:
  • http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.py:
  • http/tests/gzip-content-encoding/resources/echo-data-encoding-with-gzip.py:
  • http/tests/media/resources/serve_video.py:
  • http/tests/misc/resources/404image.py:
  • http/tests/misc/resources/image-checks-for-accept.py:
  • http/tests/misc/resources/protected/protected-image.py:
  • http/tests/multipart/resources/multipart-nodashes.py:
  • http/tests/multipart/resources/multipart.py:
  • http/tests/quicklook/resources/word-document-with-csp-block-frame-ancestors.py:
  • http/tests/referrer-policy/resources/image.py:
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.py:
  • http/tests/security/mixedContent/resources/subresource/protected-image.py:
  • http/tests/security/mixedContent/resources/subresource/protected-script.py:
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.py:
  • http/tests/security/mixedContent/resources/subresource2/protected-image.py:
  • http/tests/security/resources/abe-allow-credentials.py:
  • http/tests/security/resources/abe-allow-star.py:
  • http/tests/security/resources/allow-if-origin.py:
  • http/tests/security/resources/captions-with-access-control-headers.py:
  • http/tests/security/resources/image-access-control.py:
  • http/tests/security/resources/image-credential-check.py:
  • http/tests/security/resources/loading-subresources.py:
  • http/tests/security/resources/reference-movie-cross-origin-allow.py:
  • http/tests/security/resources/subresource1/protected-image.py:
  • http/tests/security/resources/subresource2/protected-image.py:
  • http/tests/security/resources/xorigincss1-allow-star.py:
  • platform/wincairo/TestExpectations:
1:54 PM Changeset in webkit [278670] by Dewei Zhu
  • 2 edits in trunk/Tools

HTTP server should run with the same python executable as run-benchmark script.
https://bugs.webkit.org/show_bug.cgi?id=226834

Reviewed by Jonathan Bedard.

'SimpleHTTPServerDriver._ensure_http_server_dependencies' will not work if the
python version used by run-benchmark is not the same as the one invokes http server.

Remove python modules no longer needed by http server.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver._ensure_http_server_dependencies):

1:46 PM Changeset in webkit [278669] by Chris Dumez
  • 34 edits in trunk/Source

Avoid some calls to StringView::toString() / StringView::toStringWithoutCopying()
https://bugs.webkit.org/show_bug.cgi?id=226803

Reviewed by Darin Adler.

Source/WebCore:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontVariationTag):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeDebugInfo):

Source/WTF:

Add support to TextStream for printing a StringView directly, without having to convert
it to a String first.

  • wtf/text/TextStream.cpp:

(WTF::TextStream::operator<<):

  • wtf/text/TextStream.h:
12:53 PM Changeset in webkit [278668] by Fujii Hironori
  • 2 edits in trunk/Tools

CISupport/test-result-archive script reports "SyntaxError: invalid syntax" with Python 3
https://bugs.webkit.org/show_bug.cgi?id=226797

Reviewed by Jonathan Bedard.

  • CISupport/test-result-archive:

(archive_test_results): Replaced the old syntax with 'as' for
'except' clauses.

11:33 AM Changeset in webkit [278667] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[css-counter-styles] Mark counter-style descriptors as "descriptor-only"
https://bugs.webkit.org/show_bug.cgi?id=226792

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-06-09
Reviewed by Simon Fraser.

  • css/CSSProperties.json:

Mark @counter-style rule descriptors (additive-symbols, fallback, pad,
symbols, negative, prefix, range, suffix, system) as "descriptor-only".

Note that while speak-as is also a valid descriptor for
@counter-style rules, it is deliberately excluded from this change as
it is also a property in the CSS Speech specification.

https://www.w3.org/TR/css-speech-1/#speaking-props-speak-as

10:36 AM Changeset in webkit [278666] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Skip http/tests/contentextensions/plugin-doesnt-crash.html on arm64
https://bugs.webkit.org/show_bug.cgi?id=226783

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:01 AM Changeset in webkit [278665] by achristensen@apple.com
  • 8 edits in trunk

Performance API: Implement performance.timeOrigin
https://bugs.webkit.org/show_bug.cgi?id=174862

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/hr-time/idlharness.any-expected.txt:
  • web-platform-tests/hr-time/idlharness.any.worker-expected.txt:
  • web-platform-tests/hr-time/window-worker-timeOrigin.window-expected.txt:

Source/WebCore:

  • page/Performance.cpp:

(WebCore::Performance::timeOrigin const):

  • page/Performance.h:
  • page/Performance.idl:
9:55 AM Changeset in webkit [278664] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix.

  • rendering/RenderLayerScrollableArea.cpp:
9:33 AM Changeset in webkit [278663] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[iOS] UIDelegate::UIClient::fullscreenMayReturnToInline() is not called when a video exits fullscreen
https://bugs.webkit.org/show_bug.cgi?id=226785

Reviewed by Eric Carlson.

On iOS, UIDelegate::UIClient::fullscreenMayReturnToInline() is called when
a video exits picture-in-picture, but not when a video exits fullscreen.
This patch fixes that.

We cannot add a regression test for this patch before fixing webkit.org/b/212654.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::exitFullscreen):

9:31 AM Changeset in webkit [278662] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix incorrect register reuse in 32bit after r278568
https://bugs.webkit.org/show_bug.cgi?id=226817

Patch by Xan Lopez <Xan Lopez> on 2021-06-09
Reviewed by Caio Araujo Neponoceno de Lima.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
The JSVALUE32_64 branch potentially needs both the tag and payload
registers for both left/right nodes, so we cannot reuse any of
them for the result since the first thing the code does is set it
zero. Just remove the Reuse construction.

9:02 AM Changeset in webkit [278661] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Clean up scrollbar creation code in RenderLayerScrollableArea
https://bugs.webkit.org/show_bug.cgi?id=226805

Reviewed by Alan Bujtas.

Share code between updateScrollbarsAfterStyleChange() and updateScrollbarsAfterLayout() which
had a lot of common logic. updateScrollbarPresenceAndState() takes two optionals, indicating
whether information about overflow is available (which is only the case after layout).

Also make lots of member function declarations private in RenderLayerScrollableArea.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollingNodeLayers):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::updateScrollbarPresenceAndState):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):

  • rendering/RenderLayerScrollableArea.h:
8:21 AM Changeset in webkit [278660] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix inadvertent tag corruption in functionAddressOf
https://bugs.webkit.org/show_bug.cgi?id=226503

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-09
Reviewed by Darin Adler.

Original patch by Angelos Oikonomopoulos.

The cast was sign-extending the JSValue address in 32 bits, so that addresses
that had the most significant set gave us a sign-extended result in
asNumber which was then converted to an invalid NaN by the bitcast.

Instead, cast the address to uintptr_t, and the result will be promoted
uint64_t without sign-extending the address.

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

7:47 AM Changeset in webkit [278659] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[Flexbox] FlexItem stays invisible after initial layout
https://bugs.webkit.org/show_bug.cgi?id=226778

Reviewed by Simon Fraser.

Source/WebCore:

RenderFlexibleBox::layoutAndPlaceChildren() initiates repaint() on newly constructed flex items by checking their everHadLayout bit.
This is similar to what we do for regular block layout when block level boxes appear.
However flexitems are laid out multiple times, first right after they are constructed in constructFlexItem. This initial layout
sets everHadLayout bit to true which makes the check in layoutAndPlaceChildren somewhat late.

Test: fast/flexbox/repaint-issue-when-flex-item-appears.html

  • rendering/FlexibleBoxAlgorithm.cpp:

(WebCore::FlexItem::FlexItem):

  • rendering/FlexibleBoxAlgorithm.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::constructFlexItem):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):

LayoutTests:

  • fast/flexbox/repaint-issue-when-flex-item-appears-expected.txt: Added.
  • fast/flexbox/repaint-issue-when-flex-item-appears.html: Added.
6:40 AM Changeset in webkit [278658] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GTK] Do not depend on resources provided by the GNOME icon theme
https://bugs.webkit.org/show_bug.cgi?id=186767

Reviewed by Adrian Perez de Castro.

Covered by existing tests.

  • PlatformGTK.cmake:
5:36 AM Changeset in webkit [278657] by commit-queue@webkit.org
  • 11 edits
    1 copy
    1 move in trunk/Source

[GTK4] Add support for navigation gestures
https://bugs.webkit.org/show_bug.cgi?id=212327

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-06-09
Reviewed by Michael Catanzaro.

Source/WebCore:

Support GskRenderNode for GRefPtr.

  • platform/gtk/GRefPtrGtk.cpp:

(WTF::refGPtr):
(WTF::derefGPtr):

  • platform/gtk/GRefPtrGtk.h:

Source/WebKit:

Make ViewSnapshotStore store GdkTexture instead of Cairo surfaces
for GTK4. Split ViewSnapshotStoreGtk.cpp into GTK3 and GTK4 versions
since they don't have much in common.

When taking a view snapshot, render the web view into a texture.

When starting a navigation gesture, create a render node from
either the texture, or a fallback color, then render that instead
of using Cairo.

Implement the same dimming+shadow as in GTK3. This time don't bother
with CSS, the approach we used in GTK3 doesn't work anymore, and since
elements like scrollbars aren't themeable anyway it's not very important
to preserve that.

  • SourcesGTK.txt:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTakeViewSnapshot):

  • UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp:

(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):

  • UIProcess/ViewGestureController.h:
  • UIProcess/ViewSnapshotStore.cpp:

(WebKit::ViewSnapshotStore::didAddImageToSnapshot):
(WebKit::ViewSnapshotStore::willRemoveImageFromSnapshot):

  • UIProcess/ViewSnapshotStore.h:

(WebKit::ViewSnapshot::estimatedImageSizeInBytes const):
(WebKit::ViewSnapshot::texture const):
(WebKit::ViewSnapshot::imageSizeInBytes const): Renamed to estimatedImageSizeInBytes().

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::snapshot):
(WebKit::ViewGestureController::removeSwipeSnapshot):

  • UIProcess/gtk/ViewSnapshotStoreGtk3.cpp: Copied from Source/WebKit/UIProcess/gtk/ViewSnapshotStoreGtk.cpp.

(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::hasImage const):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::estimatedImageSizeInBytes const):
(WebKit::ViewSnapshot::size const):

  • UIProcess/gtk/ViewSnapshotStoreGtk4.cpp: Renamed from Source/WebKit/UIProcess/gtk/ViewSnapshotStoreGtk.cpp.

(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::hasImage const):
(WebKit::ViewSnapshot::clearImage):
(WebKit::ViewSnapshot::estimatedImageSizeInBytes const):
(WebKit::ViewSnapshot::size const):

4:17 AM Changeset in webkit [278656] by ysuzuki@apple.com
  • 66 edits in trunk

[JSC] Use DataIC for AccessCase
https://bugs.webkit.org/show_bug.cgi?id=226072

Reviewed by Saam Barati and Filip Pizlo.

Source/JavaScriptCore:

This patch adds non-repatching IC for Baseline JIT in ARM64.
This does not work in non-ARM64 architectures (including X64) due to the use of link-register.

  1. We add non-repatching IC, which is enabled only in Baseline due to performance reason. We are using the existing IC in DFG and FTL. Non-repatching includes fast-path, and slow-path's operation function.
  2. We still keep InlineAccess in all tiers. Removing that causes 0.3 ~ 1.0% regression in Speedometer2. This means that we still need some repatching when we first introduce stubs.
  3. We add a mechanism to share generated code stubs in non-repatching IC. Currently, getter / setter / custom accessors are excluded since their code relies on JSGlobalObject, CodeBlock etc. which are not included in AccessCase's data structure.
  4. This patch still relies on that CodeBlock will be destroyed synchronously since we need to ensure that sharing-hash-table does not include already-dead JIT code stubs. We can fix it (e.g. annotating epoch to these stubs, bump them in finalizeUnconditionally), but we avoid doing that to prevent from further enlarging this patch. This patch is already significant in its size.
  5. Added callOperation(Address) support in CCallHelpers, which can save the target in nonArgGPR0, and call it so that we can use Address including GPR which is also used for arguments.

Performance is neutral in JetStream2 and Speedometer2. But it offers the way to remove some code generation in Baseline.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::call):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::createTransition):
(JSC::AccessCase::createDelete):
(JSC::AccessCase::createCheckPrivateBrand):
(JSC::AccessCase::createSetPrivateBrand):
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::clone const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
(JSC::AccessCase::canBeShared):

  • bytecode/AccessCase.h:

(JSC::AccessCase::hash const):
(JSC::AccessCase::AccessCase):
(JSC::SharedJITStubSet::Hash::Key::Key):
(JSC::SharedJITStubSet::Hash::Key::isHashTableDeletedValue const):
(JSC::SharedJITStubSet::Hash::Key::operator==):
(JSC::SharedJITStubSet::Hash::hash):
(JSC::SharedJITStubSet::Hash::equal):
(JSC::SharedJITStubSet::Searcher::Translator::hash):
(JSC::SharedJITStubSet::Searcher::Translator::equal):
(JSC::SharedJITStubSet::PointerTranslator::hash):
(JSC::SharedJITStubSet::PointerTranslator::equal):
(JSC::SharedJITStubSet::add):
(JSC::SharedJITStubSet::remove):
(JSC::SharedJITStubSet::find):

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::setUp):
(JSC::ByValInfo::offsetOfSlowOperation):
(JSC::ByValInfo::offsetOfNotIndexJumpTarget):
(JSC::ByValInfo::offsetOfBadTypeJumpTarget):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::initializeDirectCall):
(JSC::CallLinkInfo::setDirectCallTarget):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::useDataIC const):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::create):
(JSC::GetterSetterAccessCase::clone const):
(JSC::GetterSetterAccessCase::emitDOMJITGetter):

  • bytecode/GetterSetterAccessCase.h:
  • bytecode/InlineAccess.cpp:

(JSC::getScratchRegister):
(JSC::InlineAccess::rewireStubAsJumpInAccessNotUsingInlineAccess):
(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccessNotUsingInlineAccess):
(JSC::InlineAccess::rewireStubAsJump): Deleted.

  • bytecode/InlineAccess.h:
  • bytecode/InstanceOfAccessCase.cpp:

(JSC::InstanceOfAccessCase::create):
(JSC::InstanceOfAccessCase::clone const):

  • bytecode/InstanceOfAccessCase.h:
  • bytecode/IntrinsicGetterAccessCase.cpp:

(JSC::IntrinsicGetterAccessCase::create):
(JSC::IntrinsicGetterAccessCase::clone const):

  • bytecode/IntrinsicGetterAccessCase.h:
  • bytecode/ModuleNamespaceAccessCase.cpp:

(JSC::ModuleNamespaceAccessCase::create):
(JSC::ModuleNamespaceAccessCase::clone const):

  • bytecode/ModuleNamespaceAccessCase.h:
  • bytecode/ObjectPropertyConditionSet.h:

(JSC::ObjectPropertyConditionSet::hash const):
(JSC::ObjectPropertyConditionSet::operator==):
(JSC::ObjectPropertyConditionSet::operator!=):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::installWatchpoint):
(JSC::AccessGenerationState::succeed):
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCallWithoutExceptions):
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::visitWeak const):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCallWithoutExceptions):

  • bytecode/ProxyableAccessCase.cpp:

(JSC::ProxyableAccessCase::create):
(JSC::ProxyableAccessCase::clone const):

  • bytecode/ProxyableAccessCase.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::offsetOfCodePtr):
(JSC::StructureStubInfo::offsetOfSlowPathStartLocation):
(JSC::StructureStubInfo::offsetOfSlowOperation):
(JSC::StructureStubInfo::patchableJump): Deleted.

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::appendCall):

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::slowPathICCall):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal):
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameById):
(JSC::DFG::SpeculativeJIT::compilePutPrivateNameById):
(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForCells):
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::cachedPutById):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::appendCall):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::getPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::SlowPathCallContext):
(JSC::FTL::SlowPathCallContext::keyWithTarget const):
(JSC::FTL::SlowPathCallContext::makeCall):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • ftl/FTLSlowPathCallKey.cpp:

(JSC::FTL::SlowPathCallKey::dump const):

  • ftl/FTLSlowPathCallKey.h:

(JSC::FTL::SlowPathCallKey::SlowPathCallKey):
(JSC::FTL::SlowPathCallKey::indirectOffset const):
(JSC::FTL::SlowPathCallKey::withCallTarget):
(JSC::FTL::SlowPathCallKey::operator== const):
(JSC::FTL::SlowPathCallKey::hash const):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitVirtualCall):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::emitJITCodeOver):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::ArgCollection::ArgCollection):
(JSC::CCallHelpers::ArgCollection::pushRegArg):
(JSC::CCallHelpers::ArgCollection::pushExtraRegArg):
(JSC::CCallHelpers::ArgCollection::pushNonArg):
(JSC::CCallHelpers::ArgCollection::addGPRArg):
(JSC::CCallHelpers::ArgCollection::addGPRExtraArg):
(JSC::CCallHelpers::ArgCollection::addStackArg):
(JSC::CCallHelpers::ArgCollection::addPoke):
(JSC::CCallHelpers::calculatePokeOffset):
(JSC::CCallHelpers::pokeForArgument):
(JSC::CCallHelpers::stackAligned):
(JSC::CCallHelpers::marshallArgumentRegister):
(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::pokeArgumentsAligned):
(JSC::CCallHelpers::std::is_integral<CURRENT_ARGUMENT_TYPE>::value):
(JSC::CCallHelpers::std::is_pointer<CURRENT_ARGUMENT_TYPE>::value):
(JSC::CCallHelpers::setupArgumentsEntryImpl):
(JSC::CCallHelpers::setupArguments):
(JSC::CCallHelpers::setupArgumentsForIndirectCall):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutine::GCAwareJITStubRoutine):
(JSC::GCAwareJITStubRoutine::makeGCAware):
(JSC::GCAwareJITStubRoutine::observeZeroRefCount):
(JSC::PolymorphicAccessJITStubRoutine::PolymorphicAccessJITStubRoutine):
(JSC::PolymorphicAccessJITStubRoutine::observeZeroRefCount):
(JSC::PolymorphicAccessJITStubRoutine::computeHash):
(JSC::MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler):
(JSC::createICJITStubRoutine):
(JSC::createJITStubRoutine): Deleted.

  • jit/GCAwareJITStubRoutine.h:

(JSC::GCAwareJITStubRoutine::create):
(JSC::PolymorphicAccessJITStubRoutine::cases const):
(JSC::PolymorphicAccessJITStubRoutine::weakStructures const):
(JSC::PolymorphicAccessJITStubRoutine::hash const):

  • jit/GPRInfo.h:
  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):

  • jit/JITCall32_64.cpp:

(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):

  • jit/JITCode.h:

(JSC::JITCode::useDataIC):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::JITInlineCacheGenerator):
(JSC::JITInlineCacheGenerator::finalize):
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITByIdGenerator::finalize):
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITDelByValGenerator::JITDelByValGenerator):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByValGenerator::finalize):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::finalize):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::JITInByValGenerator::finalize):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITInstanceOfGenerator::finalize):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):

  • jit/JITInlineCacheGenerator.h:

(JSC::JITGetByIdGenerator::JITGetByIdGenerator): Deleted.
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator): Deleted.
(JSC::JITPutByIdGenerator::JITPutByIdGenerator): Deleted.
(JSC::JITDelByValGenerator::JITDelByValGenerator): Deleted.
(JSC::JITDelByValGenerator::slowPathJump const): Deleted.
(JSC::JITDelByIdGenerator::JITDelByIdGenerator): Deleted.
(JSC::JITDelByIdGenerator::slowPathJump const): Deleted.
(JSC::JITInByIdGenerator::JITInByIdGenerator): Deleted.
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator): Deleted.
(JSC::JITGetByValGenerator::JITGetByValGenerator): Deleted.
(JSC::JITGetByValGenerator::slowPathJump const): Deleted.
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator): Deleted.
(JSC::JITPrivateBrandAccessGenerator::slowPathJump const): Deleted.

  • jit/JITInlines.h:

(JSC::JIT::emitLoadForArrayMode):
(JSC::JIT::appendCallWithExceptionCheck):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResult):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::privateCompileHasIndexedProperty):
(JSC::JIT::emit_op_has_enumerable_indexed_property):
(JSC::JIT::emitSlow_op_has_enumerable_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::privateCompileHasIndexedProperty):
(JSC::JIT::emit_op_has_enumerable_indexed_property):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::slow_op_get_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::slow_op_get_private_name_prepareCallGenerator):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_prepareCallGenerator):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::slow_op_del_by_id_prepareCallGenerator):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::slow_op_del_by_val_prepareCallGenerator):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::slow_op_get_by_id_prepareCallGenerator):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::slow_op_get_by_id_with_this_prepareCallGenerator):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::slow_op_put_by_id_prepareCallGenerator):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):

  • jit/JITStubRoutine.h:
  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):

  • jit/Repatch.cpp:

(JSC::readPutICCallTarget):
(JSC::repatchSlowPathCall):
(JSC::tryCacheGetBy):
(JSC::repatchGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::repatchArrayGetByVal):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryCacheDeleteBy):
(JSC::repatchDeleteBy):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::tryCacheCheckPrivateBrand):
(JSC::repatchCheckPrivateBrand):
(JSC::tryCacheSetPrivateBrand):
(JSC::repatchSetPrivateBrand):
(JSC::tryCacheInstanceOf):
(JSC::repatchInstanceOf):
(JSC::linkSlowFor):
(JSC::linkVirtualFor):
(JSC::resetGetBy):
(JSC::resetPutByID):
(JSC::resetDelBy):
(JSC::resetInBy):
(JSC::resetInstanceOf):
(JSC::resetCheckPrivateBrand):
(JSC::resetSetPrivateBrand):
(JSC::resetPatchableJump): Deleted.

  • jit/Repatch.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • runtime/StructureIDTable.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:

Tools:

  • Scripts/run-jsc-stress-tests:
3:58 AM Changeset in webkit [278655] by aboya@igalia.com
  • 6 edits in trunk/Source

[WTF][GStreamer] Add RAII lockers for 3rd party locks
https://bugs.webkit.org/show_bug.cgi?id=225650

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch introduces RAII locker classes that wrap GST_OBJECT_LOCK
and GST_PAD_STREAM_LOCK to match the style, safety and convenience of
locks from WTF.

This patch also changes all usages of GStreamer locks in the WebKit
codebase to use these new lockers.

This patch introduces no behavior changes.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(gstObjectLock):
(gstObjectUnlock):
(gstPadStreamLock):
(gstPadStreamUnlock):
(holdGstObjectLock):
(holdGstPadStreamLock):

  • platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp:

(webkitTextCombinerPadGetProperty):
(webkitTextCombinerPadSetProperty):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcWaitForPadLinkedOrFlush):
(webKitMediaSrcLoop):
(webKitMediaSrcStreamFlush):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):

Source/WTF:

This patch introduces WTF::ExternalLocker, which allows to lock 3rd
party mutexes in a RAII fashion, very similar to WTF::Locker.

This is used also in WebCore to provide RAII lockers for GStreamer.

  • wtf/Locker.h:

(WTF::unlockFunction):

1:35 AM Changeset in webkit [278654] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Mark flakey tests as timeout only.

Several tests marked as flakey have been timing out consistently for
the last 4000 revisions. Mark state accordingly.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
1:25 AM Changeset in webkit [278653] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test failures. Switch WPT's WOFF2 tests from flakey to image only failure.

  • platform/gtk/TestExpectations:
1:11 AM Changeset in webkit [278652] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectations.

  • Mark editing/execCommand/switch-list-type-with-orphaned-li.html as flakey.
  • Create new bug for imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html
  • platform/glib/TestExpectations:
12:02 AM Changeset in webkit [278651] by Chris Dumez
  • 5 edits in trunk/Source

Rely on SQLiteDatabase::setMaximumSize() for quota management in LocalStorageDatabase
https://bugs.webkit.org/show_bug.cgi?id=226788

Reviewed by Sihui Liu.

Source/WebCore:

Export SQLiteDatabase::setMaximumSize() so it can be used from WebKit2.

  • platform/sql/SQLiteDatabase.h:

Source/WebKit:

Rely on SQLiteDatabase::setMaximumSize() for quota management in LocalStorageDatabase.
It simplifies the code a bit.

No new test, covered by storage/domstorage/quota.html that is still passing.

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::removeItem):
(WebKit::LocalStorageDatabase::setItem):
(WebKit::LocalStorageDatabase::clear):

  • NetworkProcess/WebStorage/LocalStorageDatabase.h:
Note: See TracTimeline for information about the timeline view.