Timeline



Oct 27, 2020:

9:35 PM Changeset in webkit [269095] by Alan Bujtas
  • 7 edits in trunk/LayoutTests

Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>

Reviewed by Antti Koivisto.

Missed these files in r268958.

  • accessibility/mac/text-marker-sentence-nav.html:
  • fast/dom/HTMLTextAreaElement/reset-textarea.html:
  • fast/text/basic/generic-family-reset.html:
  • platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/mac/fast/text/basic/generic-family-reset-expected.txt:
8:03 PM Changeset in webkit [269094] by achristensen@apple.com
  • 4 edits in trunk

Use _CFURLConnectionSetFrameworkStubs for SecItemShim instead of DYLD_INTERPOSE on Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218269
<rdar://problem/70491533>

Reviewed by Darin Adler.

Source/WebKit:

r171066 introduced the use of _CFURLConnectionSetFrameworkStubs on iOS for CFNetwork to be able
to get and set credentials as the UI process. This is also needed on Apple Silicon Macs.
We should eventually replace it with an even cleaner per-NSURLSession solution, but this is a step
in the right direction, and I verified manually that it fixes the radar.

Covered by an API test that used to fail on Apple Silicon Macs.

  • Shared/mac/SecItemShim.cpp:

(WebKit::initializeSecItemShim):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):

7:25 PM Changeset in webkit [269093] by Keith Rollin
  • 2 edits in trunk/Source/WebKitLegacy

Unexpected txt file: .../WebKitLegacy.framework/.../Sources.txt
https://bugs.webkit.org/show_bug.cgi?id=218268
<rdar://problem/70742539>

Reviewed by Tim Horton.

Sources.txt and SourcesCocoa.txt were added to the WebKitLegacy
project in https://trac.webkit.org/changeset/247401 as targets of the
WebKitLegacy target. This caused them to be treated as resources and
so were copied to the framework's Resources directory on a build.
These files don't need to be included in the build, and so are removed
from that target.

  • WebKitLegacy.xcodeproj/project.pbxproj:
7:09 PM Changeset in webkit [269092] by Wenson Hsieh
  • 11 edits in trunk

[Concurrent display lists] Add alternate versions of existing display list items that only contain inline data
https://bugs.webkit.org/show_bug.cgi?id=218259

Reviewed by Tim Horton.

Source/WebCore:

In preparation for supporting concurrent generation and consumption of display list items in the GPU process,
add new variants of some existing display list items that contain only "inline data" (i.e. no pointers).

No change in behavior; see below for more details.

  • platform/graphics/Path.cpp:

(WebCore::Path::isEmpty const):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::Path):

  • platform/graphics/Path.h:

Add a helper method to convert InlinePathData to Path.

(WebCore::Path::inlineData const):
(WebCore::Path::encode const):
(WebCore::Path::hasInlineData const):

Rename hasAnyInlineData to just hasInlineData, and make it public.

(WebCore::Path::releasePlatformPathIfPossible const): Deleted.

Additionally, remove releasePlatformPathIfPossible() altogether. This method was used to ensure that
StrokePath and FillPath wouldn't keep their Path's platform CGPathRefs around after applying the item in
the GPU process, which leads to accumulating a pool of unused CGPathRefs after playing back a display list
that contains many Path objects. However, since StrokeInlinePath and FillInlinePath now exist, the Path
object we create when applying those items is always going to be temporary, which allows us to avoid this
problem.

(WebCore::Path::hasAnyInlineData const): Deleted.

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::platformPath const):
(WebCore::Path::isNull const):

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

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
(WebCore::DisplayList::SetInlineFillGradient::gradient const):
(WebCore::DisplayList::SetInlineFillGradient::create):
(WebCore::DisplayList::SetInlineFillGradient::apply const):
(WebCore::DisplayList::SetInlineFillGradient::isInline):

Introduce a new SetInlineFillGradient item to represent setting the fill gradient to a gradient with at most 4
color stops, with only inline colors. This inline data is pulled out of the Gradient upon construction, and
later used to reconstruct a Gradient during playback.

(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::SetInlineFillColor::create):
(WebCore::DisplayList::SetInlineFillColor::apply const):

Change SetFillColor to SetInlineFillColor, and make it pass around an SRGB<uint8_t> instead of a Color,
since the latter could contain a pointer to an extended color.

(WebCore::DisplayList::SetInlineStrokeColor::create):
(WebCore::DisplayList::SetInlineStrokeColor::apply const):

Similar to the above, but when setting the stroke color to an inline (non-extended) color.

(WebCore::DisplayList::SetStrokeThickness::create):
(WebCore::DisplayList::SetStrokeThickness::apply const):
(WebCore::DisplayList::FillInlinePath::FillInlinePath):
(WebCore::DisplayList::FillInlinePath::apply const):
(WebCore::DisplayList::FillPath::apply const):
(WebCore::DisplayList::StrokePath::apply const):
(WebCore::DisplayList::StrokeInlinePath::localBounds const):
(WebCore::DisplayList::StrokeInlinePath::apply const):
(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath):

Add StrokeInlinePath and FillInlinePath, which contain InlinePathData instead of Path objects and only
construct path() objects when needed (i.e. when applying to a GraphicsContext).

(WebCore::DisplayList::SetFillColor::create): Deleted.
(WebCore::DisplayList::SetFillColor::apply const): Deleted.
(WebCore::DisplayList::SetStrokeState::create): Deleted.
(WebCore::DisplayList::SetStrokeState::apply const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetInlineFillGradient::create):
(WebCore::DisplayList::SetInlineFillGradient::encode const):
(WebCore::DisplayList::SetInlineFillGradient::decode):
(WebCore::DisplayList::SetInlineFillColor::color const):
(WebCore::DisplayList::SetInlineFillColor::SetInlineFillColor):
(WebCore::DisplayList::SetInlineFillColor::encode const):
(WebCore::DisplayList::SetInlineFillColor::decode):
(WebCore::DisplayList::SetInlineStrokeColor::color const):
(WebCore::DisplayList::SetInlineStrokeColor::SetInlineStrokeColor):
(WebCore::DisplayList::SetInlineStrokeColor::encode const):
(WebCore::DisplayList::SetInlineStrokeColor::decode):
(WebCore::DisplayList::SetStrokeThickness::thickness const):
(WebCore::DisplayList::SetStrokeThickness::SetStrokeThickness):
(WebCore::DisplayList::SetStrokeThickness::encode const):
(WebCore::DisplayList::SetStrokeThickness::decode):

Pull stroke thickness out into its own display list item.

(WebCore::DisplayList::FillInlinePath::create):
(WebCore::DisplayList::FillInlinePath::path const):
(WebCore::DisplayList::FillInlinePath::encode const):
(WebCore::DisplayList::FillInlinePath::decode):
(WebCore::DisplayList::StrokeInlinePath::create):
(WebCore::DisplayList::StrokeInlinePath::path const):
(WebCore::DisplayList::StrokeInlinePath::encode const):
(WebCore::DisplayList::StrokeInlinePath::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):
(WebCore::DisplayList::SetFillColor::color const): Deleted.
(WebCore::DisplayList::SetFillColor::SetFillColor): Deleted.
(WebCore::DisplayList::SetFillColor::encode const): Deleted.
(WebCore::DisplayList::SetFillColor::decode): Deleted.
(WebCore::DisplayList::SetStrokeState::color const): Deleted.
(WebCore::DisplayList::SetStrokeState::hasColor const): Deleted.
(WebCore::DisplayList::SetStrokeState::thickness const): Deleted.
(WebCore::DisplayList::SetStrokeState::hasThickness const): Deleted.
(WebCore::DisplayList::SetStrokeState::SetStrokeState): Deleted.
(WebCore::DisplayList::SetStrokeState::encode const): Deleted.
(WebCore::DisplayList::SetStrokeState::decode): Deleted.

Split SetStrokeState out into separate items tracking thickness and stroke color.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::containsOnlyInlineStateChanges):

Refactor this code so that it emits multiple display list items if multiple inline states change. Previously,
this was only done for simultaneous stroke color and stroke thickness changes (via the SetStrokeState item);
this was done to avoid creating more display list items than needed. However, once all inline display list items
are constructed directly in shared memory, there will be (almost) zero overhead for splitting this into
separate items.

(WebCore::DisplayList::Recorder::appendStateChangeItem):
(WebCore::DisplayList::Recorder::willAppendItem):
(WebCore::DisplayList::Recorder::fillPath):
(WebCore::DisplayList::Recorder::strokePath):
(WebCore::DisplayList::containsOnlyStrokeColorOrThicknessChange): Deleted.
(WebCore::DisplayList::containsOnlyFillColorChange): Deleted.
(WebCore::DisplayList::createStateChangeItem): Deleted.

Additionally refactor this method so that it is now a private method that appends to m_displayList, instead of
returning a display list item to be appended. This will become important in a future patch, which will replace
the existing append method with a templated version that takes the display list item type as a template
argument.

  • platform/graphics/displaylists/DisplayListRecorder.h:

LayoutTests:

Rebaseline an existing test.

  • displaylists/canvas-display-list-expected.txt:
6:49 PM Changeset in webkit [269091] by Russell Epstein
  • 5 edits in branches/safari-610-branch/Source

Apply patch. rdar://problem/70733375

6:42 PM Changeset in webkit [269090] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/WTF

Cherry-pick r269019. rdar://problem/70733412

Add extra validation to MetaAllocator::findAndRemoveFreeSpace
https://bugs.webkit.org/show_bug.cgi?id=217792
<rdar://problem/69433015>

Reviewed Saam Barati.

  • wtf/MetaAllocator.cpp: (WTF::MetaAllocator::findAndRemoveFreeSpace):

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

6:42 PM Changeset in webkit [269089] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/WTF

Cherry-pick r269017. rdar://problem/70733371

Assert that WTF::HashTable does not visit the same bucket twice
https://bugs.webkit.org/show_bug.cgi?id=217691
<rdar://problem/69887843>

Reviewed by Saam Barati.

  • wtf/HashTable.h: (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add):

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

6:42 PM Changeset in webkit [269088] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/JavaScriptCore

Cherry-pick r269016. rdar://problem/70733329

Validate addresses returned by LinkBuffer::locationOf
https://bugs.webkit.org/show_bug.cgi?id=217786
<rdar://problem/69887913>

Reviewed by Saam Barati.

  • assembler/LinkBuffer.h: (JSC::LinkBuffer::locationOf): (JSC::LinkBuffer::locationOfNearCall): (JSC::LinkBuffer::getLinkerAddress):

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

6:42 PM Changeset in webkit [269087] by Russell Epstein
  • 7 edits
    1 add in branches/safari-610-branch

Cherry-pick r268878. rdar://problem/70733353

UIClient isn't notified when page muted state changes
https://bugs.webkit.org/show_bug.cgi?id=218085
<rdar://problem/70462420>

Reviewed by Youenn Fablet.

Source/WebKit:

API test: WKWebView.MediaMuted

  • UIProcess/API/C/WKPage.cpp: (WKPageGetMediaState): reportedMediaCaptureState -> reportedMediaState.
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mediaCaptureState]): Ditto.
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateReportedMediaCaptureState): Only record current capture state in m_reportedMediaCaptureState. m_delayStopCapturingReporting isn't necessary, remove it.
  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::reportedMediaState const): Renamed from reportedMediaCaptureState to reflect what it returns. (WebKit::WebPageProxy::mediaStateFlags const): Deleted. (WebKit::WebPageProxy::reportedMediaCaptureState const): Deleted.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm: Added. (-[AudioStateObserver initWithWebView:]): (-[AudioStateObserver observeValueForKeyPath:ofObject:change:context:]): (-[AudioStateTestView setMuted:]): (TestWebKitAPI::TEST):

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

6:42 PM Changeset in webkit [269086] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r268537. rdar://problem/70733338

Crash in -[WKDateTimePicker setDateTimePickerToInitialValue]
https://bugs.webkit.org/show_bug.cgi?id=217763
<rdar://problem/68635008>

Reviewed by Wenson Hsieh.

Crash occurs due to the use of an autoreleased NSString in
setDateTimePickerToInitialValue. To fix, make the variable
a RetainPtr.

  • UIProcess/ios/forms/WKDateTimeInputControl.mm: (-[WKDateTimePicker setDateTimePickerToInitialValue]):

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

6:42 PM Changeset in webkit [269085] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/WTF

Cherry-pick r268135. rdar://problem/70733407

Add maximum depth check to RedBlackTree
https://bugs.webkit.org/show_bug.cgi?id=217249
<rdar://problem/69432957>

Reviewed by Saam Barati.

We limit all tree traversals to 128 levels deep. That's a very conservative upper bound that
would work for a tree that used all of the available address space.

  • wtf/RedBlackTree.h:

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

6:36 PM Changeset in webkit [269084] by Said Abou-Hallawa
  • 21 edits in trunk/Source

Make RenderingMode a bool enum and remove ShouldAccelerate
https://bugs.webkit.org/show_bug.cgi?id=218264

Reviewed by Tim Horton.

Source/WebCore:

Convert RenderingMode back to be a bool enum. ShouldAccelerate will be
removed so no conversion from RenderingMode to ShouldAccelerate and vice
versa is needed anymore. Only one instance of ImageBuffer::create() will
be handling creating the remote and display list ImageBuffers.

-- Remove unused createImageBuffer() method in HostWindow and ChromeClient.
-- Remove unused argument 'ShouldUseDisplayList' from createImageBuffer()

of HostWindow, ChromeClient and WebChromeClient.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

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

(WebCore::ImageBitmap::createPromise):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createPattern):

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • platform/HostWindow.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/RenderingMode.h:

Source/WebKit:

When creating a remote ImageBuffer in WebKit, all we need to know is whether
the backend is accelerated or not. RemoteImageBufferProxy has to be backed
by a DisplayList. RemoteImageBuffer has to own the real backend. Two enum
values for RenderingMode is sufficient for creating the remote ImageBuffer.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
6:00 PM Changeset in webkit [269083] by Dewei Zhu
  • 14 edits
    2 adds in trunk/Websites/perf.webkit.org

Refactor 'platforms' table to contain group information.
https://bugs.webkit.org/show_bug.cgi?id=193132

Reviewed by Ryosuke Niwa.

Group 'platforms' so that bisecting can use commit sets from other platforms which are in the same platform group.
This will help to enhance the bisecting capability to higher granularity.
Added admin page to manage platform groups.
Updated platform admin page to allow update platform group.
SQL query to update existing database:

BEGIN;
CREATE TABLE platform_groups (

platformgroup_id serial PRIMARY KEY,
platformgroup_name varchar(64) NOT NULL,
CONSTRAINT platform_group_name_must_be_unique UNIQUE (platformgroup_name));

ALTER TABLE platforms ADD COLUMN platform_group integer REFERENCES platform_groups DEFAULT NULL;
END;

  • init-database.sql: Added 'platform_group' column to 'platforms' table.

Added 'platform_groups' table.

  • migrate-database.sql: Updated migration script accordingly.
  • public/admin/platform-groups.php: Added a page to manage platform groups.
  • public/admin/platforms.php: Added support to update platform group in admin page.
  • public/include/admin-header.php: Added link to page that maneges platform groups.
  • public/include/manifest-generator.php: Added 'platformGroup' in manifest.
  • public/v3/index.html: Included 'platform-groups.js'.
  • public/v3/models/analysis-task.js:

(AnalysisTask.prototype.async.commitSetsFromTestGroupsAndMeasurementSet):
Included measurement commit sets from other platforms in the same platform group.
(AnalysisTask.prototype._commitSetForOtherPlatformsInSameGroup):
Helper function to find measurment commit set for other platforms in same platform group.

  • public/v3/models/manifest.js: Added step to build 'PlatformGroup' instances.
  • public/v3/models/platform-group.js: Added 'PlatformGroup' to represent entries in 'platform_groups' table.

(PlatformGroup):
(PlatformGroup.prototype.addPlatform):
(PlatformGroup.prototype.platforms):

  • public/v3/models/platform.js: Added itself to 'PlatformGroup' in constructor if it belongs

to a group.
(Platform.prototype.group): Return the platform group of current platform.

  • public/v3/models/time-series.js: Added helper function to show view between a given time range.

(TimeSeries.prototype.viewBetweenTime):

  • server-tests/api-manifest-tests.js: Updated unit test to also test platform group initialization.
  • tools/js/database.js: Added prefix for 'platform_groups'.
  • tools/js/v3-models.js: Added import for platform group.
5:10 PM Changeset in webkit [269082] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Adopt the UIPointerInteraction API
https://bugs.webkit.org/show_bug.cgi?id=218266
<rdar://problem/70732850>

Reviewed by Wenson Hsieh.

Source/WebKit:

No new tests, just moving from deprecated SPI to API.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView setUpPointerInteraction]):
(-[WKContentView _pointerInteraction:regionForRequest:defaultRegion:completion:]):
(-[WKContentView pointerRegionForPositionInformation:point:]):
(-[WKContentView pointerInteraction:styleForRegion:]):
(-[WKContentView setUpCursorInteraction]): Deleted.
(-[WKContentView _cursorInteraction:regionForLocation:defaultRegion:completion:]): Deleted.
(-[WKContentView cursorRegionForPositionInformation:point:]): Deleted.
(-[WKContentView cursorInteraction:styleForRegion:modifiers:]): Deleted.

Source/WTF:

  • wtf/PlatformHave.h:
5:06 PM Changeset in webkit [269081] by Chris Dumez
  • 8 edits
    1 add in trunk

AudioBuffer.getChannelData(x) should keep returning the same JS wrapper for a given channel
https://bugs.webkit.org/show_bug.cgi?id=218265

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now fully passing. I have verified that this test passes in Chrome and Firefox
as well.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData-expected.txt:

Source/WebCore:

AudioBuffer.getChannelData(x) should keep returning the same JS wrapper for a given channel.
This is the behavior of Chrome & Firefox and is covered by Web-Platform-Tests.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::getChannelData):
(WebCore::AudioBuffer::visitChannelWrappers):

  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/AudioBuffer.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
4:50 PM Changeset in webkit [269080] by weinig@apple.com
  • 2 edits in trunk/Tools

DumpRenderTree spams stderr with CFNetwork warnings about null diskcache path
https://bugs.webkit.org/show_bug.cgi?id=218241

Reviewed by Darin Adler.

Remove attempt at using a memory only shared URL cache, as subsequent calls
to [WebPreferences setCacheModel:] cause a disk cache to be used anyway. All
this really seems to do is cause CFNetwork to log to stderr. It's unlikely
this optimization is worthwhile anyway these days, as avoiding touching the
filesystem is less necessary.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(prepareConsistentTestingEnvironment):

4:23 PM Changeset in webkit [269079] by clopez@igalia.com
  • 26 edits in trunk/LayoutTests

[GTK][WPE] Rebaseline tests after r269044 and r269036
https://bugs.webkit.org/show_bug.cgi?id=218151

Unreviewed gardening.

  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/gtk/fast/forms/option-index-expected.txt:
  • platform/gtk/fast/text/basic/generic-family-reset-expected.txt:
  • platform/gtk/fast/xsl/xslt-enc-cyr-expected.txt:
  • platform/gtk/fast/xsl/xslt-enc-expected.txt:
  • platform/gtk/fast/xsl/xslt-enc16-expected.txt:
  • platform/gtk/fast/xsl/xslt-enc16to16-expected.txt:
  • platform/gtk/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/gtk/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/gtk/inspector/timeline/line-column-expected.txt:
  • platform/gtk/svg/wicd/test-rightsizing-b-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/text/basic/generic-family-reset-expected.txt:
  • platform/wpe/fast/xsl/xslt-enc-cyr-expected.txt:
  • platform/wpe/fast/xsl/xslt-enc-expected.txt:
  • platform/wpe/fast/xsl/xslt-enc16-expected.txt:
  • platform/wpe/fast/xsl/xslt-enc16to16-expected.txt:
  • platform/wpe/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/wpe/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/wpe/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/wpe/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/wpe/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
  • platform/wpe/svg/wicd/test-rightsizing-b-expected.txt:
3:22 PM Changeset in webkit [269078] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Remove leftover DiagnosticLoggingKey after r268458
https://bugs.webkit.org/show_bug.cgi?id=218263
<rdar://problem/70738034>

Reviewed by Darin Adler.

Remove the leftover DiagnosticKey for ResourceLoadStatistics telemetry now that the
actual data is no longer generated.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey): Deleted.

  • page/DiagnosticLoggingKeys.h:
3:21 PM Changeset in webkit [269077] by jer.noble@apple.com
  • 5 edits
    2 adds in trunk

[Mac] Audio and Video element creation up to 300x slower than other browsers
https://bugs.webkit.org/show_bug.cgi?id=218206
<rdar://problem/62451019>

Reviewed by Eric Carlson.

PerformanceTests:

  • Media/AudioElementCreation.html: Added.
  • Media/VideoElementCreation.html: Added.

Source/WebCore:

Tests: PerformanceTests/Media/AudioElementCreation.html

PerformanceTests/Media/VideoElementCreation.html

Currently, a large percent of the element creation code occurrs as a result of adding its
session to PlatformMediaSessionManager, which forces iterating over all extant sessions and
then to set various properties of the audio hardware in response. This patch addresses the
bulk of those expensive calls, but more performance optimizations are available to further
reduce media element creation costs.

When an <audio> element is created, we set the preferred audio output buffer size to a large
value for performance reasons. However, there's no need to repeatedly call into CoreAudio if
the buffer size is already set to that same high value. Store the result of setting the
preferred buffer size, and also add a property change listener to detect other callers
modifying that same value, so that all set operations with identical sizes become no-ops,
and all queries just return cached values.

When any media element is created, the entire list of extant sessions is iterated and
properties on each are queried. Rather than do these inside the same run-loop, use a
TaskQueue to enqueue a task to query the list of created elements during the next run-loop.

Between these two optimization, the runtime cost of creating 1000 audio elements is reduced
(on this engineer's machine) from 2s to 40ms.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::sessionStateChanged):
(WebCore::PlatformMediaSessionManager::forEachDocumentSession):
(WebCore::PlatformMediaSessionManager::forEachSession):
(WebCore::PlatformMediaSessionManager::anyOfSessions const):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSessionPrivate::addSampleRateObserverIfNeeded):
(WebCore::AudioSessionPrivate::handleSampleRateChange):
(WebCore::AudioSessionPrivate::addBufferSizeObserverIfNeeded):
(WebCore::AudioSessionPrivate::handleBufferSizeChange):
(WebCore::AudioSession::sampleRate const):
(WebCore::AudioSession::bufferSize const):
(WebCore::AudioSession::preferredBufferSize const):
(WebCore::AudioSession::setPreferredBufferSize):

2:54 PM Changeset in webkit [269076] by Keith Rollin
  • 2 edits in trunk

Fix "usage" message when invoking ar -V
https://bugs.webkit.org/show_bug.cgi?id=218255
<rdar://problem/70735674>

Reviewed by Fujii Hironori.

The Mac/BSD version of ar does not support the -V flag. This flag is
used unconditionally in OptionsCommon.cmake when trying to determine
if the installed ar supports the thinning of archives, leading to a
"usage" message being emitted on macOS.

Avoid this message by capturing the error-output. Examine the output
to see if it's a "usage" message. If so, then treat the ar as one
that does not support thinning. Any other error-output is printed as a
warning. If there is no error-output, continue processing as normal.

  • Source/cmake/OptionsCommon.cmake:
2:49 PM Changeset in webkit [269075] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: truncate data URLs in the Resources sidebar and Headers panel
https://bugs.webkit.org/show_bug.cgi?id=218262

Reviewed by Darin Adler.

  • UserInterface/Base/Main.js:

(WI.createResourceLink):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._refreshURL):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._refreshSummarySection):

2:48 PM Changeset in webkit [269074] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Search: don't steal focus from the search field when shown
https://bugs.webkit.org/show_bug.cgi?id=218260

Reviewed by Brian Burg.

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.focusSearchField):
(WI.SearchSidebarPanel.prototype.performSearch.createTreeElementForMatchObject):

2:46 PM Changeset in webkit [269073] by Chris Dumez
  • 21 edits in trunk

[GPUProcess] Use async IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination
https://bugs.webkit.org/show_bug.cgi?id=218251

Reviewed by Geoffrey Garen.

Source/WebCore:

DefaultAudioDestinationNode::resume() / suspend() were already asynchronous operations. However, they expected
AudioDestination::start() / stop() to finish synchronously and would simply call their completion handler
asynchronously. Instead, we now make AudioDestination::start() / stop() asynchronous as well. This allows us
to use asynchronous IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination.

As a result of this change, I had to make AudioDestinationNode::startRendering() asynchronous as well since
it uses AudioDestination::start() internally.

As an improvement, the completion handler to AudioDestinationNode's startRendering() / resume() / suspend()
is now provided with an exception in cases where they fail. This allows the call sites to properly deal
with such errors instead of assuming things were successsful.

No new tests, no Web-facing beahvior change.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):
(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::mayResumePlayback):
(WebCore::AudioContext::suspendPlayback):

  • Modules/webaudio/AudioDestinationNode.h:

(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::startRendering):
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

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

(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::resumeOfflineRendering):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • platform/audio/AudioDestination.h:

