Timeline



Nov 30, 2020: Today

11:36 AM Changeset in webkit [270256] by youenn@apple.com
  • 24 edits in trunk

Introduce an experimental flag specific to VP9 profile 2
https://bugs.webkit.org/show_bug.cgi?id=219350

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Allow to enable profile 0 but not profile 2 for VP9 encoder and decoder.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(webrtc::createWebKitEncoderFactory):

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

(-[RTCDefaultVideoDecoderFactory initWithH265:vp9Profile0:vp9Profile2:vp9VTB:]):
(-[RTCDefaultVideoDecoderFactory supportedCodecs]):
(-[RTCDefaultVideoDecoderFactory initWithH265:vp9:vp9VTB:]): Deleted.

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

(-[RTCDefaultVideoEncoderFactory initWithH265:vp9Profile0:vp9Profile2:lowLatencyH264:]):
(+[RTCDefaultVideoEncoderFactory supportedCodecs]):
(+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9Profile0:vp9Profile2:]):
(-[RTCDefaultVideoEncoderFactory supportedCodecs]):
(-[RTCDefaultVideoEncoderFactory initWithH265:vp9:lowLatencyH264:]): Deleted.
(+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9:]): Deleted.

Source/WebCore:

Introduce an experimental flag for VP9 profile 2.
Pass it to libwebrtc backend when creating codec factories.
Profile 2 support is only enabled if profile 0 support is also enabled.
Covered by updated test.

  • page/Page.cpp:

(WebCore::m_shouldRelaxThirdPartyCookieBlocking):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCVP9Profile0CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9Profile0CodecEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCVP9Profile2CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9Profile2CodecEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCVP9CodecEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9CodecEnabled): Deleted.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

(WebCore::LibWebRTCProvider::setVP9Support):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

  • testing/Internals.cpp:

(WebCore::Internals::setWebRTCVP9Support):

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

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • webrtc/vp9-expected.txt:
  • webrtc/vp9-vtb.html:
  • webrtc/vp9.html:
11:29 AM Changeset in webkit [270255] by youenn@apple.com
  • 4 edits in trunk

Missing WebRTC Metrics in iOS 14 Beta 5
https://bugs.webkit.org/show_bug.cgi?id=215678
<rdar://problem/67625414>

Reviewed by Eric Carlson.

Source/WebCore:

Expose more stats and fix a bug in stat exposure code for kind.
Covered by updated test.

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillInboundRtpStreamStats):
(WebCore::fillRemoteInboundRtpStreamStats):
(WebCore::fillOutboundRtpStreamStats):

LayoutTests:

  • webrtc/video-stats.html:
11:23 AM Changeset in webkit [270254] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Support remote repositories in git-webkit
https://bugs.webkit.org/show_bug.cgi?id=219172
<rdar://problem/71594909>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program.py:

(Command.parser): Remove repository, since it depends on the parser.
(Command.main): Support arguments to main functions.
(Find.parser): Remove repository, since it depends on the parser.
(Checkout.parser): Ditto.
(Checkout.main): Early return if specified repository is remote.
(main): Construct repository based on path argument.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:

(TestCheckout):
(TestCheckout.test_checkout_remote):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:

(TestFind.test_baisc_svn_remote):

11:20 AM Changeset in webkit [270253] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WebGL2] Rasterizer discard interferes with implicit clears
https://bugs.webkit.org/show_bug.cgi?id=219061

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

When rasterizer discard is enabled, user-level draw calls and
clears skip the implicit clear since they have no effect.
Readbacks and copies still perform the implicit clear.

A new WebGL conformance test has been added for this in
https://github.com/KhronosGroup/WebGL/pull/3183 which passes with
this fix. WebKit's TestRunner doesn't run the composite phase as
the browser or MiniBrowser do, so wouldn't pass this test as
integrated as a layout test. Per discussion with dino and
kkinnunen on Slack, will address this in follow-on work.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::copyTexSubImage3D):
(WebCore::WebGL2RenderingContext::readPixels):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::ScopedDisableRasterizerDiscard::ScopedDisableRasterizerDiscard):
(WebCore::ScopedDisableRasterizerDiscard::~ScopedDisableRasterizerDiscard):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContextBase::clear):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::disable):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::enable):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):

  • html/canvas/WebGLRenderingContextBase.h:
11:08 AM Changeset in webkit [270252] by youenn@apple.com
  • 50 edits
    1 copy
    33 adds
    2 deletes in trunk/LayoutTests

Update WPT WebRTC tests
https://bugs.webkit.org/show_bug.cgi?id=219272

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc: Resynced.

LayoutTests:

Mark a new test as flaky in iOS simulator.

  • platform/ios-simulator-wk2/TestExpectations:
  • tests-options.json:
10:44 AM Changeset in webkit [270251] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix.

Fix non-unified builds after r270224.

  • display/DisplayTreeBuilder.cpp:
  • display/DisplayTreeBuilder.h:
10:13 AM Changeset in webkit [270250] by Aditya Keerthi
  • 11 edits in trunk/Source/WebCore

RenderTheme::paintDecorations should return void
https://bugs.webkit.org/show_bug.cgi?id=219357

Reviewed by Simon Fraser.

RenderTheme::paintDecorations currently returns a boolean value.
However, the returned value is unused. For clarity, the method is
updated to return void. The various "paint*Decorations" methods
called in RenderTheme:paintDecorations are also updated to return void.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintDecorations):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::paintFileUploadIconDecorations):
(WebCore::RenderTheme::paintCheckboxDecorations):
(WebCore::RenderTheme::paintRadioDecorations):
(WebCore::RenderTheme::paintButtonDecorations):
(WebCore::RenderTheme::paintTextFieldDecorations):
(WebCore::RenderTheme::paintTextAreaDecorations):
(WebCore::RenderTheme::paintMenuListDecorations):
(WebCore::RenderTheme::paintMenuListButtonDecorations):
(WebCore::RenderTheme::paintPushButtonDecorations):
(WebCore::RenderTheme::paintSquareButtonDecorations):
(WebCore::RenderTheme::paintSliderThumbDecorations):
(WebCore::RenderTheme::paintSearchFieldDecorations):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::paintMenuListButtonDecorations):

  • rendering/RenderThemeAdwaita.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintCheckboxDecorations):
(WebCore::RenderThemeIOS::paintRadioDecorations):
(WebCore::RenderThemeIOS::paintTextFieldDecorations):
(WebCore::RenderThemeIOS::paintTextAreaDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintSliderThumbDecorations):
(WebCore::RenderThemeIOS::paintSearchFieldDecorations):
(WebCore::RenderThemeIOS::paintButtonDecorations):
(WebCore::RenderThemeIOS::paintPushButtonDecorations):
(WebCore::RenderThemeIOS::paintFileUploadIconDecorations):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuListButtonDecorations):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::paintMenuListButtonDecorations):

  • rendering/RenderThemeWin.h:
9:40 AM Changeset in webkit [270249] by Antti Koivisto
  • 9 edits in trunk/Source/WebKit

Remove throttling code from NetworkLoad
https://bugs.webkit.org/show_bug.cgi?id=219347

Reviewed by Anders Carlsson.

It is not a good latency simulation and no one is using it anyway.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::Throttle::Throttle): Deleted.
(WebKit::NetworkLoad::throttleDelayCompleted): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::shouldLogCookieInformation const):
(WebKit::NetworkSession::loadThrottleLatency const): Deleted.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

9:39 AM Changeset in webkit [270248] by commit-queue@webkit.org
  • 5 edits
    2 adds
    2 deletes in trunk

getComputedStyle rounds lineHeight to nearest pixel
https://bugs.webkit.org/show_bug.cgi?id=216601

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-11-30
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:

Update test reflecting the fact that serialization of line-height from
getComputedStyle is now represented fractionally (when appropriate).
Prior to this patch, line-height serialization was always an integer value.

Source/WebCore:

When serializing line-height for getComputedStyle, ensure the
value can be represented fractionally (when appropriate). Prior to this
patch, line-height serialization was always an integer value. Per
spec, the used value of line-height can be a <number> value, which
is fractional. Gecko and Chromium allow fractional line-heights to be
returned from getComputedStyle, further confirming this.

https://drafts.csswg.org/css2/#propdef-line-height

Test: fast/css/line-height-get-computed-style.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::lineHeightFromStyle): Cast result to double instead of
int since line-height can be represented fractionally.

LayoutTests:

Add test ensuring serialization of line-height from
getComputedStyle is represented fractionally (when appropriate).
Prior to this patch, line-height serialization was always an integer value.

The line-height-rounding.html test has been removed, as it expected
line-height to serialize as an integer, which seems wrong
considering the used value for line-height can be a <number>
(which is fractional). Gecko and Chromium allow fractional
line-heights to be returned from getComputedStyle, further
confirming this.

https://drafts.csswg.org/css2/#propdef-line-height

  • fast/css/line-height-get-computed-style-expected.txt: Added.
  • fast/css/line-height-get-computed-style.html: Added.
  • fast/css/line-height-rounding-expected.txt: Removed.
  • fast/css/line-height-rounding.html: Removed.
9:09 AM WebKitGTK/2.30.x edited by clopez@igalia.com
(diff)
9:07 AM Changeset in webkit [270247] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitscmpy] webkitscmpy.test.svn_unittest.TestRemoteSvn.test_info timezone dependent
https://bugs.webkit.org/show_bug.cgi?id=219263
<rdar://problem/71806358>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestRemoteSvn.test_info):

8:39 AM Changeset in webkit [270246] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update RunTest262Tests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219356

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(RunTest262Tests):
(RunTest262Tests.start): Initialized log observer.
(RunTest262Tests.parseOutputLine): Parse each log line as they come.
(RunTest262Tests.countFailures): Updated to return failedTestCount.

8:35 AM Changeset in webkit [270245] by Aditya Keerthi
  • 10 edits in trunk/Source/WebCore

Use real dates and times as placeholders for date/time inputs with editable components
https://bugs.webkit.org/show_bug.cgi?id=219216
<rdar://problem/71636615>

Reviewed by Devin Rousso.

Currently, date/time inputs with editable components have "--" as a
placeholder when the input is empty. This is undesirable for two reasons:

  1. "--" does not fill the width of the component, leading to an unpleasant appearance.
  2. The order of the date/time components is unclear.

To resolve these issues, this patch introduces real dates and times as
placeholders. For dates, the current date is used as a placeholder.
For times, a fixed time (such as "12:30 PM") is used, to avoid being
overly specific. Note that the second and millisecond fields for times
will always have "00" and "000" as a placeholder respectively.

