Timeline



Mar 13, 2021:

10:51 PM Changeset in webkit [274396] by Wenson Hsieh
  • 3 edits
    3 adds in trunk

[iOS] Selecting the first word in an image overlay may select text in the previous line
https://bugs.webkit.org/show_bug.cgi?id=223153

Reviewed by Tim Horton.

Source/WebCore:

Add a (collapsible) newline at the start of each line of text in an image overlay, so that
wordRangeFromPosition will not include content from the previous line when selecting the first word in a
line inside an image overlay.

Test: fast/images/image-extraction/ios/select-word-in-image-overlay.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

LayoutTests:

Add a layout test to verify the behavior change.

  • fast/images/image-extraction/ios/select-word-in-image-overlay-expected.txt: Added.
  • fast/images/image-extraction/ios/select-word-in-image-overlay.html: Added.
7:32 PM Changeset in webkit [274395] by Wenson Hsieh
  • 8 edits
    3 adds in trunk

Add support for accessibility image overlays in layout tests
https://bugs.webkit.org/show_bug.cgi?id=223146

Reviewed by Tim Horton.

Source/WebCore:

Introduce an internal testing hook to install image overlay content, for layout and API tests.

Test: fast/images/image-extraction/basic-image-overlay.html

  • dom/DOMPointReadOnly.h:
  • dom/DOMPointReadOnly.idl:

Additionally add WebCore export macros to DOMPointReadOnly, so that Internals code can this class.

  • testing/Internals.cpp:

(WebCore::Internals::installImageOverlay):

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

LayoutTests:

Add a very basic test to ensure that image overlay content can be installed.

  • TestExpectations:
  • fast/images/image-extraction/basic-image-overlay-expected-mismatch.html: Added.
  • fast/images/image-extraction/basic-image-overlay.html: Added.
7:22 PM Changeset in webkit [274394] by Sam Sneddon
  • 3 edits in trunk/Tools

Move LayoutTestFinder.split_into_chunks to Manager._split_into_chunks
https://bugs.webkit.org/show_bug.cgi?id=223137

Reviewed by Jonathan Bedard.

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

(LayoutTestFinder.split_into_chunks):

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

(Manager._split_into_chunks):
(Manager._prepare_lists):

6:47 PM Changeset in webkit [274393] by commit-queue@webkit.org
  • 21 edits
    7 deletes in trunk

Unreviewed, reverting r274379.
https://bugs.webkit.org/show_bug.cgi?id=223154

Some LayoutTests are crashing

Reverted changeset:

"Cache cross-origin methods / accessors of Window and Location
per lexical global object"
https://bugs.webkit.org/show_bug.cgi?id=222739
https://trac.webkit.org/changeset/274379

1:55 PM Changeset in webkit [274392] by Chris Gambrell
  • 3 edits in trunk/LayoutTests

[ macOS Wk2 ] http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php is constantly text failing
https://bugs.webkit.org/show_bug.cgi?id=223079
<rdar://problem/75323779>

Reviewed by Jonathan Bedard.

  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php:
12:00 PM Changeset in webkit [274391] by graouts@webkit.org
  • 6 edits
    3 adds in trunk

Fix interpolation of clip CSS property
https://bugs.webkit.org/show_bug.cgi?id=223126

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Import interpolation tests for clip. These tests pass completely
with 42 PASS results compared to prior to the source changes.

  • web-platform-tests/css/css-masking/animations/clip-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-masking/animations/clip-interpolation.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-masking/animations/clip-interpolation.html

While we already had support for interpolating the clip property, we had a couple of small
issues to fix to pass the entire WPT test dedicated to testing that feature:

  1. we must allow negative values
  2. we must serialize the value to "auto" if all four values are "auto"
  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

LayoutTests:

Rebase a test that used the old, incorrect computed value for "clip" with
four "auto" values.

  • fast/css/computed-clip-with-auto-rect-expected.txt:
11:08 AM Changeset in webkit [274390] by Peng Liu
  • 15 edits in trunk

[GPUP][MSE] MediaSource::buffered and MediaSource::activeSourceBuffers do not update in the same run loop as MediaSource::endOfStream()
https://bugs.webkit.org/show_bug.cgi?id=221293

Reviewed by Jer Noble.

Source/WebCore:

Currently, both SourceBuffer and SourceBufferPrivate own an m_buffered
and we need to synchronize them with a callback. When we run SourceBufferPrivate
in the GPU process, the synchronization might be delayed, e.g., function
SourceBuffer::readyStateChanged() will trigger an update to m_buffered
but its new value won't be available for the Web process in the same
run loop.

To fix this issue, this patch removes SourceBuffer::m_buffered as well
the callback to synchronize it. When we run SourceBufferPrivate in the GPU
process, SourceBufferPrivateRemote synchronizes its m_buffered with
SourceBufferPrivate through a synchronous IPC message.

No new tests. Fix a test failure:

  • imported/w3c/web-platform-tests/media-source/mediasource-buffered.html
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::buffered const):
(WebCore::SourceBuffer::sourceBufferPrivateBufferedRangesChanged): Deleted.

  • Modules/mediasource/SourceBuffer.h:
  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::setBufferedRanges):
(WebCore::SourceBufferPrivate::updateBufferedFromTrackBuffers):

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::buffered const):

  • platform/graphics/SourceBufferPrivateClient.h:

Source/WebKit:

When a Web process needs to "pull" the latest value of m_buffered from the
GPU process (updateBufferedFromTrackBuffers), we need to use a synchronous
IPC message.

When the GPU process needs to "push" the latest value of m_buffered to
a Web process, we can use an asynchronous message, e.g, RemoveCodedFrames
and SourceBufferPrivateAppendComplete.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::updateBufferedFromTrackBuffers):
(WebKit::RemoteSourceBufferProxy::removeCodedFrames):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateBufferedRangesChanged): Deleted.

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::updateBufferedFromTrackBuffers):
(WebKit::SourceBufferPrivateRemote::removeCodedFrames):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateBufferedRangesChanged): Deleted.

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:

LayoutTests:

  • platform/mac/TestExpectations:
8:26 AM Changeset in webkit [274389] by commit-queue@webkit.org
  • 10 edits in trunk/LayoutTests

[css-flexbox] Fix incorrect relative path
https://bugs.webkit.org/show_bug.cgi?id=223120

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

LayoutTests/imported/w3c:

Fix incorrect relative path, because of this the comparisons
were not accurate, causing failures where the rendering was correct.

  • web-platform-tests/css/css-flexbox/align-baseline-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_flex-start-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_space-between-expected.html:
  • web-platform-tests/css/css-flexbox/align-self-015-expected.html:
  • web-platform-tests/css/css-flexbox/auto-margins-003-expected.html:
  • web-platform-tests/css/css-flexbox/flex-item-vertical-align-expected.html:
  • web-platform-tests/css/css-flexbox/stretch-input-in-column-expected.html:

LayoutTests:

Enable tests that pass now.

8:20 AM Changeset in webkit [274388] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[build.webkit.org] run buildbot checkconfig in services ews
https://bugs.webkit.org/show_bug.cgi?id=222687

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunBuildbotCheckConfigForEWS): Renamed from RunEWSBuildbotCheckConfig.
(RunBuildbotCheckConfigForBuildWebKit): Build step to run buildbot checkconfig for build.webkit.org

  • CISupport/ews-build/factories.py:

(ServicesFactory.init): Added build step to run buildbot checkconfig for build.webkit.org

  • CISupport/ews-build/steps_unittest.py: Added and updated unit-tests.
  • CISupport/ews-build/factories_unittest.py: Updated unit-tests.
8:09 AM Changeset in webkit [274387] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Mark the line dirty when list marker goes from inline to block
https://bugs.webkit.org/show_bug.cgi?id=223132

Reviewed by Antti Koivisto.

This patch ensures that the line layout has a chance to clean up the inline boxes when the marker goes from inline to block.
Instead of deleting the inline box wrapper (InlineElement) here let's

  1. mark both the renderer and the line dirty and let the inline layout code run its normal cleanup process on dirty lines.
  2. detach the inline box wrapper from the now-block list marker.
  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::styleDidChange):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::verticalPositionForBox):

7:06 AM Changeset in webkit [274386] by Philippe Normand
  • 6 edits in trunk/Source

Unreviewed, fix build warnings after r273204 and r274323

Source/WebCore:

  • storage/StorageQuotaManager.cpp:

(WebCore::StorageQuotaManager::tryGrantRequest): Use portable uint64_t format specifier.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::storageQuotaManager): Use portable uint64_t format specifier.

  • Platform/IPC/StreamConnectionWorkQueue.cpp:

(IPC::StreamConnectionWorkQueue::StreamConnectionWorkQueue):

  • Platform/IPC/StreamConnectionWorkQueue.h: Make m_name COCOA specific to avoid

unused-member on other platforms.

6:27 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
3:11 AM Changeset in webkit [274385] by youenn@apple.com
  • 33 edits
    2 moves
    1 add
    2 deletes in trunk

Update RTCRtpScriptTransform to the latest version of the spec
https://bugs.webkit.org/show_bug.cgi?id=222982

Reviewed by Eric Carlson.

Source/WebCore:

Move from AudioWorklet model to an event based model as per latest specification.
RTCRtpScriptTransformer concentrates all the API and is exposed to worker using a new rtctransform event.
Add support for options parameter provided in RTCRtpScriptTransform constructor.

Covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCRtpScriptTransform.cpp:

(WebCore::RTCRtpScriptTransform::create):
(WebCore::RTCRtpScriptTransform::setTransformer):

  • Modules/mediastream/RTCRtpScriptTransform.h:
  • Modules/mediastream/RTCRtpScriptTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformProvider.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.cpp:

(WebCore::RTCRtpScriptTransformer::create):
(WebCore::RTCRtpScriptTransformer::RTCRtpScriptTransformer):
(WebCore::RTCRtpScriptTransformer::readable):
(WebCore::RTCRtpScriptTransformer::writable):
(WebCore::RTCRtpScriptTransformer::start):
(WebCore::RTCRtpScriptTransformer::requestKeyFrame):
(WebCore::RTCRtpScriptTransformer::options):

  • Modules/mediastream/RTCRtpScriptTransformer.h:

(WebCore::RTCRtpScriptTransformer::startPendingActivity):

  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpScriptTransformerConstructor.h: Removed.
  • Modules/mediastream/RTCRtpScriptTransformerConstructor.idl: Removed.
  • Modules/mediastream/RTCRtpScriptTransformerContext.h: Removed.
  • Modules/mediastream/RTCRtpScriptTransformerContext.idl: Removed.
  • Modules/mediastream/RTCTransformEvent.cpp: Added.
  • Modules/mediastream/RTCTransformEvent.h: Added.
  • Modules/mediastream/RTCTransformEvent.idl: Added.
  • Modules/model-element/HTMLModelElement.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ReadableStream.h:

(WebCore::toJS):

  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/js/WritableStream.h:

(WebCore::toJS):

  • dom/EventNames.h:
  • dom/EventNames.in:
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::prepareForDestruction):
(WebCore::DedicatedWorkerGlobalScope::createRTCRtpScriptTransformer):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/Worker.cpp:

(WebCore::Worker::createRTCRtpScriptTransformer):

  • workers/Worker.h:

LayoutTests:

  • http/wpt/webrtc/audio-script-transform.html:
  • http/wpt/webrtc/context-transform.js:

(MockRTCRtpTransformer):
(MockRTCRtpTransformer.prototype.start):
(MockRTCRtpTransformer.prototype.process):
(onrtctransform):

  • http/wpt/webrtc/no-transform.js:
  • http/wpt/webrtc/no-webrtc-transform-expected.txt:
  • http/wpt/webrtc/no-webrtc-transform.html:
  • http/wpt/webrtc/script-transform.js:

(onrtctransform.process):
(onrtctransform):

  • http/wpt/webrtc/sframe-transform.js:

(onrtctransform):

  • http/wpt/webrtc/video-script-transform.html:
3:03 AM Changeset in webkit [274384] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

Unreviewed. Merge the changes to the perspective interpolation test that resulted
from https://github.com/web-platform-tests/wpt/pull/28036 and update the expectations
now that we pass this test entirely with 16 new PASS results.

  • web-platform-tests/css/css-transforms/animation/perspective-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/perspective-interpolation.html:
2:57 AM Changeset in webkit [274383] by graouts@webkit.org
  • 3 edits
    6 adds in trunk

Fix interpolation of orphans and widows CSS properties
https://bugs.webkit.org/show_bug.cgi?id=223124

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import interpolation tests for orphans and widows. These tests pass completely
weith 44 PASS results compared to prior to the source changes.

  • web-platform-tests/css/css-break/animation/orphans-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-break/animation/orphans-interpolation.html: Added.
  • web-platform-tests/css/css-break/animation/widows-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-break/animation/widows-interpolation.html: Added.

Source/WebCore:

The orphans and widows properties must be positive integers, so we add a dedicated
wrapper for these properties.

Tests: imported/w3c/web-platform-tests/css/css-break/animation/orphans-interpolation.html

imported/w3c/web-platform-tests/css/css-break/animation/widows-interpolation.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::PositivePropertyWrapper::PositivePropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

1:36 AM Changeset in webkit [274382] by Fujii Hironori
  • 4 edits in trunk/Source/WebCore

Non-unified builds can't compile JSWebGLRenderingContext.cpp: error: member access into incomplete type 'WebCore::WebGLSampler'
https://bugs.webkit.org/show_bug.cgi?id=223142

Reviewed by Youenn Fablet.

  • html/canvas/WebGLRenderingContextBase.h: Added some missing header inclusions.
  • html/canvas/WebGLTransformFeedback.cpp:
  • html/canvas/WebGLTransformFeedback.h: Fixed a recursive header inclusion with WebGL2RenderingContext.h.
1:31 AM Changeset in webkit [274381] by Martin Robinson
  • 8 edits
    2 adds in trunk

Add basic (non-momentum) wheel event handling for scroll snap
https://bugs.webkit.org/show_bug.cgi?id=222594
Source/WebCore:

Reviewed by Simon Fraser.

Test: css3/scroll-snap/scroll-snap-wheel-event.html

Enable scroll snapping for basic wheel events on GTK+ and WPE. The Mac port
has special wheel handling due to momentum scrolling. Other scroll-snap-enabled
ports can just use a basic version.

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll): Accept a bitmask of options now. This
will allow using this method when handling wheel events that do not animate.
(WebCore::ScrollAnimator::handleWheelEvent): Trigger ::scroll with
scroll snapping enabled and pass the appropriate option to disable animations.
(WebCore::ScrollAnimator::processWheelEventForScrollSnap): Deleted.

  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::processWheelEventForScrollSnap): Made
this a method that can be overridden by subclasses.

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

(WebCore::ScrollAnimatorMac::scroll): Pay attention to the NeverAnimate bitmask now.
(WebCore::ScrollAnimatorMac::processWheelEventForScrollSnap): Added.

LayoutTests:

Reviewed by Simon Fraser.

  • css3/scroll-snap/scroll-snap-wheel-event-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-wheel-event.html: Added.
  • platform/ios-wk2/TestExpectations: Skip new test because it uses mouse event simulation.

Move existing classification to better section as well.

  • platform/mac-wk1/fast/scrolling/latching/scroll-snap-latching-expected.txt: Rebased this previous failing test.
1:03 AM Changeset in webkit [274380] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Adopt DDMacAction instead of DDAction on macOS
https://bugs.webkit.org/show_bug.cgi?id=223145
<rdar://problem/70127512>

Reviewed by Megan Gardner.

Source/WebCore/PAL:

  • pal/spi/mac/DataDetectorsSPI.h:

Source/WebKit:

  • Platform/mac/MenuUtilities.mm:

(WebKit::actionForMenuItem):
(WebKit::menuItemForTelephoneNumber):
(WebKit::menuForTelephoneNumber):
Adopt the new class name, when available.

Source/WTF:

  • wtf/PlatformHave.h:
1:02 AM Changeset in webkit [274379] by Alexey Shvayka
  • 21 edits
    7 adds in trunk

Cache cross-origin methods / accessors of Window and Location per lexical global object
https://bugs.webkit.org/show_bug.cgi?id=222739

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching-expected.txt: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-common.js: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-length-expected.txt: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-length.html: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name-expected.txt: Added.
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name.html: Added.

Source/JavaScriptCore:

  1. Add WeakGCMap::ensure() to avoid double hashing and clean up JSObject::getOwnPropertyDescriptor().
  2. Assert early that JSCustom{Getter,Setter}Function is created with non-null function pointer.
  3. Rename getCustom{Getter,Setter}Function() to align with newly-added JSDOMGlobalObject methods.
  • runtime/JSCustomGetterFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSCustomGetterFunction::create):

  • runtime/JSCustomSetterFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSCustomSetterFunction::create):

  • runtime/JSObject.cpp:

(JSC::createCustomGetterFunction):
(JSC::createCustomSetterFunction):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::getCustomGetterFunction): Deleted.
(JSC::getCustomSetterFunction): Deleted.

  • runtime/Lookup.h:

(JSC::nonCachingStaticFunctionGetterImpl): Deleted.

  • runtime/WeakGCMap.h:

Source/WebCore:

For cross-origin methods / accessors, Window and Location objects return different JSFunction
instances on every Get?. The intent was to ensure isolation by supplying different Realms with
different function objects. However, within the same callee Realm, this makes subsequent lookups
of a cross-origin method / accessor fail reference equality test, which is rather confusing:

crossOriginWindow.focus === crossOriginWindow.focus // => false

This patch implements CrossOriginPropertyDescriptorMap?, bringing consistent function identity
and aligning WebKit with the spec [1], Blink, and Gecko. For convenience, cache maps are added to
JSDOMGlobalObject (to accommodate RemoteDOMWindow) and cover both Window and Location objects.

As a cache map key, a pair of lexical global object and raw function pointer is used, which guarantees
correctness even if Window and Location would expose cross-origin property of the same name.

This patch removes 9 custom getters, adds runtime lookup for "showModalDialog" (which is rare),
and removes [ForwardDeclareInHeader] extended attribute as it's now unused and non-trivial to generate.

Also, fixes cross-realm postMessage.length to equal 1 as per WebIDL.

[1] https://html.spec.whatwg.org/multipage/browsers.html#crossorigingetownpropertyhelper-(-o,-p-)

Tests: imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-caching.html

imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-length.html
imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-function-name.html

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
(WebCore::JSDOMGlobalObject::createCrossOriginFunction):
(WebCore::JSDOMGlobalObject::createCrossOriginGetterSetter):

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

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlot):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::getOwnPropertySlotCommon):
(WebCore::JSC_DEFINE_CUSTOM_GETTER): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.json:
  • page/DOMWindow.idl:
  • page/History.idl:
  • page/Location.idl:
  • page/RemoteDOMWindow.idl:

LayoutTests:

  • http/tests/navigation/process-swap-window-open-expected.txt:
  • http/tests/navigation/process-swap-window-open.html:

Mar 12, 2021:

6:29 PM Changeset in webkit [274378] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa][WebM] Hang when reloading page before WebM content is loaded
https://bugs.webkit.org/show_bug.cgi?id=223139
<rdar://75351029>

Reviewed by Darin Adler.

No new tests; a truly deterministic test would require a .cgi script to block loading after
the WebM init segment, but a bug in the platform format reader causes URLs not ending in
.webm to fail to load the format reader plugin. Once this issue is fixed, we can write a
test to cover this behavior.

The WebM TrackEntry "enabled" bit is optional, and WebKit previously waited until any media data
was appended to say whether or not the track is enabled in the absense of an explicit signal.
Instead, assume any track that is not explicity disabled is enabled, for the purpose of the
format reader. This means that "enabled" queries will no longer block, which breaks the deadlock
when tearing down the AVAsset backing the WebM file.

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::copyProperty):

6:26 PM Changeset in webkit [274377] by Chris Fleizach
  • 3 edits in trunk/Source/WebKit

AX: PDF frame conversion routines need to be updated
https://bugs.webkit.org/show_bug.cgi?id=223138

Reviewed by Darin Adler.

PDF bounding boxes are wrong in WebKit because.

1) There's no way for PDF objects to get the primary screen height. So we need to be able to return the primary

screen height from an object in the PDF hierarchy.

2) The WKPDFPluginAccessibilityObject's position was not being converted correctly.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(WebKit::PDFPlugin::boundsOnScreen const):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):

6:01 PM Changeset in webkit [274376] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

Add more MediaStream logging
https://bugs.webkit.org/show_bug.cgi?id=223143
<rdar://problem/75380363>

Reviewed by Jer Noble.

No new tests, no functional change.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::clone):
(WebCore::MediaStreamTrack::stopTrack):
(WebCore::MediaStreamTrack::trackStarted):
(WebCore::MediaStreamTrack::trackEnded):

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::setEnabled):
(WebCore::MediaStreamTrackPrivate::endTrack):
(WebCore::MediaStreamTrackPrivate::clone):
(WebCore::MediaStreamTrackPrivate::createAudioSourceProvider):
(WebCore::MediaStreamTrackPrivate::sourceStarted):
(WebCore::MediaStreamTrackPrivate::sourceStopped):
(WebCore::MediaStreamTrackPrivate::sourceMutedChanged):
(WebCore::MediaStreamTrackPrivate::sourceSettingsChanged):
(WebCore::MediaStreamTrackPrivate::preventSourceFromStopping):
(WebCore::MediaStreamTrackPrivate::hasStartedProducingData):
(WebCore::MediaStreamTrackPrivate::updateReadyState):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setMuted):
(WebCore::RealtimeMediaSource::requestToEnd):
(WebCore::RealtimeMediaSource::end):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::startProducingData):
(WebCore::AVVideoCaptureSource::stopProducingData):
(WebCore::AVVideoCaptureSource::shutdownCaptureSession):
(WebCore::AVVideoCaptureSource::orientationChanged):

5:55 PM Changeset in webkit [274375] by commit-queue@webkit.org
  • 6 edits in trunk

REGRESSION(r274270): [WPE][GTK] Broke Epiphany test /embed/ephy-web-view/error-pages-not-stored-in-history
https://bugs.webkit.org/show_bug.cgi?id=223140

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-12
Reviewed by Alex Christensen.

Source/WebCore:

If the SecurityOriginData has no protocol or host, return an empty string instead of ":"

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toString const):

Source/WebKit:

Convert empty strings to NULL.

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(webkit_security_origin_to_string):

Tools:

Improve WebKitSecurityOrigin tests a bit.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:

(testCustomProtocolOrigin): Drive-by improvement: check webkit_security_origin_to_string().
(testBogusURI): Added, tests for this bug.
(beforeAll):

4:00 PM Changeset in webkit [274374] by mmaxfield@apple.com
  • 18 edits
    1 copy in trunk

[macOS] MobileAsset fonts are broken in Reader mode in Safari
https://bugs.webkit.org/show_bug.cgi?id=223062

Reviewed by Simon Fraser.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WebKit:

Here is an ASCII-art description of how various kinds of installed fonts work in WebKit:

+----------------------++-----------------------------------------+-----------------------------------------+

|
Safari | Normal WKWebViews |

+======================++=========================================+=========================================+

| Preinstalled Fonts
Just works | Just works |

+----------------------++-----------------------------------------+-----------------------------------------+

| MobileAsset Fonts | | | | | | | | | | | | | | | | | | |
Needs access to mobileassetd | Needs access to mobileassetd but not |
(and fontd for any subsequent requests | fontd. |
after the first MobileAsset font is | |
used) | App calls _grantAccessToAssetServices() |
| to vend the sandbox extension |
App calls _grantAccessToAssetServices() | |
to vend the sandbox extension to | And then the app needs to use |
mobileassetd | InjectedBundle to activate the fonts in |
| the web process |
Web process also needs a call to | |
CTFontManagerEnableAllUserFonts() and a | |
sandbox extension to access fontd | |
| |
After this call is made, font requests | |
go through fontd (like for normal | |
WKWebViews) | |
| |
And then the app needs to use | |
InjectedBundle to activate the fonts in | |
the web process | |

+----------------------++-----------------------------------------+-----------------------------------------+

| User-installed Fonts | | |
Intentionally doesn't work | Needs access to fontd. |
| |
| Just works (we already vend the sandbox |
| extension upon WKWebView creation) |

+----------------------++-----------------------------------------+-----------------------------------------+

The part that this patch fixes is the "Web process also needs a call to CTFontManagerEnableAllUserFonts()
and a sandbox extension to access fontd" under MobileAsset Fonts / Safari.

From looking at this chart, it becomes clear that a new message is necessary that does:

  1. Adds a sandbox extension so the web process can access fontd
  2. Calls CTFontManagerEnableAllUserFonts() to cause platform font routines to use fontd

So that's exactly what this patch does. It adds new WKWebView SPI,
_switchFromStaticFontRegistryToUserFontRegistry, which does these two things.

Even when we start using fontd, that doesn't allow user-installed fonts in WebKit in Safari, because we'll still
continue to use kCTFontUserInstalledAttribute / kCTFontFallbackOptionAttribute, just like we do in Big Sur.

Test: WebKit.MobileAssetSandboxCheck

  • UIProcess/API/C/WKPreferencesRefPrivate.h: Correct the comment.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _switchFromStaticFontRegistryToUserFontRegistry]):

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

(WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::customizedReaderConfiguration): Deleted.
(WebKit::disableStaticFontRegistry): Deleted.

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

(WebKit::WebPage::~WebPage):

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

(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):

  • WebProcess/glib/WebProcessGLib.cpp:

(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):

  • WebProcess/playstation/WebProcessPlayStation.cpp:

(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):

  • WebProcess/win/WebProcessWin.cpp:

(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/FontRegistrySandboxCheck.mm: Copied from Source/WebKit/WebProcess/playstation/WebProcessPlayStation.cpp.

(TEST):

3:52 PM Changeset in webkit [274373] by Said Abou-Hallawa
  • 4 edits in trunk

[GPU Process] inspector/canvas/memory.html fails when GPU rendering is enabled for 2D Canvas
https://bugs.webkit.org/show_bug.cgi?id=222880

Reviewed by Tim Horton.

Source/WebCore:

RemoteImageBufferProxy has to ensure its backend is created in the GPUP
before reporting its memory cost.

  • platform/graphics/ConcreteImageBuffer.h:

LayoutTests:

Enable GPUP rendering for 2D canvas for this test.

  • inspector/canvas/memory.html:
3:14 PM Changeset in webkit [274372] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.31.91

WPE WebKit 2.31.91

3:14 PM Changeset in webkit [274371] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.31.91 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.31.91, and also the missing ones

for 2.31.90.

1:47 PM Changeset in webkit [274370] by Ryan Haddad
  • 5 edits in trunk

Enable video capture in GPUProcess by default on iOS
https://bugs.webkit.org/show_bug.cgi?id=223061

Patch by Youenn Fablet <youenn@apple.com> on 2021-03-12
Reviewed by Eric Carlson.

Source/WebKit:

Covered by existing tests.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureVideoInGPUProcessEnabled):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
We need to synchronously fill the granted requests, otherwise there is a risk that
the granted requests will be cleared (on page close for instance) and then later filled
for the page that was gone.

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(-[GetUserMediaRepromptTestView haveStream:]):
Upgrade timeout period as GPU process capture might take longer.