(WebCore::AudioDestination::start):
(WebCore::AudioDestination::stop):

  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::start):
(WebCore::AudioDestinationCocoa::stop):

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::start):
(WebCore::AudioDestinationGStreamer::stop):

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:
  • platform/mock/MockAudioDestinationCocoa.cpp:

(WebCore::MockAudioDestinationCocoa::start):
(WebCore::MockAudioDestinationCocoa::stop):

  • platform/mock/MockAudioDestinationCocoa.h:

Source/WebKit:

Use async IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination.

  • GPUProcess/media/RemoteAudioDestinationManager.messages.in:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::start):
(WebKit::RemoteAudioDestinationProxy::stop):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:

LayoutTests:

  • webaudio/audiocontext-state.html:

Update existing test which incorrectly expected the AudioContext's state to become "running" synchronously
after connecting a source node. The state switches to "running" asynchronously now. It is up to the user
agent if and when the audio context starts autoplaying so this should be an acceptable behavior change.

2:40 PM Changeset in webkit [269072] by Fujii Hironori
  • 8 edits in trunk

[TextureMapper][GTK] Test compositing/clipping/border-radius-stacking-context-clip.html is failing
https://bugs.webkit.org/show_bug.cgi?id=214868

Reviewed by Carlos Garcia Campos.

Source/WebCore:

If a replica layer has m_state.pos, m_layerTransforms.combined
should be translated by them.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeTransformsRecursive):

  • platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unmarked compositing/clipping/border-radius-stacking-context-clip.html.
  • platform/gtk/compositing/reflections/nested-reflection-transformed-expected.png: Updated.
  • platform/gtk/compositing/reflections/nested-reflection-transformed2-expected.png: Updated.
  • platform/gtk/compositing/reflections/reflection-positioning2-expected.png: Updated.
2:38 PM Changeset in webkit [269071] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r266669): Uncaught Exception: TypeError: node.nodeType is not a function. (In 'node.nodeType()', 'node.nodeType' is undefined)
https://bugs.webkit.org/show_bug.cgi?id=218254

Reviewed by Joseph Pecoraro.

r266669 changed WI.DOMBreakpoint to use WI.DOMNode instead of DOM.NodeId, meaning that
WI.DOMTreeContentView.prototype._updateBreakpointStatus now expects a WI.DOMNode.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype._domTreeElementAdded):

2:04 PM Changeset in webkit [269070] by commit-queue@webkit.org
  • 10 edits
    2 moves
    2 adds in trunk

Overflow scrollIntoView wrong with borders
https://bugs.webkit.org/show_bug.cgi?id=152660

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-10-27
Reviewed by Simon Fraser.

Source/WebCore:

Tests: fast/overflow/scrollIntoView-nested-in-area-with-border.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible): Offset the exposure rect by the border
so that it is relative to the content rectangle.

LayoutTests:

Added a new test for this fix and renamed a similar test to follow a
standard naming convention. This will make the two tests easier to find.

  • fast/overflow/scrollIntoView-nested-in-area-with-border-expected.html: Added.
  • fast/overflow/scrollIntoView-nested-in-area-with-border.html: Added.
  • fast/overflow/scrollIntoView-overflow-hidden-expected.html: Renamed from LayoutTests/fast/overflow/overflow-hidden-scroll-into-view-expected.html.
  • fast/overflow/scrollIntoView-overflow-hidden.html: Renamed from LayoutTests/fast/overflow/overflow-hidden-scroll-into-view.html.
  • fast/spatial-navigation/snav-div-overflow-scrol-hidden-expected.txt: Updated expectation.
  • platform/ios/TestExpectations: Updated test name in expectations.
  • platform/mac-wk2/editing/input/caret-at-the-edge-of-contenteditable-expected.txt: Updated expectation.
  • platform/mac-wk2/editing/input/reveal-caret-of-multiline-contenteditable-expected.txt: Ditto.
  • platform/mac/editing/input/caret-at-the-edge-of-contenteditable-expected.txt: Ditto.
  • platform/mac/editing/input/reveal-caret-of-multiline-contenteditable-expected.txt: Ditto.
  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt: Ditto.
1:59 PM Changeset in webkit [269069] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Followup for r269058: Update bindings reference files

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
1:54 PM Changeset in webkit [269068] by BJ Burg
  • 25 edits
    4 copies
    1 add in trunk

[Cocoa] Introduce _WKInspectorConfiguration for customizing local and remote Web Inspectors
https://bugs.webkit.org/show_bug.cgi?id=217896
<rdar://problem/70355910>

Reviewed by Devin Rousso.

Source/WebKit:

Introduce _WKInspectorConfiguration for customizing the behavior of Web Inspector instances.
The initial customization is to allow for custom WKURLSchemeHandlers to be used by Web Inspector's
WebView to load resources from client-controlled locations. This can be used to implement loading
of extension resources using a custom scheme such as web-extension://.

Scheme handlers need to be registered at WebView creation time via WKWebViewConfiguration. In
order to configure a inspector page summoned from within WebKit (i.e., Inspect Element context menu item),
we need to add a method to the UI delegate to get a configuration when the page is being created.

This configuration object is used in two different SPI (local and remote cases):

  • As part of WKUIDelegatePrivate, to retrieve a _WKInspectorConfiguration given a _WKInspector.
  • As an argument to the _WKRemoteWebInspectorViewController initializer. It's used later as needed.

New API test: WKInspectorDelegate.InspectorConfiguration.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Add new files.

  • UIProcess/API/APIInspectorConfiguration.h: Added.
  • UIProcess/API/APIInspectorConfiguration.cpp: Added.
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.h: Added.
  • UIProcess/API/Cocoa/_WKInspectorConfigurationInternal.h: Added.
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.mm: Added.

(-[_WKInspectorConfiguration init]):
(-[_WKInspectorConfiguration dealloc]):
(-[_WKInspectorConfiguration _apiObject]):
(-[_WKInspectorConfiguration setURLSchemeHandler:forURLScheme:]):
(-[_WKInspectorConfiguration applyToWebViewConfiguration:]):
(-[_WKInspectorConfiguration copyWithZone:]):
Create _WKInspectorConfiguration and add a method to register WKURLSchemeHandlers.

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

(API::Object::newObject):
Add new API object types. Add missing InspectorExtension.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::configurationForLocalInspector):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::configurationForLocalInspector):
Add new client/delegate method to fetch an inspector configuration as needed.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController initWithConfiguration:]): Renamed from -init.
(-[_WKRemoteWebInspectorViewController init]): Deleted.
(-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]):
(-[_WKRemoteWebInspectorViewController configurationForDebuggable:]):
(-[_WKRemoteWebInspectorViewController _setDiagnosticLoggingDelegate:]):
Store a _WKInspectorConfiguration and provide it when asked by RemoteWebInspectorProxy.

  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::load):
Store m_debuggableInfo before creating the page and window. It's used from inside
platformCreateFrontendPageAndWindow to pass as an argument to the delegate method.

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
Obtain a configuration and use it to initialize the WKInspectorViewController.

  • UIProcess/Inspector/mac/WKInspectorViewController.h:
  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController initWithConfiguration:inspectedPage:]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController webViewConfiguration]): Renamed from -configuration.
(-[WKInspectorViewController initWithInspectedPage:]): Deleted.
(-[WKInspectorViewController configuration]): Deleted.
Apply the URL scheme handlers registered in the _WKInspectorConfiguration to the
WKWebViewConfiguration.

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

Stub out RemoteWebInspectorProxyClient::configurationForRemoteInspector().

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

Fix build problems caused by repartitioning of unified sources.

Tools:

Add an API test for _WKInspectorConfiguration. Disabled for now, will
be turned back on when more web extensions API has landed.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[SimpleURLSchemeHandler webView:startURLSchemeTask:]):
(-[SimpleURLSchemeHandler webView:stopURLSchemeTask:]):
(-[UIDelegate _webView:configurationForLocalInspector:]):
(-[UIDelegate _webView:didAttachLocalInspector:]):
(TEST):

1:22 PM Changeset in webkit [269067] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r265515): fast/events/touch/ios/touch-events-with-modifiers.html is a frequent failure
https://bugs.webkit.org/show_bug.cgi?id=218249
<rdar://problem/67079948>

Reviewed by Wenson Hsieh.

  • fast/events/touch/ios/resources/finish-test-after-scrolling-with-touch-event-handlers.html:

Don't notifyDone until both the scroll event happen and the event stream is done being dispatched.
Otherwise, we can move on and then send part of our event stream to the next page.

12:53 PM Changeset in webkit [269066] by Fujii Hironori
  • 4 edits in trunk/Source/WebKitLegacy/win

[WinCairo][WK1] Implement WebView::layerTreeAsString
https://bugs.webkit.org/show_bug.cgi?id=218217

Reviewed by Don Olmstead.

The menu item "Show Layer Tree" didn't work in WinCairo WebKit1
MiniBrowser.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::layerTreeAsString const): Added.

  • WebCoreSupport/AcceleratedCompositingContext.h:
  • WebView.cpp:

(WebView::layerTreeAsString): Added code for USE(TEXTURE_MAPPER_GL).

12:53 PM Changeset in webkit [269065] by commit-queue@webkit.org
  • 20 edits in trunk/Source

[GPU Process]: Implement DisplayList::DrawImageBuffer item
https://bugs.webkit.org/show_bug.cgi?id=217566

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-27
Reviewed by Simon Fraser.

Source/WebCore:

Add the DrawImageBuffer DisplayList item. It will be used only for GPU
rendering. The renderingResourceIdentifier of the source ImageBuffer
will be recorded. For details on how drawing an ImageBuffer to another
ImageBuffer works see the WebKit ChangeLog.

  • platform/graphics/GraphicsContext.cpp:

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

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

(WebCore::GraphicsContextImplCairo::drawImageBuffer):

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

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::DrawImageBuffer::DrawImageBuffer):
(WebCore::DisplayList::DrawImageBuffer::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawImageBuffer::create):
(WebCore::DisplayList::DrawImageBuffer::renderingResourceIdentifier const):
(WebCore::DisplayList::DrawImageBuffer::source const):
(WebCore::DisplayList::DrawImageBuffer::destinationRect const):
(WebCore::DisplayList::DrawImageBuffer::options const):
(WebCore::DisplayList::DrawImageBuffer::encode const):
(WebCore::DisplayList::DrawImageBuffer::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

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

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::lockRemoteImageBuffer):

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

(Nicosia::CairoOperationRecorder::drawImageBuffer):

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

Source/WebKit:

The sequence in the Web Process is the following:

-- GraphicsContext::drawImageBuffer() uses DisplayList::Recorder to check

whether it is appropriate to create a DrawImageBuffer item or not.

-- DisplayList::Recorder::drawImageBuffer() uses the delegate to see if

the ImageBuffer is remote or not and whether it can be locked till
replaying back the DisplayList in the GPU side.

-- RemoteImageBufferProxy inherits DisplayList::Recorder::Delegate. So

its lockRemoteImageBuffer() is called.

-- If the ImageBuffer can be locked, a DrawImageBufferItem is created with

the ImageBuffer::renderingResourceIdentifier().

The sequence in the GPU Process is the following:

-- When replaying back the DisplayList, DisplayList::Replayer will call

its delegate to check if it wants to apply the DrawImageBuffer.

-- Because RemoteImageBuffer inherits DisplayList::Replayer::Delegate,

RemoteImageBuffer::apply() will be called.

-- RemoteImageBuffer will call RemoteRenderingBackend::applyResourceItem()

which will check whether the item's renderingResourceIdentifier is one
of the ImageBuffers in its RemoteResourceCache or not.

-- If there is a cached ImageBuffer, RemoteRenderingBackend::applyResourceItem()

will draw it in the GraphicsContext.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::apply): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyResourceItem):
(WebKit::RemoteRenderingBackend::applyMediaItem):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cachedImageBuffer):

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

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

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
12:40 PM Changeset in webkit [269064] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

showRenderTree should output line vertical geometry.
https://bugs.webkit.org/show_bug.cgi?id=218252

Reviewed by Antti Koivisto.

In addition to the root inlinebox geometry, we should also print the line vertical geometry as they
could be very different in certain cases.

<div style="line-height: 100px;">

text
<img src="broken" style="width: 50px; height: 50px;">

</div>

would produce something these:

Line: (top: 5 bottom: 59) with leading (top: 0 bottom: 100)
RootInlineBox at (0,41) size 51.76x18 (0x137faef70) renderer->(0x137faec00)

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::outputLineBox const):

  • rendering/RootInlineBox.h:
12:33 PM Changeset in webkit [269063] by Keith Rollin
  • 2 edits in trunk/Tools

Update generate_xcfilelists to accommodate paths with symlinks
https://bugs.webkit.org/show_bug.cgi?id=218223
<rdar://problem/70709808>

Reviewed by Timothy Hatcher.

There are cases where file system paths are compared against each
other, and where the comparisons are failing because one or the other
(or both) make use of symlinks, causing paths that refer to the same
location to fail to compare correctly. Address this by resolving path
components that are symlinks.

  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(BaseGenerator):
(BaseGenerator._unexpand):
(BaseGenerator._unexpand._expand_if_abs):
(BaseGenerator._unexpand._variations):
(BaseGenerator._unexpand._variations._gen):
(BaseGenerator._unexpand._try_unexpand):
(BaseGenerator._unexpand._do_unexpand):

12:17 PM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
12:17 PM Changeset in webkit [269062] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.30

Merge r269055 - [GStreamer] Bad handling of audio files in the ImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=218239

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

Source/WebCore:

The final main thread notification needs to be blocking otherwise the decoder might get
disposed of too early.

Test: fast/images/animated-image-mp3-crash.html

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::pushEncodedData):

LayoutTests:

  • fast/images/animated-image-mp3-crash-expected.txt: Added.
  • fast/images/animated-image-mp3-crash.html: Added.
12:07 PM Changeset in webkit [269061] by Russell Epstein
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.3.6

12:00 PM Changeset in webkit [269060] by Russell Epstein
  • 1 copy in tags/Safari-610.3.5

Tag Safari-610.3.5.

11:51 AM Changeset in webkit [269059] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Accessory bar next/previous buttons do not work on inputs in shadow roots
https://bugs.webkit.org/show_bug.cgi?id=203292

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-10-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

Tests: fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html

  • page/FocusController.cpp:

(WebCore::FocusController::nextFocusableElement):
(WebCore::FocusController::previousFocusableElement):

LayoutTests:

Introduced testcases only need to run with iOS family.

  • fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree-expected.txt: Added.
  • fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html: Added.
  • TestExpectations:
  • platform/ios/TestExpectations: Avoid to run introduced tests because we don't have to run them and tests are crashed on these platforms.
  • resources/ui-helper.js:

(window.UIHelper.moveToNextByKeyboardAccessoryBar):
(window.UIHelper.moveToPrevByKeyboardAccessoryBar):
(window.UIHelper):

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

Follow-up for: REGRESSION(r267727): Warning spam from JSC_DECLARE_CUSTOM_GETTER
https://bugs.webkit.org/show_bug.cgi?id=217585
<rdar://problem/70376946>

Unreviewed follow-up to r268587. I missed one spot that needs to use
JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL. This is causing warnings in various
generated bindings files.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-27

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

11:38 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
11:25 AM Changeset in webkit [269057] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] Don't disable MSE build support on Debian and Ubuntu LTS bots
https://bugs.webkit.org/show_bug.cgi?id=218247

Reviewed by Philippe Normand.

The version of gstreamer on this bots (Ubuntu-18.04 and Debian 10)
is now newer enough (1.14) to enable MSE support.

  • CISupport/build.webkit.org-config/config.json:
10:59 AM Changeset in webkit [269056] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add support for vertical-align: -webkit-baseline-middle
https://bugs.webkit.org/show_bug.cgi?id=218243

Reviewed by Antti Koivisto.

"-webkit-baseline-middle: The center of the element is aligned with the baseline of the text."
https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html
This patch makes LayoutTests/dom/html/level2/html/ cases not assert.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):

10:58 AM Changeset in webkit [269055] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[GStreamer] Bad handling of audio files in the ImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=218239

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

Source/WebCore:

The final main thread notification needs to be blocking otherwise the decoder might get
disposed of too early.

Test: fast/images/animated-image-mp3-crash.html

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::pushEncodedData):

LayoutTests:

  • fast/images/animated-image-mp3-crash-expected.txt: Added.
  • fast/images/animated-image-mp3-crash.html: Added.
10:54 AM Changeset in webkit [269054] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

-Wparentheses warning in OptionsList.h
https://bugs.webkit.org/show_bug.cgi?id=218242

Unreviewed, fix warning by adding extra parentheses.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-27

  • runtime/OptionsList.h:
10:43 AM Changeset in webkit [269053] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

Fix build for non-unified builds after r269041.
https://bugs.webkit.org/show_bug.cgi?id=218233

Unreviewed build fix.

Add missing include that can cause a build breakage for non-unified
builds or for unified builds depending on how the included files
are listed-

  • rendering/RenderBlockFlow.cpp:
10:38 AM Changeset in webkit [269052] by aakash_jain@apple.com
  • 16 edits
    1 copy
    1 add in trunk/Tools

Rename BuildSlaveSupport to CISupport
https://bugs.webkit.org/show_bug.cgi?id=218026

Reviewed by Jonathan Bedard.

  • CISupport: Copied from Tools/BuildSlaveSupport.
  • CISupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:
  • CISupport/build.webkit.org-config/steps.py:
  • CISupport/build.webkit.org-config/wkbuild.py:
  • CISupport/build.webkit.org-config/wkbuild_unittest.py:
  • CISupport/ews-app/ews/views/statusbubble.py:
  • CISupport/ews-build/steps.py:
  • CISupport/ews-build/steps_unittest.py:
  • BuildSlaveSupport: Replaced.
  • EWSTools/Start-Queue.ps1:
  • Scripts/bisect-builds:
  • Scripts/run-dashboard-tests:
  • Scripts/webkitpy/common/config/watchlist:
  • Scripts/webkitpy/layout_tests/views/buildbot_results.py:
  • Scripts/webkitpy/style/checker_unittest.py:
  • Scripts/webkitpy/tool/servers/gardeningserver.py:
  • .gitattributes:
10:35 AM Changeset in webkit [269051] by commit-queue@webkit.org
  • 5 edits in trunk

[ iOS wk2 ] webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=209139

Patch by Kenneth Russell <kbr@chromium.org> on 2020-10-27
Reviewed by Dean Jackson.

Source/WebCore:

On ANGLE backend, use wipeAlphaChannelFromPixels on iOS family,
similarly to macOS, when reading back from alpha:false WebGL
contexts. On both backends, apply this only for UNSIGNED_BYTE
readbacks.

Covered by existing WebGL conformance tests.

  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixels):

LayoutTests:

Remove iOS suppression for
webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html.

  • platform/ios-wk2/TestExpectations:
10:32 AM Changeset in webkit [269050] by Noam Rosenthal
  • 4 edits
    2 adds in trunk

compositing/iframes/layout-on-compositing-change.html can assert under ContentfulPaintChecker
https://bugs.webkit.org/show_bug.cgi?id=218204
<rdar://problem/70694218>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/paint-timing/resources/subframe-painting.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html:
  • web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe-expected.txt:

Added a new test to assert that painting inside iframes is not automatically considered by the parent.
Upstreamed: https://github.com/web-platform-tests/wpt/pull/26303

Source/WebCore:

Paints from child iframes should not be considered when checking for first-contentful-paint.
The previous w3c test allegedly checking for it was actualy testing something else.

Tests: LayoutTests/imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html.

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paint):

Avoid iframe painting if we're in contentfulness detection fake-paint.

10:30 AM Changeset in webkit [269049] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use NSURLSessionAuthChallengeRejectProtectionSpace if WKNavigationDelegate didReceiveAuthenticationChallenge is not implemented
https://bugs.webkit.org/show_bug.cgi?id=218008

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-27
Reviewed by Darin Adler.

This is documented in WKNavigationDelegate.h, and the behavior is basically identical.
The difference is if there is a challenge with multiple protection spaces and a delegate that implements didReceiveAuthenticationChallenge
is attached between the delegate callbacks, it will receive the second callback. This is unlikely and next to impossible to test, but
out of principle we should behave like we have documented that we do.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):

10:25 AM Changeset in webkit [269048] by weinig@apple.com
  • 5 edits in trunk

Rename WKPreferencesSet*ValueForKey SPI to WKPreferencesSet*ValueForKeyForTesting
https://bugs.webkit.org/show_bug.cgi?id=218240

Reviewed by Darin Adler.

Source/WebKit:

Addresses feedback from initial naming to make it clear what they are used
for and for consistency with WebKitLegacy.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetBoolValueForKeyForTesting):
(WKPreferencesSetDoubleValueForKeyForTesting):
(WKPreferencesSetUInt32ValueForKeyForTesting):
(WKPreferencesSetStringValueForKeyForTesting):
(WKPreferencesSetBoolValueForKey): Deleted.
(WKPreferencesSetDoubleValueForKey): Deleted.
(WKPreferencesSetUInt32ValueForKey): Deleted.
(WKPreferencesSetStringValueForKey): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Update for renamed function names.

10:09 AM Changeset in webkit [269047] by Chris Dumez
  • 3 edits
    4 adds in trunk

Calling AudioContext.suspend() / resume() while already suspended / running should resolve the promise right away
https://bugs.webkit.org/show_bug.cgi?id=218236

Reviewed by Sam Weinig.

Source/WebCore:

Calling AudioContext.suspend() / resume() while already suspended / running should resolve the promise right
away. This is the behavior in the specification [1][2] and matches Blink / Gecko.

[1] https://www.w3.org/TR/webaudio/#dom-audiocontext-suspend
[2] https://www.w3.org/TR/webaudio/#dom-audiocontext-resume

Tests: webaudio/resume-context-while-running.html

webaudio/suspend-context-while-suspended.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):

LayoutTests:

Add layout test coverage.

  • webaudio/resume-context-while-running-expected.txt: Added.
  • webaudio/resume-context-while-running.html: Added.
  • webaudio/suspend-context-while-suspended-expected.txt: Added.
  • webaudio/suspend-context-while-suspended.html: Added.
10:08 AM Changeset in webkit [269046] by Chris Lord
  • 4 edits in trunk

[GLIB] imported/w3c/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=217986

Reviewed by Simon Fraser.

Fix race condition caused by use of OffscreenCanvas::scriptExecutionContext() on main thread.
Instead of passing a reference to the OffscreenCanvas object when dealing with the placeholder
canvas on the main thread, encapsulate the necessary data in a separate, ThreadSafeRefCounted
object and pass that instead, negating the need to call back to the Worker thread to release
the reference.

Covered by existing tests.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::create):
(WebCore::OffscreenCanvas::OffscreenCanvas):
(WebCore::OffscreenCanvas::detach):
(WebCore::OffscreenCanvas::setPlaceholderCanvas):
(WebCore::OffscreenCanvas::pushBufferToPlaceholder):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):

  • html/OffscreenCanvas.h:
9:58 AM Changeset in webkit [269045] by BJ Burg
  • 6 edits in trunk

Web Inspector: add ENABLE(INSPECTOR_EXTENSIONS) to feature defines
https://bugs.webkit.org/show_bug.cgi?id=218237
<rdar://problem/69968787>

Reviewed by Antti Koivisto.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Add ENABLE(INSPECTOR_EXTENSIONS), which is only on for the Cocoa macOS port.

Source/WTF:

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

Add ENABLE(INSPECTOR_EXTENSIONS), which is only on for the Cocoa macOS port.

9:51 AM Changeset in webkit [269044] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Web Inspector: console command line API should be exposed to breakpoint conditions/actions
https://bugs.webkit.org/show_bug.cgi?id=218141

Unreviewed test gardening.

  • inspector/timeline/line-column-expected.txt: Rebaseline the test after r269023.
9:15 AM Changeset in webkit [269043] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed, GStreamer gardening

  • platform/glib/TestExpectations: Marked

media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html
as [ Timeout ].

8:57 AM Changeset in webkit [269042] by clopez@igalia.com
  • 3 edits in trunk/Tools

[GTK] Move step for generating the JSC bundle back to the release build bot
https://bugs.webkit.org/show_bug.cgi?id=218207

Reviewed by Adrian Perez de Castro.

On r266208 I moved the step to generate the JSC bundle from the default
GTK release build bot to the new bots for Ubuntu-20.04 packaging.

But it seems the ICU version of Ubuntu-20.04 (66) is not new enough for
testing some Intl features like Intl.ListFormat as JS Intl feature behaviors
are derived from ICU versions.

Move back this step to the GTK release build bot that runs with flatpak,
so it bundles the version of ICU from the FreeDesktop SDK (67 currently)

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
8:57 AM Changeset in webkit [269041] by Antti Koivisto
  • 13 edits in trunk/Source/WebCore

[LFC][Integration] Use iterator for next/previousLinePosition
https://bugs.webkit.org/show_bug.cgi?id=218233

Reviewed by Zalan Bujtas.

Add the required capabilities to the line iterator and also use them in a few other places.

  • editing/VisibleUnits.cpp:

(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::containingBlock const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::firstLineFor):
(WebCore::LayoutIntegration::lastLineFor):
(WebCore::LayoutIntegration::LineIterator::closestRunForPoint):
(WebCore::LayoutIntegration::LineIterator::closestRunForLogicalLeftPosition):
(WebCore::LayoutIntegration::PathLine::blockDirectionPointInLine const):

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::LineIterator::LineIterator):
(WebCore::LayoutIntegration::PathLine::y const):
(WebCore::LayoutIntegration::PathLine::logicalHeight const):
(WebCore::LayoutIntegration::PathLine::isHorizontal const):
(WebCore::LayoutIntegration::PathLine::containingBlock const):

  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LineIteratorLegacyPath::y const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalHeight const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::isHorizontal const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::containingBlock const):

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::y const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalHeight const):
(WebCore::LayoutIntegration::LineIteratorModernPath::isHorizontal const):
(WebCore::LayoutIntegration::LineIteratorModernPath::containingBlock const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstLine const):
(WebCore::LayoutIntegration::LineLayout::lastLine const):

  • layout/integration/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::flow const):
(WebCore::LayoutIntegration::LineLayout::flow):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):

  • rendering/RootInlineBox.cpp:

(WebCore::isEditableLeaf): Deleted.
(WebCore::RootInlineBox::closestLeafChildForPoint): Deleted.
(WebCore::RootInlineBox::closestLeafChildForLogicalLeftPosition): Deleted.

This functionality moves to the line iterator.

  • rendering/RootInlineBox.h:
8:34 AM Changeset in webkit [269040] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[WPE] REGRESSION(r268992) Redefinition of min() inside TextureMapperShaderProgram for GLES > 3.0
https://bugs.webkit.org/show_bug.cgi?id=218231

Reviewed by Sergio Villar Senin.

Remove the definition of the min() function and replace its usage with an if. This works for
every GLSL version.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):
(WebCore::STRINGIFY): Deleted.

8:26 AM Changeset in webkit [269039] by Chris Dumez
  • 3 edits
    2 adds in trunk

AudioContext.suspend() should not reject promise when audio session is interrupted
https://bugs.webkit.org/show_bug.cgi?id=218235

Reviewed by Darin Adler.

Source/WebCore:

AudioContext.suspend() should not reject promise when audio session is interrupted. Being
"interrupted" is an internal WebKit concept and rejecting the promise here is confusing
to Web developers.

We now no longer throw when AudioContext.suspend() is called while interrupted. Instead,
we set the 'wasSuspendedByJavascript' flag and register a state change listener to resolve
the promise when the state changes to "suspended".

When the interruption ends, AudioContext::mayResumePlayback() gets called with
shouldResume=false, causing us to update the state from "interrupted" to "suspended",
which resolves the suspend promise.

Test: webaudio/suspend-context-while-interrupted.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspendRendering):

LayoutTests:

Add layout test coverage.

  • webaudio/suspend-context-while-interrupted-expected.txt: Added.
  • webaudio/suspend-context-while-interrupted.html: Added.
6:56 AM Changeset in webkit [269038] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Assert in BoxTree::layoutBoxForRenderer() under RenderLayer::updateScrollCornerStyle()
https://bugs.webkit.org/show_bug.cgi?id=218205
<rdar://problem/70694256>

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::containing):

Similar to RenderReplica, RenderScrollbarPart is a fake renderer that is not in the tree even
though it has the parent pointer set.

6:28 AM Changeset in webkit [269037] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

RenderStyle::resetPadding sets incorrect computed value (auto)
https://bugs.webkit.org/show_bug.cgi?id=218211

Reviewed by Antti Koivisto.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::resetPadding):

6:27 AM Changeset in webkit [269036] by Alan Bujtas
  • 32 edits in trunk/LayoutTests

Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>

Reviewed by Antti Koivisto.

Missed these files in r268958.

  • fast/dom/HTMLTextAreaElement/reset-textarea.html:
  • fast/forms/input-appearance-spinbutton.html:
  • fast/forms/option-index.html:
  • fast/text/basic/generic-family-reset.html:
  • fast/xsl/resources/xslt-enc-cyr.xsl:
  • fast/xsl/resources/xslt-enc.xsl:
  • fast/xsl/resources/xslt-enc16.xsl:
  • http/tests/navigation/resources/postresult.pl:
  • http/tests/navigation/resources/success200.html:
  • platform/mac-catalina/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/mac/fast/forms/option-index-expected.txt:
  • platform/mac/fast/text/basic/generic-family-reset-expected.txt:
  • platform/mac/fast/xsl/xslt-enc-cyr-expected.txt:
  • platform/mac/fast/xsl/xslt-enc-expected.txt:
  • platform/mac/fast/xsl/xslt-enc16-expected.txt:
  • platform/mac/fast/xsl/xslt-enc16to16-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/mac/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
  • svg/wicd/test-rightsizing-b.xhtml:
6:26 AM Changeset in webkit [269035] by Carlos Garcia Campos
  • 6 edits in trunk

WebDriver: sequence of char key press is not supported
https://bugs.webkit.org/show_bug.cgi?id=217951

Reviewed by Brian Burg.

Source/WebKit:

We are assuming there can be only one char key pressed at a time. Use a HashSet to store the currently pressed
char keys and the handle them the same way we do with virtual keys.

Fixes: imported/w3c/webdriver/tests/perform_actions/key_events.py::test_sequence_of_keydown_printable_keys_sends_events

  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):

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

(WebKit::WebAutomationSession::performInteractionSequence):

WebDriverTests:

Remove expectations for test that is now passing.

6:01 AM Changeset in webkit [269034] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Device monitor issue in AudioDestination
https://bugs.webkit.org/show_bug.cgi?id=217959

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-27
Reviewed by Xabier Rodriguez-Calvar.

Remove workaround for false-positive GstDeviceMonitor critical warnings. The GStreamer patch
fixing this issue was backported to the Flatpak SDK in bug #218021.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::maximumNumberOfOutputChannels):

6:00 AM Changeset in webkit [269033] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer] Decode base64 init data if needed
https://bugs.webkit.org/show_bug.cgi?id=218175

Reviewed by Philippe Normand.

There are certain strings with certain key systems that deliver
initialization data encoded as base64 so we need to decode it
first.

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):
(WebCore::InitData::decodeBase64IfNeeded):

5:30 AM Changeset in webkit [269032] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

[WebXR] Move OpenXR calls off the main thread
https://bugs.webkit.org/show_bug.cgi?id=217752

Reviewed by Youenn Fablet.

The OpenXR API is synchronous. Many of the calls involve dealing with external hardware devices
meaning that they have to potential to block the main thread. They should be moved to a different
thread in order to avoid that.

The PlatformXR::Instance creates a WorkQueue which is going to be used by the OpenXR devices to
issue OpenXR calls and also serialize them to ensure that they are executed sequentially. The
OpenXRDevice's are created in the main thread anyway because we need to get weak pointers from
them in the main thread.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected): Use a scoped exit to call callback. Also
the Vector of immersive devices is now a pointer which might be null, meaning no available devices.

  • platform/xr/PlatformXR.h: Added a "using" for the Vector of devices.
  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::Impl::queue const): New getter returning the WorkQueue.
(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Added an ASSERT.
(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const): Ditto.
(PlatformXR::Instance::Impl::Impl): Create the OpenXR WorkQueue and dispatch a task to perform the
OpenXR system initialization in the queue.
(PlatformXR::Instance::Impl::~Impl): Delete the instance in the WorkQueue
(PlatformXR::Instance::enumerateImmersiveXRDevices): Moved the code to a task in the WorkQueue.
(PlatformXR::OpenXRDevice::OpenXRDevice): Ditto. Also added a completion handler to notify the caller
about the end of the device initialization process.
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Added an ASSERT.
(PlatformXR::OpenXRDevice::collectConfigurationViews): Ditto.

  • platform/xr/openxr/PlatformXROpenXR.h: Added WorkQueue attribute and parameter to device constructor.
4:40 AM Changeset in webkit [269031] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

[EME][GStreamer] Fix logging in utilities
https://bugs.webkit.org/show_bug.cgi?id=218174

Reviewed by Philippe Normand.

There is some logging in GStreamerEMEUtilities.h that was not
using debugging categories properly. It does now.

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
4:24 AM Changeset in webkit [269030] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][GStreamer][Thunder] Make response parsing message more robust
https://bugs.webkit.org/show_bug.cgi?id=218172

Reviewed by Philippe Normand.

ParsedResponseMessage checks now for empty buffers and we assert
on that in the code. We also add some other checks that could
trigger crashes if failed.

No new tests needed, just a rework.

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::ParsedResponseMessage::ParsedResponseMessage):
(WebCore::ParsedResponseMessage::isValid const):
(WebCore::ParsedResponseMessage::operator bool const):
(WebCore::ParsedResponseMessage::operator! const):
(WebCore::CDMInstanceSessionThunder::challengeGeneratedCallback):
(WebCore::CDMInstanceSessionThunder::updateLicense):
(WebCore::CDMInstanceSessionThunder::loadSession):
(WebCore::CDMInstanceSessionThunder::removeSessionData):

3:33 AM Changeset in webkit [269029] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK GStreamer gardening

  • platform/gtk/TestExpectations: Remove flaky expectations for a few tests consistently passing.
3:12 AM Changeset in webkit [269028] by Caio Lima
  • 2 edits in trunk/PerformanceTests

Make WebAssembly tests on JetStream 2 be feature detactable
https://bugs.webkit.org/show_bug.cgi?id=218198

Reviewed by Saam Barati.

This patch is disabling JetStream 2's WASM tests when it's not
possible to find WebAssembly constructor on global object. This allows
us to run JetStream 2 on devices without WASM support, like 32-bits
ports of WebKit.

  • JetStream2/JetStreamDriver.js:
2:03 AM Changeset in webkit [269027] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Make WebCore::FocusDirection to enum class
https://bugs.webkit.org/show_bug.cgi?id=218162

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-10-27
Reviewed by Darin Adler.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::adjustFocusedNodeOnNodeRemoval):
(WebCore::Document::focusNavigationStartingNode const):

  • dom/Document.h:
  • dom/Element.h:
  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::handleFocusEvent):

  • page/EventHandler.cpp:

(WebCore::focusDirectionForKey):
(WebCore::handleKeyboardSelectionMovement):
(WebCore::EventHandler::accessibilityPreventsEventPropagation):
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultTabEventHandler):

  • page/FocusController.cpp:

(WebCore::dispatchEventsOnWindowAndFocusedElement):
(WebCore::FocusController::advanceFocus):
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::findFocusableElementWithinScope):
(WebCore::FocusController::findFocusableElementOrScopeOwner):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::FocusController::nextFocusableElementOrScopeOwner):
(WebCore::FocusController::previousFocusableElementOrScopeOwner):

  • page/FocusController.h:
  • page/FocusDirection.h:
  • page/SpatialNavigation.cpp:

(WebCore::isHorizontalMove):
(WebCore::areRectsFullyAligned):
(WebCore::areRectsMoreThanFullScreenApart):
(WebCore::isRectInDirection):
(WebCore::hasOffscreenRect):
(WebCore::scrollInDirection):
(WebCore::canScrollInDirection):
(WebCore::entryAndExitPointsForDirection):
(WebCore::isValidCandidate):
(WebCore::distanceDataForNode):
(WebCore::canBeScrolledIntoView):
(WebCore::virtualRectForDirection):

  • page/SpatialNavigation.h:

Source/WebKit:

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::takeFocus):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::takeFocus):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::takeFocus):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::handleKeyEventByRelinquishingFocusToChrome):
(WebKit::WebPage::setInitialFocus):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::takeFocus):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView becomeFirstResponder]):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::canTakeFocus):
(WebChromeClient::takeFocus):

  • WebView.cpp:

(WebView::setInitialFocus):

1:21 AM Changeset in webkit [269026] by Dewei Zhu
  • 4 edits in trunk/Websites/perf.webkit.org

Fix and update performance dashboard tests
https://bugs.webkit.org/show_bug.cgi?id=218222

Reviewed by Ryosuke Niwa.

  • public/api/upload-root.php: Add a null check against empty array

when accessing invalid key which will show warning since php 7.4.
Per https://wiki.php.net/rfc/notice-for-non-valid-array-container.

  • server-tests/tools-sync-buildbot-integration-tests.js:

Fixed a unit test that assumes build request IDs under one test group is
one after another. This assumption is wrong when 'StartServers' under
'mpm_prefork_module' is set more than one in apache config.
Fixed antoher incorrect unit test.

  • unit-tests/analysis-results-notifier-tests.js:

Fixed unit tests which incorrectly used 'assert.throws' per
https://nodejs.org/docs/latest-v7.x/api/assert.html#assert_assert_throws_block_error_message.

1:01 AM Changeset in webkit [269025] by commit-queue@webkit.org
  • 8 edits
    2 adds
    1 delete in trunk

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

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

Source/WebCore:

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

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

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

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

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

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

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithDevicePixelRatio:contentsOpaque:]):
(-[WebGLLayer display]):
(-[WebGLLayer detachClient]):

  • platform/graphics/cocoa/WebGLLayerClient.h: Removed.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

LayoutTests:

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

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

  • fast/canvas/webgl/webgl-clear-composited-notshowing-expected.txt: Added.
  • fast/canvas/webgl/webgl-clear-composited-notshowing.html: Added.
12:28 AM Changeset in webkit [269024] by Fujii Hironori
  • 25 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/fast/box-shadow/inset-box-shadow-radius-expected.txt:
  • platform/wincairo/fast/box-shadow/inset-box-shadows-expected.txt:
  • platform/wincairo/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/wincairo/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/wincairo/fast/clip/overflow-border-radius-transformed-expected.txt:
  • platform/wincairo/fast/css/first-line-text-decoration-expected.txt:
  • platform/wincairo/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
  • platform/wincairo/fast/css/focus-ring-detached-expected.txt:
  • platform/wincairo/fast/css/layerZOrderCrash-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/wincairo/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/wincairo/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wincairo/fast/dom/focus-contenteditable-expected.txt:
  • platform/wincairo/fast/inline-block/006-expected.txt:
  • platform/wincairo/fast/inline-block/contenteditable-baseline-expected.txt:
  • platform/wincairo/fast/text/basic/012-expected.txt:
  • platform/wincairo/fast/text/capitalize-boundaries-expected.txt:
  • platform/wincairo/fast/text/indic-expected.txt:
  • platform/wincairo/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/wincairo/fonts/monospace-expected.txt:
  • platform/wincairo/fonts/sans-serif-expected.txt:
  • platform/wincairo/fonts/serif-expected.txt:
  • platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.txt:

Oct 26, 2020:

11:39 PM Changeset in webkit [269023] by Devin Rousso
  • 37 edits in trunk

Web Inspector: console command line API should be exposed to breakpoint conditions/actions
https://bugs.webkit.org/show_bug.cgi?id=218141
<rdar://problem/70636727>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • debugger/Debugger.h:

(JSC::Debugger::Client::scopeExtensionObject): Added.

  • debugger/Debugger.cpp:

(JSC::Debugger::setClient): Added.
(JSC::Debugger::evaluateBreakpointCondition):
(JSC::Debugger::evaluateBreakpointActions):
Introduce an optional Debugger::Client virtual class that can be used to adjust behavior
in various situations. Right now it is used when evaluating breakpoint conditions/actions
to get a scope extension object.

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::internalEnable):
(Inspector::InspectorDebuggerAgent::internalDisable):
(Inspector::InspectorDebuggerAgent::scopeExtensionObject): Added.
Implement Debugger::Client and provide a newly created CommandLineAPI instance.

  • inspector/InjectedScript.h:
  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::createCommandLineAPIObject const): Added.

  • inspector/InjectedScriptSource.js:

(let.InjectedScript.prototype.createCommandLineAPIObject): Added.
(let.InjectedScript.prototype._evaluateOn):
Expose a way for the C++ to create CommandLineAPI instances.

Source/WebInspectorUI:

  • UserInterface/Controllers/CodeMirrorCompletionController.js:

(WI.CodeMirrorCompletionController):
(WI.CodeMirrorCompletionController.prototype.get mode): Added.
(WI.CodeMirrorCompletionController.prototype.get delegate): Deleted.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.shouldExposeEvent): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.shouldExposeException): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames):
Introduce a Mode enum that can be fetched by completion providers to adjust functionality.

  • UserInterface/Views/BreakpointPopover.js:

(WI.BreakpointPopover.appendContextMenuItems):
(WI.BreakpointPopover.prototype.show):
(WI.BreakpointPopover.prototype.breakpointActionViewCodeMirrorCompletionControllerMode): Added.
(WI.BreakpointPopover.prototype.get codeMirrorCompletionControllerMode): Added.

  • UserInterface/Views/EventBreakpointPopover.js:

(WI.EventBreakpointPopover.prototype.get codeMirrorCompletionControllerMode): Added.

  • UserInterface/Views/BreakpointActionView.js:

(WI.BreakpointActionView.prototype._updateBody):
Use a Mode that always exposes $event/$exception depending on the breakpoint type.

  • UserInterface/Views/ConsolePrompt.js:

(WI.ConsolePrompt):
Use a Mode that only exposes $event/$exception when paused for an event/exeption.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WI.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
Use a Mode that always exposes $event/$exception since watch expressions track values
over time, and may therefore not always have an $event/$exception set.

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor):
Use the default Mode that never exposes $event/$exception.

LayoutTests:

  • inspector/debugger/resources/breakpoint-options-utilities.js:
  • inspector/debugger/break-on-exception-expected.txt:
  • inspector/debugger/break-on-uncaught-exception-expected.txt:
  • inspector/debugger/setPauseOnAssertions-expected.txt:
  • inspector/debugger/setPauseOnDebuggerStatements-expected.txt:
  • inspector/debugger/setPauseOnMicrotasks-expected.txt:
  • inspector/dom-debugger/attribute-modified-style-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-attribute-modified-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-node-removed-ancestor-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-node-removed-direct-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-subtree-modified-add-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-subtree-modified-remove-expected.txt:
  • inspector/dom-debugger/event-animation-frame-breakpoints-expected.txt:
  • inspector/dom-debugger/event-interval-breakpoints-expected.txt:
  • inspector/dom-debugger/event-listener-breakpoints-expected.txt:
  • inspector/dom-debugger/event-timeout-breakpoints-expected.txt:
  • inspector/dom-debugger/url-breakpoints-all-requests-expected.txt:
  • inspector/dom-debugger/url-breakpoints-containing-expected.txt:
  • inspector/dom-debugger/url-breakpoints-matching-expected.txt:
9:39 PM Changeset in webkit [269022] by commit-queue@webkit.org
  • 28 edits
    2 copies
    1 move
    2 deletes in trunk/Source

[GPU Process]: Introduce RemoteResourceCacheProxy to manage the remote resources in Web Process
https://bugs.webkit.org/show_bug.cgi?id=217558

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-26
Reviewed by Simon Fraser.

Source/WebCore:

Rename Recorder::Observer to Recorder::Delegate because it will be responsible
for creating DisplayListItems in future patches. So it will not be just
an observer. Also do not make DisplayList::ImageBuffer a superclass of it.
RemoteImageBufferProxy, which is a superclass of DisplayList::ImageBuffer,
will be the superclass of Recorder::Delegate.

Make ImageBufferBackend::isAccelerated a static member instead of a virtual
method. RemoteRenderingBackendProxy would want to know whether the backend
of an ImageBuffer isAccelerated or not without having to create it.
ImageBufferBackend::isAccelerated will be set to false and
ImageBufferIOSurfaceBackend::isAccelerated will be set to true.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::renderingResourceIdentifier const):

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::isAccelerated const): Deleted.

  • platform/graphics/RenderingResourceIdentifier.h: Renamed from Source/WebCore/platform/graphics/RemoteResourceIdentifier.h.
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::isAccelerated const): Deleted.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/displaylists/DisplayListDrawingContext.cpp:

(WebCore::DisplayList::DrawingContext::DrawingContext):

  • platform/graphics/displaylists/DisplayListDrawingContext.h:

(WebCore::DisplayList::DrawingContext::DrawingContext):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

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

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::~Delegate):
(WebCore::DisplayList::Recorder::Observer::~Observer): Deleted.
(WebCore::DisplayList::Recorder::Observer::willAppendItem): Deleted.

Source/WebKit:

Remove RemoteImageBufferMessageHandlerProxy and move sending the messages
to RemoteRenderingBackendProxy.

To allow casting ImageBuffer to RemoteImageBufferProxy, a new method named
remoteResourceIdentifier() is added to IamgeBuffer and it is only overridden
by RemoteImageBufferProxy. This method is used in SPECIALIZE_TYPE_TRAITS
macros along with IamgeBuffer::isAccelerated().

Introduce RemoteResourceCacheProxy which will manage caching and releasing
the RemoteImageBufferProxy. Caching NativeImage will be added to it in
future patches. More about controlling the life cycles of remote resources
will be added also when supporting drawing remote resources to remote client
in future patches.

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):
(WebKit::RemoteImageBuffer::RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::imageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackend::flushDisplayListWasCommitted):
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::flushDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackend::getImageData):
(WebKit::RemoteRenderingBackend::releaseRemoteResource):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cachedImageBuffer):
(WebKit::RemoteResourceCache::releaseRemoteResource):

  • GPUProcess/graphics/RemoteResourceCache.h:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/PlatformRemoteImageBufferProxy.h:

(isType):

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.cpp: Removed.
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandlerProxy.h: Removed.
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):
(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::createBackend):
(WebKit::RemoteImageBufferProxy::commitFlushDisplayList):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::isPendingFlush const):
(WebKit::RemoteImageBufferProxy::timeoutWaitForFlushDisplayListWasCommitted):
(WebKit::RemoteImageBufferProxy::flushDrawingContextAndCommit):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getImageData):
(WebKit::RemoteRenderingBackendProxy::flushDisplayList):
(WebKit::RemoteRenderingBackendProxy::flushDisplayListAndCommit):
(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
(WebKit::RemoteRenderingBackendProxy::imageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackendProxy::flushDisplayListWasCommitted):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

(WebKit::RemoteRenderingBackendProxy::remoteResourceCacheProxy):
(WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp: Copied from Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp.

(WebKit::RemoteResourceCacheProxy::RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::cacheImageBuffer):
(WebKit::RemoteResourceCacheProxy::cachedImageBuffer):
(WebKit::RemoteResourceCacheProxy::releaseImageBuffer):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h: Copied from Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h.
9:39 PM Changeset in webkit [269021] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of layout test failures.

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
7:13 PM Changeset in webkit [269020] by Tadeu Zagallo
  • 5 edits in trunk/Source

Sign MacroAssembler::jumpsToLink
https://bugs.webkit.org/show_bug.cgi?id=217774
<rdar://problem/69433058>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::LinkRecord::LinkRecord):
(JSC::ARM64Assembler::LinkRecord::setFrom):
(JSC::ARM64Assembler::LinkRecord::to const):
(JSC::ARM64Assembler::linkJump):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

Source/WTF:

  • wtf/PtrTag.h:

(WTF::untagInt):
(WTF::tagInt):

7:07 PM Changeset in webkit [269019] by Tadeu Zagallo
  • 2 edits in trunk/Source/WTF

Add extra validation to MetaAllocator::findAndRemoveFreeSpace
https://bugs.webkit.org/show_bug.cgi?id=217792
<rdar://problem/69433015>

Reviewed Saam Barati.

  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::findAndRemoveFreeSpace):

7:05 PM Changeset in webkit [269018] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

fast/events/touch/ios/show-modal-alert-during-touch-start.html logs about unexpected argument
https://bugs.webkit.org/show_bug.cgi?id=218214

Reviewed by Darin Adler.

  • fast/events/touch/ios/show-modal-alert-during-touch-start.html:

webkit-test-runner options are not comma separated (and "true," is not a valid value, thus the logging).

7:04 PM Changeset in webkit [269017] by Tadeu Zagallo
  • 2 edits in trunk/Source/WTF

Assert that WTF::HashTable does not visit the same bucket twice
https://bugs.webkit.org/show_bug.cgi?id=217691
<rdar://problem/69887843>

Reviewed by Saam Barati.

  • wtf/HashTable.h:

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

6:56 PM Changeset in webkit [269016] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Validate addresses returned by LinkBuffer::locationOf
https://bugs.webkit.org/show_bug.cgi?id=217786
<rdar://problem/69887913>

Reviewed by Saam Barati.

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::locationOf):
(JSC::LinkBuffer::locationOfNearCall):
(JSC::LinkBuffer::getLinkerAddress):

6:13 PM Changeset in webkit [269015] by Alan Coon
  • 3 edits in branches/safari-611.1.4-branch

Cherry-pick r268382. rdar://problem/70702384

REGRESSION (r268294): [ iOS wk2 ] imported/blink/fast/css/zoomed-intrinsic-width.html is a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=217610
<rdar://problem/70207977>

Reviewed by Antti Koivisto.

Source/WebCore:

InlineTree snaps line boxes to integral values.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::constructContent):

LayoutTests:

  • platform/ios-simulator-wk2/TestExpectations:

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

6:13 PM Changeset in webkit [269014] by Alan Coon
  • 17 edits
    2 adds in branches/safari-611.1.4-branch