When the placeholder is visible, the text color is changed to dark gray,
matching the placeholder in regular text inputs. Note that date/time
placeholders are not customizable in any way, as it is an unspecified aspect
of the element. Separators are left in the existing text color, to avoid
making the input look disabled.

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditElement::DateTimeEditElement):
(WebCore::DateTimeEditElement::placeholderDate const):

  • html/shadow/DateTimeEditElement.h:

Introduced m_placeholderDate, which is set to the current date.

  • html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::setEmptyValue):
(WebCore::DateTimeFieldElement::setValueAsInteger):
(WebCore::DateTimeFieldElement::visibleValue const):
(WebCore::DateTimeFieldElement::updateVisibleValue):

Removed early return when the previous visible value is equal to the
updated visible value. This can occur when the placeholder value is equal
to the value entered by the user. In these instances, we should still
dispatch input and change events.

  • html/shadow/DateTimeFieldElement.h:

Added base class implementations of setEmptyValue and setValueAsInteger
so that the logic to change the text color when a placeholder is visible
can be shared.

Changed visibleValue to no longer be a pure virtual method, as the
implementations in derived classes were very similar, and can be
abstracted. For this reason, the new placeholderValue pure virtual method
was added.

  • html/shadow/DateTimeFieldElements.cpp:

(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
(WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement):
(WebCore::DateTimeMeridiemFieldElement::DateTimeMeridiemFieldElement):
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
(WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):

Months are 0-indexed, so we add 1 to the value returned by month().

(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
(WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
(WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):

  • html/shadow/DateTimeNumericFieldElement.cpp:

(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::setEmptyValue):
(WebCore::DateTimeNumericFieldElement::setValueAsInteger):
(WebCore::DateTimeNumericFieldElement::placeholderValue const):
(WebCore::DateTimeNumericFieldElement::valueAsInteger const):

  • html/shadow/DateTimeNumericFieldElement.h:
  • html/shadow/DateTimeSymbolicFieldElement.cpp:

(WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
(WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
(WebCore::DateTimeSymbolicFieldElement::setValueAsInteger):
(WebCore::DateTimeSymbolicFieldElement::placeholderValue const):
(WebCore::DateTimeSymbolicFieldElement::valueAsInteger const):

  • html/shadow/DateTimeSymbolicFieldElement.h:
7:39 AM Changeset in webkit [270244] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant const ContainerBox& formattingContextRoot from LineBuilder c'tor
https://bugs.webkit.org/show_bug.cgi?id=219339

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::root const):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::root const): Deleted.

7:08 AM Changeset in webkit [270243] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Automatically delete old data from ews buildbot instance
https://bugs.webkit.org/show_bug.cgi?id=214921

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/master.cfg: Configured JanitorConfigurator to delete logs older than one year, and

configured to run every morning.

7:07 AM Changeset in webkit [270242] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Properly garden webrtc crashes

Unreviewed test gardening.

  • platform/gtk-wayland/TestExpectations: Move wayland-specific issue here
  • platform/gtk/TestExpectations: Updated already existing expectations
  • platform/wpe/TestExpectations: Remove undeed pass entries from previous unimplemented-like bugs that are already fixed. These entries were overriding the generic glib entries.
7:05 AM Changeset in webkit [270241] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update RunLLINTCLoopTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219084

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(RunLLINTCLoopTests):
(RunLLINTCLoopTests.start): Initialized log observer.
(RunLLINTCLoopTests.parseOutputLine): Parse each log line as they come.
(RunLLINTCLoopTests.countFailures): Updated to return failedTestCount.

7:00 AM Changeset in webkit [270240] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Preferred width computation is not constrained by existing floats
https://bugs.webkit.org/show_bug.cgi?id=219338

Reviewed by Antti Koivisto.

Let's create a fake(empty) floating state/context for the line as existing floats should not constrain the min/max content widths.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

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

[LFC][TFC] Add missing TableGrid::Row::m_baseline initialization
https://bugs.webkit.org/show_bug.cgi?id=219336

Reviewed by Antti Koivisto.

  • layout/tableformatting/TableGrid.h:
6:11 AM Changeset in webkit [270238] by Andres Gonzalez
  • 7 edits in trunk/Source/WebCore

AXIsolatedTree::m_axObjectCache should not be accessed on the secondary AX thread.
https://bugs.webkit.org/show_bug.cgi?id=219223

Reviewed by Chris Fleizach.

AXIsolatedTree::m_axObjectCache was being set on the main thread and
also accessed on the AX thread in the nodeForID and applyPendingChanges
methods. This problem is fixed with this change by adding the member
variable m_usedOnAXThread that is initialized on the main thread and only
used on the AX thread. This means also a performance optimization since
nodeForID and applyPendingChanges are called very frequently.
In addition, the change to AXIsolatedTree::create fixes a possible race
condition between the time the newly created tree was added to the map
of trees on the main thread, and the time that the tree is ready to be
used on the AX thread. Now the newly created tree is not added to the
trees map until it is fully functional.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreateIsolatedTree const):
(WebCore::AXObjectCache::generateIsolatedTree): Deleted, the creation
and initialization of the isolated tree is now done in
AXIsolatedTree::create.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::pageID const): Getter for the m_pageID member
variable.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject): Now takes a pointer t the
tree instead of a tree ID.
(WebCore::AXIsolatedObject::create): Same as above.
(WebCore::AXIsolatedObject::associatedAXObject const):
(WebCore::AXIsolatedObject::setSelectedChildren): Check for nullity of
the AXObjectCache.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::AXIsolatedTree): Takes an AXObjectCache.
(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::create): Takes an AXObjectCache.
(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::applyPendingChanges):
(WebCore::AXIsolatedTree::createTreeForPageID): Deleted, became
AXIsolatedTree::create.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::axObjectCache const):
(WebCore::AXIsolatedTree::setAXObjectCache): Deleted, can be set only at
construction time.

4:49 AM Changeset in webkit [270237] by svillar@igalia.com
  • 7 edits
    30 adds in trunk/LayoutTests

[css-flex] Import flex-aspect-ratio-img-* tests
https://bugs.webkit.org/show_bug.cgi?id=219344

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt: Updated.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html: Ditto.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-011-expected.xht: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-011.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-012-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-012.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

As part of the work to fix the images with aspect ratio handling when they're flex items, we're importing the latest
additions to the WPT test suite related to that. A few of them work as expected but others require fixes. Note that
one of the tests also updated their expectations and it's now failing now 2 subtests.

2:01 AM Changeset in webkit [270236] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] webrtc/captureCanvas-webrtc-software-h264-baseline.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=218875
<rdar://problem/71349101>

Unreviewed.

  • platform/mac-wk2/TestExpectations:

Remove flaky expectation.

1:29 AM Changeset in webkit [270235] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Media player does not properly inhibit, uninhibit sleep
https://bugs.webkit.org/show_bug.cgi?id=186971

Reviewed by Philippe Normand.

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

(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates): Call the
player to update the playback state as it is done in the regular
player.

Nov 29, 2020: Yesterday

9:36 PM Changeset in webkit [270234] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Deny logs for benign fontservicesd daemon
https://bugs.webkit.org/show_bug.cgi?id=219180

Patch by Adam Mazander <mazander@apple.com> on 2020-11-29
Reviewed by Per Arne Vollan.

After investigating denials of fontservicesd logs over several submissions
and without any fallout we are removing logging.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:20 PM Changeset in webkit [270233] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Gardening WebGL failures

Unreviewed test gardening

  • platform/gtk/TestExpectations:
6:43 PM Changeset in webkit [270232] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening webrtc crashes

Unreviewed test gardening.

  • platform/glib/TestExpectations:
5:41 PM Changeset in webkit [270231] by Alan Bujtas
  • 4 edits in trunk/LayoutTests

[LFC][Display] Enable LFC tests that are passing now
https://bugs.webkit.org/show_bug.cgi?id=219337

Unreviewed.

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
12:50 PM Changeset in webkit [270230] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][BFC] Do not assume float avoiders have pre-computed vertical positions
https://bugs.webkit.org/show_bug.cgi?id=219326

Reviewed by Antti Koivisto.

Source/WebCore:

Move the final vertical position computation from computeHeightAndMargin() (it does not really belong in there) to
layoutInFlowContent(). This patch also ensures that we only adjust the vertical position when needed.

Test: fast/layoutformattingcontext/block-only/child-containing-block-margin-collapse-when-float-avoiders.html

  • layout/blockformatting/BlockFormattingContext.cpp:

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

LayoutTests:

  • fast/layoutformattingcontext/block-only/child-containing-block-margin-collapse-when-float-avoiders-expected.html: Added.
  • fast/layoutformattingcontext/block-only/child-containing-block-margin-collapse-when-float-avoiders.html: Added.
11:44 AM Changeset in webkit [270229] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Create runs for inline boxes
https://bugs.webkit.org/show_bug.cgi?id=219329

Reviewed by Antti Koivisto.

With this patch we start constructing runs for inline boxes (these are spec "inline boxes" and not legacy line layout "inline boxes").

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalMarginRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayInlineBoxes const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

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

[LFC][IFC] Remove LineBuilder::availableWidth
https://bugs.webkit.org/show_bug.cgi?id=219330

Reviewed by Antti Koivisto.

There is no "global" available width while building the line. It may very well change as
inline level boxes stretch the line and additional floats turn to intrusive.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::handleFloatOrInlineContent):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::availableWidth const): Deleted.

10:46 AM Changeset in webkit [270227] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] FloatingContext should take const FloatingState&
https://bugs.webkit.org/show_bug.cgi?id=219331

Reviewed by Antti Koivisto.

Let's not use FloatContext as a proxy for adding float items to the FloatingState.
It enables us to use FloatingContext when we don't have mutable FloatingState e.g. while
computing preferred width.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::toFloatItem const):
(WebCore::Layout::FloatingContext::append): Deleted.

  • layout/floats/FloatingContext.h:

(WebCore::Layout::FloatingContext::floatingState const):
(WebCore::Layout::FloatingContext::layoutState const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

Nov 28, 2020:

10:47 PM Changeset in webkit [270226] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewd, annotate stress/bounds-checking-in-cold-loop.js with memoryLimited

  • stress/bounds-checking-in-cold-loop.js:
10:32 PM Changeset in webkit [270225] by don.olmstead@sony.com
  • 4 edits in trunk/Source/WebCore

Non-unified build fixes, late November 2020 edition, take three
https://bugs.webkit.org/show_bug.cgi?id=219333

Unreviewed non-unified build fixes.

  • display/css/DisplayBoxFactory.cpp:
  • display/css/DisplayCSSPainter.cpp:
  • display/css/DisplayContainerBox.cpp:
9:10 PM Changeset in webkit [270224] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

[LFC Display] Use a vector to maintain state during display tree building
https://bugs.webkit.org/show_bug.cgi?id=219314

Reviewed by Zalan Bujtas.

Over time more state will be required during tree building. Rather than using the stack
and passing lots of arguments to tree building functions, use a Vector<> to push state
when processing a ContainerBox's children, and pop afterwards.

The vector is declared as a std::unique_ptr<> to hide the state types from the header.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::TreeBuilder):
(WebCore::Display::TreeBuilder::build):
(WebCore::Display::TreeBuilder::pushStateForBoxDescendants):
(WebCore::Display::TreeBuilder::popState):
(WebCore::Display::TreeBuilder::currentState const):
(WebCore::Display::TreeBuilder::positioningContext const):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree const): Deleted.
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const): Deleted.

  • display/DisplayTreeBuilder.h:
8:20 PM Changeset in webkit [270223] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r270214
https://bugs.webkit.org/show_bug.cgi?id=219281

ARM64 does not support unary Not32 / Not64.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):

8:05 PM Changeset in webkit [270222] by Simon Fraser
  • 10 edits
    1 copy
    1 add in trunk/Source/WebCore

[LFC Display] Add basic transforms support.
https://bugs.webkit.org/show_bug.cgi?id=219313

Reviewed by Zalan Bujtas.

Add Display::BoxRareGeometry which will hold uncommon per-box geometry like
border-radius and transformation matrix.

At tree building time, compute a TransformationMatrix for the transforms on a box,
using a pixel-snapped transform origin. Also store a bit on Display::Style to indicate
that a transform applies (when set, we assume that BoxRareGeometry is non-null).

At paint time, use the computed matrix to adjust the CTM when painting a stacking
context, post-clipping and pre-effects. We adjust the box's matrix to move the
applied origin to the origin of the border box, and to account for the fact that
descendants will continue to paint in absolute coordinates.

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

(WebCore::Display::BoxFactory::computeTransformOrigin const):
(WebCore::Display::BoxFactory::computeTransformationMatrix const):
(WebCore::Display::BoxFactory::constructBoxRareGeometry const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):

  • display/css/DisplayBoxFactory.h:
  • display/css/DisplayBoxModelBox.cpp:

(WebCore::Display::BoxModelBox::setBoxRareGeometry):
(WebCore::Display::BoxModelBox::hasAncestorClip const):

  • display/css/DisplayBoxModelBox.h:

(WebCore::Display::BoxModelBox::rareGeometry const):

  • display/css/DisplayBoxRareGeometry.cpp: Added.
  • display/css/DisplayBoxRareGeometry.h: Copied from Source/WebCore/display/css/DisplayBoxModelBox.h.

(WebCore::Display::BoxRareGeometry::transform const):
(WebCore::Display::BoxRareGeometry::setTransform):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::applyAncestorClip):
(WebCore::Display::applyEffects):
(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):

  • display/css/DisplayStyle.cpp:

(WebCore::Display::Style::Style):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::hasTransform const):
(WebCore::Display::Style::setHasTransform):

4:19 PM Changeset in webkit [270221] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

[LFC Display] Add basic opacity support.
https://bugs.webkit.org/show_bug.cgi?id=219312

Reviewed by Zalan Bujtas.

Add a TransparencyLayerScope helper that can lazily begin, and end a transparency layer.

Add display tree support for opacity via applyEffects(), which begins a transparency
layer at the start of stacking context painting when alpha is < 1.

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BorderPainter::paintTranslucentBorderSides const):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::applyEffects):
(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):

  • display/css/DisplayStyle.cpp:

(WebCore::Display::Style::Style):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::opacity const):

  • platform/graphics/GraphicsContext.h:

(WebCore::TransparencyLayerScope::TransparencyLayerScope):
(WebCore::TransparencyLayerScope::beginLayer):
(WebCore::TransparencyLayerScope::~TransparencyLayerScope):

11:37 AM Changeset in webkit [270220] by Antti Koivisto
  • 26 edits
    2 adds in trunk/Source/WebCore

Move caret rect computation out of render tree
https://bugs.webkit.org/show_bug.cgi?id=219304

Reviewed by Zalan Bujtas.

Reduce code randomly sprinkled on renderers by moving it into standalone functions.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::localCaretRectForCharacterOffset):

  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::absoluteRect const):

  • editing/RenderedPosition.h:
  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::localCaretRect const):

  • rendering/CaretRectComputation.cpp: Added.

(WebCore::computeCaretRectForEmptyElement):
(WebCore::computeCaretRectForLinePosition):
(WebCore::computeCaretRectForText):
(WebCore::computeCaretRectForLineBreak):
(WebCore::computeCaretRectForSVGInlineText):
(WebCore::computeCaretRectForBox):
(WebCore::computeCaretRectForBlock):
(WebCore::computeCaretRectForInline):
(WebCore::computeLocalCaretRect):

  • rendering/CaretRectComputation.h: Added.
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::localCaretRect const): Deleted.

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

(WebCore::RenderBlockFlow::computeCaretRect const): Deleted.

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

(WebCore::RenderBox::localCaretRect const): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::localCaretRectForEmptyElement const): Deleted.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::localCaretRect const): Deleted.

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect const): Deleted.

  • rendering/RenderLineBreak.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::localCaretRect const): Deleted.

  • rendering/RenderObject.h:
  • rendering/RenderObjectEnums.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::localCaretRect const): Deleted.

  • rendering/RenderText.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::localCaretRect const): Deleted.

  • rendering/svg/RenderSVGInlineText.h:
9:05 AM Changeset in webkit [270219] by pvollan@apple.com
  • 11 edits
    1 add in trunk/Source

[macOS] Set application information in the Networking process on behalf of the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=218052
<rdar://problem/70586405>

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare function to create ASN from an audit token.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

In preparation for blocking Launch Services in the WebContent process' sandbox, application information for the process
should be set in the Networking process.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/mac/NetworkConnectionToWebProcessMac.mm: Added.

(WebKit::NetworkConnectionToWebProcess::updateActivePages):

  • Scripts/process-entitlements.sh:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::activePagesOrigins):
(WebKit::WebProcess::updateActivePages):
(WebKit::WebProcess::getActivePagesOriginsForTesting):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Add define to enable this feature.

  • wtf/PlatformEnableCocoa.h:
6:40 AM Changeset in webkit [270218] by don.olmstead@sony.com
  • 4 edits in trunk/Source/WebCore

Remove enums for GCGLenum constants in GraphicsContextGL and ExtensionsGL
https://bugs.webkit.org/show_bug.cgi?id=219319

Reviewed by Darin Adler.

Both GraphicsContextGL and ExtensionsGL were using C style enums to scope GCGLenum
values. Rather than using the enum static constexpr values of GCGLenum are used
instead.

This removes the need in WebGLDrawBuffers to static_cast the enums to GCGLenum
which works around a narrowing error.

No new tests. No change in behavior.

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::drawBuffersWEBGL):

  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/GraphicsContextGL.h:
6:07 AM Changeset in webkit [270217] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK LTS build fix after r270195

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::linesBoundingBox const):

4:52 AM Changeset in webkit [270216] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension to icon services when starting a drag operation
https://bugs.webkit.org/show_bug.cgi?id=219159
<rdar://problem/71585876>

Reviewed by Brent Fulgham.

Issue sandbox extension to icon services when starting a drag operation on macOS, since the WebContent process needs
access to these services when a drag is started. This patch detects when a drag is about to start, and sends sandbox
extensions to the icon services along with the mouse event. The sandbox extensions are then temporarily consumed
while handling the mouse event in the WebContent process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processNextQueuedMouseEvent):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):
(WebKit::WebPage::consumeSandboxExtensions):
(WebKit::WebPage::revokeSandboxExtensions):

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

Nov 27, 2020:

9:17 PM Changeset in webkit [270215] by Simon Fraser
  • 13 edits
    2 copies in trunk/Source/WebCore

[LFC Display] Implement basic overflow:hidden clipping
https://bugs.webkit.org/show_bug.cgi?id=219311

Reviewed by Zalan Bujtas.

Add BoxClip which represents the clip generated by walking the containing block ancestor chain
of a box. Display::BoxModelBox optionally has a BoxClip if it's a box that paints out of order
(i.e. participates in z-order sorting, so positioned or stacking context). That BoxClip
represents the clip contributed by ancestors, and it's applied before painting this box.
If a Box has overflow clip, then that is also additionally applied before painting the
in-flow descendants of the box.

To compute BoxClip, ask the display box for the relevant containing block for its clip,
which takes the clip from ancestors and appends the clip for that box (if any).

Also move accessors for borderRoundedRect() and innerBorderRoundedRect() onto Display::BoxModelBox
since they are needed for clipping as well as painting.

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

(WebCore::Display::BoxClip::BoxClip):
(WebCore::Display::BoxClip::copy const):
(WebCore::Display::BoxClip::pushClip):
(WebCore::Display::BoxClip::pushRoundedClip):

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

(WebCore::Display::BoxClip::create):
(WebCore::Display::BoxClip::clipRect const):
(WebCore::Display::BoxClip::affectedByBorderRadius const):
(WebCore::Display::BoxClip::clipStack const):

  • display/css/DisplayBoxDecorationData.cpp:

(WebCore::Display::roundedRectWithIncludedRadii):
(WebCore::Display::roundedInsetBorderForRect):

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

(WebCore::Display::BoxDecorationPainter::innerBorderRoundedRect const):
(WebCore::Display::roundedRectWithIncludedRadii): Deleted.
(WebCore::Display::roundedInsetBorderForRect): Deleted.

  • display/css/DisplayBoxFactory.cpp:

(WebCore::Display::BoxFactory::setupBoxModelBox const):

  • display/css/DisplayBoxModelBox.cpp:

(WebCore::Display::BoxModelBox::borderRoundedRect const):
(WebCore::Display::BoxModelBox::innerBorderRoundedRect const):
(WebCore::Display::BoxModelBox::setAncestorClip):
(WebCore::Display::BoxModelBox::clipForDescendants const):
(WebCore::Display::BoxModelBox::debugDescription const):

  • display/css/DisplayBoxModelBox.h:

(WebCore::Display::BoxModelBox::ancestorClip const):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::applyClipIfNecessary):
(WebCore::Display::applyAncestorClip):
(WebCore::Display::CSSPainter::recursivePaintDescendantsForPhase):
(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):

  • display/css/DisplayContainerBox.cpp:

(WebCore::Display::ContainerBox::debugDescription const):

  • display/css/DisplayStyle.cpp:

(WebCore::Display::Style::Style):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::hasClippedOverflow const):

8:31 PM Changeset in webkit [270214] by ysuzuki@apple.com
  • 18 edits in trunk

[JSC] Use ARM atomic ops in wasm
https://bugs.webkit.org/show_bug.cgi?id=219281

Reviewed by Filip Pizlo.

