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

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):

Note: See TracTimeline for information about the timeline view.