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

Timeline



Mar 14, 2021:

1:16 AM Changeset in webkit [274397] by Lauro Moura
  • 3 edits in trunk

[GLIB] Keep GPUProcess disabled when using experimental features
https://bugs.webkit.org/show_bug.cgi?id=223155

Reviewed by Philippe Normand.

At least two recent GPUProcess-related revisions caused issues in
GLIB, causing serious regressions in the bots. Disabling it for now
until we improve its support.

Revisions:

r274327 - 2D Canvas enabled by default in GPUProcess
r272842 - Media enabled by default in GPUProcess

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

Mar 13, 2021:

11:20 PM Changeset in webkit [274408] by weinig@apple.com
  • 9 edits in trunk

Match other browsers by interpolating colors in floating point space rather than uint8_t space
https://bugs.webkit.org/show_bug.cgi?id=223165

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/animations/background-color-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/caret-color-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/outline-017-expected.txt:

Update color interpolation results.

Source/WebCore:

  • platform/graphics/ColorBlending.cpp:

(WebCore::blend):
(WebCore::blendWithoutPremultiply):
Rather than blending the components as uint8_t channels, match other browsers by blending
them as float channels. I have not yet determined if a spec says this, but matching other
browsers makes sense and fixes a bunch of WPT results. I will follow up with the CSS WG to
determine where/if this is/should be specified.

  • platform/graphics/ColorUtilities.cpp:

(WebCore::unpremultiplied):
Avoid division by zero.

5:57 PM Changeset in webkit [274407] by Fujii Hironori
  • 6 edits in trunk

[Win][WK1] Add a new API IWebPreferences::startBatchingUpdates to defer WebPreferencesChangedNotification
https://bugs.webkit.org/show_bug.cgi?id=223109

Reviewed by Sam Weinig.

Source/WebKitLegacy/win:

Some JS tests are timing out for Windows WebKit1 Debug build since
r274111. Those tests generate very large pages. r274111 resets
WebPreferences to the initial state. Changing a preference causes
relayout. Thus, resetting preferences caused layouts repeatedly.

r274040 (Bug 218024) added _batchUpdatePreferencesInBlock to
WebPreferences for Mac WebKit1 to defer the notification.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferences.cpp:

(WebPreferences::postPreferencesChangesNotification):
(WebPreferences::startBatchingUpdates): Added.
(WebPreferences::stopBatchingUpdates): Added.

  • WebPreferences.h:

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebViewToConsistentStateBeforeTesting):

3:18 PM Changeset in webkit [274406] by Alexey Shvayka
  • 4 edits in trunk/Source/JavaScriptCore

REGRESSION (r274308): Two assertions in JSGlobalObject::defineOwnProperty() are failing
https://bugs.webkit.org/show_bug.cgi?id=223134

Reviewed by Yusuke Suzuki.

This patch:

  1. Simplifies exception check after validateAndApplyPropertyDescriptor() as it conditionally throws on failure.
  2. Creates new SymbolTableEntry when global variable is redefined as read-only because setAttributes() performs pack(), which doesn't support fat entries.

Due to #2, symbolTableGet() overload is simplified to return fast entry, and
setAttributes() is removed as unused.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::defineOwnProperty):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTableGet):

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::getAttributes const):
(JSC::SymbolTableEntry::setAttributes): Deleted.

3:12 PM Changeset in webkit [274405] by ysuzuki@apple.com
  • 3 edits
    1 move
    1 add in trunk/JSTests

[JSC] Run one Mozilla test explicitly under PST since this test does not work when we are moving from PST to PDT
https://bugs.webkit.org/show_bug.cgi?id=223158

Reviewed by Mark Lam.

This mozilla test is broken: it fails when we are close to the point moving from PST to PDT / from PDT to PST.
We should always run this test under PST to avoid this DST related flakiness.

We explicitly set TZ=PST for this test to ensure that this runs under PST (not PDT). TZ environment variable is
recognized by system frameworks and some libraries including tzdata and ICU.

  • complex.yaml:
  • complex/mozilla-ecma-Date-15.9.5.14.js: Renamed from JSTests/mozilla/ecma/Date/15.9.5.14.js.

(test):

  • complex/mozilla-shell.js: Added.

(AddTestCase):
(TestCase):
(startTest):
(test):
(getTestCaseResult):
(writeTestCaseResult):
(writeFormattedResult):
(writeLineToLog):
(writeHeaderToLog):
(stopTest):
(getFailedCases):
(getTimeZoneDiff):
(adjustResultArray):
(Day):
(DaysInYear):
(TimeInYear):
(DayNumber):
(TimeWithinDay):
(YearNumber):
(TimeFromYear):
(DayFromYear):
(InLeapYear):
(YearFromTime):
(MonthFromTime):
(DayWithinYear):
(DateFromTime):
(WeekDay):
(UTC):
(DaylightSavingTA):
(GetFirstSundayInApril):
(GetLastSundayInOctober):
(GetSecondSundayInMarch):
(GetFirstSundayInNovember):
(LocalTime):
(MakeTime):
(MakeDay):
(TimeInMonth):
(TimeClip):
(ToInteger):
(Enumerate):
(GetContext):
(OptLevel):

  • mozilla/mozilla-tests.yaml:
2:19 PM Changeset in webkit [274404] by ysuzuki@apple.com
  • 5 edits
    3 adds in trunk

Prevent dynamic import in service worker
https://bugs.webkit.org/show_bug.cgi?id=222308

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Covering service-worker case.

  • web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:

Source/WebCore:

dynamic-import should be always rejected if script is executed in Worklets or ServiceWorkers.
This is recently changed in the spec https://github.com/whatwg/html/pull/6395.

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::isWorkletOrServiceWorker):
(WebCore::ScriptModuleLoader::importModule):

LayoutTests:

Covering worklet case.

  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/dynamic-import-is-prohibited.https-expected.txt: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/dynamic-import-is-prohibited.https.html: Added.
  • http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/dynamic-import-is-prohibited.js: Added.

(DynamicImportIsProhibitedProcessor.prototype.process):
(DynamicImportIsProhibitedProcessor):

1:47 PM Changeset in webkit [274403] by commit-queue@webkit.org
  • 2 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-14
Reviewed by Darin Adler.

Address post review comments.

  • dom/EventSender.h:

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

1:26 PM Changeset in webkit [274402] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Big Sur arm64] testb3 crashing
https://bugs.webkit.org/show_bug.cgi?id=222815

Reviewed by Mark Lam.

Fix dmb ish and dmb ishst's formats.

  • b3/testb3_6.cpp:

(testMemoryFence):
(testStoreFence):
(testLoadFence):

1:22 PM Changeset in webkit [274401] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] ARM64 branchAtomicWeakCAS should not use sign-extension
https://bugs.webkit.org/show_bug.cgi?id=222813

Reviewed by Mark Lam.

ARM64 branchAtomicWeakCAS implementation should not use sign-extension. Instead, it should use zero-extension.
This is because loadLinkAcq (ldaxr) will load a value with zero-extension. If we use sign-extension, we will
encounter the state where LL/SC never succeeds just because we are comparing sign-extended value and zero-extended
value. This implementation is aligned to how X86 implementation works: X86 only cares the effective bit width of branchAtomicWeakCAS.

This is already tested by stress/atomics-store-result-int52.js.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::zeroExtend):
(JSC::MacroAssemblerARM64::atomicStrongCAS):
(JSC::MacroAssemblerARM64::atomicRelaxedStrongCAS):
(JSC::MacroAssemblerARM64::branchAtomicWeakCAS):
(JSC::MacroAssemblerARM64::branchAtomicRelaxedWeakCAS):
(JSC::MacroAssemblerARM64::signExtend): Deleted.
(JSC::MacroAssemblerARM64::signExtend<8>): Deleted.
(JSC::MacroAssemblerARM64::signExtend<16>): Deleted.

11:46 AM Changeset in webkit [274400] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

GCSegmentedArray's size() and isEmpty() methods should be const.
https://bugs.webkit.org/show_bug.cgi?id=223156

Reviewed by Keith Miller.

  • heap/GCSegmentedArray.h:
  • heap/GCSegmentedArrayInlines.h:

(JSC::GCSegmentedArray<T>::isEmpty const):
(JSC::GCSegmentedArray<T>::size const):
(JSC::GCSegmentedArray<T>::isEmpty): Deleted.
(JSC::GCSegmentedArray<T>::size): Deleted.

11:19 AM Changeset in webkit [274399] by ysuzuki@apple.com
  • 4 edits
    2 adds in trunk

[JSC] wasm atomic wait offset is not index
https://bugs.webkit.org/show_bug.cgi?id=223159

Reviewed by Mark Lam.

JSTests:

  • wasm.yaml:
  • wasm/threads-spec-tests/resources/wait-large.wast: Added.
  • wasm/threads-spec-tests/wait-large.wast.js: Added.

Source/JavaScriptCore:

While JS Atomics.wait's argument is "index" in the typed-array, argument of wasm wait and notify is address.
But we are handling it as an index incorrectly.
This patch uses it as an address.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

7:46 AM Changeset in webkit [274398] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

RenderLineBreak should stay inline level box even when display property says otherwise.
https://bugs.webkit.org/show_bug.cgi?id=223151
<rdar://74339837>

Reviewed by Antti Koivisto.

In this patch we make sure that the RenderLineBreak object always stays inline.

While the display property applies to all elements (https://drafts.csswg.org/css-display/#the-display-properties), the line
break element (<br>) seems to be an exception and all browsers handle <br style="display: block"> still as an inline level element.

Renderers can (and do see RenderSVGInline::updateFromStyle) diverge from this computed display value and say they always want to
be inline level boxes. This is ensured by RenderObject::setInline/isInline function pair.

Initially there were 2 setInline() calls:
One in RenderObject::setStyle(). It dealt with "block to inline" transition and
one call in RenderBox::setStyle().
In these functions we simply set the renderer's "inInline" bit to the computed style value (setInline(style.isDisplayInlineType)).
However derived renderer classes were able to override it by implementing the ::setStyle function and
explicitly set the "isInline" bit to true/false.

Over the years the second (RenderBox::setStyle) call transitioned to RenderBoxModelObject::updateFromStyle()
and the first (RenderObject::setStyle) call got moved to normalizeTreeAfterStyleChange() and their order got flipped.

Derived renderer classes can still explicitly set the "isInline" bit by implementing the ::updateFromStyle() function
(this is similar to what we had with ::setStyle).
However since the order is flipped, the "setInline()" call in normalizeTreeAfterStyleChange() now runs after
updateFromStyle() and it may re-reset the "isInline" bit back to the computed value (hence the FIXME).

The "setInline" call in normalizeTreeAfterStyleChange() is not needed anymore since the "isInline" bit is already updated by
the time we get here (as opposed to when it was initially introduced in RenderObject::setStyle, see above).

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::updateFromStyle):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

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:
Note: See TracTimeline for information about the timeline view.