1:33 PM Changeset in webkit [274369] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ MacOS wk2 ] inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=221759

Uneviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Timeout while test is being looked at.
1:25 PM Changeset in webkit [274368] by Lauro Moura
  • 2 edits in trunk/Source/WTF

REGRESSION(r274327) [GLIB] 2D Canvas tests timing out after enabling GPUProces in testing
https://bugs.webkit.org/show_bug.cgi?id=223130

Reviewed by Philippe Normand.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:12 PM Changeset in webkit [274367] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Debug wk2 ] imported/w3c/web-platform-tests/wasm/webapi/instantiateStreaming-bad-imports.any.worker.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223131

Unreviewed test gardeing.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure for Debug.
11:04 AM Changeset in webkit [274366] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION: two webkitscmpy.test.svn_unittest.TestRemoteSvn tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=223006

Reviewed by Aakash Jain.

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

(Svn.request): Hard-code timezone delta for Subversion server.

11:03 AM Changeset in webkit [274365] by Manuel Rego Casasnovas
  • 6 edits
    2 adds in trunk

[selectors] :focus-visible matches body after keyboard event
https://bugs.webkit.org/show_bug.cgi?id=223113

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-001.html: Modify the test to verify

that only the element matches :focus-visible (and not the body).

  • web-platform-tests/css/selectors/focus-visible-019-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-019.html: Added new test to check script focus in keyboard event,

and that again only the element matches :focus-visible (and not the body).

Source/WebCore:

Fix the bug with some changes in EventHandler::internalKeyEvent().
When you use TAB (or other key) the |element| variable in this method is the document body,
however that element is not focused (element->focused() is false).
Before this patch we were marking the element as matchin :focus-visible,
however we shouldn't do that if the element is not focused (added a condition to avoid doing that).

Apart from that this patch also fixes a related issue, if a keyboard event handler is changing focus via script
there's a part of this method that takes care of updating the |element| variable.
In that case we have to remove :focus-visible flag from the previous element, and add it to the new one.

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-001.html
Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):

LayoutTests:

  • platform/ios/TestExpectations: Skip new test for iOS.
10:49 AM Changeset in webkit [274364] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix debug assertion on bots after r274323.

Was failing to call the completion handler in a early return case.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setQuotaLoggingEnabled):

10:42 AM Changeset in webkit [274363] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, partial revert of r274286 because this introduced an assertion failure.

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):

10:19 AM Changeset in webkit [274362] by commit-queue@webkit.org
  • 12 edits in trunk/Source

Reduce maximum HashTable entry size to 400 bytes
https://bugs.webkit.org/show_bug.cgi?id=223106

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-12
Reviewed by Youenn Fablet.

Source/WebCore:

This should reduce memory use.

  • loader/ResourceLoadStatistics.h:

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::pruneResources):
(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const):
(WebKit::ResourceLoadStatisticsMemoryStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsMemoryStore::classifyPrevalentResources):
(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsMemoryStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics):
(WebKit::ResourceLoadStatisticsMemoryStore::isPrevalentResource const):
(WebKit::ResourceLoadStatisticsMemoryStore::isVeryPrevalentResource const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubresourceUnder const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubFrameUnder const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsRedirectingTo const):
(WebKit::ResourceLoadStatisticsMemoryStore::isGrandfathered const):
(WebKit::ResourceLoadStatisticsMemoryStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::createEncoderFromData const):
(WebKit::ResourceLoadStatisticsMemoryStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsMemoryStore::processStatistics const):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsMemoryStore::removeDataForDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge const):
(WebKit::AuthenticationManager::coalesceChallengesMatching const):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::completeAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:

(WebKit::AuthenticationManager::Challenge::Challenge):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebKit::WebResourceLoadObserver::statisticsForURL):
(WebKit::WebResourceLoadObserver::takeStatistics):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:

Source/WTF:

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):

9:41 AM Changeset in webkit [274361] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Use refptr to PeerConnectionFactoryInterface
https://bugs.webkit.org/show_bug.cgi?id=222725

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

Use refptr instead of reference to PeerConnectionFactoryInterface.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
9:40 AM Changeset in webkit [274360] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows crash fix after r274252.

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::platformInit):

9:33 AM Changeset in webkit [274359] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[MacOS wk2] imported/w3c/web-platform-tests/media-source/SourceBuffer-abort-updating.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=222210

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure until test issues can be resolved.
9:22 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
8:25 AM Changeset in webkit [274358] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Crashes deep in GStreamer under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=222763

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-12
Reviewed by Xabier Rodriguez-Calvar.

Rely on select-streams event to configure only the first video stream of the collection
received on the bus. The select-stream decodebin3 signal is not recommended, and seems
broken anyway, because no selecting audio streams was still leading to audio decode pads
being added, leading to crashes.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::InnerDecoder::selectStream): Deleted.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
8:14 AM Changeset in webkit [274357] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-12
Reviewed by Ryosuke Niwa.

Cancel image loader events after first dispatch.
Also change EventSender to use WeakPtr.

  • dom/EventSender.h:

(WebCore::EventSender<T>::dispatchEventSoon):
(WebCore::EventSender<T>::dispatchPendingEvents):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::dispatchPendingErrorEvent):

  • loader/ImageLoader.h:
7:08 AM Changeset in webkit [274356] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

[MacOS] Reenable Audio Capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=223060

Reviewed by Eric Carlson.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):

7:06 AM Changeset in webkit [274355] by graouts@webkit.org
  • 7 edits in trunk

Support animation of perspective-origin property
https://bugs.webkit.org/show_bug.cgi?id=223116

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 35 PASS results.

  • web-platform-tests/css/css-transforms/animation/perspective-origin-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

While we have support for animating "perspective-origin-x" and "perspective-origin-y", which are
not part of the CSS Transforms standard, we do not support animation of "perspective-origin",
which we consider in WebKit to be a shorthand property. All that is needed to address this is to
add CSSPropertyPerspectiveOrigin in the list of animatable shorthand properties when creating
animation wrappers.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

7:02 AM Changeset in webkit [274354] by Carlos Garcia Campos
  • 5 edits in trunk/Source

[GTK] GTK4 crashes with XVFB: GLXBadWindow
https://bugs.webkit.org/show_bug.cgi?id=223108

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsGLX const): Check if GLX extension is supported and return the base error code.

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

Handle GLXBadWindow errors in AcceleratedBackingStoreX11.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::checkRequirements):
(WebKit::glxErrorCode):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):

6:33 AM Changeset in webkit [274353] by graouts@webkit.org
  • 18 edits in trunk

Blending lengths of different types should be allowed outside of the [0-1] range
https://bugs.webkit.org/show_bug.cgi?id=223115

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 57 PASS results.

  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/perspective-origin-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/transform-origin-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
  • web-platform-tests/css/css-values/animations/calc-interpolation-expected.txt:

Source/WebCore:

  • platform/Length.cpp:

(WebCore::blendMixedTypes):

6:25 AM Changeset in webkit [274352] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r274305.
https://bugs.webkit.org/show_bug.cgi?id=223119

Caused several debug layout-tests to crash

Reverted changeset:

"[macOS] Selecting text via mouse drag in image documents
shouldn't trigger click events"
https://bugs.webkit.org/show_bug.cgi?id=223075
https://trac.webkit.org/changeset/274305

5:19 AM Changeset in webkit [274351] by youenn@apple.com
  • 12 edits
    3 adds in trunk

Make RTCDataChannel transferable
https://bugs.webkit.org/show_bug.cgi?id=222965

Reviewed by Eric Carlson.

Source/WebCore:

To transfer a RTCDataChannel to workers, we need to create a new RTCDataChannel using the same data channel backend, which is cross-thread compatible.
We need to make sure we do not miss forwarding any event. And also it is a burden to transfer a data channel that is sending data (say blobs for instance).
For that reason, we currently only allow transferring data channels in the event loop task that created the data channel.

We add the infrastructure to transfer RTCDataChannel in SerializedScriptValue.
This is done by serializing an index to the transfered data channel. The transfered data channel contains state information and an identifier which allows to know
in which process is the data channel to transfer and an identifier to retrieve it from a global map.

We also need to update the code so that data channel backends can change of client.
For that purpose, we delay setting the client to when they are no longer transferable.
At that time, we register the data channel as client to its backed.
In the meantime, the data channel backend will store all messages received so far.
Once client is set, the data channel backend will deliver all messages and state changes to the data channel.

Since client might want to get messages in a worker thread, the client now also registers its context identifier,
which is used to post a task to the right thread.

Test: http/wpt/webrtc/datachannel-worker.html

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::m_contextIdentifier):
(WebCore::RTCDataChannel::close):
(WebCore::rtcDataChannelLocalMap):
(WebCore::RTCDataChannel::canDetach const):
(WebCore::RTCDataChannel::detach):
(WebCore::createClosedChannel):

  • Modules/mediastream/RTCDataChannel.h:

(WebCore::DetachedRTCDataChannel::DetachedRTCDataChannel):
(WebCore::DetachedRTCDataChannel::memoryCost const):

  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::LibWebRTCDataChannelHandler):
(WebCore::LibWebRTCDataChannelHandler::~LibWebRTCDataChannelHandler):
(WebCore::LibWebRTCDataChannelHandler::setClient):
(WebCore::LibWebRTCDataChannelHandler::close):
(WebCore::LibWebRTCDataChannelHandler::OnStateChange):
(WebCore::LibWebRTCDataChannelHandler::checkState):
(WebCore::LibWebRTCDataChannelHandler::OnMessage):
(WebCore::LibWebRTCDataChannelHandler::OnBufferedAmountChange):
(WebCore::LibWebRTCDataChannelHandler::postTask):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::fillTransferMap):
(WebCore::CloneSerializer::dumpRTCDataChannel):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readRTCDataChannel):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::canDetachRTCDataChannels):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/SerializedScriptValue.h:
  • platform/mediastream/RTCDataChannelHandler.h:

(WebCore::RTCDataChannelInit::isolatedCopy const):

  • platform/mock/RTCDataChannelHandlerMock.cpp:

(WebCore::RTCDataChannelHandlerMock::setClient):

  • platform/mock/RTCDataChannelHandlerMock.h:

LayoutTests:

  • http/wpt/webrtc/datachannel-worker-expected.txt: Added.
  • http/wpt/webrtc/datachannel-worker.html: Added.
  • http/wpt/webrtc/datachannel-worker.js: Added.

(onmessage):

4:40 AM Changeset in webkit [274350] by aboya@igalia.com
  • 2 edits in trunk/Tools

Unreviewed: Update Alicia's status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=223114

  • Scripts/webkitpy/common/config/contributors.json:
4:36 AM Changeset in webkit [274349] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.31.91

WebKitGTK 2.31.91

4:35 AM Changeset in webkit [274348] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.31.91 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.31.91.
3:06 AM Changeset in webkit [274347] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore/platform/gtk/po

Merge r274063 - [GTK] Update Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=222845

Patch by Dingzhong Chen <wsxy162@gmail.com> on 2021-03-08
Reviewed by Carlos Garcia Campos.

  • zh_CN.po:
3:06 AM Changeset in webkit [274346] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Tools/buildstream

Merge r274277 - [Flatpak SDK] Update libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223066

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

  • elements/sdk/libsoup3.bst: Bump to version 2.99.2.
3:06 AM Changeset in webkit [274345] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.32

Merge r274330 - [GTK] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223067

Reviewed by Adrian Perez de Castro.

.:

Use 4.1 as the API version when building with soup3 and keep using 5.0 for GTK4. Also make it impossible to
build with GTK4 and soup2.

  • Source/PlatformGTK.cmake:
  • Source/cmake/OptionsGTK.cmake:

Source/JavaScriptCore:

Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for the gtkdoc configuration file.

  • PlatformGTK.cmake:

Source/WebKit:

  • PlatformGTK.cmake: Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for gtkdoc config files
  • gtk/webkit2gtk-web-extension.pc.in: Add variables for gtk pkg-config file and libsoup version.
  • gtk/webkit2gtk.pc.in: Ditto.

Tools:

Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION.

  • gtk/manifest.txt.in:
3:06 AM Changeset in webkit [274344] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.32

Merge r274275 - Unreviewed. [GTK][WPE] Bump libsoup3 version to 2.99.3

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Bring back support for logging body data.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupLogger):

Source/WTF:

  • wtf/Platform.h:
  • wtf/URL.h:
3:06 AM Changeset in webkit [274343] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

[WPE] WebKitMediaKeySystemPermissionRequest.h missing in top-level header
https://bugs.webkit.org/show_bug.cgi?id=223076

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

  • UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Fix copy/paste mistake from GTK version of this

header.

  • UIProcess/API/wpe/webkit.h: The WebKitMediaKeySystemPermissionRequest header has to be

included here so apps can consume this new API.

3:06 AM Changeset in webkit [274342] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r274290 - REGRESSION(r274270): Broke WebKitSecurityOrigin docs
https://bugs.webkit.org/show_bug.cgi?id=223077

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Darin Adler.

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:
3:06 AM Changeset in webkit [274341] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.32

Merge r274270 - REGRESSION(r272469): [WPE][GTK] Epiphany UI process crashes when downloading PDFs, WebKitSecurityOrigin should use SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=222943

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Alex Christensen.

Source/WebKit:

Since r272469, WebCore::SecurityOrigin no longer accepts custom protocols except those
registered with LegacySchemeRegistry. WebPage registers all custom protocols, but
WebPageProxy does not, so WebCore::SecurityOrigin now only supports custom protocols in the
web process, not the UI process. This causes Epiphany to crash when the protocol of its
WebKitSecurityOrigin is unexpectedly NULL.

Alex wants to reduce usage of WebCore::SecurityOrigin outside the web process, so instead of
registering custom protocols with LegacySchemeRegistry in the UI process -- making it harder
to eventually get rid of LegacySchemeRegistry -- we will transition WebKitSecurityOrigin
from WebCore::SecurityOrigin to WebCore::SecurityOriginData, which is a simple data store
for <protocol, host, port>. This is mostly sufficient to implement WebKitSecurityOrigin,
except for webkit_security_origin_is_opaque(). I considered multiple ways to handle this,
but ultimately decided to just deprecate it. Epiphany is the only client using this function
in order to implement a WebKitSecurityOrigin equality operation, and it does so using
origins that should never be opaque, so there are no compatibility concerns here.

  • UIProcess/API/glib/WebKitAuthenticationRequest.cpp:

(webkit_authentication_request_get_security_origin):

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(_WebKitSecurityOrigin::_WebKitSecurityOrigin):
(webkitSecurityOriginCreate):
(webkitSecurityOriginGetSecurityOriginData):
(webkit_security_origin_new):
(webkit_security_origin_new_for_uri):
(webkit_security_origin_get_protocol):
(webkit_security_origin_get_host):
(webkit_security_origin_get_port):
(webkit_security_origin_is_opaque):
(webkit_security_origin_to_string):
(webkitSecurityOriginGetSecurityOrigin): Deleted.

  • UIProcess/API/glib/WebKitSecurityOriginPrivate.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(addOriginToMap):

  • UIProcess/API/gtk/WebKitSecurityOrigin.h:
  • UIProcess/API/wpe/WebKitSecurityOrigin.h:

Tools:

Add a test to ensure security origins can be successfully created for custom protocols.
Also, update the tests to accomodate the deprecation of webkit_security_origin_is_opaque().
Notably, origins for data:// URIs are no longer special.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:

(testSecurityOriginBasicConstructor):
(testSecurityOriginURIConstructor):
(testSecurityOriginDefaultPort):
(testSecurityOriginFileURI):
(testSecurityOriginDataURI):
(testCustomProtocolOrigin):
(beforeAll):
(testOpaqueSecurityOrigin): Deleted.

3:06 AM Changeset in webkit [274340] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.32

Merge r274210 - [WPE][GTK] Introduce NeedsUnbrandedUserAgent quirk and use it for accounts.google.com, docs.google.com, and drive.google.com
https://bugs.webkit.org/show_bug.cgi?id=222978

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-10
Reviewed by Carlos Garcia Campos.

Source/WebCore:

This is a follow-up to bug #222039. I simplified our Google user agent quirks too much in
that bug, breaking accounts.google.com, docs.google.com, and drive.google.com for clients
that set application name and version in the user agent. What we really need here is an
empty quirk in order to ensure our most boring standard user agent is used without any
application branding or customizations. But we no longer need to fake platform or browser,
as was required in the past.

Additionaly, clean up the code a bit. We shouldn't need to compute domain and baseDomain
many separate times, for instance. There's also no need to perform string operations to
add the WebKit version to the user agent, since the version has been frozen for several
years now and is likely to remain frozen indefinitely. Finally, remove some forgotten
leftovers of our Internet Explorer and Windows quirks that were previously used for Google
Docs.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::isGoogle): Deleted.
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):
(WebCore::versionForUAString): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasEmptyQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.

3:05 AM Changeset in webkit [274339] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274073 - Unreviewed, reverting r273197.
https://bugs.webkit.org/show_bug.cgi?id=222909

Revert of r273084 broke building on Linux platforms

Reverted changeset:

"Remove unused isGoogle function"
https://bugs.webkit.org/show_bug.cgi?id=222227
https://trac.webkit.org/changeset/273197

3:05 AM Changeset in webkit [274338] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.32

Merge r274070 - Unreviewed, reverting r273084.
https://bugs.webkit.org/show_bug.cgi?id=222905

User agent quirks still needed after all

Reverted changeset:

"[GTK] Remove all Google user agent quirks except for Google
Docs"
https://bugs.webkit.org/show_bug.cgi?id=222039
https://trac.webkit.org/changeset/273084

3:05 AM Changeset in webkit [274337] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.32

Merge r273997 - Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809

Reviewed by Michael Catanzaro.

Source/WebKit:

There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessTermination):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(TEST):

3:05 AM Changeset in webkit [274336] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r273713 - Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch()
https://bugs.webkit.org/show_bug.cgi?id=222577

Reviewed by Geoffrey Garen.

Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch() instead of duplicating
the code. It was error-prone to have 2 separate code paths whether the process exited due to a crash or a
termination request. It led to Bug 222574 for example because we added some logic to remove the process from
the cache in processDidTerminateOrFailedToLaunch() but had failed to do so in requestTermination().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::requestTermination):

  • UIProcess/WebProcessProxy.h:
3:05 AM Changeset in webkit [274335] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.32

Merge r273905 - In case of POST navigation redirected by a 302, the 'Origin' header is kept in the redirected request
https://bugs.webkit.org/show_bug.cgi?id=222653
<rdar://problem/74983521>

Reviewed by Alex Christensen.

Source/WebCore:

Remove Origin header if the navigation request goes from POST to GET.
This aligns with other browsers and removes some known interop issues.
This is consistent with WebKit not sending Origin headers for GET navigations.

Test: http/wpt/fetch/navigation-post-to-get-origin.html

  • loader/DocumentLoader.cpp:

(WebCore::isRedirectToGetAfterPost):
(WebCore::DocumentLoader::willSendRequest):

LayoutTests:

  • http/wpt/fetch/echo-origin.py: Added.
  • http/wpt/fetch/navigation-post-to-get-origin-expected.txt: Added.
  • http/wpt/fetch/navigation-post-to-get-origin.html: Added.
3:05 AM Changeset in webkit [274334] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WTF

Merge r273841 - std::is_literal_type causes -Wdeprecated-declarations warning with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=220662
<rdar://problem/73509470>

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-03
Reviewed by Darin Adler.

Ignore the warning. It would be better to not use the deprecated std::is_literal_type, but
this works for now.

  • wtf/Variant.h:
3:05 AM Changeset in webkit [274333] by Carlos Garcia Campos
  • 15 edits
    1 move
    7 adds in releases/WebKitGTK/webkit-2.32

Merge r273820 - Report the correct document uri in the case of a ContentSecurityPolicyClient
https://bugs.webkit.org/show_bug.cgi?id=222489
<rdar://problem/73774118>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html

http/tests/security/contentSecurityPolicy/report-document-uri-blob.html

Previously we were setting the document URI to be the blocked URI in
the case where we were using a ContentSecurityPolicyClient and didn't
have access to the document URL. This patch passes the document URL
to the network process when loading a resource so we can properly set
the document URI in this case.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::shouldReportProtocolOnly):
(WebCore::ContentSecurityPolicy::deprecatedURLForReporting const):
(WebCore::ContentSecurityPolicy::reportViolation const):
Follow spec guidelines https://www.w3.org/TR/CSP2/#violation-reports
and set the document URI to be the URI's scheme if it is a globally
unique identifier.

In the case where we are using a client and don't have the document
URL, we should at least strip the blocked URL before reporting to align
with the spec.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::setDocumentURL):

Source/WebKit:

Pass the document URL from the Network Process when we schedule a load
in case we need to report a CSP violation in NetworkLoadChecker.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::contentSecurityPolicy):
The regular toString() method sets file:// URLs to null. We should use
toRawString() so we can report the scheme if the source origin is a
local file, as per the W3C spec.

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

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

(WebKit::PingLoad::PingLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Tools:

Rename OverrideContentSecurityPolicy.mm to ContentSecurityPolicy.mm
so we can use it for more general purpose CSP testing.

Add a test for document-uri reporting for file:, data: and about: protocols.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/OverrideContentSecurityPolicy.mm.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/csp-document-uri-report.html: Added.

LayoutTests:

Layout test coverage for redirects using a ContentSecurityPolicyClient
and blob files.

  • http/tests/security/contentSecurityPolicy/report-document-uri-blob-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-document-uri-blob.html: Added.
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html: Added.
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
  • platform/win/TestExpectations:

Blob URLs timeout on win.

3:05 AM Changeset in webkit [274332] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.32

Merge r273735 - REGRESSION(r263094): [GTK][WPE] API test /webkit/WebKitWebContext/languages is failing
https://bugs.webkit.org/show_bug.cgi?id=188111

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-02
Reviewed by Michael Catanzaro.

Source/WebKit:

The GLib API allows to change the user preferred languages after the web process is created. Since r263094 we
are no loner sending the new overrides to the web process. Instead of calling overrideUserPreferredLanguages()
we now set the overrides in the WebProcessPool configuration, so that we can remove the language observer.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_set_preferred_languages): Use WebProcessPool::setOverrideLanguages() instead of
overrideUserPreferredLanguages().

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool) Remove the language observer registration.
(WebKit::WebProcessPool::~WebProcessPool): Remove the language observer unregistration.
(WebKit::WebProcessPool::setOverrideLanguages): Update the language overrides in the configuration and notify
all processes.
(WebKit::WebProcessPool::languageChanged): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::userPreferredLanguagesChanged const): Call overrideUserPreferredLanguages() again here.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextLanguages): Invalid locale is ignored now instead of throwing a exception.

  • TestWebKitAPI/glib/TestExpectations.json: Remove test expectation now that it passes again.
3:05 AM Changeset in webkit [274331] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r273643 - [GTK] Fails to build in i386: static assertion failed: divisor must be a power of two
https://bugs.webkit.org/show_bug.cgi?id=222480

Reviewed by Carlos Garcia Campos.

  • Platform/IPC/StreamConnectionBuffer.h:

(IPC::StreamConnectionBuffer::headerSize):

1:31 AM Changeset in webkit [274330] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223067

Reviewed by Adrian Perez de Castro.

.:

Use 4.1 as the API version when building with soup3 and keep using 5.0 for GTK4. Also make it impossible to
build with GTK4 and soup2.

  • Source/PlatformGTK.cmake:
  • Source/cmake/OptionsGTK.cmake:

Source/JavaScriptCore:

Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for the gtkdoc configuration file.

  • PlatformGTK.cmake:

Source/WebKit:

  • PlatformGTK.cmake: Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION for gtkdoc config files
  • gtk/webkit2gtk-web-extension.pc.in: Add variables for gtk pkg-config file and libsoup version.
  • gtk/webkit2gtk.pc.in: Ditto.

Tools:

Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION.

  • gtk/manifest.txt.in:
1:19 AM Changeset in webkit [274329] by graouts@webkit.org
  • 8 edits in trunk

Fix interpolation of perspective property
https://bugs.webkit.org/show_bug.cgi?id=223111

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 59 PASS results, although we also have 18 new FAIL results. Of those
new failures, 16 are due to what I believe to be an issue in the WPT test and I filed
https://github.com/web-platform-tests/wpt/pull/28036 to address this. With this change
in the test, we pass all perspective interpolation tests.

  • web-platform-tests/css/css-transforms/animation/perspective-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/perspective-interpolation-expected.txt:

Source/WebCore:

In order to correctly interplate the "perspective" CSS property, we must not interpolate
between "none" values and lengths. To do this, we add a new wrapper for this property with
a canInterpolate() implementation that uses RenderStyle::hasPerspective() to determine
whether we're dealing with a "none" value.

We also had to make a change to the way the "none" value is represented internally, since it
used to be 0 although the spec (https://drafts.csswg.org/css-transforms-2/#perspective-property)
says "perspective: 0 in a stylesheet will still serialize back as 0". So we now change the
initial value to be -1, which is fine since negative values are otherwise not allowed.

To correctly support this, we must also change consumePerspective() to no longer disallow the
0 value at parse time.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::PerspectiveWrapper::PerspectiveWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumePerspective):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasPerspective const):
(WebCore::RenderStyle::initialPerspective):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPerspective):

Mar 11, 2021:

11:14 PM Changeset in webkit [274328] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r267775): Web Share API Level 2 is incorrectly disabled
https://bugs.webkit.org/show_bug.cgi?id=223110

Reviewed by Simon Fraser.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Through a series of minor mishaps related to r267623 and r267775,
the current state of the default value of WebShareFileAPIEnabled
in modern WebKit does not match what it was changed to in r267762
(is it now instead off everywhere).

Fix this regression by copying the condition from WebShareEnabled.

10:57 PM Changeset in webkit [274327] by Said Abou-Hallawa
  • 13 edits in trunk

[GPUP] Enable 2D Canvas in layout tests by default
https://bugs.webkit.org/show_bug.cgi?id=222835