Cherry-pick r268940. rdar://problem/70702182

Source/WebCore:
REGRESSION(r266295): DOMSelection's addRange and containsNode behave incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

Test: editing/selection/selections-across-trees.html

  • accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::linkClickPoint): Update for the new name of isPointInRange, contains<ComposedTree>. We can return and change it from ComposedTree to something else since that's likely not the tree we need here. (WebCore::AccessibilityRenderObject::setSelectedTextRange): Ditto. (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const): Ditto.
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp: (isWhiteSpaceBetweenSentences): Ditto.
  • dom/BoundaryPoint.h: Update to use TreeType enumeration instead of classes.
  • dom/Node.cpp: (WebCore::depth): Ditto. (WebCore::commonInclusiveAncestorAndChildren): Ditto. (WebCore::treeOrder): Ditto.
  • dom/Node.h: Ditto.
  • dom/Range.cpp: (WebCore::Range::isPointInRange): Updated since we renamed isPointInRange to be an overload of contains.
  • dom/SimpleRange.cpp: (WebCore::treeOrder): Update to use TreeType enumeration instead of classes. (WebCore::contains): Ditto. Also renamed isPointInRange to an overload of contains. Also added converted the contains that takes two ranges to a function template. (WebCore::intersects): Ditto.
  • dom/SimpleRange.h: Reorganized the functions so all the deprecated functions that silently use ComposedTree are grouped together. Updated the function templates to use TreeType enumeration instead of classes. Added a couple more function templates that we used to fix DOMSelection.
  • editing/FrameSelection.cpp: (WebCore::FrameSelection::contains const): Update for the new name of sPointInRange, contains<ComposedTree>. We can return and change it from ComposedTree to something else since that's likely not the tree we need here.
  • editing/mac/DictionaryLookupLegacy.mm: (WebCore::selectionContainsPosition): Ditto.
  • page/DOMSelection.cpp: (WebCore::DOMSelection::addRange): Use intersects<Tree> because we don't want to use the composed tree here. (WebCore::DOMSelection::containsNode const): Use intersects<Tree> and contains<Tree>. Evantually <Tree> will be the default and we can come back here and edit down these calls for brevity, but first we have to make all the uses of ComposedTree explicit.

Source/WebKitLegacy/win:
REGRESSION(r266295): DOMSelection's addRange and containsNode behave incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

  • AccessibleTextImpl.cpp: (AccessibleText::isInRange): Updated since we renamed isPointInRange to be an overload of contains.

Tools:
REGRESSION(r266295): DOMSelection's addRange and containsNode behave incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Disabled the isPointInRange test and added comments about how we will restore it in the future.

LayoutTests:
REGRESSION(r266295): DOMSelection's addRange and containsNode behaves incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

  • editing/selection/selections-across-trees-expected.txt: Added.
  • editing/selection/selections-across-trees.html: Added.

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

6:13 PM Changeset in webkit [269013] by Alan Coon
  • 18 edits in branches/safari-611.1.4-branch

Cherry-pick r268932. rdar://problem/70702224

REGRESSION(r268615): certain animations break when moving from one to display to another or resizing the window
https://bugs.webkit.org/show_bug.cgi?id=218080
<rdar://problem/70547132>

Reviewed by Dean Jackson.

Source/WebCore:

Since transform-related animations include non-interpolating animations meant to insert the static base value for a given
transform-related CSS property, we need to update animations on GraphicsLayerCA whenever one of the transform-related CSS
properties have a new value.

We used to rely on GraphicsLayerCA::setTransform() being called with a different transform than the current one to identify
such cases, but that is suboptimal because that method can be called with a compound interpolated value of transform-related
CSS properties when a rendering update occurs, such as during resizing or moving a window between displays. In those cases,
the static base value of the transform-related CSS properties hasn't actually changed.

Instead, we now provide the non-animated style from the last style change event to the function resolving keyframe effects
so that for a given element we can compare that style with the new, as-yet-non-animated style and see if any of the transform-
related CSS properties have been changed. If that is the case, we inform any KeyframeEffect that has a running accelerated
animation for any of those CSS properties so that the effect may enqueue an accelerated action that will then notify the
GraphicsLayer of such a change, and trigger an animation update.

Since we were changing the applyKeyframeEffects() method signature to add the extra RenderStyle needed to compare the current
and previous non-animated styles, we also moved that method from Element to KeyframeEffectStack since no Element private
API was required.

No new test since this was already tested by webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html
and it's not clear how to test the live-resizing or display-change scenario.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isRunningAcceleratedTransformRelatedAnimation const): New method called from KeyframeEffectStack::applyKeyframeEffects() to indicate that a keyframe effect has a running accelerated animation targeting a transform-related property. (WebCore::KeyframeEffect::addPendingAcceleratedAction): Ensure that the new AcceleratedAction::TransformChange accelerated action recorded in transformRelatedPropertyDidChange() is not ever set as m_lastRecordedAcceleratedAction as we use this member to identify whether we have a pending running, pause or stop action. (WebCore::KeyframeEffect::transformRelatedPropertyDidChange): New method meant to be called for an effect that has a running accelerated animation targeting a transform-related property to notify that one or more of the target element's transform-related CSS property static values was changed. (WebCore::KeyframeEffect::applyPendingAcceleratedActions): Call transformRelatedPropertyDidChange() on the composited renderer for a AcceleratedAction::TransformChange action.
  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::applyKeyframeEffects): Move the method previously exposed on Element to KeyframeEffectStack. Additionally, accept an extra RenderStyle parameter to provide the non-animated style from the last style change event so that we can compare that style with the new, as-yet-non-animated style and see if any of the transform-related CSS properties have been changed and notify the effect should it run an accelerated animation for one of those properties.
  • animation/KeyframeEffectStack.h:
  • dom/Element.cpp: (WebCore::Element::applyKeyframeEffects): Deleted. Moved to KeyframeEffectStack.
  • dom/Element.h:
  • platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::transformRelatedPropertyDidChange):
  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::setTransform): Move the animation-update logic to transformRelatedPropertyDidChange() (WebCore::GraphicsLayerCA::transformRelatedPropertyDidChange):
  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderElement.h: (WebCore::RenderElement::transformRelatedPropertyDidChange):
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::transformRelatedPropertyDidChange):
  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerModelObject.cpp: (WebCore::RenderLayerModelObject::transformRelatedPropertyDidChange):
  • rendering/RenderLayerModelObject.h:
  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::createAnimatedElementUpdate): Pass the non-animated style from the last style change event to KeyframeEffectStack::applyKeyframeEffects() to determine whether this style change event includes a change to any of the transform-related properties.
  • style/Styleable.h: (WebCore::Styleable::applyKeyframeEffects const):

LayoutTests:

Increase the fidelity of this test where the scale transform would sometimes yield some 0.01% ImageOnlyFailure results.

  • webanimations/accelerated-translate-animation-additional-animation-added-in-flight-expected.html:
  • webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html:

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

6:13 PM Changeset in webkit [269012] by Alan Coon
  • 7 edits in branches/safari-611.1.4-branch/Source/WebInspectorUI

Cherry-pick r268885. rdar://problem/70702192

Web Inspector: REGRESSION(r266074): Sources: icon for non-JavaScript breakpoints doesn't change when breakpoints are globally disabled
https://bugs.webkit.org/show_bug.cgi?id=218064

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/Breakpoint.js: (WI.Breakpoint.prototype.get resolved): Added.
  • UserInterface/Models/JavaScriptBreakpoint.js: (WI.JavaScriptBreakpoint.prototype.get resolved): Add get resolved to the base class based on WI.debuggerManager.breakpointsEnabled. Use it in the subclass as part of the result.
  • UserInterface/Views/BreakpointTreeElement.js: (WI.BreakpointTreeElement.prototype.updateStatus): (WI.BreakpointTreeElement.prototype._dataUpdated):
  • UserInterface/Views/BreakpointTreeElement.css: (.item.breakpoint .status > .status-image:not(.resolved)): Added.
  • UserInterface/Views/JavaScriptBreakpointTreeElement.css: (.item.breakpoint.javascript .status > .status-image): Deleted. (.item.breakpoint.javascript .status > .status-image.resolved): Deleted.
  • UserInterface/Views/JavaScriptBreakpointTreeElement.js: (WI.JavaScriptBreakpointTreeElement.prototype.updateStatus): Deleted. Eliminate unnecessary protected function now that all breakpoints have a get resolved. Drive-by: inline CSS class name constants.

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

6:13 PM Changeset in webkit [269011] by Alan Coon
  • 2 edits in branches/safari-611.1.4-branch/Source/WebCore

Cherry-pick r268816. rdar://problem/70702274

A video element may fail to enter picture-in-picture from fullscreen
https://bugs.webkit.org/show_bug.cgi?id=217999

Reviewed by Eric Carlson.

When a video element is entering picture-in-picture from fullscreen,
WebKit should only fire the webkitendfullscreenEvent event, but should not
request the player in the UI process to exit fullscreen(picture-in-picture).
So the condition to decide sending the exit fullscreen request is wrong because
HTMLMediaElement::didBecomeFullscreenElement(), which sets m_waitingToEnterFullscreen
to false, might be called before dispatching the webkitendfullscreenEvent event.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEvent): Fix the condition. (WebCore::HTMLMediaElement::exitFullscreen): Set fullscreen mode to VideoFullscreenModeNone.

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

6:13 PM Changeset in webkit [269010] by Alan Coon
  • 8 edits
    2 adds in branches/safari-611.1.4-branch

Cherry-pick r268800. rdar://problem/70702272

REGRESSION(r266295): Range allows start and end containers to belong to different trees
https://bugs.webkit.org/show_bug.cgi?id=217895

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/dom/Range/ranges-across-trees.html

  • dom/BoundaryPoint.h: Added treeOrder<TreeType>.
  • dom/Node.cpp: (WebCore::parent<Tree>): Added. (WebCore::parent<ComposedTree>): Added. (WebCore::depth): Changed into a template that takes TreeType. (WebCore::commonInclusiveAncestorAndChildren): Ditto. (WebCore::commonInclusiveAncestor): Changed to explicitly use ComposedTree to preserve the current behavior, but likely will return later to make this a template and have it us the normal tree by default. (WebCore::treeOrder): Changed into a template that takes TreeType. (WebCore::documentOrder): Call treeOrder<ComposedTree> to preserve the current behavior. Likely will delete this later after changing callers to use treeOrder.
  • dom/Node.h: Added Tree, ShadowIncludingTree, and ComposedTree. Added parent and treeOrder function templates. TreeType currently is a set of classes but they could also be objects of another type. Maybe an enumeration named TreeType instead?
  • dom/Range.cpp: (WebCore::Range::setStart): Use treeOrder instead of documentOrder to use the normal tree instead of the composed tree. (WebCore::Range::setEnd): Ditto. (WebCore::Range::isPointInRange): Use isPointInRange<Tree> instead of isPointInRange to use the normal tree instead of the composed tree. (WebCore::Range::comparePoint const): Use treeOrder instead of documentOrder to use the normal tree instead of the composed tree. (WebCore::Range::compareNode const): Ditto. (WebCore::Range::compareBoundaryPoints const): Ditto. (WebCore::Range::intersectsNode const): Use intersects<Tree> instead of isPointInRange to use the normal tree instead of the composed tree.
  • dom/SimpleRange.cpp: (WebCore::treeOrder): Changed into a template that takes TreeType. (WebCore::documentOrder): Call treeOrder<ComposedTree> to preserve the current behavior. Likely will delete this later after changing callers to use treeOrder. (WebCore::isPointInRange): Changed into a template that takes TreeType. For now the default tree type is still ComposedTree, but will change that later. (WebCore::intersects): Ditto. (WebCore::contains<Tree>): Added. (WebCore::contains<ComposedTree>): Added.
  • dom/SimpleRange.h: Added isPointInRange, intersects, and treeOrder function templates.

LayoutTests:

  • fast/dom/Range/ranges-across-trees.html: Added.

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

6:13 PM Changeset in webkit [269009] by Alan Coon
  • 5 edits in branches/safari-611.1.4-branch

Cherry-pick r268796. rdar://problem/70702309

Don't crash when deallocating WKWebView during TLS handshake
https://bugs.webkit.org/show_bug.cgi?id=218025
<rdar://problem/70225969>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-21
Reviewed by Tim Horton.

Source/WebKit:

NetworkProcessProxy::didReceiveAuthenticationChallenge would sometimes dereference an unchecked
Optional<SecurityOriginData> which would result in a null dereference crash. Also, sometimes
Connection::initializeSendSource would assert because it was trying to set up a cancel handler for
a send port that had not been successfully set up yet. I added a test that reproduces both of these
issues most of the time.

  • Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::Connection::initializeSendSource):
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: (TEST):

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

6:13 PM Changeset in webkit [269008] by Alan Coon
  • 2 edits in branches/safari-611.1.4-branch/Source/WebInspectorUI

Cherry-pick r268786. rdar://problem/70702339

Web Inspector: REGRESSION(r266074): Uncaught Exception: undefined is not an object (evaluating 'this._allListenersBreakpoint.disabled')
https://bugs.webkit.org/show_bug.cgi?id=217992

Reviewed by Joseph Pecoraro.

r266074 changed it such that _allListenersBreakpoint doesn't always exist, so check that
it exists before getting a property from it.

  • UserInterface/Controllers/DOMDebuggerManager.js: (WI.DOMDebuggerManager.prototype.listenerBreakpointForEventName):

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

6:12 PM Changeset in webkit [269007] by Alan Coon
  • 2 edits in branches/safari-611.1.4-branch/Source/WebCore

Cherry-pick r268730. rdar://problem/70702315

Web Inspector: REGRESSION(r260076): crash under InspectorInstrumentation::willApplyKeyframeEffect
https://bugs.webkit.org/show_bug.cgi?id=217936

Reviewed by Brian Burg.

Speculative fix by null-checking targetElementOrPseudoElement() before using it. Before
r260076 this was not necessary as m_target is null-checked earlier in the function, but
after it can now return nullptr depending on the value of m_pseudoId.

  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::apply):

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

6:12 PM Changeset in webkit [269006] by Alan Coon
  • 2 edits in branches/safari-611.1.4-branch/Source/WebCore

Cherry-pick r268701. rdar://problem/70702378

Fix possible crash in GraphicsLayerCA::computeVisibleAndCoverageRect()
https://bugs.webkit.org/show_bug.cgi?id=217930
<rdar://problem/70316943>

Reviewed by Tim Horton.

If we made a m_overflowControlsHostLayerAncestorClippingStack, make sure we unparent
its layers when tearing down the RenderLayerBacking, and when we determine that we
longer need a m_ancestorClippingStack (having a m_overflowControlsHostLayerAncestorClippingStack
implies that we have a m_ancestorClippingStack).

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::destroyGraphicsLayers): (WebCore::RenderLayerBacking::updateAncestorClipping):

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

6:12 PM Changeset in webkit [269005] by Alan Coon
  • 9 edits
    2 deletes in branches/safari-611.1.4-branch

Cherry-pick r268695. rdar://problem/70702399

Unreviewed, reverting r267175 and r267779.
https://bugs.webkit.org/show_bug.cgi?id=217923

Regressed NYTimes's DOM content loaded time by 400%

Reverted changesets:

"MutationObserverRegistration should be ref counted"
https://bugs.webkit.org/show_bug.cgi?id=216528
https://trac.webkit.org/changeset/267175

"Crash while loading a confluence page"
https://bugs.webkit.org/show_bug.cgi?id=217111
https://trac.webkit.org/changeset/267779

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

5:50 PM Changeset in webkit [269004] by Alan Coon
  • 8 edits in branches/safari-611.1.4-branch/Source

Versioning.

WebKit-7611.1.4.1

5:30 PM Changeset in webkit [269003] by Peng Liu
  • 3 edits in trunk/LayoutTests

REGRESSION (r268865): [macOS WK2] media/modern-media-controls/placard-support/placard-support-pip.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=218208

Reviewed by Darin Adler.

Fix the flakiness by holding a video presentation mode change until the ongoing
mode change is completed.

  • media/modern-media-controls/placard-support/placard-support-pip-expected.txt:
  • media/modern-media-controls/placard-support/placard-support-pip.html:
4:55 PM Changeset in webkit [269002] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Federico Bucchi to list of WebKit contributors
https://bugs.webkit.org/show_bug.cgi?id=218136

  • Added Federico Bucchi
  • Removed "slackId" : "UTWC5TTSP", because it was causing:

ERROR: Tools/Scripts/webkitpy/common/config/contributors.json:0: contributors.json differs from the canonical format.

Patch by Federico Bucchi <Federico Bucchi> on 2020-10-26
Reviewed by Brian Burg.

  • Scripts/webkitpy/common/config/contributors.json:
4:47 PM Changeset in webkit [269001] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

evictCodedFrames does extra work if RELEASE_LOG_DISABLED is set
https://bugs.webkit.org/show_bug.cgi?id=218203

Reviewed by Eric Carlson.

Undo part of previous logging change that prevents checking
if the buffer is still full after the first part of eviction
if RELEASE_LOG_DISABLED is set.

  • Modules/mediasource/SourceBuffer.cpp:
4:38 PM Changeset in webkit [269000] by Simon Fraser
  • 7 edits
    2 adds in trunk

REGRESSION (r260276): Unable to click on image and text link at the bottom of https://www.nytimes.com/ article
https://bugs.webkit.org/show_bug.cgi?id=218137
<rdar://problem/70439526>

Reviewed by Zalan Bujtas.
Source/WebCore:

r238725 made RenderLayers for accelerated overflow:scroll be self-painting, but that
changes paint and hit-testing order, which affected this nytimes article (the failing
element has large negative margin-top).

This is the fundamental compositing bug, but we can work around it in this case by
only making the layer self-painting if it does actually scroll.

Test: fast/layers/overflow-scroll-self-painting.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateScrollInfoAfterLayout): Need to update isSelfPaintingLayer()
after layout because now it depends on scrollable overflow.
(WebCore::RenderLayer::shouldBeSelfPaintingLayer const): Consult hasCompositedScrollableOverflow()
rather than canUseCompositedScrolling().

LayoutTests:

New test. Rebaseline tests affected by the self-painting layer change.

  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
  • fast/layers/overflow-scroll-self-painting-expected.html: Added.
  • fast/layers/overflow-scroll-self-painting.html: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
4:09 PM Changeset in webkit [268999] by Chris Dumez
  • 5 edits in trunk

Improve exception messages when AudioContext.suspend() / resume() promises are rejected
https://bugs.webkit.org/show_bug.cgi?id=218210

Reviewed by Geoffrey Garen.

Source/WebCore:

Improve exception messages when AudioContext.suspend() / resume() promises are rejected.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):

LayoutTests:

  • webaudio/audiocontext-state.html:

Stop expecting that the resume() promise is rejected without any exception.
This is not standard behavior and does not match the behavior of other
browsers either.

  • webaudio/construct-node-with-closed-context-expected.txt:

Rebaseline test now that exception messages have been improved.

3:11 PM Changeset in webkit [268998] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebCore

Unreviewed non-unified build fix

  • animation/KeyframeEffectStack.h: Add missing forward declaration for RenderStyle.
  • workers/WorkerOrWorkletThread.cpp: Add missing headers ThreadGlobalData.h and WorkerOrWorkletGlobalScope.h
2:49 PM Changeset in webkit [268997] by Truitt Savell
  • 7 edits
    2 deletes in trunk

Unreviewed, reverting r268947.

Caused 60 image failures on Catalina WK2

Reverted changeset:

"REGRESSION (r260276): Unable to click on image and text link
at the bottom of https://www.nytimes.com/ article"
https://bugs.webkit.org/show_bug.cgi?id=218137
https://trac.webkit.org/changeset/268947

2:19 PM Changeset in webkit [268996] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Allow skipping specific files from report-non-inclusive-language
https://bugs.webkit.org/show_bug.cgi?id=218199

Reviewed by Darin Adler.

  • Scripts/report-non-inclusive-language:
1:24 PM Changeset in webkit [268995] by Diego Pino Garcia
  • 15 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update expectations after r268973.

  • platform/gtk/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/gtk/fast/forms/basic-buttons-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-1-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-10-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-2-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-3-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-4-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-5-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-6-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-7-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-8-expected.txt:
  • platform/gtk/fast/repaint/line-flow-with-floats-9-expected.txt:
  • platform/gtk/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
1:23 PM Changeset in webkit [268994] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Use term "modern line layout" in RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=218200

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::containing):
(WebCore::LayoutIntegration::LineLayout::releaseCaches):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::styleDidChange):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
(WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
(WebCore::RenderBlockFlow::lineCount const):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::hasLines const):
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
(WebCore::RenderBlockFlow::layoutModernLines):
(WebCore::RenderBlockFlow::ensureLineBoxes):
(WebCore::RenderBlockFlow::layoutLFCLines): Deleted.

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::hasModernLineLayout const):
(WebCore::RenderBlockFlow::modernLineLayout const):
(WebCore::RenderBlockFlow::modernLineLayout):
(WebCore::RenderBlockFlow::hasLayoutFormattingContextLineLayout const): Deleted.
(WebCore::RenderBlockFlow::layoutFormattingContextLineLayout const): Deleted.
(WebCore::RenderBlockFlow::layoutFormattingContextLineLayout): Deleted.

1:08 PM Changeset in webkit [268993] by achristensen@apple.com
  • 32 edits
    2 adds
    2 deletes in trunk/Source

Inclusive software: Remove instances of "dumb" from the code
https://bugs.webkit.org/show_bug.cgi?id=217778

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::unboxBoolean):

  • heap/SlotVisitor.h:
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitVirtualCall):
(JSC::AssemblyHelpers::emitDumbVirtualCall): Deleted.

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

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • runtime/CachedTypes.cpp:
  • runtime/JSCJSValue.h:
  • runtime/WriteBarrier.h:
  • runtime/WriteBarrierInlines.h:

(JSC::RawValueTraits<Unknown>>::set):
(JSC::DumbValueTraits<Unknown>>::set): Deleted.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/generateWasm.py:

(opcodeIterator):

Source/WebCore:

  • Modules/webaudio/AudioNode.h:
  • dom/GCReachableRef.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::addToLine):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • icu/unicode/caniter.h:
  • wtf/Bag.h:
  • wtf/CMakeLists.txt:
  • wtf/CagedPtr.h:
  • wtf/Forward.h:
  • wtf/NakedRef.h:
  • wtf/RawPtrTraits.h: Renamed from Source/WTF/wtf/DumbPtrTraits.h.
  • wtf/RawValueTraits.h: Renamed from Source/WTF/wtf/DumbValueTraits.h.
  • wtf/Ref.h:
  • wtf/RefCountedArray.h:
  • wtf/RefPtr.h:
  • wtf/SentinelLinkedList.h:
12:57 PM Changeset in webkit [268992] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[TextureMapper] min(genIType) isn't supported for GLSL ES < 3.0
https://bugs.webkit.org/show_bug.cgi?id=218164

Reviewed by Don Olmstead.

Nothing is drawn in AC mode of WinCairo port since r268923.
r268923 added a shader code of using min of int type which is
supported since GLSL ES 3.0.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp: Added fragmentTemplateES to define int type of min.

(WebCore::TextureMapperShaderProgram::create):

12:54 PM Changeset in webkit [268991] by Keith Rollin
  • 3 edits in trunk

Move some initialization code from top-level CMakeLists.txt to WebKitCommon.cmake
https://bugs.webkit.org/show_bug.cgi?id=218069
<rdar://problem/70556952>

Reviewed by Fujii Hironori.

Moving this initialization code into a central location allows other
top-level CMakeLists.txt files to include WebKitCommon.cmake and get
that same initialization.

  • CMakeLists.txt:
  • Source/cmake/WebKitCommon.cmake:
11:41 AM Changeset in webkit [268990] by weinig@apple.com
  • 95 edits in trunk/Source

JSC special function forward declarations (e.g. JSC_DECLARE_HOST_FUNCTION) that are internal to a cpp file should be declared with static to avoid external linkage
https://bugs.webkit.org/show_bug.cgi?id=218159

Reviewed by Darin Adler.

Add static prefix when declarations are constrained to the cpp file. This should help out the linker
by using the correct linkage type.

Source/JavaScriptCore:

  • runtime/ArrayPrototype.cpp:
  • runtime/AsyncGeneratorFunctionConstructor.cpp:
  • runtime/AtomicsObject.cpp:
  • runtime/DateConstructor.cpp:
  • runtime/DatePrototype.cpp:
  • runtime/InspectorInstrumentationObject.cpp:
  • runtime/JSDataViewPrototype.cpp:
  • runtime/JSONObject.cpp:
  • runtime/MathObject.cpp:
  • runtime/ObjectConstructor.cpp:
  • runtime/RegExpObject.cpp:
  • runtime/StringPrototype.cpp:

Source/WebCore:

  • page/DOMWindow.idl:
  • bindings/js/JSDOMWindowCustom.cpp:

Add ForwardDeclareInHeader to showModalDialog to allow it to be access from JSDOMWindowCustom.cpp. This
also means we can remove the redundant forward declaration.

  • bindings/scripts/CodeGeneratorJS.pm:

Prefix declarations that are constrained to the cpp files with static.

  • bindings/scripts/test/JS/JSDOMWindow.cpp:
  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:
  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:
  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:
  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:
  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:
  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:
  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:
  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:
  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:
  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:
  • bindings/scripts/test/JS/JSTestMapLike.cpp:
  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:
  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSetLike.cpp:
  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:
  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

Update tests with new output.

11:40 AM Changeset in webkit [268989] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebKit

Add null checks and smart pointers in PDF and Plugin code
https://bugs.webkit.org/show_bug.cgi?id=218144
<rdar://problem/69931543>

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

It's nice when things don't crash.
isBeingAsynchronouslyInitialized wasn't called anywhere, so I removed it.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::~PDFPlugin):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::updateScrollbars):
(WebKit::PDFPlugin::createScrollbar):
(WebKit::PDFPlugin::isActive const):
(WebKit::PDFPlugin::forceUpdateScrollbarsOnMainThreadForPerformanceTesting const):
(WebKit::PDFPlugin::jsPDFDocPrint):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
(WebKit::PDFPlugin::calculateSizes):
(WebKit::PDFPlugin::willDetachRenderer):
(WebKit::PDFPlugin::destroy):
(WebKit::PDFPlugin::paintControlForLayerInContext):
(WebKit::PDFPlugin::convertFromPDFViewToScreen const):
(WebKit::PDFPlugin::boundsOnScreen const):
(WebKit::PDFPlugin::visibilityDidChange):
(WebKit::PDFPlugin::showContextMenuAtPoint):
(WebKit::PDFPlugin::handleContextMenuEvent):
(WebKit::PDFPlugin::isFullFramePlugin const):
(WebKit::PDFPlugin::handlesPageScaleFactor const):
(WebKit::PDFPlugin::clickedLink):
(WebKit::PDFPlugin::save):
(WebKit::PDFPlugin::openWithPreview):
(WebKit::PDFPlugin::saveToPDF):
(WebKit::PDFPlugin::openWithNativeApplication):
(WebKit::PDFPlugin::showDefinitionForAttributedString):
(WebKit::PDFPlugin::notifySelectionChanged):
(WebKit::PDFPlugin::notifyCursorChanged):
(WebKit::PDFPlugin::axObjectCache const):
(WebKit::PDFPlugin::performWebSearch):
(WebKit::PDFPlugin::performSpotlightSearch):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::Plugin):
(WebKit::Plugin::initialize):
(WebKit::Plugin::controller):
(WebKit::Plugin::controller const):
(WebKit::Plugin::~Plugin): Deleted.

  • WebProcess/Plugins/Plugin.h:

(WebKit::Plugin::controller): Deleted.
(WebKit::Plugin::controller const): Deleted.

  • WebProcess/Plugins/PluginController.h:
  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::setLoadListener):
(WebKit::WebFrame::loadListener const):

11:24 AM Changeset in webkit [268988] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Clean up CAAudioStreamDescription
https://bugs.webkit.org/show_bug.cgi?id=217552

Reviewed by Youenn Fablet.

Remove an unused private function.

  • platform/audio/cocoa/CAAudioStreamDescription.h:
11:06 AM Changeset in webkit [268987] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Video immediately exits full screen and pauses
https://bugs.webkit.org/show_bug.cgi?id=218103

Reviewed by Jer Noble.

A follow-up patch of r265437 to enable the quirk when a video element's class names
contain amp-html5 and amp-media-element.

  • page/Quirks.cpp:

(WebCore::Quirks::needsAkamaiMediaPlayerQuirk const):

10:54 AM Changeset in webkit [268986] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Move some functions from RenderBlockFlow to RenderDeprecatedFlexbox
https://bugs.webkit.org/show_bug.cgi?id=218194

Reviewed by Zalan Bujtas.

It is the only client.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::markupBox const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::lineAtIndex const): Deleted.
(WebCore::getHeightForLineCount): Deleted.
(WebCore::RenderBlockFlow::heightForLineCount): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::shouldCheckLines):
(WebCore::lineAtIndex):
(WebCore::getHeightForLineCount):
(WebCore::heightForLineCount):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

10:52 AM Changeset in webkit [268985] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Account for margin start when setting the renderer's border box location
https://bugs.webkit.org/show_bug.cgi?id=218190

Reviewed by Antti Koivisto.

After r268950 replaced runs start at the margin box logical left. Let's offset the border box
location with the margin value.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendInlineContainerStart): <span> should take negative margins into account as well.
(WebCore::Layout::Line::appendNonReplacedInlineBox): rename.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

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

10:49 AM Changeset in webkit [268984] by Matt Lewis
  • 3 edits in trunk/Tools

Webkitscmpy has missing / in scm executable candidate list.
https://bugs.webkit.org/show_bug.cgi?id=218166

Reviewed by Jonathan Bedard.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Version Bump
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.executable):

10:29 AM Changeset in webkit [268983] by youenn@apple.com
  • 3 edits in trunk/Tools

W3C test importer should not import manual HTTPS tests
https://bugs.webkit.org/show_bug.cgi?id=217944

Reviewed by Jonathan Bedard.

Uodate manual test detection heuristic to simply search for '-manual.'.

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.is_wpt_manualtest):

  • Scripts/webkitpy/w3c/test_parser_unittest.py:
10:27 AM Changeset in webkit [268982] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'this._boxModelDiagramRow.minimumWidth')
https://bugs.webkit.org/show_bug.cgi?id=218135

Patch by Patrick Angle <Patrick Angle> on 2020-10-26
Reviewed by Brian Burg.

minimumWidth may be retrieved before the ComputedStylesDetailsPanel has done its initial layout, which means the
_boxModelDiagramRow will not have been initialized. In this case, we want to return 0 causing the absolute
minimum width of a sidebar to be used for calculations instead.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.get minimumWidth):

10:25 AM Changeset in webkit [268981] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Change minimum width of #tab-browser to a more reasonable value
https://bugs.webkit.org/show_bug.cgi?id=217998

Patch by Patrick Angle <Patrick Angle> on 2020-10-26
Reviewed by Brian Burg.

Adjusted the minimum width of the #tab-browser to be 200px, which is a more reasonable minimum usable width.
Additionally, adjusted the threshold for which multiple sidebars are shown by 50px so that the size of the
#tab-browser does not have to become its minimum width before hiding the additional sidebars.

  • UserInterface/Base/Main.js:
  • UserInterface/Views/Main.css:

(#tab-browser):

  • UserInterface/Views/MultiSidebar.js:

(WI.MultiSidebar.prototype._updateMinimumWidthForMultipleSidebars):

10:02 AM Changeset in webkit [268980] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

REGRESSION: [ iOS wk2 ] fast/events/touch/ios/pointer-events-with-modifiers.html is a constant crash
rdar://69762963
Removing test expectation now that test is passing.

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:35 AM Changeset in webkit [268979] by youenn@apple.com
  • 5 edits in trunk/Source

Use a WeakHashSet for Document::m_captionPreferencesChangedElements
https://bugs.webkit.org/show_bug.cgi?id=218170

Reviewed by Eric Carlson.

Source/WebCore:

Refactoring to move from raw pointer to weak pointer.
For that purpose, we use WeakHashSet and WeakHashSet::forEach for extra safety.
No observable change of behavior.

  • dom/Document.cpp:

(WebCore::Document::registerForCaptionPreferencesChangedCallbacks):
(WebCore::Document::unregisterForCaptionPreferencesChangedCallbacks):
(WebCore::Document::captionPreferencesChanged):

  • dom/Document.h:

Source/WTF:

  • wtf/WeakHashSet.h:

Add a static cast for classes inheriting CanMakeWeakPtr like done for the set iterator.
Update code to compile in WinCairo.

7:54 AM Changeset in webkit [268978] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Make use of signalling thread when creating the peer connection factory
https://bugs.webkit.org/show_bug.cgi?id=218169

Reviewed by Eric Carlson.

Covered by existing tests.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::factory):
This will free the networking thread from some tasks which is better for performance reasons,
as well as more consistent.

6:59 AM Changeset in webkit [268977] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] Remove unused protection even in common decryptor
https://bugs.webkit.org/show_bug.cgi?id=218183

Reviewed by Philippe Normand.

Removing unused decryptor attribute, reminiscence of the past.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
6:58 AM Changeset in webkit [268976] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Allow all replaced elements
https://bugs.webkit.org/show_bug.cgi?id=218074

Reviewed by Zalan Bujtas.

Add a #define to allow all RenderReplaced in modern line layout.
Also add one for inline-blocks.

Both are disabled for now.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::containing):
(WebCore::LayoutIntegration::LineLayout::hitTest):

Implement hit testing.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):

6:48 AM Changeset in webkit [268975] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

[EME] Fix casts and sizes printing
https://bugs.webkit.org/show_bug.cgi?id=218171

Reviewed by Philippe Normand.

Fix size printing and casts in CDMThunder and ClearKey.

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:

(WebCore::CDMProxyClearKey::cencDecryptSubsampled):

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::ParsedResponseMessage::ParsedResponseMessage):
(WebCore::CDMInstanceSessionThunder::requestLicense):
(WebCore::CDMInstanceSessionThunder::updateLicense):
(WebCore::CDMInstanceSessionThunder::loadSession):
(WebCore::CDMInstanceSessionThunder::removeSessionData):

6:32 AM Changeset in webkit [268974] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] Rename functions with ContentWidth/HeightAndMargin return type
https://bugs.webkit.org/show_bug.cgi?id=218165

Reviewed by Antti Koivisto.

E.g. inlineBlockWidthAndMargin does not indicate whether it computes border, padding or content box width.
Let's rename Geometry::*WidthAndMargin and Geometry::*HeightAndMargin to Geometry::*ContentWidthAndMargin and Geometry::*ContentHeightAndMargin.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedContentWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedContentHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedContentWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingContentHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingContentWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedContentHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedContentWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedContentHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedContentWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedContentWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowContentHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowContentWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::computedContentWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::computedWidthAndMargin): Deleted.

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockContentWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockContentHeightAndMargin const):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin): Deleted.
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const): Deleted.

6:28 AM Changeset in webkit [268973] by Alan Bujtas
  • 26 edits in trunk/LayoutTests

Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>

Reviewed by Antti Koivisto.

Missed these files in r268958.

  • fast/css/text-overflow-ellipsis-bidi.html:
  • fast/css/text-overflow-ellipsis-strict.html:
  • fast/forms/basic-buttons.html:
  • fast/repaint/add-table-overpaint-expected.txt:
  • fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform-expected.txt:
  • fast/repaint/obscured-background-no-repaint-expected.txt:
  • fast/repaint/resources/line-flow-with-floats.html:
  • platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-strict-expected.txt:
  • platform/mac/fast/forms/basic-buttons-expected.txt:
  • platform/mac/fast/repaint/japanese-rl-selection-clear-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-1-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-10-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-2-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-3-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-4-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-5-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-6-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-7-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-8-expected.txt:
  • platform/mac/fast/repaint/line-flow-with-floats-9-expected.txt:
  • platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/mac/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
  • svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html:
  • svg/text/text-overflow-ellipsis-svgfont.html:
6:19 AM Changeset in webkit [268972] by Philippe Normand
  • 4 edits
    3 moves
    2 adds
    2 deletes in trunk/LayoutTests

Unreviewed, GStreamer WebAudio gardening

  • platform/glib/TestExpectations: Remove tests consistently passing or that needed a

rebaseline which is part of this commit.

  • platform/glib/webaudio/audiobuffersource-playbackrate-expected.wav:
  • platform/glib/webaudio/oscillator-custom-expected.wav: Renamed from LayoutTests/platform/gtk/webaudio/oscillator-custom-expected.wav.
  • platform/glib/webaudio/oscillator-sawtooth-expected.wav: Renamed from LayoutTests/platform/gtk/webaudio/oscillator-sawtooth-expected.wav.
  • platform/glib/webaudio/oscillator-sine-expected.wav: Renamed from LayoutTests/platform/gtk/webaudio/oscillator-sine-expected.wav.
  • platform/glib/webaudio/oscillator-square-expected.wav: Added.
  • platform/glib/webaudio/oscillator-triangle-expected.wav: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/webaudio/oscillator-square-expected.wav: Removed.
  • platform/gtk/webaudio/oscillator-triangle-expected.wav: Removed.
5:50 AM Changeset in webkit [268971] by youenn@apple.com
  • 20 edits
    2 adds in trunk

Add support for VP9 Profile 2 (10-bit color) in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=217673
<rdar://problem/70283885>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add support for VP9 profile 0 and 2.
This requires correctly handling 10-bit decoded buffers as is done by the MSE code path.

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

(webrtc::pixelBufferFromFrame):

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::WebKitVP9DecoderReceiver::Decoded):

  • Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.h:
  • Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.mm:

(+[RTCVideoEncoderVP9 vp9Encoder:]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:

(-[RTCDefaultVideoDecoderFactory supportedCodecs]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:

(+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9:]):
(-[RTCDefaultVideoEncoderFactory createEncoder:]):

Source/WebCore:

In case software VP9 decoded buffer is 10 bits, we use kCVPixelFormatType_420YpCbCr10BiPlanarFullRange.

Test: webrtc/vp9-profile2.html

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool):
(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):

  • platform/mediastream/mac/RealtimeVideoUtilities.h:
  • platform/mediastream/mac/RealtimeVideoUtilities.mm:

(WebCore::createPixelBufferPool):

Source/WebKit:

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::pixelBufferPool):

LayoutTests:

  • webrtc/vp9-profile2-expected.txt: Added.
  • webrtc/vp9-profile2.html: Added.
5:42 AM Changeset in webkit [268970] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

Remove MediaPlayer::m_visible
https://bugs.webkit.org/show_bug.cgi?id=217810

Reviewed by Eric Carlson.

MediaPlayer::visible() is only used by MediaPlayerPrivateAVFoundation and MediaPlayerPrivateGStreamer but they have their own m_visible state.
We need to keep m_visible and add m_visibleForCanvas to keep the state when changing of engine.
No change of behavior.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setVisible):
(WebCore::MediaPlayer::setVisibleForCanvas):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::preferredRenderingMode const):
(WebCore::MediaPlayerPrivateAVFoundation::isReadyForVideoSetup const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::paint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
5:31 AM Changeset in webkit [268969] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GStreamer WebAudio gardening

  • platform/glib/TestExpectations: Unflag flaky webaudio tests consistently passing since

r268826.

4:56 AM Changeset in webkit [268968] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][Thunder][GStreamer] Assert on 0 length messages from Thunder
https://bugs.webkit.org/show_bug.cgi?id=218173

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMInstanceSessionThunder::CDMInstanceSessionThunder):
Assert on 0 length messages to get a crash and be able to analyze
why.

4:33 AM Changeset in webkit [268967] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB][GTK] Unreviewed test gardening. Gardened latest tests passing on bots.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
4:00 AM Changeset in webkit [268966] by emilio
  • 6 edits in trunk

Drop sorting and deduplication of media queries.
https://bugs.webkit.org/show_bug.cgi?id=217751

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom/mediaquery-sort-dedup-expected.txt: annotate progression

Source/WebCore:

This matches what Gecko has shipped for ages.

The spec used to contain the sorting but not the de-duplication.

Both the spec and Chromium have been updated to match Gecko, see
https://github.com/w3c/csswg-drafts/issues/5627

  • css/MediaQuery.cpp:

(WebCore::MediaQuery::MediaQuery): Don't sort / dedup

Tests: imported/w3c/web-platform-tests/css/cssom/mediaquery-sort-dedup.html

LayoutTests:

  • fast/media/media-query-serialization.html: Adjust to match spec.
2:35 AM Changeset in webkit [268965] by zandobersek@gmail.com
  • 14 edits in trunk

Remove Accelerated2dCanvasEnabled WebPreferences entry
https://bugs.webkit.org/show_bug.cgi?id=218114

Reviewed by Adrian Perez de Castro.

Source/WebKit:

With the removal of the Accelerated2dCanvasEnabled preference key,
relevant API functions in the WK2 C API are made no-op. Similar
thing is done for the relevant GLib API, with the addition of marking
relevant API funcions as deprecated.

  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKPreferencesSetAccelerated2DCanvasEnabled):
(WKPreferencesGetAccelerated2DCanvasEnabled):

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAccelerated2DCanvasEnabled): Deleted.
(WKPreferencesGetAccelerated2DCanvasEnabled): Deleted.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):
(webkit_settings_class_init):
(webkit_settings_get_enable_accelerated_2d_canvas):
(webkit_settings_set_enable_accelerated_2d_canvas):

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

  • UIProcess/API/wpe/WebKitSettings.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(-[WebPreferences accelerated2dCanvasEnabled]): Make the API function
no-op and move it into the deprecated section.
(-[WebPreferences setAccelerated2dCanvasEnabled:]): Ditto.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Remove the Accelerated2dCanvasEnabled key after the underlying code
was removed in r268453.

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings): Adjust the test case to properly evaluate the
deprecated no-op behavior.

2:02 AM Changeset in webkit [268964] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Update baselines of a few more tests remaining after r268958.

  • platform/glib/fast/box-shadow/box-shadow-radius-expected.txt:
  • platform/gtk/fonts/serif-expected.txt:
  • platform/wpe/fonts/serif-expected.txt:

Oct 25, 2020:

11:13 PM Changeset in webkit [268963] by Diego Pino Garcia
  • 178 edits
    6 moves
    3 adds
    8 deletes in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Update baselines after r268958.

  • platform/glib/fast/block/positioning/differing-writing-modes-expected.txt:
  • platform/glib/fast/block/positioning/differing-writing-modes-replaced-expected.txt:
  • platform/glib/fast/borders/border-image-01-expected.txt:
  • platform/glib/fast/borders/border-image-longhand-expected.txt:
  • platform/glib/fast/borders/border-image-massive-scale-expected.txt:
  • platform/glib/fast/borders/border-image-outset-expected.txt:
  • platform/glib/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/glib/fast/borders/border-image-repeat-expected.txt:
  • platform/glib/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/glib/fast/borders/border-image-scale-transform-expected.txt:
  • platform/glib/fast/borders/border-image-scaled-expected.txt:
  • platform/glib/fast/borders/border-image-scrambled-expected.txt:
  • platform/glib/fast/borders/border-image-side-reduction-expected.txt:
  • platform/glib/fast/borders/border-image-slices-expected.txt:
  • platform/glib/fast/borders/border-image-source-expected.txt:
  • platform/glib/fast/borders/mixed-border-styles-expected.txt:
  • platform/glib/fast/borders/mixed-border-styles-radius-expected.txt:
  • platform/glib/fast/box-shadow/inset-box-shadow-radius-expected.txt:
  • platform/glib/fast/box-shadow/inset-box-shadows-expected.txt:
  • platform/glib/fast/box-shadow/scaled-box-shadow-expected.txt:
  • platform/glib/fast/css/focus-ring-detached-expected.txt:
  • platform/glib/fast/images/image-map-anchor-children-expected.txt:
  • platform/glib/fast/inline-block/006-expected.txt:
  • platform/glib/fast/ruby/ruby-simple-rp-expected.txt: Renamed from LayoutTests/platform/wpe/fast/ruby/ruby-simple-rp-expected.txt.
  • platform/glib/fast/text/basic/012-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/basic/012-expected.txt.
  • platform/glib/fast/text/emphasis-overlap-expected.txt: Added.
  • platform/glib/fast/text/indic-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/indic-expected.txt.
  • platform/glib/fast/text/justify-nbsp-expected.txt: Renamed from LayoutTests/platform/gtk/fast/text/justify-nbsp-expected.txt.
  • platform/glib/fast/transforms/identity-matrix-expected.txt:
  • platform/glib/fonts/monospace-expected.txt: Renamed from LayoutTests/platform/wpe/fonts/monospace-expected.txt.
  • platform/glib/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/glib/svg/as-border-image/svg-as-border-image-expected.txt:
  • platform/glib/svg/custom/getscreenctm-in-mixed-content-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug11026-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug28341-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug4284-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug4849-2-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug60992-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug92868-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug963-expected.txt:
  • platform/glib/tables/mozilla/core/col_widths_fix_auto-expected.txt:
  • platform/glib/tables/mozilla/other/nestedTables-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/bugs/bug1262-expected.txt: Renamed from LayoutTests/platform/gtk/tables/mozilla_expected_failures/bugs/bug1262-expected.txt.
  • platform/gtk/compositing/iframes/composited-iframe-alignment-expected.txt:
  • platform/gtk/compositing/overflow/ancestor-overflow-expected.txt:
  • platform/gtk/compositing/overflow/overflow-scroll-expected.txt:
  • platform/gtk/fast/block/float/float-in-float-hit-testing-expected.txt:
  • platform/gtk/fast/block/float/float-in-float-painting-expected.txt:
  • platform/gtk/fast/borders/border-image-border-radius-expected.txt:
  • platform/gtk/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/gtk/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/gtk/fast/clip/overflow-border-radius-transformed-expected.txt:
  • platform/gtk/fast/css/first-line-text-decoration-expected.txt:
  • platform/gtk/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
  • platform/gtk/fast/css/layerZOrderCrash-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/gtk/fast/dom/focus-contenteditable-expected.txt:
  • platform/gtk/fast/forms/basic-inputs-expected.txt:
  • platform/gtk/fast/forms/basic-selects-expected.txt:
  • platform/gtk/fast/forms/button-align-expected.txt:
  • platform/gtk/fast/forms/button-generated-content-expected.txt:
  • platform/gtk/fast/forms/button-table-styles-expected.txt:
  • platform/gtk/fast/forms/caret-rtl-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/hidden-listbox-expected.txt:
  • platform/gtk/fast/forms/input-align-expected.txt:
  • platform/gtk/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/gtk/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/gtk/fast/forms/input-appearance-disabled-expected.txt:
  • platform/gtk/fast/forms/input-appearance-readonly-expected.txt:
  • platform/gtk/fast/forms/input-baseline-expected.txt:
  • platform/gtk/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/gtk/fast/forms/input-spaces-expected.txt:
  • platform/gtk/fast/forms/listbox-width-change-expected.txt:
  • platform/gtk/fast/forms/option-script-expected.txt:
  • platform/gtk/fast/forms/option-text-clip-expected.txt:
  • platform/gtk/fast/forms/range/slider-padding-expected.txt:
  • platform/gtk/fast/forms/search-rtl-expected.txt:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/gtk/fast/forms/select-align-expected.txt:
  • platform/gtk/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/gtk/fast/forms/select-initial-position-expected.txt:
  • platform/gtk/fast/forms/select-style-expected.txt:
  • platform/gtk/fast/forms/textarea-align-expected.txt:
  • platform/gtk/fast/forms/textarea-scrollbar-expected.txt:
  • platform/gtk/fast/frames/iframe-with-frameborder-expected.txt:
  • platform/gtk/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/gtk/fast/inline-block/contenteditable-baseline-expected.txt:
  • platform/gtk/fast/inline/drawStyledEmptyInlines-expected.txt:
  • platform/gtk/fast/layers/layer-visibility-sublayer-expected.txt:
  • platform/gtk/fast/repaint/rel-positioned-inline-with-overflow-expected.txt:
  • platform/gtk/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/gtk/fast/ruby/ruby-inline-table-expected.txt:
  • platform/gtk/fast/ruby/ruby-length-expected.txt:
  • platform/gtk/fast/ruby/ruby-run-break-expected.txt:
  • platform/gtk/fast/ruby/ruby-runs-expected.txt:
  • platform/gtk/fast/ruby/ruby-simple-expected.txt:
  • platform/gtk/fast/ruby/ruby-simple-rp-expected.txt: Removed.
  • platform/gtk/fast/text/basic/012-expected.txt: Removed.
  • platform/gtk/fast/text/capitalize-boundaries-expected.txt:
  • platform/gtk/fast/text/emphasis-overlap-expected.txt: Removed.
  • platform/gtk/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/gtk/fast/writing-mode/fieldsets-expected.txt:
  • platform/gtk/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/gtk/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt:
  • platform/gtk/fonts/monospace-expected.txt: Removed.
  • platform/gtk/fonts/sans-serif-expected.txt:
  • platform/gtk/scrollbars/overflow-scrollbar-combinations-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4427-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46623-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug55694-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug9123-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/gtk/tables/mozilla/collapsing_borders/bug41262-3-expected.txt:
  • platform/gtk/tables/mozilla/core/bloomberg-expected.txt:
  • platform/gtk/tables/mozilla/core/col_widths_auto_autoFix-expected.txt:
  • platform/gtk/tables/mozilla/dom/deleteTbodyRebuild1-expected.txt:
  • platform/gtk/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/gtk/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/core/col_span2-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/other/test4-expected.txt:
  • platform/wpe/fast/block/float/float-in-float-hit-testing-expected.txt:
  • platform/wpe/fast/block/float/float-in-float-painting-expected.txt:
  • platform/wpe/fast/borders/border-image-border-radius-expected.txt:
  • platform/wpe/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/wpe/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/wpe/fast/clip/overflow-border-radius-transformed-expected.txt:
  • platform/wpe/fast/css/first-line-text-decoration-expected.txt:
  • platform/wpe/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
  • platform/wpe/fast/css/layerZOrderCrash-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/dom/focus-contenteditable-expected.txt:
  • platform/wpe/fast/frames/iframe-with-frameborder-expected.txt:
  • platform/wpe/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/wpe/fast/inline-block/contenteditable-baseline-expected.txt:
  • platform/wpe/fast/inline/drawStyledEmptyInlines-expected.txt:
  • platform/wpe/fast/layers/layer-visibility-sublayer-expected.txt:
  • platform/wpe/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/wpe/fast/ruby/ruby-inline-table-expected.txt:
  • platform/wpe/fast/ruby/ruby-length-expected.txt:
  • platform/wpe/fast/ruby/ruby-run-break-expected.txt:
  • platform/wpe/fast/ruby/ruby-runs-expected.txt:
  • platform/wpe/fast/ruby/ruby-simple-expected.txt:
  • platform/wpe/fast/text/capitalize-boundaries-expected.txt:
  • platform/wpe/fast/text/emphasis-overlap-expected.txt: Removed.
  • platform/wpe/fast/text/indic-expected.txt: Removed.
  • platform/wpe/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/wpe/fast/text/justify-nbsp-expected.txt: Removed.
  • platform/wpe/fast/text/svg-font-face-with-kerning-expected.txt:
  • platform/wpe/fast/writing-mode/fieldsets-expected.txt:
  • platform/wpe/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/wpe/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt:
  • platform/wpe/fonts/sans-serif-expected.txt:
  • platform/wpe/scrollbars/overflow-scrollbar-combinations-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4427-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46623-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug55694-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug9123-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/wpe/tables/mozilla/collapsing_borders/bug41262-3-expected.txt:
  • platform/wpe/tables/mozilla/core/bloomberg-expected.txt:
  • platform/wpe/tables/mozilla/core/col_widths_auto_autoFix-expected.txt:
  • platform/wpe/tables/mozilla/dom/deleteTbodyRebuild1-expected.txt:
  • platform/wpe/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/wpe/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/wpe/tables/mozilla/other/wa_table_tr_align-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug1262-expected.txt: Removed.
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/core/col_span2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/other/test4-expected.txt:
6:57 PM Changeset in webkit [268962] by weinig@apple.com
  • 6 edits in trunk