JSTests:

  • wasm/threads-spec-tests/atomic-signed.wast.js:
  • wasm/threads-spec-tests/resources/atomic-signed.wast:

Source/JavaScriptCore:

This patch uses ARM LSE Atomic instructions in wasm atomic operations. This includes support in MacroAssembler, offlineasm, Air and B3,
so that FTL atomic operations automatically leverage ARM LSE atomic instructions too. Later we can extend DFG JIT to use it too.

One interesting thing is that this includes a fix for cmpxchg wasm operation implementations. Unfortunately, current wasm cmpxchg ops
are not the same to ARM cas / X86 cmpxchg. For example, i64.atomic.rmw8.cmpxchg_u takes i64 expected value. And the spec requires that
we should perform i64-expected-value <cmp> loaded-zero-extended-1byte-value. For example, if the expected value is 0xffffffff_ffffff00,
and the value stored in the memory is 0x00, then the wasm op needs to fail since 0x00 is not 0xffffffff_ffffff00. But x86 and ARM
cmpxchg / cas ops behave differently since it truncates expected value to 1byte when performing 1byte cmpxchg. So we need to have a check
which performs the value is within 1byte range in this operation.

  • assembler/ARM64EAssembler.h:

(JSC::ARM64EAssembler::exoticAtomicLoadStore):
(JSC::ARM64EAssembler::exoticAtomicCAS):
(JSC::ARM64EAssembler::ldaddal):
(JSC::ARM64EAssembler::ldeoral):
(JSC::ARM64EAssembler::ldclral):
(JSC::ARM64EAssembler::ldsetal):
(JSC::ARM64EAssembler::swpal):
(JSC::ARM64EAssembler::casal):

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::atomicXchgAdd8):
(JSC::MacroAssemblerARM64E::atomicXchgAdd16):
(JSC::MacroAssemblerARM64E::atomicXchgAdd32):
(JSC::MacroAssemblerARM64E::atomicXchgAdd64):
(JSC::MacroAssemblerARM64E::atomicXchgXor8):
(JSC::MacroAssemblerARM64E::atomicXchgXor16):
(JSC::MacroAssemblerARM64E::atomicXchgXor32):
(JSC::MacroAssemblerARM64E::atomicXchgXor64):
(JSC::MacroAssemblerARM64E::atomicXchgOr8):
(JSC::MacroAssemblerARM64E::atomicXchgOr16):
(JSC::MacroAssemblerARM64E::atomicXchgOr32):
(JSC::MacroAssemblerARM64E::atomicXchgOr64):
(JSC::MacroAssemblerARM64E::atomicXchgClear8):
(JSC::MacroAssemblerARM64E::atomicXchgClear16):
(JSC::MacroAssemblerARM64E::atomicXchgClear32):
(JSC::MacroAssemblerARM64E::atomicXchgClear64):
(JSC::MacroAssemblerARM64E::atomicXchg8):
(JSC::MacroAssemblerARM64E::atomicXchg16):
(JSC::MacroAssemblerARM64E::atomicXchg32):
(JSC::MacroAssemblerARM64E::atomicXchg64):
(JSC::MacroAssemblerARM64E::atomicStrongCAS8):
(JSC::MacroAssemblerARM64E::atomicStrongCAS16):
(JSC::MacroAssemblerARM64E::atomicStrongCAS32):
(JSC::MacroAssemblerARM64E::atomicStrongCAS64):

  • b3/B3LowerMacros.cpp:
  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/air/opcode_generator.rb:
  • disassembler/ARM64/A64DOpcode.cpp:

(JSC::ARM64Disassembler::A64DOpcodeLoadAtomic::format):
(JSC::ARM64Disassembler::A64DOpcodeSwapAtomic::format):
(JSC::ARM64Disassembler::A64DOpcodeCAS::format):

  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcode::appendInstructionName):
(JSC::ARM64Disassembler::A64DOpcodeLoadAtomic::opName):
(JSC::ARM64Disassembler::A64DOpcodeLoadAtomic::rs):
(JSC::ARM64Disassembler::A64DOpcodeLoadAtomic::opc):
(JSC::ARM64Disassembler::A64DOpcodeLoadAtomic::ar):
(JSC::ARM64Disassembler::A64DOpcodeLoadAtomic::opNumber):
(JSC::ARM64Disassembler::A64DOpcodeSwapAtomic::opName):
(JSC::ARM64Disassembler::A64DOpcodeSwapAtomic::rs):
(JSC::ARM64Disassembler::A64DOpcodeSwapAtomic::ar):
(JSC::ARM64Disassembler::A64DOpcodeSwapAtomic::opNumber):
(JSC::ARM64Disassembler::A64DOpcodeCAS::opName):
(JSC::ARM64Disassembler::A64DOpcodeCAS::rs):
(JSC::ARM64Disassembler::A64DOpcodeCAS::o1):
(JSC::ARM64Disassembler::A64DOpcodeCAS::l):
(JSC::ARM64Disassembler::A64DOpcodeCAS::opNumber):

  • llint/WebAssembly.asm:
  • offlineasm/arm64.rb:
  • offlineasm/instructions.rb:
  • offlineasm/x86.rb:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::sanitizeAtomicResult):
(JSC::Wasm::AirIRGenerator::appendGeneralAtomic):
(JSC::Wasm::AirIRGenerator::appendStrongCAS):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitAtomicCompareExchange):

8:29 PM Changeset in webkit [270213] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r270210.

It broke TestWebKitAPI.GPUProcess.CrashWhilePlayingVideo on
iOS

Reverted changeset:

"[WinCairo?] GPU process remains alive even after web process
exited"
https://bugs.webkit.org/show_bug.cgi?id=219321
https://trac.webkit.org/changeset/270210

7:56 PM Changeset in webkit [270212] by Fujii Hironori
  • 3 edits
    1 add
    1 delete in trunk/Source/ThirdParty/ANGLE

[ANGLE] Convert adjust-angle-include-paths.sh to a Python script for Windows without Cygwin
https://bugs.webkit.org/show_bug.cgi?id=219299

Reviewed by Kenneth Russell.

WinCairo port can't use shell scripts because it isn't using
Cygwin.

  • ANGLE.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • adjust-angle-include-paths.py: Added.
  • adjust-angle-include-paths.sh: Removed.
7:51 PM Changeset in webkit [270211] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove unnecessary passes after r270017.

  • platform/wpe/TestExpectations:
7:21 PM Changeset in webkit [270210] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo?] GPU process remains alive even after web process exited
https://bugs.webkit.org/show_bug.cgi?id=219321

Reviewed by Don Olmstead.

AuxiliaryProcess::didClose is calling _exit. However, GPUProcess
overrode AuxiliaryProcess::didClose but it did nothing. GPUProcess
doesn't need to override it.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::didClose): Deleted.

  • GPUProcess/GPUProcess.h:
6:31 PM Changeset in webkit [270209] by Simon Fraser
  • 9 edits in trunk

[LFC Display] Fix box locations for positioned elements
https://bugs.webkit.org/show_bug.cgi?id=219310

Source/WebCore:

Reviewed by Zalan Bujtas.

The code assumed that layout boxes were always positioned relative to their parents,
but border box geometry is actually relative to containing block. To keep track
of this when building the display tree, add PositioningContext which tracks
containing blocks for three types of positioning (fixed, absolute and in-flow),
and root-relative offsets for each.

The code then passes the appropriate containing block box + offset into the Display::BoxFactory
code, which uses the offset to compute absolute box rects.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::PositioningContext::PositioningContext):
(WebCore::Display::PositioningContext::m_absolutePositionContainer):
(WebCore::Display::PositioningContext::m_inFlowContainer):
(WebCore::Display::PositioningContext::contextForDescendants const):
(WebCore::Display::PositioningContext::containingBlockContextForLayoutBox const):
(WebCore::Display::PositioningContext::inFlowContainingBlockContext const):
(WebCore::Display::TreeBuilder::build):
(WebCore::Display::TreeBuilder::buildInlineDisplayTree const):
(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):

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

(WebCore::Display::BoxFactory::displayBoxForRootBox const):
(WebCore::Display::BoxFactory::displayBoxForBodyBox 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:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::containingBlock const):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isContainingBlockForInFlow const):
(WebCore::Layout::Box::isContainingBlockForFixedPosition const):
(WebCore::Layout::Box::isContainingBlockForOutOfFlowPosition const):

LayoutTests:

Reviewed by NOBODY (OOPS!).

Two table tests are now image failures because of webkit.org/b/219322.

4:02 PM Changeset in webkit [270208] by ysuzuki@apple.com
  • 38 edits
    9 adds in trunk

[JSC] Add wasm atomics instructions
https://bugs.webkit.org/show_bug.cgi?id=218954

Reviewed by Filip Pizlo.

JSTests:

  • wasm.yaml:
  • wasm/Builder.js:

(const._importMemoryContinuation):
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):

  • wasm/Builder_WebAssemblyBinary.js:

(const.putResizableLimits):
(const.emitters.Import):
(const.emitters.Memory):

  • wasm/function-tests/trap-load-shared.js:
  • wasm/function-tests/trap-store-shared.js:
  • wasm/stress/atomic-decrement.js: Added.

(i.agent.start.import.string_appeared_here.then):
(i.async error):

  • wasm/stress/atomic-increment.js: Added.

(i.agent.start.import.string_appeared_here.then):
(i.async error):

  • wasm/stress/memory-fence.js: Added.

(async try):
(catch):

  • wasm/threads-spec-tests/atomic-signed.wast.js: Added.
  • wasm/threads-spec-tests/atomic.wast.js: Added.
  • wasm/threads-spec-tests/memory.wast.js: Added.
  • wasm/threads-spec-tests/resources/atomic-signed.wast: Added.
  • wasm/wasm.json:

Source/JavaScriptCore:

This patch implements wasm threading's atomic operations[1] in X86_64 and ARM64. Currently, all ARM64 atomic operations are implemented by using LL/SC.
Later, we will use ARM64 CAS operations if possible, at least in ARM64E.

To test it easily, we also extend jsc shell's worker to support transferring shared WebAssembly.Memory so that we can use wasm atomic operations in several
workers in jsc shell.

[1]: https://github.com/WebAssembly/threads

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::atomicXchg8):
(JSC::MacroAssemblerX86Common::atomicXchg16):
(JSC::MacroAssemblerX86Common::atomicXchg32):

  • b3/B3Kind.h:

(JSC::B3::Kind::hasTraps const):

  • b3/B3LowerToAir.cpp:
  • b3/B3Width.h:

(JSC::B3::bytesForWidth):

  • b3/testb3_8.cpp:

(testAtomicXchg):

  • bytecode/BytecodeList.rb:
  • interpreter/Register.h:

(JSC::Register::unboxedInt64 const):
(JSC::Register::asanUnsafeUnboxedInt64 const):

  • jsc.cpp:

(Message::releaseContents):
(Message::Message):
(JSC_DEFINE_HOST_FUNCTION):

  • llint/WebAssembly.asm:
  • offlineasm/arm64.rb:
  • offlineasm/instructions.rb:
  • offlineasm/x86.rb:
  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::appendEffectful):
(JSC::Wasm::accessWidth):
(JSC::Wasm::sizeOfAtomicOpMemoryAccess):
(JSC::Wasm::AirIRGenerator::fixupPointerPlusOffsetForAtomicOps):
(JSC::Wasm::AirIRGenerator::sanitizeAtomicResult):
(JSC::Wasm::AirIRGenerator::appendGeneralAtomic):
(JSC::Wasm::AirIRGenerator::appendStrongCAS):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::atomicLoad):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::atomicStore):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::atomicBinaryRMW):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicWait):
(JSC::Wasm::AirIRGenerator::atomicNotify):
(JSC::Wasm::AirIRGenerator::atomicFence):
(JSC::Wasm::AirIRGenerator::addCall):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::memoryKind):
(JSC::Wasm::accessWidth):
(JSC::Wasm::sizeOfAtomicOpMemoryAccess):
(JSC::Wasm::B3IRGenerator::sanitizeAtomicResult):
(JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps):
(JSC::Wasm::B3IRGenerator::emitAtomicLoadOp):
(JSC::Wasm::B3IRGenerator::atomicLoad):
(JSC::Wasm::B3IRGenerator::emitAtomicStoreOp):
(JSC::Wasm::B3IRGenerator::atomicStore):
(JSC::Wasm::B3IRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::B3IRGenerator::atomicBinaryRMW):
(JSC::Wasm::B3IRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::B3IRGenerator::atomicCompareExchange):
(JSC::Wasm::B3IRGenerator::atomicWait):
(JSC::Wasm::B3IRGenerator::atomicNotify):
(JSC::Wasm::B3IRGenerator::atomicFence):
(JSC::Wasm::B3IRGenerator::addCall):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::atomicLoad):
(JSC::Wasm::FunctionParser<Context>::atomicStore):
(JSC::Wasm::FunctionParser<Context>::atomicBinaryRMW):
(JSC::Wasm::FunctionParser<Context>::atomicCompareExchange):
(JSC::Wasm::FunctionParser<Context>::atomicWait):
(JSC::Wasm::FunctionParser<Context>::atomicNotify):
(JSC::Wasm::FunctionParser<Context>::atomicFence):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::atomicLoad):
(JSC::Wasm::LLIntGenerator::atomicStore):
(JSC::Wasm::LLIntGenerator::atomicBinaryRMW):
(JSC::Wasm::LLIntGenerator::atomicCompareExchange):
(JSC::Wasm::LLIntGenerator::atomicWait):
(JSC::Wasm::LLIntGenerator::atomicNotify):
(JSC::Wasm::LLIntGenerator::atomicFence):

  • wasm/WasmMemory.h:
  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::MemoryInformation::MemoryInformation):

  • wasm/WasmMemoryInformation.h:

(JSC::Wasm::MemoryInformation::isShared const):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::wait):
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmOperations.h:
  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseResizableLimits):
(JSC::Wasm::SectionParser::parseTableHelper):
(JSC::Wasm::SectionParser::parseMemoryHelper):

  • wasm/WasmSectionParser.h:
  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::WASM_SLOW_PATH_DECL):

  • wasm/WasmSlowPaths.h:
  • wasm/generateWasm.py:

(isAtomic):
(isAtomicLoad):
(isAtomicStore):
(isAtomicBinaryRMW):
(memoryLog2Alignment):

  • wasm/generateWasmOpsHeader.py:

(atomicMemoryLoadMacroizer):
(atomicMemoryLoadMacroizer.modifier):
(atomicMemoryStoreMacroizer):
(atomicMemoryStoreMacroizer.modifier):
(atomicBinaryRMWMacroizer):
(atomicBinaryRMWMacroizer.modifier):
(memoryLog2AlignmentGenerator):
(atomicMemoryLog2AlignmentGenerator):
(ExtAtomicOpType):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::tryCreate):

  • wasm/wasm.json:
1:31 PM Changeset in webkit [270207] by Aditya Keerthi
  • 11 edits
    11 adds in trunk

[iOS][FCR] Add new look for meter element
https://bugs.webkit.org/show_bug.cgi?id=219103
<rdar://problem/71549155>

Reviewed by Wenson Hsieh.

Source/WebCore:

Tests: fast/forms/ios/form-control-refresh/meter/border.html

fast/forms/ios/form-control-refresh/meter/even-less-good-appearance.html
fast/forms/ios/form-control-refresh/meter/optimal-appearance.html
fast/forms/ios/form-control-refresh/meter/suboptimal-appearance.html
fast/forms/ios/form-control-refresh/meter/width-height.html

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::createElementRenderer):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::supportsMeter const):

  • rendering/RenderTheme.h:

Added additional parameter to supportsMeter to control support at runtime.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::supportsMeter const):

Implement this method so that a native meter is painted on iOS. Note that
a native appearance for meter is currently supported on macOS, but is
unsupported on iOS.

(WebCore::RenderThemeIOS::paintMeter):

Paint a meter element using the new appearance. The color of the filled
portion matches the element's gauge region, and can be one of three
colors. If the style has an RTL direction, flip the filled portion to
start from the right side of the element. This matches the RTL behavior
for progress bars.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::supportsMeter const):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::supportsMeter const):

  • rendering/RenderThemeWin.h:

LayoutTests:

Added tests to verify the stylability of native meters and to
verify that different states are painted with a different appearance.

  • fast/forms/ios/form-control-refresh/meter/border-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/meter/border.html: Added.
  • fast/forms/ios/form-control-refresh/meter/even-less-good-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/meter/even-less-good-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/meter/optimal-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/meter/optimal-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/meter/suboptimal-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/meter/suboptimal-appearance.html: Added.
  • fast/forms/ios/form-control-refresh/meter/width-height-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/meter/width-height.html: Added.
12:38 PM Changeset in webkit [270206] by don.olmstead@sony.com
  • 6 edits in trunk/Source

Non-unified build fixes, late November 2020 edition, take two
https://bugs.webkit.org/show_bug.cgi?id=219317

Unreviewed non-unified build fixes.

Source/WebCore:

  • display/css/DisplayBox.cpp:
  • layout/integration/LayoutIntegrationLineLayout.cpp:
  • rendering/RenderBlockFlow.cpp:

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.cpp:
12:36 PM Changeset in webkit [270205] by don.olmstead@sony.com
  • 4 edits in trunk/Source/WebKit

Fix build when ENABLE_RESOURCE_LOAD_STATISTICS is disabled
https://bugs.webkit.org/show_bug.cgi?id=219316

Unreviewed build fix.

Add ENABLE(RESOURCE_LOAD_STATISTICS) guards around NetworkSession requests for
resource load statistics. Move firePrivateClickMeasurementTimerImmediately out of
a ENABLE(RESOURCE_LOAD_STATISTICS) guard and place it where its ordered in the header.

This originally broke the PlayStation build before ENABLE_RESOURCE_LOAD_STATISTICS
was turned on.

No new tests. No change in behavior.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::simulateResourceLoadStatisticsSessionRestart):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately):

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::clearSentAttributions):
(WebKit::PrivateClickMeasurementManager::updateTimerLastFired):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toString const):
(WebKit::PrivateClickMeasurementManager::markAllUnattributedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::markAttributedPrivateClickMeasurementsAsExpiredForTesting):

12:34 PM Changeset in webkit [270204] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo][Clang] html/canvas/WebGLDrawBuffers.cpp(77,29): error: non-constant-expression cannot be narrowed from type 'WebCore::GraphicsContextGL::(anonymous enum at GraphicsContextGL.h:64:5)' to 'GCGLenum' (aka 'unsigned int') in initializer list
https://bugs.webkit.org/show_bug.cgi?id=219320

Unreviewed build fix for WinCairo clang-cl build.

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::drawBuffersWEBGL): Added static_cast<GCGLenum> for the initializer list.

12:07 PM Changeset in webkit [270203] by wenson_hsieh@apple.com
  • 15 edits in trunk

Introduce new display list meta commands in preparation for webkit.org/b/219091
https://bugs.webkit.org/show_bug.cgi?id=219262

Reviewed by Ryosuke Niwa.

Source/WebCore:

Introduces two new display list items: MetaCommandChangeDestinationImageBuffer and MetaCommandEnd. These
meta commands will be used in a future patch to synchronize display list drawing commands between multiple
destination image buffers when using the GPU process by allowing RemoteRenderingBackend to process display
data that contains commands targeting more than one destination image buffer.

MetaCommandChangeDestinationImageBuffer is used to inform the replayer that the destination image buffer (in
which commands are replayed) should be changed to the new image buffer indicated by the rendering resource
identifier in the item. When replaying, we'll bail with StopReplayReason::ChangeDestinationImageBuffer and set
nextDestinationImageBuffer to the identifier of this next buffer.

MetaCommandEnd is used to inform the replayer that it should expect no more display list items; in a future
patch, RemoteRenderingBackend will take this as a cue to immediately stop waiting for more display list data
and go to sleep.

A stream of display list data will eventually consist of data targeting one or more destination image buffers,
separated by MetaCommandChangeDestinationImageBuffer items, and may span one or more item buffers, separated
by MetaCommandChangeItemBuffer items; finally, it will conclude with a MetaCommandEnd item.
The below diagram depicts one such stream of display list data, where we have two destination image buffers
(denoted by A and B), and display list item data spanning two item buffers (denoted by 1 and 2).

Wakeup message initiates display list processing with Image Buffer A and Item Buffer 1

|
| MetaCommandChangeItemBuffer(2)
| |
| MetaCommandChangeDestinationImageBuffer(B) |
| | |
| | |
v v v
+-----------------------+--------------------------------++
| +--------------------+ +------------------------------+ |
| | Destination | | Destination | | Item Buffer 1
| | Image Buffer A | | Image Buffer B | |
| +--------------------+ +------------------------------+ |
+---------------------------------------------------------+

+---------------------------------------------------------+
| +--------------+ +-----------------------+ |
| | Dst. Image | | Destination Image | Unused | Item Buffer 2
| | Buffer B | | Buffer A | Capacity |
| +--------------+ +-----------------------+ |
+-----------------+-------------------------+-------------+


| |
| |
| MetaCommandEnd
|

MetaCommandChangeDestinationImageBuffer(A)