Reviewed by Simon Fraser.

Source/WTF:

Move UseGPUProcessForCanvasRenderingEnabled from WebPreferencesInternal
to WebPreferencesExperimental so that the WebKitTestRunner will turn it
on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

Some of the canvas layout tests are still failing when GPUP is enabled
for 2D Canvas. Skip these tests for now.

  • http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
  • http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
  • http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:

webkit.org/b/222881

  • inspector/canvas/memory.html:

webkit.org/b/222880

9:56 PM Changeset in webkit [274326] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

[GPU Process] Encoding buffer for DisplayList items should be aligned to 8 bytes
https://bugs.webkit.org/show_bug.cgi?id=223096

Reviewed by Simon Fraser.

Ensure the static array in ItemBuffer::append() is aligned to 8 bytes.
So each member in the encoded DisplayList::Item can be aligned to its
alignment requirement

  • platform/graphics/displaylists/DisplayListItemBuffer.h:

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

9:43 PM Changeset in webkit [274325] by sbarati@apple.com
  • 9 edits in trunk/Source

Adopt VM_FLAGS_PERMANENT for the config vm mapping
https://bugs.webkit.org/show_bug.cgi?id=222086
<rdar://74402690>

Reviewed by Yusuke Suzuki and Mark Lam.

Source/JavaScriptCore:

  • runtime/JSCConfig.h:

(JSC::Config::configureForTesting):

Source/WebKit:

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

(WebKit::XPCServiceMain):

Source/WTF:

  • wtf/PlatformHave.h:
  • wtf/Threading.cpp:

(WTF::initialize):

  • wtf/WTFConfig.cpp:

(WTF::setPermissionsOfConfigPage):

  • wtf/WTFConfig.h:

(WTF::setPermissionsOfConfigPage):

8:48 PM Changeset in webkit [274324] by Chris Dumez
  • 25 edits in trunk/Source

Introduce ensureOnMainThread()
https://bugs.webkit.org/show_bug.cgi?id=223105

Reviewed by Darin Adler.

Introduce ensureOnMainThread(), similarly to the recently added ensureOnMainThreadRunLoop(). It runs
the task synchronously when on the main thread, otherwise dispatches the task to the main thread.

Source/WebCore:

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::performFunctionOnMainThread):
(WebCore::Accessibility::retrieveValueFromMainThread):
(WebCore::Accessibility::retrieveAutoreleasedValueFromMainThread):

  • dom/MessagePort.cpp:

(WebCore::MessagePort::close):

  • dom/messageports/MessagePortChannelProviderImpl.cpp:

(WebCore::MessagePortChannelProviderImpl::createNewMessagePortChannel):
(WebCore::MessagePortChannelProviderImpl::entangleLocalPortInThisProcessToRemote):
(WebCore::MessagePortChannelProviderImpl::messagePortDisentangled):
(WebCore::MessagePortChannelProviderImpl::messagePortClosed):
(WebCore::MessagePortChannelProviderImpl::postMessageToRemote):
(WebCore::MessagePortChannelProviderImpl::takeAllMessagesForPort):
(WebCore::MessagePortChannelProviderImpl::checkRemotePortForActivity):
(WebCore::MessagePortChannelProviderImpl::performActionOnMainThread): Deleted.

  • dom/messageports/MessagePortChannelProviderImpl.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enqueueTaskForDispatcher):

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::scheduleCallbackCheck):

  • platform/GenericTaskQueue.cpp:

(WebCore::TaskDispatcher<Timer>::postTask):

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

(ensureOnMainThread): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(-[WebRootSampleBufferBoundsChangeListener observeValueForKeyPath:ofObject:change:context:]):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::invalidateFontCache):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData):

  • platform/mediastream/CaptureDeviceManager.cpp:

(WebCore::CaptureDeviceManager::deviceChanged):

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::applyRotation):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSourceFactory::beginInterruption):
(WebCore::CoreAudioCaptureSourceFactory::endInterruption):
(WebCore::CoreAudioCaptureSourceFactory::scheduleReconfiguration):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::runOnMainThread):

Source/WebKitLegacy:

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::setOriginDetails):

Source/WTF:

  • wtf/MainThread.cpp:

(WTF::ensureOnMainThread):

  • wtf/MainThread.h:
  • wtf/ThreadSafeRefCounted.h:

(WTF::ThreadSafeRefCounted::deref const):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringWrapperCFAllocator::deallocate):

  • wtf/unix/MemoryPressureHandlerUnix.cpp:

(WTF::MemoryPressureHandler::triggerMemoryPressureEvent):

8:42 PM Changeset in webkit [274323] by commit-queue@webkit.org
  • 26 edits in trunk

Add some logging to help debug flaky quota tests
https://bugs.webkit.org/show_bug.cgi?id=222995

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

Source/WebCore:

http/tests/IndexedDB/storage-limit* have been flaky on bots since they were added. Add an option to allow
printing some logging in these tests.

No new test as no behavior change in quota management.

  • storage/StorageQuotaManager.cpp:

(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):
(WebCore::StorageQuotaManager::tryGrantRequest):
(WebCore::StorageQuotaManager::setLoggingEnabled):

  • storage/StorageQuotaManager.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setQuotaLoggingEnabled):
(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetQuotaLoggingEnabled):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setQuotaLoggingEnabled):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setQuotaLoggingEnabled):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Source/WebKitLegacy:

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::quotaManager):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setQuotaLoggingEnabled):
(WTR::TestRunner::setIsSpeechRecognitionPermissionGranted):
(WTR::TestRunner::setIsMediaKeySystemPermissionGranted):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setQuotaLoggingEnabled):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/IndexedDB/storage-limit-1.https.html:
  • http/tests/IndexedDB/storage-limit-2.https.html:
  • http/tests/IndexedDB/storage-limit.https.html:
7:51 PM Changeset in webkit [274322] by Chris Dumez
  • 12 edits in trunk/Source

Drop some unnecessary RunLoop::isMain() / IsMainRunLoop() checks
https://bugs.webkit.org/show_bug.cgi?id=223094

Reviewed by Darin Adler.

Drop some unnecessary RunLoop::isMain() / IsMainRunLoop() checks. callOnMainThread() / ensureOnMainRunLoop()
take care of calling their lambda synchronously when already on the main runloop.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::startOnMainThread):

  • UIProcess/API/Cocoa/WKURLSchemeTask.mm:

(getExceptionTypeFromMainRunLoop):
(-[WKURLSchemeTaskImpl dealloc]):

  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase accessibilityPluginObject]):

7:24 PM Changeset in webkit [274321] by eric.carlson@apple.com
  • 9 edits in trunk

[GPU Process] http/tests/media/hls/hls-audio-tracks-locale-selection.html fails
https://bugs.webkit.org/show_bug.cgi?id=223102
<rdar://problem/75338802>

Reviewed by Jer Noble.

Source/WebKit:

No new tests, these changes fix an existing test.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess): Set user preferred
languages if parameters.overrideLanguages isn't empty.
(WebKit::GPUConnectionToWebProcess::setUserPreferredLanguages): Set user preferred
languages.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • Shared/GPUProcessConnectionParameters.h: Add overrideLanguages.

(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::languagesChanged): Send new languages to GPU process.
(WebKit::GPUProcessConnection::GPUProcessConnection): Register for language changes.
(WebKit::GPUProcessConnection::~GPUProcessConnection): Unregister.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeGPUProcessConnectionParameters):Add overrideLanguages.

LayoutTests:

  • platform/wk2/TestExpectations: Unskip the passing test.
7:09 PM Changeset in webkit [274320] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.81.1

Tag Safari-611.1.21.81.1.

6:55 PM Changeset in webkit [274319] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.81-branch/Source/WebKit

Cherry-pick r274295. rdar://problem/75344113

[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080

Reviewed by Brent Fulgham.

Add additional telemetry to WebContent sandbox on macOS.

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

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

6:46 PM Changeset in webkit [274318] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.81-branch/Source

Versioning.

WebKit-7611.1.21.81.1

6:31 PM Changeset in webkit [274317] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.9

Tag Safari-611.1.21.1.9.

6:27 PM Changeset in webkit [274316] by Russell Epstein
  • 1 copy in branches/safari-611.1.21.81-branch

New branch.

6:10 PM Changeset in webkit [274315] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

REGRESSION (r274264) [MacOS Wk1] compositing/visibility/iframe-visibility-hidden.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223104

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:37 PM Changeset in webkit [274314] by Amir Mark Jr.
  • 2 edits in trunk/Tools

Adding myself as a committer in the contributors file
N/A

N/A

  • Scripts/webkitpy/common/config/contributors.json: Added myself as a committer
4:56 PM Changeset in webkit [274313] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

[BigSur wk1 arm64] platform/mac/fast/objc/longlongTest.html is a consistent failure.
https://bugs.webkit.org/show_bug.cgi?id=223051

Reviewed by Chris Dumez and Yusuke Suzuki.

The issue is that the test is expecting convertValueToObjcValue()'s conversion of
double to long long to follow x86_64 semantics. I don't think there's a
specification for this behavior (falls under undefined behavior). I'll just
change the code such that it emulates x86_64 behavior to placate the test.

Test covered by platform/mac/fast/objc/longlongTest.html.

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertDoubleToLongLong):
(JSC::Bindings::convertValueToObjcValue):

4:47 PM Changeset in webkit [274312] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

AI validator patchpoint should read heap top
https://bugs.webkit.org/show_bug.cgi?id=223052
<rdar://75087095>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/private-methods-inheritance.js: Added.

(A):
(A.prototype.x):
(B.prototype.y):
(B):

Source/JavaScriptCore:

Currently, the patchpoint doesn't specify any reads, which allows it to be moved around by B3
and can cause false positives since it at least read the structure ID for comparing values.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

4:43 PM Changeset in webkit [274311] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS, macOS] Re-allow WebContent sandbox permissions for specific /etc files
https://bugs.webkit.org/show_bug.cgi?id=223088
<rdar://problem/75332107>

Reviewed by Per Arne Vollan.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:22 PM Changeset in webkit [274310] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

[macOS] override the background color of PDF documents to match PDFKit
https://bugs.webkit.org/show_bug.cgi?id=223091
<rdar://problem/74584770>

Reviewed by Tim Horton.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

4:12 PM Changeset in webkit [274309] by Alan Coon
  • 1 copy in tags/Safari-612.1.5.4

Tag Safari-612.1.5.4.

4:08 PM Changeset in webkit [274308] by Alexey Shvayka
  • 25 edits
    5 adds in trunk

Align JSGlobalObject::defineOwnProperty() with the spec and other runtimes
https://bugs.webkit.org/show_bug.cgi?id=203456

Reviewed by Robin Morisset.

JSTests:

  • microbenchmarks/global-var-put-to-scope.js: Added.
  • stress/eval-func-decl-in-frozen-global.js:

Object.freeze() redefines all global variables as ReadOnly, including hoisted var error.
Aligns with V8.

  • stress/global-object-define-own-property-put-to-scope.js: Added.
  • stress/global-object-define-own-property.js: Added.
  • stress/to-this-before-arrow-function-closes-over-this-that-starts-as-lexical-environment.js:

Fix unwanted name conflict, which was an error in the original test, not an intended part of it.
Also, remove misleading comment on defineProperty and assert accessors are created on global object.
Aligns with V8.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-define-own-property-unforgeable-same-origin-expected.txt: Added.
  • web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-define-own-property-unforgeable-same-origin.html: Added.

Source/JavaScriptCore:

Per spec, top-level var bindings are non-configurable properties of the global
object [1], while undefined / NaN / Infinity are also non-writable [2].

Prior to this change, redefining global var binding with accessor descriptor
failed silently (rather than throwing a TypeError); redefining with data or
generic descriptor created a structure property, which took precedence over
symbol table entry in JSGlobalObject::getOwnPropertySlot(), effectively
destroying live binding between global.foo and var foo.

This patch re-engineers JSGlobalObject::defineOwnProperty(), fixing both issues
mentioned above. If defineOwnProperty() override is removed, there is no way
a live binding can be maintained.

In a follow-up change, JSGlobalObject::getOwnPropertySlot() will be updated to
search symbol table first, aligning it with the spec [3], put(), and
defineOwnProperty(). Apart from consistency, this will bring a mild speed-up.

To accomodate global var binding reassignment right after it becomes read-only
(in the same scope), this patch introduces a watchpoint that can be fired by
JSGlobalObject::defineOwnProperty(). put_to_scope performance is neutral.

Also, this patch removes unused symbolTableGet() overload and orphaned
JSGlobalObject::defineGetter() / JSGlobalObject::defineSetter() declarations.

[1]: https://tc39.es/ecma262/#sec-object-environment-records-createmutablebinding-n-d
[2]: https://tc39.es/ecma262/#sec-value-properties-of-the-global-object
[3]: https://tc39.es/ecma262/#sec-global-environment-records-getbindingvalue-n-s

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::needsDynamicLookup):
(JSC::DFG::ByteCodeParser::parseBlock):

  • jit/JIT.cpp:

(JSC::JIT::emitVarReadOnlyCheck):

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

(JSC::JIT::emit_op_put_to_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_to_scope):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::defineOwnProperty):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::varReadOnlyWatchpoint):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTableGet):

Source/WebCore:

This patch removes location special-casing, which a) incorrectly returned
false if new descriptor was the same as the current one and b) failed
silently otherwise (rather than throwing a TypeError).

However, this change introduces window / document special-casing because
they exist on the structure and as symbol table entries (for performance reasons).
Aligns WebKit with Blink and partly with Gecko.

Test: imported/w3c/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-define-own-property-unforgeable-same-origin.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::defineOwnProperty):

LayoutTests:

  • fast/dom/Window/Location/window-override-location-using-defineGetter-expected.txt:
  • fast/dom/Window/Location/window-override-location-using-defineGetter.html:
  • fast/dom/Window/Location/window-override-window-using-defineGetter-expected.txt:
  • fast/dom/Window/Location/window-override-window-using-defineGetter.html:
  • fast/dom/getter-on-window-object2-expected.txt:
  • fast/dom/getter-on-window-object2.html:
4:01 PM Changeset in webkit [274307] by Chris Dumez
  • 34 edits in trunk

Introduce WorkQueue::main() to get the main thread's work queue
https://bugs.webkit.org/show_bug.cgi?id=223087

Reviewed by Geoffrey Garen.

Introduce WorkQueue::main() to get the main thread's work queue. This allows us to port some more code from
dispatch_queue to WorkQueue. It also simplifies some code that has to deal that sometimes needs to run on
the main thread and other times on a background queue. Having a single WorkQueue type to represent both the
main thread and a background queue makes writing such code more convenient.

Source/WebCore:

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):

  • platform/ios/wak/WebCoreThread.mm:

(WebThreadRunOnMainThread):

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::writeFile):
(WebKit::CacheStorage::Engine::readFile):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):

  • NetworkProcess/cache/NetworkCacheIOChannel.h:
  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):

  • NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:

(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):

  • NetworkProcess/cache/NetworkCacheIOChannelGLib.cpp:

(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSyncInThread):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::traverse):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::InitializeWebKit2):

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

(WebKit::XPCServiceEventHandler):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(+[WKBrowsingContextController registerSchemeForCustomProtocol:]):
(+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::scheduleActivityStateUpdate):

  • UIProcess/PDF/WKPDFHUDView.mm:

(-[WKPDFHUDView initWithFrame:pluginIdentifier:page:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::fetchDataAndApply):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestRectsToEvadeForSelectionCommandsWithCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::willOpenAppLink):

  • UIProcess/mac/ServicesController.mm:

(WebKit::ServicesController::refreshExistingServices):

Source/WebKitLegacy/mac:

  • Misc/WebDownload.mm:

(callOnDelegateThreadAndWait):

Source/WTF:

  • wtf/WorkQueue.cpp:

(WTF::WorkQueue::main):

  • wtf/WorkQueue.h:
  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::constructMainWorkQueue):
(WTF::WorkQueue::WorkQueue):

  • wtf/generic/WorkQueueGeneric.cpp:

(WorkQueue::constructMainWorkQueue):
(WorkQueue::WorkQueue):

Tools:

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::doAsyncTask):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(-[DumpRenderTree _webThreadInvoked]):

  • DumpRenderTree/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::doAsyncTask):
(WTR::UIScriptControllerMac::activateDataListSuggestion):
(WTR::UIScriptControllerMac::removeViewFromWindow):
(WTR::UIScriptControllerMac::addViewToWindow):

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::activateDataListSuggestion):
(WTR::UIScriptControllerMac::chooseMenuAction):
(WTR::UIScriptControllerMac::activateAtPoint):

3:59 PM Changeset in webkit [274306] by Chris Dumez
  • 9 edits in trunk/Source

Use CallOnMainThreadAndWait() instead of CallAndMainThread() + BinarySemaphore
https://bugs.webkit.org/show_bug.cgi?id=223093

Reviewed by Geoffrey Garen.

Source/WebCore:

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::blobSize):

  • platform/glib/FileMonitorGLib.cpp:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
  • platform/mock/MockAudioDestinationCocoa.cpp:

Source/WebKit:

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:
  • UIProcess/API/glib/IconDatabase.cpp:
3:55 PM Changeset in webkit [274305] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

[macOS] Selecting text via mouse drag in image documents shouldn't trigger click events
https://bugs.webkit.org/show_bug.cgi?id=223075

Reviewed by Tim Horton.

Improve image overlay support in image documents, by setting -webkit-user-select: text; on the image overlay
container and cursor: text; on each of the text children. Additionally, make it so that text selection in
image overlays doesn't trigger a click event, so that attempting to select text doesn't trigger click events.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateSelectionForMouseDrag):

3:54 PM Changeset in webkit [274304] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Use BinarySemaphore in callOnMainAndWait()
https://bugs.webkit.org/show_bug.cgi?id=223092

Reviewed by Geoffrey Garen.

Use BinarySemaphore in callOnMainAndWait() instead of a Condition, this simplifies the code
a bit. Also templatize the function to make sure we avoid any runtime checks for the
the "mainStyle".

  • wtf/MainThread.cpp:

(WTF::callOnMainAndWait):
(WTF::callOnMainRunLoopAndWait):
(WTF::callOnMainThreadAndWait):

3:11 PM Changeset in webkit [274303] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: WI.Object.singleFireEventListener should not keep a strong reference to thisObject
https://bugs.webkit.org/show_bug.cgi?id=223090

Reviewed by BJ Burg.

  • UserInterface/Base/Object.js:

(WI.Object.addEventListener):
(WI.Object.singleFireEventListener):

3:06 PM Changeset in webkit [274302] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Adopt WKSeparatedModelView for <model>
https://bugs.webkit.org/show_bug.cgi?id=223085
<rdar://problem/75330603>

Reviewed by Sam Weinig.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:

Make a WKSeparatedModelView for <model>'s UI-side view if available.

2:41 PM Changeset in webkit [274301] by Aditya Keerthi
  • 10 edits in trunk

[iOS][FCR] Update disabled state for button-like controls
https://bugs.webkit.org/show_bug.cgi?id=222318
<rdar://problem/74645980>

Reviewed by Wenson Hsieh.

Source/WebCore:

Update the disabled state for all button-like controls to match the
latest specification. The default disabled state is dark gray text
on a light gray background.

  • css/html.css:

(input:matches([type="button"], [type="submit"], [type="reset"]):disabled,):
(input[type="checkbox"]:indeterminate:disabled):
(input:matches([type="checkbox"], [type="radio"]):disabled):
(input:matches([type="checkbox"], [type="radio"]):checked:disabled):

  • css/legacyFormControlsIOS.css:

(input[type="checkbox"]:indeterminate:disabled,):
(input:matches([type="button"], [type="submit"], [type="reset"]):disabled,):
(input[type="file"]:disabled):
(input:matches([type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"]):disabled):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):

LayoutTests:

Rebaslined tests to account for the new disabled appearance.

  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/basic-selects-expected.txt:
  • platform/ios/fast/forms/disabled-select-change-index-expected.txt:
  • platform/ios/fast/forms/file/file-input-disabled-expected.txt:
  • platform/ios/fast/forms/select-disabled-appearance-expected.txt:
2:40 PM Changeset in webkit [274300] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use BinarySemaphore in SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously()
https://bugs.webkit.org/show_bug.cgi?id=223089

Reviewed by Geoffrey Garen.

Use BinarySemaphore in SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously() instead of a
Condition. This simplifies the code a bit. Also use callOnMainThread() instead of a main RunLoop
dispatch. We're in WebCore and it seems safer with regards to iOS WK1 (WebThread).

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):

1:48 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
1:48 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
1:36 PM Changeset in webkit [274299] by Devin Rousso
  • 11 edits
    3 copies
    8 moves
    2 adds
    1 delete in trunk

[macCatalyst] media controls should have macOS styling and behavior
https://bugs.webkit.org/show_bug.cgi?id=223078
<rdar://problem/71857091>

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.h:

(WebCore::MediaControlsHost::setSimulateCompactMode): Deleted.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::platform const): Added.
(WebCore::MediaControlsHost::compactMode const): Deleted.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript):
Combine compactMode and window.isIOSFamily = true; into MediaControlsHost::platform
and add support for PLATFORM(MACCATALYST).

  • Modules/modern-media-controls/controls/layout-item.js:
  • Modules/modern-media-controls/controls/icon-service.js:

(IconService.prototype._fileNameAndPlatformForIconAndLayoutTraits):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype.get layoutTraits):
(MediaController.prototype._supportingObjectClasses):
(MediaController.prototype._controlsClassForLayoutTraits):
(MediaController.prototype._shouldControlsBeAvailable):
Treat "maccatalyst" as LayoutTraits.macOS.
Replace LayoutTraits.Compact with LayoutTraits.watchOS.

  • Modules/modern-media-controls/controls/watchos-activity-indicator.js: Renamed from Modules/modern-media-controls/controls/compact-activity-indicator.js.
  • Modules/modern-media-controls/controls/watchos-activity-indicator.css: Renamed from Modules/modern-media-controls/controls/compact-activity-indicator.css.
  • Modules/modern-media-controls/controls/watchos-media-controls.js: Renamed from Modules/modern-media-controls/controls/compact-media-controls.js.
  • Modules/modern-media-controls/controls/watchos-media-controls.css: Renamed from Modules/modern-media-controls/controls/compact-media-controls.css.
  • Modules/modern-media-controls/media/watchos-media-controls-support.js: Renamed from Modules/modern-media-controls/media/compact-media-controls-support.js.
  • Modules/modern-media-controls/images/watchOS/InvalidCircle.pdf: Renamed from Modules/modern-media-controls/images/watchOS/InvalidCompact.pdf.
  • Modules/modern-media-controls/images/watchOS/PlayCircle.pdf: Renamed from Modules/modern-media-controls/images/watchOS/PlayCompact.pdf.
  • Modules/modern-media-controls/images/watchOS/SpinnerSprite@2x.png: Renamed from Modules/modern-media-controls/images/watchOS/ActivityIndicatorSpriteCompact@2x.png.

Rename Compact*/.compact* to WatchOS*/.watchos*.

  • Modules/modern-media-controls/js-files:
  • WebCore.xcodeproj/project.pbxproj:

Drive-by: Add missing JS/CSS files.

LayoutTests:

  • media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor.html: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html.
  • media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor-expected.txt: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt.
  • media/modern-media-controls/watchos-media-controls/watchos-media-controls-layout.html: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-layout.html.
  • media/modern-media-controls/watchos-media-controls/watchos-media-controls-layout-expected.txt: Renamed from media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt.
1:14 PM Changeset in webkit [274298] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit

Cherry-pick r274295. rdar://problem/75290553

[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080

Reviewed by Brent Fulgham.

Add additional telemetry to WebContent sandbox on macOS.

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

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

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

Revert r260302
https://bugs.webkit.org/show_bug.cgi?id=223048

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-11
Reviewed by Geoffrey Garen.

Source/WebKit:

r260302 was based on the faulty assumption that if we receive bytes from a server after a client certificate challenge,
it must've accepted the client certificate we provided and we should always provide this certificate to this server.
This assumption is faulty because there are servers that request a client certificate but provide a response if you do
not provide a certificate that it accepts. I'm removing this code because as part of my investigation of rdar://73974226
I found that it did not help anything, and since then I committed r269162 which did help solve that problem.

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

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::clientCertificateSuggestedForHost): Deleted.
(WebKit::NetworkSessionCocoa::taskServerConnectionSucceeded): Deleted.
(WebKit::NetworkSessionCocoa::taskFailed): Deleted.
(WebKit::NetworkSessionCocoa::successfulClientCertificateForHost const): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TestWebKitAPI::clientCertServer): Deleted.
(TestWebKitAPI::BlockPtr<void): Deleted.
(TestWebKitAPI::countClientCertChallenges): Deleted.

12:47 PM Changeset in webkit [274296] by Chris Dumez
  • 15 edits in trunk/Source

Replace some usage of dispatch_queue with WorkQueue now that it supports sync dispatching
https://bugs.webkit.org/show_bug.cgi?id=223073

Reviewed by Darin Adler.

Replace some usage of dispatch_queue with WorkQueue now that it supports sync dispatching
since r274286.

  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::itpQueue):
(WebKit::determineITPState):
(WebKit::doesAppHaveITPEnabled):

12:43 PM Changeset in webkit [274295] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080

Reviewed by Brent Fulgham.

Add additional telemetry to WebContent sandbox on macOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
12:37 PM Changeset in webkit [274294] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE] WebKitMediaKeySystemPermissionRequest.h missing in top-level header
https://bugs.webkit.org/show_bug.cgi?id=223076

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

  • UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Fix copy/paste mistake from GTK version of this

header.

  • UIProcess/API/wpe/webkit.h: The WebKitMediaKeySystemPermissionRequest header has to be

included here so apps can consume this new API.

12:33 PM Changeset in webkit [274293] by Devin Rousso
  • 6 edits in trunk

Video controls stay on screen indefinitely after interacting with time scrubber
https://bugs.webkit.org/show_bug.cgi?id=223081
<rdar://problem/73935705>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html

  • Modules/modern-media-controls/controls/auto-hide-controller.js:

(AutoHideController):
(AutoHideController.prototype.set fadesWhileIdle):
(AutoHideController.prototype.get hasSecondaryUIAttached): Added.
(AutoHideController.prototype.set hasSecondaryUIAttached): Added.
(AutoHideController.prototype.handleEvent):
(AutoHideController.prototype.mediaControlsFadedStateDidChange):
(AutoHideController.prototype.mediaControlsBecameInvisible):
(AutoHideController.prototype.get _canFadeControls): Added.
(AutoHideController.prototype._resetAutoHideTimer):
(AutoHideController.prototype._autoHideTimerFired):
(AutoHideController.prototype._cancelNonEnforcedAutoHideTimer): Deleted.
Simplify the logic of AutoHideController to always listen for "pointer*" events instead
of adding/removing them depending on set fadesWhileIdle. This was problematic because when
the media is paused, ControlsVisibilitySupport will disable fadesWhileIdle, removing all
"pointer*" event listeners, only to re-add them as soon as the media is resumed (this is
especially bad when clicking on the time scrubber track to seek, as this will pause and then
resume the media in rapid succession). Remove _enforceAutoHideTimer as there's no case
where we wouldn't want to be able to delay/cancel the auto-hide based on user interaction.

  • Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.prototype.hideTracksPanel):
Now that set hasSecondaryUIAttached also calls _resetAutoHideTimer, don't manually set
this.faded and instead use the logic/timing in AutoHideController.

LayoutTests:

  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
12:17 PM Changeset in webkit [274292] by eric.carlson@apple.com
  • 4 edits in trunk/LayoutTests

[Mac] http/tests/media/video-play-stall.html is flakey
https://bugs.webkit.org/show_bug.cgi?id=148597
<rdar://problem/22484300>

Reviewed by Jer Noble.

  • http/tests/media/video-play-stall.html: Increase the amount of data loaded before

stalling because the test assumes that playback begins before the 'stalled' event
is fired, and AVFoundation has become much more conservative about predicting when
is is possible to begin playing without running out of data.

  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
11:27 AM Changeset in webkit [274291] by mark.lam@apple.com
  • 7 edits in trunk

Use tagged pointers in more places in the MetaAllocator code.
https://bugs.webkit.org/show_bug.cgi?id=223055
rdar://69971224

Reviewed by Saam Barati.

Source/WTF:

  1. Made the MetaAllocatorPtr constructor that takes a raw pointer private, and only call it from a static factory method, MetaAllocatorPtr::makeFromRawPointer() to make it clear that we're using an untagged pointer as a source.
  2. Added a MetaAllocatorPtr constructor that retags a pointer. This allows minimizes the window of working with an untagged pointer.
  3. Assert that MetaAllocator::addFreshFreeSpace() is only called at system initialization time.
  4. Removed an unused MetaAllocator::FreeSpaceNode constructor.
  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::release):
(WTF::MetaAllocatorHandle::MetaAllocatorHandle):
(WTF::MetaAllocatorHandle::shrink):
(WTF::MetaAllocator::allocate):
(WTF::MetaAllocator::addFreshFreeSpace):

  • wtf/MetaAllocator.h:

(WTF::MetaAllocator::FreeSpaceNode::FreeSpaceNode): Deleted.

  • wtf/MetaAllocatorHandle.h:
  • wtf/MetaAllocatorPtr.h:

(WTF::MetaAllocatorPtr::makeFromRawPointer):
(WTF::MetaAllocatorPtr::MetaAllocatorPtr):

Tools:

  • TestWebKitAPI/Tests/WTF/MetaAllocator.cpp:
11:25 AM Changeset in webkit [274290] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r274270): Broke WebKitSecurityOrigin docs
https://bugs.webkit.org/show_bug.cgi?id=223077

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Darin Adler.

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:
11:04 AM Changeset in webkit [274289] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add message filtering check in sandbox
https://bugs.webkit.org/show_bug.cgi?id=223072
<rdar://75314821>

Reviewed by Brent Fulgham.

Message filters cannot be applied unconditionally; their presence needs to be checked first.

  • WebProcess/com.apple.WebProcess.sb.in:
10:52 AM Changeset in webkit [274288] by BJ Burg
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Occasional crash under RemoteConnectionToTargetCocoa::close()
https://bugs.webkit.org/show_bug.cgi?id=223038
<rdar://74920246>

Reviewed by Alex Christensen.

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::close):
Don't use a capture default, and copy the targetIdentifier.

10:17 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
10:10 AM Changeset in webkit [274287] by commit-queue@webkit.org
  • 8 edits in trunk

Apply transferred min/max sizes for intrinsic sizing
https://bugs.webkit.org/show_bug.cgi?id=222557

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-11
Reviewed by Alex Christensen.

Source/WebCore:

Apply transferred min/max sizes for intrinsic sizing [1].
Rename RenderObject::hasAspectRatio to hasIntrinsicAspectRatio
to not be confused with RenderStyle::hasAspectRatio.

Behavior matches Firefox and Chrome.

[1] https://drafts.csswg.org/css-sizing-4/#aspect-ratio-size-transfers

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::needsPreferredWidthsRecalculation const):
(WebCore::RenderBox::computePreferredLogicalWidths):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::childHasAspectRatio):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasIntrinsicAspectRatio const):
(WebCore::RenderObject::hasAspectRatio const): Deleted.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computeIntrinsicRatioInformation const):

LayoutTests:

Enable tests that pass now.

10:00 AM Changeset in webkit [274286] by Chris Dumez
  • 14 edits in trunk

Introduce WorkQueue::dispatchSync()
https://bugs.webkit.org/show_bug.cgi?id=223049

Reviewed by Alex Christensen.

Source/WebCore:

Adopt WorkQueue::dispatchSync().

  • platform/glib/FileMonitorGLib.cpp:

(WebCore::FileMonitor::FileMonitor):
(WebCore::FileMonitor::~FileMonitor):

  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):

Source/WebKit:

Adopt WorkQueue::dispatchSync().

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::waitUntilTasksFinished):
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::~IconDatabase):

Source/WTF:

Introduce WorkQueue::dispatchSync(), which relies on GCD's dispatch_sync() internally on Cocoa
ports. For other ports, it relies on a BinarySemaphore for synchronization.

  • wtf/WorkQueue.cpp:

(WTF::WorkQueue::dispatchSync):

  • wtf/WorkQueue.h:
  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatchSync):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::run):

9:58 AM Changeset in webkit [274285] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit

"Revert r274266. rdar://problem/75290553"

This reverts commit b476dd75db068cab654d25c9eb895bbd5cc60526.

9:57 AM Changeset in webkit [274284] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=222976

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

Various RenderFlexibleBox cleanups.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):
(WebCore::RenderFlexibleBox::alignChildren):

9:37 AM Changeset in webkit [274283] by commit-queue@webkit.org
  • 4 edits in trunk

REGRESSION(r272293) WebArchives originally loaded over HTTP fail to load subresources that would be upgraded to HTTPS
https://bugs.webkit.org/show_bug.cgi?id=223044
<rdar://75228599>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-11
Reviewed by Chris Dumez.

Source/WebCore:

Existing WebArchive content has keys that are URLs that have the "http" scheme.
To continue to successfully load these WebArchives, if we can't find a resource and we tried an HTTPS URL,
also try the HTTP URL because it may have been upgraded from HTTP to HTTPS in the loader.
We aren't going to the network anyways, so there is no advantage in pretending to use HTTPS.

  • loader/archive/ArchiveResourceCollection.cpp:

(WebCore::ArchiveResourceCollection::archiveResourceForURL):

Tools:

  • TestWebKitAPI/Tests/mac/LoadWebArchive.mm:

(TestWebKitAPI::TEST):

9:31 AM Changeset in webkit [274282] by sihui_liu@apple.com
  • 4 edits in trunk

Text manipulation: ignore leading and trailing spaces when comparing content for all tokens
https://bugs.webkit.org/show_bug.cgi?id=223057
<rdar://73706436>

Reviewed by Ryosuke Niwa.

Source/WebCore:

In r265361, we started to ignore leading and trailing spaces for first and last tokens in a paragraph. That's
not enough because one paragraph can also contain multiple nodes. Space between two nodes may be collapsed when
two nodes become separated by a new line. In the added test: the space after 'and' is collapsed when div's width
is changed, because TextManipulationController ignores collapsed space, it would compare ' and' with ' and ',
and returns ContentChanged error.

API test: TextManipulation.CompleteTextManipulationParagraphContainsCollapsedSpaces

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

9:12 AM Changeset in webkit [274281] by Peng Liu
  • 7 edits in trunk/LayoutTests

[GPUP] Some modern-media-controls tests are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221685

Reviewed by Eric Carlson.

Fix two flaky tests related to video fullscreen by:
1) Enable "MockVideoPresentationMode".
2) Wait for a video presentation mode change to complete before moving to the next step in the test.
3) Request the video to exit fullscreen before finish the test (to avoid interference with other tests).

  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-video-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-video.html:
  • media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-fade-controls-when-entering-fullscreen.html:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
9:03 AM Changeset in webkit [274280] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.1-branch/Source/ThirdParty/libwebrtc

Cherry-pick r274237. rdar://problem/75316929

CRASH in MergeUVRow_AVX2
https://bugs.webkit.org/show_bug.cgi?id=222996
<rdar://75183835>

Reviewed by Geoff Garen.

Crash logging shows occasional crashes in MergeUVRow_AVX2. These crashes all occur when
calling -[AVAssetImageGenerator copyCGImageAtTime:actualTime:error:]. This path is only used
when there was no prior image generated, and a new image is not available from
AVPlayerItemVideoOutput, which is a scenario which only occurs when doing a software-paint
immedately after a <video> element begins loading. While we should probably stop using
AVAssetImageGenerator, that would be a much riskier change, and wouldn't address the
underlying cause of the crash. Instead, bailing out early when in this state would cause
decoding to fail, but since this scenario only appears to occur for the
AVAssetImageGenerator path, painting would quickly recover as soon as
AVPlayerItemVideoOutput begins emitting frames.

The explanation for these crashes seems to be a mismatch between the size of the libvpx
output frame and the size of the CVPixelBuffer where the converted frame data is being
stored. Add a pre-flight check that will bail out early in this scenario.

  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm: (webrtc::CopyVideoFrameToPixelBuffer):

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

8:25 AM Changeset in webkit [274279] by youenn@apple.com
  • 8 edits in trunk/Source/WebKit

Add camera-related sandbox extensions to GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=223059

Reviewed by Eric Carlson.

Align GPU process sandbox with WebProcess one, including additional camera related sandboxes.
Allow reading preferences for "com.apple.cmio"like done for coremedia.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::shouldCreateAppleCameraServiceSandboxExtension):
(WebKit::GPUProcessProxy::GPUProcessProxy):

  • UIProcess/UserMediaProcessManager.cpp:
  • WebProcess/com.apple.WebProcess.sb.in:
7:32 AM Changeset in webkit [274278] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Cleanup references to float and out-of-flow renderers before destroying them.
https://bugs.webkit.org/show_bug.cgi?id=223041
<rdar://72990740>

Reviewed by Antti Koivisto.

Source/WebCore:

This patch takes care of removing float/positioned references when the renderer gets destroyed during the cleanup phase.
(e.g. we initiate renderer (A) removal and it triggers collapsing other, anonymous renderers as well)

Test: fast/block/crash-when-anonymous-float-box-is-removed.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):

LayoutTests:

  • fast/block/crash-when-anonymous-float-box-is-removed-expected.txt: Added.
  • fast/block/crash-when-anonymous-float-box-is-removed.html: Added.
6:31 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
6:31 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
5:48 AM Changeset in webkit [274277] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223066

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

  • elements/sdk/libsoup3.bst: Bump to version 2.99.2.
4:41 AM Changeset in webkit [274276] by imanol
  • 2 edits in trunk/Tools

Fix contributors file canonical format issue.

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json: Fix canonical format issue.
4:30 AM Changeset in webkit [274275] by Carlos Garcia Campos
  • 8 edits in trunk

Unreviewed. [GTK][WPE] Bump libsoup3 version to 2.99.3

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Bring back support for logging body data.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupLogger):

Source/WTF:

  • wtf/Platform.h:
  • wtf/URL.h:
3:48 AM Changeset in webkit [274274] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk

Unreviewed, reverting r274263.
https://bugs.webkit.org/show_bug.cgi?id=223064

Added few broken tests

Reverted changeset:

"AI validator patchpoint should read heap top"
https://bugs.webkit.org/show_bug.cgi?id=223052
https://trac.webkit.org/changeset/274263

2:57 AM Changeset in webkit [274273] by Carlos Garcia Campos
  • 14 edits
    1 add in trunk

[WPE][GTK] Add support for ICC color management
https://bugs.webkit.org/show_bug.cgi?id=177185

Reviewed by Adrian Perez de Castro.

.:

Add optional lcms2 dependency.

  • Source/cmake/FindLCMS2.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Add support for ICC color profiles to JPEG and PNG decoders using lcms2 if available.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::~PlatformDisplay):
(WebCore::PlatformDisplay::colorProfile const):

  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::colorProfile const):

  • platform/graphics/x11/PlatformDisplayX11.h:
  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::isICCMarker):
(WebCore::readICCProfile):
(WebCore::JPEGImageReader::JPEGImageReader):
(WebCore::JPEGImageReader::decode):
(WebCore::JPEGImageDecoder::~JPEGImageDecoder):
(WebCore::JPEGImageDecoder::clear):
(WebCore::JPEGImageDecoder::setFailed):
(WebCore::JPEGImageDecoder::outputScanlines):
(WebCore::JPEGImageDecoder::decode):
(WebCore::JPEGImageDecoder::setICCProfile):

  • platform/image-decoders/jpeg/JPEGImageDecoder.h:
  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageDecoder::~PNGImageDecoder):
(WebCore::PNGImageDecoder::clear):
(WebCore::PNGImageDecoder::setFailed):
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::rowAvailable):
(WebCore::PNGImageDecoder::decode):
(WebCore::PNGImageDecoder::frameComplete):

  • platform/image-decoders/png/PNGImageDecoder.h:
2:07 AM Changeset in webkit [274272] by imanol
  • 2 edits in trunk/Tools

Add myself as committer to the contributors file.

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json: Added myself as a committer.
1:10 AM Changeset in webkit [274271] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[ macOS debug arm64 ]fast/dom/Range/compareBoundaryPoints-compareHow-exception.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=223050
<rdar://problem/75284949>

Reviewed by Ryosuke Niwa.

Casting a negative double to an unsigned integer type is undefined behavior.
We need to make sure the double value is positive before casting.

No new tests, covered by existing test.

  • bindings/js/JSDOMConvertNumbers.cpp:

(WebCore::toSmallerUInt):

1:09 AM Changeset in webkit [274270] by commit-queue@webkit.org
  • 9 edits in trunk

REGRESSION(r272469): [WPE][GTK] Epiphany UI process crashes when downloading PDFs, WebKitSecurityOrigin should use SecurityOriginData
https://bugs.webkit.org/show_bug.cgi?id=222943

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-11
Reviewed by Alex Christensen.

Source/WebKit:

Since r272469, WebCore::SecurityOrigin no longer accepts custom protocols except those
registered with LegacySchemeRegistry. WebPage registers all custom protocols, but
WebPageProxy does not, so WebCore::SecurityOrigin now only supports custom protocols in the
web process, not the UI process. This causes Epiphany to crash when the protocol of its
WebKitSecurityOrigin is unexpectedly NULL.

Alex wants to reduce usage of WebCore::SecurityOrigin outside the web process, so instead of
registering custom protocols with LegacySchemeRegistry in the UI process -- making it harder
to eventually get rid of LegacySchemeRegistry -- we will transition WebKitSecurityOrigin
from WebCore::SecurityOrigin to WebCore::SecurityOriginData, which is a simple data store
for <protocol, host, port>. This is mostly sufficient to implement WebKitSecurityOrigin,
except for webkit_security_origin_is_opaque(). I considered multiple ways to handle this,
but ultimately decided to just deprecate it. Epiphany is the only client using this function
in order to implement a WebKitSecurityOrigin equality operation, and it does so using
origins that should never be opaque, so there are no compatibility concerns here.

  • UIProcess/API/glib/WebKitAuthenticationRequest.cpp:

(webkit_authentication_request_get_security_origin):

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(_WebKitSecurityOrigin::_WebKitSecurityOrigin):
(webkitSecurityOriginCreate):
(webkitSecurityOriginGetSecurityOriginData):
(webkit_security_origin_new):
(webkit_security_origin_new_for_uri):
(webkit_security_origin_get_protocol):
(webkit_security_origin_get_host):
(webkit_security_origin_get_port):
(webkit_security_origin_is_opaque):
(webkit_security_origin_to_string):
(webkitSecurityOriginGetSecurityOrigin): Deleted.

  • UIProcess/API/glib/WebKitSecurityOriginPrivate.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(addOriginToMap):

  • UIProcess/API/gtk/WebKitSecurityOrigin.h:
  • UIProcess/API/wpe/WebKitSecurityOrigin.h:

Tools:

Add a test to ensure security origins can be successfully created for custom protocols.
Also, update the tests to accomodate the deprecation of webkit_security_origin_is_opaque().
Notably, origins for data:// URIs are no longer special.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:

(testSecurityOriginBasicConstructor):
(testSecurityOriginURIConstructor):
(testSecurityOriginDefaultPort):
(testSecurityOriginFileURI):
(testSecurityOriginDataURI):
(testCustomProtocolOrigin):
(beforeAll):
(testOpaqueSecurityOrigin): Deleted.

12:41 AM Changeset in webkit [274269] by sihui_liu@apple.com
  • 8 edits
    2 adds in trunk

Indexed DB transactions outdated immediately after it just created
https://bugs.webkit.org/show_bug.cgi?id=216769
<rdar://problem/69321075>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: storage/indexeddb/transaction-state-active-after-creation.html

Set transaction inactive in microtask checkpoint according to spec:
https://html.spec.whatwg.org/#perform-a-microtask-checkpoint

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):

  • dom/EventLoop.cpp:

(WebCore::EventLoopTaskGroup::runAtEndOfMicrotaskCheckpoint):

  • dom/EventLoop.h:
  • dom/Microtasks.cpp:

(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
(WebCore::MicrotaskQueue::addCheckpointTask):

  • dom/Microtasks.h:
  • dom/TaskSource.h:

LayoutTests:

  • storage/indexeddb/transaction-state-active-after-creation-expected.txt: Added.
  • storage/indexeddb/transaction-state-active-after-creation.html: Added.

Mar 10, 2021:

11:28 PM Changeset in webkit [274268] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add checkbox to toggle all grid overlays
https://bugs.webkit.org/show_bug.cgi?id=221924
<rdar://problem/74365101>

Reviewed by BJ Burg.

  • UserInterface/Controllers/OverlayManager.js:

Drive-by: remove unused getter.

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .toggle-all):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection):
(WI.CSSGridSection.prototype.initialLayout):
(WI.CSSGridSection.prototype._handleToggleAllCheckboxChanged):

(WI.CSSGridSection.prototype.layout):
Drive-by: replace Array.prototype.includes, which runs at O(n) time, with isGridOverlayVisible,
which checks a Map instead.

(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection.prototype._updateToggleAllCheckbox):
Optimization: minimize number of Map lookups when when at least one overlay is visible and at least one is hidden.

9:59 PM Changeset in webkit [274267] by commit-queue@webkit.org
  • 5 edits in trunk

Fix intrinsic-size-005.html
https://bugs.webkit.org/show_bug.cgi?id=222970

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-10
Reviewed by Simon Fraser.

Source/WebCore:

In orthogonal flow case with aspect-ratio in effect, compute logical height
from logical width provided the logical width is a fixed length.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeChildPreferredLogicalWidths const):

  • rendering/RenderBox.h:

LayoutTests:

Enable test that passes now.

7:48 PM Changeset in webkit [274266] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit

Cherry-pick r274231. rdar://problem/75290553

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

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

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

7:24 PM Changeset in webkit [274265] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.9

6:40 PM Changeset in webkit [274264] by Peng Liu
  • 17 edits in trunk

[GPU Process] Assertion under RenderLayerCompositor::computeCompositingRequirements()
https://bugs.webkit.org/show_bug.cgi?id=220375

Reviewed by Eric Carlson.

Source/WebCore:

MediaPlayer calls HTMLMediaElement::mediaEngineWasUpdated() when a media element
loads a new URL and MediaPlayer::supportsAcceleratedRendering() may change from
false to true at the same time. However, HTMLMediaElement::mediaEngineWasUpdated()
does not notify the renderer about the change in the same run loop. Instead, it
schedules a task to do that. This leads to a race condition that
RenderLayerBacking::contentChanged(VideoChanged) gets called after the compositing
update where RenderLayerCompositor::canAccelerateVideoRendering() returns true.
This happens because renderer checks MediaPlayer::supportsAcceleratedRendering()
in RenderLayerCompositor::canAccelerateVideoRendering(), which changes its value
when MediaPlayer calls HTMLMediaElement::mediaEngineWasUpdated().

To fix this race condition, HTMLMediaElement needs to notify RenderVideo and
changes the supportsAcceleratedRendering property seen from renderer's perspective
in the same run loop. With this patch, HTMLMediaElement keeps a cached value of
MediaPlayer::supportsAcceleratedRendering(), and only updates its value when
HTMLMediaElement notifies the renderer. In addition, RenderVideo checks
HTMLMediaElement::supportsAcceleratedRendering() instead of
MediaPlayer::supportsAcceleratedRendering(), so that the renderer will
see the new value of supportsAcceleratedRendering and receive the content
change notification in the same run loop.

No new tests. Fix assertion failures in tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::clearMediaPlayer):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::supportsAcceleratedRendering const):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):
(WebCore::RenderVideo::supportsAcceleratedRendering const):

Source/WebKit:

When "GPU Process: Media" is enabled, MediaPlayer will call mediaPlayerEngineUpdated()
three times when a media element tries to load a URL. The three calls happen at the
following time points:
1) MediaPlayer creates a MediaPlayerPrivateRemote.
2) MediaPlayerPrivateRemote receives the response of a "createMediaPlayer" message
from the GPU process and gets the initial configurations of the "remote" media player.
3) The RemoteMediaPlayerProxy creates a MediaPlayerPrivate in the GPU process and
notify the MediaPlayerPrivateRemote in the WebContent process.

The second call of mediaPlayerEngineUpdated() is unnecessary because the player's
configuration at that time is similar to NullMediaPlayerPrivate. This patch removes it.

For the third call of mediaPlayerEngineUpdated(), we have to make sure that
the MediaPlayerPrivateRemote has received the configuration update from the GPU
process before the call. Therefore, this patch removes the message
MediaPlayerPrivateRemote::EngineUpdated, and let MediaPlayerPrivateRemote
decide when to call mediaPlayerEngineUpdated().

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:

The playerConfiguration is meaningless in this step so we can remove it.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineUpdated): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::setConfiguration): Deleted.
(WebKit::MediaPlayerPrivateRemote::engineUpdated): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

LayoutTests:

  • platform/wk2/TestExpectations:
6:39 PM Changeset in webkit [274263] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

AI validator patchpoint should read heap top
https://bugs.webkit.org/show_bug.cgi?id=223052
<rdar://75087095>

Reviewed by Saam Barati.

JSTests:

  • stress/private-methods-inheritance.js: Added.

(A):
(A.prototype.x):
(B.prototype.y):
(B):

Source/JavaScriptCore:

Currently, the patchpoint doesn't specify any reads, which allows it to be moved around by B3
and can cause false positives since it at least read the structure ID for comparing values.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

6:17 PM Changeset in webkit [274262] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.6

Tag Safari-611.1.21.0.6.

6:16 PM Changeset in webkit [274261] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.2.2

Tag Safari-611.1.21.2.2.

6:14 PM Changeset in webkit [274260] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.8

Tag Safari-611.1.21.1.8.

6:11 PM Changeset in webkit [274259] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Unreviewed Window build fix after r274252.

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:
6:01 PM Changeset in webkit [274258] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, another Windows build fix after r274252.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::dispatchQueue const):
(WebCore::AVFWrapper::AVFWrapper):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::createAssetForURL):
(WebCore::AVFWrapper::createPlayer):
(WebCore::AVFWrapper::createPlayerItem):
(WebCore::AVFWrapper::createAVCFVideoLayer):

5:51 PM Changeset in webkit [274257] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, another Windows build fix after r274252.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::createPlayerItem):

  • platform/network/cf/LoaderRunLoopCF.cpp:
5:44 PM Changeset in webkit [274256] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r274252.

  • platform/graphics/cg/ColorSpaceCG.cpp:
5:36 PM Changeset in webkit [274255] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r274252.

  • platform/graphics/cg/ColorSpaceCG.cpp:
5:26 PM Changeset in webkit [274254] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Cherry-pick r274231. rdar://problem/75291920

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

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

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

5:25 PM Changeset in webkit [274253] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.2

5:08 PM Changeset in webkit [274252] by Chris Dumez
  • 95 edits in trunk

Use RetainPtr<> / OSObjectPtr<> more in WebKit
https://bugs.webkit.org/show_bug.cgi?id=223030

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.h:
  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::RemoteInspectorXPCConnection):
(Inspector::RemoteInspectorXPCConnection::closeFromMessage):
(Inspector::RemoteInspectorXPCConnection::closeOnQueue):
(Inspector::RemoteInspectorXPCConnection::handleEvent):
(Inspector::RemoteInspectorXPCConnection::sendMessage):

  • jsc.cpp:

(jscmain):

Source/WebCore:

  • bridge/objc/objc_class.mm:

(JSC::Bindings::classesByIsA):
(JSC::Bindings::_createClassesByIsAIfNecessary):
(JSC::Bindings::ObjcClass::classForIsA):

  • editing/SmartReplaceCF.cpp:

(WebCore::getSmartSet):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::createColor):
(WebCore::ResourceUsageOverlay::platformInitialize):
(WebCore::drawGraphLabel):
(WebCore::drawCpuHistory):
(WebCore::drawGCHistory):
(WebCore::ResourceUsageOverlay::platformDraw):

  • platform/cf/win/CertificateCFWin.cpp:

(WebCore::createCertContextDeallocator):
(WebCore::copyCertificateToData):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::dispatchQueue const):
(WebCore::createMetadataKeyNames):
(WebCore::metadataKeyNames):
(WebCore::AVFWrapper::AVFWrapper):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::createAssetForURL):
(WebCore::AVFWrapper::createPlayer):
(WebCore::AVFWrapper::createPlayerItem):
(WebCore::AVFWrapper::checkPlayability):
(WebCore::AVFWrapper::createAVCFVideoLayer):

  • platform/graphics/cg/ColorCG.cpp:

(WTF::RetainPtr<CGColorRef>>::createValueForKey):
(WebCore::createCGColor):
(WebCore::cachedCGColor):

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::namedColorSpace):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):

  • platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::createScratchContext):
(WebCore::scratchContext):
(WebCore::copyCGPathClosingSubpaths):
(WebCore::Path::contains const):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:

(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createPixelBuffer):

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::getCFStringAttributes const):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::CGContextWithHDC):

  • platform/ios/Device.cpp:

(WebCore::deviceName):

  • platform/ios/DragImageIOS.mm:

(WebCore::cascadeForSystemFont):

  • platform/ios/wak/WebCoreThread.mm:

(webThreadReleaseSource):
(webThreadReleaseObjArray):
(delegateSource):
(mainRunLoopAutoUnlockObserver):
(SendDelegateMessage):
(WebThreadAdoptAndRelease):
(HandleWebThreadReleaseSource):
(MainRunLoopAutoUnlock):
(_WebThreadAutoLock):
(_WebRunLoopEnableNestedFromMainThread):
(_WebRunLoopDisableNestedFromMainThread):
(RunWebThread):
(StartWebThread):

  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mac/PowerObserverMac.cpp:

(WebCore::PowerObserver::PowerObserver):
(WebCore::PowerObserver::~PowerObserver):

  • platform/mac/PowerObserverMac.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::addSampleBuffer):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::addSampleBuffer):

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::AVAudioSessionCaptureDeviceManager):
(WebCore::AVAudioSessionCaptureDeviceManager::~AVAudioSessionCaptureDeviceManager):
(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::disableAllDevicesQuery):

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/AuthenticationCF.cpp:

(WebCore::createCF):

  • platform/network/cf/AuthenticationCF.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::CertificateInfo::certificateChainFromSecTrust):

  • platform/network/cf/CredentialStorageCFNet.cpp:

(WebCore::copyCredentialFromProtectionSpace):
(WebCore::CredentialStorage::getFromPersistentStorage):

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:

(WebCore::createPrivateStorageSession):

  • platform/network/cf/ProtectionSpaceCFNet.cpp:

(WebCore::ProtectionSpace::receivesCredentialSecurely const):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::getRunLoop):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::siteForCookies):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::setStorageSession):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::createPrivateStorageSession):

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::createExtensionToMIMETypeMap):
(WebCore::adjustMIMETypeIfNecessary):

  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::createExtensionToMIMETypeMap):
(WebCore::adjustMIMETypeIfNecessary):

  • platform/text/mac/TextBoundaries.mm:

(WebCore::tokenizerForString):

  • platform/win/DragImageCGWin.cpp:

(WebCore::allocImage):

  • rendering/RenderThemeIOS.mm:

(WebCore::getSharedFunctionRef):

  • testing/cocoa/WebArchiveDumpSupport.mm:

(WebCoreTestSupport::createCFURLResponseFromResponseData):
(WebCoreTestSupport::convertWebResourceResponseToDictionary):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::newTestingSession):
(WebKit::NetworkProcess::ensureSession):

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

(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::platformTerminate):

  • Platform/IPC/Connection.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::platformInvalidate):
(IPC::Connection::cancelReceiveSource):
(IPC::Connection::open):
(IPC::Connection::initializeSendSource):
(IPC::Connection::receiveSourceEventHandler):

  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::itpQueue):
(WebKit::determineITPState):
(WebKit::doesAppHaveITPEnabled):

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

(WebKit::XPCServiceEventHandler):

  • Shared/ShareableResource.cpp:

(WebKit::createShareableResourceDeallocator):
(WebKit::ShareableResource::wrapInSharedBuffer):

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::encodeSessionHistoryEntryData):

  • WebProcess/WebPage/Cocoa/WebCookieCacheCocoa.mm:

(WebKit::WebCookieCache::inMemoryStorageSession):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

Source/WebKitLegacy:

223030_RetainPtr

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::switchToNewTestingSession):
(NetworkStorageSessionMap::ensureSession):

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewIOS.mm:

(createCGColorWithDeviceWhite):
(+[WebPDFView shadowColor]):
(+[WebPDFView backgroundColor]):

Source/WebKitLegacy/mac:

  • Misc/WebElementDictionary.mm:

(lookupTable):
(addLookupKey):
(+[WebElementDictionary initializeLookupTable]):
(-[WebElementDictionary _fillCache]):
(-[WebElementDictionary objectForKey:]):

  • WebView/WebView.mm:

(+[WebView _makeAllWebViewsPerformSelector:]):
(-[WebView _removeFromAllWebViewsSet]):
(-[WebView _addToAllWebViewsSet]):
(+[WebView closeAllWebViews]):
(+[WebView _maxCacheModelInAnyInstance]):

Source/WebKitLegacy/win:

  • WebApplicationCache.cpp:

(WebApplicationCache::originsWithCache):

  • WebDownloadCFNet.cpp:

(WebDownload::useCredential):
(WebDownload::didReceiveAuthenticationChallenge):

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:

(WKQCA::updateBounds):

  • WebLocalizableStrings.cpp:

(LocalizedString::LocalizedString):
(LocalizedString::operator CFStringRef const):
(LocalizedString::operator LPCTSTR const):
(copyLocalizedStringFromBundle):

  • WebPreferences.cpp:

(defaultSettings):
(WebPreferences::initializeDefaultSettings):
(WebPreferences::valueForKey):
(WebPreferences::copyWebKitPreferencesToCFPreferences):

Source/WTF:

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::setDispatchQueue):

  • wtf/MemoryPressureHandler.h:
  • wtf/WorkQueue.h:
  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::install):
(WTF::MemoryPressureHandler::uninstall):
(WTF::MemoryPressureHandler::holdOff):

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
(WTF::WorkQueue::platformInitialize):
(WTF::WorkQueue::platformInvalidate):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringWrapperCFAllocator::allocator):
(WTF::StringImpl::createCFString):

Tools:

  • DumpRenderTree/cg/PixelDumpSupportCG.cpp:

(createBitmapContext):

  • DumpRenderTree/cg/PixelDumpSupportCG.h:

(BitmapContext::createByAdoptingBitmapAndContext):
(BitmapContext::BitmapContext):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(WebThreadLockAfterDelegateCallbacksHaveCompleted):

  • DumpRenderTree/win/PixelDumpSupportWin.cpp:

(createBitmapContextFromWebView):

  • ImageDiff/ImageDiff.xcodeproj/project.pbxproj:
  • ImageDiff/cg/PlatformImageCG.cpp:

(ImageDiff::PlatformImage::pixels const):

  • WebKitTestRunner/cg/TestInvocationCG.cpp:

(WTR::createCGContextFromCGImage):
(WTR::createCGContextFromImage):
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

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

[git-webkit] Make identifier last string in 'find'
https://bugs.webkit.org/show_bug.cgi?id=223031
<rdar://problem/75272100>

Reviewed by Ryosuke Niwa.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:

(Info.main):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
4:11 PM Changeset in webkit [274250] by Russell Epstein
  • 1 delete in tags/Safari-612.1.5.4

Delete tag.

4:05 PM Changeset in webkit [274249] by Devin Rousso
  • 25 edits in trunk/Source

Add plumbing for defaultPlaybackRate to AVKit
https://bugs.webkit.org/show_bug.cgi?id=222991
<rdar://problem/75012417>

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModelClient::rateChanged):

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::setDefaultPlaybackRate): Added.
(WebCore::PlaybackSessionModelMediaElement::defaultPlaybackRate const): Added.
(WebCore::PlaybackSessionModelMediaElement::playbackRate const):

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::rateChanged):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::rateChanged):
(VideoFullscreenControllerContext::setDefaultPlaybackRate): Added.
(VideoFullscreenControllerContext::defaultPlaybackRate const): Added.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController init]):
(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController observeValueForKeyPath:ofObject:change:context:]):

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

(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):

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

(WebCore::VideoFullscreenInterfaceMac::rateChanged):

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

Source/WebCore/PAL:

  • pal/spi/cocoa/AVKitSPI.h:

Source/WebKit:

  • WebProcess/cocoa/PlaybackSessionManager.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::rateChanged):
(WebKit::PlaybackSessionManager::rateChanged):
(WebKit::PlaybackSessionManager::setDefaultPlaybackRate): Added.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionModelContext::setDefaultPlaybackRate): Added.
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::setDefaultPlaybackRate): Added.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(WKFullScreenViewControllerPlaybackSessionModelClient::rateChanged):

4:01 PM Changeset in webkit [274248] by Jonathan Bedard
  • 8 edits in trunk/Tools

[resultsdbpy] Make client aware of hashes and revisions
https://bugs.webkit.org/show_bug.cgi?id=223001
<rdar://problem/75237812>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/commit.js:

(Commit): Support both "id" and "identifier" in constructor.
(Commit.prototype.repr): Centralize string representation of commit.
(_CommitBank.prototype._loadSiblings):

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/investigate.js:

(commitsForUuid): Use repr().

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(xAxisFromScale): Use repr().
(TimelineFromEndpoint.prototype.render.onDotEnterFactory): Ditto.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/commits.html: Convert JSON to Commit object.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/investigate.html: Use repr().
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
4:00 PM Changeset in webkit [274247] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Adjust telemetry rule
https://bugs.webkit.org/show_bug.cgi?id=223045

Reviewed by Geoffrey Garen.

Adjust socket-option related telemetry rule on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:56 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
3:42 PM Changeset in webkit [274246] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.6

3:38 PM Changeset in webkit [274245] by Russell Epstein
  • 9 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Revert r271193. rdar://problem/75273221

3:33 PM Changeset in webkit [274244] by Chris Gambrell
  • 237 edits
    122 adds
    122 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/security convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222668
<rdar://problem/74993152>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/fetch/redirectmode-and-preload-expected.txt:
  • http/tests/fetch/redirectmode-and-preload.html:
  • http/tests/local/file-url-sent-as-referer.html:
  • http/tests/security/basic-auth-subresource-expected.txt:
  • http/tests/security/basic-auth-subresource.html:
  • http/tests/security/cached-cross-origin-preloaded-css-stylesheet-expected.txt:
  • http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html:
  • http/tests/security/cached-cross-origin-preloading-css-stylesheet-expected.txt:
  • http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:
  • http/tests/security/cached-cross-origin-shared-css-stylesheet.html:
  • http/tests/security/cannot-read-cssrules-redirect.html:
  • http/tests/security/cannot-read-cssrules.html:
  • http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html:
  • http/tests/security/canvas-remote-read-remote-image-allowed.html:
  • http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html:
  • http/tests/security/canvas-remote-read-remote-image-blocked-then-allowed.html:
  • http/tests/security/clean-origin-css-exposed-resource-timing.html:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect.html:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-enforced-policy-and-not-in-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-enforced-policy-and-not-in-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-redirect.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-with-enforced-and-report-policies.php: Removed.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-with-enforced-and-report-policies.py: Added.
  • http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked.html:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked.html:
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.py: Added.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.php: Removed.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.py: Added.
  • http/tests/security/contentSecurityPolicy/iframe-inside-csp.html:
  • http/tests/security/contentSecurityPolicy/image-document-default-src-none.html:
  • http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-and-enforce.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-and-enforce.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.php:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php:
  • http/tests/security/contentSecurityPolicy/report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-from-header.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/child-src-test.js:

(injectFrameRedirectingTo):

  • http/tests/security/contentSecurityPolicy/resources/determine-content-security-policy-header.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/generate-csp-report.php:
  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/redir.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/sandbox.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/sandbox.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/utils.py: Added.

(determine_content_security_policy_header):

  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control.html:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header.html:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header2.php: Removed.
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header2.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-inherited-by-subframe.php: Removed.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-inherited-by-subframe.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header.php: Removed.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control.html:
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header.html:
  • http/tests/security/contentSecurityPolicy/sandbox-invalid-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html:
  • http/tests/security/contentSecurityPolicy/sandbox-report-only.html:
  • http/tests/security/contentSecurityPolicy/script-src-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-redirect.html:
  • http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.php: Removed.
  • http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.py: Added.
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin.html:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-allowed.html:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-without-csp-importScripts-redirect-cross-origin-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-img-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-img-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-1.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-1.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2.py: Added.
  • http/tests/security/cookie-module-import-expected.txt:
  • http/tests/security/cookie-module-import-propagate-expected.txt:
  • http/tests/security/cookie-module-import-propagate.html:
  • http/tests/security/cookie-module-import.html:
  • http/tests/security/cookie-module-propagate-expected.txt:
  • http/tests/security/cookie-module-propagate.html:
  • http/tests/security/cookie-module.html:
  • http/tests/security/cookies/cookies-wrong-domain-rejected.php: Removed.
  • http/tests/security/cookies/cookies-wrong-domain-rejected.py: Added.
  • http/tests/security/cors-post-redirect-301.html:
  • http/tests/security/cors-post-redirect-302.html:
  • http/tests/security/cors-post-redirect-303.html:
  • http/tests/security/cors-post-redirect-307-pson.html:
  • http/tests/security/cors-post-redirect-307.html:
  • http/tests/security/cors-post-redirect-308.html:
  • http/tests/security/credentials-in-referer.html:
  • http/tests/security/credentials-main-resource.html:
  • http/tests/security/cross-origin-cached-images-canvas.html:
  • http/tests/security/cross-origin-cached-images-expected.txt:
  • http/tests/security/cross-origin-cached-images-parallel-expected.txt:
  • http/tests/security/cross-origin-cached-images-parallel.html:
  • http/tests/security/cross-origin-cached-images.html:
  • http/tests/security/cross-origin-cached-resource-expected.txt:
  • http/tests/security/cross-origin-cached-scripts-expected.txt:
  • http/tests/security/cross-origin-cached-scripts-parallel-expected.txt:
  • http/tests/security/cross-origin-cached-scripts-parallel.html:
  • http/tests/security/cross-origin-cached-scripts.html:
  • http/tests/security/cross-origin-clean-css-resource-timing.html:
  • http/tests/security/cross-origin-css-9.html:
  • http/tests/security/cross-origin-css-resource-timing.html:
  • http/tests/security/css-mask-image-credentials.html:
  • http/tests/security/css-mask-image.html:
  • http/tests/security/http-0.9/default-port-script-blocked.html:
  • http/tests/security/http-0.9/resources/close-connection.php: Removed.
  • http/tests/security/http-0.9/resources/close-connection.py: Added.
  • http/tests/security/import-module-crossorigin-loads-error.html:
  • http/tests/security/import-script-crossorigin-loads-error.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr-redirect.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-importScript-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-importScripts-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect.html:
  • http/tests/security/isolatedWorld/bypass-worker-csp-for-xhr-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-worker-csp-for-xhr.html:
  • http/tests/security/load-image-after-redirection-2-expected.txt:
  • http/tests/security/load-image-after-redirection-2.html:
  • http/tests/security/load-image-after-redirection-expected.txt:
  • http/tests/security/load-image-after-redirection.html:
  • http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt:
  • http/tests/security/mixedContent/insecure-basic-auth-image.https.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.https.txt:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.txt:
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt:
  • http/tests/security/mixedContent/resources/frame-with-insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-script-redirects-to-basic-auth-secure-script.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
  • http/tests/security/mixedContent/resources/frame-with-programmatically-added-insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/resources/subresource/protected-image.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-image.py: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-page.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-page.py: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-script.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-script.py: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.py: Added.
  • http/tests/security/mixedContent/resources/subresource2/protected-image.php: Removed.
  • http/tests/security/mixedContent/resources/subresource2/protected-image.py: Added.
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https-expected.txt:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https.html:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https-expected.txt:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/no-javascript-location-percent-escaped.html:
  • http/tests/security/no-javascript-location.html:
  • http/tests/security/no-javascript-refresh-expected.txt:
  • http/tests/security/no-javascript-refresh-percent-escaped.php: Removed.
  • http/tests/security/no-javascript-refresh-percent-escaped.py: Added.
  • http/tests/security/no-javascript-refresh-spaces-expected.txt:
  • http/tests/security/no-javascript-refresh-spaces.php: Removed.
  • http/tests/security/no-javascript-refresh-spaces.py: Added.
  • http/tests/security/no-javascript-refresh.php: Removed.
  • http/tests/security/no-javascript-refresh.py: Added.
  • http/tests/security/no-referrer.html:
  • http/tests/security/private-browsing-http-auth.html:
  • http/tests/security/referrer-policy-attribute-style-no-referrer.html:
  • http/tests/security/referrer-policy-header-and-meta-tag-emptyString.html:
  • http/tests/security/referrer-policy-header-and-meta-tag.html:
  • http/tests/security/referrer-policy-window-open.html:
  • http/tests/security/resources/abe-allow-credentials.php: Removed.
  • http/tests/security/resources/abe-allow-credentials.py: Added.
  • http/tests/security/resources/abe-allow-star.php: Removed.
  • http/tests/security/resources/abe-allow-star.py: Added.
  • http/tests/security/resources/allow-if-origin.php: Removed.
  • http/tests/security/resources/allow-if-origin.py: Added.
  • http/tests/security/resources/attachment.php: Removed.
  • http/tests/security/resources/auth-echo.php: Removed.
  • http/tests/security/resources/auth-echo.py: Added.
  • http/tests/security/resources/basic-auth-subresource.html:
  • http/tests/security/resources/canvas-cors-subtest.html:
  • http/tests/security/resources/captions-with-access-control-headers.php: Removed.
  • http/tests/security/resources/captions-with-access-control-headers.py: Added.
  • http/tests/security/resources/cookie-protected-script.php: Removed.
  • http/tests/security/resources/cookie-protected-script.py: Added.
  • http/tests/security/resources/cors-deny.php: Removed.
  • http/tests/security/resources/cors-deny.py: Added.
  • http/tests/security/resources/cors-post-redirect-target.php: Removed.
  • http/tests/security/resources/cors-post-redirect-target.py: Added.
  • http/tests/security/resources/credentials-in-referer-frame.php: Removed.
  • http/tests/security/resources/credentials-in-referer-frame.py: Added.
  • http/tests/security/resources/credentials-in-referer.php: Removed.
  • http/tests/security/resources/credentials-in-referer.py: Added.
  • http/tests/security/resources/credentials-main-resource.php: Removed.
  • http/tests/security/resources/credentials-main-resource.py: Added.
  • http/tests/security/resources/css-mask-image-credentials-2.html:
  • http/tests/security/resources/echo-referrer.php: Removed.
  • http/tests/security/resources/echo-referrer.py: Added.
  • http/tests/security/resources/empty-svg.php: Removed.
  • http/tests/security/resources/empty-svg.py: Added.
  • http/tests/security/resources/get-css-if-origin-header.php: Removed.
  • http/tests/security/resources/get-css-if-origin-header.py: Added.
  • http/tests/security/resources/green-if-no-referrer-css.php: Removed.
  • http/tests/security/resources/green-if-no-referrer-css.py: Added.
  • http/tests/security/resources/image-access-control.php: Removed.
  • http/tests/security/resources/image-access-control.py: Added.
  • http/tests/security/resources/image-credential-check.php: Removed.
  • http/tests/security/resources/image-credential-check.py: Added.
  • http/tests/security/resources/import-module-crossorigin-loads-error-src.js:
  • http/tests/security/resources/imported-loading-subresources.css:

(#mydiv):

  • http/tests/security/resources/loading-subresources.css:

(#mydiv):

  • http/tests/security/resources/loading-subresources.php: Removed.
  • http/tests/security/resources/loading-subresources.py: Added.
  • http/tests/security/resources/module-nest-import.php: Removed.
  • http/tests/security/resources/module-nest-import.py: Added.
  • http/tests/security/resources/nested-referrer-policy-postmessage.html:
  • http/tests/security/resources/no-javascript-location-percent-escaped.php: Removed.
  • http/tests/security/resources/no-javascript-location-percent-escaped.py: Added.
  • http/tests/security/resources/no-javascript-location.php: Removed.
  • http/tests/security/resources/no-javascript-location.py: Added.
  • http/tests/security/resources/no-referrer-frame.php: Removed.
  • http/tests/security/resources/no-referrer-frame.py: Added.
  • http/tests/security/resources/no-referrer.php: Removed.
  • http/tests/security/resources/no-referrer.py: Added.
  • http/tests/security/resources/pass-if-no-referrer.php: Removed.
  • http/tests/security/resources/pass-if-no-referrer.py: Added.
  • http/tests/security/resources/postReferrer.php: Removed.
  • http/tests/security/resources/postReferrer.py: Added.
  • http/tests/security/resources/redirect-allow-star.php: Removed.
  • http/tests/security/resources/redirect-allow-star.py: Added.
  • http/tests/security/resources/redirect.php: Removed.
  • http/tests/security/resources/redirect.py: Added.
  • http/tests/security/resources/referrer-policy-log.php: Removed.
  • http/tests/security/resources/referrer-policy-log.py: Added.
  • http/tests/security/resources/referrer-policy-postmessage.php: Removed.
  • http/tests/security/resources/referrer-policy-postmessage.py: Added.
  • http/tests/security/resources/referrer-policy-redirect-link-downgrade.html:
  • http/tests/security/resources/referrer-policy-redirect-link.html:
  • http/tests/security/resources/referrer-policy-redirect.html:
  • http/tests/security/resources/referrer-policy-start.html:
  • http/tests/security/resources/rel-noreferrer.html:
  • http/tests/security/resources/send-mime-types.php: Removed.
  • http/tests/security/resources/send-mime-types.py: Added.
  • http/tests/security/resources/serve-referrer-policy-and-meta-tag.php: Removed.
  • http/tests/security/resources/serve-referrer-policy-and-meta-tag.py: Added.
  • http/tests/security/resources/serve-referrer-policy-and-test.php:
  • http/tests/security/resources/set-cookie.php: Removed.
  • http/tests/security/resources/set-cookie.py: Added.
  • http/tests/security/resources/showRefererImage.php: Removed.
  • http/tests/security/resources/showRefererImage.py: Added.
  • http/tests/security/resources/subresource1/protected-image.php: Removed.
  • http/tests/security/resources/subresource1/protected-image.py: Added.
  • http/tests/security/resources/subresource2/protected-image.php: Removed.
  • http/tests/security/resources/subresource2/protected-image.py: Added.
  • http/tests/security/resources/xorigincss1-allow-star.php: Removed.
  • http/tests/security/resources/xorigincss1-allow-star.py: Added.
  • http/tests/security/shape-image-cors-redirect-error-message-logging-1.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-2.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-3-expected.txt:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-3.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-4.html:
  • http/tests/security/shape-image-cors-redirect.html:
  • http/tests/security/shape-image-cors.html:
  • http/tests/security/shape-outside-and-cached-resources-expected.html:
  • http/tests/security/shape-outside-and-cached-resources.html:
  • http/tests/security/srcdoc-inherits-referrer-for-forms.html:
  • http/tests/security/srcdoc-inherits-referrer.html:
  • http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html:
  • http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html:
  • http/tests/security/svg-image-leak.html:
  • http/tests/security/text-track-crossorigin.html:
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html:
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html:
  • http/tests/security/webgl-remote-read-remote-image-allowed-with-credentials.html:
  • http/tests/security/webgl-remote-read-remote-image-allowed.html:
  • http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin.html:
  • http/tests/security/xss-DENIED-getSVGDocument-iframe.html:
  • http/tests/security/xss-DENIED-getSVGDocument-object.html:
  • http/tests/security/xss-DENIED-mime-type-execute-as-html.html:
  • http/tests/security/xssAuditor/crash-while-loading-tag-with-pause.html:
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit.php: Removed.
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit.py: Added.
  • http/tests/security/xssAuditor/resources/echo-intertag.pl:
  • http/tests/security/xssAuditor/resources/tag-with-pause.php: Removed.
  • http/tests/security/xssAuditor/resources/tag-with-pause.py: Added.
  • http/tests/ssl/referer-301.html:
  • http/tests/ssl/referer-303.html:
  • http/tests/xmlhttprequest/cacheable-cross-origin-redirect-crash.html:
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/win/http/tests/security/basic-auth-subresource-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • platform/wk2/TestExpectations:
  • platform/wk2/http/tests/security/basic-auth-subresource-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
3:27 PM Changeset in webkit [274243] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Cherry-pick r274203. rdar://problem/75273198

Release assertion failures under Editor::scanSelectionForTelephoneNumbers
https://bugs.webkit.org/show_bug.cgi?id=223016
<rdar://problem/73159921>

Reviewed by Ryosuke Niwa.

No new tests; speculative fix for a non-reproducible crash, which theoretically
has been avoided in a second way on trunk.

  • editing/Editor.cpp: (WebCore::extendSelection): (WebCore::Editor::scanSelectionForTelephoneNumbers): In r272777, Ryosuke discovered a case where FrameSelection::isRange() can be true, but firstRange() is an invalid range; in testing, forcing this to be the case reproduces the crash as reported.

While that change may have fixed the root cause of this crash, we don't
know that we've found all of the ways that one can get a orphaned
selection *into* FrameSelection, and want a less risky workaround for
this crash, so we'll also fix it in scanSelectionForTelephoneNumbers,
by null-checking the result of FrameSelection::firstRange().

Also null-check the result of extendSelection(), since I cannot prove for sure
that a valid range cannot become invalid in this method.

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

3:25 PM Changeset in webkit [274242] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.8

2:07 PM Changeset in webkit [274241] by dino@apple.com
  • 4 edits in trunk/Source/WTF

Use std::forward for forwarding references instead of WTFMove
https://bugs.webkit.org/show_bug.cgi?id=223040

Reviewed by Darin Adler.

A newer version of clang produced a helpful warning that told
us we were using WTFMove in places where we should use std::forward.

  • wtf/Expected.h:

(std::experimental::fundamentals_v3::expected::operator=):

  • wtf/Function.h:

(WTF::Function<Out):

  • wtf/NeverDestroyed.h:

(WTF::makeNeverDestroyed):

2:03 PM Changeset in webkit [274240] by Chris Dumez
  • 4 edits in trunk/Tools

Improve AppleLanguagesTest.UpdateAppleLanguages API test
https://bugs.webkit.org/show_bug.cgi?id=223037

Reviewed by Per Arne Vollan.

Made the following improvements to the test:

  1. Use 'en-GB' initially instead of 'en-US'. Our bots use 'en-US' by default so this makes sure we are indeed able to change the system language.
  2. Make it so that the test no longer times out if the languageevent fires but navigator.language returns an unexpected language. This was done by using [TestWKWebView performAfterReceivingAnyMessage:] instead of [TestWKWebView performAfterMessage:action:].
  3. Add an internal timeout handling in the test instead of relying on the test suite's timeout. Without this, we would fail to reset the system's language at the end of the test in case of a timeout.
  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(TEST_F):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestMessageHandler setWildcardMessageHandler:]):
(-[TestMessageHandler userContentController:didReceiveScriptMessage:]):
(-[TestWKWebView performAfterReceivingAnyMessage:]):

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