Remove non-standard 'css'/'Css' prefixed properties on CSSStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=218158

Reviewed by Simon Fraser.

Source/WebCore:

Remove support for 'css'/'Css' prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.

  • css/CSSStyleDeclaration.cpp:
  • css/makeprop.pl:

LayoutTests:

  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:

Update test to reflect removal of css prefixes.

2:43 PM Changeset in webkit [268961] by emilio
  • 12 edits
    11 adds
    3 deletes in trunk/LayoutTests

Update CSSOM WPT tests.
https://bugs.webkit.org/show_bug.cgi?id=218157

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/cssom/CSS.html: Removed.
  • web-platform-tests/css/cssom/CSSCounterStyleRule-expected.txt: Added.
  • web-platform-tests/css/cssom/CSSCounterStyleRule.html: Added.
  • web-platform-tests/css/cssom/CSSFontFaceRule-expected.txt: Added.
  • web-platform-tests/css/cssom/CSSFontFaceRule.html: Added.
  • web-platform-tests/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative-expected.txt:
  • web-platform-tests/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative.html:
  • web-platform-tests/css/cssom/css-style-attr-decl-block.html:
  • web-platform-tests/css/cssom/cssimportrule.html:
  • web-platform-tests/css/cssom/escape.html:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html:
  • web-platform-tests/css/cssom/getComputedStyle-resolved-colors-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-resolved-colors.html: Added.
  • web-platform-tests/css/cssom/medialist-interfaces-003-expected.txt: Removed.
  • web-platform-tests/css/cssom/medialist-interfaces-003.html: Removed.
  • web-platform-tests/css/cssom/mediaquery-sort-dedup-expected.txt: Added.
  • web-platform-tests/css/cssom/mediaquery-sort-dedup.html: Added.
  • web-platform-tests/css/cssom/removerule-invalidation-crash.html: Added.
  • web-platform-tests/css/cssom/rule-restrictions-expected.txt: Added.
  • web-platform-tests/css/cssom/rule-restrictions.html: Added.
  • web-platform-tests/css/cssom/serialize-media-rule-expected.txt:
  • web-platform-tests/css/cssom/serialize-media-rule.html:
  • web-platform-tests/css/cssom/w3c-import.log:

LayoutTests:

  • tests-options.json:
2:34 PM Changeset in webkit [268960] by Simon Fraser
  • 5 edits
    2 copies in trunk/Source/WebCore

[LFC Display] Move code for painting a single Display::Box into its own class
https://bugs.webkit.org/show_bug.cgi?id=218161

Reviewed by Antti Koivisto.

Move box-painting code into its own class, so that CSSPainter is about CSS stacking
context logic, and BoxPainter is about how to paint a single box.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/css/DisplayBoxPainter.cpp: Copied from Source/WebCore/display/css/DisplayCSSPainter.cpp.

(WebCore::Display::BoxPainter::paintFillLayer):
(WebCore::Display::BoxPainter::paintBackgroundImages):
(WebCore::Display::BoxPainter::paintBoxDecorations):
(WebCore::Display::BoxPainter::paintBoxContent):
(WebCore::Display::BoxPainter::paintBox):

  • display/css/DisplayBoxPainter.h: Copied from Source/WebCore/display/css/DisplayCSSPainter.h.
  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::recursivePaintDescendants):
(WebCore::Display::CSSPainter::paintStackingContext):
(WebCore::Display::CSSPainter::paintFillLayer): Deleted.
(WebCore::Display::CSSPainter::paintBackgroundImages): Deleted.
(WebCore::Display::CSSPainter::paintBoxDecorations): Deleted.
(WebCore::Display::CSSPainter::paintBoxContent): Deleted.
(WebCore::Display::CSSPainter::paintBox): Deleted.

  • display/css/DisplayCSSPainter.h:
1:26 PM Changeset in webkit [268959] by Simon Fraser
  • 18 edits
    1 copy
    1 add in trunk/Source/WebCore

[LFC Display] Move display box creation and geometry computation out of Display::TreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=218160

Reviewed by Zalan Bujtas.

Make Display::BoxFactory, which has the responsibility of making Display::Boxes,
and setting up their style and geometry. This moves all of the pixel snapping
code out of Display::TreeBuilder.

Display::Box subclasses declare Display::BoxFactory as a friend class so that the factory
can call geometry setter functions (to avoid passing long lists of arguments down through
constructors).

Display::TextBox's text() is no longer Optional<> because we only make text boxes
for runs with text.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::TreeBuilder):
(WebCore::Display::TreeBuilder::build const):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree const):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):
(WebCore::Display::TreeBuilder::computeBoxDecorationData const): Deleted.
(WebCore::Display::TreeBuilder::displayBoxForRootBox const): Deleted.
(WebCore::Display::TreeBuilder::displayBoxForLayoutBox const): Deleted.

  • display/DisplayTreeBuilder.h:
  • display/css/DisplayBoxDecorationData.cpp:

(WebCore::Display::BoxDecorationData::create): Deleted.

  • display/css/DisplayBoxDecorationData.h:
  • display/css/DisplayBoxFactory.cpp: Added.

(WebCore::Display::BoxFactory::BoxFactory):
(WebCore::Display::BoxFactory::displayBoxForRootBox const):
(WebCore::Display::BoxFactory::displayBoxForLayoutBox const):
(WebCore::Display::BoxFactory::displayBoxForTextRun const):
(WebCore::Display::BoxFactory::setupBoxGeometry const):
(WebCore::Display::BoxFactory::constructBoxDecorationData const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):

  • display/css/DisplayBoxFactory.h: Copied from Source/WebCore/display/DisplayTreeBuilder.h.
  • display/css/DisplayBoxModelBox.cpp:
  • display/css/DisplayBoxModelBox.h:

(WebCore::Display::BoxModelBox::absoluteBorderBoxRect const):
(WebCore::Display::BoxModelBox::absolutePaddingBoxRect const):
(WebCore::Display::BoxModelBox::absoluteContentBoxRect const):
(WebCore::Display::BoxModelBox::boxDecorationData const):
(WebCore::Display::BoxModelBox::setAbsolutePaddingBoxRect):
(WebCore::Display::BoxModelBox::setAbsoluteContentBoxRect):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::paintBoxContent):

  • display/css/DisplayFillLayerImageGeometry.cpp:

(WebCore::Display::calculateFillLayerImageGeometry):

  • display/css/DisplayFillLayerImageGeometry.h:
  • display/css/DisplayImageBox.cpp:

(WebCore::Display::ImageBox::ImageBox):
(WebCore::Display::m_image):
(): Deleted.
(WebCore::Display::ImageBox::setImage): Deleted.

  • display/css/DisplayImageBox.h:

(WebCore::Display::ImageBox::image const):

  • display/css/DisplayReplacedBox.cpp:

(WebCore::Display::ReplacedBox::ReplacedBox):

  • display/css/DisplayReplacedBox.h:

(WebCore::Display::ReplacedBox::setReplacedContentRect):

  • display/css/DisplayTextBox.cpp:

(WebCore::Display::m_text):
(WebCore::Display::TextBox::debugDescription const):

  • display/css/DisplayTextBox.h:

(WebCore::Display::TextBox::text const):

12:52 PM Changeset in webkit [268958] by Alan Bujtas
  • 406 edits in trunk/LayoutTests

Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151

This is in preparation for fixing webkit.org/b/216902
(Remove collapsible trailing whitespace when it is followed by a hard line break)
These tests don't really need to have trailing whitespace in front of <br>.

Reviewed by Antti Koivisto.

  • compositing/iframes/composited-iframe-alignment.html:
  • compositing/overflow/ancestor-overflow.html:
  • compositing/overflow/overflow-scroll.html:
  • fast/block/float/float-in-float-hit-testing.html:
  • fast/block/float/float-in-float-painting.html:
  • fast/block/positioning/differing-writing-modes-replaced.html:
  • fast/block/positioning/differing-writing-modes.html:
  • fast/borders/border-image-01.html:
  • fast/borders/border-image-border-radius.html:
  • fast/borders/border-image-longhand.html:
  • fast/borders/border-image-massive-scale.html:
  • fast/borders/border-image-outset-in-shorthand.html:
  • fast/borders/border-image-outset.html:
  • fast/borders/border-image-repeat.html:
  • fast/borders/border-image-rotate-transform.html:
  • fast/borders/border-image-scale-transform.html:
  • fast/borders/border-image-scaled.html:
  • fast/borders/border-image-scrambled.html:
  • fast/borders/border-image-side-reduction.html:
  • fast/borders/border-image-slices.html:
  • fast/borders/border-image-source.html:
  • fast/borders/mixed-border-styles-radius.html:
  • fast/borders/mixed-border-styles.html:
  • fast/box-shadow/box-shadow-radius.html:
  • fast/box-shadow/inset-box-shadow-radius.html:
  • fast/box-shadow/inset-box-shadows.html:
  • fast/box-shadow/scaled-box-shadow.html:
  • fast/clip/overflow-border-radius-combinations.html:
  • fast/clip/overflow-border-radius-composited.html:
  • fast/clip/overflow-border-radius-transformed.html:
  • fast/css/first-line-text-decoration-inherited-from-parent.html:
  • fast/css/first-line-text-decoration.html:
  • fast/css/focus-ring-detached.html:
  • fast/css/layerZOrderCrash.html:
  • fast/css/text-overflow-ellipsis.html:
  • fast/dom/HTMLTextAreaElement/reset-textarea.html:
  • fast/dom/Range/getBoundingClientRect-expected.txt:
  • fast/dom/Range/getBoundingClientRect.html:
  • fast/dom/focus-contenteditable.html:
  • fast/forms/basic-inputs.html:
  • fast/forms/basic-selects.html:
  • fast/forms/button-align.html:
  • fast/forms/button-generated-content.html:
  • fast/forms/button-table-styles.html:
  • fast/forms/caret-rtl.html:
  • fast/forms/control-restrict-line-height.html:
  • fast/forms/hidden-listbox.html:
  • fast/forms/input-align.html:
  • fast/forms/input-appearance-bkcolor.html:
  • fast/forms/input-appearance-default-bkcolor.html:
  • fast/forms/input-appearance-disabled.html:
  • fast/forms/input-appearance-readonly.html:
  • fast/forms/input-baseline.html:
  • fast/forms/input-readonly-dimmed.html:
  • fast/forms/input-spaces.html:
  • fast/forms/listbox-width-change.html:
  • fast/forms/option-script.html:
  • fast/forms/option-text-clip.html:
  • fast/forms/range/slider-padding.html:
  • fast/forms/search-rtl.html:
  • fast/forms/search/search-size-with-decorations.html:
  • fast/forms/select-align.html:
  • fast/forms/select-change-popup-to-listbox.html:
  • fast/forms/select-initial-position.html:
  • fast/forms/select-style.html:
  • fast/forms/textarea-align.html:
  • fast/forms/textarea-scrollbar.html:
  • fast/frames/iframe-with-frameborder.html:
  • fast/frames/onlyCommentInIFrame.html:
  • fast/images/image-map-anchor-children.html:
  • fast/inline-block/006.html:
  • fast/inline-block/contenteditable-baseline.html:
  • fast/inline/drawStyledEmptyInlines.html:
  • fast/layers/layer-visibility-sublayer.html:
  • fast/repaint/rel-positioned-inline-with-overflow.html:
  • fast/ruby/bopomofo-letter-spacing.html:
  • fast/ruby/ruby-inline-table.html:
  • fast/ruby/ruby-length.html:
  • fast/ruby/ruby-run-break.html:
  • fast/ruby/ruby-runs.html:
  • fast/ruby/ruby-simple-rp.html:
  • fast/ruby/ruby-simple.html:
  • fast/text-autosizing/ios/contenteditable.html:
  • fast/text/basic/012.html:
  • fast/text/capitalize-boundaries.html:
  • fast/text/emphasis-overlap-expected.txt:
  • fast/text/emphasis-overlap.html:
  • fast/text/indic.html:
  • fast/text/international/rtl-white-space-pre-wrap.html:
  • fast/text/justify-nbsp.html:
  • fast/text/svg-font-face-with-kerning.html:
  • fast/transforms/identity-matrix.html:
  • fast/writing-mode/fieldsets.html:
  • fast/writing-mode/vertical-baseline-alignment-mixed.html:
  • fast/writing-mode/vertical-baseline-alignment.html:
  • fonts/monospace.html:
  • fonts/sans-serif.html:
  • fonts/serif.html:
  • platform/mac-catalina/fast/forms/basic-inputs-expected.txt:
  • platform/mac-catalina/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/mac-catalina/fast/forms/option-text-clip-expected.txt:
  • platform/mac-catalina/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/mac-catalina/fast/text/indic-expected.txt:
  • platform/mac-catalina/tables/mozilla/other/wa_table_tr_align-expected.txt:
  • platform/mac-wk2/fast/layers/layer-visibility-sublayer-expected.txt:
  • platform/mac/compositing/iframes/composited-iframe-alignment-expected.txt:
  • platform/mac/compositing/overflow/ancestor-overflow-expected.txt:
  • platform/mac/compositing/overflow/overflow-scroll-expected.txt:
  • platform/mac/fast/block/float/float-in-float-hit-testing-expected.txt:
  • platform/mac/fast/block/float/float-in-float-painting-expected.txt:
  • platform/mac/fast/block/positioning/differing-writing-modes-expected.txt:
  • platform/mac/fast/block/positioning/differing-writing-modes-replaced-expected.txt:
  • platform/mac/fast/borders/border-image-01-expected.txt:
  • platform/mac/fast/borders/border-image-border-radius-expected.txt:
  • platform/mac/fast/borders/border-image-longhand-expected.txt:
  • platform/mac/fast/borders/border-image-massive-scale-expected.txt:
  • platform/mac/fast/borders/border-image-outset-expected.txt:
  • platform/mac/fast/borders/border-image-outset-in-shorthand-expected.txt:
  • platform/mac/fast/borders/border-image-repeat-expected.txt:
  • platform/mac/fast/borders/border-image-rotate-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scale-transform-expected.txt:
  • platform/mac/fast/borders/border-image-scaled-expected.txt:
  • platform/mac/fast/borders/border-image-scrambled-expected.txt:
  • platform/mac/fast/borders/border-image-side-reduction-expected.txt:
  • platform/mac/fast/borders/border-image-slices-expected.txt:
  • platform/mac/fast/borders/border-image-source-expected.txt:
  • platform/mac/fast/borders/mixed-border-styles-expected.txt:
  • platform/mac/fast/borders/mixed-border-styles-radius-expected.txt:
  • platform/mac/fast/box-shadow/box-shadow-radius-expected.txt:
  • platform/mac/fast/box-shadow/inset-box-shadow-radius-expected.txt:
  • platform/mac/fast/box-shadow/inset-box-shadows-expected.txt:
  • platform/mac/fast/box-shadow/scaled-box-shadow-expected.txt:
  • platform/mac/fast/clip/overflow-border-radius-combinations-expected.txt:
  • platform/mac/fast/clip/overflow-border-radius-composited-expected.txt:
  • platform/mac/fast/clip/overflow-border-radius-transformed-expected.txt:
  • platform/mac/fast/css/first-line-text-decoration-expected.txt:
  • platform/mac/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
  • platform/mac/fast/css/focus-ring-detached-expected.txt:
  • platform/mac/fast/css/layerZOrderCrash-expected.txt:
  • platform/mac/fast/css/text-overflow-ellipsis-expected.txt:
  • platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/mac/fast/dom/focus-contenteditable-expected.txt:
  • platform/mac/fast/forms/basic-selects-expected.txt:
  • platform/mac/fast/forms/button-align-expected.txt:
  • platform/mac/fast/forms/button-generated-content-expected.txt:
  • platform/mac/fast/forms/button-table-styles-expected.txt:
  • platform/mac/fast/forms/caret-rtl-expected.txt:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/hidden-listbox-expected.txt:
  • platform/mac/fast/forms/input-align-expected.txt:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-disabled-expected.txt:
  • platform/mac/fast/forms/input-appearance-readonly-expected.txt:
  • platform/mac/fast/forms/input-baseline-expected.txt:
  • platform/mac/fast/forms/input-spaces-expected.txt:
  • platform/mac/fast/forms/listbox-width-change-expected.txt:
  • platform/mac/fast/forms/option-script-expected.txt:
  • platform/mac/fast/forms/range/slider-padding-expected.txt:
  • platform/mac/fast/forms/search-rtl-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/select-align-expected.txt:
  • platform/mac/fast/forms/select-initial-position-expected.txt:
  • platform/mac/fast/forms/select-style-expected.txt:
  • platform/mac/fast/forms/textarea-align-expected.txt:
  • platform/mac/fast/forms/textarea-scrollbar-expected.txt:
  • platform/mac/fast/frames/iframe-with-frameborder-expected.txt:
  • platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/mac/fast/images/image-map-anchor-children-expected.txt:
  • platform/mac/fast/inline-block/006-expected.txt:
  • platform/mac/fast/inline-block/contenteditable-baseline-expected.txt:
  • platform/mac/fast/inline/drawStyledEmptyInlines-expected.txt:
  • platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.txt:
  • platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/mac/fast/ruby/ruby-inline-table-expected.txt:
  • platform/mac/fast/ruby/ruby-length-expected.txt:
  • platform/mac/fast/ruby/ruby-run-break-expected.txt:
  • platform/mac/fast/ruby/ruby-runs-expected.txt:
  • platform/mac/fast/ruby/ruby-simple-expected.txt:
  • platform/mac/fast/ruby/ruby-simple-rp-expected.txt:
  • platform/mac/fast/text-autosizing/ios/contenteditable-expected.txt:
  • platform/mac/fast/text/basic/012-expected.txt:
  • platform/mac/fast/text/capitalize-boundaries-expected.txt:
  • platform/mac/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/mac/fast/text/justify-nbsp-expected.txt:
  • platform/mac/fast/text/svg-font-face-with-kerning-expected.txt:
  • platform/mac/fast/transforms/identity-matrix-expected.txt:
  • platform/mac/fast/writing-mode/fieldsets-expected.txt:
  • platform/mac/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/mac/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt:
  • platform/mac/fonts/monospace-expected.txt:
  • platform/mac/fonts/sans-serif-expected.txt:
  • platform/mac/fonts/serif-expected.txt:
  • platform/mac/scrollbars/overflow-scrollbar-combinations-expected.txt:
  • platform/mac/svg/as-border-image/svg-as-border-image-2-expected.txt:
  • platform/mac/svg/as-border-image/svg-as-border-image-expected.txt:
  • platform/mac/svg/custom/getscreenctm-in-mixed-content-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug11026-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug28341-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug32205-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4284-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4427-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46623-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4849-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug55694-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug60992-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug9123-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug92868-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug963-expected.txt:
  • platform/mac/tables/mozilla/collapsing_borders/bug41262-3-expected.txt:
  • platform/mac/tables/mozilla/core/bloomberg-expected.txt:
  • platform/mac/tables/mozilla/core/col_widths_auto_autoFix-expected.txt:
  • platform/mac/tables/mozilla/core/col_widths_fix_auto-expected.txt:
  • platform/mac/tables/mozilla/dom/deleteTbodyRebuild1-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/mac/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/mac/tables/mozilla/other/nestedTables-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/core/col_span2-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/other/test4-expected.txt:
  • scrollbars/overflow-scrollbar-combinations.html:
  • svg/as-border-image/svg-as-border-image-2.html:
  • svg/as-border-image/svg-as-border-image.html:
  • svg/custom/getscreenctm-in-mixed-content.xhtml:
  • tables/mozilla/bugs/bug11026.html:
  • tables/mozilla/bugs/bug131020_iframe.html:
  • tables/mozilla/bugs/bug1318.html:
  • tables/mozilla/bugs/bug1430.html:
  • tables/mozilla/bugs/bug16012.html:
  • tables/mozilla/bugs/bug19599.html:
  • tables/mozilla/bugs/bug28341.html:
  • tables/mozilla/bugs/bug30559.html:
  • tables/mozilla/bugs/bug32205-2.html:
  • tables/mozilla/bugs/bug4284.html:
  • tables/mozilla/bugs/bug4382.html:
  • tables/mozilla/bugs/bug4427.html:
  • tables/mozilla/bugs/bug46623-1.html:
  • tables/mozilla/bugs/bug4849-2.html:
  • tables/mozilla/bugs/bug55694.html:
  • tables/mozilla/bugs/bug60992.html:
  • tables/mozilla/bugs/bug9123-1.html:
  • tables/mozilla/bugs/bug92143.html:
  • tables/mozilla/bugs/bug92868.html:
  • tables/mozilla/bugs/bug963.html:
  • tables/mozilla/collapsing_borders/bug41262-3.html:
  • tables/mozilla/core/bloomberg.html:
  • tables/mozilla/core/col_widths_auto_autoFix.html:
  • tables/mozilla/core/col_widths_fix_auto.html:
  • tables/mozilla/dom/deleteTbodyRebuild1.html:
  • tables/mozilla/marvin/tables_cellpadding.html:
  • tables/mozilla/marvin/tables_cellspacing.html:
  • tables/mozilla/other/nestedTables.html:
  • tables/mozilla/other/wa_table_tr_align.html:
  • tables/mozilla_expected_failures/bugs/bug1262.html:
  • tables/mozilla_expected_failures/bugs/bug56024.html:
  • tables/mozilla_expected_failures/bugs/bug8499.html:
  • tables/mozilla_expected_failures/core/col_span2.html:
  • tables/mozilla_expected_failures/other/test4.html:
9:34 AM Changeset in webkit [268957] by weinig@apple.com
  • 8 edits in trunk

Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712

Reviewed by Simon Fraser.

Source/WebCore:

Remove support for pixel/pos prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):

  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
(WebCore::CSSStyleDeclaration::getPropertyValueInternalForPosOrPixelPrefixed): Deleted.
(WebCore::CSSStyleDeclaration::setPropertyValueInternalForPosOrPixelPrefixed): Deleted.

  • css/CSSStyleDeclaration.h:
  • css/makeprop.pl:

LayoutTests:

  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
  • fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:

Update test to reflect removal of pos/pixel prefixes.

Oct 24, 2020:

11:20 PM Changeset in webkit [268956] by ysuzuki@apple.com
  • 16 edits
    7 adds in trunk

[ECMA-402] Implement Intl.ListFormat
https://bugs.webkit.org/show_bug.cgi?id=209775

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-listformat.js: Added.

(shouldBe):
(shouldNotThrow):
(shouldThrow):
(test.DerivedListFormat):
(test.get shouldThrow):
(test):

Source/JavaScriptCore:

This patch implements Intl.ListFormat. Intl.ListFormat requires ulistfmt_openForType.
But it is available after ICU 67, and it is draft (unstable) API in ICU 67.
But now, this function is stable in ICU 68 without signature change and no major
change happened to this API. Thus, we can assume that this API signature won't be changed.
We specially undef U_HIDE_DRAFT_API for unicode/ulistformatter.h to use this draft (but stable) APIs.

