Timeline



Jul 8, 2020:

11:30 PM Changeset in webkit [264152] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] B3 PureCSE should ignore values which are moved to new BasicBlock
https://bugs.webkit.org/show_bug.cgi?id=214115
<rdar://problem/65189470>

Reviewed by Saam Barati.

We are performing "Select" specialization like this.

BB#target

...
@a = Select(@p, @x, 42)
@b = Add(@a, 35)
Check(@b)
@c = ...

becomes this:

BB#predecessor

...
Branch(@p, #truecase, #falsecase)

BB#truecase:

@b_truecase = Add(@x, 35)
Check(@b_truecase)
Upsilon(@x, a)
Upsilon(@b_truecase,
b)
Jump(#continuation)

BB#falsecase:

@b_falsecase = Add(42, 35)
Check(@b_falsecase)
Upsilon(42, a)
Upsilon(@b_falsecase,
b)
Jump(#continuation)

BB#continuation:

@a = Phi()
@b = Phi()
Jump(#target)

BB#target

@c = ...

In the above transformation, we create a new BasicBlock and move @a and @b to that one. This is good since we do not need to rewrite all the use of @a and @b.
However, this confuses PureCSE since @a and @b point to a BasicBlock (BB#continuation) which is not inserted into the graph yet.

This patch changes PureCSE so that it ignores values which owners are not inserted yet.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::isInserted const):

  • b3/B3GenericBlockInsertionSet.h:

(JSC::B3::GenericBlockInsertionSet::insert):

  • b3/B3PureCSE.cpp:

(JSC::B3::PureCSE::findMatch):
(JSC::B3::PureCSE::process):

  • b3/air/AirBasicBlock.h:
11:11 PM Changeset in webkit [264151] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

Allow ScrollableArea to ask if a user scroll is in progress
https://bugs.webkit.org/show_bug.cgi?id=214121

Reviewed by Wenson Hsieh.

Work towards fixing scrolling stutters on layouting pages using scroll snap, like tesla.com.

ScrollableArea::updateScrollSnapState(), which happens as a result of layout, should not set a new
scroll position if a user scroll is in progress. ScrollController already tracks m_inScrollGesture,
so in the first instance just refactor the code to return that. Future changes will check
for scrolling thread activity.

  • page/FrameView.cpp:

(WebCore::FrameView::isUserScrollInProgress const):
(WebCore::FrameView::isRubberBandInProgress const):

  • page/FrameView.h:
  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::isUserScrollInProgress const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::isUserScrollInProgress const):

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

(WebCore::ScrollController::isUserScrollInProgress const):

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

(WebCore::ScrollAnimatorMac::isUserScrollInProgress const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::isUserScrollInProgress const):
(WebCore::RenderLayer::isRubberBandInProgress const):

  • rendering/RenderLayer.h:
11:10 PM Changeset in webkit [264150] by Lauro Moura
  • 1 edit
    8 deletes in trunk/LayoutTests/imported/w3c

Unreviewed. Remove uneeded the-offscreen-canvas files after update.

The HTML tests for these expectations were removed in r264117.

Also removing two HTML placeholders for already removed JS files from
the same revision.

Unreviewed test gardening.

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.commit-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-expected.txt: Removed.
11:00 PM Changeset in webkit [264149] by Lauro Moura
  • 3 edits
    4 adds in trunk/LayoutTests

[GTK][WPE] Gardening after latest wpt resyncs

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/flex-expected.txt: Added.
10:24 PM Changeset in webkit [264148] by pvollan@apple.com
  • 21 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

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

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Added HAVE define for determining if the class LSDatabaseContext is present.

  • wtf/PlatformHave.h:
8:19 PM Changeset in webkit [264147] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Implementation of AXIsolatedObject::setSelectedVisiblePositionRange.
https://bugs.webkit.org/show_bug.cgi?id=214118

Reviewed by Chris Fleizach.

Covered by test: accessibility/mac/selected-visible-position-range.html.

Implemented AXIsolatedObject::setSelectedVisiblePositionRange() and
selection() by forwarding the call to the associated AX object.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selection const):
(WebCore::AXIsolatedObject::setSelectedVisiblePositionRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
call to the backing object should happen on the main thread since it
takes a VisiblePositionRange parameter.

8:19 PM Changeset in webkit [264146] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Clean up time values in ScrollController
https://bugs.webkit.org/show_bug.cgi?id=214117

Reviewed by Wenson Hsieh.

ScrollController used a mixture of [NSDate timeIntervalSinceReferenceDate], [NSProcessInfo processInfo].systemUptime
and wheelEvent.timestamp().secondsSinceEpoch(). Standardize on Seconds/MonotonicTime/WallTime.

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

(WebCore::elasticDeltaForTimeDelta):
(WebCore::ScrollController::handleWheelEvent):
(WebCore::ScrollController::snapRubberBandTimerFired):
(WebCore::ScrollController::snapRubberBand):

7:49 PM Changeset in webkit [264145] by Chris Dumez
  • 53 edits
    3 copies
    41 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/websockets from upstream
https://bugs.webkit.org/show_bug.cgi?id=214107

Reviewed by Sam Weinig.

Resync web-platform-tests/websockets from upstream cef93b58e7cf31f1d47cc.

  • web-platform-tests/websockets/*: Updated.
7:47 PM Changeset in webkit [264144] by Chris Dumez
  • 159 edits
    10 copies
    7 moves
    136 adds
    7 deletes in trunk/LayoutTests

Resync web-platform-tests/fetch from upstream
https://bugs.webkit.org/show_bug.cgi?id=214111

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/fetch from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/fetch/*: Updated.

LayoutTests:

  • tests-options.json:
6:20 PM Changeset in webkit [264143] by beidson@apple.com
  • 6 edits in trunk/Source

Aggressively prime GameController.framework gamepad provider.
https://bugs.webkit.org/show_bug.cgi?id=214094

Reviewed by Darin Adler.

Source/WebCore:

GameController.framework gets itself going by listening for application activation,
assuming that it is hard linked.

Soft linking breaks this.

There's an SPI to manually kickstart it.

Also add some logging I'd added while exploring issues around this.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::prewarmGameControllerDevicesIfNecessary):
(WebCore::GameControllerGamepadProvider::startMonitoringGamepads):

  • platform/gamepad/cocoa/GameControllerSPI.h:

Source/WebKit:

  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadDisconnected):
(WebKit::WebGamepadProvider::gamepadActivity):

5:14 PM Changeset in webkit [264142] by stephan.szabo@sony.com
  • 3 edits in trunk/Tools

[Windows] Fix errors from calls to uname when not available
https://bugs.webkit.org/show_bug.cgi?id=214101

Reviewed by Darin Adler.

As bare windows doesn't default to having uname, avoid calls
to it for architecture determination.

  • Scripts/webkitdirs.pm: Do not call uname on windows (non-cygwin) perl
  • Scripts/webkitpy/common/system/platforminfo.py: Do not call uname for windows (non-cygwin) python, os.uname() also doesn't necessarily exist there, so use platform.uname() instead.
4:47 PM Changeset in webkit [264141] by commit-queue@webkit.org
  • 19 edits
    7 deletes in trunk/Source

Unreviewed, reverting r264132 and r264139.
https://bugs.webkit.org/show_bug.cgi?id=214108

Introduced assert failure.

Reverted changesets:

"[Cocoa] Update Launch Services database in the WebContent
process from the Network process"
https://bugs.webkit.org/show_bug.cgi?id=213794
https://trac.webkit.org/changeset/264132

"Unreviewed build fix attempt after r264132."
https://trac.webkit.org/changeset/264139

4:15 PM Changeset in webkit [264140] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed. Remove some mentions of non-existant files in expectations.

3:57 PM Changeset in webkit [264139] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix attempt after r264132.

  • pal/spi/cocoa/LaunchServicesSPI.h:
3:07 PM Changeset in webkit [264138] by Chris Dumez
  • 6 edits in trunk

ASSERTION FAILURE: Completion handlers not invalidated when WebPage::~WebPage() invoked navigating to docs.google.com and signing in
https://bugs.webkit.org/show_bug.cgi?id=214098
<rdar://problem/64848288>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure the WebPage destructor calls its "markLayersAsVolatile" CompletionHandlers before destroying
them.

Change is covered by new API test.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _processWillSuspendForTesting:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspension.mm:

(TEST):

2:59 PM Changeset in webkit [264137] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.1.2

Tag Safari-610.1.21.1.2.

2:46 PM Changeset in webkit [264136] by weinig@apple.com
  • 27 edits
    1 add in trunk

Part 3 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=214082

Reviewed by Darin Adler.

Source/WebCore:

  • Replaces all uses of SimpleColor that are not implementation details of Color, with SRGBA<uint8_t>.
  • Adds ColorBuilder<T> to allow maintaining the syntax SimpleColor for constant colors. e.g:

Color color = Color::yellow.colorWithAlpha(128);

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Add ColorBuilder.h

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::semanticColor const):

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::asSimple const):
(WebCore::Color::setSimpleColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):

  • Make constructor taking a SimpleColor private.
  • Add / modifiy constructors to take SRGBA<uint8_t>.
  • Make setSimpleColor() take a SRGBA<uint8_t> (this will be renamed along with other aspects of Color's internals in a subsequent change).
  • Update calls that still need SimpleColor to use an explicit construction from SRGBA<uint8_t>.
  • platform/graphics/ColorBuilder.h: Added.

(WebCore::ColorBuilder::ColorBuilder):
(WebCore::ColorBuilder::color const):
(WebCore::ColorBuilder::colorWithAlpha const):
Added to help maintain current syntax why constructing colors. Currently it only
supports color type with uint8_t components, but can be expanded to support more.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampToComponentByte):
Remove unnecessary cast.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor):
Restrict to explicit construction via a SRGBA<uint8_t>.

(WebCore::makeSimpleColor):
Update to return ColorBuilder<SRGBA<uint8_t>>. A future change will update
the function name, but kept the same here to limit the size of the change.

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):
(WebCore::nsColor):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::makeSimpleColorFromCGColor):
(WebCore::cachedCGColor):
Replace direct SimpleColor usage with SRGBA<uint8_t> and simplify Packed
construction now that .asSRGBA<uint8_t>() is not needed for color constants.

  • css/DeprecatedCSSOMRGBColor.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseNamedColor):
(WebCore::CSSParser::parseHexColor):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::finishParsingHexColor):
(WebCore::parseHexColorInternal):
(WebCore::parseNumericColor):
(WebCore::finishParsingNamedColor):
(WebCore::parseNamedColorInternal):
(WebCore::parseSimpleColorInternal):
(WebCore::CSSParserFastPaths::parseSimpleColor):
(WebCore::CSSParserFastPaths::parseHexColor):
(WebCore::CSSParserFastPaths::parseNamedColor):

  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHexColor):

  • html/ColorInputType.cpp:

(WebCore::parseSimpleColorValue):

  • html/HTMLElement.cpp:

(WebCore::parseLegacyColorValue):

  • page/DebugPageOverlays.cpp:

(WebCore::touchEventRegionColors):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo):

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendWithWhite):
(WebCore::blend):
(WebCore::blendWithoutPremultiply):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::cloneLayerDebugBorderColor):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawBoxes):

  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderThemeMac.mm:

(WebCore::menuBackgroundColor):
Replace direct SimpleColor usage with SRGBA<uint8_t>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update to account for makeSimpleColor no longer returning an object that has a
asSRGBA<uint8_t>() function (it is already a SRGBA<uint8_t>).

2:43 PM Changeset in webkit [264135] by Chris Dumez
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed, add iOS-specific baseline for WPT test after resync in r264117.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/select-wrap-no-spill.optional-expected.txt: Added.
2:40 PM Changeset in webkit [264134] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make a logging channel for ScrollSnap and improve its logging
https://bugs.webkit.org/show_bug.cgi?id=214096

Reviewed by Wenson Hsieh.

Pull existing scroll snap logging out of the Scrolling log channel into a new ScrollSnap channel,
add more logging, and make better use of TextStream-based logging.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::operator<<):
(WebCore::updateSnapOffsetsForScrollableArea):
(WebCore::snapOffsetsToString): Deleted.
(WebCore::snapOffsetRangesToString): Deleted.
(WebCore::snapPortOrAreaToString): Deleted.

  • platform/Logging.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/cocoa/ScrollController.mm:

(WebCore::operator<<):
(WebCore::ScrollController::processWheelEventForScrollSnap):
(WebCore::ScrollController::startScrollSnapTimer):
(WebCore::ScrollController::stopScrollSnapTimer):
(WebCore::ScrollController::scrollSnapTimerFired):
(WebCore::ScrollController::updateScrollSnapState):

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

(WebCore::operator<<):

2:33 PM Changeset in webkit [264133] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add a fuzzing toggle for LICM
https://bugs.webkit.org/show_bug.cgi?id=214093

Reviewed by Yusuke Suzuki.

We have an AI based safety checker for LICM, to determine if it's safe to
hoist nodes. Historically, we've had bugs here, where we allow unsafe
hoisting. In practice, we've been saved by safety checks also being hoisted
at the same time as the operation they're protecting, so even if we
have bugs in AI-based safeToExecute, things usually just work. Since
we've had security bugs here before, where the safety checks don't get hoisted,
leading to issues, it's helpful if we can fuzz this area. This patch implements
a way to says we won't hoist a node based on some probability, allowing us to play
with what does and doesn't get hoisted.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

  • runtime/OptionsList.h:
2:13 PM Changeset in webkit [264132] by pvollan@apple.com
  • 19 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

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

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

1:13 PM Changeset in webkit [264131] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:09 PM Changeset in webkit [264130] by dino@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

input button test needs rebaseline for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=214095
rdar://64911045

Unreviewed gardening. This test produces different results on Big Sur.

  • platform/mac-bigsur/fast/forms/input-button-sizes-expected.txt: Added.
12:54 PM Changeset in webkit [264129] by ggaren@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Reviewed by Darin Adler.

Make this test deterministic by waiting for the correct result.

  • accessibility/textarea-selected-text-range-expected.txt:
  • accessibility/textarea-selected-text-range.html:
12:42 PM Changeset in webkit [264128] by pvollan@apple.com
  • 6 edits
    5 adds in trunk

[Cocoa] Make it possible to establish direct XPC connections between WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=214079

Reviewed by Brent Fulgham.

Source/WebCore:

Add abstract classes XPCEndpoint and XPCEndpointClient to handle the creation of direct xpc connections between WebKit processes.
In order to create a direct xpc connection between two processes, these two classes can be subclassed, and the xpc endpoint created
by the XPCEndpoint object, can be sent via the UI process over the bootstrap xpc connection. The UI process can then forward this
endpoint to another WebKit process by sending it over the bootstrap xpc connection. The receiving process can then initialize an
XPCEndpointClient object with this endpoint, and a new direct connection will then be available, over which the two processes can
communicate.

API test: WebKit.XPCEndpoint

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/XPCEndpoint.h: Added.
  • platform/cocoa/XPCEndpoint.mm: Added.

(WebCore::XPCEndpoint::XPCEndpoint):
(WebCore::XPCEndpoint::sendEndpointToConnection):
(WebCore::XPCEndpoint::endpoint const):

  • platform/cocoa/XPCEndpointClient.h: Added.

(WebCore::XPCEndpointClient::~XPCEndpointClient):

  • platform/cocoa/XPCEndpointClient.mm: Added.

(WebCore::XPCEndpointClient::setEndpoint):
(WebCore::XPCEndpointClient::connection):

Source/WTF:

Declare function to create a xpc endpoint, as well as a function to create a connection from an endpoint.

  • wtf/spi/darwin/XPCSPI.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/XPCEndpoint.mm: Added.

(TEST):

12:34 PM Changeset in webkit [264127] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Limit layout tests failures to display in the status-bubble tooltip and buildbot summary
https://bugs.webkit.org/show_bug.cgi?id=214085

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py: Limit NUM_FAILURES_TO_DISPLAY to 10.

(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.report_pre_existing_failures):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeLayoutTestsResults.test_clean_tree_has_some_failures): Updated as per new behavior.
(TestAnalyzeLayoutTestsResults.test_failure_on_clean_tree): Updated to also test for build_summary.
(TestAnalyzeLayoutTestsResults.test_flaky_and_inconsistent_failures_with_clean_tree_failures): Ditto.
(TestAnalyzeLayoutTestsResults.test_mildly_flaky_patch_with_some_tree_redness_and_flakiness): Ditto.
(TestAnalyzeLayoutTestsResults.test_flaky_failures_in_first_run): Added unit-test.
(TestAnalyzeLayoutTestsResults.test_clean_tree_has_lot_of_failures_and_no_new_failure): Added unit-test.
(TestAnalyzeLayoutTestsResults.test_patch_introduces_lot_of_failures): Added unit-test.

12:29 PM Changeset in webkit [264126] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

dyld: Symbol not found: ZN3WTF19initializeThreadingEv - webkit MacOSX
https://bugs.webkit.org/show_bug.cgi?id=214034

Reviewed by Mark Lam.

  • wtf/Threading.cpp:

(WTF::initializeThreading): Export the old symbol name for compatibility.

12:08 PM Changeset in webkit [264125] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Regression(r261756): webanimations/accelerated-animation-single-keyframe.html is consistently timing out on windows
https://bugs.webkit.org/show_bug.cgi?id=214088

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:51 AM Changeset in webkit [264124] by chris.reid@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

Heap Snapshot Object Graph view doesn't get populated in some cases when inspecting a JSContext
https://bugs.webkit.org/show_bug.cgi?id=214054

Reviewed by Devin Rousso.

When JSContexts are created with a custom globalObjectClass, that object is an
instance of CallbackGlobalObject and not GlobalObject so the view doesn't get populated.
Add instances of CallbackGlobalObject to the Object Graph view as top level nodes.

  • UserInterface/Views/HeapSnapshotDataGridTree.js:
11:45 AM Changeset in webkit [264123] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:42 AM Changeset in webkit [264122] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Silence spam reports about deprecated logging system
https://bugs.webkit.org/show_bug.cgi?id=214090
<rdar://problem/63943836>

Reviewed by Per Arne Vollan.

Change the default 'block' behavior for 'com.apple.system.logger' to
block "with no-report" so that we don't spend time generating backtraces
when non-WebKit code attempts to use this deprecated logging system.

  • WebProcess/com.apple.WebProcess.sb.in:
11:39 AM Changeset in webkit [264121] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build fix after r264050
https://bugs.webkit.org/show_bug.cgi?id=214091

Unreviewed build fix

No new tests, only build fix.

  • platform/playstation/ScrollbarThemePlayStation.cpp:
11:30 AM Changeset in webkit [264120] by commit-queue@webkit.org
  • 4 edits in trunk

Text manipulation should ignore white spaces between nodes
https://bugs.webkit.org/show_bug.cgi?id=213907

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-08
Source/WebCore:

Reviewed by Wenson Hsieh.

Text returned by TextIterator contains white spaces (including tabs and line breaks) that do not belong to
content of nodes. Those spaces are emitted based on style of nodes. For example, line breaks can be emitted
before and after block-level element. These spaces should not be extracted as part of the content, because
they could change based on the style of nodes or range of TextIterator, and manipulation fails if content is
changed. We want to make sure TextManipulationController monitors the real content of nodes.

r262778 tried solving this issue by excluding text with empty node from TextIterator's result. That worked with
line break, but not space and tab. See radar and new test. To solve this, now we exclude text with zero-length
range.

This patch does not change the behavior of line breaks, which is covered by:
TextManipulation.StartTextManipulationExtractsVisibleLineBreaksInTextAsExcludedTokens
TextManipulation.CompleteTextManipulationCanMergeContentAndPreserveLineBreaks
TextManipulation.CompleteTextManipulationReplaceTwoSimpleParagraphs

New test: TextManipulation.CompleteTextManipulationIgnoreWhiteSpacesBetweenParagraphs
Modified existing tests: TextManipulation.StartTextManipulationExtractsValuesByNode

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::ParagraphContentIterator):
(WebCore::ParagraphContentIterator::shouldAdvanceIteratorPastCurrentNode const):
(WebCore::ParagraphContentIterator::advanceIteratorNodeAndUpdateText):

Tools:

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

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

Network process crashes in WebKit::WebIDBServer::removeConnection
https://bugs.webkit.org/show_bug.cgi?id=214071
<rdar://problem/64853929>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-08
Reviewed by Chris Dumez.

In network process, WebIDBServer may be removed and destroyed before web process using the same session
disconnects. Then a new WebIDBServer can be added before disconnection of web process and the new WebIDBServer
does not have information about the web process connection.

To solve this issue, now we only remove WebIDBServer when session is destroyed and there is no web process
connection of that session.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::removeWebIDBServerIfPossible):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

  • NetworkProcess/NetworkProcess.h:
11:03 AM Changeset in webkit [264118] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Remove use of live ranges from AXObject.h
https://bugs.webkit.org/show_bug.cgi?id=214053

Reviewed by Sam Weinig.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange): Take SimpleRange.
(WebCore::AXObjectCache::lengthForRange): Take Optional<SimpleRange>.
(WebCore::AXObjectCache::rangeForNodeContents): Return SimpleRange, take reference
rather than pointer.
(WebCore::characterOffsetsInOrder): Use SimpleRange.
(WebCore::resetNodeAndOffsetForReplacedNode): Take a reference to the node rather than
a pointer.
(WebCore::boundaryPoint): Added. Could be used to replace calls to
setRangeStartOrEndWithCharacterOffset.
(WebCore::setRangeStartOrEndWithCharacterOffset): Take SimpleRange. Also use the
new boundaryPoint function above.
(WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets): Return Optional<SimpleRange>.
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange): Take SimpleRange.
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange): Take SimpleRange.
(WebCore::AXObjectCache::characterOffsetForNodeAndOffset): Use SimpleRange.
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset): Ditto.
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset): Ditto.
(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::leftWordRange): Return Optional<SimpleRange>.
(WebCore::AXObjectCache::rightWordRange): Ditto.
(WebCore::AXObjectCache::nextBoundary): Ditto.
(WebCore::AXObjectCache::previousBoundary): Ditto.
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph): Use SimpleRange.
(WebCore::AXObjectCache::endCharacterOffsetOfParagraph): Ditto.
(WebCore::AXObjectCache::paragraphForCharacterOffset): Ditto.
(WebCore::AXObjectCache::sentenceForCharacterOffset): Ditto.
(WebCore::AXObjectCache::localCaretRectForCharacterOffset): Ditto.
(WebCore::AXObjectCache::characterOffsetForPoint): Ditto.
(WebCore::AXObjectCache::characterOffsetForIndex): Ditto.
(WebCore::AXObjectCache::indexForCharacterOffset): Ditto.

  • accessibility/AXObjectCache.h: Remove uses of Range and include of "Range.h".
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::elementRange const): Call createLiveRange.
(WebCore::AccessibilityObject::rangeForPlainTextRange const): Ditto.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::boundsForRange const): Pass SimpleRange.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(+[WebAccessibilityTextMarker startOrEndTextMarkerForRange:isStart:cache:]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper positionForTextMarker:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper textMarkerForPosition:]): Ditto.
(-[WebAccessibilityObjectWrapper rangeForTextMarkers:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper lengthForTextMarkers:]): Pass SimpleRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(startOrEndTextmarkerForRange):
(-[WebAccessibilityObjectWrapper rangeForTextMarkerRange:]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper _indexForTextMarker:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeAtTextMarker:forUnit:]): Ditto.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Ditto.

  • dom/BoundaryPoint.h: Added makeBoundaryPointBefore/AfterNode.
  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointBeforeNode): Added.
(WebCore::makeBoundaryPointAfterNode): Ditto.

10:57 AM Changeset in webkit [264117] by Chris Dumez
  • 123 edits
    32 copies
    9 moves
    310 adds
    107 deletes in trunk/LayoutTests

Resync all remaining web-platform-tests/html tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=214057

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync all remaining web-platform-tests/html tests from upstream cef93b58e7cf31f1d47ccb.

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

10:56 AM Changeset in webkit [264116] by Darin Adler
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Fix adjust-angle-include-paths.sh error seen building ANGLE library
https://bugs.webkit.org/show_bug.cgi?id=214059

Reviewed by Alexey Proskuryakov.

  • ANGLE.xcodeproj/project.pbxproj: Remove the build step that adjusts paths.

Dean Jackson told me we don't need it for the static library target.

10:50 AM Changeset in webkit [264115] by Alan Coon
  • 8 edits in branches/safari-610.1.21.1-branch/Source

Versioning.

WebKit-610.1.21.1.2

10:45 AM Changeset in webkit [264114] by weinig@apple.com
  • 7 edits
    1 delete in trunk/LayoutTests

Remove LayoutTests/fast/forms/datetime now that <input type="datetime"> code has been removed
https://bugs.webkit.org/show_bug.cgi?id=214064

Reviewed by Dan Bernstein.

  • fast/forms/datetime: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Stop skipping the removed tests.

10:43 AM Changeset in webkit [264113] by aestes@apple.com
  • 23 edits
    2 adds in trunk

REGRESSION (r207558): [Mac] Context clicks on links sometimes result in navigations
https://bugs.webkit.org/show_bug.cgi?id=213793
<rdar://problem/64294015>

Reviewed by Tim Horton.

Source/WebKit:

WebPageProxy::showContextMenu was written with the assumption that WebContextMenuProxy::show
would present a context menu and spin a nested run loop, blocking until the menu dismisses.
Once WebContextMenuProxy::show returns, showContextMenu would send the
WebPage::ContextMenuHidden message, telling the WebContent process that it's OK to resume
processing mouse events.

This assumption was invalidated in r207558 (and again in several subsequent changes), which
added asynchronous APIs to WKPageContextMenuClient. If the context menu client provides
context menu items asynchronously, WebContextMenuProxy::show would return -- and the
WebContent process would resume processing mouse events -- before the context menu was even
presented. Since context menu presentation is triggered by a mouse press event, it's
possible that the corresponding mouse release event would be delivered after
getContextMenuFromProposedMenuAsync was dispatched but before the client responded with menu
items to present. If this happened, since mouse event processing was not disabled, the
WebContent process would dispatch a DOM click event to the page, possibly triggering a
navigation.

Fix this by teaching WebPageProxy to defer sending WebPage::ContextMenuHidden until the
context menu has been dismissed, even in cases where the context menu client provides menu
items asynchronously. Also, take the opportunity to modernize WebContextMenuProxy and its
subclasses by, e.g., moving duplicated subclass code into the base class, using the client
pattern, and using WeakPtrs instead of raw pointers/references.

New API tests: ContextMenuMouseEvents.*

  • UIProcess/API/APIContextMenuClient.h:

(API::ContextMenuClient::showContextMenu):
(API::ContextMenuClient::canShowContextMenu const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient): Added canShowContextMenu to determine whether the client
can show a context menu without actually showing it.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::createContextMenuProxy): Passed page to
WebContextMenuProxyWPE::create.

  • UIProcess/WebContextMenuListenerProxy.cpp:

(WebKit::WebContextMenuListenerProxy::WebContextMenuListenerProxy):
(WebKit::WebContextMenuListenerProxy::useContextMenuItems):
(WebKit::WebContextMenuListenerProxy::invalidate): Deleted. Not needed now that m_client is
a WeakPtr.

  • UIProcess/WebContextMenuListenerProxy.h:

(WebKit::WebContextMenuListenerProxy::create): Rather than store a raw pointer to a
WebContextMenuProxy, store a WeakPtr to a WebContextMenuListenerProxy::Client (which
WebContextMenuProxy implements).

  • UIProcess/WebContextMenuProxy.cpp:

(WebKit::WebContextMenuProxy::WebContextMenuProxy): Stored a WeakPtr to a WebPageProxy
rather than storing a raw pointer to the same in each subclass.
(WebKit::WebContextMenuProxy::proposedItems const): Added a virtual function to create
proposed WebContextMenuItems from m_context's menu items. WebContextMenuProxyGtk overrides
this to do something slightly different.
(WebKit::WebContextMenuProxy::show): Added a base class implementation that creates a
WebContextMenuListenerProxy and calls ContextMenuClient::getContextMenuFromProposedMenu.
(WebKit::WebContextMenuProxy::useContextMenuItems): Added a base class implementation that
performs the work previously done in WebPageProxy::showContextMenu. Calls
showContextMenuWithItems, which now always synchronously presents the menu.

  • UIProcess/WebContextMenuProxy.h: Inherited from WebContextMenuListenerProxy::Client.

(WebKit::WebContextMenuProxy::page const): Added for use by WKSharingServicePickerDelegate.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showContextMenu): Moved code that assumes synchronous menu
presentation to WebContextMenuProxy::useContextMenuItems.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::proposedItems const): Implemented GTK's special version
that excludes ContextMenuItemTagShareMenu.
(WebKit::WebContextMenuProxyGtk::show): Deleted. WebContextMenuProxy::show handles this now.
(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):

  • UIProcess/gtk/WebContextMenuProxyGtk.h: Moved m_page to WebContextMenuProxy.
  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Changed now that
WebContextMenuProxy::page returns a pointer.

  • UIProcess/mac/WebContextMenuProxyMac.h:

(WebKit::WebContextMenuProxyMac::page const): Deleted.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
(WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac): No need to invalidate
m_contextMenuListener now that it stores a WeakPtr to its WebContextMenuProxy.
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
(WebKit::WebContextMenuProxyMac::showServicesMenu):
(WebKit::WebContextMenuProxyMac::show):
(WebKit::WebContextMenuProxyMac::showContextMenuWithItems): Overrode to handle service menus.
(WebKit::WebContextMenuProxyMac::useContextMenuItems): Overrode to get the standard Mac menu
items and dispatch ContextMenuClient::menuFromProposedMenu before showing the menu.
(WebKit::WebContextMenuProxyMac::showContextMenu): Deleted. WebContextMenuProxy::show now
handles this.

  • UIProcess/win/WebContextMenuProxyWin.cpp:

(WebKit::WebContextMenuProxyWin::showContextMenuWithItems):
(WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin):
(WebKit::WebContextMenuProxyWin::show): Deleted. WebContextMenuProxy::show now handles this.

  • UIProcess/win/WebContextMenuProxyWin.h:
  • UIProcess/wpe/WebContextMenuProxyWPE.h: Passed page to the WebContextMenuProxy ctor.

Tools:

Added API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuMouseEvents.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKit/mac/ContextMenuControlClick.mm.

(TestWebKitAPI::runTest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:modifierFlags:mouseEventType:]):
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:modifierFlags:eventType:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:withFlags:eventType:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseUpAtPoint:withFlags:eventType:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:modifierFlags:]): Deleted.
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:modifierFlags:]): Deleted.
(-[TestWKWebView mouseDownAtPoint:simulatePressure:withFlags:]): Deleted.
(-[TestWKWebView mouseUpAtPoint:withFlags:]): Deleted.

10:08 AM Changeset in webkit [264112] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

autocapitalize="words" capitalizes every word's second character
https://bugs.webkit.org/show_bug.cgi?id=148504
<rdar://problem/57814304>

Reviewed by Tim Horton.

Source/WebKit:

This bug resurfaced in iOS 13 due to timing changes that caused a task added to UIKeyboardTaskQueue to no longer
get dequeued after the next editor state update is received in the UI process; as a result, UIKit asks us for
the context before the caret selection (i.e. characterBeforeSelection) before we have a chance to update it,
which means that UIKeyboardImpl's autoshift state will always be off by one character whie typing.

Note that solely deferring this update until after the next editor state update is received is insufficient to
fix this bug, since the keyboard's shift state will still be incorrect when typing characters very quickly (or
if the web process is unresponsive).

Instead, completely address this bug by adding a mechanism for WKContentView to cache the last character in the
string that is currently being inserted using -insertText:, and return it in -_characterBeforeCaretSelection
until the next editor state update comes in with the real character before the selection. This way, we're able
to respond to UIKit's requests immediately with a (reasonable) guess of what the character before the selection
should be, and then follow it up with the actual up-to-date value from the web process during the next editor
state update (invalidating the stale shift state if necessary). This cached last character should only be
incorrect in the case where the page uses script to influence what was typed, or the typed character was never
inserted at all (e.g. typing a newline character in a single line input element).

Test: fast/forms/ios/autocapitalize-words.html

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

(-[WKContentView cleanUpInteraction]):
(-[WKContentView _characterBeforeCaretSelection]):

Use _lastInsertedCharacterToOverrideCharacterBeforeSelection, if it is set.

(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView insertText:]):

Update _lastInsertedCharacterToOverrideCharacterBeforeSelection and ensure an editor state update immediately
after text is inserted, if we're currently editing an element with autocapitalize="words". The editor state
update could be unnecessarily expensive, so we don't want to do this unconditionally. Also,
autocapitalize="words" is special in the sense that it is the only autocapitalization type where the platform
(UIKit) will ask for the last character immediately and use it to unshift the keyboard. Even in the case of
autocapitalize="sentences", UIKit makes the decision to unshift using information from kbd instead.

(-[WKContentView _elementDidBlur]):
(-[WKContentView _selectionChanged]):

Clear out _lastInsertedCharacterToOverrideCharacterBeforeSelection when the next editor state update is
received, and invalidate the current keyboard shift state by calling -clearShiftState. This SPI method
automatically schedules a shift state update, as well.

Note the extra _usingGestureForSelection check here, which prevents the keyboard from autoshifting and
unshifting while changing the selection via loupe gesture.

LayoutTests:

Add a new layout test to verify that the bug does not occur.

  • fast/forms/ios/autocapitalize-words-expected.txt: Added.
  • fast/forms/ios/autocapitalize-words.html: Added.
10:03 AM Changeset in webkit [264111] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.0.2

Tag Safari-610.1.21.0.2.

10:01 AM Changeset in webkit [264110] by Alan Coon
  • 5 edits in branches/safari-610.1.21.0-branch/Source/WebCore

Cherry-pick r264058. rdar://problem/65195012

[Apple Pay] Fix the build on Catalina internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=214066

Unreviewed build fix for the 10.15.0 Internal SDK.

Source/WebCore:

  • Modules/applepay/ApplePaySetupFeature.mm: (WebCore::ApplePaySetupFeature::supportsInstallments const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/spi/cocoa/PassKitSPI.h:

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

9:55 AM Changeset in webkit [264109] by Alan Coon
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.2

9:47 AM Changeset in webkit [264108] by jer.noble@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening; "rebaseline" the video-orientation-canvas.html test to center the expected red color
results on observed output.

  • media/video-orientation-canvas-expected.txt:
  • media/video-orientation-canvas.html:
9:45 AM Changeset in webkit [264107] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Do not use the initial strut baseline values when the text content is inside an inline container
https://bugs.webkit.org/show_bug.cgi?id=214069

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):

  • layout/inlineformatting/InlineLineBuilder.h:

LayoutTests:

  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container-expected.html: Added.
  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html: Added.
9:43 AM Changeset in webkit [264106] by jer.noble@apple.com
  • 3 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.SleepDisabler.NavigateBack
https://bugs.webkit.org/show_bug.cgi?id=213513
<rdar://problem/64642715>

Reviewed by Eric Carlson.

Make the test less dependent on the specific behavior of restoring the history state by adding code within
the source HTML itself to explicitly play the contained video after state restoration.

  • TestWebKitAPI/Tests/WebKit/SleepDisabler.mm:

(TEST_F):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/video-with-audio.html:
9:42 AM Changeset in webkit [264105] by sbarati@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

Add a way to return early from detected infinite loops to aid the fuzzer
https://bugs.webkit.org/show_bug.cgi?id=214067

Reviewed by Yusuke Suzuki.

It's useful for the fuzzer to not get stuck in infinite loops so its
test cases can make forward progress trying to find bugs. This patch
adds a new mechanism where we can early return if we've exceeded a total
execution count for a static loop in bytecode. Note: this is not on a
per-frame basis, but it's a way to implement this in a non-invasive way
which is also practical for the fuzzer to use.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::emitEpilogue):

  • b3/air/AirCode.h:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):

  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::~CodeBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileLoopHint):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/mips.rb:
  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::addLoopHintExecutionCounter):
(JSC::VM::getLoopHintExecutionCounter):
(JSC::VM::removeLoopHintExecutionCounter):

  • runtime/VM.h:
9:42 AM Changeset in webkit [264104] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Skip a couple of WPT webaudio tests instead of marking them as crashing.

This avoids wasting resources on the bots since those tests are consistently crashing.

9:41 AM Changeset in webkit [264103] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Table width is computed as if box-sizing was border-box
https://bugs.webkit.org/show_bug.cgi?id=214070

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently the width property of the <table> works as if box-sizing were set to border-box (and <div style="display: table" does not).

Test: fast/layoutformattingcontext/table-with-padding-and-border-simple.html

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):

LayoutTests:

  • fast/layoutformattingcontext/table-with-padding-and-border-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-with-padding-and-border-simple.html: Added.
9:22 AM Changeset in webkit [264102] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test webanimations/accelerated-animation-single-keyframe.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=214081

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:16 AM Changeset in webkit [264101] by graouts@webkit.org
  • 11 edits
    2 adds in trunk

[iOS] Sharing an <img> element with a base64-encoded URL shares the URL as raw text instead of an image
https://bugs.webkit.org/show_bug.cgi?id=214042
<rdar://problem/56669102>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • en.lproj/Localizable.strings:

Source/WebKit:

In the case where the <img> element that was the target when the share sheet was brought has its data encoded
as a base64 URL, we need to share the UIImage that was created as its snapshot as a file rather than the URL
to avoid a base64 string to be shared instead of the image data.

To support testing of this, we add a new optional WKShareSheet delegate to indicate that the share sheet will
show and the provided activity items, which we forward to a new optional WKUIDelegatePrivate delegate method.
API tests can thus be written to check the data provided to the share sheet.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/WKShareSheet.h:
  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithShareDataArray:inRect:]):

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

(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shareSheet:willShowActivityItems:]):
(-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]):
(-[WKContentView actionSheetAssistant:shareElementWithImage:rect:]):

Tools:

Add a test that loads a page with an <img> with its data encoded as a base64 URL, brings up the share sheet for it
and checks a single NSURL object is made available in the activity items.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ShareSheetTests.mm: Added.

(-[ShareSheetObserver _webView:actionsForElement:defaultActions:]):
(-[ShareSheetObserver _webView:willShareActivityItems:]):
(TestWebKitAPI::showShareSheet):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/img-with-base64-url.html: Added.
8:48 AM Changeset in webkit [264100] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 Release and iOS wk2 Release ] webrtc/libwebrtc/descriptionGetters.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=214084

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:16 AM Changeset in webkit [264099] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r262194 - [WPE] REGRESSION(r253675) Crash when using threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=212404

Reviewed by Carlos Garcia Campos.

Check whether the GraphicsContext has a PlatformGraphicsContext before trying to paint with
it. If there's no PlatformGraphicsContext, paint using the GraphicsContext methods instead.

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):

5:38 AM Changeset in webkit [264098] by Carlos Garcia Campos
  • 7 edits
    4 adds in releases/WebKitGTK/webkit-2.28

Merge r259137 - Hovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=209635
<rdar://problem/60935010>

Reviewed by Said Abou-Hallawa.
Source/WebCore:

RenderSVGResourceClipper::applyClippingToContext() cached an ImageBuffer per RenderObject
when using a image buffer mask. However, the function created and rendered into this image buffer
using repaintRect, which can change between invocations. Painting with different repaintRects
is very common when rendering into page tiles.

The buffer can only be re-used if the inputs used to create the buffer (objectBoundingBox, absoluteTransform)
are the same, so store those and compare them when determining when to use the cached buffer, and
don't use repaintRect when setting up the buffer.

This revealed another problem where renderers with visual overflow could be truncated by
the clipping, tested by imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml, which occurred
because RenderLayer::setupClipPath() used the 'svgReferenceBox' for the clipping bounds, which
is the content box of the renderer excluding overflow. Fix this by using the bounds of the layer,
which includes the bounds of descendants.

Tests: svg/clip-path/clip-path-on-overflowing.html

svg/clip-path/resource-clipper-multiple-repaints.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::addRendererToClipper):
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):

  • rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

Ref test that exercises the code path by painting into a tiled compositing
layer.

  • svg/clip-path/clip-path-on-overflowing-expected.html: Added.
  • svg/clip-path/clip-path-on-overflowing.html: Added.
  • svg/clip-path/mask-nested-clip-path-010-expected.svg:
  • svg/clip-path/mask-nested-clip-path-010.svg: Copied from imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml,

and modified to have a non-zero offset for better testing of the clipping bounds computation.

  • svg/clip-path/resource-clipper-multiple-repaints-expected.html: Added.
  • svg/clip-path/resource-clipper-multiple-repaints.html: Added.
4:26 AM Changeset in webkit [264097] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] web-platform-tests/encrypted-media/clearkey-events-session-closed-event.https.html random crashes
https://bugs.webkit.org/show_bug.cgi?id=210264

Reviewed by Philippe Normand.

  • platform/glib/TestExpectations: Change test expectations.
4:22 AM Changeset in webkit [264096] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Pre-start sccache server
https://bugs.webkit.org/show_bug.cgi?id=213973

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Žan Doberšek.

Pre-start the sccache-dist server when the flatpak sandbox is being invoked for a build.
Usually the first sccache client process would do it but it seems to be racy when a large
number of clients is being started simultaneously.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

4:19 AM Changeset in webkit [264095] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE][Qt] Deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=214074

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::updatePaintNode): Switch to new createTextureFromNativeObject API when building against Qt 5.15.

  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::dispatchWheelEvent): Switch to new WPE axis 2D event API.

4:02 AM Changeset in webkit [264094] by clopez@igalia.com
  • 3 edits in trunk/Tools

[GTK][WPE] install-dependencies should install the gstreamer plugins
https://bugs.webkit.org/show_bug.cgi?id=214045

Reviewed by Adrian Perez de Castro.

When building webkit against system libraries (without flatpak/jhbuild)
its needed to have installed the webkit plugins to play media files.
The install-dependencies script should install them.

gstreamer-plugins-ugly its likely not needed for the majority of the cases,
but it can be required by some ugly media files that require an ugly decoder.
Since we are installing it on the flatpak, let's add it here as well.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
3:53 AM Changeset in webkit [264093] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitpy] run-minibrowser doesn't handle unicode urls
https://bugs.webkit.org/show_bug.cgi?id=214036

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Žan Doberšek.

Convert unregistered command-line arguments to utf-8 and append parsed URL. Previously
unrelated arguments (like the platform arg) were passed to the final MiniBrowser app, this
is no longer the case.

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main):

3:41 AM Changeset in webkit [264092] by clopez@igalia.com
  • 4 edits
    5 adds in trunk/Tools

[JHBuild] Add support for using a minimal moduleset
https://bugs.webkit.org/show_bug.cgi?id=213614

Reviewed by Carlos Garcia Campos.

This patch introduces a way of specifying a moduleset other than the default
via the environment variable WEBKIT_JHBUILD_MODULESET and adds a minimal moduleset
that allows building WebKit with it. This minimal moduleset includes the libraries
needed for building WebKit on Ubuntu-18.04, and those libraries are only build if
needed since they include the <pkg-config> entries that tells JHBuild to not build
them if those are already installed system wide. So this minimal moduleset should
work also on newer versions of Ubuntu or even other distributions.

Currently a recipe for newer libsoup than the one shipped by Ubuntu-18.04 is included
since we need this to have support for SameSite cookie support.
The minimal moduleset is shared between WPE and GTK to reduce code duplication.

To use this, you have to export on the build environment:
WEBKIT_JHBUILD=1
WEBKIT_JHBUILD_MODULESET=minimal

  • Scripts/update-webkit-libs-jhbuild:

(getJhbuildIncludedFilePaths):
(jhbuildModulesetNameChanged):
(jhbuildConfigurationChanged):
(saveJhbuildMd5):
(saveJhbuildModulesetName):
(saveJhbuildConfig):
(deleteJhbuildMd5):
(deleteJhbuildModulesetName):
(deleteJhbuildConfig):

  • Scripts/webkitdirs.pm:

(getJhbuildModulesetName):

  • gtk/jhbuild-minimal.modules: Added.
  • jhbuild/jhbuild-minimal.modules: Added.
  • jhbuild/jhbuildrc_common.py:

(init):

  • jhbuild/patches/libsoup-lower-glib-dependency-to-2.38.patch: Added.
  • wpe/jhbuild-minimal.modules: Added.
3:07 AM Changeset in webkit [264091] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r263899 - [WPE][GTK] Bubblewrap sandbox should not attempt to bind empty paths
https://bugs.webkit.org/show_bug.cgi?id=202880

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-03
Reviewed by Carlos Garcia Campos.

If an empty path is set in LD_LIBRARY_PATH (e.g. /foo::/bar), we wind up passing
--ro-bind-try --ro-bind-try to bwrap, where the second --ro-bind-try is treated as the
source path to mount, and the next flag we pass gets treated as the destination path. The
web process crashes with this confusing error:

bwrap: Can't create file at /.flatpak-info: Read-only file system

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindIfExists):

3:07 AM WebKitGTK/2.28.x edited by Carlos Garcia Campos
(diff)
3:07 AM Changeset in webkit [264090] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262274 - [GTK][WPE] Buildfix after r262242

Unreviewed build fix.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

3:07 AM Changeset in webkit [264089] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262242 - [WPE][GTK] GVariant decoding must copy the serialized data
https://bugs.webkit.org/show_bug.cgi?id=212441

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-28
Reviewed by Carlos Garcia Campos.

I tracked this down to ArgumentCodersGLib.cpp. The problem is that we construct a GVariant
using g_variant_new_from_data(), which does not copy or take ownership of the data, so here
we accidentally create the GVariant using data we don't own. (Here, the data is owned by the
Decoder itself in its internal m_buffer.) Anyway, this is fixable by manually copying and
freeing it with the GDestroyNotify parameter, but it's easier to switch to
g_variant_new_from_bytes() because GBytes takes ownership when constructed.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

3:07 AM Changeset in webkit [264088] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r261680 - [GStreamer] Can't replay blob videos in web.whatsapp.com
https://bugs.webkit.org/show_bug.cgi?id=192540

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

This is a variant of bug 211627 but I could reproduce it only for videos. Unfortunately I
wasn't able to write a reliable test for this.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus): Prevent the fill timer from
running forever after buffering completed.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): Don't buffer blobs, this doesn't seem useful as they're already
in memory anyway.

3:07 AM Changeset in webkit [264087] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r261550 - [GStreamer] Audio messages in web.whatsapp.com only play once.
https://bugs.webkit.org/show_bug.cgi?id=211627

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

Source/WebCore:

Test: media/video-src-blob-replay.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag): Make sure on-disk
buffering is disabled for blob URIs, because it messes up the pipeline for replays, and it's
useless for that use-case anyway.

LayoutTests:

  • media/video-src-blob-replay-expected.txt: Added.
  • media/video-src-blob-replay.html: Added.
3:07 AM Changeset in webkit [264086] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r261326 - REGRESSION(r251875): Crash in JSC::StructureIDTable::get on ppc64le: gcSafeMemcpy broken on JSVALUE64 platforms other than x86_64 and aarch64
https://bugs.webkit.org/show_bug.cgi?id=210685

Patch by Daniel Kolesa <daniel@octaforge.org> on 2020-05-07
Reviewed by Michael Catanzaro.

Fix gcSafeMemcpy on non-x86_64/aarch64 64-bit architectures.

We were hitting an incorrect x86_64 assertion on values larger than
mediumCutoff on JSVALUE64 architectures other than x86_64 and aarch64,
as the control flow is wrong.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):

3:07 AM Changeset in webkit [264085] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r261165 - [GStreamer] Video loops when ran in rr record --chaos
https://bugs.webkit.org/show_bug.cgi?id=211182

Reviewed by Philippe Normand.

Source/WebCore:

While trying to investigate a different bug, I ran the browser with
rr record --chaos, which makes it run very slowly and shuffles
thread scheduling to try to make existing race conditions more likely
to show up, also inevitably making the software run very slow.

Doing so I found something strange: the video kept looping even though
it didn't have the loop attribute set.

After some debugging I found that MediaPlayer decides if the video has
ended in part by checking currentMediaTime() is greater or equal to
the video duration, which was not guaranteed to be the case in
MediaPlayerPrivateGStreamer.

As a consequence of this patch, one new LayoutTest has passed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):

LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
is now passing.

  • platform/gtk/TestExpectations:
3:07 AM Changeset in webkit [264084] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260892 - PlatformMediaResourceLoader should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=211155

Reviewed by Xabier Rodriguez-Calvar.

PlatformMediaResourceLoader is only safe to use from the main thread.
A tricky detail is this includes its destruction. The same is true for
PlatformMediaResource.

Both classes are ThreadSafeRefCounted<> classes and therefore
WTF::DestructionThread::Main can be used to ensure destruction is run
in the correct thread with no need for additional client code.

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::StreamingMembers::~StreamingMembers):

3:07 AM Changeset in webkit [264083] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260886 - [GStreamer] Switch to audiointerleave
https://bugs.webkit.org/show_bug.cgi?id=211124

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

The audiointerleave element is a drop-in replacement of
interleave. It should behave a bit better in live.

No new tests, existing webaudio tests cover this change.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcChangeState):

3:07 AM Changeset in webkit [264082] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260938 - Unreviewed, GStreamer build warning fix after r260755.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): There is no need to capture src in the
closure, its protector is used instead.

3:07 AM Changeset in webkit [264081] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28

Merge r260755 - [GStreamer] Rework WebKitWebSrc threading
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=210284

Reviewed by Xabier Rodriguez-Calvar.

WebKitWebSrc as it is in master has a number of race conditions
leading to occasional starvation (due to cancelling the wrong request)
or data corruption (due to pushing data from a cancelled request).

The threading situation wasn't easy to follow, as it wasn't clear
access to what members should be protected by what mutex, in what
circumstances. Also, some parts of the design were also introducing
addicional complexity, such as the first request being sent from the
main thread whereas the rest were being sent from the streaming thread
or basesrc async start.

In response, this patch reworks all the locking in WebKitWebSrc to use
WTF::DataMutex. This ensures all accesses to its (now explicit)
protected members are locked. The two mutexes and condition variables
have been simplified into one, as there was no obvious need or benefit
for two of each in this case.

Requests have been numbered, which allows to safely and atomically
ignore results from cancelled requests, avoiding data corruption
races, and makes following them in debug logs much easier.

The conditions for making and cancelling requests have been simplified
to a simpler and safer model: There is at most only one active request
at anytime, flushes cancel the request, and the first create() call
always makes the new request (both at startup and after a flush).
Debug asserts and notes about the flow of operations during basesrc
seeks have been provided.

As this effort needed a review of the entire WebKitWebSrc, cleanups,
corrections and documentation comments have been provided where
appropriate.

This patch introduces no visible behavior changes, just stability
improvements.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::~WebKitWebSrcPrivate):
(webkit_web_src_class_init):
(webkitWebSrcReset):
(webKitWebSrcConstructed):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcSendEvent):
(restartLoaderIfNeeded):
(stopLoaderIfNeeded):
(webKitWebSrcCreate):
(webKitWebSrcStart):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetUri):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

LayoutTests:

https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

A test improved its status in TestExpectations from the changes made
in this patch.

  • platform/gtk/TestExpectations:
3:07 AM Changeset in webkit [264080] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260750 - [GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431

Reviewed by Carlos Garcia Campos.

Don't create a PlatformDisplayLibWPE as a fallback when using
Wayland or X11.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):

3:06 AM Changeset in webkit [264079] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r260176 - [GTK] MiniBrowser opens new windows too small causing failures on some WPT tests
https://bugs.webkit.org/show_bug.cgi?id=210206

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Some WPT tests (when executed with the WPT runner via WebDriver)
open new browser windows via JavaScript invoking Window.open()
and then run the test on this new window.
The size of the new window is not specified, and we were failing
to provide a default window size, so it was using the minimum of
100x100 which its just too small for some test that later call
document.elementFromPoint() on some coordinates
that are outside of that size.

To fix that provide the size of the default GTK window to WebCore
if the application sets one via gtk_window_set_default_size().
And if not, then use the size of the previous window.

Also change the way we position the new window to work better when
the system uses more than one monitor. Previously to get the default
coordinates of the new window we were using gdk_display_get_monitor()
with just the first monitor available.
This causes issues in the calculation of the available space when
using several monitors. Instead get the monitor in use by looking
at the current GDK root window.

Tests: TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-default-size
and TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-no-default-size

  • loader/FrameLoader.cpp:

(WebCore::createWindow):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::getCurrentScreenMonitor):
(WebCore::screenRect):
(WebCore::screenAvailableRect):

Source/WebKit:

Provide the size of the default window (if is set) when windowRect is called
before the window is shown.

  • UIProcess/API/glib/WebKitUIClient.cpp:

Tools:

Add two API test to check that window.open() by default gets a size
request equal to the old window if there is no default window size,
or to the default window if there is a default window size.

A new function helper setCreateNewWebViewsInWindowsWithDefaultSize()
its added to create new webviews in new windows automatically, which
its needed to test the case of having a default window size.

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewWindowProperties):
(testWebViewOpenWindowDefaultSize):
(testWebViewOpenWindowNoDefaultSize):
(beforeAll):

3:06 AM Changeset in webkit [264078] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r259879 - [WTF] DataMutex: Add runUnlocked()
https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

Source/WTF:

This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
to run a lambda function without the lock. This is intended to be used for
small sections of the code that need to be unlocked, in cases where using
scoping would prove non-ergonomic or where running the unlocked section is only
necessary or desired when a certain condition is met -- something that cannot
be done with C++ scoping.

Safety mechanisms are provided. First, because this is used with a lambda, all
variables to be used in the unlocked section have to be specified in the
capture (global capture is possible but not recommended to simplify analysis).
Second, additional checks have been added to DataMutex to detect unlocked
accesses among other conditions. This will detect among other things naive
access to protected members by means of capturing the LockedWrapper by
reference.

  • wtf/DataMutex.h:

(WTF::OwnerAwareLockAdapter::lock):
(WTF::OwnerAwareLockAdapter::unlock):
(WTF::OwnerAwareLockAdapter::tryLock):
(WTF::OwnerAwareLockAdapter::isLocked const):
(WTF::DataMutex::LockedWrapper::operator->):
(WTF::DataMutex::LockedWrapper::operator*):
(WTF::DataMutex::LockedWrapper::mutex):
(WTF::DataMutex::LockedWrapper::lockHolder):
(WTF::DataMutex::LockedWrapper::runUnlocked):

Tools:

Tests for runUnlocked() and DataMutex checks are introduced.

  • TestWebKitAPI/Tests/WTF/DataMutex.cpp:

(TestWebKitAPI::TEST):

3:06 AM Changeset in webkit [264077] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r263838 - [GTK] Kinetic scrolling is still triggered if you wait before lifting fingers
https://bugs.webkit.org/show_bug.cgi?id=213789

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-07-02
Reviewed by Carlos Garcia Campos.

The intended behavior for kinetic scrolling is that it's possible to not trigger it by
stopping moving fingers before lifting them, as opposed to doing a fling/swipe. However,
right now it's broken and trying to do this triggers kinetic scrolling as well.

Currently, the last scroll event with (0, 0) deltas isn't added to the scroll history for
kinetic scrolling. However, this is wrong, because the last event, or rather the timespan
between it and the previous scroll event, actually determines the kinetic scrolling velocity:
if this event follows the previous one quickly, the velocity is large, but if there was a long
pause, the velocity would be close to 0.

See https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1902 and
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1903 for the equivalent GTK fixes.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::handleWheelEvent):

3:06 AM Changeset in webkit [264076] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259325 - [PlayStation] Fix build breaks after r259112
https://bugs.webkit.org/show_bug.cgi?id=209830

Unreviewed build fix.

Source/WebCore:

Add USE(GLIB) guards around RunLoopSourcePriority usage.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):

Source/WebKit:

Replace PLATFORM(WPE) with USE(LIBWPE) within WebWheelEvent.

  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

3:06 AM Changeset in webkit [264075] by Carlos Garcia Campos
  • 22 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259112 - [GTK][WPE] Enable kinetic scrolling with async rendering
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Refactor ScrollAnimationKinetic so that it no longer depends on
ScrollableArea, uses RunLoop::Timer and is responsible for tracking
the history of scroll events. This allows it to be used in
ScrollingTree*ScrollingNodeNicosia to provide kinetic scrolling when
async scrolling is enabled, on GTK and WPE.

No new tests, this just enables existing functionality in more situations.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::appendToScrollHistory):
(WebCore::ScrollAnimationKinetic::clearScrollHistory):
(WebCore::ScrollAnimationKinetic::computeVelocity):
(WebCore::ScrollAnimationKinetic::start):

  • platform/ScrollAnimationKinetic.h:
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::willEndLiveResize):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar):

  • platform/generic/ScrollAnimatorGeneric.h:

Source/WebKit:
[GTK][WPE] Enable kinetic scrolling with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Modify WPE mousewheel event delivery so that it includes the necessary
phases needed to infer press/release times and allow for kinetic
scrolling.

  • Shared/NativeWebWheelEvent.h:
  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

  • Shared/libwpe/NativeWebWheelEventLibWPE.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • Shared/libwpe/WebEventFactory.h:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

(WebKit::ScrollGestureController::phase):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

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

Merge r259037 - Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=146729

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

The entire MessageInfo is passed to write(), so we have to zero the padding bytes to avoid
writing uninitialized memory.

  • Platform/IPC/unix/UnixMessage.h:

(IPC::MessageInfo::MessageInfo):

2:02 AM Changeset in webkit [264073] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262368 - [WPE][GTK] pthread_create() fails with EPERM in the second WebKitWebProcess with sandbox on
https://bugs.webkit.org/show_bug.cgi?id=212380

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-01
Reviewed by Adrian Perez de Castro.

Dereference scmp_arg_cmp before use.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp):

2:02 AM Changeset in webkit [264072] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259798 - Use more WeakPtr in RenderTreeBuilder::FirstLetter
https://bugs.webkit.org/show_bug.cgi?id=210251
<rdar://problem/61180381>

Reviewed by Zalan Bujtas.

For safety.

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

2:02 AM Changeset in webkit [264071] by Carlos Garcia Campos
  • 70 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259355 - Bindings that override getOwnPropertySlotByIndex need to say they MayHaveIndexedAccessors
https://bugs.webkit.org/show_bug.cgi?id=209762

Reviewed by Darin Adler.

Source/JavaScriptCore:

Change indexingType to indexingModeIncludingHistory to more
clearly indicate the expected range of possible valid values.

  • runtime/StructureInlines.h:

(JSC::Structure::create):

Source/WebCore:

There may be places where we rely on this for semantic
correctness. I couldn't find any right now but we might as
well be conservative since this isn't a performance regression.

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSInterfaceName.h:

(WebCore::JSInterfaceName::createStructure):

  • bindings/scripts/test/JS/JSMapLike.h:

(WebCore::JSMapLike::createStructure):

  • bindings/scripts/test/JS/JSReadOnlyMapLike.h:

(WebCore::JSReadOnlyMapLike::createStructure):

  • bindings/scripts/test/JS/JSReadOnlySetLike.h:

(WebCore::JSReadOnlySetLike::createStructure):

  • bindings/scripts/test/JS/JSSetLike.h:

(WebCore::JSSetLike::createStructure):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

(WebCore::JSTestActiveDOMObject::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactions.h:

(WebCore::JSTestCEReactions::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:

(WebCore::JSTestCEReactionsStringifier::createStructure):

  • bindings/scripts/test/JS/JSTestCallTracer.h:

(WebCore::JSTestCallTracer::createStructure):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:

(WebCore::JSTestDOMJIT::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:

(WebCore::JSTestEnabledBySetting::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:

(WebCore::JSTestEnabledForContext::createStructure):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::JSTestEventConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::createStructure):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::createStructure):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::createStructure):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::JSTestGlobalObject::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:

(WebCore::JSTestIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:

(WebCore::JSTestIndexedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:

(WebCore::JSTestIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::createStructure):

  • bindings/scripts/test/JS/JSTestIterable.h:

(WebCore::JSTestIterable::createStructure):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:

(WebCore::JSTestMediaQueryListListener::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedConstructor.h:

(WebCore::JSTestNamedConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:

(WebCore::JSTestNamedDeleterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:

(WebCore::JSTestNamedDeleterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:

(WebCore::JSTestNamedDeleterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:

(WebCore::JSTestNamedDeleterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:

(WebCore::JSTestNamedGetterCallWith::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:

(WebCore::JSTestNamedGetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:

(WebCore::JSTestNamedGetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:

(WebCore::JSTestNamedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:

(WebCore::JSTestNamedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:

(WebCore::JSTestNamedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:

(WebCore::JSTestNamedSetterWithUnforgableProperties::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::JSTestObj::createStructure):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:

(WebCore::JSTestOverloadedConstructors::createStructure):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:

(WebCore::JSTestOverloadedConstructorsWithSequence::createStructure):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:

(WebCore::JSTestOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:

(WebCore::JSTestPluginInterface::createStructure):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:

(WebCore::JSTestPromiseRejectionEvent::createStructure):

  • bindings/scripts/test/JS/JSTestSerialization.h:

(WebCore::JSTestSerialization::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:

(WebCore::JSTestSerializationIndirectInheritance::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:

(WebCore::JSTestSerializationInherit::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:

(WebCore::JSTestSerializationInheritFinal::createStructure):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::JSTestSerializedScriptValueInterface::createStructure):

  • bindings/scripts/test/JS/JSTestStringifier.h:

(WebCore::JSTestStringifier::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:

(WebCore::JSTestStringifierAnonymousOperation::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:

(WebCore::JSTestStringifierNamedOperation::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:

(WebCore::JSTestStringifierOperationImplementedAs::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:

(WebCore::JSTestStringifierOperationNamedToString::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:

(WebCore::JSTestStringifierReadOnlyAttribute::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:

(WebCore::JSTestStringifierReadWriteAttribute::createStructure):

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::JSTestTypedefs::createStructure):

2:02 AM Changeset in webkit [264070] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258799 - Content-Type & Nosniff Ignored on XML External Entity Resources
<https://webkit.org/b/191171>
<rdar://problem/45763222>

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.

  • platform/MIMETypeRegistry.h:

(WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.

  • Checks for XML external entity MIME types.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::externalEntityMimeTypeAllowedByNosniff): Add.

  • Checks whether the MIME type is valid based on the presence of the "X-Content-Type-Options: nosniff" header.

(WebCore::openFunc):

  • Drop the contents of the resource that was returned and print an error message to the Web Inspector console if externalEntityMimeTypeAllowedByNosniff() says the MIME type is not allowed.

LayoutTests:

  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity-expected.txt: Add.
  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml: Add.
2:01 AM Changeset in webkit [264069] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258278 - SVG filter triggers unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=207444
rdar://problem/59297004

Reviewed by Simon Fraser.

SVG filter code marks DOM nodes dirty and schedules style recalc outside of the SVG root
while in layout. This could lead to unstable layout and cause battery drain.
(See webkit.org/b/208903)

  • rendering/RenderLayer.cpp: Remove filterNeedsRepaint(). It's a dangerously misleading name and should

not be part of RenderLayer.
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::notifyFinished):

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):

2:01 AM Changeset in webkit [264068] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258459 - SVGMatrix should have the access right of its owner SVGTransform always
https://bugs.webkit.org/show_bug.cgi?id=207462

Reviewed by Simon Fraser.

Source/WebCore:

The SVGMatrix needs to be reattached to its owner SVGTransform when the
access right of this owner changes. The access right of the owner changes
when it gets attached to or detached from a higher level owner.

Test: svg/dom/SVGTransformList-anim-read-only.html

  • svg/SVGTransform.h:
  • svg/properties/SVGProperty.h:

(WebCore::SVGProperty::attach):
(WebCore::SVGProperty::detach):
(WebCore::SVGProperty::reattach):

LayoutTests:

  • svg/dom/SVGTransformList-anim-read-only-expected.txt: Added.
  • svg/dom/SVGTransformList-anim-read-only.html: Added.
2:01 AM Changeset in webkit [264067] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r258452 - Missing arithMode for ArithAbs and ArithNegate in DFGClobberize
https://bugs.webkit.org/show_bug.cgi?id=208685
<rdar://problem/60115088>

Reviewed by Saam Barati.

In the pure case of ArithNegate and ArithAbs in DFGClobberize, their PureValues did not include their
respective ArithMode. That means that e.g. a CheckOverflow ArithNegate/Abs could be considered equivalent
to an Unchecked version of the same node.

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

2:01 AM Changeset in webkit [264066] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257746 - ScriptController::executeIfJavaScriptURL() uses wrong JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=208290
<rdar://problem/59839476>

Reviewed by Chris Dumez.

The call to executeScriptIgnoringException() may have changed the current global
object of the window. We should be using the original global object that produced
the result string.

Also added a missing exception check needed after a potential rope resolution.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

1:42 AM Changeset in webkit [264065] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[webkitpy] run-minibrowser doesn't default to mac and stdout/stderr are not displayed
https://bugs.webkit.org/show_bug.cgi?id=214072

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

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main): Default to mac platform, like in old-run-minibrowser.

  • Scripts/webkitpy/port/base.py:

(Port.run_minibrowser): Display MiniBrowser stdout and stderr on the terminal output.

1:39 AM Changeset in webkit [264064] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[Flatpak] Avoid error message 'error: org.webkit.Sdk/*unspecified*/*unspecified*' not installed
https://bugs.webkit.org/show_bug.cgi?id=213871

Reviewed by Philippe Normand.

The error message happens when requesting a Flatpak SDK version but there's no Flatpak SDK installed yet.
In that case, ignore stderr to filter out the message.

  • flatpak/flatpakutils.py:

(run_sanitized):
(FlatpakObject.flatpak):
(FlatpakObject.version):

1:20 AM Changeset in webkit [264063] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Initial installation with IceCC enabled fails
https://bugs.webkit.org/show_bug.cgi?id=213833

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

Avoid attempting to use the IceCC environment during the toolchain
archive update. The initial SDK installation triggers this when
IceCC is enabled on the command-line or via CCACHE_PREFIX, after
resetting the internal toolchain mapping. So the solution is to
opt-out of this runtime configuration setup, which is useless
anyway when the toolchain archive is being generated.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.pack_toolchain):

1:03 AM Changeset in webkit [264062] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r263836): [GStreamer] Debug ASSERT hits
https://bugs.webkit.org/show_bug.cgi?id=214047

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

Reduce the element dependency on RefPtr<MediaStreamTrackPrivate> which is not MT-safe. The
data we need from it are its ID and the contents required to build a GstTagList. So we now
create this tag-list upfront and keep track of the trackID as well.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):