Additionally, rename MetaCommandSwitchToItemBuffer to MetaCommandChangeItemBuffer, such that it is
consistent with the new MetaCommandChangeDestinationImageBuffer item.

  • platform/graphics/displaylists/DisplayList.cpp:

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

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

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

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::MetaCommandChangeItemBuffer::MetaCommandChangeItemBuffer):
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::MetaCommandChangeDestinationImageBuffer):
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::identifier const):
(WebCore::DisplayList::MetaCommandSwitchToItemBuffer::MetaCommandSwitchToItemBuffer): Deleted.
(WebCore::DisplayList::MetaCommandSwitchToItemBuffer::identifier const): Deleted.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

  • platform/graphics/displaylists/DisplayListReplayer.h:

Source/WebKit:

See WebCore ChangeLog for more information. Additionally, rename MetaCommandSwitchToItemBuffer to
MetaCommandChangeItemBuffer, for consistency with the new MetaCommandChangeDestinationImageBuffer item.

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

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

Tools:

Rename MetaCommandSwitchToItemBuffer.

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

10:56 AM Changeset in webkit [270202] by wenson_hsieh@apple.com
  • 3 edits in trunk/Source/WebKit

Remove some extraneous PLATFORM(IOS_FAMILY) guards in WKContentViewInteraction
https://bugs.webkit.org/show_bug.cgi?id=219289

Reviewed by Sam Weinig.

Remove several redundant uses of PLATFORM(IOS_FAMILY). The entire class is already conditional on
IOS_FAMILY, so adding additional compile-time guards for iOS family is not necessary.

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

(-[WKContentView setTimePickerValueToHour:minute:]):
(-[WKContentView timePickerValueHour]):
(-[WKContentView timePickerValueMinute]):

10:53 AM Changeset in webkit [270201] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] use lz4 compression for improving buildbot performance
https://bugs.webkit.org/show_bug.cgi?id=219133

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
10:50 AM Changeset in webkit [270200] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

[LFC Display] Clean up CSS stacking context painting code
https://bugs.webkit.org/show_bug.cgi?id=219307

Reviewed by Antti Koivisto.

Clarify the code in Display::CSSPainter that paints stacking contexts and positioned
elements. Non-stacking positioned elements paint atomically, but don't paint descendant
stacking contexts (sometimes these are called "pseudo-stacking contexts" but that term
is avoided here to reduce confusion). Share code between painting these and stacking
contexts via paintAtomicallyPaintedBox().

Also make sure we paint the contents of non-container child boxes, so that things like
positioned images paint.

Remove some incorrect image painting code in BoxPainter::paintBox().

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBox):

  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::recursivePaintDescendantsForPhase):
(WebCore::Display::CSSPainter::recursivePaintDescendants):
(WebCore::Display::CSSPainter::paintAtomicallyPaintedBox):
(WebCore::Display::CSSPainter::paintStackingContext):
(WebCore::Display::CSSPainter::participatesInZOrderSorting):
(WebCore::Display::CSSPainter::collectStackingContextDescendants):
(WebCore::Display::CSSPainter::recursiveCollectLayers):

  • display/css/DisplayCSSPainter.h:
10:49 AM Changeset in webkit [270199] by Lauro Moura
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] Update GTK4 to 3.99.4
https://bugs.webkit.org/show_bug.cgi?id=219269

Reviewed by Philippe Normand.

  • elements/sdk/gtk.bst: Update to track tags instead of individual commits and

specify 3.99.4 as the latest tag. Also added new meson flags to disable the ffmpeg
media backend and cloud printing after GTK changed some more options into features[1]

[1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2708

9:45 AM Changeset in webkit [270198] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

[LFC Display] A ContainerBox can establish an inline formatting context and have box children
https://bugs.webkit.org/show_bug.cgi?id=218736

Reviewed by Zalan Bujtas.

If a layout box establishes an inline formatting context, then the only descendant container
boxes that we should make display boxes for while traversing non-inline descendants
are those which are out of flow.

  • display/DisplayTreeBuilder.cpp:

(WebCore::Display::TreeBuilder::recursiveBuildDisplayTree const):

9:26 AM Changeset in webkit [270197] by Adrian Perez de Castro
  • 12 edits in trunk/Source

Non-unified build fixes, late November 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=219306

Unreviewed non-unified build fixes.

Source/WebCore:

  • dom/SimpleRange.cpp: Add missing Frame.h header.
  • html/canvas/CanvasRenderingContext2D.cpp: Removed fontStyleIsWithinRange() from here, as

it is not used in this source file.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::isSpaceThatNeedsReplacing): Moved here from CanvasRenderingContext2D.cpp

  • inspector/InspectorNodeFinder.cpp: Add missing Frame.h header.
  • page/FrameTree.h: Added missing wtf/Forward.h header
  • style/StyleResolveForFontRaw.cpp: Add missing CSSToLengthConversionData.h,

FontCascade.h, and Settings.h headers.

  • style/StyleResolveForFontRaw.h: Add forward declaration for FontCascadeDescription.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: Add missing

PrivateClickMeasurementManager.h header.

  • NetworkProcess/PrivateClickMeasurementManager.cpp: Add missing NetworkSession.h header.
  • UIProcess/SpeechRecognitionServer.cpp:

(WebKit::SpeechRecognitionServer::handleRequest): Add missing WebCore:: namespace to uses
of the WebCore::SpeechRecognizer and WebCore::SpeechRecognitionUpdateType types.

9:05 AM Changeset in webkit [270196] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

[LFC Display] Add support for painting box shadows
https://bugs.webkit.org/show_bug.cgi?id=219265

Reviewed by Zalan Bujtas.

Clone the ShadowData linked list into Display::Style, fixing up the color,
and add code to BoxDecorationPainter to paint outset and inset shadows.

The pixel snapping isn't quite right yet; we really need to pixel-snap the
rect that results from the border/padding box with shadow offset and spread applied,
but that would require storing more shadow-related data at tree building time.

The boxShadowShouldBeAppliedToBackground() code path isn't supported yet.

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BoxDecorationPainter::BoxDecorationPainter):
(WebCore::Display::BoxDecorationPainter::paintBoxShadow const):
(WebCore::Display::BoxDecorationPainter::innerBorderRoundedRect const):
(WebCore::Display::BoxDecorationPainter::backgroundRoundedRectAdjustedForBleedAvoidance const):
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders const):

  • display/css/DisplayBoxDecorationPainter.h:
  • display/css/DisplayStyle.cpp:

(WebCore::Display::deepCopy):
(WebCore::Display::Style::Style):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::boxShadow const):

  • platform/graphics/LayoutSize.h:

(WebCore::roundSizeToDevicePixels):

  • rendering/style/ShadowData.h:

(WebCore::ShadowData::setColor):
(WebCore::ShadowData::setNext):

8:52 AM Changeset in webkit [270195] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

[LFC][Integration] Initial display:inline support
https://bugs.webkit.org/show_bug.cgi?id=219301

Reviewed by Zalan Bujtas.

<span> etc.

Not enabled yet.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):
(WebCore::LayoutIntegration::BoxTree::updateStyle):
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):

  • layout/integration/LayoutIntegrationCoverage.cpp:

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

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::InlineBox::InlineBox):
(WebCore::LayoutIntegration::InlineContent::InlineBox::layoutBox const):
(WebCore::LayoutIntegration::InlineContent::InlineBox::lineIndex const):
(WebCore::LayoutIntegration::InlineContent::InlineBox::rect const):
(WebCore::LayoutIntegration::InlineContent::shrinkToFit):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayInlineBoxes const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::containing):
(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):
(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):
(WebCore::RenderInline::linesBoundingBox const):

8:31 AM Changeset in webkit [270194] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Fix ANGLE CMakeLists.txt warnings
https://bugs.webkit.org/show_bug.cgi?id=219260

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-27
Reviewed by Philippe Normand.

Fix warning when building on GTK:
Make Warning (dev) at Source/ThirdParty/ANGLE/CMakeLists.txt:103:
Syntax Warning in cmake code at column 37

Argument not separated from preceding token by whitespace.
This warning is for project developers. Use -Wno-dev to suppress it.

  • CMakeLists.txt:
6:48 AM Changeset in webkit [270193] by Philippe Normand
  • 3 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add clangd
https://bugs.webkit.org/show_bug.cgi?id=219302

Reviewed by Adrian Perez de Castro.

clangd can be used as an alternative to ccls in IDEs supporting the LSP protocol.

  • elements/sdk-platform.bst:
  • elements/sdk/clangd.bst: Added.
  • project.conf:
4:21 AM Changeset in webkit [270192] by commit-queue@webkit.org
  • 2 edits in trunk/Tools/buildstream

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

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

  • elements/sdk/ccls.bst: Update to latest release, 0.20201025.
4:16 AM Changeset in webkit [270191] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk/Tools/buildstream

[Flatpak SDK] Add cmake-lsp recipe
https://bugs.webkit.org/show_bug.cgi?id=219234

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

Add CMake LSP server for use in IDEs.

  • elements/sdk-platform.bst:
  • elements/sdk/cmake-lsp.bst: Added.
  • elements/sdk/pygls.bst: Added.
  • project.conf:
3:57 AM Changeset in webkit [270190] by commit-queue@webkit.org
  • 8 edits
    1 copy
    1 add in trunk

REGRESSION(r269642) [GStreamer][WebRTC] Unexpected results after update to M87
https://bugs.webkit.org/show_bug.cgi?id=218787

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-11-27
Reviewed by Philippe Normand.

Source/WebCore:

Describe more specifically the H264 SDP. It uses a hardcoded list with the minimun
requirement: ConstrainedBaseline and Baseline profiles which are supported by the video
decoders used in GStreamer.

No new tests required.

  • platform/GStreamer.cmake:
  • platform/mediastream/libwebrtc/GStreamerVideoCommon.cpp: Added.

(WebCore::createH264Format):
(WebCore::gstreamerSupportedH264Codecs):

  • platform/mediastream/libwebrtc/GStreamerVideoCommon.h: Added.
  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: Removed unused headers.

(WebCore::GStreamerVideoDecoder::AddDecoderIfSupported): Pass argument by reference.
(WebCore::GStreamerVideoDecoder::ConfigureSupportedDecoder): Instead of a single SDP returns
a vector of them.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: Removed unused headers.

(WebCore::GStreamerVideoEncoder::AddCodecIfSupported): Pass argument by reference.
(WebCore::GStreamerVideoEncoder::ConfigureSupportedCodec): Instead of a single SDP returns
a vector of them and remove the unused argument.
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h: Fixed a typo.

LayoutTests:

Update expectations with fixed tests.
Also fixed a typo.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
3:21 AM Changeset in webkit [270189] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, clang build fix after r270185

  • platform/graphics/GraphicsTypesGL.h: Fixup nullptr_t namespace.