While macOS / iOS shipping ICU (AppleICU) is ICU 66, AppleICU has ulistfmt_openForType and related APIs
even in ICU 66. We use these APIs in AppleICU 66 to implement Intl.ListFormat.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):

  • runtime/IntlListFormat.cpp: Added.

(JSC::UListFormatterDeleter::operator()):
(JSC::IntlListFormat::create):
(JSC::IntlListFormat::createStructure):
(JSC::IntlListFormat::IntlListFormat):
(JSC::IntlListFormat::finishCreation):
(JSC::IntlListFormat::initializeListFormat):
(JSC::stringListFromIterable):
(JSC::ListFormatInput::ListFormatInput):
(JSC::ListFormatInput::size const):
(JSC::ListFormatInput::stringPointers const):
(JSC::ListFormatInput::stringLengths const):
(JSC::IntlListFormat::format const):
(JSC::IntlListFormat::formatToParts const):
(JSC::IntlListFormat::resolvedOptions const):
(JSC::IntlListFormat::styleString):
(JSC::IntlListFormat::typeString):

  • runtime/IntlListFormat.h: Added.
  • runtime/IntlListFormatConstructor.cpp: Added.

(JSC::IntlListFormatConstructor::create):
(JSC::IntlListFormatConstructor::createStructure):
(JSC::IntlListFormatConstructor::IntlListFormatConstructor):
(JSC::IntlListFormatConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlListFormatConstructor.h: Added.
  • runtime/IntlListFormatPrototype.cpp: Added.

(JSC::IntlListFormatPrototype::create):
(JSC::IntlListFormatPrototype::createStructure):
(JSC::IntlListFormatPrototype::IntlListFormatPrototype):
(JSC::IntlListFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlListFormatPrototype.h: Added.
  • runtime/IntlObject.cpp:

(JSC::createListFormatConstructor):
(JSC::IntlObject::finishCreation):

  • runtime/IntlObject.h:

(JSC::intlListFormatAvailableLocales):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::listFormatStructure):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
9:27 PM Changeset in webkit [268955] by Simon Fraser
  • 13 edits
    3 copies
    1 add in trunk/Source/WebCore

[LFC Display] Implement background image painting
https://bugs.webkit.org/show_bug.cgi?id=218155

Reviewed by Zalan Bujtas.

Introduce BoxDecorationData, which stores per-Box box pixel-snapped geometry for
backgrounds and borders. A BoxModelBox that has box decorations will own one.

BoxDecorationData has a vector of FillLayerImageGeometry, which stores pixel-snapped
geometry for background image painting. Code in DisplayFillLayerImageGeometry computes
this geometry (code based on rendering code).

BoxModelBox needs to store pixel snapped padding and content boxes for decoration painting.

Currently TreeBuilder::computeBoxDecorationData() sets up these rects and makes BoxDecorationData,
but this isn't really tree building, so I'd like to move that code somewhere else in
future patches.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::computeBoxDecorationData const):
(WebCore::Display::TreeBuilder::displayBoxForLayoutBox const):

  • display/DisplayTreeBuilder.h:
  • display/css/DisplayBox.cpp:
  • display/css/DisplayBox.h:
  • display/css/DisplayBoxDecorationData.cpp: Copied from Source/WebCore/display/css/DisplayBox.cpp.

(WebCore::Display::BoxDecorationData::create):

  • display/css/DisplayBoxDecorationData.h: Copied from Source/WebCore/display/css/DisplayCSSPainter.h.

(WebCore::Display::BoxDecorationData::backgroundImageGeometry const):
(WebCore::Display::BoxDecorationData::setBackgroundImageGeometry):
(WebCore::Display::BoxDecorationData::roundedBorderRect const):
(WebCore::Display::BoxDecorationData::setRoundedBorderRect):

  • display/css/DisplayBoxModelBox.cpp:

(WebCore::Display::BoxModelBox::setBoxDecorationData):

  • display/css/DisplayBoxModelBox.h:

(WebCore::Display::BoxModelBox::absolutePaddingBoxRect const):
(WebCore::Display::BoxModelBox::setAbsolutePaddingBoxRect):
(WebCore::Display::BoxModelBox::absoluteContentBoxRect const):
(WebCore::Display::BoxModelBox::setAbsoluteContentBoxRect):
(WebCore::Display::BoxModelBox::boxDecorationData const):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::paintFillLayer):
(WebCore::Display::CSSPainter::paintBackgroundImages):
(WebCore::Display::CSSPainter::paintBoxDecorations):

  • display/css/DisplayCSSPainter.h:
  • display/css/DisplayFillLayerImageGeometry.cpp: Added.

(WebCore::Display::resolveWidthForRatio):
(WebCore::Display::resolveHeightForRatio):
(WebCore::Display::resolveAgainstIntrinsicWidthOrHeightAndRatio):
(WebCore::Display::resolveAgainstIntrinsicRatio):
(WebCore::Display::calculateImageIntrinsicDimensions):
(WebCore::Display::calculateFillTileSize):
(WebCore::Display::getSpace):
(WebCore::Display::resolveEdgeRelativeLength):
(WebCore::Display::pixelSnappedFillLayerImageGeometry):
(WebCore::Display::geometryForLayer):
(WebCore::Display::calculateFillLayerImageGeometry):

  • display/css/DisplayFillLayerImageGeometry.h: Copied from Source/WebCore/display/DisplayTreeBuilder.h.

(WebCore::Display::FillLayerImageGeometry::FillLayerImageGeometry):
(WebCore::Display::FillLayerImageGeometry::destRect const):
(WebCore::Display::FillLayerImageGeometry::phase const):
(WebCore::Display::FillLayerImageGeometry::tileSize const):
(WebCore::Display::FillLayerImageGeometry::spaceSize const):
(WebCore::Display::FillLayerImageGeometry::hasNonLocalGeometry const):
(WebCore::Display::FillLayerImageGeometry::relativePhase const):
(WebCore::Display::FillLayerImageGeometry::clip):

  • display/css/DisplayStyle.cpp:

(WebCore::Display::deepCopy):
(WebCore::Display::Style::Style):
(WebCore::Display::Style::hasBackgroundImage const):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::backgroundLayers const):
(WebCore::Display::Style::hasBackgroundImage const): Deleted.

3:55 PM Changeset in webkit [268954] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

[LFC Display] Create display boxes for atomic inlines and inline blocks
https://bugs.webkit.org/show_bug.cgi?id=218153

Reviewed by Zalan Bujtas.

When iterating line runs, recurse into container layout boxes for inline-block, and
make display boxes for other textless runs for other atomic inlines like replaced
elements.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::buildInlineDisplayTree const):

1:19 PM Changeset in webkit [268953] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

[LFC Display] Simplify display tree building
https://bugs.webkit.org/show_bug.cgi?id=218152

Reviewed by Zalan Bujtas.

Rather than tracking container/current child display boxes in various places in the code,
wrap it up in a small InsertionPosition struct and TreeBuilder::insert() which handles
the setFirstChild/setNextSibling logic.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::build const):
(WebCore::Display::TreeBuilder::insert const):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree const):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):

  • display/DisplayTreeBuilder.h:
12:30 PM Changeset in webkit [268952] by jer.noble@apple.com
  • 14 edits
    4 adds in trunk

[BigSur] Appending a new WebM init segment between Cluster elements throws an error
https://bugs.webkit.org/show_bug.cgi?id=218149
<rdar://problem/70416537>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add an "OnElementEnd()" callback to libwebm.

  • Source/third_party/libwebm/webm_parser/include/webm/callback.h:
  • Source/third_party/libwebm/webm_parser/src/callback.cc:
  • Source/third_party/libwebm/webm_parser/src/master_parser.cc:
  • Source/third_party/libwebm/webm_parser/src/webm_parser.cc:

Source/WebCore:

Test: media/media-source/media-source-webm-init-inside-segment.html

The WebM Byte Stream Format specification states that an "initialization segment" consists
of both a leading Ebml element and Segment element, and a "media segment" consists of a
single Cluster element. However, while both Ebml and Segment elements are top-level, Cluster
elements are contained within a Segment. This means if a client pushes a new "initialization
segment" after parsing some-but-not-all Clusters within a Segment, the new Ebml and Segment
elements will be parsed as children of the preceeding Segment, and the subsquent Segment
will overflow its "parent's" size.

In order to support appending a new "initialization segment" while still in the middle of
parsing the previous Segment element, first improve our state tracking in order to determine
what the current parent element is. Then, when we detect that an Ebml element is parsed
while still inside a Segment, abort with a simulated error, which when caught, will indicate
that the parser needs to be reset, and the reader "rewound" to the Ebml's position.

To allow the reader to rewind, we must not throw away appended data as we iterate over them.
Instead, we will only discard read samples once each parsing pass is fully complete. This
allows us to "rewind" across appended segment boundaries, if necessary.

Because all WTF::Deque iterators are invalidated whenever any element is removed, and
because we do not need random-access to the elements in the deque, replace the Deque with a
StdList to store the incoming data.

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:

(WebCore::SourceBufferParserAVFObjC::setLogger):

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

(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):

  • platform/graphics/cocoa/SourceBufferParser.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WTF::LogArgument<webm::Id>::toString):
(WTF::LogArgument<WebCore::SourceBufferParserWebM::State>::toString):
(WebCore::logChannel):
(WebCore::logClassName):
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::resetParserState):
(WebCore::SourceBufferParserWebM::invalidate):
(WebCore::SourceBufferParserWebM::setLogger):
(WebCore::SourceBufferParserWebM::OnElementBegin):
(WebCore::SourceBufferParserWebM::OnElementEnd):
(WebCore::SourceBufferParserWebM::OnEbml):
(WebCore::SourceBufferParserWebM::OnSegmentBegin):
(WebCore::SourceBufferParserWebM::OnInfo):
(WebCore::SourceBufferParserWebM::OnTrackEntry):

  • platform/graphics/cocoa/SourceBufferParserWebM.h:

LayoutTests:

  • media/media-source/content/test-vp9-long-manifest.json: Added.
  • media/media-source/content/test-vp9-long.webm: Added.
  • media/media-source/media-source-webm-init-inside-segment-expected.txt: Added.
  • media/media-source/media-source-webm-init-inside-segment.html: Added.
  • platform/mac/TestExpectations:
6:46 AM Changeset in webkit [268951] by Antti Koivisto
  • 3 edits
    2 adds in trunk

[LFC][Integration] Replaced elements in newly created line layout should always be updated
https://bugs.webkit.org/show_bug.cgi?id=218150

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/inline/inline-with-img-dynamic.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):

We may need to recreate line layout while children still have valid style.
Ensure that replaced dimensions are still updated.

LayoutTests:

  • fast/inline/inline-with-img-dynamic-expected.html: Added.
  • fast/inline/inline-with-img-dynamic.html: Added.
6:22 AM Changeset in webkit [268950] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Negative margin start pulls the replaced box to logical left direction
https://bugs.webkit.org/show_bug.cgi?id=218147

Reviewed by Antti Koivisto.

Account for negative margin start when computing the logical left position on the line.
This patch fixes LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/multicol-inherit-002-expected.xht.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendNonReplacedInlineBox):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):
(WebCore::Layout::LineBuilder::nextContentForLine):

6:18 AM Changeset in webkit [268949] by Caio Lima
  • 2 edits in trunk/JSTests

[EWS][ARMv7] Flaky test stress/json-stringify-stack-overflow.js
https://bugs.webkit.org/show_bug.cgi?id=218129

Unreviewed test gardening.

  • stress/json-stringify-stack-overflow.js:
5:43 AM Changeset in webkit [268948] by Alan Bujtas
  • 19 edits in trunk/Source/WebCore

[LFC] BoxGeometry logicalWidth/Height/Rect functions are confusing
https://bugs.webkit.org/show_bug.cgi?id=218145

Reviewed by Antti Koivisto.

BoxGeometry represents the layout node both as a box relative to the containing block (BoxGeometry::logicalRect(), logicalLeft(), logicalWidth())
and as a box relative to the border box (BoxGeometry::marginBox(), paddingBox(), contentBox()).
These 2 sets of geometries may be confusing in certain cases, e.g. logicalWidth() does not say whether it's border, padding or content box.
BoxGometry is mostly used as a box relative to the border box (0, 0, border box width, border box height) so let's make the other set as a
static API.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::build const):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):
(WebCore::Display::TreeBuilder::displayBoxForRootBox const):
(WebCore::Display::TreeBuilder::displayBoxForLayoutBox const):

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):

  • layout/flexformatting/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
(WebCore::Layout::FloatingContext::mapTopLeftToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::FloatItem::rectWithMargin const):
(WebCore::Layout::FloatingState::FloatItem::bottom const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):

  • layout/layouttree/LayoutBoxGeometry.cpp:

(WebCore::Layout::BoxGeometry::borderBox const):

  • layout/layouttree/LayoutBoxGeometry.h:

(WebCore::Layout::BoxGeometry::logicalTop):
(WebCore::Layout::BoxGeometry::logicalLeft):
(WebCore::Layout::BoxGeometry::logicalTopLeft):
(WebCore::Layout::BoxGeometry::borderRect):
(WebCore::Layout::BoxGeometry::marginRect):
(WebCore::Layout::BoxGeometry::logicalBottom const): Deleted.
(WebCore::Layout::BoxGeometry::logicalRight const): Deleted.
(WebCore::Layout::BoxGeometry::logicalBottomRight const): Deleted.
(WebCore::Layout::BoxGeometry::logicalSize const): Deleted.
(WebCore::Layout::BoxGeometry::logicalWidth const): Deleted.
(WebCore::Layout::BoxGeometry::logicalHeight const): Deleted.
(WebCore::Layout::BoxGeometry::isEmpty const): Deleted.
(WebCore::Layout::BoxGeometry::logicalRect const): Deleted.
(WebCore::Layout::BoxGeometry::logicalRectWithMargin const): Deleted.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutBox):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):

  • layout/tableformatting/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):

Oct 23, 2020:

11:30 PM Changeset in webkit [268947] by Simon Fraser
  • 7 edits
    2 adds in trunk

REGRESSION (r260276): Unable to click on image and text link at the bottom of https://www.nytimes.com/ article
https://bugs.webkit.org/show_bug.cgi?id=218137
<rdar://problem/70439526>

Reviewed by Zalan Bujtas.
Source/WebCore:

r238725 made RenderLayers for accelerated overflow:scroll be self-painting, but that
changes paint and hit-testing order, which affected this nytimes article (the failing
element has large negative margin-top).

This is the fundamental compositing bug, but we can work around it in this case by
only making the layer self-painting if it does actually scroll.

Test: fast/layers/overflow-scroll-self-painting.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateScrollInfoAfterLayout): Need to update isSelfPaintingLayer()
after layout because now it depends on scrollable overflow.
(WebCore::RenderLayer::shouldBeSelfPaintingLayer const): Consult hasCompositedScrollableOverflow()
rather than canUseCompositedScrolling().

LayoutTests:

New test. Rebaseline tests affected by the self-painting layer change.

  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
  • fast/layers/overflow-scroll-self-painting-expected.html: Added.
  • fast/layers/overflow-scroll-self-painting.html: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt:
5:02 PM Changeset in webkit [268946] by rniwa@webkit.org
  • 7 edits in trunk

IPC testing API should expose ArrayBuffer for an unknown decoded argument
https://bugs.webkit.org/show_bug.cgi?id=218113

Reviewed by Darin Adler.

Source/WebKit:

Expose the decoded argument as an ArrayBuffer when it can't be encoded as a JS value.

Also make the treatment of a JS array as a tuple or a Vector explicit in argument encoding.

Test: TestWebKitAPI.IPCTestingAPI.CanInterceptAlert

  • Platform/IPC/Decoder.h:

(IPC::Decoder::currentBufferPosition const): Added.

  • Platform/IPC/JSIPCBinding.cpp:

(IPC::putJSValueForDecodedArgumentAtIndexOrArrayBufferIfUndefined): Added.

  • Platform/IPC/JSIPCBinding.h:

(IPC::DecodedArgumentJSValueConverter): Deleted.
(IPC::putJSValueForDecodeArgumentInArray): Replaced DecodedArgumentJSValueConverter.
Take Decoder and decode each tuple argument and create a JS value at a time.
(IPC::jsValueForArgumentTuple): Deleted. Merged into jsValueForDecodedArguments.
(IPC::jsValueForDecodedArguments):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::VectorEncodeHelper::encode const):
(WebKit::IPCTestingAPI::encodeArrayArgument): Extracted out of encodeArgument.
(WebKit::IPCTestingAPI::encodeArgument): Treat an array as a tuple unless it's explicitly
specified that the argument's type is a Vector.

Tools:

Updated a test case to check that the unknown type produces an ArrayBuffer.

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(IPCTestingAPI.CanInterceptAlert):

4:09 PM Changeset in webkit [268945] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html as flaky.

It was unskipped recently but it is still flaky.

4:02 PM Changeset in webkit [268944] by Russell Epstein
  • 1 copy in tags/Safari-610.2.11.51.6

Tag Safari-610.2.11.51.6.

4:00 PM Changeset in webkit [268943] by Alan Coon
  • 8 edits in branches/safari-610.2.11.51-branch/Source

Versioning.

WebKit-7610.2.11.51.6

3:53 PM Changeset in webkit [268942] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Using WASM function size as the cap for choosing a register allocator causes performance regressions.
https://bugs.webkit.org/show_bug.cgi?id=217290

Reviewed by Michael Saboff.

Previously in https://bugs.webkit.org/show_bug.cgi?id=212105 we
limited the size of WASM functions we compile with OMG because
sufficiently large functions caused us to OOM while register
allocating. The memory growth we saw is because the memory usage
of graph coloring is O((number of tmps)2). However, some large
WASM functions may not have that many tmps by the time we get to
register allocation. This patch changes our heuristic to instead
use the total number of tmps right before register allocation
instead of the WASM function size. The number of tmps is more
likely to represent the worst case memory usage of register
allocation. This fixes a performance regression in Safari 14 when running
https://dos.zone/en/play/https%3A%2F%2Fdoszone-uploads.s3.dualstack.eu-central-1.amazonaws.com%2Foriginal%2F2X%2Fb%2Fb4b5275904d86a4ab8a20917b2b7e34f0df47bf7.jsdos

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::AirIRGenerator):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::parseAndCompile):

  • wasm/WasmCompilationMode.cpp:

(JSC::Wasm::wasmFunctionSizeCanBeOMGCompiled): Deleted.

  • wasm/WasmCompilationMode.h:
  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

2:27 PM Changeset in webkit [268941] by Hector Lopez
  • 2 edits
    3 adds in trunk/LayoutTests

2 fast/canvas/canvas* tests are flaky failures
<rdar://70623742>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:04 PM Changeset in webkit [268940] by Darin Adler
  • 17 edits
    2 adds in trunk

Source/WebCore:
REGRESSION(r266295): DOMSelection's addRange and containsNode behave incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

Test: editing/selection/selections-across-trees.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::linkClickPoint): Update for the new name of
isPointInRange, contains<ComposedTree>. We can return and change it from ComposedTree
to something else since that's likely not the tree we need here.
(WebCore::AccessibilityRenderObject::setSelectedTextRange): Ditto.
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const): Ditto.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(isWhiteSpaceBetweenSentences): Ditto.

  • dom/BoundaryPoint.h: Update to use TreeType enumeration instead of classes.
  • dom/Node.cpp:

(WebCore::depth): Ditto.
(WebCore::commonInclusiveAncestorAndChildren): Ditto.
(WebCore::treeOrder): Ditto.

  • dom/Node.h: Ditto.
  • dom/Range.cpp:

(WebCore::Range::isPointInRange): Updated since we renamed isPointInRange to be
an overload of contains.

  • dom/SimpleRange.cpp:

(WebCore::treeOrder): Update to use TreeType enumeration instead of classes.
(WebCore::contains): Ditto. Also renamed isPointInRange to an overload of contains.
Also added converted the contains that takes two ranges to a function template.
(WebCore::intersects): Ditto.

  • dom/SimpleRange.h: Reorganized the functions so all the deprecated functions

that silently use ComposedTree are grouped together. Updated the function templates
to use TreeType enumeration instead of classes. Added a couple more function
templates that we used to fix DOMSelection.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::contains const): Update for the new name of sPointInRange,
contains<ComposedTree>. We can return and change it from ComposedTree to something
else since that's likely not the tree we need here.

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::selectionContainsPosition): Ditto.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::addRange): Use intersects<Tree> because we don't want to
use the composed tree here.
(WebCore::DOMSelection::containsNode const): Use intersects<Tree> and contains<Tree>.
Evantually <Tree> will be the default and we can come back here and edit down these
calls for brevity, but first we have to make all the uses of ComposedTree explicit.

Source/WebKitLegacy/win:
REGRESSION(r266295): DOMSelection's addRange and containsNode behave incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

  • AccessibleTextImpl.cpp:

(AccessibleText::isInRange): Updated since we renamed isPointInRange to be
an overload of contains.

Tools:
REGRESSION(r266295): DOMSelection's addRange and containsNode behave incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Disabled the isPointInRange

test and added comments about how we will restore it in the future.

LayoutTests:
REGRESSION(r266295): DOMSelection's addRange and containsNode behaves incorrectly when selection crosses shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=218007

Reviewed by Ryosuke Niwa.

  • editing/selection/selections-across-trees-expected.txt: Added.
  • editing/selection/selections-across-trees.html: Added.
1:19 PM Changeset in webkit [268939] by eric.carlson@apple.com
  • 7 edits in trunk

[Media in GPU Process] in-band metadata cues sometimes crash
https://bugs.webkit.org/show_bug.cgi?id=218106
<rdar://problem/70226170>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, enabled existing test in the GPU process.

  • platform/SerializedPlatformDataCueValue.h:

(WebCore::SerializedPlatformDataCueValue::SerializedPlatformDataCueValue):
(WebCore::SerializedPlatformDataCueValue::nativeValue const):
Make m_nativeValue a RetainPtr<> so the ownership and lifetime of the object is
explicit and managed correctly.

  • platform/mac/SerializedPlatformDataCueMac.mm:

(WebCore::SerializedPlatformDataCueMac::encodableValue const): Update for change
to native value.
(WebCore::jsValueWithAVMetadataItemInContext): Ditto.
(WebCore::NSDictionaryWithAVMetadataItem): Return a RetainPtr<NSDictionary> instead
of an auto-released dictionary.

Source/WebKit:

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::encodePlatformData):
SerializedPlatformDataCueValue::nativeValue() is a RetainPtr<>.

LayoutTests:

  • gpu-process/TestExpectations: Mark test as passing.
1:13 PM Changeset in webkit [268938] by Truitt Savell
  • 5 edits in trunk/Tools

Unreviewed, reverting r268761.

May have casued webrtc crashes on Catalina Debug.

Reverted changeset:

"[webkitpy] Use allowlist and blocklist"
https://bugs.webkit.org/show_bug.cgi?id=217985
https://trac.webkit.org/changeset/268761

12:27 PM Changeset in webkit [268937] by Jonathan Bedard
  • 3 edits
    1 delete in trunk/Tools

[webkitpy] Remove the old autointaller
https://bugs.webkit.org/show_bug.cgi?id=218131
<rdar://problem/70627699>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Remove reference to old autoinstaller.

  • Scripts/webkitpy/thirdparty/init.py: Deleted content.

(autoinstall_everything): Deleted.

12:20 PM Changeset in webkit [268936] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Use 'which' to find git and svn paths
https://bugs.webkit.org/show_bug.cgi?id=217717
<rdar://problem/70299192>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git):
(Git.executable): Generate git path from 'which' call.

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

(Scm.executable): Generate a program path from a 'which' call.

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

(Svn):
(Svn.executable): Generate svn path from 'which' call.

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

(Git):

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

(Svn.init):

11:54 AM Changeset in webkit [268935] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[build.webkit.org] Add python 3 support - part 2
https://bugs.webkit.org/show_bug.cgi?id=218130

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/buildbot.tac:
  • BuildSlaveSupport/build.webkit.org-config/htdigestparser_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
  • BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py:
11:51 AM Changeset in webkit [268934] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

webkit.org/status/ is missing input type=date (and related) features
https://bugs.webkit.org/show_bug.cgi?id=195666

Reviewed by Darin Adler.

  • features.json: Updated to include date and time input types.
11:49 AM Changeset in webkit [268933] by Simon Fraser
  • 3 edits in trunk/LayoutTests

[ macOS wk2 ] fast/scrolling/latching/latched-scroll-remove-iframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=216059
<rdar://problem/68177922>

Reviewed by Sam Weinig.

Deflake the test by not using a 16ms timeout, and remove the expectation.

  • fast/scrolling/latching/latched-scroll-remove-iframe.html:
  • platform/mac-wk2/TestExpectations:
11:35 AM Changeset in webkit [268932] by graouts@webkit.org
  • 20 edits in trunk

REGRESSION(r268615): certain animations break when moving from one to display to another or resizing the window
https://bugs.webkit.org/show_bug.cgi?id=218080
<rdar://problem/70547132>

Reviewed by Dean Jackson.

Source/WebCore:

Since transform-related animations include non-interpolating animations meant to insert the static base value for a given
transform-related CSS property, we need to update animations on GraphicsLayerCA whenever one of the transform-related CSS
properties have a new value.