12:06 AM Changeset in webkit [264061] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.3

WebKitGTK 2.29.3

12:05 AM Changeset in webkit [264060] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.3 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.3.

Jul 7, 2020:

9:36 PM Changeset in webkit [264059] by ysuzuki@apple.com
  • 3 edits
    3 adds in trunk

[JSC] BytecodeGenerator should be robust against failed constant generation
https://bugs.webkit.org/show_bug.cgi?id=214062
<rdar://problem/65117916>

Reviewed by Saam Barati.

JSTests:

  • stress/bigint-oom-in-codegen-array-literal-context.js: Added.

(shouldThrow):
(test):

  • stress/bigint-oom-in-codegen-binary-conditional-context.js: Added.

(shouldThrow):
(test):

  • stress/bigint-oom-in-codegen-conditional-context.js: Added.

(shouldThrow):
(test):

Source/JavaScriptCore:

Some code in NodesCodegen.cpp assumes jsValue(generator) call for constant nodes must succeed.
But this can fail when BigInt in source code is too large and becomes OOM. BytecodeGenerator should
be robust against BigInt OOM.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstantNode::emitBytecodeInConditionContext):
(JSC::ArrayNode::emitBytecode):
(JSC::BinaryOpNode::tryFoldToBranch):

8:21 PM Changeset in webkit [264058] by aestes@apple.com
  • 5 edits in trunk/Source/WebCore