(GCGLSpan::GCGLSpan):
(std::numeric_limits<size_t>::max):

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

Unreviewed, GLib webaudio gardening

  • platform/glib/TestExpectations: webaudio/AudioParam/audioparam-processing.html

consistently passing since r270139.

2:21 AM Changeset in webkit [270187] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GStreamer] refactor video encoder with WebKit style
https://bugs.webkit.org/show_bug.cgi?id=218748

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-11-27
Reviewed by Philippe Normand.

Apply WebKit code style to GStreamerVideoEncoder

No new tests required since it's a refactor.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:

(Encoders::singleton): Instead of an array with the available encoders, a singleton map is
used, with better memory handling.
(Encoders::registerEncoder): static method to register a possible encoder to handle
(Encoders::definition): getter
(webrtcVideoEncoderGetProperty): renamed
(webrtcVideoEncoderSetBitrate): renamed
(webrtcVideoEncoderSetFormat): Use getter for static pads; GRefPtr for memory handling;
don't call gst_ghost_pad_set_target() inside a g_assert since it can be disabled.
(webrtcVideoEncoderSetProperty): renamed
(setupX264enc): renamed
(setupOpenh264enc): renamed
(setupOmxh264enc): renamed
(setBitrateKbitPerSec): renamed
(setBitrateBitPerSec): renamed
(webrtc_video_encoder_class_init): renamed
(webrtc_video_encoder_init): renamed

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.h: use G_DECLARE_FINAL_TYPE macro and

change the name of the glib type to WEBRTC_TYPE_VIDEO_ENCODER

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: remove unused macro

(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory): Don't register the
element as primary, but none.

2:02 AM Changeset in webkit [270186] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GTK] MiniBroeser add an option to quit the browser after loading finishes
https://bugs.webkit.org/show_bug.cgi?id=219081

Reviewed by Carlos Alberto Lopez Perez.

It's useful to run benchmarks or test case reduction tools.

  • MiniBrowser/gtk/BrowserTab.c:

(webProcessTerminatedCallback): Show a warning when the web process crashes.
(browserTabConstructed): Connect to web-process-terminated signal.

  • MiniBrowser/gtk/main.c:

(quitApplication): Quit the MiniBrowser.
(exitAfterWebViewLoadFinishesCallback): Schedule a browser quit to the next run loop iteration.
(exitAfterWebProcessCrashed): Call exitAfterWebViewLoadFinishesCallback with WEBKIT_LOAD_FINISHED.
(exitAfterWebViewLoadFinishes): Connect to load-changed and web-process-terminated signals
(activate): Ensure the browser is exited after the load finishes or web process crashes when --exit-after-load is passed.

1:51 AM Changeset in webkit [270185] by commit-queue@webkit.org
  • 25 edits in trunk/Source/WebCore

GraphicsContextGL should have robust multivalue setters
https://bugs.webkit.org/show_bug.cgi?id=219256

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

Replace bufSize, pointer pairs and plain pointers in GraphicsContextGL
with GCGLSpan. This makes it easier to understand how many values there
are pointed by the pointer. This is needed for simpler implementation of GPU
process IPC, where the IPC layer does not need to interpret the OpenGL
properties.

In WebGL implementation, changes the validation functions to return
the memory reference that will be touched by the valid function call.
On validation failure, nullopt will be returned.

Makes the existing GraphicsContextGL texture image manipulation functions
to support robust invocation. Removes the robust APIs from ExtensionsGL.
Adds the missing texture image manipulation functions from ExtensionGL
to GraphicsContextGL. Implementations for the moved methods
exist only for ANGLE implementation of GraphicsContextGLOpenGL.

Changes the ANGLE variant of GraphicsContextGL::texImage2D to be
implemented as ExtensionsGLANGLE::texImage2DRobustANGLE. Before, for
ANGLE the GraphicsContextGL::texImage2D was unused.

No new tests, a refactor.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::invalidateFramebuffer):
(WebCore::WebGL2RenderingContext::invalidateSubFramebuffer):
(WebCore::WebGL2RenderingContext::uniform1uiv):
(WebCore::WebGL2RenderingContext::uniform2uiv):
(WebCore::WebGL2RenderingContext::uniform3uiv):
(WebCore::WebGL2RenderingContext::uniform4uiv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
(WebCore::WebGL2RenderingContext::vertexAttribI4iv):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::drawBuffers):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::validateClearBuffer):
(WebCore::WebGL2RenderingContext::uniform1fv):
(WebCore::WebGL2RenderingContext::uniform2fv):
(WebCore::WebGL2RenderingContext::uniform3fv):
(WebCore::WebGL2RenderingContext::uniform4fv):
(WebCore::WebGL2RenderingContext::uniform1iv):
(WebCore::WebGL2RenderingContext::uniform2iv):
(WebCore::WebGL2RenderingContext::uniform3iv):
(WebCore::WebGL2RenderingContext::uniform4iv):
(WebCore::WebGL2RenderingContext::uniformMatrix2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4fv):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::drawBuffersWEBGL):

  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):
(WebCore::WebGLRenderingContextBase::uniform1fv):
(WebCore::WebGLRenderingContextBase::uniform2fv):
(WebCore::WebGLRenderingContextBase::uniform3fv):
(WebCore::WebGLRenderingContextBase::uniform4fv):
(WebCore::WebGLRenderingContextBase::uniform1iv):
(WebCore::WebGLRenderingContextBase::uniform2iv):
(WebCore::WebGLRenderingContextBase::uniform3iv):
(WebCore::WebGLRenderingContextBase::uniform4iv):
(WebCore::WebGLRenderingContextBase::uniformMatrix2fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix3fv):
(WebCore::WebGLRenderingContextBase::uniformMatrix4fv):
(WebCore::WebGLRenderingContextBase::validateUniformMatrixParameters):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::validateUniformParameters):

  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/GraphicsTypesGL.h:

(GCGLSpan::GCGLSpan):
(std::numeric_limits<size_t>::max):
(makeGCGLSpan):

  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::drawBuffersEXT):

  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):

  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp:

(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects):
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
1:08 AM Changeset in webkit [270184] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] AudioSourceProvider can potentially invoke an already-freed client
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Xabier Rodriguez-Calvar.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured): Check the provider has
a client before setting up the audio format.

12:51 AM Changeset in webkit [270183] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

[WebRTC] webrtc/audio-sframe.html is flaky crashing since added in r269830
https://bugs.webkit.org/show_bug.cgi?id=219066
<rdar://problem/71747778>

Unreviewed.

webrtc/audio-sframe.html is no longer crashing after revision 270107.
Update test expectations accordingly.

  • platform/glib/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:28 AM Changeset in webkit [270182] by yoshiaki.jitsukawa@sony.com
  • 2 edits
    2 adds in trunk/Source/WebKit

[PlayStation] Define platform argument coders for Font
https://bugs.webkit.org/show_bug.cgi?id=219300

Reviewed by Fujii Hironori.

  • PlatformPlayStation.cmake:
  • Shared/playstation/WebCoreArgumentCodersPlayStation.cpp: Added.

Define required member functions of ArgumentCoder<Ref<WebCore::Font>> class.

12:07 AM Changeset in webkit [270181] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

RTCVideoEncoderH264 does not need to support case without ENABLE_VCP_ENCODER and without HAVE_VTB_REQUIREDLOWLATENCY
https://bugs.webkit.org/show_bug.cgi?id=219224

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

Make sure to compile the same with public SDK

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
Remove code path that is no longer useful.

Nov 26, 2020:

8:42 PM Changeset in webkit [270180] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebKit

Calling waitForAndDispatchImmediately<M> on a loop fails when multiple M messages arrive simultaneously
https://bugs.webkit.org/show_bug.cgi?id=219240

Reviewed by Chris Dumez.

Fixes a race that may occur when calling waitForAndDispatchImmediately<N> in a loop, when multiple messages
N arrive on the IPC thread simultaneously. This may result from the following sequence of events (note that
(Main) and (IPC) in the timeline below refer to the main thread and IPC background thread, respectively):

(Main) Call waitForAndDispatchImmediately, and begin waiting.

(IPC) A message N arrives, and is handled in processIncomingMessage by setting the decoder of

m_waitingForMessage and notifying the condition variable.

(Main) The main thread wakes up and starts to process N, clearing out m_waitingForMessage in the process.

(IPC) A second message N arrives. We see that m_waitingForMessage is null, so we don't set the decoder

and bail. Instead, we prepare to call enqueueIncomingMessage and push the message onto the main
thread, *but importantly*, we haven't done so yet.

(Main) Call waitForAndDispatchImmediately again, set m_waitingForMessage, and begin waiting. Since the

incoming message that was just received above has not been enqueued yet, we are unable to avoid waiting
due to the incoming message.

(IPC) We finally call enqueueIncomingMessage, which pushes the message N into m_incomingMessages and

dispatches onto the main thread. However, this is too late, since the main thread is already stuck
waiting for the incoming IPC message that we've now just enqueued.

Two minor adjustments are required to fix this, described in the below comments. The combination of these two
changes ensures that the scenario described above is impossible, since we'll either set m_waitingForMessage's
decoder and wake up the main thread in the case where waitForMessage is called before processIncomingMessage,
or we'll bail early in waitForMessage with the enqueued IPC message in the case where processIncomingMessage
runs before waitForMessage.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::waitForMessage):

Move logic that checks the incoming messages queue when calling Connection::waitForMessage into the
m_waitForMessageMutex critical section.

(IPC::Connection::processIncomingMessage):

Extend the critical section of m_waitForMessageMutex when processing an incoming message, such that it
encompasses the part that enqueues the incoming message.

8:41 PM Changeset in webkit [270179] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Unreviewed. Remove leftover test case after Internet Explorer quirks changes

The test cases were still expecting Linux platform for
drive.google.com, which now uses the IE quirk and thus the Windows
platform.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

8:21 PM Changeset in webkit [270178] by Lauro Moura
  • 4 edits in trunk

[GTK][GTK4] Building with GObject-Introspection support does not work
https://bugs.webkit.org/show_bug.cgi?id=219221

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsGTK.cmake: Allow introspection with GTK4.

Source/WebKit:

  • PlatformGTK.cmake: Forward GTK version to gir scanner and use correct pkg-config package.
6:55 PM Changeset in webkit [270177] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK4] Declare lambda return type to avoid build error deducing it
https://bugs.webkit.org/show_bug.cgi?id=219268

Reviewed by Adrian Perez de Castro.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::createPopupMenu):

6:53 PM Changeset in webkit [270176] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[GTK4] Build fix. Add cast when taking const data ownership
https://bugs.webkit.org/show_bug.cgi?id=219267

Reviewed by Carlos Garcia Campos.