We used to rely on GraphicsLayerCA::setTransform() being called with a different transform than the current one to identify
such cases, but that is suboptimal because that method can be called with a compound interpolated value of transform-related
CSS properties when a rendering update occurs, such as during resizing or moving a window between displays. In those cases,
the static base value of the transform-related CSS properties hasn't actually changed.

Instead, we now provide the non-animated style from the last style change event to the function resolving keyframe effects
so that for a given element we can compare that style with the new, as-yet-non-animated style and see if any of the transform-
related CSS properties have been changed. If that is the case, we inform any KeyframeEffect that has a running accelerated
animation for any of those CSS properties so that the effect may enqueue an accelerated action that will then notify the
GraphicsLayer of such a change, and trigger an animation update.

Since we were changing the applyKeyframeEffects() method signature to add the extra RenderStyle needed to compare the current
and previous non-animated styles, we also moved that method from Element to KeyframeEffectStack since no Element private
API was required.

No new test since this was already tested by webanimations/accelerated-translate-animation-underlying-transform-changed-in-flight.html
and it's not clear how to test the live-resizing or display-change scenario.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::isRunningAcceleratedTransformRelatedAnimation const): New method called from KeyframeEffectStack::applyKeyframeEffects()
to indicate that a keyframe effect has a running accelerated animation targeting a transform-related property.
(WebCore::KeyframeEffect::addPendingAcceleratedAction): Ensure that the new AcceleratedAction::TransformChange accelerated action
recorded in transformRelatedPropertyDidChange() is not ever set as m_lastRecordedAcceleratedAction as we use this member to identify
whether we have a pending running, pause or stop action.
(WebCore::KeyframeEffect::transformRelatedPropertyDidChange): New method meant to be called for an effect that has a running
accelerated animation targeting a transform-related property to notify that one or more of the target element's transform-related
CSS property static values was changed.
(WebCore::KeyframeEffect::applyPendingAcceleratedActions): Call transformRelatedPropertyDidChange() on the composited renderer for
a AcceleratedAction::TransformChange action.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::applyKeyframeEffects): Move the method previously exposed on Element to KeyframeEffectStack. Additionally,
accept an extra RenderStyle parameter to provide the non-animated style from the last style change event so that we can compare that style
with the new, as-yet-non-animated style and see if any of the transform-related CSS properties have been changed and notify the effect
should it run an accelerated animation for one of those properties.

  • animation/KeyframeEffectStack.h:
  • dom/Element.cpp:

(WebCore::Element::applyKeyframeEffects): Deleted. Moved to KeyframeEffectStack.

  • dom/Element.h:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::transformRelatedPropertyDidChange):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setTransform): Move the animation-update logic to transformRelatedPropertyDidChange()
(WebCore::GraphicsLayerCA::transformRelatedPropertyDidChange):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderElement.h:

(WebCore::RenderElement::transformRelatedPropertyDidChange):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::transformRelatedPropertyDidChange):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::transformRelatedPropertyDidChange):

  • rendering/RenderLayerModelObject.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate): Pass the non-animated style from the last style change event to
KeyframeEffectStack::applyKeyframeEffects() to determine whether this style change event includes a change to any of the
transform-related properties.

  • style/Styleable.h:

(WebCore::Styleable::applyKeyframeEffects const):

LayoutTests:

Increase the fidelity of this test where the scale transform would sometimes yield some 0.01% ImageOnlyFailure results.

  • webanimations/accelerated-translate-animation-additional-animation-added-in-flight-expected.html:
  • webanimations/accelerated-translate-animation-additional-animation-added-in-flight.html:
11:23 AM Changeset in webkit [268931] by aakash_jain@apple.com
  • 2 edits
    1 add in trunk/Tools

[build.webkit.org] Create master.cfg for newer buildbot
https://bugs.webkit.org/show_bug.cgi?id=218102

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/buildbot.tac:
  • BuildSlaveSupport/build.webkit.org-config/master_buildbot2.cfg: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg.
11:15 AM Changeset in webkit [268930] by Jonathan Bedard
  • 7 edits
    2 adds
    1 delete in trunk/Tools

[webkitpy] Use webkitcorepy's autoinstaller for buildbot and twisted
https://bugs.webkit.org/show_bug.cgi?id=218105
<rdar://problem/70593576>

Rubber-stamped by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

(BuildBotConfigLoader._add_dependent_modules_to_sys_modules):

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.archives): tar.bz2 archives are tar.gz archives.
(Package.install): After r267056, we don't need "old-and-unmanageable" and
"single-version-externally-managed", handle case of nested modules more completely.

  • Scripts/webkitpy/autoinstalled/buildbot.py: Added.
  • Scripts/webkitpy/autoinstalled/twisted.py: Added.
  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:

Import new auto installed twisted.

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

(SimpleHTTPServerDriver._ensure_http_server_dependencies): Import new auto installed twisted.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove all modules.
(AutoinstallImportHook._install_buildbot): Deleted.
(AutoinstallImportHook._install_twisted_15_5_0): Deleted.

  • Scripts/webkitpy/thirdparty/init_unittest.py: Removed.
11:08 AM Changeset in webkit [268929] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Typo in experimentalEnableStyelsJumpToVariableDeclaration
https://bugs.webkit.org/show_bug.cgi?id=218119

Reviewed by Devin Rousso.

Replace "Styels" with "Styles".

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):

11:03 AM Changeset in webkit [268928] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests/imported/w3c

REGRESSION (r267402): [ iOS Mojave+ Release ] imported/w3c/web-platform-tests/user-timing/measure-l3.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217414

Reviewed by Alex Christensen.

Sometimes lhs of comparison is higher by an infinitisimal margin.
Round number to two-digit precision to prevent such scenarios.

  • web-platform-tests/user-timing/measure-l3.any.js:

(test):

10:10 AM Changeset in webkit [268927] by Hector Lopez
  • 2 edits in trunk/LayoutTests

2 compositing/contents-scale/* tests are flaky failures
<rdar://70623742>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:22 AM Changeset in webkit [268926] by Chris Dumez
  • 6 edits in trunk

AnalyserNode's output should only have one channel
https://bugs.webkit.org/show_bug.cgi?id=218125

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output-expected.txt:

Source/WebCore:

AnalyserNode's output should only have one channel. We were using 2 channels, which
was inconsistent with Blink and Gecko.

No new tests, rebaselined existing test.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::AnalyserNode):

LayoutTests:

Unskip test that is no longer flaky, now that it passes.

9:13 AM Changeset in webkit [268925] by aakash_jain@apple.com
  • 11 edits in trunk/Tools

Rename slave to worker in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=218123

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/net/buildbot/buildbot.py:
  • Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
  • Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
  • Scripts/webkitpy/common/system/crashlogs_unittest.py:
  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:
  • Scripts/webkitpy/layout_tests/controllers/manager.py:
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:
  • Scripts/webkitpy/port/leakdetector_unittest.py:
  • Scripts/webkitpy/style/checkers/jsonchecker_unittest.py:
7:40 AM Changeset in webkit [268924] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add initial support for vertical-align: <length> and <percentage>
https://bugs.webkit.org/show_bug.cgi?id=218109

Reviewed by Antti Koivisto.

Raise (positive value) or lower (negative value) the box by this distance.
It fixes css2.1/20110323/vertical-align-boxes-001.htm.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):

5:53 AM Changeset in webkit [268923] by magomez@igalia.com
  • 13 edits in trunk

[GTK][WPE] Implement antialiased rounded rectangle clipping in TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=174457

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Implement rounded rectangle clipping in TextureMapperGL, supporting up to 10 simultaneous
rounded rectangle clips. TextureMapper::beginClip() now receives a rounded rectangle, and
it applies the appropriate clipping method as required.

The rounded rectangle clip implementation uses the fragment shader to calculate whether
each pixel is inside the defined rounded rectangles, and paints or skips it as needed.

  • platform/graphics/texmap/ClipStack.cpp:

(WebCore::ClipStack::addRoundedRect):

  • platform/graphics/texmap/ClipStack.h:

(WebCore::ClipStack::State::State):
(WebCore::ClipStack::roundedRectComponents const):
(WebCore::ClipStack::roundedRectInverseTransformComponents const):
(WebCore::ClipStack::roundedRectCount const):
(WebCore::ClipStack::isRoundedRectClipEnabled const):
(WebCore::ClipStack::isRoundedRectClipAllowed const):

  • platform/graphics/texmap/TextureMapper.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::prepareRoundedRectClip):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::beginRoundedRectClip):
(WebCore::TextureMapperGL::beginClip):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:

Source/WebKit:

Use the new TextureMapper::beginClip() method that receives a FloatRoundedRect.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):

LayoutTests:

Update expectations for passing test.

  • platform/gtk/TestExpectations:
5:44 AM Changeset in webkit [268922] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix inline box relative alignment when line-height is set
https://bugs.webkit.org/show_bug.cgi?id=218107

Reviewed by Antti Koivisto.

Inline box relative vertical alignment logic should use the combination of the layout bounds
and the font metric values of the parent inline box.

The layout bound values (ascent and descent adjusted with half leading) normally match the font metric values,
unless the line-height is set to something other than normal.
In such cases the gap affects the vertical position of the child inline level boxes (e.g. text-top aligns with the
top of the text (use font metrics) and not with the layout bounds).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):

5:24 AM Changeset in webkit [268921] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.30.2

WPE WebKit 2.30.2

5:23 AM Changeset in webkit [268920] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.30.2.
2:55 AM Changeset in webkit [268919] by svillar@igalia.com
  • 22 edits in trunk/Source/WebCore

Rename override sizes to overriding sizes
https://bugs.webkit.org/show_bug.cgi?id=217898

Reviewed by Darin Adler.

We've been traditionally using the word "override" to refer to those sizes that were explicitly set by
layout systems like tables, flex or grid. However that's a grammatical mistake. override is a verb which
does not work well as a noun. It'd be more correct to refer to them as "overriding" sizes.

No new tests required as this is just a renaming.

  • WebCore.order:
  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::updateRubyForJustifiedText):

  • rendering/GridLayoutFunctions.cpp:

(WebCore::GridLayoutFunctions::hasOverridingContainingBlockContentSizeForChild):
(WebCore::GridLayoutFunctions::overridingContainingBlockContentSizeForChild):
(WebCore::GridLayoutFunctions::hasOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::GridLayoutFunctions::overrideContainingBlockContentSizeForChild): Deleted.

  • rendering/GridLayoutFunctions.h:
  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::shouldClearOverridingContainingBlockContentSizeForChild):
(WebCore::setOverridingContainingBlockContentSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minContentForChild const):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::setOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverrideContainingBlockContentSizeForChild const): Deleted.

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::computeChildPreferredLogicalWidths const):
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::hasOverridingLogicalHeight const):
(WebCore::RenderBox::hasOverridingLogicalWidth const):
(WebCore::RenderBox::setOverridingLogicalHeight):
(WebCore::RenderBox::setOverridingLogicalWidth):
(WebCore::RenderBox::clearOverridingLogicalHeight):
(WebCore::RenderBox::clearOverridingLogicalWidth):
(WebCore::RenderBox::clearOverridingContentSize):
(WebCore::RenderBox::overridingLogicalWidth const):
(WebCore::RenderBox::overridingLogicalHeight const):
(WebCore::RenderBox::overridingContainingBlockContentWidth const):
(WebCore::RenderBox::overridingContainingBlockContentHeight const):
(WebCore::RenderBox::hasOverridingContainingBlockContentWidth const):
(WebCore::RenderBox::hasOverridingContainingBlockContentHeight const):
(WebCore::RenderBox::overridingContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::overridingContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::hasOverridingContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::hasOverridingContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::setOverridingContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverridingContainingBlockContentLogicalHeight):
(WebCore::RenderBox::clearOverridingContainingBlockContentSize):
(WebCore::RenderBox::clearOverridingContainingBlockContentLogicalHeight):
(WebCore::RenderBox::containingBlockLogicalWidthForContent const):
(WebCore::RenderBox::containingBlockLogicalHeightForContent const):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight const):
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::computePercentageLogicalHeight const):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned const):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned const):
(WebCore::RenderBox::hasOverrideLogicalHeight const): Deleted.
(WebCore::RenderBox::hasOverrideLogicalWidth const): Deleted.
(WebCore::RenderBox::setOverrideLogicalHeight): Deleted.
(WebCore::RenderBox::setOverrideLogicalWidth): Deleted.
(WebCore::RenderBox::clearOverrideLogicalHeight): Deleted.
(WebCore::RenderBox::clearOverrideLogicalWidth): Deleted.
(WebCore::RenderBox::clearOverrideContentSize): Deleted.
(WebCore::RenderBox::overrideLogicalWidth const): Deleted.
(WebCore::RenderBox::overrideLogicalHeight const): Deleted.
(WebCore::RenderBox::overrideContainingBlockContentWidth const): Deleted.
(WebCore::RenderBox::overrideContainingBlockContentHeight const): Deleted.
(WebCore::RenderBox::hasOverrideContainingBlockContentWidth const): Deleted.
(WebCore::RenderBox::hasOverrideContainingBlockContentHeight const): Deleted.
(WebCore::RenderBox::overrideContainingBlockContentLogicalWidth const): Deleted.
(WebCore::RenderBox::overrideContainingBlockContentLogicalHeight const): Deleted.
(WebCore::RenderBox::hasOverrideContainingBlockContentLogicalWidth const): Deleted.
(WebCore::RenderBox::hasOverrideContainingBlockContentLogicalHeight const): Deleted.
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth): Deleted.
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight): Deleted.
(WebCore::RenderBox::clearOverrideContainingBlockContentSize): Deleted.
(WebCore::RenderBox::clearOverrideContainingBlockContentLogicalHeight): Deleted.

  • rendering/RenderBox.h:

(WebCore::RenderBox::overridingContentLogicalWidth const):
(WebCore::RenderBox::overridingContentLogicalHeight const):
(WebCore::RenderBox::overrideContentLogicalWidth const): Deleted.
(WebCore::RenderBox::overrideContentLogicalHeight const): Deleted.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
(WebCore::RenderBoxModelObject::relativePositionOffset const):

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::overridingContainingBlockContentWidth const):
(WebCore::RenderBoxModelObject::overridingContainingBlockContentHeight const):
(WebCore::RenderBoxModelObject::hasOverridingContainingBlockContentWidth const):
(WebCore::RenderBoxModelObject::hasOverridingContainingBlockContentHeight const):
(WebCore::RenderBoxModelObject::overrideContainingBlockContentWidth const): Deleted.
(WebCore::RenderBoxModelObject::overrideContainingBlockContentHeight const): Deleted.
(WebCore::RenderBoxModelObject::hasOverrideContainingBlockContentWidth const): Deleted.
(WebCore::RenderBoxModelObject::hasOverrideContainingBlockContentHeight const): Deleted.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::widthForChild):
(WebCore::heightForChild):
(WebCore::gatherFlexChildrenInfo):
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::constructFlexItem):
(WebCore::RenderFlexibleBox::setOverrideMainAxisContentSizeForChild):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::unwrapRenderer):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::overrideSizeChanged):
(WebCore::RenderGrid::updateGridAreaLogicalSize const):
(WebCore::RenderGrid::layoutPositionedObject):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::updateAutoMarginsInRowAxisIfNeeded):
(WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded):
(WebCore::RenderGrid::gridAreaPositionForOutOfFlowChild const):

  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::adjustInlineDirectionLineBounds const):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateLogicalWidth):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::setOverridingLogicalHeightFromRowHeight):
(WebCore::RenderTableCell::setOverrideLogicalHeightFromRowHeight): Deleted.

  • rendering/RenderTableCell.h:
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::relayoutCellIfFlexed):

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

[JSC] Fix argument order for double and/or ops on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=218118

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-10-23
Reviewed by Adrian Perez de Castro.

The andDouble and orDouble macro assembler methods for ARMv7
incorrectly pass the destination register as the last argument,
whereas the assembler expects the destination to be the first
argument.

This fixes a failing testmasm test.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::andDouble):
(JSC::MacroAssemblerARMv7::orDouble):

2:23 AM Changeset in webkit [268917] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.2 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.30.2.
1:26 AM Changeset in webkit [268916] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r267875 - [GTK] WPE and backend versions are mixed up in webkit://gpu
https://bugs.webkit.org/show_bug.cgi?id=217210

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-10-02
Reviewed by Adrian Perez de Castro.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

1:26 AM WebKitGTK/2.30.x edited by Carlos Garcia Campos
(diff)
1:26 AM Changeset in webkit [268915] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r268000 - [GTK][X11] WebProcess crash in WebCore::GLContextGLX::createPbufferContext() with NVidia proprietary drivers
https://bugs.webkit.org/show_bug.cgi?id=217323

Reviewed by Adrian Perez de Castro.

The returnedElements variable might remain uninitialized if the glXChooseFBConfig()
function call fails, leading to execution of the wrong code branch later.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createPbufferContext): Initialized the returnedElements variable.

1:26 AM Changeset in webkit [268914] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r268472 - [GLIB] Fix linking error for systems not providing <sys/memfd.h>
https://bugs.webkit.org/show_bug.cgi?id=217514

Reviewed by Carlos Garcia Campos.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp: Unconditionally check for <sys/mman.h> which should always exist instead

of <sys/memfd.h>. Also define the fallback with syscall() only for linux systems (as it requires <linux/memfd.h>).

1:25 AM Changeset in webkit [268913] by Carlos Garcia Campos
  • 24 edits in releases/WebKitGTK/webkit-2.30/Source

Merge r268522 - [GTK][WPE] Add support for smooth scrolling animation with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=210382

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Respect smooth-scrolling setting and fix deadlock issues with async
scrolling on nicosia path.

No new tests, no functional change.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scrollAnimatorEnabled const):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):

  • page/scrolling/ThreadedScrollingTree.h:

(WebCore::ThreadedScrollingTree::scrollAnimatorEnabled const):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ensureScrollAnimationKinetic):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ensureScrollAnimationSmooth):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::repositionRelatedLayers):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::repositionScrollingLayers):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ensureScrollAnimationKinetic):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ensureScrollAnimationSmooth):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/PlatformWheelEvent.h:
  • platform/ScrollAnimation.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::isActive const):

  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::isActive const):

  • platform/ScrollAnimationSmooth.h:
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation):

Source/WebKit:

Add hasPreciseScrollingDeltas to GTK/WPE wheel events.

No new tests needed.

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):

  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::WebWheelEvent):
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

  • Shared/WebWheelEvent.h:
  • Shared/WebWheelEventCoalescer.cpp:

(WebKit::WebWheelEventCoalescer::canCoalesce):
(WebKit::WebWheelEventCoalescer::coalesce):

  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

1:25 AM Changeset in webkit [268912] by Carlos Garcia Campos
  • 13 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r266390 - [GTK][WPE] Add support for smooth scrolling animation with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=210382

Reviewed by Carlos Garcia Campos.

This removes the dependency on ScrollableArea from
ScrollAnimationSmooth, which allows its use as a utility class for
smooth scrolling. This class is then used in the Nicosia async layer
composition scrolling code to provide smooth scrolling, when the
feature is enabled. This mirrors the work done in bug 209230 for
kinetic scrolling.

No new tests, enabling existing functionality in more situations.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/ScrollAnimation.h:

(WebCore::ScrollAnimation::serviceAnimation):

  • platform/ScrollAnimationKinetic.cpp:
  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::stop):
(WebCore::ScrollAnimationSmooth::updateVisibleLengths):
(WebCore::ScrollAnimationSmooth::animationTimerFired):

  • platform/ScrollAnimationSmooth.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation):

1:25 AM Changeset in webkit [268911] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WTF

Merge r267789 - [GTK] Chassis type check fails if the value is quoted
https://bugs.webkit.org/show_bug.cgi?id=217123

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-09-30
Reviewed by Carlos Garcia Campos.

Sometimes the chassis type can be quoted, in this case we'll fail to
parse it and fall back to desktop type. Unquote the string before
attempting to parse it.

  • wtf/glib/ChassisType.cpp:

(WTF::readMachineInfoChassisType):

1:25 AM Changeset in webkit [268910] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r268906 - [SOUP] Fix crash in WebSocketTask
https://bugs.webkit.org/show_bug.cgi?id=217892

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-23
Reviewed by Carlos Garcia Campos.

The WebSocketTask connects to the "starting" signal of its SoupMessage and never disconnects
this signal, which is only safe if it is guaranteed to outlive its SoupMessage. However, it
is not. We crash when the signal is emitted after the WebSocketTask is destroyed. To solve
this, we just need to disconnect the signal when required. Normally that would be done in
the destructor, but the WebSocketTask drops its ownership of the SoupMessage prior to that
point, so we need to disconnect on each possible paths.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::~WebSocketTask):
(WebKit::WebSocketTask::didConnect):
(WebKit::WebSocketTask::didFail):

1:25 AM Changeset in webkit [268909] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r268394 - [SOUP] webkit_web_view_get_https_status() broken with service workers
https://bugs.webkit.org/show_bug.cgi?id=216038

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-13
Reviewed by Carlos Garcia Campos.

This implements CertificateInfo::isolatedCopy for libsoup ports. This is impossible to do
completely, because we cannot copy the private key portion of the GTlsCertificate, because
it is a write-only property, because it might be backed by a hardware token and therefore
really impossible to write software to get it. If we were to implement g_tls_certificate_copy()
in GLib -- which I will probably do eventually, because I need this outside WebKit as well --
then GTlsCertificate implementations could copy the private key or PKCS#11 handle or
whatever.

But anyway, let not perfect be the enemy of the good. We only need this for service workers
currently. (Probably that's all we'll *ever* need it for.) So we are only working with
server certificates, and the private portion of the certificate is guaranteed to not exist
(because servers don't send us their private keys), and we can just forget about it. As
long as nobody tries to copy a client certificate in the future -- where we really would
need the private key portion of the certificate -- this will be perfectly fine.

Actually copying the certificate is kind of annoying, because a chain of certificates is
represented by having the main (server) certificate keep a reference to its issuer, which is
not referenced anywhere else, so we have to reconstruct the chain in reverse order starting
from the final certificate, working back towards the server cert. Fun. Let's also be
careful to construct a completely new GByteArray rather than expecting the GTlsCertificate
implementation to copy it for us. Because GTlsCertificate is implemented by an extension
point and applications and system administrators can -- and do -- implement their own,
implementations could do anything, including keep a reference to the GByteArray that we
pass in.

It would be nice to have a test for this, but writing tests is hard. Also, I don't really
want to learn what service workers are. :)

Drive-by fix: also remove explicit from a constructor that doesn't need it.

  • platform/network/soup/CertificateInfo.h:

(WebCore::CertificateInfo::isolatedCopy const):

  • platform/network/soup/CertificateInfoSoup.cpp:

(WebCore::createCertificate):
(WebCore::CertificateInfo::isolatedCopy const):

1:25 AM Changeset in webkit [268908] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.30

Merge r268392 - [GStreamer] Crash in WebCore::GStreamerRegistryScanner::isAVC1CodecSupported
https://bugs.webkit.org/show_bug.cgi?id=217647

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The registry scanner was assuming the avc1 codec field is always of the form
avc1.codecprofile, which is wrong.

Covered by test: media/media-can-play-mpeg4-video.html

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const): Check for '.' presence and
fallback to unconstrained check if no profile or level information was extracted.

LayoutTests:

  • media/media-can-play-mpeg4-video-expected.txt:
  • media/media-can-play-mpeg4-video.html: Add test for "avc1" codec.
1:06 AM Changeset in webkit [268907] by commit-queue@webkit.org
  • 7 edits in trunk

[GStreamer] Replace USE(WEBAUDIO_GSTREAMER) with USE(GSTREAMER)
https://bugs.webkit.org/show_bug.cgi?id=218083

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-23
Reviewed by Xabier Rodriguez-Calvar.

.:

A separate define was introduced back when we thought enabling WebAudio without enabling
<audio> would be a highly relevant scenario. I don't think it is very relevant, let's clean
this up.

  • Source/cmake/GStreamerChecks.cmake: Wrap the WebAudio platform bits in the USE(GSTREAMER) umbrella.

Source/WebCore:

  • platform/audio/FFTFrame.h: No need for G_{BEGIN,END}_DECLS dance anymore, these were added

upstream 9 years ago.

  • platform/audio/FFTFrameStub.cpp:
  • platform/audio/HRTFElevation.cpp:
  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:
12:33 AM Changeset in webkit [268906] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[SOUP] Fix crash in WebSocketTask
https://bugs.webkit.org/show_bug.cgi?id=217892

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-23
Reviewed by Carlos Garcia Campos.

The WebSocketTask connects to the "starting" signal of its SoupMessage and never disconnects
this signal, which is only safe if it is guaranteed to outlive its SoupMessage. However, it
is not. We crash when the signal is emitted after the WebSocketTask is destroyed. To solve
this, we just need to disconnect the signal when required. Normally that would be done in
the destructor, but the WebSocketTask drops its ownership of the SoupMessage prior to that
point, so we need to disconnect on each possible paths.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::~WebSocketTask):
(WebKit::WebSocketTask::didConnect):
(WebKit::WebSocketTask::didFail):

Note: See TracTimeline for information about the timeline view.