[Apple Pay] Fix the build on Catalina internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=214066

Unreviewed build fix for the 10.15.0 Internal SDK.

Source/WebCore:

  • Modules/applepay/ApplePaySetupFeature.mm:

(WebCore::ApplePaySetupFeature::supportsInstallments const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/spi/cocoa/PassKitSPI.h:
8:18 PM Changeset in webkit [264057] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Garden some recent failures and move related entries together

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:56 PM Changeset in webkit [264056] by Lauro Moura
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline windowclient-navigate.https after service-workers resync

This test was rebaselined in r264043 and the as the test changed to
an async function, the emmited messages changed.

Unreviewed test gardening.

  • web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt:
7:28 PM Changeset in webkit [264055] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebKit

Modernize FindOptions IPC code
https://bugs.webkit.org/show_bug.cgi?id=214063

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-07
Reviewed by Chris Dumez.

Use callWithAsyncReply instead of GenericCallback.
Use OptionSet<FindOptions> instead of FindOptions or uint32_t.
No change in behavior.

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toFindOptions):

  • Shared/WebFindOptions.h:

(): Deleted.

  • UIProcess/API/Cocoa/WKWebView.mm:

(toFindOptions):
(-[WKWebView findString:withConfiguration:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findStringMatches):
(WebKit::WebPageProxy::findString):
(WebKit::WebPageProxy::countStringMatches):
(WebKit::WebPageProxy::findStringCallback): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::findString):

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/FindController.cpp:

(WebKit::core):
(WebKit::FindController::countStringMatches):
(WebKit::FindController::updateFindUIAfterPageScroll):
(WebKit::FindController::findString):
(WebKit::FindController::findStringMatches):

  • WebProcess/WebPage/FindController.h:
  • WebProcess/WebPage/WebPage.messages.in:
6:56 PM Changeset in webkit [264054] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Allow WebCoreNSURLSession sendH2Ping:pongHandler: to be called from any thread like the rest of WebCoreNSURLSession methods
https://bugs.webkit.org/show_bug.cgi?id=214065

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-07
Reviewed by Jer Noble.

Otherwise horrible crashes happen.
The WebCore function calls and loading IPC calls need to happen on the main thread,
and the callback should happen on the NSOperationQueue given when constructing the WebCoreNSURLSession.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession sendH2Ping:pongHandler:]):

6:14 PM Changeset in webkit [264053] by Lauro Moura
  • 2 edits
    2 adds in trunk/LayoutTests

Add missing resource file for some imported/blink/compositing/squashing tests
https://bugs.webkit.org/show_bug.cgi?id=154076

Unreviewed test gardening.

Based on original patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>.

All but one test ran as expected for GTK/WPE.

  • TestExpectations:
  • imported/blink/compositing/squashing/resources/blue.png: Added.
6:02 PM Changeset in webkit [264052] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC] Should not pass Exception to JSPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=214061
<rdar://problem/65134450>

Reviewed by Mark Lam.

JSTests:

  • stress/import-exception.js: Added.

(import.string_appeared_here.then):

Source/JavaScriptCore:

In some places, we are passing Exception* as JSValue instead of Exception::value()'s JSValue.
Error and Exception are different, and Exception is not an object. We should pass Exception::value()'s
thrown value instead. I checked reject( call sites and ensure error is passed.

  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderImportModule):
(JSC::JSAPIGlobalObject::moduleLoaderFetch):

  • jsc.cpp:

(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderFetch):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::importModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::moduleLoaderParseModule):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::resolve):
(JSC::JSPromise::reject):

5:59 PM Changeset in webkit [264051] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Fix btjs by recovering CallFrame::describeFrame
https://bugs.webkit.org/show_bug.cgi?id=214055

Reviewed by Mark Lam.

While CallFrame::describeFrame is not used in WebKit tree, it is used in LLDB btjs which is invoked from python.
So we need to keep it. We also use std::call_once based buffer allocation instead of static char buffer[...]
to avoid spreading debug-use-only buffer in BSS segment.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::describeFrame):

  • interpreter/CallFrame.h:
5:53 PM Changeset in webkit [264050] by weinig@apple.com
  • 37 edits in trunk/Source

Part 2 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=213981

Reviewed by Darin Adler.

Source/WebCore:

  • Replaces internal representation of SimpleColor based on an ARGB uint32_t with SRGBA<uint8_t>.
  • Removes SimpleColor constructor taking a uint32_t. Callers that still need to convert from ARGB now do makeSimpleColor(asSRGBA(Packed::ARGB { value })).
  • Removes value() and valueAsARGB() member functions from SimpleColor. Callers that need a packed representation now do Packed::ARGB { simpleColor.asSRGBA<uint8_t>() }.value.
  • css/StyleColor.cpp:

(WebCore::StyleColor::colorFromKeyword):
Use asSRGBA(Packed::ARGB{...}) to constuct the color.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::finishParsingNamedColor):
Use asSRGBA(Packed::ARGB{...}) (or in one case, Packed::RGBA) to constuct the color.
These can almost certainly be simplified, but in the interest of keeping things smallish,
I have left that for a subsequent change.

  • editing/CompositionHighlight.h:

Switch to using auto/makeSimpleColor.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

Switch to using makeSimpleColor.

(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo):
(WebCore::HistoricResourceUsageData::HistoricResourceUsageData):
Switch to using auto/makeSimpleColor.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

Switch to using auto/makeSimpleColor.

  • platform/graphics/Color.cpp:
  • platform/graphics/Color.h:
  • Switch to using auto/makeSimpleColor for named colors.
  • Switch to storing/encoding the inline SimpleColor as a Packed::RGBA value.
  • platform/graphics/ColorBlending.cpp:

(WebCore::blend):
Update for new name of clampToComponentBytes.

  • platform/graphics/ColorTypes.h:

(WebCore::Packed::RGBA::RGBA):
(WebCore::Packed::ARGB::ARGB):
(WebCore::asSRGBA):
Rename WebCore::ARGB to WebCore::Packed::ARGB. Adds companion, WebCore::Packed::RGBA. And adds constructors
which make a packed type from an SRGBA<uint8_t>.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampToComponentByte):
(WebCore::clampToComponentFloat):
Extract out helper functions which just do the clamping for the type.

(WebCore::clampToComponentBytes):
(WebCore::clampToComponentFloats):
Rename conversion functions that just clamp to use "clamp" prefix rather than "convert". Make use
of extracted helpers.

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):
Update using new packed color types and funtions.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor):
(WebCore::SimpleColor::alphaComponent const):
(WebCore::SimpleColor::alphaComponentAsFloat const):
(WebCore::SimpleColor::isOpaque const):
(WebCore::SimpleColor::isVisible const):
(WebCore::SimpleColor::colorWithAlpha const):
(WebCore::SimpleColor::invertedColorWithAlpha const):
(WebCore::SimpleColor::asSRGBA const):
(WebCore::SimpleColor::get const):
(WebCore::makeSimpleColor):
(WebCore::SimpleColor::valueAsARGB const): Deleted.
(WebCore::SimpleColor::value const): Deleted.
(WebCore::SimpleColor::redComponent const): Deleted.
(WebCore::SimpleColor::greenComponent const): Deleted.
(WebCore::SimpleColor::blueComponent const): Deleted.

  • Removes constructor taking an ARGB uint32_t.
  • Removes valueAsARGB()/value() functions (can use Packed::ARGB directly if needed).
  • Switches internal representation to SRGBA<uint8_t>.
  • Streamline makeSimpleColor functions to use shared helpers from ColorUtilities.h
  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):
Use Packed::RGBA to extract uint32_t for quick lookup of transparent/white/black SimpleColors. Despite the
length of the calls, SimpleColor is fully constexpr, so these actually collapse down to the uint32_t representation
at compile time.

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawDotsForDocumentMarker):
Switch to using auto/makeSimpleColor.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices):
Switch to using makeSimpleColor.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawBoxes):
Switch to using auto/makeSimpleColor.

  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::paintTrackBackground):
Switch to using makeSimpleColor.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::calculateBorderStyleColor):
Update comment to use per-component values.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::systemColor const):
Switch to using makeSimpleColor.

  • rendering/RenderThemeAdwaita.cpp:

Switch to using auto/makeSimpleColor.

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

(WebCore::RenderThemeIOS::paintProgressBar):
Switch to using auto/makeSimpleColor.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):
Switch to using auto/makeSimpleColor.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::paintSnapshotAtSize):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

Make calls to makeSimpleColor more consistent. Use decimal rather than hex, don't pass unncessary
255 as the 4th argument.

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

Switch to using auto/makeSimpleColor.

5:32 PM Changeset in webkit [264049] by keith_miller@apple.com
  • 20 edits
    1 add in trunk

Bytecode UseDef should be aware of checkpoints
https://bugs.webkit.org/show_bug.cgi?id=213566

Reviewed by Saam Barati.

JSTests:

  • stress/def-then-use-in-single-bytecode-with-checkpoints-for-of.js: Added.

(foo):

Source/JavaScriptCore:

Previously, we tried to solve teaching DFG about uses and defs of
locals across checkpoints by asking what locals were def'd at some
checkpoint. However, this was subtly wrong because we couldn't
report any uses at subsequent checkpoints so DFG thought the
local was dead immediately after its birth.

This patch reverts that change and instead teaches BytecodeUseDef
about checkpoints. Right now, BytecodeUseDef only knows about
locals at checkpoints but in the future we may teach it about tmps
at well.

Since the vectors containing our liveness bitmaps were already
sparse (they are indexed by the bytecode offset) we can reuse the
gaps to hold our checkpoint liveness information. To make sure we
don't overlap between the next bytecode and a checkpoint for the
current bytecode there is now a static assert that the length of
the bytecode is greater than the number of checkpoints. This
assumption is already true for existing bytecodes with checkpoints (and
likely to be true for future ones anyway).

Many of the BytecodeLivenessPropegation functions have been
renamed to reflect that they operate over the full instruction,
including checkpoints, rather than just the BytecodeIndex passed.

Lastly, this patch makes a speculative fix to forAllKilledOperands where we
wouldn't report that all tmps die at the end of each bytecode. I can't think
of a case where this would break things but it's probably good hygiene.

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::GeneratorLivenessAnalysis::run):

  • bytecode/BytecodeIndex.h:

(JSC::BytecodeIndex::BytecodeIndex):
(JSC::BytecodeIndex::checkpoint const):
(JSC::BytecodeIndex::withCheckpoint const):
(JSC::BytecodeIndex::pack):

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::dumpResults):
(JSC::tmpLivenessForCheckpoint):
(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeIndex): Deleted.
(JSC::livenessForCheckpoint): Deleted.

  • bytecode/BytecodeLivenessAnalysis.h:

(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtInstruction):

  • bytecode/BytecodeLivenessAnalysisInlines.h:

(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexDef):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexUse):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexUseInExceptionHandler):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndex):
(JSC::BytecodeLivenessPropagation::stepOverInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtInstruction):
(JSC::BytecodeLivenessPropagation::stepOverInstructionDef): Deleted.
(JSC::BytecodeLivenessPropagation::stepOverInstructionUse): Deleted.
(JSC::BytecodeLivenessPropagation::stepOverInstructionUseInExceptionHandler): Deleted.
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeIndex): Deleted.
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeIndex): Deleted.

  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow):
(JSC::CodeBlock::validate):

  • bytecode/FullBytecodeLiveness.h:

(JSC::FullBytecodeLiveness::getLiveness const):
(JSC::FullBytecodeLiveness::toIndex):

  • bytecode/Instruction.h:

(JSC::BaseInstruction::numberOfCheckpoints const):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::ForInContext::finalize):

  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:
  • dfg/DFGMovHintRemovalPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • generator/Opcode.rb:
  • generator/Section.rb:
4:38 PM Changeset in webkit [264048] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Mark 3 WPT tests imported in r264035 as failing in iOS Simulator.

This is because of lack of WebAssembly support on this platform.

  • platform/ios-simulator/TestExpectations:
4:30 PM Changeset in webkit [264047] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Use sendWithAsyncReply instead of EditingRangeCallback
https://bugs.webkit.org/show_bug.cgi?id=214056

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-07
Reviewed by Chris Dumez.

No change in behavior.

  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:

(-[WKReloadFrameErrorRecoveryAttempter initWithWebView:frameHandle:urlString:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::selectedRangeWithCompletionHandler):
(WebKit::WebViewImpl::markedRangeWithCompletionHandler):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getMarkedRangeAsync):
(WebKit::WebPageProxy::getSelectedRangeAsync):
(WebKit::WebPageProxy::editingRangeCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:00 PM Changeset in webkit [264046] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263987): [ iOS Debug WK2 ] 12 web-platform-tests semantics/scripting consistently failing
https://bugs.webkit.org/show_bug.cgi?id=214058
<rdar://problem/65193100>

Unreviewed, mark as flaky on iOS some of the new html/semantics web-platform-tests that got added
during the resync in r263987. Those give different TEXT results on release and debug builds so this
must be due to a timing issue, indicating those tests are actually flaky.

  • platform/ios/TestExpectations:
3:34 PM Changeset in webkit [264045] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: show an error message if unable to fetch shader source
https://bugs.webkit.org/show_bug.cgi?id=213661

Reviewed by Brian Burg.

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView):
(WI.ShaderProgramContentView.prototype._refreshContent):

  • UserInterface/Views/ShaderProgramContentView.css:

(.content-view.shader-program > .spinner-container): Added.
(.content-view.shader-program > .spinner-container > .indeterminate-progress-spinner): Added.

3:33 PM Changeset in webkit [264044] by weinig@apple.com
  • 13 edits
    37 adds in trunk

Enabled testing of date/time input types for WebKit2 macOS
https://bugs.webkit.org/show_bug.cgi?id=214044

Reviewed by Chris Dumez.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
Enable the date/time input types unconditionally for testing when support is compiled in.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:

Move skipping of date/time input types to WebKit1 specific TestExpectations
to allow for testing on WebKit2. If this goes well, we can look into enabling
them for WebKit1 as well.

  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:
  • platform/mac-wk2/fast/forms/datalist: Added.
  • platform/mac-wk2/fast/forms/datalist/input-list-expected.txt: Added.
  • platform/mac-wk2/fast/forms/date: Added.
  • platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.png: Added.
  • platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.txt: Added.
  • platform/mac-wk2/fast/forms/time: Added.
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.png: Added.
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/date-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-seconds-leading-zeroes-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-stepping-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasnumber-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasnumber-stepping-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/month-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-2-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/week-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt: Added.

Update results, adding new platform specific results where needed.

3:32 PM Changeset in webkit [264043] by Chris Dumez
  • 118 edits
    2 moves
    44 adds
    6 deletes in trunk/LayoutTests