executeModuleProgram needs to ensure module argument array is still in scope
https://bugs.webkit.org/show_bug.cgi?id=223039

Reviewed by Saam Barati.

This was causing testing builds to crash for wasm tests.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeModuleProgram):

1:58 PM Changeset in webkit [274238] by Russell Epstein
  • 4 edits in branches/safari-612.1.5-branch/Source

Cherry-pick r273453. rdar://problem/75280351

Unreviewed, fix build with the latest iOS SDK.

Source/WebCore:

  • platform/DragData.h: (WebCore::DragData::operator=): Deleted.

Source/WebKit:

  • Shared/FocusedElementInformation.h:

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

1:56 PM Changeset in webkit [274237] by jer.noble@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

CRASH in MergeUVRow_AVX2
https://bugs.webkit.org/show_bug.cgi?id=222996
<rdar://75183835>

Reviewed by Geoff Garen.

Crash logging shows occasional crashes in MergeUVRow_AVX2. These crashes all occur when
calling -[AVAssetImageGenerator copyCGImageAtTime:actualTime:error:]. This path is only used
when there was no prior image generated, and a new image is not available from
AVPlayerItemVideoOutput, which is a scenario which only occurs when doing a software-paint
immedately after a <video> element begins loading. While we should probably stop using
AVAssetImageGenerator, that would be a much riskier change, and wouldn't address the
underlying cause of the crash. Instead, bailing out early when in this state would cause
decoding to fail, but since this scenario only appears to occur for the
AVAssetImageGenerator path, painting would quickly recover as soon as
AVPlayerItemVideoOutput begins emitting frames.

The explanation for these crashes seems to be a mismatch between the size of the libvpx
output frame and the size of the CVPixelBuffer where the converted frame data is being
stored. Add a pre-flight check that will bail out early in this scenario.

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

(webrtc::CopyVideoFrameToPixelBuffer):

1:45 PM Changeset in webkit [274236] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274231. rdar://problem/75279800

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

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

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

1:41 PM Changeset in webkit [274235] by graouts@webkit.org
  • 10 edits
    2 deletes in trunk

Improve font-variation-settings interpolation
https://bugs.webkit.org/show_bug.cgi?id=223027

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 140 PASS results.

  • web-platform-tests/css/css-fonts/inheritance-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

The animation wrapper for font-variation-settings had no canInterpolate() override. We now
implement such a method with the same logic used for blendFunc() method for FontVariationSettings
which only blends when the values have the same number of entries, and the same tag for each
entry.

We also modify the blendFunc() method to remove the return of empty values since it should only
be called in a scenario where the method can blend the values (due to canInterpolate() being
implemented) or with progress equal to 0 or 1 if the animation is discrete. In the latter cases,
we simply return the "from" or "to" values as-is.

Finally, to pass the tests for the "initial" and "inherit" values, we implement the custom
style builder methods for font-variation-settings.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialFontVariationSettings):
(WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):

LayoutTests:

Remove an incorrect test that is also testing functionality well covered by the WPT test
css/css-fonts/animations/font-variation-settings-interpolation.html.

  • animations/font-variations/font-variation-settings-unlike-expected.txt: Deleted.
  • animations/font-variations/font-variation-settings-unlike.html: Deleted.
  • platform/win/TestExpectations:
1:30 PM Changeset in webkit [274234] by graouts@webkit.org
  • 6 edits in trunk

Improve background-size interpolation
https://bugs.webkit.org/show_bug.cgi?id=223025

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 32 PASS results. We now pass all the background-size interpolation tests except for
those involving the "contain" and "cover" keywords which we don't support.

  • web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt:

Source/WebCore:

Add the necessary canInterpolate() overrides to classes used to interpolate background-size.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::FillLayerAnimationPropertyWrapperBase::canInterpolate const):

LayoutTests:

Add console logging for transitions/transition-to-from-undefined.html which tests transitions
between properties that cannot be interpolated and thus don't yield a transition.

  • transitions/lengthsize-transition-to-from-auto-expected.txt:
1:20 PM Changeset in webkit [274233] by Adrian Perez de Castro
  • 3 edits in trunk/Tools

[WPE][GTK] Running Tools/gtk/install-dependencies installs too many packages on Debian/Ubuntu
https://bugs.webkit.org/show_bug.cgi?id=223036

Reviewed by Don Olmstead.

Avoid installing unneeded packages by passing --no-install-recommends to apt-get
invocations. While at it, also make sure to always pass -y to make the installation
non-interactive.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
1:16 PM Changeset in webkit [274232] by Aditya Keerthi
  • 10 edits
    2 adds in trunk

[iOS][FCR] Color inputs are painted outside their box
https://bugs.webkit.org/show_bug.cgi?id=222299
<rdar://problem/74621954>

Reviewed by Wenson Hsieh.

Source/WebCore:

Color inputs have a gradient decoration around their inner swatch. Since
this decoration is painted using a stroke with a non-zero thickness
around the input's box, a portion of the decoration overflows the box.

To fix, use an inset rect to draw the gradient decoration, ensuring the
stroke is drawn within the input's box.

This patch also updates the padding and stroke thickness to match the
latest specifications.

Test: fast/forms/ios/form-control-refresh/color/paint-within-box.html

  • css/html.css:

(input[type="color"]):

Update padding to match specification.

(input[type="color"]::-webkit-color-swatch-wrapper):

Update padding to match specification.

  • css/legacyFormControlsIOS.css:

(input[type="color"]::-webkit-color-swatch-wrapper):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintDecorations):

Use the device-pixel-snapped rect when painting the decoration for color
inputs, to ensure the swatch is centered within the input.

We should also consider moving other controls to using the
device-pixel-snapped rect when painting, as some controls still use
integral snapped rects. However, each control should be individually
audited to avoid breakage.

(WebCore::RenderTheme::paintColorWellDecorations):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::colorInputStyleSheet):

Update the default width/height of color inputs to match the latest
specification.

(WebCore::RenderThemeIOS::paintColorWellDecorations):

Inset the stroke rect to ensure the gradient is painted within the
input's box.

LayoutTests:

Added a reference test which verifies that color inputs are painted
within their box. This is done by drawing a square over the input
and comparing to a page which contains a square of the same size,
with the input hidden.

Rebaselined tests after change to padding.

  • fast/forms/ios/form-control-refresh/color/paint-within-box-expected.html: Added.
  • fast/forms/ios/form-control-refresh/color/paint-within-box.html: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt:
  • platform/ios/fast/forms/color/input-appearance-color-expected.txt:
1:07 PM Changeset in webkit [274231] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:43 PM Changeset in webkit [274230] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Syntax highlighting for JSX is incorrect
https://bugs.webkit.org/show_bug.cgi?id=217613
<rdar://problem/70210975>

Reviewed by BJ Burg.

Out of the box, React specifies the "js" extension for JSX files.
Use JSX mode for source map resources with the "js" extension. This
appears to match what the other browsers' developer tools do.

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource):

12:36 PM Changeset in webkit [274229] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Grid Inspector clean-up
https://bugs.webkit.org/show_bug.cgi?id=222913
<rdar://problem/75171301>

Reviewed by BJ Burg.

Remove obsolete methods to show/hide the grid overlay directly from a DOMNode.
Remove engineering-only context menu helpers used while implementing grid overlays.

  • UserInterface/Models/DOMNode.js:
  • UserInterface/Views/ContextMenuUtilities.js:
12:09 PM Changeset in webkit [274228] by Brent Fulgham
  • 12 edits in trunk

[Cocoa] Add additional bundle ID property to WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=222919
<rdar://problem/75013854>

Reviewed by Alex Christensen.

Source/WebKit:

Add an additional property to _WKWebsiteDataStoreConfiguration to help thread the correct bundle
ID of the driving application to lower levels of WebKit so that we can provide better messaging
when a remote service (e.g., Safari View Controller or ASWebAuthenticationSession) is used. Currently
we often lack context and have to report a generic "web content" message that doesn't help a user
understand which app is actually requesting the load.

We cannot use either of the existing bundle ID's for this purpose since we always indicate 'com.apple.Safari'
as the source application to ensure proper handling of web traffic in lower levels of the system Network stack,
and sourceApplicationSecondaryIdentifier is used for Apple Pay purposes and cannot be repurposed for this task.

This first patch adds the property. A follow-up patch will flesh out the implementation.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::attributedBundleIdentifier const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

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

(-[_WKWebsiteDataStoreConfiguration setAttributedBundleIdentifier:]):
(-[_WKWebsiteDataStoreConfiguration attributedBundleIdentifier]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::attributedBundleIdentifier const):
(WebKit::WebsiteDataStoreConfiguration::setAttributedBundleIdentifier):

Tools:

Update existing SettingNonPersistentDataStorePathsThrowsException test with new property.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

11:58 AM Changeset in webkit [274227] by Darin Adler
  • 77 edits in trunk/Source

[Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads
https://bugs.webkit.org/show_bug.cgi?id=223013

Reviewed by Geoffrey Garen.

Source/WebCore:

  • platform/mac/WebCoreObjCExtras.h: Added WebCoreObjCScheduleDeallocateOnMainRunLoop.

Use #pragma once.

  • platform/mac/WebCoreObjCExtras.mm:

(safeIsKindOfClass): Added. Allows us to use the functions below on classes that
play proxying tricks with the isKindOfClass: method.
(WebCoreObjCScheduleDeallocateOnMainThread): Use safeIsKindOfClass.
(WebCoreObjCScheduleDeallocateOnMainRunLoop): Added.

Source/WebKit:

Used ensureOnMainRunLoop in dealloc methods where possible to make them
thread-safe. Used WebCoreObjCScheduleDeallocateOnMainRunLoop instead in cases
that were too complex to be done with ensureOnMainRunLoop.

  • Shared/API/APIFrameHandle.cpp:

(API::FrameHandle::~FrameHandle): Deleted.

  • Shared/API/APIFrameHandle.h: Use pragma once. Marked the class final.

Removed explicit destructor because it is not helpful.

  • Shared/API/Cocoa/_WKFrameHandle.mm:

(-[_WKFrameHandle dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • Shared/API/Cocoa/_WKHitTestResult.mm:

(-[_WKHitTestResult dealloc]): Ditto.

  • Shared/Cocoa/WKNSArray.mm:

(-[WKNSArray dealloc]): Ditto.

  • Shared/Cocoa/WKNSData.mm:

(-[WKNSData dealloc]): Ditto.

  • Shared/Cocoa/WKNSDictionary.mm:

(-[WKNSDictionary dealloc]): Ditto.

  • Shared/Cocoa/WKObject.mm:

(-[WKObject dealloc]): Ditto.

  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(-[WKObservablePageState dealloc]): Use ensureOnMainRunLoop.

  • UIProcess/API/Cocoa/PageLoadStateObserver.h: Added clearObject for use in

the WKObservablePageState deallc method. Removed header guards since this is
an Objective-C header and #import takes care of it.

  • UIProcess/API/Cocoa/WKBackForwardList.mm:

(-[WKBackForwardList dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:

(-[WKBrowsingContextGroup dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKConnection.mm:

(-[WKConnection dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKContentRuleList.mm:

(-[WKContentRuleList dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(-[WKContentRuleListStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKContentWorld.mm:

(-[WKContentWorld dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKDownload.mm:

(-[WKDownload dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(-[WKHTTPCookieStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigation.mm:

(-[WKNavigation dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigationData.mm:

(-[WKNavigationData dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigationResponse.mm:

(-[WKNavigationResponse dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKSecurityOrigin.mm:

(-[WKSecurityOrigin dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(-[WKWebsiteDataRecord dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWindowFeatures.mm:

(-[WKWindowFeatures dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKApplicationManifest.mm:

(-[_WKApplicationManifest dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKContentRuleListAction.mm:

(-[_WKContentRuleListAction dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKCustomHeaderFields.mm:

(-[_WKCustomHeaderFields dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKExperimentalFeature.mm:

(-[_WKExperimentalFeature dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKGeolocationPosition.mm:

(-[_WKGeolocationPosition dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorConfiguration.mm:

(-[_WKInspectorConfiguration dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.mm:

(-[_WKInspectorDebuggableInfo dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:

(-[_WKInspectorExtension dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInternalDebugFeature.mm:

(-[_WKInternalDebugFeature dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:

(-[_WKResourceLoadInfo dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm:

(-[_WKResourceLoadStatisticsFirstParty dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm:

(-[_WKResourceLoadStatisticsThirdParty dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKUserInitiatedAction.mm:

(-[_WKUserInitiatedAction dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKVisitedLinkStore.mm:

(-[_WKVisitedLinkStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:

(-[_WKWebAuthenticationAssertionResponse dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(-[_WKWebAuthenticationPanel dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration dealloc]): Ditto.

  • UIProcess/API/mac/WKView.mm:

(-[WKView dealloc]): Ditto.

  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(-[WKSafeBrowsingWarning dealloc]): Use ensureOnMainRunLoop.

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:

(-[WKWebProcessPlugInHitTestResult dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm:

(-[WKWebProcessPlugInPageGroup dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:

(-[WKWebProcessPlugInRangeHandle dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:

(-[WKWebProcessPlugInScriptWorld dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:

(-[WKDOMNode dealloc]): Use ensureOnMainRunLoop.

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:

(-[WKWebProcessPlugInController dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController dealloc]): Ditto.

Source/WTF:

  • wtf/MainThread.cpp:

(WTF::ensureOnMainRunLoop): Added. For use in cases where we want to be more
efficient, and synchronous, when already on the main run loop, but we can do
the work asynchronously when called and not on the main run loop.

  • wtf/MainThread.h: Added ensureOnMainRunLoop.
11:27 AM Changeset in webkit [274226] by Alan Coon
  • 1 copy in tags/Safari-612.1.6.2

Tag Safari-612.1.6.2.

11:16 AM Changeset in webkit [274225] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/media_fragment_seek.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223014

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Marking test as Pass Fail, until it can be fixed.
11:11 AM Changeset in webkit [274224] by Alan Coon
  • 2 edits in branches/safari-612.1.6-branch/Source/WebKit

Cherry-pick r274129. rdar://problem/75163359

Regression(r273875): Potential over-release in WKRemoteObjectCoder's decodeObjCObject()
https://bugs.webkit.org/show_bug.cgi?id=222954
<rdar://75163359>

Reviewed by Darin Adler.

r273875 added an adoptNS() for the result of [allocation initWithCoder:decoder]. This would be
fine in general, except that we call awakeAfterUsingCoder on the result right after. As per the
awakeAfterUsingCoder documentation [1], it may return the receiver or a new object. When it
returns a new object, it takes care of releasing the receiver. This is an issue for us here since
we were holding the receiver in a smart pointer.

[1] https://developer.apple.com/documentation/objectivec/nsobject/1417074-awakeafterusingcoder

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm: (decodeObjCObject):

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

11:09 AM Changeset in webkit [274223] by Alan Coon
  • 8 edits in branches/safari-612.1.6-branch/Source

Versioning.

WebKit-7612.1.6.2

11:06 AM Changeset in webkit [274222] by Alan Coon
  • 1 copy in tags/Safari-612.1.5.4

Tag Safari-612.1.5.4.

11:05 AM Changeset in webkit [274221] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the internal build

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::convert):

10:59 AM Changeset in webkit [274220] by Sam Sneddon
  • 2 edits in trunk/Tools

Adding Python type annotations to test_expectations.py
https://bugs.webkit.org/show_bug.cgi?id=222770

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(ParseError.init):
(ParseError.str):
(ParseError.repr):
(TestExpectationWarning.init):
(TestExpectationParser):
(TestExpectationParser.init):
(TestExpectationParser.parse):
(TestExpectationParser.expectation_for_skipped_test):
(TestExpectationParser._parse_line):
(TestExpectationParser._parse_modifiers):
(TestExpectationParser._parse_expectations):
(TestExpectationParser._check_test_exists):
(TestExpectationParser._collect_matching_tests):
(TestExpectationParser._tokenize_line):
(TestExpectationLine):
(TestExpectationLine.init):
(TestExpectationLine.str):
(TestExpectationLine.is_invalid):
(TestExpectationLine.is_flaky):
(TestExpectationLine.expected_behavior):
(TestExpectationLine.create_passing_expectation):
(TestExpectationLine.to_string):
(TestExpectationLine._serialize_parsed_expectations):
(TestExpectationLine._serialize_parsed_modifiers):
(TestExpectationLine._format_line):
(TestExpectationsModel):
(TestExpectationsModel.init):
(TestExpectationsModel._dict_of_sets):
(TestExpectationsModel.get_test_set):
(TestExpectationsModel.get_test_set_for_keyword):
(TestExpectationsModel.get_tests_with_result_type):
(TestExpectationsModel.get_tests_with_timeline):
(TestExpectationsModel.get_modifiers):
(TestExpectationsModel.has_modifier):
(TestExpectationsModel.has_keyword):
(TestExpectationsModel.has_test):
(TestExpectationsModel.get_expectation_line):
(TestExpectationsModel.get_expectations):
(TestExpectationsModel.get_expectations_or_pass):
(TestExpectationsModel.expectations_to_string):
(TestExpectationsModel.get_expectations_string):
(TestExpectationsModel.expectation_to_string):
(TestExpectationsModel.add_expectation_line):
(TestExpectationsModel._add_test):
(TestExpectationsModel._clear_expectations_for_test):
(TestExpectationsModel._remove_from_sets):
(TestExpectationsModel._already_seen_better_match):
(TestExpectations):
(TestExpectations.expectation_from_string):
(TestExpectations.result_was_expected):
(TestExpectations.remove_pixel_failures):
(TestExpectations.remove_leak_failures):
(TestExpectations.has_pixel_failures):
(TestExpectations.suffixes_for_expectations):
(TestExpectations.init):
(TestExpectations.readable_filename_and_line_number):
(TestExpectations.parse_generic_expectations):
(TestExpectations.parse_default_port_expectations):
(TestExpectations.parse_override_expectations):
(TestExpectations.parse_all_expectations):
(TestExpectations.model):
(TestExpectations.get_rebaselining_failures):
(TestExpectations.filtered_expectations_for_test):
(TestExpectations.matches_an_expected_result):
(TestExpectations.is_rebaselining):
(TestExpectations._shorten_filename):
(TestExpectations._report_warnings):
(TestExpectations._process_tests_without_expectations):
(TestExpectations.has_warnings):
(TestExpectations.remove_configuration_from_test):
(TestExpectations.remove_rebaselined_tests):
(TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier):
(TestExpectations._add_expectations):
(TestExpectations.add_skipped_tests):
(TestExpectations.list_to_string):
(TestExpectations.serialize):
(TestExpectations.nones_out):

10:31 AM Changeset in webkit [274219] by Sam Sneddon
  • 2 edits in trunk/Tools

Mark myself as a committer.

Unreviewed.

Also claim I know about webkitpy.

  • Scripts/webkitpy/common/config/contributors.json:
10:15 AM Changeset in webkit [274218] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.6

Tag Safari-611.1.21.1.6.

9:31 AM Changeset in webkit [274217] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Multi-column state propagation should follow containing block rules
https://bugs.webkit.org/show_bug.cgi?id=222932
<rdar://problem/74459411>

Reviewed by Antti Koivisto.

Source/WebCore:

When a renderer(A) gains multi-column context

  1. a special RenderMultiColumnFlow renderer is constructed
  2. it is then inserted under the original renderer(A) and
  3. all (A)'s descendants get moved under this newly constructed RenderMultiColumnFlow renderer.

At step #3 we update each descendants flow state by calling initializeFragmentedFlowStateOnInsertion().
This patch check if the out-of-flow descendant is really part of the multi-column flow and updates the state accordingly.
e.g

<div style="column-count: 2"><div><div id=child style="position: absolute"></div></div></div>
"child" is _not_ part of the multi-column subtree. child's containing block is an ancestor of the multi-column renderer.

<div style="column-count: 2"><div style="position: relative"><div id=child style="position: absolute"></div></div></div>
"child" _is_ part of the multi-column subtree. child's containing block is the relatively positioned renderer which is part of the multi-column flow.

Test: fast/multicol/state-propagation-over-out-of-flow-boundary.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setFragmentedFlowStateIncludingDescendants):
(WebCore::RenderObject::initializeFragmentedFlowStateOnInsertion):
(WebCore::RenderObject::resetFragmentedFlowStateOnRemoval):

  • rendering/RenderObject.h:

LayoutTests:

  • fast/multicol/state-propagation-over-out-of-flow-boundary-expected.txt: Added.
  • fast/multicol/state-propagation-over-out-of-flow-boundary.html: Added.
9:26 AM Changeset in webkit [274216] by commit-queue@webkit.org
  • 14 edits in trunk

[GTK] Reenable -fvisibility=hidden
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-10
Reviewed by Don Olmstead.

.:

In non-DEVELOPER_MODE builds, we rely on a linker version script to hide symbols that we
don't want to export. Building with hidden visibility might seem redundant with this, but
actually building with hidden visibility has advantages anyway. See
https://gcc.gnu.org/wiki/Visibility.

Note that I'm not confident GTK port can safely use -fvisibility-inlines-hidden, since it's
split between two shared objects. Also, because GTK is split into two shared objects, GTK
needs to build bmalloc and WTF as CMake OBJECT libraries, which is effectively the same as
using -Wl,--whole-archive to prevent symbols from being prematurely stripped away.

P.S. Major credit to Don Olmstead, who did most of the work to make this possible, which has
already landed in previous patches.

  • Source/cmake/OptionsGTK.cmake:

Source/JavaScriptCore:

We need to export the destructor of IsoHeapCellType.

  • heap/IsoHeapCellType.cpp:
  • heap/IsoHeapCellType.h:

Source/WebCore:

We need to export the destructor of EventTarget and the delete operator of
EventTargetWithInlineData. They are used in WebKitTestRunner.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Source/WTF:

We need to export WTF::filenameForDisplay.

  • wtf/FileSystem.h:

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
8:18 AM Changeset in webkit [274215] by Wenson Hsieh
  • 6 edits in trunk/Source

Logic for updating the text selection when dragging selection handles should account for image overlays
https://bugs.webkit.org/show_bug.cgi?id=223010

Reviewed by Tim Horton.

Source/WebCore:

Rename shouldUpdateSelectionForMouseDrag to shouldExtendSelectionToTargetNode. See WebKit Changelog for more
details.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::shouldExtendSelectionToTargetNode):
(WebCore::HTMLElement::shouldUpdateSelectionForMouseDrag): Deleted.

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

(WebCore::EventHandler::updateSelectionForMouseDrag):

Source/WebKit:

Apply the same logic introduced in r272503 to iOS, when extending the selection by moving selection handles. In
the case where the hit-tested node is the image overlay container (as opposed to any text inside the container),
it's better avoid updating the selection, rather than extend the selection to the start of the image overlay.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeForPointInRootViewCoordinates):

7:49 AM Changeset in webkit [274214] by Jonathan Bedard
  • 6 edits in trunk/Tools

git-webkit should have an "info" command
https://bugs.webkit.org/show_bug.cgi?id=222846
<rdar://problem/75171053>

Reviewed by Ryosuke Niwa.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Info command.

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

(Info):
(Info.parser): Moved from Find.parser, exclude argument.
(Info.main): Moved from Find.main, add a default reference.
(Find):
(Find.parser): Invoke Info.parser.
(Find.main): Invoke Info.main with user's specified reference.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
6:57 AM Changeset in webkit [274213] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Do not send sandbox extensions to WebProcess if capture happens in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=222961

Reviewed by Eric Carlson.

In case capture does not happen in WebProcess, we do not need to send the tccd sandbox extension.
Ditto for camera/microphone sandbox extensions if capture happens in GPUProcess.
Manually tested.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::c):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

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

[Multi-column] Adjust the flow state of the descendants when going from not-inside-flow to inside-flow
https://bugs.webkit.org/show_bug.cgi?id=222987

Reviewed by Antti Koivisto.

Sometimes the flow state could change even when the renderer stays out-of-flow (e.g when going from fixed to absolute and
the (new)containing block is inside a multi-column flow).

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

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

Clean up the text boxes when the associated text renderer is detached from the tree
https://bugs.webkit.org/show_bug.cgi?id=223009
<rdar://74788950>

Reviewed by Antti Koivisto.

This is the case when the text renderer gets moved under a different block and the original block
becomes non-legacy based line layout.
The inline text boxes are normally cleaned up either when the associated renderer is destroyed
or during the subsequent layout when the legacy code invalidates the line.
However when we switch from legacy to modern line layout this invalidation never runs.
This patch ensures that the text boxes are destroyed soon after the renderer is detached.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::detachFromRenderElement):

6:29 AM Changeset in webkit [274210] by commit-queue@webkit.org
  • 6 edits in trunk

[WPE][GTK] Introduce NeedsUnbrandedUserAgent quirk and use it for accounts.google.com, docs.google.com, and drive.google.com
https://bugs.webkit.org/show_bug.cgi?id=222978

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-10
Reviewed by Carlos Garcia Campos.

Source/WebCore:

This is a follow-up to bug #222039. I simplified our Google user agent quirks too much in
that bug, breaking accounts.google.com, docs.google.com, and drive.google.com for clients
that set application name and version in the user agent. What we really need here is an
empty quirk in order to ensure our most boring standard user agent is used without any
application branding or customizations. But we no longer need to fake platform or browser,
as was required in the past.

Additionaly, clean up the code a bit. We shouldn't need to compute domain and baseDomain
many separate times, for instance. There's also no need to perform string operations to
add the WebKit version to the user agent, since the version has been frozen for several
years now and is likely to remain frozen indefinitely. Finally, remove some forgotten
leftovers of our Internet Explorer and Windows quirks that were previously used for Google
Docs.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::isGoogle): Deleted.
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):
(WebCore::versionForUAString): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasEmptyQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.

4:52 AM Changeset in webkit [274209] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] Update RunJavaScriptCoreTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=223011

Reviewed by Dewei Zhu.

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

(RunJavaScriptCoreTests.start): Used logobserver.
(RunJavaScriptCoreTests.countFailures):

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

(TestRunJavaScriptCoreTests.test_success): Added unit-test.
(TestRunJavaScriptCoreTests.test_failure): Ditto.

3:56 AM Changeset in webkit [274208] by commit-queue@webkit.org
  • 9 edits in trunk

Unreviewed, reverting r274166.
https://bugs.webkit.org/show_bug.cgi?id=223024

Broke GTK Debug builds

Reverted changeset:

"[GTK] Reenable -fvisibility=hidden"
https://bugs.webkit.org/show_bug.cgi?id=181916
https://trac.webkit.org/changeset/274166

3:54 AM Changeset in webkit [274207] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Make RTCDataChannel use a ScriptExecutionContext instead of a Document
https://bugs.webkit.org/show_bug.cgi?id=222963

Reviewed by Eric Carlson.

As part of trying to transfer data channels to workers, this is a refactoring that replaces use of Document by use of ScriptExecutionContext.

No change of behavior.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::createMessageQueue):
(WebCore::RTCDataChannel::RTCDataChannel):

  • Modules/mediastream/RTCDataChannel.h:
  • fileapi/NetworkSendQueue.cpp:

(WebCore::NetworkSendQueue::NetworkSendQueue):
(WebCore::NetworkSendQueue::enqueue):

  • fileapi/NetworkSendQueue.h:
3:52 AM Changeset in webkit [274206] by youenn@apple.com
  • 5 edits
    4 adds in trunk

Remove getUserMedia denied requests if user grants a new getUserMedia request
https://bugs.webkit.org/show_bug.cgi?id=222962
<rdar://74805451>

Reviewed by Eric Carlson.

Source/WebKit:

A user may deny an audio getUserMedia request.
On user gesture, user may be reprompted, in which case user may grant access.
Before the patch, after these two getUserMedia calls, if the web page was trying to call getUserMedia without user gesture, it would fail.
With this patch, we remove the first denied request based on the second granted request.
This allows getUserMedia to be granted, even without a user gesture.

Tests: fast/mediastream/granted-denied-request-management1.html

fast/mediastream/granted-denied-request-management2.html

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::isMatchingDeniedRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::wasRequestDenied):
(WebKit::UserMediaPermissionRequestManagerProxy::updateStoredRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::getRequestAction):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

LayoutTests:

  • fast/mediastream/getUserMedia-deny-persistency5.html:

Update according new heuristic.

  • fast/mediastream/granted-denied-request-management1-expected.txt: Added.
  • fast/mediastream/granted-denied-request-management1.html: Added.
  • fast/mediastream/granted-denied-request-management2-expected.txt: Added.
  • fast/mediastream/granted-denied-request-management2.html: Added.
3:24 AM Changeset in webkit [274205] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Unreviewed, reverting r274186.
https://bugs.webkit.org/show_bug.cgi?id=223023

triggers an infinite network process launch loop in GTK

Reverted changeset:

"REGRESSION (r272376): [iOS] ASSERTION FAILED:

sessionID.isEphemeral()
!path.isEmpty() in

WebKit::NetworkProcess::swServerForSession"
https://bugs.webkit.org/show_bug.cgi?id=222713
https://trac.webkit.org/changeset/274186

1:44 AM Changeset in webkit [274204] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.31.90

WPE WebKit 2.31.90

12:19 AM Changeset in webkit [274203] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Release assertion failures under Editor::scanSelectionForTelephoneNumbers
https://bugs.webkit.org/show_bug.cgi?id=223016
<rdar://problem/73159921>

Reviewed by Ryosuke Niwa.

No new tests; speculative fix for a non-reproducible crash, which theoretically
has been avoided in a second way on trunk.

  • editing/Editor.cpp:

(WebCore::extendSelection):
(WebCore::Editor::scanSelectionForTelephoneNumbers):
In r272777, Ryosuke discovered a case where FrameSelection::isRange()
can be true, but firstRange() is an invalid range; in testing, forcing
this to be the case reproduces the crash as reported.

While that change may have fixed the root cause of this crash, we don't
know that we've found all of the ways that one can get a orphaned
selection *into* FrameSelection, and want a less risky workaround for
this crash, so we'll also fix it in scanSelectionForTelephoneNumbers,
by null-checking the result of FrameSelection::firstRange().

Also null-check the result of extendSelection(), since I cannot prove for sure
that a valid range cannot become invalid in this method.

Mar 9, 2021:

11:43 PM Changeset in webkit [274202] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612.1.5-branch

Cherry-pick r273654. rdar://problem/75252578

Restoring App Highlight crashes if no range is found.
https://bugs.webkit.org/show_bug.cgi?id=222524

Reviewed by Tim Horton.

Source/WebCore:

Test: TestWebKitAPI.AppHighlights.AppHighlightRestoreFailure

  • Modules/highlight/AppHighlightStorage.cpp: (WebCore::AppHighlightStorage::restoreAppHighlight):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm: (TestWebKitAPI::TEST):

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

11:36 PM Changeset in webkit [274201] by don.olmstead@sony.com
  • 24 edits in trunk

GLib JSC API headers should only include other GLib JSC API headers
https://bugs.webkit.org/show_bug.cgi?id=222803

Reviewed by Michael Catanzaro.

.:

GTK and WPE both build the JavaScriptCore GLib API. However they diverged with their CMake
variable names for the directory containing jsc. Declare a single variable for that
directory, DERIVED_SOURCES_JAVASCRIPTCORE_GLIB_DIR, that is shared between GLib ports.

Remove the GLIB_API_DIR variant which will just be replaced with
${DERIVED_SOURCES_JAVASCRIPTCORE_GLIB_DIR}/jsc in the CMake code.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

A number of private GLib JSC headers are directly including private JavaScriptCore headers.
To get this to compile ${FORWARDING_HEADERS_DIR}/JavaScriptCore was added to the list of
includes in targets that needed the JSC headers. This is incorrect because they are being
distributed in different directories.

The private JSC headers being used were replaced with forward declarations. The source
files were then updated accordingly.

Also the include directories that contained the <jsc/Foo.h> headers were added to
JavaScriptCore_INTERFACE_INCLUDE_DIRECTORIES so they're properly propagated to dependants.

  • API/glib/JSCClassPrivate.h:
  • API/glib/JSCContext.cpp:
  • API/glib/JSCContextPrivate.h:
  • API/glib/JSCVirtualMachine.cpp:
  • API/glib/JSCVirtualMachinePrivate.h:
  • API/glib/JSCWrapperMap.cpp:
  • GLib.cmake:
  • PlatformGTK.cmake:

Source/WebKit:

Update the includes and include directories.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

Tools:

Update the includes and include directories.

  • MiniBrowser/wpe/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
  • TestWebKitAPI/glib/PlatformWPE.cmake:
11:03 PM Changeset in webkit [274200] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in Node::isTextNode() via ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=222620

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-09
Reviewed by Ryosuke Niwa.
Source/WebCore:

When a text node does not have a previous sibling there is a crash. The fix is to check if there is a previous sibling
before we try to de-reference it.

Test: editing/inserting/indent-split-text-not-having-previous-sibling-crash.html

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded):

LayoutTests:

Adding a regression test.

  • editing/inserting/indent-split-text-not-having-previous-sibling-crash-expected.txt: Added.
  • editing/inserting/indent-split-text-not-having-previous-sibling-crash.html: Added.
10:39 PM Changeset in webkit [274199] by rniwa@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r274054.

Broke http/tests/misc/empty-urls.html

Reverted changeset:

"Use counters for pending events"
https://bugs.webkit.org/show_bug.cgi?id=218556
https://commits.webkit.org/r274054

10:20 PM Changeset in webkit [274198] by graouts@webkit.org
  • 5 edits in trunk

Correctly blend the flex-basis CSS property
https://bugs.webkit.org/show_bug.cgi?id=222981

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 14 PASS results. We now pass all the flex-basis interpolation tests.

  • web-platform-tests/css/css-flexbox/animation/flex-basis-composition-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-basis-interpolation-expected.txt:

Source/WebCore:

To correctly support blending of flex-basis we must ensure that negative values aren't
allowed but also ensure that "flex" doesn't interpolate if flex-basis can't either.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

9:30 PM Changeset in webkit [274197] by commit-queue@webkit.org
  • 8 edits in trunk

HTTPS upgrade should allow same-site redirects from HTTPS to HTTP
https://bugs.webkit.org/show_bug.cgi?id=222994
<rdar://75159643>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-09
Reviewed by Geoff Garen.

Source/WebCore:

Several sites support HTTPS, but have certain pages or resources that for some reason are only served over HTTP.
If you try to load the resource over HTTPS, it will simply redirect you to HTTP. In order to increase compatibility
with the web, we need to not do infinite redirect loops in this case.

The next version of this patch will have a test, but feel free to review the content of this code change before then.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::makeSecureIfNecessary):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

  • contentextensions/ContentExtensionsBackend.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • page/UserContentProvider.cpp:

(WebCore::UserContentProvider::processContentRuleListsForLoad):

  • page/UserContentProvider.h:

(WebCore::UserContentProvider::processContentRuleListsForLoad):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

9:19 PM Changeset in webkit [274196] by Ryan Haddad
  • 4 edits
    1 add in trunk/LayoutTests

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

Unreviewed test gardening.

Rebaseline a few tests for iOS.

  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/dom/slot-recalc-expected.txt: Added.
8:51 PM Changeset in webkit [274195] by Chris Dumez
  • 2 edits in trunk/Tools

[ BigSur wk2 arm64 ] quite a few fast/forms (Layout-Tests) are text failing on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=222988
<rdar://problem/75230416>

Unreviewed, disable AppleLanguagesTest.UpdateAppleLanguages API test on Apple Silicon since
it is timing out there and not properly resetting the system language. This is causing
trouble on the bots.

  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:
8:44 PM Changeset in webkit [274194] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r274174): ASSERTION FAILED: m_shouldBeCalledOnMainThread == isMainThread() under WebKit::RemoteSampleBufferDisplayLayerManager::createLayer
https://bugs.webkit.org/show_bug.cgi?id=223015
<rdar://problem/75248289>

Unreviewed, r274174 mistakenly replaced a call to dispatchToThread() with a call to callOnMainRunLoop().

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):

7:38 PM Changeset in webkit [274193] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Use RELEASE_ASSERT() for Deque bounds checks
https://bugs.webkit.org/show_bug.cgi?id=223008

Reviewed by Alex Christensen.

Use RELEASE_ASSERT() for Deque bounds checks instead of ASSERT(), similarly to what we did for Vector.

  • wtf/Deque.h:

(WTF::inlineCapacity>::removeFirst):
(WTF::inlineCapacity>::removeLast):

7:12 PM Changeset in webkit [274192] by weinig@apple.com
  • 12 edits in trunk/Source

Preferences do not need to be passed to the WebProcess via WebPageCreationParameters since the store already is
https://bugs.webkit.org/show_bug.cgi?id=222945

Reviewed by Simon Fraser.

Source/WebCore:

  • page/EventHandler.cpp:

(WebCore::EventHandler::mouseDownMayStartSelect const):
Get textInteractionEnabled state from preferences, rather than copying its state to the page.

  • page/Page.cpp:

(WebCore::m_shouldRelaxThirdPartyCookieBlocking):

  • page/Page.h:

(WebCore::Page::textInteractionEnabled const): Deleted.
(WebCore::Page::setTextInteractionEnabled): Deleted.

  • page/PageConfiguration.h:

Remove textInteractionEnabled state from Page/PageConfiguration have it use Settings like other settings.

Source/WebKit:

needsInAppBrowserPrivacyQuirks and textInteractionEnabled were both being passed to the WebProcess twice,
once via the preferences store, and once via explicit serialization.

Use the preferences infrastructure to do this for us instead, and remove a bunch of unneeded code.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesDebug.yaml:

NeedsInAppBrowserPrivacyQuirks is only ever accessed via the WebKit preferences store,
so does not need to be exposed in WebKitLegacy or WebCore. Achieve this by removing the
WebKitLegacy and WebCore defaults.

6:53 PM Changeset in webkit [274191] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (r274109): Catalina Perf tests failing due to unexpected output (222993)
https://bugs.webkit.org/show_bug.cgi?id=222993
<rdar://75235585>

Reviewed by Alex Christensen.

NSURL generates a single line of console output when we use [NSURL init]. We can avoid hitting this
message by using the preferred default initializer.

Found by existing tests (e.g.: Animation/balls.html)

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingURLWrapper initWithCoder:]):
(-[WKSecureCodingURLWrapper initWithURL:]):

6:36 PM Changeset in webkit [274190] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk 2 ] media/media-source/media-source-canplaythrough-event.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223012

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure, until test can be fixed.
6:21 PM Changeset in webkit [274189] by Chris Dumez
  • 94 edits in trunk/Source/WebKit

Use UniqueRef<> instead of std::unique_ptr<> when passing IPC::Encoder to sendMessage()
https://bugs.webkit.org/show_bug.cgi?id=222992

Reviewed by Alex Christensen.

Use UniqueRef<> instead of std::unique_ptr<> when passing IPC::Encoder to sendMessage(), to
make it clear it cannot be null.

I had to update didReceiveSyncMessage() to return a boolean since we can no longer rely
on the function nulling out the encoder it is given (since I modified the type from
std::unique_ptr to WTF::UniqueRef).

  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncReply):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::dispatchSyncMessage):

  • Platform/IPC/Connection.h:

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

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::wrapForTesting):

  • Platform/IPC/Encoder.h:
  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

  • Platform/IPC/MessageSender.cpp:

(IPC::MessageSender::sendMessage):

  • Platform/IPC/MessageSender.h:
  • Platform/IPC/StreamServerConnection.h:

(IPC::StreamServerConnectionBase::sendSyncReply):

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):
(IPC::Connection::sendOutgoingMessage):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::sendOutgoingMessage):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::sendOutgoingMessage):

  • Scripts/webkit/messages.py:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • UIProcess/AuxiliaryProcessProxy.h:

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

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::sendMessage):

  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::sendMessage):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::sendMessage):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::sendMessage):

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

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

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):

4:57 PM Changeset in webkit [274188] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[BigSur arm64] 4 canvas-color-fonts tests consistently failing
https://bugs.webkit.org/show_bug.cgi?id=223005

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark tests as failing.
4:43 PM Changeset in webkit [274187] by achristensen@apple.com
  • 5 edits in trunk/Source

Reduce unnecessary string copies in ParsedContentRange
https://bugs.webkit.org/show_bug.cgi?id=221769

Reviewed by Geoff Garen.

Source/WebCore:

  • platform/network/ParsedContentRange.cpp:

(WebCore::parseContentRange):
(WebCore::ParsedContentRange::ParsedContentRange):

  • platform/network/ParsedRequestRange.cpp:

(WebCore::ParsedRequestRange::parse):

  • platform/network/ParsedRequestRange.h:

(WebCore::ParsedRequestRange::parse):

Source/WTF:

  • wtf/text/StringView.h:

(WTF::StringView::toInt64Strict const):

  • wtf/text/WTFString.h:
4:40 PM Changeset in webkit [274186] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit
REGRESSION (r272376): [iOS] ASSERTION FAILED: sessionID.isEphemeral()
!path.isEmpty() in WebKit::NetworkProcess::swServerForSession

https://bugs.webkit.org/show_bug.cgi?id=222713

Reviewed by Geoff Garen.

Because NetworkProcess::CreateNetworkConnectionToWebProcess is sent with SendOption::DispatchMessageEvenWhenWaitingForSyncReply, it is possible
for two messages of type NetworkProcess::AddWebsiteDataStore and two messages of type NetworkProcess::CreateNetworkConnectionToWebProcess to be in the queue,
but the second NetworkProcess::CreateNetworkConnectionToWebProcess jumps to the front of the line while the UI process is waiting for the reply to the first.
Then, when calling NetworkProcess::swServerForSession we expect the session's parameters to have been initialized in the network process already, but we cut
ahead of the parameter initialization message. This is a realistically rare condition that can only be hit when using SPI, but it is hit in the
ResourceLoadStatistics.StoreSuspension API test. To fix this, we send the WebsiteDataStoreParameters from each WebsiteDataStore in the NetworkProcessCreationParameters.
To avoid doing extra work, we introduce an early return in NetworkProcessProxy::addSession if we have already added parameters from this session to the network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addSessionStorageQuotaManager):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
(WebKit::NetworkProcessProxy::addSession):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:59 PM Changeset in webkit [274185] by Alan Coon
  • 1 delete in tags/Safari-611.1.21.1.6

Delete tag.

3:51 PM Changeset in webkit [274184] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, reverting r274171.
https://bugs.webkit.org/show_bug.cgi?id=223004

Broke canvas layout tests on Apple Silicon

Reverted changeset:

"[GPUP] Enable 2D Canvas in layout tests by default"
https://bugs.webkit.org/show_bug.cgi?id=222835
https://trac.webkit.org/changeset/274171

3:50 PM Changeset in webkit [274183] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Unreviewed.

Update the plan.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
3:42 PM Changeset in webkit [274182] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Big Sur arm64] WebGL texture-copying-feedback-loops tests crashing in com.apple.AppleMetalOpenGLRenderer GLDContextRec::finishResource
https://bugs.webkit.org/show_bug.cgi?id=223002

Unreviewed test gardening.

  • platform/mac/TestExpectations: Skip tests for Big Sur arm64.
3:30 PM Changeset in webkit [274181] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

JSC Crash in makeString() while creating Error object.
https://bugs.webkit.org/show_bug.cgi?id=222452

Reviewed by Mark Lam.

JSTests:

  • stress/large-string-should-not-crash-error-creation.js: Added.

Source/JavaScriptCore:

This patch clamps the user provided part of error messages to
2-KB of characters. Technically, it could actually be 4-KB of
data for 16-bit strings. This is a somewhat randomly picked length
but seems like it should be sufficient for any normal use case I
can think of.

  • runtime/ExceptionHelpers.cpp:

(JSC::clampErrorMessage):
(JSC::defaultApproximateSourceError):
(JSC::defaultSourceAppender):

3:22 PM Changeset in webkit [274180] by Ben Nham
  • 2 edits in trunk/Source/WebCore

REGRESSION: [BigSur] ASSERT NOT REACHED in WebCore::ResourceLoadPriority WebCore::toResourceLoadPriority
https://bugs.webkit.org/show_bug.cgi?id=222998

Unreviewed, fix the debug assert caused by r274161.

CFURLRequestGetRequestPriority can return -1 for requests with no priority set (e.g. some
requests from the media stack). We need to handle this case when transforming a
CFURLRequestPriority to a ResourceLoadPriority.

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):

3:08 PM Changeset in webkit [274179] by mmaxfield@apple.com
  • 2 edits in trunk/PerformanceTests

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Reviewed by Jon Lee.

Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.

This test also changes the speed of the middle phase. Previously, each interval during this phase had
a complexity that was 3.16x of the previous complexity. This patch changes that to 1.78x of the previous
complexity for complexities above 50, and 1.33x for complexities above 10,000.

  • MotionMark/tests/resources/main.js:

(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(start):
(didFinishInterval):

3:07 PM Changeset in webkit [274178] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 120

Added a tag for Safari Technology Preview release 120.

2:54 PM Changeset in webkit [274177] by Russell Epstein
  • 1 delete in releases/Apple/Safari Technology Preview/Safari Technology Preview 120

Delete release.

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

Crash under WebViewImpl::flagsChanged()
https://bugs.webkit.org/show_bug.cgi?id=222989

Reviewed by Tim Horton.

Capture a WeakPtr for |this| in the lambda passed to interpretKeyEvent() and make sure |this|
is still alive before getting m_page. This is the same pattern that is used for other
interpretKeyEvent() calls in this file (but this one was missed).

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::flagsChanged):

2:17 PM Changeset in webkit [274175] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[GPU Process] MSE videos are unable to AirPlay
https://bugs.webkit.org/show_bug.cgi?id=222956
rdar://72798835

When a user picks an device from the AirPlay menu, WebKit fires a
'webkitcurrentplaybacktargetiswirelesschanged' event at the <video> element and
sets video.webkitCurrentPlaybackTargetIsWireless to true so script in the page
is aware that the user wants to use AirPlay. AirPlay requires a <video> element to
be backed by a url that an AppleTV can load and play, so this is also a signal for
a page's script to change the <video> source if it is currently backed by a source
that is incompatible with AirPlay, e.g. MSE, MediaStream, data:. If the current media engine
does not support AirPlay (m_player->canPlayToWirelessPlaybackTarget() returns false)
by the next runloop, HTMLMediaElement fires webkitcurrentplaybacktargetiswirelesschanged
again and sets video.webkitCurrentPlaybackTargetIsWireless to false to signal
that AirPlay is not active.

When media is played in the GPU Process, one turn of the runloop isn't long enough
for the new media engine to be set up, configured, and have the new state pushed
back to the web process, so HTMLMediaElement will now wait for up to 500ms for
m_player->canPlayToWirelessPlaybackTarget() to return true.

Reviewed by Jer Noble.

Tested manually, this requires and AppleTV to test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::checkPlaybackTargetCompatablity):
(WebCore::HTMLMediaElement::setIsPlayingToWirelessTarget):

  • html/HTMLMediaElement.h:
2:07 PM Changeset in webkit [274174] by Chris Dumez
  • 50 edits in trunk

Stop using callOnMainThread() / isMainThread() in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=222986

Reviewed by Alex Christensen.

Source/WebKit:

Use callOnMainRunLoop() / callOnMainRunLoopAndWait() / isMainRunLoop() in WebKit2
instead of callOnMainThread() / callOnMainThreadAndWait() / isMainThread().
Using the "MainThread" variants doesn't do the right thing in the UIProcess when
an iOS app is using both WK1 (with WebThread) and WK2.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::render):

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::~RemoteMediaResource):
(WebKit::RemoteMediaResource::responseReceived):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::close):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::cancel):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::getDirectorySize):
(WebKit::CacheStorage::Engine::diskUsage):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::resume):

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkManagerWrapper::onNetworksChanged):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::createResolver):
(WebKit::NetworkRTCProvider::stopResolver):
(WebKit::NetworkRTCProvider::closeListeningSockets):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::dispatchMessage):

  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:

(WebKit::AuthenticationManager::initializeConnection):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::startOnMainThread):
(WebKit::MediaFormatReader::parseByteSource):
(WebKit::MediaFormatReader::didParseTracks):
(WebKit::MediaFormatReader::didProvideMediaData):
(WebKit::MediaFormatReader::finishParsing):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:

(WebKit::MediaSampleByteRange::MediaSampleByteRange):

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::MediaTrackReader):
(WebKit::MediaTrackReader::addSample):
(WebKit::MediaTrackReader::finishParsing):

  • Shared/mac/MediaFormatReader/MediaTrackReader.h:
  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::~IconDatabase):
(WebKit::IconDatabase::createTablesIfNeeded):
(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::clearStatements):
(WebKit::IconDatabase::pruneTimerFired):
(WebKit::IconDatabase::startPruneTimer):
(WebKit::IconDatabase::clearLoadedIconsTimerFired):
(WebKit::IconDatabase::startClearLoadedIconsTimer):
(WebKit::IconDatabase::iconIDForIconURL):
(WebKit::IconDatabase::setIconIDForPageURL):
(WebKit::IconDatabase::iconData):
(WebKit::IconDatabase::addIcon):
(WebKit::IconDatabase::updateIconTimestamp):
(WebKit::IconDatabase::deleteIcon):
(WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded):
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::iconURLForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
(WebKit::IconDatabase::clear):

  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::requestAVCaptureAccessForType):
(WebKit::requestSpeechRecognitionAccess):

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::nonBrowserServices):
(WebKit::agxCompilerClasses):
(WebKit::agxCompilerServices):
(WebKit::diagnosticServices):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::sendWebInspectorEvent):
(WebKit::RemoteInspectorClient::didClose):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):
(WebKit::gpuMachServices):
(WebKit::mediaRelatedMachServices):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_setContentProviderData:suggestedFilename:]):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView dealloc]):

  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::~WebCacheStorageConnection):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::waitForDidFlushOnSecondaryThread):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::load):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::renderQuantum):

  • WebProcess/GPU/media/RemoteAudioSourceProvider.cpp:

(WebKit::RemoteAudioSourceProvider::RemoteAudioSourceProvider):
(WebKit::RemoteAudioSourceProvider::close):

  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::setCallbacks):
(WebKit::LibWebRTCCodecs::failedDecoding):
(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::completedEncoding):

  • WebProcess/Network/webrtc/LibWebRTCResolver.cpp:

(WebKit::LibWebRTCResolver::sendOnMainThread):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::sendOnMainThread):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pdfLog):
(WebKit::PDFPlugin::logStreamLoader):
(WebKit::PDFPlugin::verboseLog):
(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::dataProviderGetByteRangesCallback):
(WebKit::dataProviderReleaseInfoCallback):
(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::getResourceBytesAtPositionMainThread):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::adoptBackgroundThreadDocument):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::tryRunScriptsInPDFDocument):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::didMatchRegistration):
(WebKit::WebSWClientConnection::didGetRegistrations):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::getRegistrations):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
(WebKit::WebServiceWorkerFetchTaskClient::cleanup):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::elementDidBlur):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::didFinishContentChangeObserving):
(WebKit::WebPage::updateInputContextAfterBlurringAndRefocusingElementIfNeeded):

  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

(WebKit::DisplayRefreshMonitorMac::displayLinkFired):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase axObjectCache]):
(-[WKAccessibilityWebPageObjectBase accessibilityPluginObject]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):
(-[WKAccessibilityWebPageObjectBase setHasMainFramePlugin:]):
(-[WKAccessibilityWebPageObjectBase setRemoteParent:]):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::remoteAudioSamplesAvailable):

  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:

(WebKit::RemoteRealtimeMediaSourceProxy::connection):

Source/WTF:

  • wtf/MainThread.h:

Tools:

Add corresponding style checker rules.

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

(check_no_callonmainthread):
(check_no_ismainthread):
(check_style):
(CppChecker):

1:36 PM Changeset in webkit [274173] by Manuel Rego Casasnovas
  • 7 edits in trunk/Source/WebCore

[selectors] Move :focus-viisble & :focus-within flags from Node to UserActionElementSet
https://bugs.webkit.org/show_bug.cgi?id=222647

Reviewed by Antti Koivisto.

This patch avoids using flags in Node.h for :focus-visible and :focus-within pseudo classes,
and move them to UserActionElementSet.
This makes them consistent with :focus flag, and saves some bits in Node.h for other flags in the future.

On top of that this makes :focus-within SelectorCompiler implementation consistent with :focus and :focus-visible implementations.

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFocusWithinPseudoClass):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

  • dom/Element.cpp:

(WebCore::Element::isUserActionElementHasFocusVisible const):
(WebCore::Element::isUserActionElementHasFocusWithin const):
(WebCore::Element::setHasFocusVisible):
(WebCore::Element::setHasFocusWithin):

  • dom/Element.h:

(WebCore::Element::hasFocusVisible const):
(WebCore::Element::hasFocusWithin const):

  • dom/Node.h:

(WebCore::Node::flagIsLink):

  • dom/UserActionElementSet.h:

(WebCore::UserActionElementSet::hasFocusVisible):
(WebCore::UserActionElementSet::hasFocusWithin):
(WebCore::UserActionElementSet::setHasFocusVisible):
(WebCore::UserActionElementSet::setHasFocusWithin):

1:27 PM Changeset in webkit [274172] by Chris Dumez
  • 53 edits in trunk/Source/WebKit

[IPC Hardening] Protect against bad input in WebProcessProxy::createSpeechRecognitionServer() and MessageReceiverMap
https://bugs.webkit.org/show_bug.cgi?id=222948
<rdar://problem/75191472>

Reviewed by Alex Christensen.

Update MessageReceiverMap so that:

  1. Trying to remove a MessageReceiver that is not in the map does not do dangerous things.
  2. It stores weak pointers to the receivers instead of raw pointers. This would avoid doing bad things when trying to remove a message receiver that's already been destroyed.

Add a MESSAGE_CHECK() in WebProcessProxy::createSpeechRecognitionServer() to
make sure the identifier is not already in the map. There used to be a debug
assertion but we should MESSAGE_CHECK() too since the value is coming from
IPC.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.h:
  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteCDMFactoryProxy.h:
  • GPUProcess/media/RemoteCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
  • GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • Platform/IPC/MessageReceiver.h:
  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):

  • Platform/IPC/MessageReceiverMap.h:
  • Shared/API/Cocoa/RemoteObjectRegistry.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/Authentication/AuthenticationManager.h:
  • Shared/AuxiliaryProcess.h:
  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createSpeechRecognitionServer):

  • UIProcess/WebProcessProxy.h:
  • WebAuthnProcess/WebAuthnProcess.h:
  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebStorage/StorageAreaMap.h:
1:19 PM Changeset in webkit [274171] by Said Abou-Hallawa
  • 13 edits in trunk

[GPUP] Enable 2D Canvas in layout tests by default
https://bugs.webkit.org/show_bug.cgi?id=222835

Reviewed by Simon Fraser.

Source/WTF:

Move UseGPUProcessForCanvasRenderingEnabled from WebPreferencesInternal
to WebPreferencesExperimental so that the WebKitTestRunner will turn it
on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

Some of the canvas layout tests are still failing when GPUP is enabled
for 2D Canvas. Skip these tests for now.

  • http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
  • http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
  • http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:

webkit.org/b/222881

  • inspector/canvas/memory.html:

webkit.org/b/222880

1:17 PM Changeset in webkit [274170] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r273003): Animated style may lose original display property value
https://bugs.webkit.org/show_bug.cgi?id=222979
rdar://75056684

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/animation/animation-display-style-adjustment.html

The original (non-blockified) display property value is saved in the beginning of Style::Adjuster::adjust.
It is needed to implement absolute positioning correctly in some situations. However with animations
the style adjustment code may run twice on the same style and the second run will clobber the saved original value.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setDisplay):

Always save the original value when setting the property normally.

(WebCore::RenderStyle::setEffectiveDisplay):
(WebCore::RenderStyle::setOriginalDisplay): Deleted.

Add setEffectiveDisplay that doesn't affect the original value for adjuster use.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

Remove the saving of the original value.
Use setEffectiveDisplay in all adjuster code, preserving the original value.

(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):
(WebCore::Style::Adjuster::adjustSVGElementStyle):
(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):

LayoutTests:

  • fast/animation/animation-display-style-adjustment-expected.html: Added.
  • fast/animation/animation-display-style-adjustment.html: Added.
12:52 PM Changeset in webkit [274169] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

buildbot checkconfig is failing in ews after buildbot upgrade
https://bugs.webkit.org/show_bug.cgi?id=222974

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunEWSBuildbotCheckConfig.start): Set LC_ALL environment variable on bots.

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
12:41 PM Changeset in webkit [274168] by weinig@apple.com
  • 8 edits in trunk/Source

Remove CSSParserContext::enforcesCSSMIMETypeInNoQuirksMode as it is unused
https://bugs.webkit.org/show_bug.cgi?id=222949

Reviewed by Darin Adler.

At some point in the past we stoped doing anything with the enforcesCSSMIMETypeInNoQuirksMode
bit on CSSParserContext.

The only time it was ever disabled was when running ancient versions of iWeb, a product that
itself hasn't existed for over a decade, so I think we are ok to remove it.

Source/WebCore:

  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultEnforceCSSMIMETypeInNoQuirksMode): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
12:14 PM Changeset in webkit [274167] by Chris Dumez
  • 17 edits
    6 adds in trunk/LayoutTests/imported/w3c

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

Reviewed by Geoffrey Garen.

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

  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt:
  • web-platform-tests/dom/events/Event-dispatch-click.html:
  • web-platform-tests/dom/events/Event-dispatch-redispatch.html:
  • web-platform-tests/dom/events/Event-stopPropagation-cancel-bubbling-expected.txt: Added.
  • web-platform-tests/dom/events/Event-stopPropagation-cancel-bubbling.html: Added.
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default-expected.txt: Added.
  • web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default.html: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.https.html:
  • web-platform-tests/dom/nodes/Document-createEvent.js:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt:
  • web-platform-tests/dom/nodes/aria-element-reflection.tentative.html:
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/dom/slot-recalc-expected.txt: Added.
  • web-platform-tests/dom/slot-recalc.html: Added.
  • web-platform-tests/dom/w3c-import.log:
12:11 PM Changeset in webkit [274166] by commit-queue@webkit.org
  • 9 edits in trunk

.:
[GTK] Reenable -fvisibility=hidden
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-09
Reviewed by Don Olmstead.

In non-DEVELOPER_MODE builds, we rely on a linker version script to hide symbols that we
don't want to export. Building with hidden visibility might seem redundant with this, but
actually building with hidden visibility has advantages anyway. See
https://gcc.gnu.org/wiki/Visibility.

Note that I'm not confident GTK port can safely use -fvisibility-inlines-hidden, since it's
split between two shared objects. Also, because GTK is split into two shared objects, GTK
needs to build bmalloc and WTF as CMake OBJECT libraries, which is effectively the same as
using -Wl,--whole-archive to prevent symbols from being prematurely stripped away.

P.S. Major credit to Don Olmstead, who did most of the work to make this possible, which has
already landed in previous patches.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:
[WPE][GTK] Reenable -fvisibility=hidden (and -fvisibility-inlines-hidden for WPE)
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-09
Reviewed by Don Olmstead.

We need to export the destructor of EventTarget.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Tools:
[GTK] Reenable -fvisibility=hidden
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-09
Reviewed by Don Olmstead.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
12:09 PM Changeset in webkit [274165] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[Web Animations] setKeyframes does not preserve animation's current offset
https://bugs.webkit.org/show_bug.cgi?id=222939
<rdar://problem/75207793>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/set-keyframes-after-animation-completion.html

When setKeyframes() is called on a KeyframeEffect, it clears the existing blending keyframes
created for the style system which will be re-populated on the next style update.

When an animation completes, it becomes eligible for being removed unless its effect is the
top-most effect in the target element's effect stack affecting one of the CSS properties
animated by effects in the stack. To determine what properties an effect animates, the method
KeyframeEffect::animatedProperties() is used.

Until now, KeyframeEffect::animatedProperties() simply returned the properties from the
blending keyframes. As such, if blending keyframes are empty, that method returns an empty
set of properties.

Since blending keyframes are cleared by a call to setKeyframes(), calling this method on
the effect of an animation that just finished will remove that animation and the effect
will no longer be applied when updating styles.

To fix this, we add a new instance variable on KeyframeEffect to store the list of properties
affected by the effect from the keyframes parsed by setKeyframes() until we generate the
blending keyframes during the next style update.

As soon as we generate the blending keyframes and setBlendingKeyframes() is called, we clear
that new property. This guarantees that no matter how keyframes are specified – CSS Transitions,
CSS Animations or Web Animations JS API – the animatedProperties() method returns the set
of affected properties.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatedProperties):
(WebCore::KeyframeEffect::setBlendingKeyframes):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::animatedProperties const): Deleted.

LayoutTests:

Add a new test that checks that updating keyframes after an animation has completed
correctly updates styles accounting for the new keyframes.

  • webanimations/set-keyframes-after-animation-completion-expected.html: Added.
  • webanimations/set-keyframes-after-animation-completion.html: Added.
12:03 PM Changeset in webkit [274164] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

[GPU Process] ImageBitmap should release its ImageBuffer in the main thread
https://bugs.webkit.org/show_bug.cgi?id=222960

Reviewed by Simon Fraser.

The ImageBuffer of the ImageBitmap should be deleted on the main thread
only since its deletion may require sending messages to the GPUP.

Covered by existing test:

imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-in-worker-transfer.html

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::~ImageBitmap):

11:57 AM Changeset in webkit [274163] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo] Deadlocks in WTF::Thread::ThreadHolder::~ThreadHolder while WebKitWebProcess.exe is shutting down
https://bugs.webkit.org/show_bug.cgi?id=222682

Reviewed by Don Olmstead.

WinCairo WebKit2 layout tests were observing deadlocks in
WTF::Thread::ThreadHolder::~ThreadHolder while
WebKitWebProcess.exe is shutting down in the IPC thread.
WebProcess calls _exit in IPC threads if a IPC connection is
disconnected.

r260911 (Bug 210955) fixed a similar deadlock by skipping the
destruction in ~ThreadHolder if the calling thread is the main
thread.

Microsoft Docs describe how a process is terminated and recommend
TerminateProcess API to avoid such deadlocks.
<https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-exitprocess>

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::callExitSoon): Use TerminateProcess instead of _exit.

  • WebProcess/WebProcess.cpp:

(WebKit::callExit): Ditto.

11:24 AM Changeset in webkit [274162] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the ENABLE(APP_HIGHLIGHTS) build after r274155

  • Modules/highlight/AppHighlightStorage.h: Fix the signature of AppHighlightStorage::storeAppHighlight.
11:08 AM Changeset in webkit [274161] by Ben Nham
  • 8 edits in trunk/Source

Adopt new NSURLSessionConfiguration SPI for connection cache configuration
https://bugs.webkit.org/show_bug.cgi?id=222934

Reviewed by Geoffrey Garen.

Source/WebCore:

This uses the NSURLSessionConfiguration connection cache limit SPI introduced in Big Sur to
properly set the parameters we want for HTTP/1.1 connections. Previously we tried to do this
using _CFNetworkHTTPConnectionCacheSetLimit in NetworkProcessCocoa, but this didn't work
because that SPI only applies to NSURLConnection rather than NSURLSession.

In particular, this meant that the number of priority levels wasn't set correctly, which we
had to work around by constraining the number of priority levels when mapping WebKit
resource priorities to CFNetwork priorities (https://bugs.webkit.org/show_bug.cgi?id=203423).
This patch adopts the SPI and removes that workaround.

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):
(WebCore::toPlatformRequestPriority):

Source/WebCore/PAL:

Declare NSURLSessionConfiguration connection cache limit SPI when building using the public SDK.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

This uses the NSURLSessionConfiguration connection cache limit SPI introduced in Big Sur to
properly set the parameters we want for HTTP/1.1 connections. Previously we tried to do this
using _CFNetworkHTTPConnectionCacheSetLimit in NetworkProcessCocoa, but this didn't work
because that SPI only applies to NSURLConnection rather than NSURLSession.

In particular, this meant that the number of priority levels wasn't set correctly, which we
had to work around by constraining the number of priority levels when mapping WebKit
resource priorities to CFNetwork priorities (https://bugs.webkit.org/show_bug.cgi?id=203423).
This patch adopts the SPI and removes that workaround.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):

Source/WTF:

Add the HAVE_CFNETWORK_NSURLSESSION_CONNECTION_CACHE_LIMITS flag to control whether or not
to use the connection cache limit SPI on NSURLSessionConfiguration.

  • wtf/PlatformHave.h:
10:58 AM Changeset in webkit [274160] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[IPC Hardening] IPC::decode(Decoder& decoder, RetainPtr<CFDictionaryRef>&) should make sure keys & values aren't null
https://bugs.webkit.org/show_bug.cgi?id=222980

Reviewed by Geoffrey Garen.

[NSMutableDictionary setObject:forKey:] throws an exception when the given object or key is nil. The dictionary decoder
should therefore fail nicely when either of these is nil, instead of crashing.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

10:58 AM Changeset in webkit [274159] by mark.lam@apple.com
  • 4 edits in trunk

Use --verifyGC=true on some JSC stress test configurations.
https://bugs.webkit.org/show_bug.cgi?id=222289

Reviewed by Filip Pizlo.

JSTests:

  • stress/heap-analyzer-taking-lock.js:

Tools:

  • Scripts/run-jsc-stress-tests:
10:50 AM Changeset in webkit [274158] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[IPC Hardening] SandboxExtension::HandleArray IPC decoder should not call Vector::resize()
https://bugs.webkit.org/show_bug.cgi?id=222977
<rdar://problem/75218451>

Reviewed by Anders Carlsson.

SandboxExtension::HandleArray IPC decoder should not call Vector::resize() with an untrusted size
coming from IPC. Instead, call Vector::append(), like the Vector IPC decoder does.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::HandleArray::append):
(WebKit::SandboxExtension::HandleArray::decode):

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::append):

10:32 AM Changeset in webkit [274157] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Jump from Layout panel to grid container element
https://bugs.webkit.org/show_bug.cgi?id=222429
<rdar://problem/74751801>

Reviewed by Devin Rousso.

Add a button to inspect a CSS grid overlay's corresponding element.
Remove the similar functionality from the overloaded label.

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .node-display-name,):
(.css-grid-section .node-overlay-list-item-container :is(.go-to-arrow, .inline-swatch)):
(.css-grid-section .node-overlay-list-item-container:not(:hover) .go-to-arrow):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.layout):

10:15 AM Changeset in webkit [274156] by Peng Liu
  • 10 edits in trunk

[GPUP] Test fast/images/animated-image-mp4.html times out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221795

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix test failures.

  • platform/graphics/cocoa/IOSurface.h:

Add an empty line to make the comment clear.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
Fix an error in the attributes of a VTDecompressionSession.

Source/WebKit:

Pass the color space along with a MachSendRight created from an IOSurface to ensure
that we can recreate the image from the MachSendRight/IOSurface properly.

  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
This functions needs to return a valid image when it is called in the main thread,
otherwise, the animation will pause.

LayoutTests:

  • platform/wk2/TestExpectations:
10:01 AM Changeset in webkit [274155] by Megan Gardner
  • 4 edits in trunk/Source/WebCore

Hold onto AppHighlights and restore them once the page is loaded.
https://bugs.webkit.org/show_bug.cgi?id=222640

Reviewed by Devin Rousso.

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::restoreAppHighlight):
(WebCore::AppHighlightStorage::restoreUnrestoredAppHighlights):

  • Modules/highlight/AppHighlightStorage.h:
  • dom/Document.cpp:

(WebCore::Document::finishedParsing):

9:38 AM Changeset in webkit [274154] by youenn@apple.com
  • 6 edits in trunk

MediaRecorder.requestData() not returning all captured media after a pause
https://bugs.webkit.org/show_bug.cgi?id=222285
<rdar://problem/74884561>

Reviewed by Eric Carlson.

Source/WebCore:

Previously, when flushing, we are called on a background thread and we hop to the main thread to append data.
In some cases, we were resolving the completion handlers before appending all data.
To prevent this, we now append data from a background thread.
To do so, we lock when accessing m_data, either to append or take the data.
In addition, we cancel writing when clearing the writer.
This allows to clean the writer delegate without fearing that write operations are happening.

Covered by updated test.

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(-[WebAVAssetWriterDelegate initWithWriter:]):
(-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedHeaderData:]):
(-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedMediaData:fragmentedMediaDataReport:]):
(WebCore::MediaRecorderPrivateWriter::initialize):
(WebCore::MediaRecorderPrivateWriter::clear):
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::completeFetchData):
(WebCore::MediaRecorderPrivateWriter::appendData):
(WebCore::MediaRecorderPrivateWriter::takeData):

LayoutTests:

  • http/wpt/mediarecorder/pause-recording-expected.txt:
  • http/wpt/mediarecorder/pause-recording.html:
9:37 AM Changeset in webkit [274153] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[IPC Hardening] Protect WebPageProxy::willSubmitForm() against bad Strings
https://bugs.webkit.org/show_bug.cgi?id=222955
<rdar://problem/75195062>

Reviewed by Anders Carlsson.

The Strings passed in textFieldValues are used as keys in a HashMap later on so we need
to validate them.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willSubmitForm):

9:36 AM Changeset in webkit [274152] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Duplicate headers in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=222519
<rdar://problem/75137024>

Reviewed by Eric Carlson.

  • libwebrtc.xcodeproj/project.pbxproj:
9:35 AM Changeset in webkit [274151] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

[Cocoa] Web Inspector: Console search box is broken, advancing to next result instead pastes from system find pasteboard
https://bugs.webkit.org/show_bug.cgi?id=220773
<rdar://problem/73410423>

Reviewed by Devin Rousso.

Ensure FindBanner is always marked as shown in the Console
to prevent malfunction when advancing through search results.

  • UserInterface/Views/FindBanner.js:

(WI.FindBanner):
(WI.FindBanner.prototype.set targetElement):
(WI.FindBanner.prototype.hide):

8:55 AM Changeset in webkit [274150] by commit-queue@webkit.org
  • 5 edits in trunk

[WebRTC][GStreamer] webrtc/multi-video.html crashes
https://bugs.webkit.org/show_bug.cgi?id=222792

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-09
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Add safeguards preventing removal of a pad that was not yet added.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcAddPad):
(webkitMediaStreamSrcRemovePad):

LayoutTests:

Update expectations for webrtc/multi-video.html which is currently expected to fail.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:53 AM Changeset in webkit [274149] by commit-queue@webkit.org
  • 6 edits in trunk

[GStreamer][WebRTC] VideoEncoder still doesn't comply with WebKit style
https://bugs.webkit.org/show_bug.cgi?id=222901

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-09
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Refactor the code to comply with WebKit's coding style. A new function allowing to set the
encoder element was also factored out, in preparation for the camerabin support.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:

(Encoders::registerEncoder):
(webrtcVideoEncoderGetProperty):
(webrtcVideoEncoderSetBitrate):
(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):
(webrtcVideoEncoderSetProperty):
(setBitrateKbitPerSec):
(setBitrateBitPerSec):
(webrtcVideoEncoderConstructed):
(webkit_webrtc_video_encoder_class_init):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.h:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory):

Tools:

  • Scripts/webkitpy/style/checker.py: Move the GStreamer VideoEncoder to the list of custom

GStreamer elements complying with WebKit's coding style.

8:21 AM Changeset in webkit [274148] by Wenson Hsieh
  • 28 edits in trunk

[macOS] Add a way to trigger webpage translation via the context menu
https://bugs.webkit.org/show_bug.cgi?id=222953
<rdar://problem/73901967>

Reviewed by Devin Rousso.

Source/WebCore:

Introduce a WebCore enum for the new context menu item. Additionally, update Localizable.strings by re-running
Tools/Scripts/update-webkit-localizable-strings.

  • en.lproj/Localizable.strings:
  • page/ContextMenuContext.h:

(WebCore::ContextMenuContext::setSelectionBounds):
(WebCore::ContextMenuContext::selectionBounds const):

Add a new member to represent the text selection bounds in root view coordinates.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

Compute and set text selection bounds.

(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:

Add the new enum value.

  • platform/LocalizedStrings.cpp:

(WebCore::truncatedStringForMenuItem):

Renamed this from truncatedStringForLookupMenuItem, since it's now used for this new translate menu item.

(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagTranslate):

Add a helper function to return the title for the new translate menu item, modeled after "Look Up".

(WebCore::truncatedStringForLookupMenuItem): Deleted.

  • platform/LocalizedStrings.h:

Source/WebKit:

Add support for the new context menu item in WebKit2. See below for more details.

  • Shared/API/c/WKContextMenuItemTypes.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

Add a C API value for the new WebCore enum.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::selectionBounds const):

Add a rect, selectionBounds, to ContextMenuContextData that represents the rect of the current text
selection in root view coordinates.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::canHandleContextMenuTranslation const):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::canHandleContextMenuTranslation const):

Consult the class method to return whether or not the menu item should be present. If not, then we filter this
item out from the list of context menu items in WebContextMenuProxyMac below.

(WebKit::WebViewImpl::handleContextMenuTranslation):

Handle the translation action by using NSPopover to present an LTUITranslationViewController.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::canHandleContextMenuTranslation const):
(WebKit::PageClientImpl::handleContextMenuTranslation):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

Remove the translate menu item if we're already presented in the context of a popover, or if the system does not
support the feature (see WebViewImpl::canHandleContextMenuTranslation).

(WebKit::menuItemIdentifier):

Source/WebKitLegacy/mac:

Add (no-op) handling for the new enum value.

  • WebView/WebHTMLView.mm:

(toTag):

Tools:

Adjust an API test. This new enum value is now the new last valid item value.

  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp:

(TestWebKitAPI::TEST):

7:51 AM Changeset in webkit [274147] by graouts@webkit.org
  • 8 edits in trunk

Correctly blend column-width and column-count CSS properties
https://bugs.webkit.org/show_bug.cgi?id=222969

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 160 PASS results. We now pass all the column-width and column-count interpolation tests.

  • web-platform-tests/css/css-multicol/animation/column-count-interpolation-expected.txt:
  • web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

We used to simply blend column-width and column-count as float and unsigned short properties
with no minimum value and no accounting for the "auto" value which only blends discretely.

We generalize some of the code added for the z-index wrapper by creating a new AutoPropertyWrapper
which takes into two method arguments for the hasAuto() and setHasAuto() methods on RenderStyle
and an optional minimum value, which we set to 0 for column-width, 1 for column-count and don't
specify for z-index since it doesn't have a minimum value.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::AutoPropertyWrapper::AutoPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper): Deleted.

7:10 AM Changeset in webkit [274146] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Suspend widget hierarchy updates while executing node insertion
https://bugs.webkit.org/show_bug.cgi?id=222719

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-09
Reviewed by Ryosuke Niwa.

  • dom/ContainerNode.cpp:

(WebCore::executeNodeInsertionWithScriptAssertion):

6:56 AM Changeset in webkit [274145] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Increase resource load priority of async scripts from low to medium
https://bugs.webkit.org/show_bug.cgi?id=222966

Reviewed by Zalan Bujtas.

Low priority loads may be delayed during parsing. We want async script to be immediately available when parsing
completes so 'medium' is the appropriate priority

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::load):

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

[Multi-column] Adjust fragmented flow state of the out-of-flow descendants
https://bugs.webkit.org/show_bug.cgi?id=222958
<rdar://74865741>

Reviewed by Antti Koivisto.

When a block container's style change from positioned to non-positioned and it is part of a multi-column context,
we need to make sure that the out-of-flow positined descendants' flow state are updated accordingly (as
they may not be part of the multi-column context anymore).

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

4:05 AM Changeset in webkit [274143] by Chris Lord
  • 13 edits in trunk

Allow creation of a CSSFontSelector with a non-Document ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=222735

Reviewed by Darin Adler.

Replace Document member of CSSFontSelector with a ScriptExecutionContext.
This also changes make_names.pl string header generation to allow for easier enumeration of font family strings.

No new tests as new behaviour is currently unused. Existing behaviour covered by existing tests.

  • bindings/scripts/StaticString.pm:

(GenerateStrings): Revert change from bug 222552

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::m_version):
(WebCore::CSSFontSelector::fontFaceSet):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):
(WebCore::CSSFontSelector::resolveGenericFamily):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::stopLoadingAndClearFonts):
(WebCore::CSSFontSelector::beginLoadingFontSoon):
(WebCore::CSSFontSelector::loadPendingFonts):
(WebCore::CSSFontSelector::fontLoadingTimerFired):
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):

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

(WebCore::FontFaceSet::create):
(WebCore::FontFaceSet::FontFaceSet):

  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
  • dom/Document.h:
  • dom/ScriptExecutionContext.h:
  • dom/make_names.pl:

(printNamesHeaderFile): Make global string data and names accessible via a Vector and add an enum of name indices.

  • platform/graphics/FontGenericFamilies.cpp:

(WebCore:: const):

  • platform/graphics/FontGenericFamilies.h:
3:20 AM Changeset in webkit [274142] by graouts@webkit.org
  • 9 edits in trunk

Select CSS properties animating as float should not allow negative values
https://bugs.webkit.org/show_bug.cgi?id=222912

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Add an extra 57 PASS results. We now pass all the outline-width interpolation tests.

  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
  • web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-width-composition-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-width-interpolation-expected.txt:

Source/WebCore:

The properties border-width, column-width, outline-width, perspective,
flex-grow and flex-shrink do not allow negative values. We create a new
animation wrapper specifically for these properties.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::NonNegativeFloatPropertyWrapper::NonNegativeFloatPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

LayoutTests:

Mark WPT progressions for a platform-specific result.

  • platform/ios/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
12:53 AM Changeset in webkit [274141] by commit-queue@webkit.org
  • 6 edits in trunk

WebGL2: Red flickering when using copyTexImage2D()
https://bugs.webkit.org/show_bug.cgi?id=222790

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-09
Reviewed by Kenneth Russell.

Source/WebCore:

Reading non-full FBO rectangle with copyTexImage2D would
cause invalid operation on WebGL2.
This is probably due to misunderstanding between what was old
GL desktop + GLES mobile backends
"isGLES2Compatible() == runs on Desktop GL"
vs new ANGLE backend
"isGLES2Compatible() == !m_isForWebGL2".

Add testing to fast/canvas/webgl/copy-tex-image-and-sub-image-2d.html.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::resolveMultisamplingIfNecessary):
Use BlitFramebuffer for WebGL2 non-full framebuffer copyTexImage2D calls.
On WebGL we use BlitFramebufferANGLE as before.

LayoutTests:

  • fast/canvas/webgl/copy-tex-image-and-sub-image-2d-expected.txt:
  • fast/canvas/webgl/copy-tex-image-and-sub-image-2d.html:

Change the test to test WebGL2 and copyTexImage2D with non-full framebuffer
rectangles.

  • fast/canvas/webgl/resources/webgl-test.js:

(create3DContext):
Fix logic error when trying to create WebGL2 context.

12:26 AM Changeset in webkit [274140] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove references to unimplemented and deprecated scroll-snap properties
https://bugs.webkit.org/show_bug.cgi?id=221746

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-09
Reviewed by Simon Fraser.

No new tests. This should not change behavior in any way.

  • css/CSSProperties.json: Remove references to deprecated and unimplemented CSS properties.
Note: See TracTimeline for information about the timeline view.