r269614 introduced the NativeImage class, which returns a const platform image and
uses an Observer scheme to release the data.

  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::BitmapImage::gdkTexture): Keep using the direct approach and use a const_cast
to release the data.

6:18 PM Changeset in webkit [270175] by Fujii Hironori
  • 12 edits
    9 adds in trunk

[WinCairo] Enable GPU process
https://bugs.webkit.org/show_bug.cgi?id=219294

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWin.cmake: Turned ENABLE_GPU_PROCESS on for WinCairo.

Source/WebCore:

  • platform/graphics/FontPlatformData.cpp:
  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::familyName const): Added.

Source/WebKit:

Added stub functions to build GPU process.

Invoke the following command to enable GPU process:

reg add HKEY_CURRENT_USER\Software\WebKit /v gpu_process_canvas_rendering /t REG_DWORD /d 1 /f

Invoke the following command to disable GPU process:

reg delete HKEY_CURRENT_USER\Software\WebKit /v gpu_process_canvas_rendering /f

  • GPUProcess/media/win/RemoteMediaPlayerProxyWin.cpp: Added.

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
(WebKit::RemoteMediaPlayerProxy::enterFullscreen):
(WebKit::RemoteMediaPlayerProxy::exitFullscreen):

  • GPUProcess/win/GPUProcessMainWin.cpp: Added.

(WebKit::initializeAuxiliaryProcess<GPUProcess>):
(WebKit::GPUProcessMain):

  • GPUProcess/win/GPUProcessWin.cpp: Added.

(WebKit::GPUProcess::initializeProcess):
(WebKit::GPUProcess::initializeProcessName):
(WebKit::GPUProcess::initializeSandbox):

  • PlatformWin.cmake:
  • Shared/WebPreferencesDefaultValues.h:
  • Shared/curl/WebCoreArgumentCodersCurl.cpp:

(IPC::ArgumentCoder<FontAttributes>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<FontAttributes>::decodePlatformData): Deleted.
(IPC::ArgumentCoder<Ref<Font>>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<Ref<Font>>::decodePlatformData): Deleted.

  • Shared/win/WebCoreArgumentCodersWin.cpp: Added.

(IPC::ArgumentCoder<FontAttributes>::encodePlatformData):
(IPC::ArgumentCoder<FontAttributes>::decodePlatformData):
(IPC::ArgumentCoder<Ref<Font>>::encodePlatformData):
(IPC::ArgumentCoder<Ref<Font>>::decodePlatformData):

  • Shared/win/WebPreferencesDefaultValuesWin.cpp: Added.

(WebKit::isFeatureFlagEnabled):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::submitDisplayList):
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

  • WebProcess/GPU/media/win/VideoLayerRemoteWin.cpp: Added.

(WebKit::createVideoLayerRemote):

Source/WTF:

  • wtf/PlatformHave.h: Turned HAVE_SYSTEM_FEATURE_FLAGS on for Windows.
6:14 PM Changeset in webkit [270174] by Fujii Hironori
  • 24 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css1/formatting_model/height_of_lines-expected.txt:
  • platform/wincairo/css1/text_properties/vertical_align-expected.txt:
  • platform/wincairo/css2.1/20110323/replaced-intrinsic-ratio-001-expected.txt:
  • platform/wincairo/editing/input/caret-at-the-edge-of-contenteditable-expected.txt:
  • platform/wincairo/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/wincairo/editing/inserting/paragraph-separator-in-table-1-expected.txt:
  • platform/wincairo/fast/css/named-images-expected.txt:
  • platform/wincairo/fast/css/text-overflow-input-expected.txt:
  • platform/wincairo/fast/dom/HTMLMeterElement/meter-element-expected.txt:
  • platform/wincairo/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt:
  • platform/wincairo/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
  • platform/wincairo/fast/dom/HTMLMeterElement/meter-styles-expected.txt:
  • platform/wincairo/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/wincairo/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/wincairo/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/wincairo/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/wincairo/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wincairo/fast/text/basic/generic-family-reset-expected.txt:
  • platform/wincairo/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
6:05 PM Changeset in webkit [270173] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update Run32bitJSCTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=219085

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/steps.py:

(Run32bitJSCTests):
(Run32bitJSCTests.start): Initialized log observer.
(Run32bitJSCTests.parseOutputLine): Parse each log line as they come.
(Run32bitJSCTests.countFailures): Updated to return failedTestCount.

5:21 PM Changeset in webkit [270172] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Source/WebCore

AXObjectCache::focusedObjectForPage() is not defined when ENABLE(ACCESSIBILITY) is off
https://bugs.webkit.org/show_bug.cgi?id=219290

Reviewed by Chris Fleizach.

Define AXObjectCache::focusedObjectForPage() as a function which
returns a nullptr.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::focusedObjectForPage): Defined.

4:48 PM Changeset in webkit [270171] by youenn@apple.com
  • 7 edits
    2 adds in trunk

https://collab-project.github.io/videojs-record/demo/video-only.html is not working
https://bugs.webkit.org/show_bug.cgi?id=219258
<rdar://problem/69759808>

Reviewed by Eric Carlson.

Source/WebCore:

Make 'HTMLMediaElement.srcObject = blob' functional by making sure to register a blob URL before trying to load.
Clean-up internal slots when srcObject is set to make sure we do not load a MediaStream even if the current MediaProvider is a Blob.

Fix a Use-After-Move bug that can be triggered in case of synchronous media loading failure.

Test: http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::setSrcObject):
(WebCore::HTMLMediaElement::loadResource):

  • html/HTMLMediaElement.h:
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

Source/WebKit:

Fixed a potential null pointer crash in case load is aborted by WebCore at creation time.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::requestResource):

LayoutTests:

  • http/wpt/mediarecorder/set-srcObject-MediaStream-Blob-expected.txt: Added.
  • http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html: Added.
4:40 PM Changeset in webkit [270170] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[GTK] Allow WebKitTestServer to run non-loopback addresses for API tests
https://bugs.webkit.org/show_bug.cgi?id=219257

GTK API tests currently assumes that loopback IP addresses can be treated as mixed content
in order to test WEBKIT_INSECURE_CONTENT_RUN and WEBKIT_INSECURE_CONTENT_DISPLAYED APIs.
After bug 218623, this will no longer be true so this patch adds an option to
WebKitTestServer so that it can run a server listening to "localhost" instead. This approach
will work until bug 171934 is fixed, but we might add a way to launch a server listening to
non-localhost addresses (bug 219198) or review the whole mixed content handling in the
future (bug 140625). This patch also tweaks a bit WebKitTestServer options, so they use a
bitset instead.

Patch by Frederic Wang <fwang@igalia.com> on 2020-11-26
Reviewed by Michael Catanzaro.

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(beforeAll): Add a ServerNonLoopback bit to the HTTPS server used by the tests, so that
insecure content APIs will still work after bug 218623. Also remove explicit options for the
HTTP server since it just uses the default (no bits set).

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::WebKitTestServer): Use the new bitset syntax. Starts a server listening to
"localhost" if the ServerNonLoopback bit is set.

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h: Make the enum a list of bit positions

and the parameter a bitset of options. Add the new ServerNonLoopback option and remove
ServerHTTP, which corresponds to the default value (no bits set).

4:38 PM Changeset in webkit [270169] by yoshiaki.jitsukawa@sony.com
  • 4 edits in trunk

[PlayStation] Enable ResourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=219292

Reviewed by Fujii Hironori.

.:

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebKit:

  • PlatformPlayStation.cmake:
4:36 PM Changeset in webkit [270168] by commit-queue@webkit.org
  • 6 edits in trunk

[WPE][GTK] Use Internet Explorer quirk for Google Docs
https://bugs.webkit.org/show_bug.cgi?id=219278

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-26
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Since r266584, we've suffered from an annoying unsupported browser warning when using Google
Docs. We don't have many options to avoid it. I'm afraid that Firefox or Chrome quirks are
too risky, since these seem to tempt Google into using web platform features that WebKit
does not support. The safest quirk is the macOS platform quirk, but that doesn't work well
here because it breaks various keyboard shortcuts like Ctrl+A and Ctrl+Z. So an Internet
Explorer quirk is really the last card we have left.

I think this is the safest Google quirk we've ever had, in that it's pretty unlikely that
Google will try to send Internet Explorer anything that doesn't work in WebKit. However, it
will break eventually, whenever Google decides that Internet Explorer is no longer
supported. I guess that date is probably at least five years away, so we can only hope that
Google drops this anticompetitive nonsense before then.

P.S. Let's also switch Google Drive to this new quirk. The unsupported browser warning on
Google Drive seems to be completely independent, but the IE quirk seems safer that the
existing Firefox quirk, so why not?

  • platform/UserAgentQuirks.cpp:

(WebCore::isGoogle):
(WebCore::urlRequiresInternetExplorerBrowser):
(WebCore::urlRequiresWindowsPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):

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

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasInternetExplorerBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasWindowsPlatformQuirk):
(TestWebKitAPI::TEST):

3:59 PM Changeset in webkit [270167] by Darin Adler
  • 4 edits in trunk/Source/WebCore

Fix non-unified build problem in CSSPropertyParserHelpers.cpp along with a little refactoring
https://bugs.webkit.org/show_bug.cgi?id=219222

Reviewed by Sam Weinig.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::fontStyleIsWithinRange): Deleted.
(WebCore::consumeFontStyleRange): Updated for name change to isFontStyleAngleInRange,
don't force angles to float since the values are stored as double. Use local variables
to avoid multiple calls to doubleValue.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::isCSSWideKeyword): Moved inline function here
from the header since it's only used inside this file.
(WebCore::CSSPropertyParserHelpers::consumeFontStyleRaw): Updated for the name change
of isFontStyleAngleInRange, and also eliminated local since it's clear without it.

  • css/parser/CSSPropertyParserHelpers.h:

(WebCore::CSSPropertyParserHelpers::isCSSWideKeyword): Deleted. This had "static" on it
in a header, which is not good style, but also didn't need to be in a header.
(WebCore::CSSPropertyParserHelpers::isFontStyleAngleInRange): Moved this here so we can
use it in two different .cpp files. Also renamed it for improved clarity, and used an
inline function because this is super simple.

3:56 PM Changeset in webkit [270166] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[WPE][GTK] Fix build with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=219264

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-26
Reviewed by Carlos Garcia Campos.

It's not uncommon for really old code like this to abuse volatile as if it were a
synchronization primitive. It's not. This code is already synchronized by use of GOnce, so
it can be safely removed. References:

https://gitlab.gnome.org/GNOME/glib/-/issues/600#note_877282
http://isvolatileusefulwiththreads.in/C++/

  • wtf/glib/WTFGType.h:
Note: See TracTimeline for information about the timeline view.