Resync web-platform-tests/service-workers from upstream
https://bugs.webkit.org/show_bug.cgi?id=214052

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/service-workers from upstream 145839c323ba1ec8b973.

  • web-platform-tests/service-workers/*: Updated.

LayoutTests:

  • tests-options.json:
3:31 PM Changeset in webkit [264042] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow additional IOKit classes for Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=214021

Reviewed by Sam Weinig.
<rdar://problem/63696732>

Update two of the arm64-specific sandbox rules to include additional
IOKit classes (and one IOKit property).

  • WebProcess/com.apple.WebProcess.sb.in:
3:05 PM Changeset in webkit [264041] by Russell Epstein
  • 1 copy in tags/Safari-610.1.21.1.1

Tag Safari-610.1.21.1.1.

2:48 PM Changeset in webkit [264040] by Russell Epstein
  • 1 copy in tags/Safari-610.1.21.0.1

Tag Safari-610.1.21.0.1.

1:43 PM Changeset in webkit [264039] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark one of the imported WPT webaudio tests as flaky.

The test is failing and printing out information that is hardware specific.

1:42 PM Changeset in webkit [264038] by Chris Dumez
  • 9 edits
    13 copies
    883 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/html/editing from upstream
https://bugs.webkit.org/show_bug.cgi?id=214051

Reviewed by Sam Weinig.

Resync web-platform-tests/html/editing from upstream 145839c323ba1ec8b973.

  • resources/import-expectations.json:
  • web-platform-tests/html/editing/*: Updated.
12:49 PM Changeset in webkit [264037] by Andres Gonzalez
  • 5 edits
    2 adds in trunk

Web content process hangs in AccessibilityRenderObject::setSelectedVisiblePositionRange in some corner cases.
https://bugs.webkit.org/show_bug.cgi?id=214017
Source/WebCore:

<rdar://problem/63000006>

Reviewed by Chris Fleizach.

Ensures that in the case of collapsed ranges, the VisiblePosition that
the selection is being set to, is contained in the Element object.

Test: accessibility/mac/selected-visible-position-range.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):

LayoutTests:

Reviewed by Chris Fleizach.

  • accessibility/mac/resources/accessibility-helper.js:

(selectTextInNode):

  • accessibility/mac/selected-visible-position-range-expected.txt: Added.
  • accessibility/mac/selected-visible-position-range.html: Added.
  • accessibility/mac/text-marker-p-tags.html:
12:45 PM Changeset in webkit [264036] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Network process crashes in WebKit::StorageManagerSet::deleteSessionStorageForOrigins
https://bugs.webkit.org/show_bug.cgi?id=214050

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-07
Reviewed by Chris Dumez.

In NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains, deleteSessionStorageForOrigins is called
in a callback without checking if session still exists.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):

12:43 PM Changeset in webkit [264035] by Chris Dumez
  • 47 edits
    2 copies
    2 moves
    74 adds
    3 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/html/webappapis from upstream
https://bugs.webkit.org/show_bug.cgi?id=214049

Reviewed by Darin Adler.

Resync web-platform-tests/html/webappapis from upstream 145839c323ba1ec8b.

  • resources/resource-files.json:
  • web-platform-tests/html/webappapis/*: Updated.
12:17 PM Changeset in webkit [264034] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Fix potential pixel buffer leak in ImageRotationSessionVT::rotate
https://bugs.webkit.org/show_bug.cgi?id=213922

Reviewed by Eric Carlson.

Fix a potential memory leak in an error case.
Add more logging to be able to see errors.
Remove the kCVPixelBufferIOSurfacePropertiesKey key on iOS from the buffer pool to revert
part of https://trac.webkit.org/changeset/258504/webkit that seems problematic in iOS.

  • platform/graphics/cv/ImageRotationSessionVT.mm:

(WebCore::ImageRotationSessionVT::initialize):
(WebCore::ImageRotationSessionVT::rotate):

11:59 AM Changeset in webkit [264033] by Chris Dumez
  • 1 edit
    1 delete in trunk/LayoutTests/imported/w3c

Unreviewed, drop tests from web-platform-tests/html/dom/dynamic-markup-insertion.

Those tests were moved upstream to html/webappapis/dynamic-markup-insertion/ and should have
been removed during the resync in r263903. html/webappapis/dynamic-markup-insertion/ is
about to get merged via Bug 214049.

  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/document.close-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/document.close-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/003-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/003.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/005.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/006.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/007.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008-1.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/008.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010-1.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/010.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011-1.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/011.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/012-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/012.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/012.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/013-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/013.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/013.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/014-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/014.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/015-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/015.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/016-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/016.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/017-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/017.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/018-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/018.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/019-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/019.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/020-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/020.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/021-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/021.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/022-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/022.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/023-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/023.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/024-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/024.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/025-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/025.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/026-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/026.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/027-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/027.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/028-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/028.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/029-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/029.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/030-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/030.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/031-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/031.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/032-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/032.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/033-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/033.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/034-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/034.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/035-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/035.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/036-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/036.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/037-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/037.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/038-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/038.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/039-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/039.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/040-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/040.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/041-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/041.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/042-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/042.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/043-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/043.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/044-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/044.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/045-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/045.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/046-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/046.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/047-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/047.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/048-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/048.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/049-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/049.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/050-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/050.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/051-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/051.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-02-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/document.write-02.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/empty.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_003-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_003.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_005.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/iframe_010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-2-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-2.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/nested-document-write-external.js: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/original-id.json: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_003-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_003.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_011-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_011.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_012-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_012.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_013-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/script_013.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/w3c-import.log: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/write-active-document-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-write/write-active-document.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-02-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-02.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-03-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/document.writeln-03.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/original-id.json: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/w3c-import.log: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/001-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/001.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/002-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/002.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/004.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/005-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/005.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/006-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/006.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/007-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/007.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/008-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/008.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/009-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/009.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-2.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/011.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/012.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/013.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/014.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/015.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-1-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-1.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/016.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-01-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-01.xhtml: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame-expected.txt: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/document.open-03.html: Removed.
  • web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log: Removed.
11:44 AM Changeset in webkit [264032] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

WebContent process sometimes kills itself because it is receiving too much IPC from the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=214048
<rdar://problem/64844770>

Reviewed by Darin Adler.

There was logic in IPC::Connection::enqueueIncomingMessage() that would kill the XPC connection
if too many IPC messages had been queued without the main thread processing them. The intention
was to protect the UIProcess again a badly behavior WebProcess sending too much IPC and it would
in effect terminate that WebProcess. However, the logic would actually apply too ALL IPC
connections. In <rdar://problem/64844770>, we see that the WebProcess is stuck on a sync IPC and
thus not processing other incoming IPCs. The UIProcess is sending it a lot of IPC so the
WebProcess decides to kill its IPC connection, thus terminating itself, which does not make much
sense. To address the issue, we now enable to killing on too much IPC behavior only if IPC message
throttling is enabled for the IPC connection, which means it only impacts the UIProcess connections
to its WebProcesses.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::enableIncomingMessagesThrottling):
(IPC::Connection::enqueueIncomingMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::isIncomingMessagesThrottlingEnabled const):

11:16 AM Changeset in webkit [264031] by Simon Fraser
  • 6 edits
    4 adds in trunk

Unable to scroll elcomerico.pe page until the page finishes loading
https://bugs.webkit.org/show_bug.cgi?id=214027
<rdar://problem/64646259>

Reviewed by Antti Koivisto.
Source/WebCore:

<https://elcomercio.pe/mundo/eeuu/que-visas-para-estados-unidos-fueron-suspendidas-por-orden-de-donald-trump-hasta-fin-de-ano-y-a-quien-afecta-la-medida-noticia/>
had a scaleX(0) element as an ancestor of an overflow:scroll. The CALayer hit-testing code failed to take
non-invertible transforms into account, causing the overflow:scroll to intercept scrolling events.

Fix by explicitly testing for non-invertible transforms, and, when found, bailing from the
sublayer walk. A non-invertible layer transform makes all its descendants non hit-testable.

Tests: fast/scrolling/ios/non-invertible-transformed-scroller-ancestor.html

fast/scrolling/mac/non-invertible-transform-hit-testing.html

  • page/scrolling/mac/ScrollingTreeMac.mm:

(collectDescendantLayersAtPoint):

  • platform/graphics/transforms/TransformationMatrix.h:

Source/WebKit:

The same issue with non-invertible transforms existed on iOS. r248015 attempted to
fix some instances of this, but failed to take into account the fact that a non-invertible
transfrom should also prevent hit-testing of descendant views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::collectDescendantViewsAtPoint):

LayoutTests:

macOS and iOS tests with non-invertible transforms.

  • fast/scrolling/ios/non-invertible-transformed-scroller-ancestor-expected.txt: Added.
  • fast/scrolling/ios/non-invertible-transformed-scroller-ancestor.html: Added.
  • fast/scrolling/mac/non-invertible-transform-hit-testing-expected.txt: Added.
  • fast/scrolling/mac/non-invertible-transform-hit-testing.html: Added.
11:03 AM Changeset in webkit [264030] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Function didCleanupFullscreencreen() should be called at the end of VideoFullscreenInterfaceAVKit::cleanupFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=214032

Reviewed by Eric Carlson.

VideoFullscreenManagerProxy::didCleanupFullscreen() may destroy an instance of VideoFullscreenInterfaceAVKit.
So we should not access member variables of VideoFullscreenInterfaceAVKit after calling didCleanupFullscreen()
in VideoFullscreenInterfaceAVKit::cleanupFullscreen().

Fix a flaky test crash: media/video-autoplay.html

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::cleanupFullscreen):

10:40 AM Changeset in webkit [264029] by Russell Epstein
  • 8 edits in branches/safari-610.1.21.1-branch/Source

Versioning.

WebKit-610.1.21.1.1

10:38 AM Changeset in webkit [264028] by Russell Epstein
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.1

10:38 AM Changeset in webkit [264027] by timothy_horton@apple.com
  • 14 edits
    2 adds in trunk

<attachment> layout does not scale with Dynamic Type size changes
https://bugs.webkit.org/show_bug.cgi?id=214023
<rdar://problem/64914762>

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/attachment/attachment-dynamic-type.html

  • rendering/RenderThemeIOS.mm:

(WebCore::shortCaptionPointSizeWithContentSizeCategory):
(WebCore::attachmentDynamicTypeScaleFactor):
(WebCore::RenderAttachmentInfo::buildWrappedLines):
(WebCore::RenderThemeIOS::attachmentIntrinsicSize const):
Scale the <attachment> overall size and text line width by the Dynamic Type
scaling factor, determined by dividing the resolved point size of two
font descriptors created with the Large (default) category and the Current category.

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::layout):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::attachmentShouldAllowWidthToShrink const):

  • rendering/RenderThemeIOS.h:

Add a RenderTheme bit controlling the behavior introduced in r202117.
After r202117, <attachment> elements are never allowed to shrink. This
is fine for macOS, where we don't vary the Dynamic Type size, only the content,
but undesirable on iOS, where the size of the <attachment> is based solely
on Dynamic Type size (and thus can shrink when the size is reduced),
and not the content.

  • Configurations/WebCoreTestSupport.xcconfig:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setContentSizeCategory):

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

Add a Internals method to change the current Dynamic Type category.

Source/WebCore/PAL:

  • pal/spi/cocoa/CoreTextSPI.h:

LayoutTests:

  • TestExpectations:
  • fast/attachment/attachment-dynamic-type-expected.txt: Added.
  • fast/attachment/attachment-dynamic-type.html: Added.
  • platform/ios/TestExpectations:

Add a test that ensures that changing the content size to XXXL also increases the size of the <attachment>.

10:22 AM Changeset in webkit [264026] by Russell Epstein
  • 2 edits in branches/safari-610.1.21.0-branch/Source/WebKit

Cherry-pick r264019. rdar://problem/65179688

Forward declare WKContentWorld in WKUserScript.h
<rdar://problem/65164826> and https://bugs.webkit.org/show_bug.cgi?id=214046

Unreviewed.

  • UIProcess/API/Cocoa/WKUserScript.h:

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

10:16 AM Changeset in webkit [264025] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207551

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
10:13 AM Changeset in webkit [264024] by Russell Epstein
  • 1 copy in branches/safari-610.1.21.1-branch

New branch.

10:13 AM Changeset in webkit [264023] by Russell Epstein
  • 1 copy in branches/safari-610.1.21.0-branch

New branch.

10:05 AM Changeset in webkit [264022] by Chris Dumez
  • 1 edit
    4 deletes in trunk/LayoutTests/imported/w3c

Unreviewed, drop a couple of tests that failed to get removed during resync in r263856.

These tests were renamed and exist under slightly different names after r263856.

  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-expected.txt: Removed.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html: Removed.
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub-expected.txt: Removed.
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html: Removed.
10:04 AM Changeset in webkit [264021] by commit-queue@webkit.org
  • 52 edits in trunk

Add WebCoreNSURLSession SPI to send HTTP/2 ping
https://bugs.webkit.org/show_bug.cgi?id=214030
<rdar://problem/64495827>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-07
Reviewed by Jer Noble.

Source/WebCore:

Add lots of plumbing, move internalError from WebKit to WebCore.

Covered by an API test that requires some future CFNetwork behavior.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMPromiseDeferred.h:
  • loader/FrameLoaderClient.cpp: Added.

(WebCore::FrameLoaderClient::sendH2Ping):

  • loader/FrameLoaderClient.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::sendH2Ping):

  • loader/MediaResourceLoader.h:
  • platform/graphics/PlatformMediaResourceLoader.cpp: Added.

(WebCore::PlatformMediaResourceLoader::sendH2Ping):

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/network/ResourceErrorBase.cpp:

(WebCore::internalError):

  • platform/network/ResourceErrorBase.h:
  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession sendH2Ping:pongHandler:]):

  • testing/Internals.cpp:

(WebCore::Internals::sendH2Ping):

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

Source/WebKit:

The SPI to do this through CFNetwork requires setting a block on the task
between construction and resumption. To allow this, I made PreconnectTask
and NetworkLoad require a start() call, and I added start() calls everywhere
they were implied with construction before.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::sendH2Ping):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::setH2PingCallback):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::start):
(WebKit::NetworkLoad::setH2PingCallback):
(WebKit::NetworkLoad::initialize): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::setH2PingCallback):
(WebKit::PreconnectTask::start):
(WebKit::PreconnectTask::~PreconnectTask): Deleted.

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):

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

(WebKit::NetworkDataTaskCocoa::setH2PingCallback):

  • Shared/WebErrors.cpp:

(WebKit::internalError): Deleted.

  • Shared/WebErrors.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::generateLoadIdentifier):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
(WebKit::generateLoadIdentifier): Deleted.

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::sendH2Ping):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):
Add a disabled test I used to verify this works correctly.

9:48 AM Changeset in webkit [264020] by Chris Dumez
  • 34 edits
    1 copy
    93 adds in trunk/LayoutTests

Resync web-platform-tests/custom-elements from upstream
https://bugs.webkit.org/show_bug.cgi?id=214028

Reviewed by Sam Weinig.

Resync web-platform-tests/custom-elements from upstream 145839c323ba1ec8b97.

  • web-platform-tests/custom-elements/*: Updated.
9:23 AM Changeset in webkit [264019] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Forward declare WKContentWorld in WKUserScript.h
<rdar://problem/65164826> and https://bugs.webkit.org/show_bug.cgi?id=214046

Unreviewed.

  • UIProcess/API/Cocoa/WKUserScript.h:
8:20 AM Changeset in webkit [264018] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Fix CrashTracer reported in PDFPlugin::ByteRangeRequest::maybeComplete.
<rdar://problem/64884982> and https://bugs.webkit.org/show_bug.cgi?id=214026

Reviewed by Tim Horton.

No new tests (CrashTracer with no reproduction)

Due to the racy-ness of how PDFKit calls us on the background thread vs. what might be
happening with the main thread, sometimes the main thread is asked to handle a data
request either:

  • Before m_data is allocated or
  • After it is deallocated

In either case it's okay to just not handle it.

Despite understanding how to reproduce in theory, writing a test case has been elusive.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::ByteRangeRequest::maybeComplete): Null check m_data before doing anything with it.

8:07 AM Changeset in webkit [264017] by ggaren@apple.com
  • 2 edits in trunk/Tools

Added a test for callOnMainThread
https://bugs.webkit.org/show_bug.cgi?id=214025

Reviewed by Sam Weinig.

This test failed prior to https://trac.webkit.org/changeset/263981.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST): Added a test demonstrating why a simple "is the
queue empty?" check doesn't work when you support both re-entrancy and
threads. While the main thread is sleeping in a nested RunLoop, a
secondary thread can see a non-empty queue.

6:57 AM Changeset in webkit [264016] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

REGRESSION(r262680): [GTK] Crash in WebKit::DropTarget::didPerformAction
https://bugs.webkit.org/show_bug.cgi?id=213885

Reviewed by Michael Catanzaro.

Just compare if new operation is the same as the current one, the == operator of Optional already takes care of
values being nullopt.

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::didPerformAction):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::didPerformAction):

6:56 AM Changeset in webkit [264015] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WTF

[GTK] WebProcess hangs when browsing GitHub
https://bugs.webkit.org/show_bug.cgi?id=213970

Reviewed by Sergio Villar Senin.

Use a lower priority for LayerFlushTimer and DisplayRefreshMonitorTimer. We were using a very high priority for
drawing with the idea of keeping a good rendering performance without being affected by other timers. The
problem is that animations can be controlled by timers, so we need to ensure that MainThreadSharedTimer has
higher priority than drawing.

  • wtf/glib/RunLoopSourcePriority.h: Use 110 for LayerFlushTimer and DisplayRefreshMonitorTimer.
4:31 AM Changeset in webkit [264014] by Tomoki Imai
  • 11 edits in trunk

[Win] Implement Pasteboard::writeCustomData for Web Inspector Console tab
https://bugs.webkit.org/show_bug.cgi?id=213986

Reviewed by Fujii Hironori.

Source/WebCore:

Implement Pasteboard::writeCustomData and Pasteboard::typesSafeForBindings.
This fixes the issue which we cannot copy text in WebInspector's Console tab.

We enable some existing testcases for pasteboard.

  • platform/Pasteboard.h:
  • platform/PasteboardCustomData.cpp:

(WebCore::PasteboardCustomData::fromPersistenceDecoder): Construct PasteboardCustomData from WTF::Persistence::Decoder.
(WebCore::PasteboardCustomData::fromSharedBuffer): Use fromPersistenceDecoder function to implement.

  • platform/PasteboardCustomData.h:
  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::createGlobalData): Add uint8_t* variant.

  • platform/win/ClipboardUtilitiesWin.h:
  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::finishCreatingPasteboard): Register new clipboard format CustomDataClipboardFormat.
(WebCore::Pasteboard::readPasteboardCustomData): Helper function to read PasteboardCustomData from the pasteboard.
(WebCore::Pasteboard::typesSafeForBindings): Implemented.
(WebCore::Pasteboard::readOrigin): Implemented.
(WebCore::Pasteboard::readStringInCustomData): Implemented.
(WebCore::Pasteboard::writeCustomData): Implemented.

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.h: Turn DEFAULT_CUSTOM_PASTEBOARD_DATA_ENABLED on for Windows

LayoutTests:

Now pasteboard tests related to custom data pass.

  • platform/win/TestExpectations:
4:08 AM Changeset in webkit [264013] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[GStreamer] OGV/VP8 video not playing on minibrowser (neither epiphany)
https://bugs.webkit.org/show_bug.cgi?id=205916

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

Tools:

  • buildstream/elements/sdk/gst-plugins-base.bst: Vendor upstreamed GStreamer patch. It is

merged in the 1.16 branch and scheduled for 1.16.3 release but we don't know when/if it will
happen.

  • buildstream/patches/gst-plugins-base-0001-oggstream-Workaround-for-broken-PAR-in-VP8-BOS.patch: Added.

LayoutTests:

  • platform/glib/TestExpectations: Update WPT expectations
1:03 AM Changeset in webkit [264012] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Fix typo in version variable assingment in FindWOFF2.cmake
https://bugs.webkit.org/show_bug.cgi?id=214012

Reviewed by Carlos Garcia Campos.

  • Source/cmake/FindWOFF2.cmake: Properly use PC_WOFF2_VERSION as the version

detected from pkg-config.

12:21 AM Changeset in webkit [264011] by yurys@chromium.org
  • 2 edits in trunk/Tools

[GTK][MiniBrowser] occasional crashes when closing while download in progress
https://bugs.webkit.org/show_bug.cgi?id=214007

Reviewed by Carlos Garcia Campos.

Remove signal handlers from WebKitDownload when BrowserDownload is finalized,
WebKitDownload may emit a signal after the UI item has been destroyed which leads
to a crash.

  • MiniBrowser/gtk/BrowserDownloadsBar.c:

(browserDownloadFinalize):

Jul 6, 2020:

9:44 PM Changeset in webkit [264010] by Lauro Moura
  • 4 edits
    1 add in trunk/LayoutTests

[GTK][WPE] Imported semantics tests gardening after r263987

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
8:48 PM Changeset in webkit [264009] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark ref-test imported in r263987 as failing on iOS.

imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html is
a new ref-test that has been failing on iOS since import.

  • platform/ios/TestExpectations:
8:46 PM Changeset in webkit [264008] by Simon Fraser
  • 7 edits in trunk/Source

High CPU usage on Stash search results pages
https://bugs.webkit.org/show_bug.cgi?id=214018
<rdar://problem/64832917>

Reviewed by Tim Horton.
Source/WebCore:

Stash search results pages can contain a lot of overflow:scroll areas, so scrolling thread CA commits
would take a long time because ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters() would
open and close a CA commit for each scroller.

Fix by not explicitly starting a CA commit, and only entering this code if a gesture is active and in
the momentum phase.

Also sprinkle BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS in more places that call into Core
Animation.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionScrollingLayers):
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionScrollingLayers):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters):

Source/WebKit:

Stash search results pages can contain a lot of overflow:scroll areas, so scrolling thread CA commits
would take a long time because ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters() would
open and close a CA commit for each scroller.

Fix by not explicitly starting a CA commit, and only entering this code if a gesture is active and in
the momentum phase.

Also sprinkle BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS in more places that call into Core
Animation.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::repositionRelatedLayers):

8:35 PM Changeset in webkit [264007] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Rebaseline test for iOS after r263987.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
7:57 PM Changeset in webkit [264006] by Simon Fraser
  • 57 edits in trunk/Source

BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS should not have trailing semicolons
https://bugs.webkit.org/show_bug.cgi?id=214019

Reviewed by Tim Horton.

These macros are defined as:

#define BEGIN_BLOCK_OBJC_EXCEPTIONS @try {
#define END_BLOCK_OBJC_EXCEPTIONS } @catch(NSException *localException) { ReportBlockedObjCException(localException); }

so they should not be used with trailing semicolons.

Source/WebCore:

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::expandSelectionByCharacters):
(WebCore::showPopupOrCreateAnimationController):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::dataInRTFDFormat):
(WebCore::Editor::dataInRTFFormat):

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::tokenRange):
(WebCore::expandSelectionByCharacters):
(WebCore::showPopupOrCreateAnimationController):
(WebCore::DictionaryLookup::hidePopup):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::keyEvent):
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::mouseMoved):

  • page/mac/ChromeMac.mm:

(WebCore::Chrome::focusNSView):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::keyEvent):
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseDragged):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::pressureChange):
(WebCore::EventHandler::passMouseMovedEventToScrollbars):

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::encode const):
(WebCore::ContentFilterUnblockHandler::decode):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):

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

(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):

  • platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm:

(WebCore::GPUBindGroupAllocator::allocateAndSetEncoders):
(WebCore::GPUBindGroupAllocator::reallocate):

  • platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm:

(WebCore::appendArgumentToArray):
(WebCore::tryCreateMtlArgumentEncoder):
(WebCore::argumentDescriptor):
(WebCore::GPUBindGroupLayout::tryCreate):

  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::setBufferOnEncoder):
(WebCore::setSamplerOnEncoder):
(WebCore::setTextureOnEncoder):

  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::commandBufferCommitted):
(WebCore::GPUBuffer::copyStagingBufferToGPU):

  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::tryCreate):
(WebCore::GPUCommandBuffer::endBlitEncoding):
(WebCore::GPUCommandBuffer::copyBufferToBuffer):
(WebCore::GPUCommandBuffer::copyBufferToTexture):
(WebCore::GPUCommandBuffer::copyTextureToBuffer):
(WebCore::GPUCommandBuffer::copyTextureToTexture):

  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm:

(WebCore::GPUComputePassEncoder::tryCreate):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::useResource):
(WebCore::GPUComputePassEncoder::setComputeBuffer):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):
(WebCore::tryCreateMTLComputePipelineState):

  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::tryCreate):

  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:

(WebCore::GPUProgrammablePassEncoder::endPass):

  • platform/graphics/gpu/cocoa/GPUQueueMetal.mm:

(WebCore::GPUQueue::tryCreate):
(WebCore::GPUQueue::submit):

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::populateMtlColorAttachmentsArray):
(WebCore::populateMtlDepthStencilAttachment):
(WebCore::GPURenderPassEncoder::tryCreate):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setBlendColor):
(WebCore::GPURenderPassEncoder::setViewport):
(WebCore::GPURenderPassEncoder::setScissorRect):
(WebCore::GPURenderPassEncoder::setVertexBuffers):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::drawIndexed):
(WebCore::GPURenderPassEncoder::useResource):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::setFragmentBuffer):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::tryCreateMtlDepthStencilState):
(WebCore::trySetVertexInput):
(WebCore::trySetColorStates):
(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertRenderPipelineDescriptor):
(WebCore::tryCreateMtlRenderPipelineState):

  • platform/graphics/gpu/cocoa/GPUSamplerMetal.mm:

(WebCore::tryCreateMtlSamplerState):

  • platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:

(WebCore::GPUShaderModule::tryCreate):

  • platform/graphics/gpu/cocoa/GPUSwapChainMetal.mm:

(WebCore::tryCreateWebGPULayer):
(WebCore::GPUSwapChain::tryGetCurrentTexture):

  • platform/graphics/gpu/cocoa/GPUTextureMetal.mm:

(WebCore::tryCreateMtlTextureDescriptor):
(WebCore::GPUTexture::tryCreate):
(WebCore::GPUTexture::tryCreateDefaultTextureView):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::documentView const):
(WebCore::ScrollView::platformSetScrollbarModes):
(WebCore::ScrollView::platformScrollbarModes const):
(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformUnobscuredContentRect const):
(WebCore::ScrollView::platformExposedContentRect const):
(WebCore::ScrollView::setActualScrollPosition):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentSize const):
(WebCore::ScrollView::legacyTileCache):
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollbarsSuppressed):
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformRepaintContentRectangle):
(WebCore::ScrollView::platformContentsToScreen const):
(WebCore::ScrollView::platformScreenToContents const):
(WebCore::ScrollView::platformSetScrollOrigin):

  • platform/ios/WidgetIOS.mm:

(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::frameRect const):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::addToSuperview):
(WebCore::Widget::removeFromSuperview):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):

  • platform/mac/CursorMac.mm:

(WebCore::createCustomCursor):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation invalidate]):
(-[WebScrollerImpDelegate cancelAnimations]):
(-[WebScrollerImpDelegate invalidate]):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::documentView const):
(WebCore::ScrollView::platformAddChild):
(WebCore::ScrollView::platformSetScrollbarModes):
(WebCore::ScrollView::platformScrollbarModes const):
(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformTopContentInset const):
(WebCore::ScrollView::platformSetTopContentInset):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea const):
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollbarsSuppressed):
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformRepaintContentRectangle):
(WebCore::ScrollView::platformContentsToScreen const):
(WebCore::ScrollView::platformScreenToContents const):
(WebCore::ScrollView::platformSetScrollOrigin):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
(WebCore::scrollerImpPaint):
(WebCore::linenBackgroundColor):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::setFocus):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::frameRect const):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::setIsSelected):
(WebCore::Widget::removeFromSuperview):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):
(WebCore::NetworkStorageSession::cookiesForSession const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::platformLazyInit):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::start):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

Source/WebKit:

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeFontInternal):

  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:

(-[WKScrollbarPartAnimation invalidate]):
(-[WKScrollerImpDelegate cancelAnimations]):
(-[WKScrollerImpDelegate invalidate]):
(WebKit::ScrollerMac::updateValues):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::updateLayerAnimations):

Source/WebKitLegacy/mac:

  • DOM/DOMCustomXPathNSResolver.mm:

(DOMCustomXPathNSResolver::lookupNamespaceURI):

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::exceededDatabaseQuota):
(WebChromeClient::reachedApplicationCacheOriginQuota):
(WebChromeClient::runOpenPanel):
(WebChromeClient::keyboardUIMode):
(WebChromeClient::firstResponder):
(WebChromeClient::makeFirstResponder):
(WebChromeClient::attachRootGraphicsLayer):
(WebChromeClient::setNeedsOneShotDrawingSynchronization):
(WebChromeClient::scheduleRenderingUpdate):
(WebChromeClient::enterVideoFullscreenForVideoElement):
(WebChromeClient::exitVideoFullscreenForVideoElement):
(WebChromeClient::exitVideoFullscreenToModeWithoutAnimation):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createFrame):
(WebFrameLoaderClient::objectContentType):
(NetscapePluginWidget::notifyWidget):
(WebFrameLoaderClient::createPlugin):
(WebFrameLoaderClient::redirectDataToPlugin):
(WebFrameLoaderClient::createJavaAppletWidget):

  • WebCoreSupport/WebGeolocationClient.mm:

(WebGeolocationClient::setEnableHighAccuracy):
(WebGeolocationClient::requestPermission):
(-[WebGeolocationProviderInitializationListener initializationAllowedWebView:]):

  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::requestPermission):

  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):

  • WebCoreSupport/WebVisitedLinkStore.mm:

(WebVisitedLinkStore::populateVisitedLinksIfNeeded):

  • WebView/WebHTMLView.mm:

(imageFromRect):

6:49 PM Changeset in webkit [264005] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Add ability for AX objects to output html in debug
https://bugs.webkit.org/show_bug.cgi?id=214020

Reviewed by Darin Adler.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase innerHTML]):
(-[WebAccessibilityObjectWrapperBase outerHTML]):

6:34 PM Changeset in webkit [264004] by beidson@apple.com
  • 25 edits in trunk/Source

Get rid of concept of "initial connected gamepads"
https://bugs.webkit.org/show_bug.cgi?id=214010

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Refactor, no behavior change)

When a page starts using gamepads and some were already connected, this concept
was meant to manage when the already-connected gamepads could be revealed to the page.

It obviously wasn't needed, as only the HID provider used them (GameController provider didn't)

Instead, we should just always include a "does this event make gamepads visible?" bit.

This cleans up a lot of weird code gets both providers working closer to each other.

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::platformGamepadConnected):
(WebCore::GamepadManager::platformGamepadInputActivity):

  • Modules/gamepad/GamepadManager.h:
  • platform/gamepad/GamepadProvider.cpp:

(WebCore::GamepadProvider::dispatchPlatformGamepadInputActivity):

  • platform/gamepad/GamepadProviderClient.h:

(WebCore::GamepadProviderClient::setInitialConnectedGamepads): Deleted.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::makeInvisibileGamepadsVisible):

  • platform/gamepad/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired): Deleted.

  • platform/gamepad/mac/HIDGamepadProvider.h:
  • testing/MockGamepadProvider.cpp:

(WebCore::MockGamepadProvider::connectMockGamepad):

Source/WebKit:

  • Scripts/webkit/messages.py:
  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads): Deleted.

  • UIProcess/Gamepad/UIGamepadProvider.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::gamepadActivity):

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

(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::setInitialConnectedGamepads): Deleted.

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

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadActivity):

  • WebProcess/Gamepad/WebGamepadProvider.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::gamepadActivity):

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

(WebKit::WebProcess::gamepadConnected):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
5:54 PM Changeset in webkit [264003] by Wenson Hsieh
  • 4 edits in trunk

Web process sometimes crashes when translating an article on spiegel.de
https://bugs.webkit.org/show_bug.cgi?id=214014
<rdar://problem/65099253>

Reviewed by Tim Horton.

Source/WebCore:

The crash happens because we try to make a BoundaryPoint (using makeBoundaryPoint) out of an orphaned
Position that is anchored before or after the anchor node (more specifically, either PositionIsBeforeAnchor
or PositionIsAfterAnchor). In makeBoundaryPoint, we'll avoid the early WTF::nullopt return since the
position is non-null, but then try to access the container node, which is null in this case because the anchor
node has been unparented.

Fix this by not attempting to observe orphaned DOM positions when extracting content for translation.

Test: TextManipulation.StartTextManipulationAvoidCrashWhenExtractingOrphanedPositions

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a test case that dynamically adds an object element, immediately removes it, and then adds a chunk of text
and verifies that the text manipulation delegate method for new content is invoked.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
5:46 PM Changeset in webkit [264002] by clopez@igalia.com
  • 2 edits in trunk/Tools

svn-apply should use verbose mode when adding files to git
https://bugs.webkit.org/show_bug.cgi?id=214022

Reviewed by Darin Adler.

If a patch contains several copy or add operations it can happen that there is
no output for more than 600 seconds meanwhile the tool is applying the patch.
This can cause a fatal error on the EWS. Pass the verbose flag to git,
so it outputs the name of the file after adding it to the index.
This is consequent how "svn add" works by default (it outputs the name of the file),
or how "git rm" works (it also outputs the name of the file by default as well).

  • Scripts/svn-apply:

(scmCopy):
(scmAdd):
(scmCommitQueueAdded):

5:15 PM Changeset in webkit [264001] by wilander@apple.com
  • 3 edits in trunk/Source/WebCore

Follow-up to r263992: Make isKinjaLoginAvatarElement() a free function
https://bugs.webkit.org/show_bug.cgi?id=214015
<rdar://problem/65153632>

Unreviewed follow-up to a quirk. Just changing
isKinjaLoginAvatarElement() from member to free function.

As requested in https://bugs.webkit.org/show_bug.cgi?id=213910#c10.

  • page/Quirks.cpp:

(WebCore::isKinjaLoginAvatarElement):
(WebCore::Quirks::isKinjaLoginAvatarElement const): Deleted.

  • page/Quirks.h:
5:09 PM Changeset in webkit [264000] by Chris Fleizach
  • 23 edits
    2 adds in trunk

AX: Implement user action spec for Escape action
https://bugs.webkit.org/show_bug.cgi?id=213875
<rdar://problem/65022980>

Reviewed by Darin Adler.

Source/WebCore:

Implement the Escape action for the user action events.
https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology

Test: accessibility/keyevents-posted-for-dismiss-action.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::performEscape):
(WebCore::AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent):
(WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformEscape]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::performEscape):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(dismissCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::dismiss):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):
(WTR::AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::dismiss):

LayoutTests:

  • accessibility/keyevents-posted-for-dismiss-action-expected.txt: Added.
  • accessibility/keyevents-posted-for-dismiss-action.html: Added.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
5:01 PM Changeset in webkit [263999] by commit-queue@webkit.org
  • 15 edits in trunk

Fix transform feedback tests
https://bugs.webkit.org/show_bug.cgi?id=213906

Patch by James Darpinian <James Darpinian> on 2020-07-06
Reviewed by Dean Jackson.

Fix transform feedback conformance tests by implementing missing functionality such as:

  • Transform feedback object state tracking
  • Validation for all GL errors that can affect state tracking before calling ANGLE
  • Default transform feedback object
  • Pause/resume
  • Fix vertexAttribDivisor in WebGL 2 (unrelated to transform feedback)

After this, all related tests pass except for a few that also fail in Chrome, and one that uses
PIXEL_PACK_BUFFER which is not yet supported.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::ValidateTransformFeedbackPrimitiveMode):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::pauseTransformFeedback):
(WebCore::WebGL2RenderingContext::resumeTransformFeedback):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getMaxTransformFeedbackSeparateAttribs):
(WebCore::WebGL2RenderingContext::getParameter):
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):

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

(WebCore::WebGLProgram::cacheInfoIfNeeded):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::create):
(WebCore::WebGLTransformFeedback::WebGLTransformFeedback):
(WebCore::WebGLTransformFeedback::setProgram):
(WebCore::WebGLTransformFeedback::setBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::getBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::hasEnoughBuffers const):
(WebCore::WebGLTransformFeedback::usesBuffer):
(WebCore::WebGLTransformFeedback::unbindBuffer):
(WebCore::WebGLTransformFeedback::validateProgramForResume const):

  • html/canvas/WebGLTransformFeedback.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):

4:59 PM Changeset in webkit [263998] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Locale-specific quotes infrastructure needs to compare locale strings properly
https://bugs.webkit.org/show_bug.cgi?id=213827

Reviewed by Darin Adler.

Source/WebCore:

Before this patch, WebKit is selecting which quotes to display on <q>
elements by doing a raw strcmp() on the locale string with a big table
of locale strings. strcmp() is the wrong way to compare locale strings.

The HTML spec has a list of locales and their associated quotes[1].
It is formulated in terms of CSS using the "lang()" pseudoclass.
The spec of the lang() pseudoclass[2] describes that locale comparison
needs to be done according to section 3.3.2 in RFC4647[3].

This algorithm is a pretty general algorithm, and implementing it naively
would mean turning our O(log(n)) algorithm into a O(n) algorithm, which
would be unfortunate. Instead, we can use a few observations about the
set of locale strings we are comparing against, in order to preserve the
O(log(n)) runtime:

  • All the locales have either 1 or 2 subtags
  • None of the subtags in any of the ranges are wildcards
  • The list is sorted, so a locale string that is a prefix of another one

is listed before it.

[1] https://html.spec.whatwg.org/multipage/rendering.html#quotes
[2] https://drafts.csswg.org/selectors-4/#the-lang-pseudo
[3] https://tools.ietf.org/html/rfc4647#page-10

Test: fast/css-generated-content/quotes-lang-2.html

  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • rendering/RenderQuote.cpp:

(WebCore::subtagCompare):
(WebCore::quoteTableLanguageComparisonFunction):
(WebCore::quotesForLanguage):
(WebCore::RenderQuote::computeText const):

LayoutTests:

  • fast/css-generated-content/quotes-lang-2-expected.html: Added.
  • fast/css-generated-content/quotes-lang-2.html: Added.
4:32 PM Changeset in webkit [263997] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] No need to mark tables/mozilla_expected_failures/other/empty_cells.html with [Failure] anymore.

Unreviewed.

  • platform/win/TestExpectations:
4:30 PM Changeset in webkit [263996] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Regression(r249303) Crash under NetworkLoad::NetworkLoad()
https://bugs.webkit.org/show_bug.cgi?id=214008
<rdar://problem/64853936>

Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
Do some hardening and fail the SpeculativeLoad if the network session is null, instead of dereferencing
the network session unconditionally. The NetworkCache owns the NetworkCacheSpeculativeLoadManager and
the NetworkCache is RefCounted so it may outlive its NetworkSession in theory and schedule speculative
loads for a session that was just destroyed.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:

Capture weakThis in a few lambda and check it when the lambda gets called. It looked unsafe so I
decided to do some hardening.

4:27 PM Changeset in webkit [263995] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] WAKWindow should override -resignFirstResponder and clear state
https://bugs.webkit.org/show_bug.cgi?id=214011
<rdar://problem/65152410>

Reviewed by Tim Horton.

This is part of the fix for <rdar://problem/62615273>.

Override -resignFirstResponder to clear out internal state that tracks the first responder
in the iOS Legacy WebKit world.

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow resignFirstResponder]):

4:14 PM Changeset in webkit [263994] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed mozilla test gardening after r263855.

  • platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
4:13 PM Changeset in webkit [263993] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION: (r263977): [ iOS Debug WK2 ] 36 fast form and web-platform test consistently crashing
https://bugs.webkit.org/show_bug.cgi?id=214009
<rdar://problem/65151752>

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::weekInputStyleSheet const):
Replace ""_s with emptyString() to fix crashing tests.

4:01 PM Changeset in webkit [263992] by wilander@apple.com
  • 4 edits in trunk/Source/WebCore

Storage Access API: Add the capability to open a popup and get user interaction so we can call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
https://bugs.webkit.org/show_bug.cgi?id=213910
<rdar://problem/65058017>

Reviewed by Darin Adler.

This patch not only adds the capability but also adds a site-specific quirk for
the family of Kinja sites so that no previous user interaction with kinja.com
results in a login popup for kinja.com.

No new tests. This is for site-specific quirks.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):

Just a change in the call into the quirk function.

  • page/Quirks.cpp:

(WebCore::Quirks::isKinjaLoginAvatarElement const):

Convenience function for telling if the given element is the Kinja login avatar.

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

Now takes the whole Element to be able to look at both classes and attributes.

  • page/Quirks.h:
3:25 PM Changeset in webkit [263991] by Peng Liu
  • 2 edits in trunk/Source/WebKit

REGRESSION (r261001): ASSERTION FAILED: m_clientCounts.contains(contextId) in WebKit::VideoFullscreenManagerProxy::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=212986

Reviewed by Jer Noble.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
Function removeClientForContext() could be called multiple times with the same contextId.
We should bail out if m_clientCounts does not contain the contextId.

3:04 PM Changeset in webkit [263990] by Peng Liu
  • 3 edits in trunk/Source/WebCore

Cleanup WebVideoFullscreenControllerAVKit.mm and PlaybackSessionInterfaceAVKit.mm
https://bugs.webkit.org/show_bug.cgi?id=214005

Reviewed by Daniel Bates.

No new tests, no behavior change.

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

(VideoFullscreenControllerContext::setUpFullscreen):
Remove a redundant line.

2:52 PM Changeset in webkit [263989] by Alan Coon
  • 1 copy in tags/Safari-610.1.21

Tag Safari-610.1.21.

2:50 PM Changeset in webkit [263988] by Russell Epstein
  • 2 edits in branches/safari-610.1.21-branch/Source/WebKitLegacy/mac

Cherry-pick r263986. rdar://problem/65149071

[Catalyst] Remove SPI header from WebDownload.h
https://bugs.webkit.org/show_bug.cgi?id=214004
<rdar://problem/65146575>

Reviewed by Wenson Hsieh.

  • Misc/WebDownload.h: Remove SPI header.

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

2:36 PM Changeset in webkit [263987] by Chris Dumez
  • 202 edits
    16 copies
    5 moves
    334 adds
    20 deletes in trunk/LayoutTests

Resync web-platform-tests/html/semantics from upstream
https://bugs.webkit.org/show_bug.cgi?id=213994

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/semantics from upstream 145839c323ba1ec8b.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
  • tests-options.json:
2:33 PM Changeset in webkit [263986] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKitLegacy/mac

[Catalyst] Remove SPI header from WebDownload.h
https://bugs.webkit.org/show_bug.cgi?id=214004
<rdar://problem/65146575>

Reviewed by Wenson Hsieh.

  • Misc/WebDownload.h: Remove SPI header.
2:24 PM Changeset in webkit [263985] by commit-queue@webkit.org
  • 17 edits
    4 adds in trunk

Added PannerNode constructor according to spec
https://bugs.webkit.org/show_bug.cgi?id=213801

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-06
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests now that new ones are passing. New ones that fail are due to accepted range
of values that attributes can take on, which are to be implemented in a future patch.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:

Source/WebCore:

Added in new PannerNode constructor to match spec: https://www.w3.org/TR/webaudio/#dom-pannernode-pannernode.
Added in AudioNodeOptions and PannerOptions files. Modified some previous code in order to pass compilation.

Re-baselined existing tests now that new ones are passing. New ones that fail are due to accepted range
of values that attributes can take on, which are to be implemented in a future patch.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):

  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/AudioNodeOptions.h: Added.
  • Modules/webaudio/AudioNodeOptions.idl: Added.
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNodeBase::PannerNodeBase):
(WebCore::PannerNode::create):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/PannerOptions.h: Added.
  • Modules/webaudio/PannerOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
1:34 PM Changeset in webkit [263984] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Some tests are failing on the EWS bots
https://bugs.webkit.org/show_bug.cgi?id=213998

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:19 PM Changeset in webkit [263983] by Jonathan Bedard
  • 2 edits in trunk/Tools

[test-webkitpy] Use platform architecture
https://bugs.webkit.org/show_bug.cgi?id=214002
<rdar://problem/65144773>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests):

1:19 PM Changeset in webkit [263982] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

update-webkit-localizable-strings exits without writing localized strings because of an R"" string
https://bugs.webkit.org/show_bug.cgi?id=213274
<rdar://problem/64427891>

Reviewed by Darin Adler.

Remove R"" string, use adjacent string literals instead.

No new tests, functionality tested by existing tests, specifically
(http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html
and http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html).

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::joinSubStatisticsForSorting):
(WebKit::CompletionHandler<void): Deleted.

12:51 PM Changeset in webkit [263981] by ggaren@apple.com
  • 8 edits in trunk/Source

callOnMainThread should use the same queue as RunLoop::dispatch
https://bugs.webkit.org/show_bug.cgi?id=213830

Reviewed by Brady Eidson.

Source/JavaScriptCore:

Source/WTF:

This should reduce flakiness in scheduled tasks.

There's no need to keep a separate queue anymore since both APIs have
the same semantics now.

  • wtf/MainThread.cpp:

(WTF::callOnMainThread):
(WTF::functionQueue): Deleted.
(WTF::dispatchFunctionsFromMainThread): Deleted.

  • wtf/MainThread.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/generic/MainThreadGeneric.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/win/MainThreadWin.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

12:48 PM Changeset in webkit [263980] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

ASSERT_NOT_REACHED() in EventRegionContext::popClip()
https://bugs.webkit.org/show_bug.cgi?id=213905

Reviewed by Daniel Bates.

Fix an assertion seen on bing.com, tesla.com etc where event region painting
would have mismatched push/pop because of an obvious code error.

I spent too long trying to make a testcase and gave up.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::restoreClip):

12:45 PM Changeset in webkit [263979] by Wenson Hsieh
  • 12 edits
    1 move
    4 adds in trunk

[iPadOS] Unable to change focus between Google Docs windows by tapping
https://bugs.webkit.org/show_bug.cgi?id=213985
<rdar://problem/57083267>

Reviewed by Darin Adler.

Source/WebKit:

When putting two Google Docs windows side-by-side on iPad, it's currently not possible to change the window to
which keyboard input is routed. In native views (e.g. two side-by-side Notes windows), this is normally handled
by UITextMultiTapRecognizer, which is part of the UITextSelectionInteraction; tapping to place the text
selection calls into -[UITextInteractionAssistant setFirstResponderIfNecessaryActivatingSelection:], which
updates the key window if needed. This doesn't apply to Google Docs because they instead use touch events to
drive their own "text interaction"-like behaviors instead of relying on system gesture recognizers, which we
suppress due to the fact that the selection is within a hidden contenteditable.

But even in non-hidden editable areas, the initial tap to focus an editable element still doesn't automatically
make the window key, since the editable text interaction gestures are still inactive when tapping to focus an
editable element. This means two taps are currently required to change the key window when focusing two Safari
windows side-by-side: the first tap to focus the element (via the synthetic click gesture), and the second tap
to trigger the editable text interaction tap gesture that is used to set the selection.

To fix both of these issues, make some minor adjustments to call -makeKeyWindow from WebKit when focusing
editable elements. See below for more details.

Test: editing/selection/ios/become-key-window-when-focusing-editable-area.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _webTouchEventsRecognized:]):

For the case in Google Docs where a hidden editable element is used and tapping in the page does not result in
the element being refocused, we additionally need to make sure that we make our window key anyways. Limit this
hack to tap gestures, and only when there is a hidden focused editable element to emulate platform behavior of
updating the key window based on the text tap gesture.

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

Make the content view's window key when focusing an editable element.

(-[WKContentView hasHiddenContentEditable]):

Consider the selection to be inside a hidden editable area if the WebKit::FocusedElementIsTooSmall flag is set
as well. While this doesn't affect Google Docs, it does affect some other custom editors, such as Quip.

(-[WKContentView mouseGestureRecognizerChanged:]):

Additionally make the current window key when clicking in a hidden editable area with a trackpad on iOS.

Tools:

Add WebKitTestRunner support for being able to verify that a web view's window has become the key window.

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/UIScriptController.cpp: Added.

(WTR::UIScriptController::setWindowIsKey):
(WTR::UIScriptController::windowIsKey const):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • TestRunnerShared/UIScriptContext/UIScriptControllerShared.cpp: Renamed from Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp.

Rename UIScriptController.cpp (in TestRunnerShared) to UIScriptControllerShared.cpp, and introduce new
DumpRenderTree and WebKitTestRunner versions of UIScriptController.cpp to house DumpRenderTree and
WebKitTestRunner-specific UIScriptController method implementations.

For now, these are just windowIsKey and setWindowIsKey below, which plumb into their respective platform-
agnostic PlatformWebView methods in WebKitTestRunner.

  • WebKitTestRunner/UIScriptController.cpp: Added.

(WTR::UIScriptController::windowIsKey const):
(WTR::UIScriptController::setWindowIsKey):

  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(-[WebKitTestRunnerWindow becomeKeyWindow]):
(-[WebKitTestRunnerWindow resignKeyWindow]):

Update these two methods to update m_windowIsKey when the test runner's UIWindow becomes the key window (or
stops being the key window). This is invoked when -[UIWindow makeKeyWindow] is called (e.g. from within WebKit
code when tapping on an editable element).

(WTR::PlatformWebView::setWindowIsKey):

Avoid infinitely looping when setting windowIsKey to true, due to -becomeKeyWindow calling back into
setWindowIsKey.

LayoutTests:

Add a new layout test to verify that tapping to focus a plain textarea causes the web view's window to become
the key window, as well as tapping to focus a hidden contenteditable area, over a touch handler that prevents
default.

  • editing/selection/ios/become-key-window-when-focusing-editable-area-expected.txt: Added.
  • editing/selection/ios/become-key-window-when-focusing-editable-area.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setWindowIsKey):
(window.UIHelper.windowIsKey):

12:03 PM Changeset in webkit [263978] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Spams system logs with "Current memory footprint: 10 MB"
https://bugs.webkit.org/show_bug.cgi?id=213991

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-06
Reviewed by Darin Adler.

This particular log statement is too much spam in the system journal, since it prints
continuously under normal operating conditions. Let's limit it only to Apple platforms,
which have had RELEASE_LOG() for a long time and where this is presumably expected.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::measurementTimerFired):

12:01 PM Changeset in webkit [263977] by weinig@apple.com
  • 27 edits in trunk/Source

Compile-time enable (but leave disabled at runtime by default) date/time input types on macOS to allow testing of cross platform (e.g. DOM) aspects of the controls
https://bugs.webkit.org/show_bug.cgi?id=213949

Reviewed by Darin Adler.

Source/WebCore:

Enable date/time related input element types on all Cocoa platforms, but disable them at runtime.
To make runtime disabling work completely, the user agent style for these element types was
extracted from html.css and is now only added when needed via UserAgentStyle::ensureDefaultStyleSheetsForElement.

This is the first step to allowing us to run a subset of the date/time related input element tests
on more platforms. If this is successful, we should consider do this for all platforms, not just Cocoa.

  • css/html.css:

Move to RenderTheme accessors for conditional inclusion based on Settings.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isDateTimeField const): Deleted.

  • html/HTMLInputElement.h:

Removed dead isDateTimeField() code. This should have been removed when datetime was removed.

  • html/InputType.cpp:

(WebCore::createInputTypeFactoryMap):
(WebCore::InputType::create):
Switch from using RuntimeEnabledFeatures to Settings for checking for enabling (Settings allows
us to write less boilerplate code and is more versatile for testing) and switch to checking the
condition on each InputType construction, rather than just on map's creation (again, this allows
us to have more flexibility in testing).

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::inputTypeColorEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeColorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeDateEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeDateTimeLocalEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateTimeLocalEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeMonthEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeMonthEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeTimeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeTimeEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeWeekEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeWeekEnabled): Deleted.
Remove hand written code infavor of code genreated from Settings.yaml.

  • page/Settings.yaml:

Moved from RuntimeEnabledFeatures.

  • platform/LocalizedStrings.h:

Remove weekFormatInLDML() declaration, which had not implementation.

  • platform/text/PlatformLocale.cpp:

(WebCore::Locale::formatDateTime):

  • platform/text/PlatformLocale.h:

Simplify code by marking formatDateTime() virtual on all platforms and un-#ifdefing
the base implementation. Platforms that wish to override it still can.

  • platform/text/cocoa/LocaleCocoa.h:
  • platform/text/cocoa/LocaleCocoa.mm:
  • platform/text/ios/LocalizedDateCache.h:
  • platform/text/ios/LocalizedDateCache.mm:

Remove iOS specific #ifdefs around code that should work on all Cocoa platforms.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::colorInputStyleSheet const):
(WebCore::RenderTheme::dateInputStyleSheet const):
(WebCore::RenderTheme::dateTimeLocalInputStyleSheet const):
(WebCore::RenderTheme::monthInputStyleSheet const):
(WebCore::RenderTheme::timeInputStyleSheet const):
(WebCore::RenderTheme::weekInputStyleSheet const):

  • rendering/RenderTheme.h:

Add default user agent stylesheet strings for input types. All moved from html.css.

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h:

Conditionally add the input type specific user agent stylesheets only if the actual
input type is being passed in. Since creation of the input types is guarded by a Setting,
this can only happen if the type has been enabled.

Source/WebKit:

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

(-[WKFocusedElementInfo initWithFocusedElementInformation:isUserInitiated:userObject:]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView textInputTraits]):
(mayContainSelectableText):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):
Remove DateTime from the InputType enum. This should have been removed when datetime was removed.

  • Shared/WebPreferences.yaml:

Add preferences for all the date/time related input types, and have them automatically
link up with the newly added WebCore Settings of the same names (this is the default
behavior if no explicit webcoreBinding: is provided).

  • Shared/WebPreferencesDefaultValues.h:

Disable date/time input elements by default for non iOS/watchOS cocoa platforms. For non-Cocoa platforms
(and iOS/watchOS), they are enabled by default, but only actually get enabled if the appropriate ENABLE_*
macro is also set.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Enable building date/time input types on all Cocoa ports.

11:09 AM Changeset in webkit [263976] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[result database] Empty search will return too many tests to display
https://bugs.webkit.org/show_bug.cgi?id=213898

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/js/search.js: Trim the search string before fetching the tests, ingore empty string on paste event
10:44 AM Changeset in webkit [263975] by Russell Epstein
  • 8 edits in branches/safari-610.1.21-branch/Source

Versioning.

WebKit-610.1.21

10:39 AM Changeset in webkit [263974] by Russell Epstein
  • 1 copy in branches/safari-610.1.21-branch

New branch.

10:15 AM Changeset in webkit [263973] by ggaren@apple.com
  • 6 edits in trunk

RunLoop::dispatch should only call wakeUp when needed
https://bugs.webkit.org/show_bug.cgi?id=213705

Reviewed by Brady Eidson.

Source/WTF:

RunLoop::wakeUp is super expensive (at least on Darwin platforms). Back
when IndexedDB used RunLoop::dispatch, RunLoop::wakeUp accounted for 15%
of all database lookup time.

We can reduce the cost a bit by only scheduling a wakeUp when the queue
is empty.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::performWork): Take all the functions out of the pending
queue before we start executing them; that way, we can tell if a new
function has been added to the pending queue since we enetered
performWork.

(WTF::RunLoop::dispatch): Only call wakeUp if we need to.

  • wtf/RunLoop.h:

Tools:

Added some tests for interesting edge cases.

Now that we have tests, we don't need so many comments.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST): Test that re-entry maintiains ordering. Test that
re-entry does not deadlock with cross-thread posting. (This deadlock is
why we can't just use a naive check for an empty queue.)

  • TestWebKitAPI/glib/UtilitiesGLib.cpp:

(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::spinRunLoop):
(TestWebKitAPI::Util::sleep): Try to fix the GLib RunLoop testing code.
GLib fails my two new tests, and seems to fail other RunLoop-y tests.
I think this is because g_idle_add is defined not to work in nested
RunLoops. Let's see if using WTF's RunLoop API instead can help.

9:53 AM Changeset in webkit [263972] by commit-queue@webkit.org
  • 3 edits in trunk/PerformanceTests

MallocBench: Remove unused private field
https://bugs.webkit.org/show_bug.cgi?id=213989

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-06
Reviewed by Alex Christensen.

The m_argc private field is never used. Remove it.

  • MallocBench/MallocBench/CommandLine.cpp:
  • MallocBench/MallocBench/CommandLine.h:
9:51 AM Changeset in webkit [263971] by commit-queue@webkit.org
  • 4 edits in trunk

Allow setting empty host/hostname on URLs if they use file scheme
https://bugs.webkit.org/show_bug.cgi?id=213983

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Allow setting empty host/hostname on URLs if they use file scheme [1, 2, 3].

Behavior matches Firefox.

[1] https://url.spec.whatwg.org/#dom-url-host
[2] https://url.spec.whatwg.org/#dom-url-hostname
[3] https://url.spec.whatwg.org/#host-state Step 1

Test: imported/w3c/web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):
(WebCore::URLDecomposition::setHostname):

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

Update the user agent on iPadOS to use 11 to match macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=213753

Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2020-07-06
Reviewed by Alex Christensen.

Update the version number in the desktop user agent string to 11_0.

  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):

9:27 AM Changeset in webkit [263969] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Use RenderObject::positionForPoint instead of hit testing the entire view in closestEditablePositionInElementForAbsolutePoint
https://bugs.webkit.org/show_bug.cgi?id=213975

Reviewed by Wenson Hsieh.

The target renderer is known a priori so it is more efficient to hit test this directly
instead of indirectly by hit testing the entire view.

  • editing/Editing.cpp:

(WebCore::closestEditablePositionInElementForAbsolutePoint):

8:18 AM Changeset in webkit [263968] by Alan Bujtas
  • 8 edits in trunk/LayoutTests

[Win] Unreviewed mozilla test gardening after r263855.

  • platform/win/tables/mozilla/bugs/bug100334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug10633-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1302-expected.txt:
  • platform/win/tables/mozilla/bugs/bug16012-expected.txt:
  • platform/win/tables/mozilla/bugs/bug222336-expected.txt:
  • platform/win/tables/mozilla/bugs/bug3037-1-expected.txt:
8:03 AM Changeset in webkit [263967] by Alan Bujtas
  • 13 edits in trunk/LayoutTests

[Win] Unreviewed test gardening after r263855.

  • platform/win/fast/css/acid2-expected.txt:
  • platform/win/fast/css/acid2-pixel-expected.txt:
  • platform/win/fast/css/percentage-non-integer-expected.txt:
  • platform/win/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/win/fast/repaint/table-cell-move-expected.txt:
  • platform/win/fast/table/cell-absolute-child-expected.txt:
  • platform/win/fast/table/empty-cells-expected.txt:
  • platform/win/fast/table/prepend-in-anonymous-table-expected.txt:
  • platform/win/fast/table/table-cell-split-expected.txt:
  • platform/win/fast/table/table-insert-before-non-anonymous-block-expected.txt:
  • platform/win/http/tests/misc/acid2-expected.txt:
  • platform/win/http/tests/misc/acid2-pixel-expected.txt:
5:13 AM Changeset in webkit [263966] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

BubblewrapLauncher.cpp: Add paths required for sndio
https://bugs.webkit.org/show_bug.cgi?id=212524

Information about the paths currently ins't into the sndio
documentation but it can be found in this email:
http://www.sndio.org/arch/0077.html

Patch by Haelwenn (lanodan) Monnier <contact@hacktivis.me> on 2020-07-06
Reviewed by Adrian Perez de Castro.

Manually tested, there is currently no automatic tests for it

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSndio):
(WebKit::bubblewrapSpawn):

2:47 AM Changeset in webkit [263965] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][WPE] Enable storageAccess tests
https://bugs.webkit.org/show_bug.cgi?id=213881

Reviewed by Adrian Perez de Castro.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::getAllStorageAccessEntries): Use the right website data store.

LayoutTests:

Enable storageAccess tests and mark expected failures.

  • platform/glib/TestExpectations:
1:49 AM Changeset in webkit [263964] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK][WPE] Change the cookies accept policy when ITP is enabled
https://bugs.webkit.org/show_bug.cgi?id=213502

Reviewed by Michael Catanzaro.

Source/WebCore:

Set the accept policy to always when ITP is enabled and no-third-party is set, otherwise cookies access granted
by request storage access would still be rejected by libsoup if policy is set to no-third-party.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled): Move here the implementation for ports not
using soup.

  • platform/network/NetworkStorageSession.h:
  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession): Initialize cookie accept policy.
(WebCore::NetworkStorageSession::setCookieStorage): Set here the accept policy of the new jar.
(WebCore::NetworkStorageSession::setCookieAcceptPolicy): Set the cookie accept policy taking into account that
if ITP is enabled and no-third-party is set we save the policy but use always instead.
(WebCore::NetworkStorageSession::cookieAcceptPolicy const): Remove the default case of the switch.
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled): When enabled, save current policy and set
always if no-third-party is set. When disabled, restore the saved policy.

Source/WebKit:

  • NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Use NetworkStorageSession::setCookieAcceptPolicy().

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::setCookiePersistentStorage): Do not change the accept policy, it's now done by
NetworkStorageSession when the new cookie jar is set.

  • UIProcess/API/glib/WebKitCookieManager.cpp: Update API docs.
  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp: Ditto.

Tools:

Add tests to check the policy is changed and restored correctly when ITP is enabled and disabled.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerAcceptPolicy):

1:35 AM Changeset in webkit [263963] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[Flatpak SDK] Misc updates
https://bugs.webkit.org/show_bug.cgi?id=213968

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-06
Reviewed by Sergio Villar Senin.

  • buildstream/README.rst: ReST format fixes and doc additions.
  • buildstream/elements/sdk/perl-term-readkey.bst: Remove perllocal.pod as it can clash with other recipes.
  • flatpak/flatpakutils.py:

(run_in_sandbox_if_available): Add --flatpak- option pass-through support. This was lost
after the migration of run-minibrowser to python.

12:42 AM Changeset in webkit [263962] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Don't skip samples past media duration in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=213888

Reviewed by Xabier Rodriguez-Calvar.

appsinkNewSample() contained code to skip samples whose presentation
time starts after media duration. This is paradoxical, because later
sourceBufferPrivateDidReceiveSample() extends media duration whenever
the presentation end time of the sample is past the original one.

It does not sound reasonable that samples extending the duration are
okay on one case but outright rejected in the other. Also, if it was
about skipping samples, sourceBufferPrivateDidReceiveSample() could do
it itself, and already does in other cases.

For all these reasons I was very doubtful of the need for this if()
and indeed removing this condition didn't cause any new test failure.

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

(WebCore::AppendPipeline::appsinkNewSample):

Jul 5, 2020:

5:59 PM Changeset in webkit [263961] by commit-queue@webkit.org
  • 34 edits
    4 deletes in trunk

Unreviewed, reverting r263960.
https://bugs.webkit.org/show_bug.cgi?id=213980

Re-land, because r263959 somehow fixed the build issue caused
by r263953

Reverted changeset:

"Unreviewed, reverting r263953 and r263959."
https://bugs.webkit.org/show_bug.cgi?id=213979
https://trac.webkit.org/changeset/263960

5:46 PM Changeset in webkit [263960] by commit-queue@webkit.org
  • 34 edits
    4 adds in trunk

Unreviewed, reverting r263953 and r263959.
https://bugs.webkit.org/show_bug.cgi?id=213979

Broke internal build

Reverted changesets:

"[Cocoa] Move almost all features from FeatureDefines.xcconfig
to PlatformEnableCocoa.h"
https://bugs.webkit.org/show_bug.cgi?id=212542
https://trac.webkit.org/changeset/263953

"[Cocoa] Remove FEATURE_DEFINES from the Cocoa/Xcode build
system"
https://bugs.webkit.org/show_bug.cgi?id=213976
https://trac.webkit.org/changeset/263959

4:34 PM Changeset in webkit [263959] by Darin Adler
  • 32 edits
    4 deletes in trunk

[Cocoa] Remove FEATURE_DEFINES from the Cocoa/Xcode build system
https://bugs.webkit.org/show_bug.cgi?id=213976

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Removed FEATURE_DEFINES.
  • Configurations/FeatureDefines.xcconfig: Removed.
  • Configurations/JSC.xcconfig: Removed include of FeatureDefines.xcconfig.
  • Configurations/JavaScriptCore.xcconfig: Ditto.
  • Configurations/ToolExecutable.xcconfig: Ditto.
  • DerivedSources-input.xcfilelist: Removed FeatureDefines.xcconfig.
  • DerivedSources.make: Removed FEATURE_DEFINES and FEATURE_DEFINE_FLAGS.
  • JavaScriptCore.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed everything except for ENABLE_WEB_RTC.
  • Configurations/WebCore.xcconfig: Removed FEATURE_DEFINES.
  • DerivedSources-input.xcfilelist: Removed FeatureDefines.xcconfig.
  • DerivedSources.make: Removed FEATURE_DEFINES, FEATURE_DEFINE_FLAGS, and the dependency

on FeatureDefines.xcconfig.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed.
  • Configurations/PAL.xcconfig: Removed FEATURE_DEFINES and the include

of FeatureDefines.xcconfig.

  • PAL.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.

Source/WebKit:

  • Configurations/BaseTarget.xcconfig: Removed FEATURE_DEFINES, and added

WK_ENABLE_EXPERIMENTAL_FEATURES,

  • Configurations/FeatureDefines.xcconfig: Removed everything except for ENABLE_WEB_RTC.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Removed FeatureDefines.xconfig.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed.
  • Configurations/WebKitLegacy.xcconfig: Removed FEATURE_DEFINES and the include of

FeatureDefines.xcconfig.

  • MigrateHeaders.make: Removed FEATURE_DEFINES, FEATURE_DEFINE_FLAGS, and

FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES. FEATURE_AND_PLATFORM_DEFINES is now used
solely to determine if this is an internal SDK build, which should be cleaned up later.

Tools:

  • Scripts/webkitpy/style/checkers/featuredefines.py: Removed all FeatureDefines.xcconfig

files except for the two that remain, WebCore and WebKit.

  • TestWebKitAPI/Configurations/Base.xcconfig: Removed FEATURE_DEFINES.
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed.
  • TestWebKitAPI/Configurations/TestWTF.xcconfig: Removed include of FeatureDefines.xcconfig.
  • TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Ditto.
  • TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig: Ditto.
  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Ditto.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.
4:32 PM Changeset in webkit [263958] by commit-queue@webkit.org
  • 4 edits in trunk

Text manipulation: add a new heuristic to decide paragraph boundary
https://bugs.webkit.org/show_bug.cgi?id=213918

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-05
Reviewed by Wenson Hsieh.

Source/WebCore:

Modified test: TextManipulation.StartTextManipulationTreatsInlineBlockLinksAndButtonsAndSpansAsParagraphs.

  • editing/TextManipulationController.cpp:

(WebCore::isEnclosingItemBoundaryElement):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

4:10 PM Changeset in webkit [263957] by Darin Adler
  • 2 edits in trunk/Source/WebCore

[Cocoa] REGRESSION (r263914): Non-Apple-Pay Cocoa builds failing
https://bugs.webkit.org/show_bug.cgi?id=213977

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm: Fixed messed up #endif and

unnecessary #undef at end of file.

4:06 PM Changeset in webkit [263956] by aestes@apple.com
  • 8 edits
    1 add in trunk/Source

[iOS] La Banque Postale app does not respect safe area insets on iOS 14
https://bugs.webkit.org/show_bug.cgi?id=213974
<rdar://problem/65109197>

Reviewed by Darin Adler.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isLaBanquePostale): Added.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

La Banque Postale uses a fixed list of iOS versions that support safe area insets (versions
11 through 13 at the time of writing). Since iOS 14 is not in this list, the app fails to
apply top and bottom safe area insets to its web content. Work around this by adding the
'device-ios12p' class to <body> as if the iOS major version were 13 (the app currently uses
'device-ios12p' to represent both iOS 12 and iOS 13). This quirk will be disabled on
versions of La Banque Postale that link against the iOS 14 SDK (or later).

  • Configurations/WebKitLegacy.xcconfig: Excluded LaBanquePostaleQuirks.js on Mac.
  • Resources/LaBanquePostaleQuirks.js: Added.
  • WebView/WebView.mm:

(needsLaBanquePostaleQuirks): Added. Checks if the quirk is needed.
(leakLaBanquePostaleQuirksScript): Added. Leaks an NSString containing the quirk script.
(-[WebView _injectLaBanquePostaleQuirks]): Added. Injects the quirk as a user script.
(-[WebView _commonInitializationWithFrameName:groupName:]):

3:23 PM Changeset in webkit [263955] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.20.4

Tag Safari-610.1.20.4.

2:57 PM Changeset in webkit [263954] by Kocsen Chung
  • 8 edits in branches/safari-610.1.20-branch/Source

Versioning.

WebKit-610.1.20.4

12:31 PM Changeset in webkit [263953] by Darin Adler
  • 14 edits in trunk

[Cocoa] Move almost all features from FeatureDefines.xcconfig to PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=212542

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

  • Configurations/WebKit.xcconfig: Added include of WebKitTargetConditionals.xcconfig.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Added include of

WebKitTargetConditionals.xcconfig.

12:00 PM Changeset in webkit [263952] by Wenson Hsieh
  • 8 edits in trunk/Source/WebCore

[macOS 11] Indeterminate progress bar animation periodically jumps
https://bugs.webkit.org/show_bug.cgi?id=213967

Reviewed by Sam Weinig.

Source/WebCore:

The animation for an indeterminate progress bar occasionally jumps to the starting frame on macOS 11. This is
because the indeterinate progress bar animation only lasts for 120 frames on macOS 11, so our current hard-coded
value of 256 frames results in 16 extra frames of animation, before abruptly looping back to the starting frame.

To fix this, instead of specifying the animation frame index when painting progress bars on macOS, specify the
starting time and current time for the animation, and let CoreUI determine which frame to use.

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::animationProgress):

Assert that this never gets called with a zero animation duration.

(WebCore::RenderProgress::updateAnimationState):

Instead of checking for the animation duration to determine whether or not we should try and animate progress
bar painting, check for the animation repeat interval instead. This is because on macOS, we no longer hard-code
the animation duration, but still want to be able to animate progress bars.

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

(WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar const): Deleted.
(WebCore::RenderThemeIOS::animationDurationForProgressBar const): Deleted.

Drive-by fix: remove some unnecessary overridden method implementations on RenderThemeIOS.

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

(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::RenderThemeMac::animationDurationForProgressBar const): Deleted.

Stop overriding this method, and remove the progressAnimationNumFrames constant declared in this file.

Source/WebCore/PAL:

  • pal/spi/mac/CoreUISPI.h: Add declarations for kCUIAnimationStartTimeKey and kCUIAnimationTimeKey.
7:23 AM Changeset in webkit [263951] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Fix python3 build warnings
https://bugs.webkit.org/show_bug.cgi?id=213971

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-05
Reviewed by Sam Weinig.

Fix Python3 syntax warnings. Using 'is' with string literals triggers those. Adopt the ==
operator instead, which is more idiomatic anyway.

  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.cpp_getter_method_for_type):
(CppGenerator.cpp_setter_method_for_type):

  • inspector/scripts/codegen/objc_generator.py:

(ObjCTypeCategory.category_for_type):
(ObjCGenerator.objc_type_for_raw_name):
(ObjCGenerator.objc_class_for_raw_name):
(ObjCGenerator.protocol_type_for_raw_name):
(ObjCGenerator.objc_protocol_export_expression_for_variable):
(ObjCGenerator.objc_protocol_import_expression_for_variable):
(ObjCGenerator.objc_to_protocol_expression_for_member):
(ObjCGenerator.protocol_to_objc_expression_for_member):
(ObjCGenerator.payload_to_objc_expression_for_member):
(ObjCGenerator.objc_setter_method_for_member_internal):
(ObjCGenerator.objc_getter_method_for_member_internal):
(ObjCGenerator.objc_protocol_export_expression_for_variable.is): Deleted.
(ObjCGenerator.objc_protocol_import_expression_for_variable.is): Deleted.
(ObjCGenerator.objc_to_protocol_expression_for_member.is): Deleted.
(ObjCGenerator.protocol_to_objc_expression_for_member.is): Deleted.

7:15 AM Changeset in webkit [263950] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] run-wpe-tests Python3 compatibility
https://bugs.webkit.org/show_bug.cgi?id=213969

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-05
Reviewed by Sam Weinig.

  • Scripts/run-wpe-tests:
3:02 AM Changeset in webkit [263949] by commit-queue@webkit.org
  • 15 edits in trunk

[macOS] Allow selecting HEIF images if the 'accept' attribute includes an image MIME type that the platform can transcode the HEIF to
https://bugs.webkit.org/show_bug.cgi?id=212489

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-05
Reviewed by Darin Adler.

Source/WebCore:

Add some utility functions to MIMETypeRegistry. These new functions will
deal with a list of MIME types combined with a list of file extensions.
They are going to be used the FileChooserSettings which reflects the
'accept' attribute of the <input> file element.

  • platform/MIMETypeRegistry.cpp:

(WebCore::trimmedExtension):
(WebCore::MIMETypeRegistry::preferredImageMIMETypeForEncoding):
(WebCore::MIMETypeRegistry::containsImageMIMETypeForEncoding):

(WebCore::MIMETypeRegistry::allowedMIMETypes):
It returns the set of mime types which is stated by a list of mime types
and a list of file extensions.

(WebCore::MIMETypeRegistry::allowedFileExtensions):
It returns the set of extensions which is stated by a list of mime types
and a list of file extensions.

  • platform/MIMETypeRegistry.h:

Source/WebKit:

Make WKOpenPanelParameters call allowedFileExtensions() and allowedMIMETypes()
of MIMETypeRegistry via OpenPanelParameters.

UIDelegate will get allowedMIMETypes() and pass it to WebOpenPanelResultListenerProxy
which will pass it to WebPageProxy. In a following patch, WebPageProxy
will use allowedMIMETypes to transcode the selected images before sending
them to WebPage.

  • UIProcess/API/APIOpenPanelParameters.cpp:

(API::OpenPanelParameters::allowedMIMETypes const):
(API::OpenPanelParameters::allowedFileExtensions const):
(API::OpenPanelParameters::mediaCaptureType const): Deleted.

  • UIProcess/API/APIOpenPanelParameters.h:

(API::OpenPanelParameters::mediaCaptureType const):

  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:

(-[WKOpenPanelParameters _allowedFileExtensions]):
(-[WKOpenPanelParameters _allowedFileExtensionsTitles]): Deleted.

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

(WebKit::UIDelegate::UIClient::runOpenPanel):

  • UIProcess/WebOpenPanelResultListenerProxy.cpp:

(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):

  • UIProcess/WebOpenPanelResultListenerProxy.h:

(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChooseFilesForOpenPanel):

  • UIProcess/WebPageProxy.h:

Tools:

The scope of this enhancement will be scaled down. No UI change will be
done for now. Only allow HEIF/HEIC images to be selected if the 'accept'
attribute include a mime type which CG supports transcoding the HEIF/HEIC
images to.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[FileExtensionsPopupTarget initWithOpenPanel:allowedFileExtensions:]): Deleted.
(-[FileExtensionsPopupTarget popupAction:]): Deleted.
(-[FileExtensionsPopupTarget dealloc]): Deleted.
(-[WK2BrowserWindowController createFilterView:popupTarget:]): Deleted.

Jul 4, 2020:

6:54 PM Changeset in webkit [263948] by Darin Adler
  • 2 edits in trunk/Source/WTF

[Cocoa] Add almost everything from FeatureDefines.xcconfig to PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=213964

Reviewed by Sam Weinig.

Added logic that matches what FeatureDefines.xcconfig does for everything
except for ENABLE_EXPERIMENTAL_FEATURES.

Changed format so we mostly list platforms where we do not want to enable
a certain feature; also order it pretty consistently macOS, iOS, Mac Catalyst,
watchOS, then tvOS. This format highlights possible mistakes when not enabling
a feature on some platforms in an easier to understand way.

  • wtf/PlatformEnableCocoa.h:

(ENABLE_AIRPLAY_PICKER): List platforms that do *not* enable this.
(ENABLE_APPLE_PAY): All except Mac Catalyst, watchOS, tvOS.
Not sure why disabled in Mac Catalyst, but replicates FeatureDefines.xcconfig.
(ENABLE_APPLE_PAY_REMOTE_UI): List platforms that do *not* enable this.
(ENABLE_AUTOCAPITALIZE): List platforms that do *not* enable this.
(ENABLE_AUTOCORRECT): List platforms that do *not* enable this.
(ENABLE_CONTENT_FILTERING): All except older watchOS simulator and tvOS.
(ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER): Re-sorted this.
(ENABLE_CSS_CONIC_GRADIENTS): All except older macOS and tvOS. The tvOS
exception seems questionable, so added a FIXME.
(ENABLE_DARK_MODE_CSS): All except watchOS and tvOS.
(ENABLE_DATA_INTERACTION): All except macOS, watchOS, and tvOS.
(ENABLE_DATA_DETECTION): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_EDITABLE_REGION): Only iOS.
(ENABLE_ENCRYPTED_MEDIA): All except older macOS and Mac Catalyst.
(ENABLE_FULLSCREEN_API): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_FULL_KEYBOARD_ACCESS): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_GAMEPAD): All except watchOS.
(ENABLE_INPUT_TYPE_DATE): All except macOS, Mac Catalyst, and tvOS.
(ENABLE_INPUT_TYPE_DATETIMELOCAL): Ditto.
(ENABLE_INPUT_TYPE_MONTH): Ditto.
(ENABLE_INPUT_TYPE_TIME): Ditto.
(ENABLE_INPUT_TYPE_WEEK): Ditto.
(ENABLE_MEDIA_CAPTURE): All except macOS.
(ENABLE_MEDIA_SOURCE): All except Mac Catalyst, watchOS, tvOS, and
all simulators.
(ENABLE_MEDIA_STREAM): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_NAVIGATOR_STANDALONE): All iOS family. (Considered writing as
all except macOS, but left like this to match some .cpp code for now.)
(ENABLE_OVERFLOW_SCROLLING_TOUCH): All iOS family.
(ENABLE_PICTURE_IN_PICTURE_API): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_SPEECH_SYNTHESIS): All except Mac Catalyst.
(ENABLE_REVEAL): All except older macOS, watchOS, and tvOS.
(ENABLE_SIGILL_CRASH_ANALYZER): All except macOS and watchOS.
(ENABLE_TAKE_UNBOUNDED_NETWORKING_ASSERTION): All except macOS, watchOS, and tvOS.
(ENABLE_VIDEO_PRESENTATION_MODE): All except simulators and tvOS.
(ENABLE_WEBGPU): All except older macOS, Mac Catalyst, and simulators.
(ENABLE_WEB_API_STATISTICS): Re-sorted this.
(ENABLE_WEB_AUTHN): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_WEB_RTC): All except Mac Catalyst, watchOS, and tvOS.

2:32 PM Changeset in webkit [263947] by Darin Adler
  • 14 edits in trunk

[Cocoa] Remove all features from FeatureDefines.xcconfig that are already mentioned in PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=213962

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

(ENABLE_DRAG_SUPPORT): Before, this was enabled for iOS, iOS simulator, and Mac Catalyst in the
FeatureDefines.xcconfig file, but then disabled for any other iOS family platform here, then enabled
by default in PlatformEnable.h, which covered Mac. Instead, disable here only for watchOS and tvOS,
which gives the same result in a more straightforward way.
(ENABLE_GEOLOCATION): Before, this was enabled for iOS, iOS simulator, Mac Catalyst, and Mac in the
FeatureDefines.xcconfig file, then enabled for any other iOS family platform here. Instead, just
enable here for all Cocoa platforms, which gives the same result in a more straightforward way.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

2:17 PM Changeset in webkit [263946] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][BFC] Move PositiveAndNegativeVerticalMargin to UsedVerticalMargin
https://bugs.webkit.org/show_bug.cgi?id=213963

Reviewed by Antti Koivisto.

Now that UsedVerticalMargin is not used in Display::Box, we can merged these 2 layout structures.

  • layout/MarginTypes.h:

(WebCore::Layout::UsedVerticalMargin::PositiveAndNegativePair::Values::isNonZero const):
(WebCore::Layout::PositiveAndNegativeVerticalMargin::Values::isNonZero const): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

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

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingState.h:

(WebCore::Layout::BlockFormattingState::hasUsedVerticalMargin const):
(WebCore::Layout::BlockFormattingState::setPositiveAndNegativeVerticalMargin): Deleted.
(WebCore::Layout::BlockFormattingState::hasPositiveAndNegativeVerticalMargin const): Deleted.
(WebCore::Layout::BlockFormattingState::positiveAndNegativeVerticalMargin const): Deleted.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::computedPositiveAndNegativeMargin const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginValue const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):

  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeMarginBefore const):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

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

2:09 PM Changeset in webkit [263945] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] Remove redundant out-of-flow height-and-margin handling
https://bugs.webkit.org/show_bug.cgi?id=213959

Reviewed by Antti Koivisto.

We will never end up here with an out-of-flow box.

  • layout/blockformatting/BlockFormattingContext.cpp:

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

1:06 PM Changeset in webkit [263944] by Alexey Shvayka
  • 5 edits
    3 adds in trunk

%TypedArray%.prototype.{indexOf,lastIndexOf} are not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=213715

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/array-prototype-indexOf-empty.js: Added.
  • microbenchmarks/typed-array-indexOf-empty.js: Added.
  • stress/array-indexof-tointeger-order.js: Added.
  • test262/expectations.yaml: Mark 10 test cases as passing.

Source/JavaScriptCore:

This patch:

  1. Implements step 3 of {Array,%TypedArray%}.prototype.indexOf [1] and %TypedArray%.prototype.lastIndexOf [2] since it is observable when second argument is an object with userland toString() or valueOf() method. Advances provided microbenchmark by 100% for Array and by 25% for %TypedArray%.
  1. Removes argument count check from %TypedArray%.prototype.{indexOf,lastIndexOf}, allowing these methods to be invoked w/o arguments. The spec treats missing arguments as undefined, always returning -1 for typed arrays.

Both changes align JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-array.prototype.indexof
[2]: https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

1:06 PM Changeset in webkit [263943] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

[LFC][BFC] Store used vertical margin values in the formatting state
https://bugs.webkit.org/show_bug.cgi?id=213958

Reviewed by Antti Koivisto.

Layout related vertical margin values (collapsed vs. non-collapsed) should all go to the FormattingState, while
Display::Box should only have the final values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):

  • layout/MarginTypes.h:

(WebCore::Layout::marginBefore):
(WebCore::Layout::marginAfter):
(WebCore::Layout::UsedVerticalMargin::before const): Deleted.
(WebCore::Layout::UsedVerticalMargin::after const): Deleted.
(WebCore::Layout::UsedVerticalMargin::isCollapsedThrough const): Deleted.
(WebCore::Layout::UsedVerticalMargin::nonCollapsedValues const): Deleted.
(WebCore::Layout::UsedVerticalMargin::collapsedValues const): Deleted.
(WebCore::Layout::UsedVerticalMargin::hasCollapsedValues const): Deleted.
(WebCore::Layout::UsedVerticalMargin::setCollapsedValues): Deleted.
(WebCore::Layout::UsedVerticalMargin::UsedVerticalMargin): Deleted.

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockFormattingState.h:

(WebCore::Layout::BlockFormattingState::setUsedVerticalMargin):
(WebCore::Layout::BlockFormattingState::usedVerticalMargin const):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

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

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):
(WebCore::Display::Box::nonCollapsedMarginBox const): Deleted.

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::rectWithMargin const):
(WebCore::Display::Box::setHasValidVerticalMargin):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::marginBefore const):
(WebCore::Display::Box::marginAfter const):
(WebCore::Display::Box::VerticalMargin::before const): Deleted.
(WebCore::Display::Box::VerticalMargin::after const): Deleted.
(WebCore::Display::Box::VerticalMargin::isCollapsedThrough const): Deleted.
(WebCore::Display::Box::VerticalMargin::nonCollapsedValues const): Deleted.
(WebCore::Display::Box::VerticalMargin::collapsedValues const): Deleted.
(WebCore::Display::Box::VerticalMargin::hasCollapsedValues const): Deleted.
(WebCore::Display::Box::VerticalMargin::setCollapsedValues): Deleted.
(WebCore::Display::Box::hasCollapsedThroughMargin const): Deleted.
(WebCore::Display::Box::setHasValidVerticalNonCollapsedMargin): Deleted.
(WebCore::Display::Box::VerticalMargin::VerticalMargin): Deleted.
(WebCore::Display::Box::VerticalMargin::NonCollapsedValues::NonCollapsedValues): Deleted.
(WebCore::Display::Box::VerticalMargin::CollapsedValues::CollapsedValues): Deleted.
(WebCore::Display::Box::nonCollapsedMarginBefore const): Deleted.
(WebCore::Display::Box::nonCollapsedMarginAfter const): Deleted.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):
(WebCore::Layout::TableFormattingContext::layoutCell):

12:21 PM Changeset in webkit [263942] by Darin Adler
  • 12 edits in trunk

[Cocoa] Remove unconditional features from FeatureDefines.xcconfig, making sure they are covered in PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=212418

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

12:20 PM Changeset in webkit [263941] by weinig@apple.com
  • 45 edits
    1 delete in trunk

Part 1 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=213948

Reviewed by Darin Adler.

Source/WebCore:

Begin converging SimpleColor and SRGBA<uint8_t>, starting with removing usages that
were getting SimpleColors to access or operate on the color's components.

  • Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>
  • Replace toSRGBALossy() with toSRGBALossy<float>().
  • Remove direct color component accessors from SimpleColor.
  • Add new ARGB type to support explicit conversion from packed ARGB bits to a color type.
  • Update premulitplication functions to operate on SRGBA<uint8_t> and rename them to match existing function operating on SRGBA<float>.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Removes SimpleColor.cpp

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::colorValue const):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::colorValue const):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • css/DeprecatedCSSOMRGBColor.h:

Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::lightness const):
(WebCore::Color::luminance const):
(WebCore::Color::semanticColor const):
(WebCore::Color::toSRGBASimpleColorLossy const): Deleted.
(WebCore::Color::toSRGBALossy const): Deleted.

  • platform/graphics/Color.h:

Remove toSRGBASimpleColorLossy() and templatize toSRGBALossy() to support both
lossy conversion to byte based components as well.

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendSourceOver):
(WebCore::blendWithWhite):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

(WebCore::blend):
(WebCore::blendWithoutPremultiply):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>. Adopt new premultipliedCeiling
and unpremultiplied functions that operate on SRGBA<uint8_t> (rather than SimpleColor) and
clamping conversion to SRGBA<uint8_t> via convertToComponentBytes<SRGBA>. premultipliedCeiling
now works correctly for 0 alpha, so no workaround is needed anymore.

  • platform/graphics/ColorTypes.h:

(WebCore::asARGB):
(WebCore::asSRGBA):
Add new type of color struct representing a format packing. The initial one is ARGB to support
the few places using SimpleColor to manipulate ARGB pixel data.

  • platform/graphics/ColorUtilities.cpp:

(WebCore::unpremultiplied):
(WebCore::premultipliedFlooring):
(WebCore::premultipliedCeiling):
(WebCore::unpremultipliedComponentByte):

  • platform/graphics/ColorUtilities.h:

(WebCore::convertToComponentBytes):
(WebCore::convertToComponentFloats):
Move remaining premultiplication functions here (from SimpleColor.h/cpp) and reimplement
to operate on SRGBA<uint8_t>. Also slightly rename, premultiply -> premultiplied, to
match existing premultiplied functions. While moving them, also fix the premultiplied
functions to better support 0 alpha to avoid workarounds in callers.

Additional, this adds convertToComponentBytes/convertToComponentFloats helper functions
which convert to/from uint8_t/float based color types, and support creating color types
from values potentially outside of their supported value range. Right now, that value
range is always considerer to be 0-255 for uint8_t and 0-1 for float, but that can be
chnaged in the future by allowing color type structs to indicate their supported ranges.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::toSRGBAFloatComponentsLossy const):
(WebCore::ExtendedColor::toSRGBALossy const): Deleted.

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::toSRGBALossy const):
Rename existing toSRGBALossy() to toSRGBAFloatComponentsLossy() and replace templatize
toSRGBALossy(), with the uint8_t case just down converting via new convertToComponentBytes.

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::fillRect):
(WebCore::ImageBackingStore::setPixel):
(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):
Replace usage of SimpleColor with new ARGB type for conversion from ARGB to SRGBA<uint8_t>.
Update to use new premulitplication functions. Also, update the interface to take pixel
components as uint8_t, rather than unsigned, as that is what the callers are passing anyway,
and it avoids us having to clamp/cast manually all over the case.

  • platform/graphics/SimpleColor.cpp: Removed.
  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::alphaComponent const):
(WebCore::SimpleColor::asSRGBA const):
(WebCore::SimpleColor::redComponent const):
(WebCore::SimpleColor::greenComponent const):
(WebCore::SimpleColor::blueComponent const):
(WebCore::operator==):
(WebCore::makeSimpleColor):
Simplify interface, making red, green and blue component accessors private and having
callers all use SRGBA directly. Remove premultiplication functions in favor of new ones
in ColorUtilities.

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

(PlatformCAAnimationWin::setFromValue):
(PlatformCAAnimationWin::setToValue):
(PlatformCAAnimationWin::setValues):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::setSourceRGBAFromColor):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::addColorStopRGBA):
(WebCore::setCornerColorRGBA):
(WebCore::interpolateColorStop):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::platformTransformColorSpace):
Replace usage of SimpleColor with new ARGB type for conversion from ARGB to SRGBA<uint8_t>.
Update to use new premulitplication functions.

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::nativeImageSinglePixelSolidColor):
Replace usage of SimpleColor with new ARGB type for conversion from ARGB to SRGBA<uint8_t>.
Update to use new premulitplication functions.

  • platform/graphics/cpu/arm/filters/FELightingNEON.h:

(WebCore::FELighting::platformApplyNeon):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::operator GdkRGBA const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawNumber):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::clearColor):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::operator D2D1_COLOR_F const):
(WebCore::Color::operator D2D1_VECTOR_4F const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::generateGradient):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawDotsForDocumentMarker):
Replace direct usage component access from SimpleColor with usage of accessed SRGBA<uint8_t>.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::colorWithGlobalAlpha const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::disabledTextColor const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • rendering/RenderThemeIOS.mm:

(WebCore::shouldUseConvexGradient):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • rendering/TextPaintStyle.cpp:

(WebCore::textColorIsLegibleAgainstBackgroundColor):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationColorFunction::animate):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

Source/WebKit:

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorFillFromWebCoreColor):

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::beginSwipeGesture):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::animationValueFromKeyframeValue):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::getDocumentBackgroundColor):
Adapt to use templatized toSRGBALossy<float/uint8_t>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Adapt tests to use templatized toSRGBALossy<float/uint8_t>.

12:17 PM Changeset in webkit [263940] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Remove redundant Display::Box::HorizontalMargin c'tors
https://bugs.webkit.org/show_bug.cgi?id=213957

Reviewed by Antti Koivisto.

Let's just have a very simple Display::Box:HorizontalMargin struct.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContext.cpp:

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

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

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

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::HorizontalMargin::HorizontalMargin): Deleted.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

11:56 AM Changeset in webkit [263939] by svillar@igalia.com
  • 4 edits in trunk

[Flatpak SDK] Require OpenXR 1.0.9
https://bugs.webkit.org/show_bug.cgi?id=213930

Reviewed by Philippe Normand.

.:

Require version 1.0.9 because is the first one that include EGL support for Monado.

  • Source/cmake/OptionsWPE.cmake:

Tools:

  • buildstream/elements/sdk/openxr.bst:
11:37 AM Changeset in webkit [263938] by Alan Bujtas
  • 16 edits in trunk/Source/WebCore

[LFC] Do not cache computed horizontal margin values
https://bugs.webkit.org/show_bug.cgi?id=213956

Reviewed by Antti Koivisto.

Outside of the width + margin computation, computed horizontal margin values are only required by
float positioning. Let's just re-computed them on demand (which is basically just a style.marginStart/end resolve).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):

  • layout/LayoutUnits.h:
  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

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

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::setHasValidVerticalNonCollapsedMargin):
(WebCore::Display::Box::setHasValidHorizontalComputedMargin): Deleted.
(WebCore::Display::Box::ComputedHorizontalMargin::ComputedHorizontalMargin): Deleted.
(WebCore::Display::Box::setHorizontalComputedMargin): Deleted.
(WebCore::Display::Box::computedMarginStart const): Deleted.
(WebCore::Display::Box::computedMarginEnd const): Deleted.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::computedHorizontalMargin):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):

  • layout/floats/FloatingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):
(WebCore::Layout::TableFormattingContext::layoutCell):

10:18 AM Changeset in webkit [263937] by Darin Adler
  • 2 edits in trunk/Tools

Make generate-unified-sources.sh not depend on features being listed in FEATURE_DEFINES environment variable
https://bugs.webkit.org/show_bug.cgi?id=212420

  • Scripts/generate-unified-sources.sh: Removed --feature-flags from the

arguments passed to generate-unified-source-bundles.rb. Also removed many
unneeded quotes.

9:43 AM Changeset in webkit [263936] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][WPE][GTK] Garden post update failures

Unreviewed test gardening.

9:41 AM Changeset in webkit [263935] by Darin Adler
  • 16 edits
    1 add in trunk

Make generate-unified-sources.sh not depend on features being listed in FEATURE_DEFINES environment variable
https://bugs.webkit.org/show_bug.cgi?id=212420

Reviewed by Don Olmstead.

.:

  • Source/cmake/WebKitCommon.cmake: Removed call to SET_CONFIGURATION_FOR_UNIFIED_SOURCE_LISTS.
  • Source/cmake/WebKitFeatures.cmake: Removed SET_CONFIGURATION_FOR_UNIFIED_SOURCE_LISTS.
  • Source/cmake/WebKitMacros.cmake: Removed use of "--feature-flags" when invoking the

generate-unified-source-bundles.rb, which also means no longer depending on the
UNIFIED_SOURCE_LIST_ENABLED_FEATURES variable, which was set by the
SET_CONFIGURATION_FOR_UNIFIED_SOURCE_LISTS function.

Source/JavaScriptCore:

  • Scripts/generate-unified-sources.sh: Removed many unneeded quote marks from the

invocation of generate-unified-source-bundles.rb.

Source/WebCore:

  • Scripts/generate-unified-sources.sh: Added code to include sources from

SourcesCocoaInternalSDK.txt, only if USE_INTERNAL_SDK is YES. Removed --feature-flags
argument from invocation of generate-unified-source-bundles.rb. Removed many
unnecessary quotes.

  • SourcesCocoa.txt: Removed the names of the files from the internal SDK.
  • SourcesCocoaInternalSDK.txt: Added. Moved those names here.
  • html/MediaElementSession.cpp: Added some includes, apparently needed because of different

groupings of unified sources.

Source/WebKit:

  • Scripts/generate-unified-sources.sh: Removed --feature-flags from the

arguments passed to generate-unified-source-bundles.rb. Also removed many
unneeded quotes.

Source/WebKitLegacy:

  • scripts/generate-unified-sources.sh: Removed --feature-flags from the

arguments passed to generate-unified-source-bundles.rb. Also removed many
unneeded quotes.

Source/WTF:

  • Scripts/generate-unified-source-bundles.rb: Removed the --feature-flags

command line option along with the code that implements it.

9:33 AM Changeset in webkit [263934] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Used dedicated paint margin structures
https://bugs.webkit.org/show_bug.cgi?id=213955

Reviewed by Antti Koivisto.

This is in preparation for having only final margin values in Display::Box.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

  • layout/blockformatting/BlockFormattingContext.cpp:

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

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::VerticalMargin::before const):
(WebCore::Display::Box::VerticalMargin::after const):
(WebCore::Display::Box::VerticalMargin::isCollapsedThrough const):
(WebCore::Display::Box::VerticalMargin::nonCollapsedValues const):
(WebCore::Display::Box::VerticalMargin::collapsedValues const):
(WebCore::Display::Box::VerticalMargin::hasCollapsedValues const):
(WebCore::Display::Box::VerticalMargin::setCollapsedValues):
(WebCore::Display::Box::VerticalMargin::VerticalMargin):
(WebCore::Display::Box::VerticalMargin::NonCollapsedValues::NonCollapsedValues):
(WebCore::Display::Box::VerticalMargin::CollapsedValues::CollapsedValues):
(WebCore::Display::Box::ComputedHorizontalMargin::ComputedHorizontalMargin):
(WebCore::Display::Box::HorizontalMargin::HorizontalMargin):
(WebCore::Display::Box::setHorizontalMargin):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setHorizontalComputedMargin):
(WebCore::Display::Box::verticalMargin const):
(WebCore::Display::Box::horizontalMargin const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::FloatItem::horizontalMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

9:04 AM Changeset in webkit [263933] by Lauro Moura
  • 2 edits in trunk/Tools

[WebDriver][WPE] Allow running Selenium tests with the WPE WebDriver
https://bugs.webkit.org/show_bug.cgi?id=213500

Reviewed by Carlos Garcia Campos.

Add missing method used to discover the selenium name of
the WPE webdriver.

Proper gardening/triaging of failures will come in following commits.

  • Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py:

(WebDriverWPE.selenium_name):

6:32 AM Changeset in webkit [263932] by Darin Adler
  • 12 edits in trunk

Update comment in FeatureDefines.xcconfig since PlatformEnableCocoa.h should be used instead
https://bugs.webkit.org/show_bug.cgi?id=213952

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Updated comment.
2:18 AM Changeset in webkit [263931] by youenn@apple.com
  • 13 edits in trunk/Source

Enable VTB required low latency code path
https://bugs.webkit.org/show_bug.cgi?id=210609
<rdar://problem/61890332>

Reviewed by Darin Adler.

Source/ThirdParty/libwebrtc:

Enable low latency mode for latest MacOS and iOS versions.
Add a boolean controlling whether to opt in that code path.
Export the setter to that boolean so that it can be controlled by a WebCore runtime flag.

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

(webrtc::setH264LowLatencyEncoderEnabled):
(webrtc::isH264LowLatencyEncoderEnabled):

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

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

Source/WebCore:

Add new runtime flag for the low latency code path.
Call webrtc newly introduced setter whenever creating a new encoder factory.
Manually tested.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCH264LowLatencyEncoderEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCH264LowLatencyEncoderEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

Source/WebKit:

Add a runtime flag to enable/disable the low latency code path.

  • Shared/WebPreferences.yaml:
Note: See TracTimeline for information about the timeline view.