Timeline



May 30, 2020:

10:54 PM Changeset in webkit [262355] by mark.lam@apple.com
  • 6 edits in trunk/Source

Rename Signal::BadAccess to Signal::AccessFault.
https://bugs.webkit.org/show_bug.cgi?id=212577

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • runtime/VMTraps.cpp:
  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::enableFastMemory):

Source/WTF:

This is needed because GTK port's X11 has a #define for BadAccess (in include/X11/X.h):

#define BadAccess 10 /* depending on context:

  • key/button already grabbed
  • attempt to free an illegal cmap entry
  • attempt to store into a read-only color map entry.
  • attempt to modify the access control list from other than the local host. */

As a result, this would break the GTK build when wtf/Signals.h is #include'd.

  • wtf/threads/Signals.cpp:

(WTF::fromMachException):
(WTF::toMachMask):
(WTF::jscSignalHandler):

  • wtf/threads/Signals.h:

(WTF::toSystemSignal):
(WTF::fromSystemSignal):

8:20 PM Changeset in webkit [262354] by ysuzuki@apple.com
  • 7 edits
    5 adds in trunk

[JSC] for-in should allocate new temporary register for base
https://bugs.webkit.org/show_bug.cgi?id=212519
<rdar://problem/63722044>

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/has-own-property-for-in-loop-with-heap-variable.js: Added.

(assert):
(test1.count):
(test1):

  • microbenchmarks/has-own-property-for-in-loop-with-this.js: Added.

(assert):
(test1.count):
(test1):

  • stress/for-in-body-replace-enumerable.js: Added.

(foo):

  • stress/for-in-enumerable-shadow.js: Added.

(assert):
(test1.count):
(test1):

  • stress/for-in-enumerable-this-arrow.js: Added.

(assert):
(test1):

Source/JavaScriptCore:

While r262233 keeps for-in's enumerated object in variable register if possible to use this register for heuristics driving an optimization,
for-in body can replace the content of this register during enumeration and confuse enumerator.

Instead, we record Variable information in StructureForInContext. This allows us to detect patterns using heap-variables too.
Further, this patch extends pattern-matching code to support ThisNode too.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushStructureForInScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::Variable::Variable):
(JSC::Variable::isResolved const):
(JSC::Variable::symbolTableConstantIndex const):
(JSC::Variable::ident const):
(JSC::Variable::offset const):
(JSC::Variable::isLocal const):
(JSC::Variable::local const):
(JSC::Variable::isReadOnly const):
(JSC::Variable::isSpecial const):
(JSC::Variable::isConst const):
(JSC::Variable::setIsReadOnly):
(JSC::Variable::operator== const):
(JSC::StructureForInContext::StructureForInContext):
(JSC::StructureForInContext::baseVariable const):
(JSC::StructureForInContext::base const): Deleted.

  • bytecompiler/NodesCodegen.cpp:

(JSC::HasOwnPropertyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/Nodes.h:

(JSC::ExpressionNode::isThisNode const):

8:01 PM Changeset in webkit [262353] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix JSC debug tests' exception checking
https://bugs.webkit.org/show_bug.cgi?id=212512

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::createWithLength):
(JSC::JSBigInt::allocateFor):

3:25 PM Changeset in webkit [262352] by weinig@apple.com
  • 18 edits in trunk

Extended Color: Additional color cleanups
https://bugs.webkit.org/show_bug.cgi?id=212567

Reviewed by Simon Fraser.

Source/WebCore:

A few unrelated quality-of-life cleanups to Color and related classes:

  • Rename Color::asSimpleColor() to Color::asSimple() for parity with Color::asExtended().
  • Move SimpleColor implementations of invertedColorWithAlpha() and asSRGBFloatComponents() to SimpleColor for parity with ExtenedColor.
  • Rename ExtendedColor::channels() to ExtendedColor::components() to consistency.
  • Adds operator[] to ColorComponents to allow direct access to components rather than requiring and additional .components[]
  • Using std::minmax() where possible.
  • Renaming colorFloatToSimpleColorByte to scaleRoundAndClampColorChannel to have a consistent naming and location of conversion to 8-bit color channels.
  • platform/graphics/Color.cpp:

(WebCore::Color::serialized const):
(WebCore::Color::cssText const):
(WebCore::Color::nameForRenderTreeAsText const):
(WebCore::Color::light const):
(WebCore::Color::dark const):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const):
(WebCore::Color::invertedColorWithAlpha const):
(WebCore::Color::colorSpaceAndComponents const):
(WebCore::Color::toSRGBASimpleColorLossy const):
(WebCore::Color::toSRGBAComponentsLossy const):

  • platform/graphics/Color.h:

(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alpha const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::asSimple const):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::asSimpleColor const): Deleted.

  • platform/graphics/ColorComponents.h:

(WebCore::ColorComponents::operator[]):
(WebCore::ColorComponents::operator[] const):
(WebCore::=):
(WebCore::perComponentMax):
(WebCore::perComponentMin):

  • platform/graphics/ColorMatrix.h:

(WebCore::Rows>::transformedColorComponents const):

  • platform/graphics/ColorUtilities.cpp:

(WebCore::areEssentiallyEqual):
(WebCore::rgbToLinearComponents):
(WebCore::linearToRGBComponents):
(WebCore::lightness):
(WebCore::luminance):
(WebCore::sRGBToHSL):
(WebCore::hslToSRGB):

  • platform/graphics/ColorUtilities.h:

(WebCore::scaleRoundAndClampColorChannel):
(WebCore::scaleRoundAndClampColorChannelUsingAlternativeRounding):
(WebCore::colorFloatToSimpleColorByte): Deleted.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::hash const):
(WebCore::ExtendedColor::cssText const):
(WebCore::ExtendedColor::colorWithAlpha const):
(WebCore::ExtendedColor::invertedColorWithAlpha const):
(WebCore::ExtendedColor::toSRGBAComponentsLossy const):
(WebCore::ExtendedColor::isWhite const):
(WebCore::ExtendedColor::isBlack const):

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::alpha const):
(WebCore::ExtendedColor::components const):
(WebCore::ExtendedColor::ExtendedColor):
(WebCore::operator==):
(WebCore::ExtendedColor::channels const): Deleted.

  • platform/graphics/SimpleColor.cpp:

(WebCore::makeSimpleColorFromFloats):
(WebCore::makeSimpleColorFromHSLA):

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor):
(WebCore::SimpleColor::valueAsARGB const):
(WebCore::SimpleColor::colorWithAlpha const):
(WebCore::SimpleColor::invertedColorWithAlpha const):
(WebCore::SimpleColor::asSRGBFloatComponents const):
(WebCore::makeSimpleColor):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::toIntBasedColorComponents):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicComponentTransferFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Update for rename from ExtendedColor::channels() to ExtendedColor::components()

2:09 PM Changeset in webkit [262351] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

AssemblyHelpers::callExceptionFuzz() is passing a wrong argument to operationExceptionFuzz().
https://bugs.webkit.org/show_bug.cgi?id=212561

Reviewed by Yusuke Suzuki.

There's 2 possible solution to this issue:

  1. Thread the globalObject from all the way up the clients calling into callExceptionFuzz(), or
  2. Introduce a operationExceptionFuzzWithCallFrame() wrapper take receives a VM* and CallFrame*, and use these to get the lexicalGlobalObject.

This patch applies solution 2.

Solution 1 is too unwieldy because it will cause the threading of the globalObject
argument to fan out to many clients, and almost all of those clients currently
do not need the globalObject. Hence, implementing this solution may incur some
performance penalty in normal code, for the sole benefit of this one fuzzing tool.

Secondly, the exception fuzzer doesn't really care which globalObject is used.
It only cares that an exception is thrown, and we need a globalObject in order to
throw that exception. Hence, there is no benefit to threading the globalObject
down from all the clients.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::callExceptionFuzz):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
12:15 PM Changeset in webkit [262350] by commit-queue@webkit.org
  • 23 edits
    1 delete in trunk

Unreviewed, reverting r262335.
https://bugs.webkit.org/show_bug.cgi?id=212571

Triggered assertions in WebKit1

Reverted changeset:

"Disallow responses when a response contains invalid header
values"
https://bugs.webkit.org/show_bug.cgi?id=184493
https://trac.webkit.org/changeset/262335

12:14 PM Changeset in webkit [262349] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

For scroll container and scrolled contents layers, use the renderer style to set up the event regions
https://bugs.webkit.org/show_bug.cgi?id=212570

Reviewed by Antti Koivisto.

RenderLayerBacking::updateEventRegion() sets up event regions on the scroll container and scrolled contents
layer using the default style, in order to fill up the m_region part of EventRegion, but we might as well
pass the renderer style so that it fills up the touch-action and wheel event regions as well.

Also re-use the existing event region trace points for region building.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

10:42 AM Changeset in webkit [262348] by aestes@apple.com
  • 5 edits in trunk

[Apple Pay] Support percentage border-radius values in -apple-pay-button
https://bugs.webkit.org/show_bug.cgi?id=212559
<rdar://problem/63781881>

Reviewed by Antti Koivisto.

Source/WebCore:

Added test cases to fast/css/appearance-apple-pay-button-border-radius.html.

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton): Used floatValueForLength() to ensure
percentage lengths are resolved before passing a corner radius to PassKit.

LayoutTests:

  • fast/css/appearance-apple-pay-button-border-radius-expected.html:
  • fast/css/appearance-apple-pay-button-border-radius.html:
10:38 AM Changeset in webkit [262347] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

REGRESSION (r262332): Windows build failure because <nw/private.h> doesn't exist
<https://bugs.webkit.org/show_bug.cgi?id=212551>
<rdar://problem/62461099>

Unreviewed Windows build fix.

  • pal/spi/cf/CFNetworkSPI.h:
  • Move <nw/private.h> so it is not included with PLATFORM(WIN).
  • Add or clean up some macro comments.
9:29 AM Changeset in webkit [262346] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Deprecate WKBundlePostSynchronousMessage
https://bugs.webkit.org/show_bug.cgi?id=212536

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-30
Reviewed by Anders Carlsson.

  • WebProcess/InjectedBundle/API/c/WKBundle.h:
5:08 AM Changeset in webkit [262345] by Diego Pino Garcia
  • 1 edit
    2 adds in trunk/LayoutTests

[GLIB] Unreviewed gardening, update baseline after r262169
https://bugs.webkit.org/show_bug.cgi?id=212566

r262169 modifies Objective-C code and the general expected file. The
change only affected Mac ports. GTK and WPE ports keep expecting the former
result, so a new baseline is emitted for these ports.

  • platform/glib/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-negative-time-expected.txt: Added.
4:58 AM Changeset in webkit [262344] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests/imported/w3c

Unreviewed gardening, update offscreen-canvas baselines after r262254
https://bugs.webkit.org/show_bug.cgi?id=212563

  • web-platform-tests/offscreen-canvas/image-smoothing/image.smoothing-expected.txt:
  • web-platform-tests/offscreen-canvas/image-smoothing/image.smoothing.worker-expected.txt:
  • web-platform-tests/offscreen-canvas/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt:
12:55 AM Changeset in webkit [262343] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK] WebDriver: stop using GdkEvent API in preparation for GTK4
https://bugs.webkit.org/show_bug.cgi?id=212465

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Use the new internal API to synthesize events.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeKeyEvent): Add type parameter, since WebDriver can send press and release events
separately. Also add a parameter to indicate that keyval should be translated according to current state that is
required by WebDriver.

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::documentLoadedForFrame): Call resetClickCount().
(WebKit::WebAutomationSession::updateClickCount): Update the click count for the given button position and
maximum time and distance.
(WebKit::WebAutomationSession::resetClickCount): Reset the click count.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction): Use webkitWebViewBaseSynthesizeMouseEvent().
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): Use webkitWebViewBaseSynthesizeKeyEvent().
(WebKit::WebAutomationSession::platformSimulateKeySequence): Ditto.
(WebKit::doMouseEvent): Deleted.
(WebKit::doMotionEvent): Deleted.
(WebKit::doKeyStrokeEvent): Deleted.

  • UIProcess/gtk/KeyBindingTranslator.cpp: Add missing key shortcuts to predefined list.

Tools:

Update to the new webkitWebViewBaseSynthesizeKeyEvent() API.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::keyDown):

WebDriverTests:

Remove expectations for tests that are passing now.

12:46 AM Changeset in webkit [262342] by ysuzuki@apple.com
  • 17 edits
    1 copy in trunk

[JSC] JSBigInt allocation should be graceful for OOM
https://bugs.webkit.org/show_bug.cgi?id=212512

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-can-throw-oom.js: Copied from JSTests/stress/get-function-realm-not-doing-recursion.js.

(canThrow):
(foo):
(get foo):

  • stress/get-function-realm-not-doing-recursion.js:

(canThrow):

Source/JavaScriptCore:

This patch allows JSBigInt's storage allocation to fail gracefully if OOM condition happens.
We thread JSGlobalObject* instead of VM& and throw OOM error if storage allocation failed.
We also rename JSGlobalObject* globalObject parameter to JSGlobalObject* nullOrGlobalObjectForOOM
if it can be nullptr.

  • jit/JITOperations.cpp:
  • jsc.cpp:

(functionCreateHeapBigInt):

  • parser/ParserArena.cpp:

(JSC::IdentifierArena::makeBigIntDecimalIdentifier):

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::callBigIntConstructor):

  • runtime/BigIntPrototype.cpp:

(JSC::toThisBigIntValue):
(JSC::bigIntProtoFuncToString):
(JSC::bigIntProtoFuncToLocaleString):
(JSC::bigIntProtoFuncValueOf):

  • runtime/CachedTypes.cpp:

(JSC::CachedBigInt::decode const):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatFuncFormat):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::createZero):
(JSC::JSBigInt::tryCreateZero):
(JSC::JSBigInt::createWithLength):
(JSC::JSBigInt::tryCreateWithLength):
(JSC::JSBigInt::createFrom):
(JSC::JSBigInt::tryCreateFrom):
(JSC::JSBigInt::createFromImpl):
(JSC::JSBigInt::parseInt):
(JSC::HeapBigIntImpl::toHeapBigInt):
(JSC::Int32BigIntImpl::toHeapBigInt):
(JSC::zeroImpl):
(JSC::JSBigInt::exponentiateImpl):
(JSC::JSBigInt::multiplyImpl):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::copy):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::unaryMinus):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::incImpl):
(JSC::JSBigInt::decImpl):
(JSC::JSBigInt::addImpl):
(JSC::JSBigInt::subImpl):
(JSC::JSBigInt::bitwiseAndImpl):
(JSC::JSBigInt::bitwiseOrImpl):
(JSC::JSBigInt::bitwiseXorImpl):
(JSC::JSBigInt::absoluteAdd):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::absoluteDivWithDigitDivisor):
(JSC::JSBigInt::absoluteDivWithBigIntDivisor):
(JSC::JSBigInt::absoluteLeftShiftAlwaysCopy):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAnd):
(JSC::JSBigInt::absoluteOr):
(JSC::JSBigInt::absoluteAndNot):
(JSC::JSBigInt::absoluteXor):
(JSC::JSBigInt::absoluteAddOne):
(JSC::JSBigInt::absoluteSubOne):
(JSC::JSBigInt::leftShiftByAbsolute):
(JSC::JSBigInt::rightShiftByAbsolute):
(JSC::JSBigInt::rightShiftByMaximum):
(JSC::JSBigInt::toStringBasePowerOfTwo):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::rightTrim):
(JSC::JSBigInt::tryRightTrim):
(JSC::JSBigInt::allocateFor):
(JSC::JSBigInt::asIntNImpl):
(JSC::JSBigInt::asUintNImpl):
(JSC::JSBigInt::truncateToNBits):
(JSC::JSBigInt::truncateAndSubFromPowerOfTwo):
(JSC::JSBigInt::createWithLengthUnchecked): Deleted.

  • runtime/JSBigInt.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toThisSlowCase const):

  • runtime/VM.cpp:

(JSC::VM::VM):

Source/WebCore:

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readBigInt):

May 29, 2020:

11:59 PM Changeset in webkit [262341] by commit-queue@webkit.org
  • 10 edits in trunk

Use correct encoding when converting a WTF::URL to CFURLRef
https://bugs.webkit.org/show_bug.cgi?id=212486

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

Source/WebKit:

  • Shared/API/c/cf/WKURLCF.mm:

(WKURLCopyCFURL):

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

Source/WTF:

  • wtf/cf/CFURLExtras.cpp:

(WTF::createCFURLFromBuffer):

  • wtf/cf/CFURLExtras.h:
  • wtf/cf/URLCF.cpp:

(WTF::URL::createCFURL const):

  • wtf/cocoa/URLCocoa.mm:

(WTF::URL::createCFURL const):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

11:37 PM Changeset in webkit [262340] by ysuzuki@apple.com
  • 3 edits
    3 adds in trunk/JSTests

[JSC] Split some of JSC tests / reduce iteration count to make it not timed-out in Debug build
https://bugs.webkit.org/show_bug.cgi?id=212557

Reviewed by Mark Lam.

  • stress/should-not-emit-double-rep-for-bigint.js: Ensured that this iteration count can reproduce the original crash.
  • stress/tailCallForwardArguments.js: Split tests into 4 files.

(let.bodyText): Deleted.
(baz4): Deleted.
(testFunc): Deleted.
(baz5): Deleted.
(baz6): Deleted.
(arrayEq): Deleted.

  • stress/tailCallForwardArguments2.js: Added.

(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
(putFuncToPrivateName):
(let.bodyText):
(baz4):

  • stress/tailCallForwardArguments3.js: Added.

(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
(putFuncToPrivateName):
(let.bodyText):
(testFunc):
(baz5):

  • stress/tailCallForwardArguments4.js: Added.

(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
(let.bodyText):
(putFuncToPrivateName):
(baz6):
(arrayEq):

11:28 PM Changeset in webkit [262339] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

Add debug alerts to xhr tests
https://bugs.webkit.org/show_bug.cgi?id=212555

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-29
Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/event-error-order.sub.html:
  • web-platform-tests/xhr/send-authentication-basic-cors.htm:
  • web-platform-tests/xhr/send-network-error-async-events.sub.htm:

LayoutTests:

These should not be upstreamed, but they are needed to help diagnose what is happening in rdar://problem/63684261

  • platform/mac-wk1/imported/w3c/web-platform-tests/xhr/event-error-order.sub-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-authentication-basic-cors-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-network-error-async-events.sub-expected.txt:
9:39 PM Changeset in webkit [262338] by sbarati@apple.com
  • 8 edits
    1 add in trunk

We need to properly model heap ranges of Delete in DFG/B3
https://bugs.webkit.org/show_bug.cgi?id=212538
<rdar://problem/63670964>

Reviewed by Filip Pizlo.

JSTests:

  • stress/delete-inlining-should-model-aliasing-of-future-stores.js: Added.

Source/JavaScriptCore:

We need to properly model the aliasing dependencies of an inlined delete
operation.

We had a bug in the B3 IR we generated from code like this for a delete
followed by a property addition:
`
const o = { y: 0 };
delete o.y;
o.z = 0;
`

generated:

`
note: bb#5 dominates bb#10, bb#10 dominates bb#15

bb#5
Void b@125 = Store($-562949953421312(b@282), b@112, offset = 16, ControlDependent|Writes:129, D@30)
bb#10
Void b@171 = Store($0(b@2), b@112, offset = 16, ControlDependent|Writes:129, D@37)
bb#15
Void b@217 = Store($-562949953421312(b@282), b@112, offset = 16, ControlDependent|Writes:130, D@44)
`

Notice that "y" and "z" ended up at the same property offset.

In the above program, B3 proves the pointer we're storing to is the same value
in all three stores (b@112). However, because of how it does store forwarding,
it determined it could eliminate b@217 because b@125 already stored the same
value to the same pointer. It didn't know that b@171 was a write because its
heap range is different than @217. Generally, when using two heap ranges, it's
telling B3 that two pointers don't alias.
`
@A, Heap_H
@B, Heap_H
`
In the above program,

  • If @B reads H and @A writes H, then @B is dependent on @A.
  • If @B writes H, then @B is dependent on @A if @A reads or writes H.

So for delete, we need to model the deletion of a property as actually
writing to all named properties that may exist at that slot given a
series of structure transitions. We model this by saying the PutStructure
for an inlined delete, or MultiDeleteByOffset, writes to all named properties
(which is a superset of all named properties that may exist at that slot
through a series of transitions).

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • ftl/FTLAbstractHeap.cpp:

(JSC::FTL::IndexedAbstractHeap::dump):
(JSC::FTL::NumberedAbstractHeap::dump):
(JSC::FTL::AbsoluteAbstractHeap::dump):
(JSC::FTL::IndexedAbstractHeap::dump const): Deleted.
(JSC::FTL::NumberedAbstractHeap::dump const): Deleted.
(JSC::FTL::AbsoluteAbstractHeap::dump const): Deleted.

  • ftl/FTLAbstractHeap.h:

(JSC::FTL::IndexedAbstractHeap::atAnyIndex):
(JSC::FTL::NumberedAbstractHeap::atAnyNumber):
(JSC::FTL::AbsoluteAbstractHeap::atAnyAddress):
(JSC::FTL::IndexedAbstractHeap::atAnyIndex const): Deleted.
(JSC::FTL::NumberedAbstractHeap::atAnyNumber const): Deleted.
(JSC::FTL::AbsoluteAbstractHeap::atAnyAddress const): Deleted.

  • ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutStructure):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiDeleteByOffset):

9:30 PM Changeset in webkit [262337] by Simon Fraser
  • 4 edits
    2 adds in trunk

Event region painting should use the same paint flags as normal painting
https://bugs.webkit.org/show_bug.cgi?id=212547

Reviewed by Sam Weinig.

Source/WebCore:

There are cases (see r260118) where we need to send down the correct paint flags when
painting the scrolled contents layer to avoid unwanted clipping. We need to send down
the one paint flag relevant for event region paints, CompositedOverflowScrollContent,
for the same reasons.

I could not make a testcase that shows a behavior change, but I did copy the testcase
from r260118 and adapt it for event-region generation to detect future behavior changes.

Test: fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-clipped-out.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::collectEventRegionForFragments):

  • rendering/RenderLayer.h:

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-clipped-out-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-clipped-out.html: Added.
9:30 PM Changeset in webkit [262336] by Simon Fraser
  • 4 edits
    2 adds in trunk

Elements with wheel event handlers inside overflow:scroll are missing from the event region
https://bugs.webkit.org/show_bug.cgi?id=212545

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderBlock::paintObject() needs to traverse into descendants if there are are
wheel event handlers on the document, just as it does for elements with touch-action.

Test: fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll.html

  • dom/Document.h:

(WebCore::Document::hasTouchEventHandlers const):
(WebCore::Document::hasWheelEventHandlers const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-scroll.html: Added.
8:52 PM Changeset in webkit [262335] by commit-queue@webkit.org
  • 23 edits
    11 adds in trunk

Disallow responses when a response contains invalid header values
https://bugs.webkit.org/show_bug.cgi?id=184493

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-29
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update improved test results and import fetch/h1-parsing.

  • web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • web-platform-tests/fetch/api/basic/header-value-null-byte.any-expected.txt:
  • web-platform-tests/fetch/api/basic/header-value-null-byte.any.worker-expected.txt:
  • web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window-expected.txt: Added.
  • web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.html: Added.
  • web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.js: Added.

(async_test.t.t.step_timeout):

  • web-platform-tests/fetch/h1-parsing/resources/README.md: Added.
  • web-platform-tests/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis: Added.
  • web-platform-tests/fetch/h1-parsing/resources/document-with-0x00-in-header.py: Added.

(main):

  • web-platform-tests/fetch/h1-parsing/resources/script-with-0x00-in-header.py: Added.

(main):

  • web-platform-tests/fetch/h1-parsing/resources/w3c-import.log: Added.
  • web-platform-tests/fetch/h1-parsing/w3c-import.log: Added.
  • web-platform-tests/xhr/headers-normalize-response-expected.txt:

Source/WebCore:

From the Fetch specification [1]:
"A value is a byte sequence that matches the following conditions:
"- Contains no 0x00 (NUL) or HTTP newline bytes."

[1] https://fetch.spec.whatwg.org/#concept-header-value

Tests: imported/w3c/web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.html

imported/web-platform-tests/fetch/api/basic/header-value-combining.any.html
imported/web-platform-tests/fetch/api/basic/header-value-combining.any.worker.html
imported/web-platform-tests/fetch/api/basic/header-value-null-byte.any.html
imported/web-platform-tests/fetch/api/basic/header-value-null-byte.any.worker.html
imported/web-platform-tests/xhr/headers-normalize-response.htm

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::canWriteHeader):
(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::filterAndFill):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::containsInvalidHTTPHeaders const):

  • platform/network/ResourceResponseBase.h:

LayoutTests:

Update improved test results.

  • platform/glib/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
8:27 PM Changeset in webkit [262334] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Replace callOnMainThread() with callOnMainRunLoop() in AudioSessionRoutingArbitratorProxyCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=212553

Reviewed by Chris Dumez.

Use callOnMainRunLoop() instead of callOnMainThread() in the UIProcess. Also move
m_setupArbitrationOngoing flag to the end of the completion handler.

No new tests, no functional change.

  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):

7:10 PM Changeset in webkit [262333] by Oriol Brufau
  • 6 edits in trunk/LayoutTests

[css-grid] Update WPT grid-items-sizing-alignment-001.html
https://bugs.webkit.org/show_bug.cgi?id=169271

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import updated test and expectation.

  • web-platform-tests/css/css-grid/grid-items/grid-items-sizing-alignment-001-expected.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-sizing-alignment-001.html:

LayoutTests:

Expect the test to pass, except on iOS (bug 212493).

6:19 PM Changeset in webkit [262332] by Brent Fulgham
  • 6 edits in trunk/Source

[Cocoa] Improve logging quality for non-ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=212551
<rdar://problem/62461099>

Reviewed by David Kilzer.

Source/WebCore/PAL:

Add support for the 'nw_context_privacy_level' setting.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

In Bug 209522 I switched normal mode logging to use the same privacy-protecting mode we use for ephemeral sessions.
This had the unintended consequence of removing network load data used to investigate networking issues.

This patch adopts the more fine-grained logging provided by the low-level 'nw_context_privacy_level' setting.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID): Adopt 'nw_context_privacy_level' setting.

Source/WTF:

  • wtf/PlatformHave.h: Add new feature check for CFNetwork convenience setter.
6:08 PM Changeset in webkit [262331] by aestes@apple.com
  • 34 edits in trunk

[Apple Pay] Remove conditionals for ENABLE_APPLE_PAY_SESSION_V(3|4)
https://bugs.webkit.org/show_bug.cgi?id=212541

Reviewed by Darin Adler.

APPLE_PAY_SESSION_V(3|4) is now enabled whenever APPLE_PAY itself is enabled.

.:

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

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • Modules/applepay/ApplePayError.idl:
  • Modules/applepay/ApplePayPaymentAuthorizationResult.idl:
  • Modules/applepay/ApplePayPaymentContact.idl:
  • Modules/applepay/ApplePayPaymentMethodUpdate.idl:
  • Modules/applepay/ApplePayRequestBase.idl:
  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePayShippingContactUpdate.idl:
  • Modules/applepay/ApplePayShippingMethodUpdate.idl:
  • Modules/applepay/PaymentCoordinatorClient.cpp:

(WebCore::PaymentCoordinatorClient::supportsVersion):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::computePaymentMethodErrors const):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::applePayButtonDescription const):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • rendering/RenderThemeCocoa.mm:

(WebCore::toPKPaymentButtonType):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:42 PM Changeset in webkit [262330] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r260306): Compatibility issue leading to crash on macOS games
<https://webkit.org/b/212546>
<rdar://problem/62624078>

Reviewed by Brent Fulgham.

  • WebView/WebView.mm:

(_WebSafeForwarder._target):
(_WebSafeForwarder._defaultTarget):

  • Change weak attribute to unsafe_unretained to fix the crash.
5:03 PM Changeset in webkit [262329] by Alan Coon
  • 8 edits in branches/safari-610.1.15.1-branch/Source

Versioning.

4:57 PM Changeset in webkit [262328] by sbarati@apple.com
  • 5 edits in trunk

Skip a few more JSC tests when $memoryLimited
https://bugs.webkit.org/show_bug.cgi?id=212552

Reviewed by Mark Lam.

JSTests:

  • stress/call-varargs-inlining-should-not-clobber-previous-to-free-register.js:
  • stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:

LayoutTests:

  • js/script-tests/stack-overflow-regexp.js:
4:56 PM Changeset in webkit [262327] by dino@apple.com
  • 1 edit in trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm

Use ALLOW_DEPRECATED_DECLARATIONS_BEGIN instead (thanks to mitz)

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):

4:47 PM Changeset in webkit [262326] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

iOS build fix.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):

4:16 PM Changeset in webkit [262325] by Alan Coon
  • 1 copy in branches/safari-610.1.15.1-branch

New branch.

4:16 PM Changeset in webkit [262324] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

[EME] navigator.requestMediaKeySystemAccess() should reject PUR sessionTypes in private browsing mode.
https://bugs.webkit.org/show_bug.cgi?id=212540
<rdar://problem/61125757>

Reviewed by Eric Carlson.

Source/WebCore:

A MediaKeySystemAccess with a PUR session type will never be able to create media keys when created in
private browsing mode. Allow clients to fail over to non-PUR session by rejecting the promise returned by
requestMediaKeySystemAccess() when in private browsing mode.

Test: platform/mac/media/encrypted-media/fps-ephemeral-requestMediaKeySystemAccess.html

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::getSupportedConfiguration):

LayoutTests:

  • platform/mac/media/encrypted-media/fps-ephemeral-requestMediaKeySystemAccess-expected.txt: Added.
  • platform/mac/media/encrypted-media/fps-ephemeral-requestMediaKeySystemAccess.html: Added.
4:09 PM Changeset in webkit [262323] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[iOS] Unable to paste images when composing mail at yahoo.com
https://bugs.webkit.org/show_bug.cgi?id=212544
<rdar://problem/63511613>

Reviewed by Megan Gardner and Andy Estes.

When pasting images in the mobile version of the mail compose editor on mail.yahoo.com, mail.yahoo.com's script
handles the paste by allowing images to be inserted into the DOM (i.e. by not preventing the "paste" event), and
then stripping away the src attribute of the pasted image afterwards. This leaves behind a blank space in the
email.

Work around this by avoiding images when converting the contents of the pasteboard into web content on iOS.
Instead, we fall back to inserting (sanitized) text, or nothing at all if there is no other representation
suitable for converting into web content.

Unfortunately, the mobile version of the website is loaded on iPad as well, even when the desktop website has
been requested (through sending the macOS user agent and "MacIntel" navigator platform).

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentReader::readImage):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAvoidPastingImagesAsWebContent const):

  • page/Quirks.h:
4:03 PM Changeset in webkit [262322] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Mac,WK2] Fullscreen animation missing a few frames at beginning
https://bugs.webkit.org/show_bug.cgi?id=212156
<rdar://problem/54799415>

Reviewed by Eric Carlson.

When starting the enter fullscreen animation, ensure that the fullscreen window is ordered front, and on top
of the content, as well as having all the animations configured so that their starting state is in place before
calling -[NSWindow enterFullscreenMode:]. Move all the window creation code into
-beganEnterFullScreenWithInitialFrame:finalFrame: from _startEnterFullScreenAnimationWithDuration:. Re-use the
existing zoomAnimation() and maskAnimation() utility methods, but give the animations a very long duration
(since there is no explicit way to start and stop a CAAnimation). This initial animation will be replaced with
the final one inside -_startEnterFullScreenAnimationWithDuration:. Separately, explictly disable implicit
animations of the fullscreen window during -orderIn: and -orderOut:.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController initWithWindow:webView:page:impl:]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):

3:35 PM Changeset in webkit [262321] by commit-queue@webkit.org
  • 10 edits in trunk

[GTK][WPE] API for WebView audio mute support
https://bugs.webkit.org/show_bug.cgi?id=176119

Patch by Jan-Michael Brummer <jan.brummer@tabos.org> on 2020-05-29
Reviewed by Michael Catanzaro.

Source/WebKit:

Test implemented in TestWebKitWebView.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_set_is_muted):
(webkit_web_view_is_muted):

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isAudioMuted const):

Tools:

  • MiniBrowser/gtk/BrowserTab.c:

(audioClicked):
(audioMutedChanged):
(browserTabConstructed):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewIsAudioMuted):
(beforeAll):

3:02 PM Changeset in webkit [262320] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.1

Tag Safari-610.1.15.1.

2:58 PM Changeset in webkit [262319] by Devin Rousso
  • 1 edit
    2 adds in trunk/LayoutTests

Web Inspector: add test for protocol "condition" logic
https://bugs.webkit.org/show_bug.cgi?id=212497

Reviewed by Brian Burg.

  • inspector/protocol/condition.html: Added.
  • inspector/protocol/condition-expected.txt: Added.
2:24 PM Changeset in webkit [262318] by Darin Adler
  • 12 edits in trunk

Remove things from FeatureDefines.xcconfig that are covered by PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=212418

2:13 PM Changeset in webkit [262317] by Peng Liu
  • 2 edits in trunk/Source/WebKit

ASSERT NOT REACHED in IPC::takeAsyncReplyHandler under WebKit::AudioSessionRoutingArbitrator::beginRoutingArbitrationWithCategory
https://bugs.webkit.org/show_bug.cgi?id=212533

Reviewed by Chris Dumez.

When the m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting flag is set,
sendWithAsyncReply() may actually send the message synchronously. Therefore, we have
to set the async reply handler before actually sending the message.

No new tests, fixing test crashes due to assertion failures.

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithAsyncReply):

2:06 PM Changeset in webkit [262316] by Jacob Uphoff
  • 5 edits in trunk/Source/WebCore

Unreviewed, reverting r262289.

This commit caused a test to crash internally

Reverted changeset:

"MediaPlayerPrivateMediaStreamAVFObjC should enqueue samples
in a background thread"
https://bugs.webkit.org/show_bug.cgi?id=212073
https://trac.webkit.org/changeset/262289

1:28 PM Changeset in webkit [262315] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Win] Allow compiling with the TOUCH_EVENTS enabled
https://bugs.webkit.org/show_bug.cgi?id=212528

Patch by Pavel <pavel.feldman@gmail.com> on 2020-05-29
Reviewed by Fujii Hironori.

Aligning Win with GTK, adding missing EventSenderProxy stubs.
This allows compiling Win with TOUCH_EVENTS and unlocks event
injection / processing by the automation drivers

  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::EventSenderProxy::addTouchPoint):
(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::setTouchModifier):
(WTR::EventSenderProxy::setTouchPointRadius):
(WTR::EventSenderProxy::touchStart):
(WTR::EventSenderProxy::touchMove):
(WTR::EventSenderProxy::touchEnd):
(WTR::EventSenderProxy::touchCancel):
(WTR::EventSenderProxy::clearTouchPoints):
(WTR::EventSenderProxy::releaseTouchPoint):
(WTR::EventSenderProxy::cancelTouchPoint):

1:23 PM Changeset in webkit [262314] by Alan Coon
  • 8 edits in branches/safari-610.1.15-branch/Source

Versioning.

1:13 PM Changeset in webkit [262313] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/service-worker-different-process.https.html & http/wpt/service-workers/service-worker-crashing-while-fetching.https.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=212532

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:06 PM Changeset in webkit [262312] by Chris Dumez
  • 223 edits
    22 copies
    4 moves
    243 adds
    2 deletes in trunk/LayoutTests

Update web-platform-tests/tools from upstream
https://bugs.webkit.org/show_bug.cgi?id=212498

Reviewed by Carlos Alberto Lopez Perez.

Update web-platform-tests/tools from upstream 6a76a185f913e3c027e369a.

  • web-platform-tests/tools/*: Updated.
12:47 PM Changeset in webkit [262311] by Darin Adler
  • 12 edits in trunk

Remove things from FeatureDefines.xcconfig that are covered by PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=212418

Reviewed by Andy Estes.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things defined in

this file. There are 36 more that are slightly more complex that we can remove
carefully later.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things defined in

this file. There are 36 more that are slightly more complex that we can remove
carefully later.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things defined in

this file. There are 36 more that are slightly more complex that we can remove
carefully later.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things defined in

this file. There are 36 more that are slightly more complex that we can remove
carefully later.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things defined in

this file. There are 36 more that are slightly more complex that we can remove
carefully later.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things

defined in this file. There are 36 more that are slightly more complex that we can
remove carefully later.

12:04 PM Changeset in webkit [262310] by Darin Adler
  • 8 edits
    2 deletes 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

Source/WebCore:

Currently any #if in the Sources.txt and SourcesCocoa.txt files can check only features
defined in the FeatureDefines.xcconfig file, which sets up the FEATURE_DEFINES environment
variable. Instead, we'd like to pass in all the things defined in the Platform.h headers
as well. We accomplish that using the FEATURE_AND_PLATFORM_DEFINES variable from the
DerivedSources.make file. This was the last place using FEATURE_DEFINES directly, so it
frees us up to reduce FeatureDefines.xcconfig and move feature definitions to
PlatformEnableCocoa.h instead, which will be less repetitive.

Reviewed by Andy Estes.

  • Configurations/GenerateUnifiedSources.xcconfig: Deleted.
  • DerivedSources-input.xcfilelist: Updated.
  • DerivedSources-output.xcfilelist: Updated.
  • DerivedSources.make: Added a rule to invoke generate-unified-sources.sh, passing

FEATURE_AND_PLATFORM_DEFINES.

  • Scripts/generate-unified-sources.sh: Removed hard-coded use of FEATURE_DEFINES.
  • UnifiedSources-output.xcfilelist: Deleted.
  • WebCore.xcodeproj/project.pbxproj: Removed Generate Unified Sources build step,

since it's now part of Generate Derived Sources.

Tools:

Reviewed by Andy Estes.

  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(WebCoreGenerator._get_generate_derived_sources_script): Removed the code
to generate UnifiedSources-output.xcfilelist.

12:01 PM Changeset in webkit [262309] by Darin Adler
  • 8 edits in trunk/Source

[Cocoa] Pass all defines from Platform.h to various scripts, not just the ones from .xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212451

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • DerivedSources.make: Run the preprocessor on Platform.h and parse the output into

FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms. Use ":=" when calling $(shell) to make sure
the same shell command is not invoked over and over again.

Source/WebCore:

  • DerivedSources.make: Run the preprocessor on Platform.h and parse the output into

FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms. Use ":=" when calling $(shell) to make sure
the same shell command is not invoked over and over again.

Source/WebKit:

  • DerivedSources.make: Use ":=" when calling $(shell) to make sure the same shell

command is not invoked over and over again.

Source/WebKitLegacy/mac:

  • MigrateHeaders.make: Run the preprocessor on Platform.h and parse the output into

FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms. Use ":=" when calling $(shell) to make sure
the same shell command is not invoked over and over again.

11:40 AM Changeset in webkit [262308] by Keith Rollin
  • 24 edits in trunk

Revert switch to XCBuild
https://bugs.webkit.org/show_bug.cgi?id=212530
<rdar://problem/63764632>

Unreviewed build fix.

Bug 209890 enabled the use of XCBuild by default. Since then, some
build issues have shown up. While addressing them, temporarily turn
off the use of XCBuild by default.

.:

  • Makefile.shared:
  • WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:

Source/JavaScriptCore:

  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE.xcconfig:

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No new tests -- build fix.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Configurations/WebKit.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • Scripts/build-webkit:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
11:32 AM Changeset in webkit [262307] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Graphics: text editors in Keyframes section don't populate when sidebar is first shown
https://bugs.webkit.org/show_bug.cgi?id=212509

Reviewed by Timothy Hatcher.

  • UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype.shown): Added.
Refresh all CodeMirror whenever this panel is shown.

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.removeSidebarPanel):
(WI.Sidebar.prototype.selectedSidebarPanel):
(WI.Sidebar.prototype.set collapsed):

  • UserInterface/Views/SidebarPanel.js:

(WI.SidebarPanel.prototype.visibilityDidChange): Deleted.
Drive-by: remove unused function.

11:30 AM Changeset in webkit [262306] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r261940): PLT5 is 2% regressed
https://bugs.webkit.org/show_bug.cgi?id=212504
<rdar://problem/63685637>

Reviewed by Wenson Hsieh.

We were causing spurious style recalcs on every main frame load.

No new tests because there is no behavior change.

  • page/Settings.yaml:
11:15 AM Changeset in webkit [262305] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Fix expectations after r262284
https://bugs.webkit.org/show_bug.cgi?id=212374

Unreviewed test gardening.

11:14 AM Changeset in webkit [262304] by weinig@apple.com
  • 10 edits
    1 delete in trunk/Source/WebCore

Extended Color: ColorMatrix should support smaller matrices and be constexpr
https://bugs.webkit.org/show_bug.cgi?id=212477

Reviewed by Simon Fraser.

  • Adds the ability to specify a ColorMatrix with any number of rows or columns, useful as most of the uses ColorMatrix did not need the full 5x4. Transformation act as-if the the ColorMatrix is the identify matrix for any rows or columns not present. For example, when transforming a ColorComponents, which is 4x1, a 3x3 ColorMatrix of the form:

[ a, b, c ]
[ d, e, f ]
[ g, h, i ]

will behave as-if it looks like:

[ a, b, c, 0 ]
[ d, e, f, 0 ]
[ g, h, i, 0 ]
[ 0, 0, 0, 1 ]

In practice, this means that the last component of the input vector is left
unmodified.

  • Adds ability to use ColorMatrix in constexpr statements, which will be useful for compile time concatenation of colorspace conversion matrices in a future change but is also useful for improved space efficiency of constant matrices already used.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove ColorMatrix.cpp

  • platform/graphics/ColorComponents.h:

(WebCore::ColorComponents::ColorComponents):
(WebCore::ColorComponents::operator+=):
(WebCore::ColorComponents::operator+ const):
(WebCore::ColorComponents::operator/ const):
(WebCore::ColorComponents::operator* const):
(WebCore::ColorComponents::abs const):
(WebCore::ColorComponents::get const):
(WebCore::perComponentMax):
(WebCore::perComponentMin):
(WebCore::operator==):
(WebCore::operator!=):
Make everything constexpr and move implementations out of the declarations for clarity.

  • platform/graphics/ColorMatrix.cpp: Removed.
  • platform/graphics/ColorMatrix.h:

(WebCore::ColorMatrix::ColorMatrix):
(WebCore::ColorMatrix::at const):
(WebCore::grayscaleColorMatrix):
(WebCore::sepiaColorMatrix):
(WebCore::saturationColorMatrix):
(WebCore::hueRotateColorMatrix):
(WebCore::ColorMatrix::transformColorComponents):
(WebCore::ColorMatrix::transformedColorComponents):
Re-write as a class templatized on the number of rows and columns. Moves factory functions
out of the class to avoid awkwardness of having to specify a dummy size when calling them
(e.g. we wouldn't want you to have to write ColorMatrix<3, 3>::grayscaleMatrix(), instead
just grayscaleColorMatrix() is much nicer).

  • platform/graphics/ColorUtilities.cpp:

(WebCore::xyzToLinearSRGB):
(WebCore::linearSRGBToXYZ):
(WebCore::XYZToLinearP3):
(WebCore::linearP3ToXYZ):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):
Adopt new ColorMatrix interface.

  • platform/graphics/filters/FilterOperation.h:

Remove unnecessary T in forward declaration.

  • platform/graphics/ColorUtilities.h:

(WebCore::fastMultiplyBy255):
(WebCore::fastDivideBy255):
Add some missing constexprs.

11:10 AM WPTExportProcess edited by clopez@igalia.com
(diff)
10:41 AM Changeset in webkit [262303] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Unreviewed, reverting r262245.
https://bugs.webkit.org/show_bug.cgi?id=212531

"Caused WebCore's 'Check .xcfilelists' build phase to be ~100x
slower"

Reverted changeset:

"[Cocoa] Pass all defines from Platform.h to various scripts,
not just the ones from .xcconfig"
https://bugs.webkit.org/show_bug.cgi?id=212451
https://trac.webkit.org/changeset/262245

10:34 AM Changeset in webkit [262302] by Devin Rousso
  • 91 edits
    2 adds in trunk

Web Inspector: add ITML debuggable/target type
https://bugs.webkit.org/show_bug.cgi?id=203300
<rdar://problem/56545896>

Reviewed by Joseph Pecoraro and Brian Burg.

Source/JavaScriptCore:

  • API/JSContextPrivate.h:
  • API/JSContext.mm:

(-[JSContext _setITMLDebuggableType]): Added.

  • runtime/JSGlobalObject.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::setIsITML): Added.
Create an SPI for marking a JSContext as an ITML context for Web Inspector.

  • runtime/JSGlobalObjectDebuggable.h:

(isType):

  • inspector/remote/RemoteControllableTarget.h:
  • inspector/remote/RemoteInspectionTarget.h:
  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::connectFrontend):
Don't dispatch Inspector.activateExtraDomains unless we're a basic JavaScript debuggable.

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::listingForInspectionTarget const):

  • inspector/scripts/codegen/models.py:

(validate_target_types):

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator):

  • inspector/scripts/tests/expected/fail-on-command-targetTypes-value.json-error:
  • inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-value.json-error:
  • inspector/scripts/tests/expected/fail-on-domain-targetTypes-value.json-error:
  • inspector/scripts/tests/expected/fail-on-event-targetTypes-value.json-error:
  • inspector/protocol/Audit.json:
  • inspector/protocol/CSS.json:
  • inspector/protocol/Console.json:
  • inspector/protocol/DOM.json:
  • inspector/protocol/DOMStorage.json:
  • inspector/protocol/Database.json:
  • inspector/protocol/Debugger.json:
  • inspector/protocol/Heap.json:
  • inspector/protocol/Inspector.json:
  • inspector/protocol/Network.json:
  • inspector/protocol/Page.json:
  • inspector/protocol/Runtime.json:
  • inspector/protocol/Security.json:

Add support for itml debuggables and targets, marking non-ITML commands/events with page.

Source/WebInspectorUI:

  • UserInterface/Base/DebuggableType.js:

(WI.DebuggableType.fromString):
(WI.DebuggableType.supportedTargetTypes): Added.

  • UserInterface/Base/TargetType.js:
  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype.activateDomain):

  • UserInterface/Controllers/TargetManager.js:

(WI.TargetManager.prototype.createDirectBackendTarget):
(WI.TargetManager.prototype._initializePageTarget):

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.prototype.pushNodeToFrontend):

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.supportsInspectorStyleSheet): Added.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.setInspectedNode):

  • UserInterface/Controllers/LayerTreeManager.js:

(WI.LayerTreeManager.supportsVisibleCompositingBorders):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype._loadAndParseSourceMap):

  • UserInterface/Controllers/TimelineManager.js:

(WI.NetworkManager.defaultTimelineTypes):
(WI.NetworkManager.availableTimelineTypes):
(WI.NetworkManager.prototype.set autoCaptureOnPageLoad):
(WI.NetworkManager.prototype.scriptProfilerTrackingCompleted):

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.initializeCSSCompletions):

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.get selectorEditable):

  • UserInterface/Models/CSSStyleSheet.js:

(WI.CSSStyleSheet.prototype.handleCurrentRevisionContentChange):

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode.prototype._makeUndoableCallback):

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource.prototype.requestContentFromBackend):

  • UserInterface/Base/Main.js:

(WI._updateDownloadToolbarButton):
(WI.undo):
(WI.redo):
(WI.canArchiveMainFrame):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.refresh):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNode):

  • UserInterface/Views/CookieStorageContentView.js:

(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.get navigationItems):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype._reloadCookies):
(WI.CookieStorageContentView.prototype._handleTableKeyDown):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
(WI.DOMTreeContentView.prototype._showPrintStylesChanged):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):
(WI.DOMTreeElement.prototype._startEditingTagName):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.performSearch):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.customPerformSearch):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel.prototype.get supportsNewRule):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView):

  • UserInterface/Controllers/AppControllerBase.js:

(WI.AppControllerBase.prototype.get hasExtraDomains): Deleted.

  • UserInterface/Controllers/AppController.js:

(WI.AppController):
(WI.AppController.prototype.activateExtraDomains):
(WI.AppController.prototype.get hasExtraDomains): Deleted.

  • UserInterface/Test/TestAppController.js:

(WI.TestAppController.prototype.get hasExtraDomains): Deleted.

  • UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/13.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/13.4/InspectorBackendCommands.js:
  • Versions/Inspector-iOS-11.0.json:
  • Versions/Inspector-iOS-11.3.json:
  • Versions/Inspector-iOS-12.0.json:
  • Versions/Inspector-iOS-12.2.json:
  • Versions/Inspector-iOS-13.0.json:
  • Versions/Inspector-iOS-13.4.json:

Update protocol files for older versions of iOS.

  • Localizations/en.lproj/localizedStrings.js:

Source/WebKit:

  • UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.h:
  • UIProcess/API/Cocoa/_WKInspectorDebuggableInfoInternal.h:

(fromWKInspectorDebuggableType):
(toWKInspectorDebuggableType):

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

(legacyDebuggableTypeToModernDebuggableType):

  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp:

(WebKit::parseDebuggableTypeFromString):

LayoutTests:

  • inspector/protocol/target-types-for-debuggable-type.html: Added.
  • inspector/protocol/target-types-for-debuggable-type-expected.txt: Added.
10:18 AM WPTExportProcess edited by clopez@igalia.com
(diff)
10:05 AM Changeset in webkit [262301] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

webkit-test-runner: Add support for the reftest-wait class name
https://bugs.webkit.org/show_bug.cgi?id=186045

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:01 AM Changeset in webkit [262300] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r262299

We replaced ScriptExecutionContext* by Document& in WebXRSpace hierarchy, so the
failing ASSERT() was:

  1. Invalid, there is no "context" parameter but "document"
  2. Not needed anymore, as we're passing a reference
  • Modules/webxr/WebXRSpace.cpp:

(WebCore::WebXRSpace::WebXRSpace): Removed invalid ASSERT().

9:36 AM Changeset in webkit [262299] by svillar@igalia.com
  • 12 edits
    3 adds in trunk

[WebXR] Implement XRSession::requestReferenceSpace()
https://bugs.webkit.org/show_bug.cgi?id=212407

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Added expectations.

  • web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt: Added.
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_requestReferenceSpace.https-expected.txt: Added.

Source/WebCore:

This patch implements the requestReferenceSpace() method of the XRSession which is used to
create reference spaces. A reference space establishes a space where pose data will be defined
and thus is mandatory to retrieve that pose information.

There are still some bits that have to implementated in follow up patches using platform code.

  • Modules/webxr/WebXRBoundedReferenceSpace.cpp:

(WebCore::WebXRBoundedReferenceSpace::create): Added.
(WebCore::WebXRBoundedReferenceSpace::WebXRBoundedReferenceSpace): Ditto.

  • Modules/webxr/WebXRBoundedReferenceSpace.h:
  • Modules/webxr/WebXRReferenceSpace.cpp:

(WebCore::WebXRReferenceSpace::create): Added.
(WebCore::WebXRReferenceSpace::WebXRReferenceSpace): Ditto.
(WebCore::WebXRReferenceSpace::getOffsetReferenceSpace): Use the create() method.

  • Modules/webxr/WebXRReferenceSpace.h:
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::referenceSpaceIsSupported const): New method to check whether a reference.
space is supported by session and device.
(WebCore::WebXRSession::requestReferenceSpace): New method that creates reference spaces for pose data.

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRSpace.cpp:

(WebCore::WebXRSpace::WebXRSpace): Store a reference to the session creating the space.

  • Modules/webxr/WebXRSpace.h:

LayoutTests:

  • platform/wpe/TestExpectations: Unskipped 3 more tests that are working now.
9:29 AM Changeset in webkit [262298] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Update debug overlays at rendering update time
https://bugs.webkit.org/show_bug.cgi?id=212510

Reviewed by Antoine Quint.

Don't eagerly update the regions in debug overlays when things change; this triggers
assertions for touch event overlays.

Instead, just mark them dirty and update the regions at "update the rendering" time.

  • page/DebugPageOverlays.cpp:

(WebCore::RegionOverlay::setRegionChanged):
(WebCore::RegionOverlay::didMoveToPage):
(WebCore::RegionOverlay::recomputeRegion):
(WebCore::DebugPageOverlays::regionChanged):
(WebCore::DebugPageOverlays::updateRegionIfNecessary):

  • page/DebugPageOverlays.h:

(WebCore::DebugPageOverlays::doAfterUpdateRendering):

  • page/Page.cpp:

(WebCore::Page::doAfterUpdateRendering):

9:28 AM Changeset in webkit [262297] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak][GStreamer] all commands, except webkit-build, fails if GST_BUILD_PATH is set
https://bugs.webkit.org/show_bug.cgi?id=212408

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

Don't run gst-env.py in the sandbox because that can lead to command-line options clashing
with build-webkit and other WebKit scripts. So instead we now parse the output of the
environment variables gst-build requires and we forward those to the sandbox.

  • flatpak/flatpakutils.py:

(run_sanitized):
(check_flatpak):
(FlatpakObject.flatpak):
(WebkitFlatpak.execute_command):
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.run_in_sandbox):
(flatpak_run_sanitized): Deleted.

9:01 AM Changeset in webkit [262296] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a check for errors when computing a utf string in jsc shell's runInteractive().
https://bugs.webkit.org/show_bug.cgi?id=212526
<rdar://problem/63757892>

Reviewed by Michael Saboff.

  • jsc.cpp:

(runInteractive):

8:54 AM WPTExportProcess edited by clopez@igalia.com
(diff)
8:47 AM Changeset in webkit [262295] by clopez@igalia.com
  • 2 edits in trunk/Tools

Add watchlist comment for patches touching imported WPT tests.
https://bugs.webkit.org/show_bug.cgi?id=212362

Reviewed by Youenn Fablet.

Add a watchlist trigger to comment on patches touching imported WPT tests
with a link to documentation about the export process.

  • Scripts/webkitpy/common/config/watchlist:
8:43 AM WPTExportProcess edited by clopez@igalia.com
(diff)
7:56 AM Changeset in webkit [262294] by Simon Fraser
  • 31 edits in trunk/Source

Prepare for async scrolling in passive wheel event handler regions
https://bugs.webkit.org/show_bug.cgi?id=212455

Reviewed by Tim Horton.

Clarify the processing for wheel events by adding OptionSet<WheelEventProcessingSteps>,
which will, in future, allow us to describe the processing for an event in the passive
event handler region which does scrolling on the scrolling thread, and is then sent
to the main thread for DOM event dispatch.

Removed ScrollingEventResult, which conflated "handled" with "send to another thread".
The thread sending behavior is now encoded in the WheelEventProcessingSteps, and we can just
use a bool for handled.

Scrolling tree and node handleWheelEvent() functions return a WheelEventHandlingResult, which
is a tuple of OptionSet<WheelEventProcessingSteps> and 'handled', allowing for a node with
background-attachment:fixed to add the "send to main thread" processing step.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::wheelEvent):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::handleWheelEvent):

  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::determineWheelEventProcessing):
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Deleted.

  • page/scrolling/ScrollingTree.h:

(WebCore::WheelEventHandlingResult::needsMainThreadProcessing const):
(WebCore::WheelEventHandlingResult::handled):
(WebCore::WheelEventHandlingResult::unhandled):
(WebCore::WheelEventHandlingResult::result):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::handleWheelEvent):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEvent):
(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):

  • platform/PlatformWheelEvent.cpp:

(WebCore::operator<<):

  • platform/PlatformWheelEvent.h:

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleWheelEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::handleWheelEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

6:58 AM Changeset in webkit [262293] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak] Fix os.system return code for better signal handling.

Rubber-stamped by Philippe Normand.

The previous fix in r262270 correctly fixed the return code issue
but made signal handling pass through python. For example, when you
ctlr+C running MiniBrowser, you'd get a python stacktrace deep inside
subprocess.call.

So, revert back to os.system but fixing the return code.

  • flatpak/webkit-bwrap:
6:28 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
6:19 AM Changeset in webkit [262292] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[WebXR] ActiveDOMObjects must call suspendIfNeeded() upon creation
https://bugs.webkit.org/show_bug.cgi?id=212517

Reviewed by Žan Doberšek.

We weren't calling suspendIfNeeded() upon ActiveDOMObjects creation (XRSession and XRSystem)
and that was triggering ASSERTION FAILED: m_suspendIfNeededWasCalled.

No new tests required as this was already detected by existing tests.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession): Call suspendIfNeeded().

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::WebXRSystem): Call suspendIfNeeded().

6:18 AM Changeset in webkit [262291] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[WebXR] WebXRSystem::unregisterSimulatedXRDeviceForTesting() ASSERTs in m_immersiveDevices.contains(device)
https://bugs.webkit.org/show_bug.cgi?id=212516

Reviewed by Žan Doberšek.

The ASSERT that was failing was wrong. It was assuming that every simulated device should be part of the list
of immersive devices. That's wrong, as devices only supporting inline sessions are not in that list.

Apart from that, fake devices were not removed from the list of available devices in WebXRTest after
disconnecting them all. That could potentially cause flakiness in the tests.

No new test required as the current tests were properly detecting the issue.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::registerSimulatedXRDeviceForTesting): Use XRSessionMode directly.
(WebCore::WebXRSystem::unregisterSimulatedXRDeviceForTesting): Fixed the ASSERT. A simulated device
might not be in the list of immersive devices if only supports inline sessions.

  • testing/WebXRTest.cpp:

(WebCore::WebXRTest::disconnectAllDevices): Clear the list of devices after disconnecting.

5:47 AM Changeset in webkit [262290] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Enable VTB required low latency code path
https://bugs.webkit.org/show_bug.cgi?id=210609
<rdar://problem/61890332>

Reviewed by Eric Carlson.

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

Declare the new key since it is now in a private header.

5:15 AM Changeset in webkit [262289] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

MediaPlayerPrivateMediaStreamAVFObjC should enqueue samples in a background thread
https://bugs.webkit.org/show_bug.cgi?id=212073

Reviewed by Eric Carlson.

Do not hop to the main thread when rendering video samples anymore.
Instead, we enqueue to the display layer in the background thread but still hop to the main thread for two things:

  • Update of various states of the player
  • keep a ref to the video sample if canvas rendering is needed.

Most display layer operations stay in the main thread (creation, flushing...).
Deletion of the display layer and access from a background are covered by a lock.
The m_canEnqueueDisplayLayer boolean ensures we do not enqueue too early when the display layer is not yet properly initialized.

LocalSampleBufferDisplayLayer needs to handle the fact that enqueueing might be done in a background thread.
Instead of introducing a lock, we introduce a work queue and we hop to this queue whenever we need to enqueue/mutate the pending samples.

Covered by existing tests and manual testing.

  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSampleBuffer):
(WebCore::LocalSampleBufferDisplayLayer::requestNotificationWhenReadyForVideoData):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::videoTransformationMatrix):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::applicationDidBecomeActive):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushRenderers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateRenderingMode):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setBufferingPolicy):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoTransformationMatrix): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueCorrectedVideoSample): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer): Deleted.

4:41 AM Changeset in webkit [262288] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Tools

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

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

Upstream now builds fine with GCC 9.3.0. Removing downstream patch.

  • buildstream/elements/sdk/openxr.bst:
  • buildstream/patches/openxr-0001-cmake-Check-for-C-17-and-conditionally-enable-it.patch: Removed.
2:47 AM Changeset in webkit [262287] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK4] Implement HTTP auth dialog
https://bugs.webkit.org/show_bug.cgi?id=212319

Reviewed by Sergio Villar Senin.

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:

(webkitAuthenticationDialogDestroy):
(okButtonClicked):
(cancelButtonClicked):
(authenticationCancelled):
(webkitAuthenticationDialogInitialize):
(webkitAuthenticationDialogMap):
(webkitAuthenticationDialogDispose):
(webkitAuthenticationDialogNew):

  • UIProcess/API/gtk/WebKitAuthenticationDialog.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkitWebViewAuthenticate):

2:40 AM Changeset in webkit [262286] by Carlos Garcia Campos
  • 10 edits in trunk/Source

[GTK4] Implement script dialogs
https://bugs.webkit.org/show_bug.cgi?id=212318

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add more definitions to avoid ifdefs.

  • platform/gtk/GtkVersioning.h:

(gtk_entry_set_text):
(gtk_entry_get_text):
(gtk_label_set_line_wrap):
(gtk_window_set_default):
(gtk_widget_add_css_class):

Source/WebKit:

Adapt to the GTK4 API and theme changes.

  • UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:

(webkitScriptDialogImplClose):
(webkitScriptDialogImplKeyPressed):
(webkitScriptDialogImplMap):
(webkitScriptDialogImplConstructed):
(webkitScriptDialogImplDispose):
(webkit_script_dialog_impl_class_init):
(webkitScriptDialogImplAddButton):
(webkitScriptDialogImplNew):
(webkitScriptDialogImplSetEntryText):

  • UIProcess/API/gtk/WebKitScriptDialogImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseAddDialog):
(webkitWebViewBaseRemoveChild):
(webkitWebViewBaseSnapshot):

  • UIProcess/API/gtk/WebKitWebViewDialog.cpp:

(webkitWebViewDialogSnapshot):
(webkitWebViewDialogSizeAllocate):
(webkitWebViewDialogConstructed):
(webkit_web_view_dialog_class_init):
(webkitWebViewDialogSetChild):
(webkitWebViewDialogGetChild):

  • UIProcess/API/gtk/WebKitWebViewDialog.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkitWebViewScriptDialog):

1:59 AM Changeset in webkit [262285] by Diego Pino Garcia
  • 8 edits
    1 move
    7 adds
    1 delete in trunk/LayoutTests

[GLIB] Gardening, update test expectations after r262254
https://bugs.webkit.org/show_bug.cgi?id=212514

Unreviewed gardening.

r262254 re-synced many dom web-platform tests and expected files. Emit
new baselines for GTK and WPE for affected test and try to merge results
into a common glib expectations when possible.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
1:00 AM Changeset in webkit [262284] by jfernandez@igalia.com
  • 3 edits
    16 adds in trunk/LayoutTests

[css-grid] Import tests for the grid as flexbox item case
https://bugs.webkit.org/show_bug.cgi?id=212374

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Imported tests from the WPT CSS Grid Layout test suite.

  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-001-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-001.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-002-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-002.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-003-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-003.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-004-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-004.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-005-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-005.html: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-006-expected.xht: Added.
  • web-platform-tests/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-006.html: Added.

LayoutTests:

These tests cover the case of a grid container being rendered as a flexbox item.
They are also useful as regression tests for the bug 209282 .

  • TestExpectations: Added Failure entries for the tests that fail due to bug 209282
12:27 AM Changeset in webkit [262283] by Wenson Hsieh
  • 9 edits in trunk

REGRESSION (r261812): editing/async-clipboard/clipboard-item-get-type-basic.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=212281
<rdar://problem/63554912>

Reviewed by Tim Horton.

Source/WebKit:

Declare -delegateSupportsImagePaste on UIKeyboardImpl.

  • Platform/spi/ios/UIKitSPI.h:

Source/WTF:

Add a new HAVE() define.

  • wtf/PlatformHave.h:

Tools:

On some shipping versions of iOS, returning NO from -supportsImagePaste still results in UIKit keyboard
code pinning temporary items to the general pasteboard, which increments the change count of the pasteboard.
If this happens in the middle of an attempt to read from the pasteboard, we end up falsely denying access to the
contents of the pasteboard, since we believe that the contents of the pasteboard have changed.

This has the potential to affect any test that attempts to read from the pasteboard on iOS, though the titular
layout test seems to trigger the bug more frequently than other tests.

This item pinning was added in support of being able to insert Memojis from the software keyboard, and works by
pretending to copy a temporary PNG image, asking the delegate whether it -canPerformAction:withSender:, and
then restoring the items previously on the pasteboard. To work around this in the test runner, we can simply
swizzle out -[UIKeyboardImpl delegateSupportsImagePaste] to always return NO, which has the same effect as
disabling the Memoji keyboard.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(overrideKeyboardDelegateSupportsImagePaste):
(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

Remove the failing test expectation.

  • platform/ios-simulator-wk2/TestExpectations:
12:00 AM Changeset in webkit [262282] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening.

  • platform/wpe/TestExpectations: Adding debug crash expectations for WebXR tests.

May 28, 2020:

10:58 PM Changeset in webkit [262281] by Peng Liu
  • 4 edits in trunk/Source/WebKit

Clean up WebKit.xcodeproj/project.pbxproj
https://bugs.webkit.org/show_bug.cgi?id=212491

Reviewed by Tim Horton.

A follow-up patch to add AudioSessionRoutingArbitratorProxyCocoa.mm to the unified build.

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

Add AudioSessionRoutingArbitratorProxyCocoa.mm to the unified build.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:

Fix a unified build failure.

10:41 PM Changeset in webkit [262280] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Avoid unnecessary sync IPC messages when togging the callout bar for selections.
https://bugs.webkit.org/show_bug.cgi?id=212508

The loupe gesture only needs to be activated and evaluated if the tap is inside
an existing selectionView. We can do that test in the UIProcess without resorting to a sync IPC message.
Doing that evaluation locally will eliminate unnecessary hangs in the UIProcess.

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _pointIsInsideSelectionRect:outBoundingRect:]):
(-[WKContentView _shouldToggleSelectionCommandsAfterTapAt:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

9:08 PM Changeset in webkit [262279] by aestes@apple.com
  • 11 edits
    4 adds in trunk

[Apple Pay] Buttons render with a corner radius of PKApplePayButtonDefaultCornerRadius even when explicitly specifying "border-radius: 0px"
https://bugs.webkit.org/show_bug.cgi?id=212476
<rdar://problem/63401433>

Reviewed by Antti Koivisto.

Source/WebCore:

r256648 added support for customizing the corner radius of Apple Pay buttons using the
border-radius CSS property. PassKit buttons have a default corner radius of 4, but
border-radius has an initial value of 0, so to maintain web compatibility with existing
buttons we only want to customize the corner radius when a border-radius value has been
explicitly specified (otherwise, previously rounded buttons would all become squared off due
to border-radius's initial value).

r256648 checked for a non-initial border-radius by calling RenderStyle::hasBorderRadius, but
this check does not distinguish between an initial value and an explicit declaration of
"border-radius: 0px". As a result, authors are unable to create Apple Pay buttons with
square corners.

This patch adds a flag to RenderStyle::NonInheritedFlags that tracks whether any
border-radius longhand has been explicitly set (or has explicitly inherited an explicitly set
value), and uses that flag to adjust the computed border radius for Apple Pay buttons.

The addition of RenderStyle::NonInheritedFlags::hasExplicitlySetBorderRadius did not change
the size of RenderStyle.

Tests: fast/css/appearance-apple-pay-button-border-radius.html

fast/css/getComputedStyle/computed-style-apple-pay-button.html

  • css/CSSProperties.json:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):
(WebCore::RenderThemeCocoa::paintApplePayButton):
(WebCore::largestCornerRadius): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasExplicitlySetBorderRadius const):
(WebCore::RenderStyle::setHasExplicitlySetBorderRadius):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::NonInheritedFlags::copyNonInheritedFrom):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInheritBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyValueBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyValueBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyValueBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderTopRightRadius):
(WebCore::Style::BuilderCustom::applyValueBorderTopRightRadius):

LayoutTests:

  • TestExpectations:
  • fast/css/appearance-apple-pay-button-border-radius-expected.html: Added.
  • fast/css/appearance-apple-pay-button-border-radius.html: Added.
  • fast/css/appearance-apple-pay-button-expected.html:
  • fast/css/appearance-apple-pay-button.html:
  • fast/css/getComputedStyle/computed-style-apple-pay-button-expected.txt: Added.
  • fast/css/getComputedStyle/computed-style-apple-pay-button.html: Added.
  • platform/mac/TestExpectations:
8:58 PM Changeset in webkit [262278] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the macOS build

  • WebKit.xcodeproj/project.pbxproj:

Can't have this file in both the Xcode target and SourcesCocoa.txt...

8:00 PM Changeset in webkit [262277] by Chris Dumez
  • 80 edits
    17 adds
    2 deletes in trunk/LayoutTests

Update web-platform-tests/interfaces from upstream
https://bugs.webkit.org/show_bug.cgi?id=212501

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Unreviewed, rebaseline web-platform-tests/interfaces from upstream 6a76a185f913e3c027e369a.

  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:
  • web-platform-tests/credential-management/idlharness.https.window-expected.txt:
  • web-platform-tests/css/css-animations/idlharness-expected.txt:
  • web-platform-tests/css/css-transitions/idlharness-expected.txt:
  • web-platform-tests/css/cssom-view/idlharness-expected.txt:
  • web-platform-tests/css/cssom/interfaces-expected.txt:
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/domparsing/idlharness.window-expected.txt:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt:
  • web-platform-tests/interfaces/DOM-Parsing.idl:
  • web-platform-tests/interfaces/IndexedDB.idl:
  • web-platform-tests/interfaces/WebCryptoAPI.idl:
  • web-platform-tests/interfaces/appmanifest.idl:
  • web-platform-tests/interfaces/badging.idl: Added.
  • web-platform-tests/interfaces/clipboard-apis.idl:
  • web-platform-tests/interfaces/construct-stylesheets.idl: Added.
  • web-platform-tests/interfaces/cookie-store.idl:
  • web-platform-tests/interfaces/css-font-loading.idl:
  • web-platform-tests/interfaces/css-regions.idl: Removed.
  • web-platform-tests/interfaces/css-shadow-parts.idl:
  • web-platform-tests/interfaces/css-typed-om.idl:
  • web-platform-tests/interfaces/cssom-view.idl:
  • web-platform-tests/interfaces/cssom.idl:
  • web-platform-tests/interfaces/device-memory.idl: Added.
  • web-platform-tests/interfaces/dom.idl:
  • web-platform-tests/interfaces/encrypted-media.idl:
  • web-platform-tests/interfaces/event-timing.idl:
  • web-platform-tests/interfaces/fullscreen.idl:
  • web-platform-tests/interfaces/geolocation-sensor.idl:
  • web-platform-tests/interfaces/hit-test.idl: Added.
  • web-platform-tests/interfaces/html.idl:
  • web-platform-tests/interfaces/image-capture.idl:
  • web-platform-tests/interfaces/intersection-observer.idl:
  • web-platform-tests/interfaces/js-self-profiling.idl: Added.
  • web-platform-tests/interfaces/layout-instability.idl:
  • web-platform-tests/interfaces/media-capabilities.idl:
  • web-platform-tests/interfaces/media-playback-quality.idl:
  • web-platform-tests/interfaces/media-source.idl:
  • web-platform-tests/interfaces/mediasession.idl:
  • web-platform-tests/interfaces/mediastream-recording.idl:
  • web-platform-tests/interfaces/mst-content-hint.idl:
  • web-platform-tests/interfaces/native-file-system.idl: Added.
  • web-platform-tests/interfaces/netinfo.idl:
  • web-platform-tests/interfaces/origin-policy.idl: Added.
  • web-platform-tests/interfaces/page-lifecycle.idl: Added.
  • web-platform-tests/interfaces/payment-method-basic-card.idl:
  • web-platform-tests/interfaces/payment-request.idl:
  • web-platform-tests/interfaces/periodic-background-sync.idl: Added.
  • web-platform-tests/interfaces/permissions-request.idl: Added.
  • web-platform-tests/interfaces/permissions-revoke.idl: Added.
  • web-platform-tests/interfaces/permissions.idl:
  • web-platform-tests/interfaces/pointerevents.idl:
  • web-platform-tests/interfaces/reporting.idl:
  • web-platform-tests/interfaces/requestidlecallback.idl:
  • web-platform-tests/interfaces/resize-observer.idl:
  • web-platform-tests/interfaces/scroll-animations.idl:
  • web-platform-tests/interfaces/shape-detection-api.idl:
  • web-platform-tests/interfaces/storage-access-api.tentative.idl: Added.
  • web-platform-tests/interfaces/text-detection-api.tentative.idl: Added.
  • web-platform-tests/interfaces/trusted-types.tentative.idl:
  • web-platform-tests/interfaces/video-rvfc.idl: Added.
  • web-platform-tests/interfaces/visual-viewport.idl: Added.
  • web-platform-tests/interfaces/w3c-import.log:
  • web-platform-tests/interfaces/wai-aria.idl:
  • web-platform-tests/interfaces/wake-lock.idl:
  • web-platform-tests/interfaces/web-animations.idl:
  • web-platform-tests/interfaces/web-bluetooth.idl:
  • web-platform-tests/interfaces/web-locks.idl: Added.
  • web-platform-tests/interfaces/web-nfc.idl:
  • web-platform-tests/interfaces/web-share.idl:
  • web-platform-tests/interfaces/webaudio.idl:
  • web-platform-tests/interfaces/webauthn.idl:
  • web-platform-tests/interfaces/webmidi.idl:
  • web-platform-tests/interfaces/webrtc-dscp.idl: Removed.
  • web-platform-tests/interfaces/webrtc-identity.idl:
  • web-platform-tests/interfaces/webrtc-stats.idl:
  • web-platform-tests/interfaces/webrtc-svc.idl: Added.
  • web-platform-tests/interfaces/webrtc.idl:
  • web-platform-tests/interfaces/webxr-ar-module.idl:
  • web-platform-tests/interfaces/webxr.idl:
  • web-platform-tests/interfaces/worklets.idl:
  • web-platform-tests/intersection-observer/idlharness.window-expected.txt:
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
  • web-platform-tests/mst-content-hint/idlharness.window-expected.txt:
  • web-platform-tests/remote-playback/idlharness.window-expected.txt:
  • web-platform-tests/resize-observer/idlharness.window-expected.txt:
  • web-platform-tests/svg/idlharness.window-expected.txt:
  • web-platform-tests/web-animations/idlharness.window-expected.txt:
  • web-platform-tests/websockets/basic-auth.any.js:
  • web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js:
  • web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt:
  • web-platform-tests/xhr/idlharness.any-expected.txt:
  • web-platform-tests/xhr/idlharness.any.worker-expected.txt:
  • web-platform-tests/xhr/sync-no-timeout.any-expected.txt:
  • web-platform-tests/xhr/sync-no-timeout.any.worker-expected.txt:

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
5:22 PM Changeset in webkit [262276] by mmaxfield@apple.com
  • 8 edits in trunk

Make fast/text/user-installed-fonts/extended-character.html more robust
https://bugs.webkit.org/show_bug.cgi?id=212487
<rdar://problem/63235370>

Unreviewed.

Tools:

Update the font to use the new character.

  • WebKitTestRunner/fonts/FakeHelvetica-SingleExtendedCharacter.ttf:

LayoutTests:

The test tries to make sure that, even if a user-installed font is the only font that supports
a certain character, it still isn't used if user-installed fonts are disallowed. This patch
updates the test to make the character less likely to be used by preinstalled fonts.

  • TestExpectations: Run the test everywhere, but it might not pass, rather than skipping it.
  • fast/text/user-installed-fonts/extended-character-expected.html:
  • fast/text/user-installed-fonts/extended-character-with-user-font-expected-mismatch.html:
  • fast/text/user-installed-fonts/extended-character-with-user-font.html:
  • fast/text/user-installed-fonts/extended-character.html:
5:06 PM Changeset in webkit [262275] by aestes@apple.com
  • 3 edits in trunk/Source/WebCore

Shrink StyleRareNonInheritedData by 8 bytes (on 64-bit platforms)
https://bugs.webkit.org/show_bug.cgi?id=212484

Reviewed by Tim Horton.

There were 4 bytes of padding after shapeImageThreshold, enough to fit order and shrink the
overall size of StyleRareNonInheritedData by 8 bytes on 64-bit platforms.

Before:
Total byte size: 480
Total pad bytes: 50
Padding percentage: 10.42 %

After:
Total byte size: 472
Total pad bytes: 42
Padding percentage: 8.90 %

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
4:43 PM Changeset in webkit [262274] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Buildfix after r262242

Unreviewed build fix.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

4:27 PM Changeset in webkit [262273] by Jonathan Bedard
  • 3 edits in trunk/Source/WebKit

watchOS: Upstream WKNumberPadView
https://bugs.webkit.org/show_bug.cgi?id=212499
<rdar://problem/63736073>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/forms/WKNumberPadView.h: Moved from WebKitAdditions.
  • UIProcess/ios/forms/WKNumberPadView.mm: Ditto.
4:19 PM Changeset in webkit [262272] by Megan Gardner
  • 5 edits in trunk/Source

Responding to post commit review comments for https://bugs.webkit.org/show_bug.cgi?id=212060

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doApply):

4:06 PM Changeset in webkit [262271] by Jonathan Bedard
  • 3 edits in trunk/Source/WebKit

watchOS: Upstream WKTextInputListViewController
https://bugs.webkit.org/show_bug.cgi?id=212495
<rdar://problem/63733949>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/forms/WKTextInputListViewController.h: Moved from WebKitAdditions.
  • UIProcess/ios/forms/WKTextInputListViewController.mm: Ditto.
3:56 PM Changeset in webkit [262270] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak] Use subprocess.call instead of os.system to forward the return code correctly.

os.system reports error codes from the child process like wait(),
which seems to not be playing well with flatpak/bwrap.

This was causing flatpak to return 0 to some failed commands (like
build-webkit), making failures show as successes in the bots.

Unreviewed build fix.

  • flatpak/webkit-bwrap:
3:52 PM Changeset in webkit [262269] by Chris Dumez
  • 3 edits
    2 copies in trunk/LayoutTests

http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html is slow
https://bugs.webkit.org/show_bug.cgi?id=212496

Reviewed by Geoffrey Garen.

Split test into two so that we don't lose any coverage but so that each test can run faster
individually.

  • http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-high-priority-expected.txt: Copied from LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt.
  • http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-high-priority.html: Copied from LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html.
  • http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html:
3:50 PM Changeset in webkit [262268] by Simon Fraser
  • 10 edits in trunk/Source

Simplify EventDispatcher wheel event dispatch
https://bugs.webkit.org/show_bug.cgi?id=212490

Reviewed by Tim Horton.

The various cross-thread bounces and completion lambdas in EventDispatcher::wheelEvent()
and ScrollingTree code made the logic very hard to follow.

Moving the ScrollingThread::dispatch() into EventHandler code simplifies things a little,
and allows for removal of the hokey "try to handle" ScrollingTree function, as well
as the clunky completion function.

Now, EventHandler call shouldHandleWheelEventSynchronously(), then does the
ScrollingThread::dispatch() which allows the lambda to easily call back into
EventHandler for the main thread dispatch.

Source/WebCore:

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::tryToHandleWheelEvent): Deleted.

  • page/scrolling/ThreadedScrollingTree.h:

Source/WebKit:

RemoteScrollingCoordinatorProxy/RemoteLayerTree code is unused at present, and
will need work.

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::tryToHandleWheelEvent): Deleted.

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::dispatchWheelEventViaMainThread):

  • WebProcess/WebPage/EventDispatcher.h:
3:46 PM Changeset in webkit [262267] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Clean up WebKit.xcodeproj/project.pbxproj
https://bugs.webkit.org/show_bug.cgi?id=212491

Reviewed by Simon Fraser.

Remove the references to deleted files and merge duplicated folders.

  • WebKit.xcodeproj/project.pbxproj:
3:44 PM Changeset in webkit [262266] by Devin Rousso
  • 10 edits in trunk/Source/JavaScriptCore

Web Inspector: add missing condition guards when generating objc protocol files
https://bugs.webkit.org/show_bug.cgi?id=212494

Reviewed by Timothy Hatcher.

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:

(ObjCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):

  • inspector/scripts/codegen/generate_objc_configuration_header.py:

(ObjCConfigurationHeaderGenerator._generate_properties_for_domain):

  • inspector/scripts/codegen/generate_objc_configuration_implementation.py:

(ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
(ObjCConfigurationImplementationGenerator._generate_ivars):
(ObjCConfigurationImplementationGenerator._generate_dealloc):
(ObjCConfigurationImplementationGenerator._generate_event_dispatcher_getter_for_domain):
(ObjCConfigurationImplementationGenerator._variable_name_prefix_for_domain): Deleted.

  • inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:

(ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
(ObjCFrontendDispatcherImplementationGenerator._generate_event):

  • inspector/scripts/codegen/generate_objc_header.py:

(ObjCHeaderGenerator._generate_forward_declarations):
(ObjCHeaderGenerator._generate_enums):
(ObjCHeaderGenerator._generate_types):
(ObjCHeaderGenerator._generate_command_protocols):
(ObjCHeaderGenerator._generate_event_interfaces):
(ObjCHeaderGenerator._generate_single_event_interface):

  • inspector/scripts/codegen/generate_objc_internal_header.py:

(ObjCInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:

(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):

  • inspector/scripts/tests/definitions-with-mac-platform.json:
  • inspector/scripts/tests/expected/definitions-with-mac-platform.json-result:
3:35 PM Changeset in webkit [262265] by Kate Cheney
  • 6 edits
    4 moves in trunk

Minimum user interaction time in ResourceLoadStatistics should handle the case of -1
https://bugs.webkit.org/show_bug.cgi?id=212445
<rdar://problem/63696470>

Reviewed by John Wilander.

Source/WebKit:

Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-database.html

http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html

Adds a getter for mostRecentUserInteractionTime which returns WTF::nullopt if the
timestamp is -1. Then does not consider this case in calculating the
minimum timestamp.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentUserInteractionTime):
(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
Flip sign to be less than, so we hold off on deleting data if the
oldest interaction was less than the minimum time between removal.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::getMostRecentUserInteractionTime):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
Flip sign to be less than, so we hold off on deleting data if the
oldest interaction was less than the minimum time between removal.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:

LayoutTests:

30 day website data deletion is covered by operating-dates-all-website-data-removed.html.
These new test cases check that deletion occurs when including statistics with no
user interaction (most recent user interaction time of -1) and with
the check for ITP testing turned off to test using the hour long wait
to delete expired data.

It also deletes
http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed.html
because 7 day website data deletion is covered by the new test cases.

  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-database.html: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt: Added.
  • http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html: Added.
  • LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-database-expected.txt: Removed.
  • LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-expected.txt: Removed.
  • LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed.html: Removed.
  • LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-database.html: Removed.
3:32 PM Changeset in webkit [262264] by Alan Coon
  • 1 copy in tags/Safari-609.3.2

Tag Safari-609.3.2.

3:24 PM Changeset in webkit [262263] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: statistics don't update when filtering
https://bugs.webkit.org/show_bug.cgi?id=212394

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._updateStatistics):
(WI.NetworkTableContentView.prototype._updateLoadTimeStatistic):
If the URL/type filter is active, hide the load time statistic, similar to how it's hidden
when viewing imported HARs. Additionally, update the other statistics to show info based on
the entries that are still shown.

3:03 PM Changeset in webkit [262262] by Oriol Brufau
  • 10 edits
    4 adds in trunk

[css-grid] Fix referencing grid line names with auto repeat()
https://bugs.webkit.org/show_bug.cgi?id=209572

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WPT tests.

  • web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-008-expected.xht: Added.
  • web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-008.html: Added.
  • web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-009-expected.xht: Added.
  • web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html: Added.
  • web-platform-tests/css/css-grid/placement/w3c-import.log:

Source/WebCore:

This patch fixes multiple problems when referencing named grid lines with the presence of
the auto repeat() syntax:

  • If the 1st track was defined with auto repeat(), then the code used to assume that the referenced line appeared after the repeated tracks. But it may actually precede them.
  • If the referenced line appeared both inside and outside the auto repeat(), then it could resolve to the outside raw index, without expanding the auto repeat().
  • The logic for placing a placement property set to both an integer and an identifier was wrong with auto repeat(). This patch fixes it by using the same proper logic that was already implemented in OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex
  • The indices of both implicit grid lines defined with grid-template-areas and explicit ones defined with grid-template-rows/columns used to be stored together in NamedGridColumnLines and NamedGridRowLines. This was problematic because the former indices already refer to the final explicit grid so they don't have to be increased when expanding an auto repeat(), but the latter ones should. Therefore, this patch stores the indices in separate fields and uses the correct logic for each one. This also fixes 'grid-template-areas: inherit'.

This patch is a port of these Chromium patches:

Tests: imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-002.html

imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-004.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-005.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-008.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::NamedLineCollection::NamedLineCollection):
(WebCore::NamedLineCollection::hasExplicitNamedLines const):
(WebCore::NamedLineCollection::hasNamedLines const):
(WebCore::NamedLineCollection::contains const):
(WebCore::NamedLineCollection::firstExplicitPosition const):
(WebCore::NamedLineCollection::firstPosition const):

  • rendering/style/GridPositionsResolver.h:
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::implicitNamedGridColumnLines const):
(WebCore::RenderStyle::implicitNamedGridRowLines const):
(WebCore::RenderStyle::setImplicitNamedGridColumnLines):
(WebCore::RenderStyle::setImplicitNamedGridRowLines):

  • rendering/style/StyleGridData.cpp:

(WebCore::StyleGridData::StyleGridData):

  • rendering/style/StyleGridData.h:

(WebCore::StyleGridData::operator== const):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyValueGridTemplateAreas):

2:29 PM Changeset in webkit [262261] by Alan Coon
  • 1 copy in tags/Safari-610.1.15

Tag Safari-610.1.15.

2:07 PM Changeset in webkit [262260] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] media/video-play-audio-require-user-gesture.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=212488

Unreviewed test gardening

  • platform/mac/TestExpectations:
2:06 PM Changeset in webkit [262259] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebCore/editing/Editor.h

Unreviewed formatting fix. rdar://problem/63461919

2:01 PM Changeset in webkit [262258] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebCore

Apply patch. rdar://problem/63461919

1:48 PM Changeset in webkit [262257] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

[ macOS Debug ] accessibility/roles-exposed.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=212478
<rdar://problem/63411656>

Reviewed by Chris Fleizach.

Logging the backingObject in every call to accessibilityAttributeValue
seems to be causing this long test to take too long and timeout in slow
systems.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

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

REGRESSION: (r261940): [ iPadOS wk2 ] fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html is failing consistently.
https://bugs.webkit.org/show_bug.cgi?id=212483

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
1:10 PM Changeset in webkit [262255] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Do not send a second sync request for positition information to the web process if we have not recieved information since the previous sync request.
https://bugs.webkit.org/show_bug.cgi?id=212289
<rdar://problem/58494578>

Reviewed by Tim Horton.

If we have sent a sync requests to the web process for position information, and timed out, and have not
received a message with position information in the interim, do not send another sync request. The web
process is likely still hung, and there is no reason to hang the UIProcess again if we suspect that it
is unlikely that we will receive a reply.

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

(-[WKContentView cleanUpInteraction]):
(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView _positionInformationDidChange:]):

1:05 PM Changeset in webkit [262254] by Chris Dumez
  • 256 edits
    1 move
    94 adds in trunk/LayoutTests

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

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync dom web-platform tests from upstream 6a76a185f913e3c027e3.

  • resources/resource-files.json:
  • web-platform-tests/dom/*: Updated.
  • web-platform-tests/resources/idlharness.js: Updated.
  • web-platform-tests/resources/testharness.js: Updated.

LayoutTests:

  • platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
12:16 PM Changeset in webkit [262253] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Follow-up build fix: [Cocoa] Pass all defines from Platform.h to various scripts, not just the ones from .xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212451

Fixes the following build error:

PhaseScriptExecution Migrate\ Headers BUILD_DIR/WebKitLegacy.build/Debug/WebKitLegacy.build/Script-1C6CB0510AA63EB000D23BFD.sh

cd SOURCE_DIR/Source/WebKitLegacy
/bin/sh -c BUILD_DIR/WebKitLegacy.build/Debug/WebKitLegacy.build/Script-1C6CB0510AA63EB000D23BFD.sh

clang: warning: no such sysroot directory: 'macosx.internal' [-Wmissing-sysroot]
In file included from <built-in>:1:
In file included from BUILD_DIR/Debug/usr/local/include/wtf/Platform.h:44:
BUILD_DIR/Debug/usr/local/include/wtf/PlatformOS.h:36:10: fatal error: 'Availability.h' file not found
#include <Availability.h>

~

1 error generated.
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/WebKitAvailability.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/WebKitAvailability.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/(
*)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/WebScriptObject.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/WebScriptObject.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/npapi.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/npapi.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/(
*)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/npfunctions.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/npfunctions.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/npruntime.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/npruntime.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/(
*)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/nptypes.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/nptypes.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
clang: warning: no such sysroot directory: 'macosx.internal' [-Wmissing-sysroot]
In file included from <built-in>:1:
In file included from BUILD_DIR/Debug/usr/local/include/wtf/Platform.h:44:
BUILD_DIR/Debug/usr/local/include/wtf/PlatformOS.h:36:10: fatal error: 'Availability.h' file not found
#include <Availability.h>

~

1 error generated.
make[4]: Nothing to be done for `reexport_headers'.
Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure

  • migrate-headers.sh: Pass SDKROOT environment variable on the

command-line make invocations after r262245 added code to
MigrateHeaders.make to set -isysroot based on the SDKROOT value.

11:38 AM Changeset in webkit [262252] by keith_miller@apple.com
  • 36 edits
    1 add in trunk

for-of should check the iterable is a JSArray for FastArray in DFG iterator_open
https://bugs.webkit.org/show_bug.cgi?id=212383

Reviewed by Saam Barati.

JSTests:

  • stress/check-sub-class.js:
  • stress/for-of-iterator-open-fast-array-should-check-js-type.js: Added.

(foo):

Source/JavaScriptCore:

This patch fixes an issue where we didn't check that the iterable operand to
iterator_open was a JSArray when lowering the FastArray only variant of the bytecode to the DFG.
This meant we would OSR exit at the iterator_next's lowering then assertion failure in the
checkpoint OSR exit helper. To make this work, this patch extends (and renames from CheckSubClass)
CheckJSCast to use the same JSType information that we use for the jsCast function. In order to
get the JSType range from a ClassInfo* the macro that autogenerates MethodTable now also fills
a Optional<JSTypeRange> into the ClassInfo as well.

Lastly, speculationFromClassInfo was misused by AI. This patch
renames it to speculationFromClassInfoInheritance to better
reflect how AI was using it. The only other user of
speculationFromClassInfo was speculationFromStructure. Any case
where speculationFromClassInfoInteritance would differ from what a
Structure would tell you has been hoisted to
speculationFromStructure.

  • assembler/testmasm.cpp:

(JSC::testBranchIfType):
(JSC::testBranchIfNotType):

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromClassInfoInheritance):
(JSC::speculationFromStructure):
(JSC::speculationFromClassInfo): Deleted.

  • bytecode/SpeculatedType.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::filterClassInfo):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeCallDOM):
(JSC::DFG::FixupPhase::fixupCheckJSCast):
(JSC::DFG::FixupPhase::fixupCheckSubClass): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasClassInfo const):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::compileCheckJSCast):
(JSC::DFG::SpeculativeJIT::compileCheckSubClass): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckJSCast):
(JSC::FTL::DFG::LowerDFGToB3::isCellWithType):
(JSC::FTL::DFG::LowerDFGToB3::isTypedArrayView):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfType):
(JSC::AssemblyHelpers::branchIfNotType):

  • runtime/ClassInfo.h:
  • runtime/JSCast.h:

(JSC::JSTypeRange::contains const):
(JSC::JSCastingHelpers::inheritsJSTypeImpl):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::assertTypeInfoFlagInvariants):

  • tools/JSDollarVM.cpp:

(JSC::functionCreateDOMJITCheckJSCastObject):
(JSC::JSDollarVM::finishCreation):
(JSC::functionCreateDOMJITCheckSubClassObject): Deleted.

Source/WebCore:

Update various InheritsTraits specializations to contain a typeRange member.
Also, change the inherits function to use inheritsJSTypeImpl like the JSC
variants.

  • bindings/js/JSDocumentCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSDocument>::inherits):

  • bindings/js/JSElementCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSElement>::inherits):

  • bindings/js/JSEventCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSEvent>::inherits):

  • bindings/js/JSNodeCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSNode>::inherits):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

Source/WTF:

Optional should be able to copy/move constructor itself as long as <T> is
trivially copyable. This lets us copy Optionals into const globals without
global constructors.

  • wtf/Optional.h:

(WTF::Optional::Optional):
(WTF::Optional::NOEXCEPT_):

11:35 AM Changeset in webkit [262251] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

11:09 AM Changeset in webkit [262250] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Make fast/loader/create-frame-in-DOMContentLoaded.html less flaky
https://bugs.webkit.org/show_bug.cgi?id=212454
<rdar://problem/61833551>

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

We have records of this test failing extremely rarely going back at least a few months.
I think it may have become flaky related to r253279 because eventLoop().performMicrotaskCheckpoint() is now called more often
and the test runner's logic to gather the text nodes for test output is tied up with the load and DOMContentLoaded event handlers
if you don't use waitUntilDone/notifyDone. In any case, this test was added in r90038 to verify incorrect behavior that we've been
meaning to fix in the last 9 years, and with waitUntilDone/notifyDone it does that, but without being a burden on our bot watchers
who do such good work and help find real problems.

  • fast/loader/create-frame-in-DOMContentLoaded.html:
11:06 AM Changeset in webkit [262249] by youenn@apple.com
  • 10 edits in trunk

ReadableByteStream should be enabled/disabled in service workers as done in pages
https://bugs.webkit.org/show_bug.cgi?id=212466

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-byte-streams/brand-checks.serviceworker.https-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/detached-buffers.serviceworker.https-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.serviceworker.https-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/properties.serviceworker.https-expected.txt:

Source/WebKit:

Introduce a WebPreference for readable byte stream.
Use it for enabling it in web processes running service workers as per the given store.

  • Shared/WebPreferences.yaml:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updatePreferencesStore):

LayoutTests:

Skipping timing out tests.

11:02 AM Changeset in webkit [262248] by Chris Dumez
  • 2 edits in trunk/LayoutTests

fast/dom/vertical-scrollbar-in-rtl.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=212474
<rdar://problem/63692473>

Reviewed by Geoffrey Garen.

Unreviewed, use assertClose() instead of assertEqual() due to floating point
precision.

  • fast/dom/vertical-scrollbar-in-rtl.html:
10:18 AM Changeset in webkit [262247] by Ryan Haddad
  • 2 edits in branches/safari-610.1.15-branch/Tools

Cherry-pick r262143. rdar://problem/63517635

webkitpy: simctl list may have stderr logging
https://bugs.webkit.org/show_bug.cgi?id=212376
<rdar://problem/63517635>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDeviceManager.populate_available_devices): Only parse stdout, log error when json decoding fails. (SimulatedDevice.is_usable): Only parse stdout. (SimulatedDevice.launch_app): Ditto.

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

10:16 AM Changeset in webkit [262246] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r262143. rdar://problem/63517635

webkitpy: simctl list may have stderr logging
https://bugs.webkit.org/show_bug.cgi?id=212376
<rdar://problem/63517635>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDeviceManager.populate_available_devices): Only parse stdout, log error when json decoding fails. (SimulatedDevice.is_usable): Only parse stdout. (SimulatedDevice.launch_app): Ditto.

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

9:56 AM Changeset in webkit [262245] by Darin Adler
  • 6 edits in trunk/Source

[Cocoa] Pass all defines from Platform.h to various scripts, not just the ones from .xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212451

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • DerivedSources.make: Run the preprocessor on Platform.h and parse the output into

FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms.

Source/WebCore:

  • DerivedSources.make: Run the preprocessor on Platform.h and parse the output into

FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms.

Source/WebKitLegacy/mac:

  • MigrateHeaders.make: Run the preprocessor on Platform.h and parse the output into

FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms.

9:44 AM Changeset in webkit [262244] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

makeValueRefForValue should be robust against the type encoding of a NSNumber backed by a boolean
https://bugs.webkit.org/show_bug.cgi?id=212456

Reviewed by Anders Carlsson.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm:

(WTR::makeValueRefForValue):
Apply the fix from r260515 to this second copy of the code too.

8:36 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
8:31 AM Changeset in webkit [262243] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: generate_cpp_protocol_types_header.py:294: SyntaxWarning: "is" with a literal. Did you mean "=="?
https://bugs.webkit.org/show_bug.cgi?id=212468

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-28
Reviewed by Timothy Hatcher.

Use "==" instead of "is" to compare against 0.

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
8:28 AM Changeset in webkit [262242] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

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

8:19 AM Changeset in webkit [262241] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

ScrollingTreeMac::eventListenerRegionTypesForPoint() needs to convert the point to local coordinates
https://bugs.webkit.org/show_bug.cgi?id=212440

Reviewed by Tim Horton.

ScrollingTreeMac::eventListenerRegionTypesForPoint() needs to convert the point to local coordinates
before consulting the event region.

Also made EventListenerRegionType loggabale.

Will be tested by wheel event tests once we switch to using these kinds of regions.

  • page/scrolling/mac/ScrollingTreeMac.mm:

(collectDescendantLayersAtPoint):
(ScrollingTreeMac::scrollingNodeForPoint):
(ScrollingTreeMac::eventListenerRegionTypesForPoint const):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
7:47 AM Changeset in webkit [262240] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

RemoteAudio::audioSamplesAvailable should check for m_buffer to be null
https://bugs.webkit.org/show_bug.cgi?id=212462
<rdar://problem/63627642>

Reviewed by Eric Carlson.

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::RemoteAudio::audioSamplesAvailable):
m_buffer is initialized by a StorageChanged IPC message which might not always be successful, for instance if the shared memory mapping fails.
Return early if m_buffer is not yet initialized properly.

7:28 AM Changeset in webkit [262239] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Add an assertNoException() to placate the exception checker and green the bots.
https://bugs.webkit.org/show_bug.cgi?id=212248

Not reviewed.

This solution was pointed out by Caio Lima in https://bugs.webkit.org/show_bug.cgi?id=212248#c10.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

1:40 AM Changeset in webkit [262238] by youenn@apple.com
  • 10 edits in trunk/Source

RealtimeIncomingVideoSourceCocoa::OnFrame should use video frame timestamp
https://bugs.webkit.org/show_bug.cgi?id=212402

Reviewed by Eric Carlson.

Source/WebCore:

Use timestamp provided from the libwebrtc backend instread of marking the frames as display immediately.
Update LocalSampleBufferDisplayLayer to mark the frame as display immediately if their presentation time is in the past since we guarantee the frames are in order.

Remove the offset correction in MediaPlayerPrivateMediaStreamAVFObjC.
This does not work well when the display layer is in GPU process and it is simpler to use the system clock which is what AVSampleBufferDisplayLayser is using if controlTimebase is not set.

Manually tested.

  • platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::removeOldSamplesFromPendingQueue):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerStatusDidChange):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::applicationDidBecomeActive):

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

(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

Source/WebKit:

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
1:13 AM Changeset in webkit [262237] by Antti Koivisto
  • 6 edits
    4 adds in trunk

Incorrect clipping of absolute and fixed elements inside stacking-context composited overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=212419
<rdar://problem/55856170>

Reviewed by Simon Fraser.

Source/WebCore:

We incorrectly clip descendants that are not in containing block chain.
There is already code to do the correct clipping, it just needs be enabled in this case.

Tests: compositing/overflow/non-contained-descendant-clipping-absolute.html

compositing/overflow/non-contained-descendant-clipping-fixed.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):

  • rendering/RenderLayer.h:

Add hasCompositedNonContainedDescendants bit.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::CompositingState::stateForPaintOrderChildren const):
(WebCore::RenderLayerCompositor::CompositingState::updateWithDescendantStateAndLayer):

Check if the parent layer is for a containing block of this layer.

(WebCore::RenderLayerCompositor::computeCompositingRequirements):

Update the bit.

(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::RenderLayerCompositor::clipsCompositingDescendants):

Pick the clipping path where descendants are not clipped.

LayoutTests:

  • compositing/overflow/non-contained-descendant-clipping-absolute-expected.html: Added.
  • compositing/overflow/non-contained-descendant-clipping-absolute.html: Added.
  • compositing/overflow/non-contained-descendant-clipping-fixed-expected.html: Added.
  • compositing/overflow/non-contained-descendant-clipping-fixed.html: Added.

May 27, 2020:

10:53 PM Changeset in webkit [262236] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Add output file specifications to "Copy Custom WebContent Resources to Framework Private Headers" build phase in WebKit/WebContent
https://bugs.webkit.org/show_bug.cgi?id=212452
<rdar://problem/63700546>

Reviewed by Timothy Hatcher.

The "Copy Custom WebContent Resources to Framework Private Headers"
build phase in the WebContent target of the WebKit project doesn't
advertise the files that it produces. This has consequences on later
build phases that consume those files. In particular, XCBuild is left
not knowing where those files are coming from, and it fails saying
that those files don't exist. Fix this by adding the output files to
the "output files" section of the custom build phase.

No new tests -- this is just a build fix.

  • WebKit.xcodeproj/project.pbxproj:
10:32 PM Changeset in webkit [262235] by Noam Rosenthal
  • 20 edits
    2 adds in trunk

Implement AccessKeyLabel attribute.
https://bugs.webkit.org/show_bug.cgi?id=72715

LayoutTests/imported/w3c:

Reviewed by Darin Adler.

  • web-platform-tests/html/dom/idlharness.https-expected.txt:

Source/WebCore:

Spec: https://html.spec.whatwg.org/multipage/interaction.html#dom-accesskeylabel

As per spec, return the modifiers+accessKey when requesting the element accessKeyLabel.

Equivalent to the existing Firefox implementation and (pending) Chrome implementation.

Alt is the hardcoded modifier for any non-cocoa platform, so hardcode it also for the label.
Use modifier text for Mac/iOS as it can change (e.g. for voice-over).

Reviewed by Darin Adler.

Test: fast/forms/access-key-label.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::accessKeyLabel const):

  • html/HTMLElement.h:
  • html/HTMLElement.idl:

Source/WTF:

Reviewed by Darin Adler.

Added character names for upArrow/option, as they're needed for accessKeyLabel.

  • wtf/unicode/CharacterNames.h:

LayoutTests:

Reviewed by Darin Adler.

  • fast/forms/access-key-label-expected.txt: Added.
  • fast/forms/access-key-label.html: Added.

Added a test to cover accessKeyLabel scenarios.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/win/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:

HTML elements now have an accessKeyLabel property, fix expected results.

10:23 PM Changeset in webkit [262234] by Lauro Moura
  • 2 edits
    1 delete in trunk/LayoutTests

[GTK] Skip inspector/page/archive.html

Unreviewed test gardening.

It is a feature not supported by the GTK port.

  • platform/gtk/TestExpectations:
  • platform/gtk/inspector/page/archive-expected.txt: Removed.
7:43 PM Changeset in webkit [262233] by sbarati@apple.com
  • 41 edits
    2 adds in trunk

hasOwnProperty inside structure property for-in loop should use an opcode like has_structure_property but for hasOwnProperty
https://bugs.webkit.org/show_bug.cgi?id=212248

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/has-own-property-for-in-loop.js: Added.
  • stress/has-own-property-structure-for-in-loop-correctness.js: Added.

Source/JavaScriptCore:

This patch applies the same principles from r262083 but to hasOwnProperty.

In this patch, we have a fast path for this syntactic pattern when
iterating structure properties:

for (let <p> in <o>)

if (<o>.hasOwnProperty(<p>))

We look for both <p> and <o> as resolve nodes, and we look for them being the
same values both in the header and inside the body.

Using a simple static analysis, when we detect this pattern, we compare the
result of <o>.hasOwnProperty to the original hasOwnProperty function. If
it's the same, we execute the fast path new bytecode has_own_structure_property,
which on the fast path is two loads, a compare and branch, and a materialization of
the boolean constant true.

On the slow path, has_own_structure_property just executes the runtime code
for hasOwnProperty.

In my testing, this seems like it might be 3-5% faster on Speedometer 2's
react subtests. I was getting some noise when running the tests locally,
so I can't say for certain it's a definite speedup. But the data implies
it has a good chance at being a speedup.

  • builtins/BuiltinNames.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

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

  • bytecode/LinkTimeConstant.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitWideJumpIfNotFunctionHasOwnProperty):
(JSC::BytecodeGenerator::recordHasOwnStructurePropertyInForInLoop):
(JSC::BytecodeGenerator::emitHasOwnStructureProperty):
(JSC::BytecodeGenerator::pushStructureForInScope):
(JSC::StructureForInContext::finalize):
(JSC::BytecodeGenerator::findStructureForInContext):

  • bytecompiler/BytecodeGenerator.h:

(JSC::StructureForInContext::StructureForInContext):
(JSC::StructureForInContext::base const):
(JSC::StructureForInContext::addHasOwnPropertyJump):

  • bytecompiler/Label.h:

(JSC::GenericBoundLabel::GenericBoundLabel):

  • bytecompiler/NodesCodegen.cpp:

(JSC::HasOwnPropertyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileHasStructureProperty):
(JSC::DFG::SpeculativeJIT::compileHasOwnStructurePropertyImpl):
(JSC::DFG::SpeculativeJIT::compileHasOwnStructureProperty):
(JSC::DFG::SpeculativeJIT::compileInStructureProperty):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_has_structure_propertyImpl):
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emit_op_has_own_structure_property):
(JSC::JIT::emit_op_in_structure_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_has_structure_propertyImpl):
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emit_op_has_own_structure_property):
(JSC::JIT::emit_op_in_structure_property):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/NodeConstructors.h:

(JSC::HasOwnPropertyFunctionCallDotNode::HasOwnPropertyFunctionCallDotNode):

  • parser/Nodes.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectPrototype.cpp:

(JSC::objectPrototypeHasOwnProperty):
(JSC::objectProtoFuncHasOwnProperty):

  • runtime/ObjectPrototype.h:
7:30 PM Changeset in webkit [262232] by weinig@apple.com
  • 21 edits
    1 add in trunk/Source/WebCore

Extended Color: Refactor FloatComponents and ColorComponents into a single templatized ColorComponents class
https://bugs.webkit.org/show_bug.cgi?id=212446

Reviewed by Simon Fraser.

Merge FloatComponents and ColorComponents into ColorComponents<T> and move them to their own
header. This avoids duplicate code and paves the way for further generalization down the line.

Also moves some utility functions to ColorUtilities.h from SimpleColor.h as they make more sense
in the former.

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

Add ColorComponents.h

  • platform/graphics/ColorComponents.h: Copied from Source/WebCore/platform/graphics/ColorUtilities.h.

Moved ColorComponents to its own header and templatized it to allow it to serve the
needs of both the old ColorComponents and old FloatComponents classes.

  • platform/graphics/ColorUtilities.cpp:
  • platform/graphics/ColorUtilities.h:

Removed ColorComponents/FloatComponents and update existing usages to their new names.
Also moved roundAndClampColorChannel, fastMultiplyBy255, fastDivideBy255
and colorFloatToSimpleColorByte here from SimpleColor to make it clear where
general helper functions can go.

  • platform/graphics/Color.h:
  • platform/graphics/Color.cpp:

(WebCore::Color::colorSpaceAndComponents const):
(WebCore::Color::toSRGBAComponentsLossy const):

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::channels const):
Update for rename of FloatComponents to ColorComponents<float>.

  • platform/graphics/SimpleColor.cpp:

(WebCore::makeSimpleColorFromHSLA):
Use structured bindings and simplify code.

  • platform/graphics/SimpleColor.h:

(WebCore::roundAndClampColorChannel): Deleted.
(WebCore::fastMultiplyBy255): Deleted.
(WebCore::fastDivideBy255): Deleted.
(WebCore::colorFloatToSimpleColorByte): Deleted.
As noted above, moved roundAndClampColorChannel, fastMultiplyBy255, fastDivideBy255
and colorFloatToSimpleColorByte to ColorUtilities.h

  • platform/graphics/filters/FEColorMatrix.cpp:

Update for rename of FloatComponents to ColorComponents<float>.

  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::byteOffsetOfPixel):
Moved byteOffsetOfPixel here from ColorUtilities. This file is the only user
and it wasn't general in a way that was clear for other users.

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):
Update for rename of FloatComponents to ColorComponents<float>.

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::makeColorComponentsfromPixelValue):
Added. Used to be ColorComponents::fromRGBA(), but was only used here
and didn't seem generally useful.

(WebCore::makePixelValueFromColorComponents):
Added. Used to be ColorComponents::toRGBA(), but was only used here
and didn't seem generally useful.

(WebCore::minOrMax):
(WebCore::columnExtremum):
(WebCore::kernelExtremum):
(WebCore::FEMorphology::platformApplyGeneric):
Update for rename of FloatComponents to ColorComponents<float> and ColorComponents
to ColorComponents<uint8_t>.

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::noise2D const):
(WebCore::toIntBasedColorComponents):
(WebCore::FETurbulence::calculateTurbulenceValueForPoint const):
(WebCore::FETurbulence::fillRegion const):

  • platform/graphics/filters/FETurbulence.h:

Update for rename of FloatComponents to ColorComponents<float> and ColorComponents
to ColorComponents<uint8_t>. Also renames toColorComponents to toIntBasedColorComponents
as the former was no longer specific enough. Updated to use std::clamp.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::BasicComponentTransferFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):

  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::transformColor const):
(WebCore::FilterOperation::inverseTransformColor const):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
Update for rename of FloatComponents to ColorComponents<float>.

7:27 PM Changeset in webkit [262231] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[ macOS iOS ] REGRESSION(r261600?): imported/w3c/web-platform-tests/html/dom/reflection-embedded.html & imported/w3c/web-platform-tests/html/dom/reflection-forms.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=212430

Reviewed by Saam Barati.

JSTests:

  • stress/is-constructor-should-be-correct-in-ai.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

r261600 added IsConstructor rule to DFG AI. That rule is saying that if the object is not JSFunction and not ProxyObject,
then it must not be a constructor. But this is wrong since any objects can implement getConstructData and DOM constructors
are actually implementing it while it is not JSFunction and it is not ProxyObject. This patch removes that rule.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • tools/JSDollarVM.cpp:
6:34 PM Changeset in webkit [262230] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

[WebInspectorUI] Inconsistent check for WI.ImageUtilities.supportsCanvasPathDebugging
https://bugs.webkit.org/show_bug.cgi?id=212450

Reviewed by Devin Rousso.

In RecordContentView.js _updateCanvasPath() should not be called if CanvasPathDebugging
is not supported otherwise _updateCanvasPath() tries to access _showPathButtonNavigationItem,
which is created only if CanvasPathDebugging is supported, but fails and raises an exception.

  • UserInterface/Views/RecordingContentView.js:

Check if WI.ImageUtilities.supportsCanvasPathDebugging() before
calling _updateCanvasPath()

6:01 PM Changeset in webkit [262229] by sbarati@apple.com
  • 2 edits in trunk/Tools

revert logging for detecting failures in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=212447

Reviewed by Alexey Proskuryakov.

  • Scripts/run-jsc-stress-tests:
5:48 PM Changeset in webkit [262228] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r260023): ITP sparse plist decoding.
<https://bugs.webkit.org/show_bug.cgi?id=212424>
<rdar://problem/63683055>

Reviewed by John Wilander.

Reverted changeset:

"KeyedDecoder functions in ResourceLoadStatistics.{cpp,h} should return bool and use WARN_UNUSED_RETURN"
https://bugs.webkit.org/show_bug.cgi?id=210414
https://trac.webkit.org/changeset/260023

The revert did not compile due to changes in the KeyedDecoder
class that require checking the return value of its methods, so
additional changes were made below.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::decodeHashCountedSet):
(WebCore::decodeHashSet):

  • Use IGNORE_WARNINGS_BEGIN("unused-result")/IGNORE_WARNINGS_END to suppress warning about ignoring the return value from KeyeDecoder::decodeObjects() since decoding these objects is optional.

(WebCore::decodeOptionSet):

  • Check return value of KeyedDecoder::decodeUInt64() before setting optionSet parameter.
5:46 PM Changeset in webkit [262227] by sbarati@apple.com
  • 5 edits in trunk

Limit memory used by wasm/references/multitable.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=212437

Reviewed by Keith Miller.

JSTests:

wasm/references/multitable.js was using around ~700MB of memory.
This looks like it's causing jetsams on some of our iOS test runners.
This patch makes this test use less memory on memory limited devices.

  • wasm/assert.js:
  • wasm/references/multitable.js:

(string_appeared_here.tableInsanity):

Source/JavaScriptCore:

  • tools/JSDollarVM.cpp:

(JSC::functionIsMemoryLimited):
(JSC::JSDollarVM::finishCreation):

5:36 PM Changeset in webkit [262226] by timothy_horton@apple.com
  • 5 edits in trunk

REGRESSION (PSON): Resizing WKWebView during cross-site navigation results in the page laying out at the wrong size
https://bugs.webkit.org/show_bug.cgi?id=212434
<rdar://problem/51621621>

Reviewed by Chris Dumez.

Source/WebKit:

New API test: ProcessSwap.ResizeWebViewDuringCrossSiteProvisionalNavigation.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::swapToProvisionalPage):
Set m_hasRunningProcess before calling setDrawingArea, instead of immediately after,
so that setDrawingArea can call methods that check m_hasRunningProcess.

(WebKit::WebPageProxy::setDrawingArea):
When swapping DrawingAreas, push the current view size down. DrawingArea
is initially created with a size, but the size can change while the DrawingArea
is still provisional.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::viewSize):
Simplify this implementation now that we don't ever need to support WKContentView
outside of WKWebView (since 2014 or so).

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

Add a test ensuring that we correctly update the view size if it changes
during the provisional phase of the navigation.

4:48 PM Changeset in webkit [262225] by Lauro Moura
  • 2 edits in trunk/Tools

Unreviewed. A couple transformations missing from r262214.

Was making fast/events/touch/tap-highlight-color.html to fail.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::addTouchPoint):

4:41 PM Changeset in webkit [262224] by Andres Gonzalez
  • 12 edits
    2 moves in trunk

Empty alt attribute does not ignore the image for accessibility clients in Safari.
https://bugs.webkit.org/show_bug.cgi?id=212432
Source/WebCore:

Reviewed by Chris Fleizach.

Test: accessibility/img-alt-attribute-unassigned-empty.html

  • AccessibilityRenderObject::computeAccessibilityIsIgnored was handling

the case of images too late, after checking for ariaRoleAttribute(). So
if an image had a role attribute, it was exposed regardless whether its
alt attribute was an empty string. This change moves the handling of
images above the check for ariaroleAttribute and hence honors the empty
alt attribute rule.

  • Also images that have an aria-label attribute are now exposed.
  • Added logging of AccessibilityObjectInclusion.
  • Changed signature of log(RefPtr<AXCoreObject>) as pointed out by Darin Adler in a separate review.
  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::log):
(WebCore::operator<<):

  • accessibility/AXLogger.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isImage const): Moved to base class.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::isImage const):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::objectInclusionFromAltText):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:

LayoutTests:

<rdar://problem/60597768>

Reviewed by Chris Fleizach.

  • accessibility/img-alt-attribute-unassigned-empty-expected.txt: Renamed from LayoutTests/accessibility/img-alt-attribute-unassigned-value-expected.txt.
  • accessibility/img-alt-attribute-unassigned-empty.html: Renamed from LayoutTests/accessibility/img-alt-attribute-unassigned-value.html.

Added the test case for alt="" in addition to unassigned alt.

  • accessibility/self-referencing-aria-labelledby.html:

Removed unnecessary alt="" since now that causes the image element not
to be exposed.

4:14 PM Changeset in webkit [262223] by sbarati@apple.com
  • 3 edits in trunk/Source/WTF

Improve comments about OS/PLATFORM(IOS) and friends
https://bugs.webkit.org/show_bug.cgi?id=212438

Reviewed by Tim Horton.

  • wtf/PlatformLegacy.h:
  • wtf/PlatformOS.h:
4:02 PM Changeset in webkit [262222] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION: Build errors during JavaScriptCore "Generate Derived Sources" about missing Availability.h header and invalid SDKROOT [-Wmissing-sysroot]
<https://webkit.org/b/212436>

Unreviewed build fix.

  • Scripts/generate-derived-sources.sh: Pass SDKROOT to make

command from the current environment.

3:49 PM Changeset in webkit [262221] by Chris Dumez
  • 4 edits
    2 adds in trunk

pageshow only fires the first time the back button is pressed
https://bugs.webkit.org/show_bug.cgi?id=156356
<rdar://problem/29256489>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

When FrameLoader::commitProvisionalLoad() would restore a page from the back/forward
cache, it would only call FrameLoader::checkCompleted() in the main frame and fail
to do so in subframes. Calling checkCompleted() is important, not only because it
sets m_isComplete to true but also because it calls checkCallImplicitClose(), which
resets m_didCallImplicitClose to true and m_wasUnloadEventEmitted to false.

Because checkCompleted() was not called, FrameLoader::dispatchUnloadEvents() would then
fail to fire the pagehide event because the m_didCallImplicitClose && !m_wasUnloadEventEmitted
was not met. Also, even though checkCompleted() was called for the main frame, if there
are subframes, it would just return early because allChildrenAreComplete() returned false.
Later on, when trying to fire the pageshow event, it would fail to because we have logic
in DOMWindow::dispatchEvent() to avoid firing a pageshow event if we did not previously
send a pagehide event.

To address the issue, I now call checkCompleted() in FrameLoader::open() for subframes, as
this gets called for every frame during restoration from the back/forward cache. For the main
frame, we keep calling checkCompleted(), after we've called sendRemainingDelegateMessages().

Test: fast/history/multiple-back-forward-navigations.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open):

LayoutTests:

  • fast/history/multiple-back-forward-navigations-expected.txt: Added.
  • fast/history/multiple-back-forward-navigations.html: Added.

Add layout test coverage.

  • fast/history/resources/page-cache-helper.html:

Update page cache helper to navigate back even if the page is coming out of
the back/forward cache, by listening to the pageshow event.

3:21 PM Changeset in webkit [262220] by commit-queue@webkit.org
  • 4 edits in trunk

Update MobileMiniBrowser project settings to current Xcode
https://bugs.webkit.org/show_bug.cgi?id=212428

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

.:

Accept Xcode's suggested upgrade to use the new build system.

  • WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:

Tools:

Apply suggestions from Dean to automatically switch between the
internal and public SDKs.

  • MobileMiniBrowser/Configurations/Base.xcconfig:
2:53 PM Changeset in webkit [262219] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add missing #include for when LLINT_TRACING is enabled.
https://bugs.webkit.org/show_bug.cgi?id=212433

Reviewed by Tadeu Zagallo.

  • llint/LLIntExceptions.cpp:
2:40 PM Changeset in webkit [262218] by weinig@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

Extended Color: Move ColorMatrix to its own files
https://bugs.webkit.org/show_bug.cgi?id=212431

Reviewed by Dean Jackson.

Move ColorMatrix to its own files from ColorUtilities.h/cpp

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ColorMatrix.cpp: Copied from Source/WebCore/platform/graphics/ColorUtilities.cpp.
  • platform/graphics/ColorMatrix.h: Copied from Source/WebCore/platform/graphics/ColorUtilities.h.
  • platform/graphics/ColorUtilities.cpp:
  • platform/graphics/ColorUtilities.h:
  • platform/graphics/filters/FilterOperation.cpp:
2:27 PM Changeset in webkit [262217] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r260318): [WPE][GTK] Uninitialized memory read in MemoryPressureMonitor
https://bugs.webkit.org/show_bug.cgi?id=212412

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-27
Reviewed by Adrian Perez de Castro.

I think this is a false-positive, but let's suppress the warning by zero-initializing this
buffer.

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::systemMemoryUsedAsPercentage):

2:04 PM Changeset in webkit [262216] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Add OptionSetTraits<> and use with WebCore::DragDestinationAction
<https://webkit.org/b/212397>

Reviewed by Alex Christensen.

Source/WebCore:

  • page/DragActions.h:

(WTF::OptionSetTraits<WebCore::DragDestinationAction>):

  • Add for use with OptionSet<>.

Source/WTF:

Add OptionSetTraits<> (similar to EnumTraits<>) to define all
valid values for a given enum type. This allows us to use that
bitmask with OptionSet<>::fromRaw() to clear undefined bits, and
to validate enum values used with the OptionSet<> constructors.

Note that the extra validation possible with OptionSetTraits<>
is enabled based on the existence of that type using the new
WTF::is_type_complete_v<> type trait. Other OptionSet<> enums
fall back to the original validation checks.

Finally, typename <T> is changed to <E> for OptionSet<> to
emphasize that it's an enum typename.

  • wtf/OptionSet.h:

(WTF::is_type_complete_v): Add.
(WTF::OptionSetTraits): Add.
(WTF::OptionSetValues): Add.
(WTF::OptionSetValueChecker): Add.
(WTF::isValidOptionSetEnum): Add.
(WTF::maskRawValue): Add.
(WTF::OptionSet::Iterator::operator* const):
(WTF::OptionSet::fromRaw):
(WTF::OptionSet::OptionSet):
(WTF::OptionSet::contains const):

1:54 PM Changeset in webkit [262215] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

App-bound sessions should be for iOS only
https://bugs.webkit.org/show_bug.cgi?id=212426
<rdar://problem/63678147>

Reviewed by Darin Adler.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::SessionWrapper::initialize):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):

1:45 PM Changeset in webkit [262214] by Lauro Moura
  • 6 edits
    2 adds in trunk

[WPE] Avoid possible WTR event timing going back in time and fix conversion from s to ms
https://bugs.webkit.org/show_bug.cgi?id=212338

Reviewed by Michael Catanzaro.

Source/WebKit:

When converting the input timestamps to WallTime, we must somehow
adjust them to give meaningful timestamps (due to Dom::Event
conversion from timestamp wall time to the time origin from document
loading).

As WPE timestamps are just intended to be compared among themselves,
we use the first processed event as the origin, comparing the
following events to it to get an actual time.

Test: fast/events/monotonic-event-time.html

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::wallTimeForEventTime):

Tools:

Make sure we cast the double m_time timestamp from seconds to uint32_t
milliseconds expected by WPE input events.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::secToMsTimestamp):
(WTR::EventSenderProxy::EventSenderProxy): Use monotonic time instead
of zero as the time origin. This is used only in a relative manner,
and we need monotonic behavior so conversion to DOM event timestamps
makes sense.
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::prepareAndDispatchTouchEvent):
(WTR::EventSenderProxy::releaseTouchPoint):

LayoutTests:

Added new test to check if input events timestamps are actually
monotonically increasing since the start.

  • fast/events/monotonic-event-time-expected.txt: Added.
  • fast/events/monotonic-event-time.html: Added.
  • platform/ios/TestExpectations: Skipped the test as it relies on

mouseDown

1:42 PM Changeset in webkit [262213] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209622
<rdar://problem/60938860>

Reviewed by Darin Adler.

The test is flaky by nature as the event source load and navigation load are happening asynchronously.
In most cases but not always, the loading of the CachedResource will fail synchronously and will trigger the console message.
Do not output the console log message since the goal of the test is to not crash.

  • http/tests/eventsource/eventsource-reconnect-during-navigate-crash-expected.txt:
  • http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html:
  • platform/mac-wk2/TestExpectations:
1:38 PM Changeset in webkit [262212] by Kate Cheney
  • 13 edits in trunk

Make sure bundle identifier testing override is set in the network process
https://bugs.webkit.org/show_bug.cgi?id=212288
<rdar://problem/63539061>

Reviewed by Chris Dumez.

Set the bundle identifier in the network process if a layout test
updates it. This value usually only gets updated when a new network
process is initialized, which does not happen for every test. So it
should be set/cleared as needed.

Source/WebKit:

No new tests, will fix http/tests/in-app-browser-privacy/ tests.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::updateBundleIdentifierInNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::updateBundleIdentifierInNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::updateBundleIdentifierInNetworkProcess):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::updateBundleIdentifierInNetworkProcess):

  • WebKitTestRunner/TestController.h:
1:15 PM Changeset in webkit [262211] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

-Wdeprecated-copy caused by Bitmap copy assignment operator
https://bugs.webkit.org/show_bug.cgi?id=212421

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-27
Reviewed by Mark Lam.

This copy assignment operator is not needed, and causes warnings because we do not have a
corresponding copy constructor. We could add a copy constructor, but it's easiest to just
remove the copy assignment operator.

  • wtf/Bitmap.h:
1:08 PM Changeset in webkit [262210] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

Unreviwed, catch expected exception in new test.

  • stress/for-in-in-structure-property-constant-virtual-register.js:
12:50 PM Changeset in webkit [262209] by Wenson Hsieh
  • 20 edits
    8 adds in trunk

[Clipboard API] Support reading "image/png" on ClipboardItem
https://bugs.webkit.org/show_bug.cgi?id=212339
<rdar://problem/63588957>

Reviewed by Tim Horton.

Source/WebCore:

Adds support for reading "image/png" data via ClipboardItem.getType(). See below for more details.

Tests: ClipboardTests.ConvertTIFFToPNGWhenPasting

editing/async-clipboard/clipboard-read-write-images.html

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::getType):
(WebCore::Clipboard::updateSessionValidity):

Factor out logic for invalidating the Clipboard's active Pasteboard object into a helper method. This is
invoked after reading data from the clipboard, and verifies that the changeCount of the pasteboard is still the
same as it was upon initially reading the contents of the clipboard. If the clipboard contents changed, we
invalidate the session, and Clipboard is subsequently denied pasteboard access (until the next time the user
explicitly grants programmatic pasteboard access).

Note that this step is here for correctness rather than security. While it is true that a compromised web
process could fake the changeCount at any given moment, other fairly recent changes around WebPasteboardProxy in
the UI process makes it impossible to take advantage of this fact to arbitrarily read content from the system
pasteboard. Instead of simply reading the empty string, this invalidation ensures that we actually reject the
promise returned by the async clipboard API.

  • Modules/async-clipboard/Clipboard.h:
  • Modules/async-clipboard/ClipboardImageReader.cpp: Added.

Add a PasteboardFileReader subclass that is responsible for sanitizing image data from the pasteboard into
data that may be exposed to the page via clipboard API. On both macOS and iOS, this ensures that potentially
sensitive EXIF data is stripped via conversion to the platform image type and back. On macOS, this additionally
allows us to handle transcoding TIFF data on the pasteboard to PNG (this is covered by the new API test).

(WebCore::ClipboardImageReader::readBuffer):

Add a stub implementation for non-Cocoa platforms for now, which don't implement this part of the API.

(WebCore::ClipboardImageReader::shouldReadBuffer const):

Add a new hook to skip over certain types when reading pasteboard data into Files. In particular,
ClipboardImageReader skips over any MIME type that does not match the MIME type specified (for now, this is
limited to "image/png", but may be extended to include more image types in the future after we implement more
transcoding logic).

  • Modules/async-clipboard/ClipboardImageReader.h: Added.

(WebCore::ClipboardImageReader::ClipboardImageReader):
(WebCore::ClipboardImageReader::takeResult):

  • Modules/async-clipboard/ios/ClipboardImageReaderIOS.mm: Added.

(WebCore::ClipboardImageReader::readBuffer):

Add iOS-specific (PNG) => PNG transcoding logic.

  • Modules/async-clipboard/mac/ClipboardImageReaderMac.mm: Added.

(WebCore::ClipboardImageReader::readBuffer):

Add macOS-specific (PNG, TIFF) => PNG transcoding logic.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Pasteboard.h:

(WebCore::PasteboardFileReader::shouldReadBuffer const):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::read):

Add support for targeting a given pasteboard item index when reading files on Cocoa platforms.

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::read):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::safeTypeForDOMToReadAndWriteForPlatformType):
(WebCore::webSafeTypes):
(WebCore::PlatformPasteboard::informationForItemAtIndex):

Expose "image/png" as one of the readable pasteboard types on iOS when using the async clipboard API. For some
reason, this adjustment was made on macOS, but wasn't done on iOS, which led to a missing "image/png" type when
asking for ClipboardItem.types.

(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):

Add support for writing "image/png "data to the system pasteboard (note that this data has been sanitized
already, as it has been processed through ClipboardItemTypeLoader::sanitizeDataIfNeeded()). We simply needed
to use forEachPlatformStringOrBuffer instead of just forEachPlatformString when writing the custom
pasteboard data.

(WebCore::createItemProviderRegistrationList):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::read):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::read):

Source/WebCore/PAL:

Soft link UIImagePNGRepresentation.

  • pal/ios/UIKitSoftLink.h:
  • pal/ios/UIKitSoftLink.mm:

Tools:

Add a new API test to verify that TIFF images on the system pasteboard on macOS are automatically converted to
PNG data, and is accessible through ClipboardItem through the "image/png" type.

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

LayoutTests:

Add a new layout test to verify that Clipboard.write and Clipboard.read can be used to copy and then read
back PNG image data.

  • editing/async-clipboard/clipboard-read-write-images-expected.txt: Added.
  • editing/async-clipboard/clipboard-read-write-images.html: Added.
  • editing/async-clipboard/resources/async-clipboard-helpers.js:

(sampleBase64PNGImageData1):
(sampleBase64PNGImageData2):
(imageBlob):
(sampleBase64PNGImageData): Deleted.

  • platform/win/TestExpectations:
12:48 PM Changeset in webkit [262208] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r254541): Valid mime types can only be added to the HashSet of the supported types for encoding
https://bugs.webkit.org/show_bug.cgi?id=212427

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-27
Reviewed by Darin Adler.

Add back a check for the mime type validity which was removed in r254541.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):

12:35 PM Changeset in webkit [262207] by pvollan@apple.com
  • 7 edits in trunk

Unreviewed, reverting r260840.

This patch is no longer needed after preferences root cause
has been fixed.

Reverted changeset:

"[Cocoa] Global preferences are not accessible in the
WebContent process when CFPrefs direct mode is enabled"
https://bugs.webkit.org/show_bug.cgi?id=211075
https://trac.webkit.org/changeset/260840

12:24 PM Changeset in webkit [262206] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebCore/page/PointerCaptureController.cpp

Apply patch. rdar://problem/63626656

12:10 PM Changeset in webkit [262205] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix -Wcomment build warning after r261986
https://bugs.webkit.org/show_bug.cgi?id=211950
<rdar://problem/63482718>

If we replace the /* with /&ast; then GCC won't complain that it looks like a comment.

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

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_class_init):

11:18 AM Changeset in webkit [262204] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Adjust HTTP3 label to the more correct HTTP/3
https://bugs.webkit.org/show_bug.cgi?id=212416
<rdar://problem/63514072>

Reviewed by Darin Adler.

No new tests. No change in behavior.

  • Shared/WebPreferences.yaml: Correct label.
11:09 AM Changeset in webkit [262203] by Devin Rousso
  • 64 edits
    96 copies
    2 adds
    4 deletes in trunk

Web Inspector: replace featureGuard and availability with a combined condition that accepts any macro
https://bugs.webkit.org/show_bug.cgi?id=210014

Reviewed by Brian Burg.

Previously, the generated InspectorBackendCommands.js would include code for things that the
backend doesn't actually support. By using actual macros and preprocessing that file, we can
ensure that the frontend doesn't incorrectly think that something is supported by the page
being inspected:

  • the Canvas commands and events related to shader programs/pipelines should only exist when the corresponding context type exists, namely ENABLE(WEBGL) and ENABLE(WEBGPU).
  • iOS doesn't support showing rulers, so create a variant of DOM.setInspectModeEnabled that only exists for PLATFORM(IOS_FAMILY) that doesn't have the showRulers optional parameter, as well as removing Page.setShowRulers entirely.
  • setting the forced appearance should only be possible if dark mode is supported.
  • web archives only exist if CF is used.

Source/JavaScriptCore:

  • inspector/protocol/CPUProfiler.json:
  • inspector/protocol/Canvas.json:
  • inspector/protocol/DOM.json:
  • inspector/protocol/IndexedDB.json:
  • inspector/protocol/Inspector.json:
  • inspector/protocol/Memory.json:
  • inspector/protocol/Page.json:
  • inspector/protocol/ServiceWorker.json:
  • Scripts/generate-derived-sources.sh:

Set CC if it hasn't already been set.

  • DerivedSources.make:
  • DerivedSources-input.xcfilelist:

Preprocess InspectorBackendCommands.js.in to get an accurate InspectorBackendCommands.js
that follows the logic/description above.

  • CMakeLists.txt:

Create a new InspectorBackendCommands target now that InspectorBackendCommands.js is
generated seprately from the rest of the protocol files.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_WEB_ARCHIVE since it's always enabled in wtf/PlatformEnableCocoa.h.

  • inspector/scripts/generate-inspector-protocol-bindings.py:

(generate_from_specification):
(generate_from_specification.load_specification):

  • inspector/scripts/codegen/generator.py:

(Generator.init):
(Generator.model):
(Generator.set_generator_setting):
(Generator.type_declarations_for_domain):
(Generator.commands_for_domain):
(Generator.events_for_domain):
(Generator.wrap_with_guard_for_condition): Added.
(Generator.platform): Deleted.
(Generator.can_generate_platform): Deleted.
(Generator.wrap_with_guard_for_domain): Deleted.
(Generator.wrap_with_guard): Deleted.

  • inspector/scripts/codegen/models.py:

(Frameworks):
(Protocol.parse_domain):
(Protocol.parse_type_declaration):
(Protocol.parse_command):
(Protocol.parse_event):
(Domain.init):
(TypeDeclaration.init):
(Command.init):
(Event.init):
(Platform): Deleted.
(Platform.init): Deleted.
(Platform.fromString): Deleted.
(Platforms): Deleted.
(Platforms.metaclass): Deleted.
(Platforms.metaclass.iter): Deleted.

  • inspector/scripts/codegen/generator_templates.py:

Remove platform as it is handled by condition.

  • inspector/scripts/codegen/preprocess.pl: Copied from Source/WebCore/bindings/scripts/preprocessor.pm.
  • inspector/scripts/codegen/generate_js_backend_commands.py:

(JSBackendCommandsGenerator.output_filename):
(JSBackendCommandsGenerator.generate_domain):
Output to InspectorBackendCommands.js.in that includes #if for preprocessing.

  • inspector/scripts/codegen/cpp_generator_templates.py:
  • inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:

(CppAlternateBackendDispatcherHeaderGenerator.generate_output):
(CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:

(CppBackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.Alternate):
(CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
(CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator.generate_output):
(CppBackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:

(CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
(CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_event):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:

(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator._generate_versions):

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
(CppProtocolTypesImplementationGenerator._generate_builders_for_domain):

  • inspector/scripts/codegen/objc_generator_templates.py:
  • inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:

(ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):
(ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declaration_for_command):

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:

(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain):
(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_command):

  • inspector/scripts/codegen/generate_objc_header.py:

(add_newline):
(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_forward_declarations):
(ObjCHeaderGenerator._generate_enums):
(ObjCHeaderGenerator._generate_types):
(ObjCHeaderGenerator._generate_type_interface):
(ObjCHeaderGenerator._generate_command_protocols):
(ObjCHeaderGenerator._generate_single_command_protocol):
(ObjCHeaderGenerator._generate_event_interfaces):
(ObjCHeaderGenerator._generate_single_event_interface):
(ObjCHeaderGenerator._generate_enum_for_platforms): Deleted.

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:

(add_newline):
(ObjCProtocolTypeConversionsHeaderGenerator.generate_output):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_for_platforms): Deleted.

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(add_newline):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_declaration):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation):

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(add_newline):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementations):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementation):
Wrap each domain, type, command, and event with the associated condition (if it exists).

  • inspector/scripts/tests/command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/command-targetType-matching-domain-debuggableType.json.
  • inspector/scripts/tests/commands-with-async-attribute.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json.
  • inspector/scripts/tests/commands-with-optional-call-return-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json.
  • inspector/scripts/tests/definitions-with-mac-platform.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json.
  • inspector/scripts/tests/domain-debuggableTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-debuggableTypes.json.
  • inspector/scripts/tests/domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetType-matching-domain-debuggableType.json.
  • inspector/scripts/tests/domain-targetTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetTypes.json.
  • inspector/scripts/tests/domains-with-varying-command-sizes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json.
  • inspector/scripts/tests/enum-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json.
  • inspector/scripts/tests/event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/event-targetType-matching-domain-debuggableType.json.
  • inspector/scripts/tests/events-with-optional-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json.
  • inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/command-targetType-matching-domain-debuggableType.json-result.
  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result.
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result.
  • inspector/scripts/tests/expected/definitions-with-mac-platform.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result.
  • inspector/scripts/tests/expected/domain-debuggableTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-debuggableTypes.json-result.
  • inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetType-matching-domain-debuggableType.json-result.
  • inspector/scripts/tests/expected/domain-targetTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetTypes.json-result.
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result.
  • inspector/scripts/tests/expected/enum-values.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result.
  • inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/event-targetType-matching-domain-debuggableType.json-result.
  • inspector/scripts/tests/expected/events-with-optional-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result.
  • inspector/scripts/tests/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error.
  • inspector/scripts/tests/expected/fail-on-command-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-type.json-error.
  • inspector/scripts/tests/expected/fail-on-command-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-value.json-error.
  • inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-type.json-error.
  • inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-value.json-error.
  • inspector/scripts/tests/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error.
  • inspector/scripts/tests/expected/fail-on-domain-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-type.json-error.
  • inspector/scripts/tests/expected/fail-on-domain-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-value.json-error.
  • inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error.
  • inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error.
  • inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error.
  • inspector/scripts/tests/expected/fail-on-duplicate-type-declarations.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error.
  • inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error.
  • inspector/scripts/tests/expected/fail-on-enum-with-no-values.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error.
  • inspector/scripts/tests/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error.
  • inspector/scripts/tests/expected/fail-on-event-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-type.json-error.
  • inspector/scripts/tests/expected/fail-on-event-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-value.json-error.
  • inspector/scripts/tests/expected/fail-on-number-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error.
  • inspector/scripts/tests/expected/fail-on-number-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error.
  • inspector/scripts/tests/expected/fail-on-string-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error.
  • inspector/scripts/tests/expected/fail-on-string-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error.
  • inspector/scripts/tests/expected/fail-on-type-declaration-using-type-reference.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error.
  • inspector/scripts/tests/expected/fail-on-type-reference-as-primitive-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error.
  • inspector/scripts/tests/expected/fail-on-type-with-lowercase-name.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error.
  • inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-declaration.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error.
  • inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error.
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result.
  • inspector/scripts/tests/expected/same-type-id-different-domain.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result.
  • inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result.
  • inspector/scripts/tests/expected/should-strip-comments.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/should-strip-comments.json-result.
  • inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result.
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result.
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result.
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result.
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result.
  • inspector/scripts/tests/expected/type-with-open-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result.
  • inspector/scripts/tests/expected/version.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/version.json-result.
  • inspector/scripts/tests/fail-on-command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetType-matching-domain-debuggableType.json.
  • inspector/scripts/tests/fail-on-command-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-type.json.
  • inspector/scripts/tests/fail-on-command-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-value.json.
  • inspector/scripts/tests/fail-on-domain-debuggableTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-type.json.
  • inspector/scripts/tests/fail-on-domain-debuggableTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-value.json.
  • inspector/scripts/tests/fail-on-domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetType-matching-domain-debuggableType.json.
  • inspector/scripts/tests/fail-on-domain-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-type.json.
  • inspector/scripts/tests/fail-on-domain-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-value.json.
  • inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json.
  • inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json.
  • inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json.
  • inspector/scripts/tests/fail-on-duplicate-type-declarations.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json.
  • inspector/scripts/tests/fail-on-duplicate-type-member-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json.
  • inspector/scripts/tests/fail-on-enum-with-no-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json.
  • inspector/scripts/tests/fail-on-event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetType-matching-domain-debuggableType.json.
  • inspector/scripts/tests/fail-on-event-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-type.json.
  • inspector/scripts/tests/fail-on-event-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-value.json.
  • inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json.
  • inspector/scripts/tests/fail-on-number-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json.
  • inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json.
  • inspector/scripts/tests/fail-on-string-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json.
  • inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json.
  • inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json.
  • inspector/scripts/tests/fail-on-type-with-lowercase-name.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json.
  • inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json.
  • inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json.
  • inspector/scripts/tests/generate-domains-with-feature-guards.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json.
  • inspector/scripts/tests/same-type-id-different-domain.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json.
  • inspector/scripts/tests/shadowed-optional-type-setters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json.
  • inspector/scripts/tests/should-strip-comments.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/should-strip-comments.json.
  • inspector/scripts/tests/type-declaration-aliased-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json.
  • inspector/scripts/tests/type-declaration-array-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json.
  • inspector/scripts/tests/type-declaration-enum-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json.
  • inspector/scripts/tests/type-declaration-object-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json.
  • inspector/scripts/tests/type-requiring-runtime-casts.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json.
  • inspector/scripts/tests/type-with-open-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-with-open-parameters.json.
  • inspector/scripts/tests/version.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/version.json.
  • inspector/scripts/tests/generic/definitions-with-mac-platform.json: Removed.
  • inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Removed.
  • inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Removed.
  • inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Removed.
  • inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Removed.
  • inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Removed.
  • inspector/scripts/tests/ios/definitions-with-mac-platform.json: Removed.
  • inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Removed.
  • inspector/scripts/tests/all/definitions-with-mac-platform.json: Removed.
  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Removed.

Don't separate the inspector generator tests by platform.

Source/WebCore:

  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorInstrumentation.cpp:
  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::reset):
(WebCore::InspectorCanvasAgent::unbindCanvas):

  • inspector/InspectorShaderProgram.h:
  • inspector/InspectorShaderProgram.cpp:

(WebCore::InspectorShaderProgram::requestShaderSource):
(WebCore::InspectorShaderProgram::updateShader):

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

(WebCore::InspectorDOMAgent::setInspectModeEnabled):

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

(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::setForcedAppearance):
(WebCore::InspectorPageAgent::archive):

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_WEB_ARCHIVE since it's always enabled in wtf/PlatformEnableCocoa.h.

  • inspector/InspectorFrontendHost.idl:

Drive-by: replace the #if with the IDL [Conditional=].

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_WEB_ARCHIVE since it's always enabled in wtf/PlatformEnableCocoa.h.

Source/WebInspectorUI:

  • CMakeLists.txt:

Add a dependency on the new InspectorBackendCommands target.

  • UserInterface/Base/Main.js:

(WI._updateDownloadTabBarButton):

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_WEB_ARCHIVE since it's always enabled in wtf/PlatformEnableCocoa.h.

  • DerivedSources.make:
  • PlatformMac.cmake:

Remove platform as it is handled by condition.

  • UIProcess/Automation/Automation.json:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_WEB_ARCHIVE since it's always enabled in wtf/PlatformEnableCocoa.h.

Tools:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_WEB_ARCHIVE since it's always enabled in wtf/PlatformEnableCocoa.h.

  • Scripts/webkitpy/inspector/main.py:

(InspectorGeneratorTests.generate_from_json):
(InspectorGeneratorTests.run_tests):
(InspectorGeneratorTests.main):

11:04 AM Changeset in webkit [262202] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ macOS ] http/tests/media/now-playing-info.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206699

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Remove flaky expectation since the test is consistently passing.
10:52 AM Changeset in webkit [262201] by ChangSeok Oh
  • 3 edits in trunk

[GTK] Manette_INCLUDE_DIR and Manette_LIBRARY are undefined.
https://bugs.webkit.org/show_bug.cgi?id=212236

Reviewed by Michael Catanzaro.

The cmake complains Manette_INCLUDE_DIR and Manette_LIBRARY are missing
in finding the manette package where GAMEPAD is enabled for the gtk port.
In r261965, we thought they would be automatically defined with IMPORTED_TARGET
but they seem not. We explicitly find the header and library paths, following FindOpenJPEG.cmake.

  • Source/cmake/FindManette.cmake:
  • Source/cmake/OptionsGTK.cmake: REQUIRED removed.
10:40 AM Changeset in webkit [262200] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[Quirk] Remove stackoverflow.com desktop content quirk.
https://bugs.webkit.org/show_bug.cgi?id=212414

Reviewed by Antti Koivisto.

Mobile content is fixed now.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest):

10:22 AM Changeset in webkit [262199] by Darin Adler
  • 2 edits in trunk/Source/WTF

Sort PlatformEnableCocoa.h and add definitions for the simple cases from FeatureDefines.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212389

Reviewed by Anders Carlsson.

Added more PlatformEnableCocoa.h; allowing us to later remove things from
FeatureDefines.xcconfig (patch forthcoming).

  • wtf/PlatformEnableCocoa.h: Added definitions from FeatureDefines.xcconfig that

were simple, and that differ from the defaults in PlatformEnable.h. That includes
3D_TRANSFORMS, ACCESSIBILITY_ISOLATED_TREE (macOS >= 10.6), APPLICATION_MANIFEST,
ASYNC_SCROLLING, ATTACHMENT_ELEMENT, AVF_CAPTIONS, CACHE_PARTITIONING,
CSS_COMPOSITING, CSS_PAINTING_API, CSS_SCROLL_SNAP, CSS_SELECTORS_LEVEL4,
CSS_TRAILING_WORD, CSS_TYPED_OM, DATACUE_VALUE, DATALIST_ELEMENT, FILTERS_LEVEL_2,
GPU_PROCESS, INDEXED_DATABASE, INDEXED_DATABASE_IN_WORKERS, INSPECTOR_TELEMETRY,
INTERSECTION_OBSERVER, LAYOUT_FORMATTING_CONTEXT, LEGACY_CSS_VENDOR_PREFIXES,
LEGACY_CUSTOM_PROTOCOL_MANAGER, MEDIA_CONTROLS_SCRIPT, MEMORY_SAMPLER,
MOUSE_CURSOR_SCALE (macOS), NETWORK_CACHE_SPECULATIVE_REVALIDATION,
NETWORK_CACHE_STALE_WHILE_REVALIDATE, NOTIFICATIONS (macOS), PDFKIT_PLUGIN (macOS),
PERIODIC_MEMORY_MONITOR (macOS), PUBLIC_SUFFIX_LIST, RESIZE_OBSERVER,
RESOURCE_LOAD_STATISTICS, RUBBER_BANDING (macOS), SANDBOX_EXTENSIONS,
SERVER_PRECONNECT, SERVICE_CONTROLS (macOS), SHAREABLE_RESOURCE,
TELEPHONE_NUMBER_DETECTION, TEXT_AUTOSIZING, USERSELECT_ALL, USER_MESSAGE_HANDLERS,
VARIATION_FONTS, VIDEO, VIDEO_USES_ELEMENT_FULLSCREEN (macOS),
WEBDRIVER_KEYBOARD_INTERACTIONS, WEBDRIVER_MOUSE_INTERACTIONS (macOS),
WEBGL, WEBGL2, WEB_AUDIO, WEB_CRYPTO, and WIRELESS_PLAYBACK_TARGET. Sorted and
merged all the existing settings.

9:59 AM Changeset in webkit [262198] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] fast/mediastream/mock-media-source-webaudio.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=212413

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:28 AM Changeset in webkit [262197] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

in_structure_property needs to handle constants on the RHS of the "in"
https://bugs.webkit.org/show_bug.cgi?id=212399

Reviewed by Saam Barati.

JSTests:

  • stress/for-in-in-structure-property-constant-virtual-register.js: Added.

Source/JavaScriptCore:

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

9:11 AM Changeset in webkit [262196] by Chris Dumez
  • 3 edits
    3 adds in trunk

Crash under WebNotificationManager::removeNotificationFromContextMap()
https://bugs.webkit.org/show_bug.cgi?id=212410
<rdar://63496726>

Reviewed by Alex Christensen.

Source/WebKit:

Protect the notification object in WebNotificationManager::didDestroyNotification() since
removing it from m_notificationIDMap will deref it and may end up destroying the notification
object otherwise.

Test: http/tests/notifications/crash-on-navigation.html

  • WebProcess/Notifications/WebNotificationManager.cpp:

(WebKit::WebNotificationManager::didDestroyNotification):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/crash-on-navigation-expected.txt: Added.
  • http/tests/notifications/crash-on-navigation.html: Added.
  • http/tests/notifications/resources/crash-on-navigation-iframe.html: Added.
8:45 AM Changeset in webkit [262195] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Catalina wk2 ] webrtc/video-autoplay1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209018

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
6:25 AM Changeset in webkit [262194] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[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:04 AM Changeset in webkit [262193] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. [GTK] Make webkitWebViewBaseSnapshot static

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSnapshot):

5:03 AM Changeset in webkit [262192] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix build warning with GTK4

  • platform/gtk/GtkUtilities.cpp:

(WebCore::widgetRootCoords):

3:34 AM Changeset in webkit [262191] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Update openxr recipe
https://bugs.webkit.org/show_bug.cgi?id=212403

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-27
Reviewed by Sergio Villar Senin.

  • buildstream/elements/sdk/openxr.bst: Explicitely list dependencies and bump to latest git master.
3:23 AM Changeset in webkit [262190] by ddkilzer@apple.com
  • 15 edits in trunk/Source

Use OptionSet<DragDestinationAction> for mask values
<https://webkit.org/b/212115>
<rdar://problem/63423380>

Reviewed by Alex Christensen.

Source/WebCore:

DragDestinationAction is used as both individual values and as a
bit mask. This changes bit mask uses to OptionSet<> and renames
variables to denote masks.

  • page/DragActions.h:

(WebCore::DragDestinationAction):

  • Convert to enum class and remove *None and *Any values.

(WebCore::DragDestinationActionAny):

  • Add helper function to return OptionSet<DragDestinationAction> with all values set.
  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):

  • page/DragController.h:

(WebCore::DragController::dragDestinationAction const): Rename.
(WebCore::DragController::dragDestinationActionMask const):

  • Rename dragDestinationAction() to dragDestinationActionMask().
  • platform/DragData.cpp:

(WebCore::DragData::DragData):

  • platform/DragData.h:

(WebCore::DragData::DragData):

  • Use DragDestinationActionAny() in place of removed DragDestinationActionAny.

(WebCore::DragData::dragDestinationAction const): Rename.
(WebCore::DragData::dragDestinationActionMask const):

  • Rename dragDestinationAction() to dragDestinationActionMask().

(WebCore::DragData::operator =):

  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):

  • Switch from decodeEnum() and encodeEnum() to modern equivalents that check for valid enum values.
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragDataForDropSession:dragDestinationAction:]):

  • WebProcess/WebCoreSupport/WebDragClient.cpp:

(WebKit::WebDragClient::willPerformDragDestinationAction):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebDragClient.mm:

(WebDragClient::willPerformDragDestinationAction):

  • WebView/WebView.mm:

(-[WebView dragDataForSession:client:global:operation:]):
(-[WebView actionMaskForDraggingInfo:]):

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

Video freezes when attaching a local MediaStream to multiple elements
https://bugs.webkit.org/show_bug.cgi?id=194802
<rdar://problem/63613107>

Reviewed by Eric Carlson.

AVSampleBufferDisplayLayer sometimes does not update the rendering when the same local source is rendered several times.
To workaround this, we set kCMSampleAttachmentKey_DisplayImmediately to true, which fixes the issue as per my testing.
We clone the sample buffer before setting this property as it might not be thread safe to modify the attachments of a sample
that might also be encoded.
We implement this at LocalSampleBufferDisplayLayer level and enable this for local capture sources only.

Manually tested.

  • platform/graphics/avfoundation/SampleBufferDisplayLayer.h:

(WebCore::SampleBufferDisplayLayer::setRenderPolicy):

  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:

(WebCore::LocalSampleBufferDisplayLayer::setRenderPolicy):

  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::removeOldSamplesFromPendingQueue):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::setSampleBufferAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::setAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::cloneSampleBuffer):

2:36 AM Changeset in webkit [262188] by svillar@igalia.com
  • 11 edits
    3 adds in trunk

[WebXR] Implement XRSession::requestAnimationFrame()
https://bugs.webkit.org/show_bug.cgi?id=212099

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/xrSession_cancelAnimationFrame.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt: Added.

Source/WebCore:

The WebXR spec defines a requestAnimationFrame() mechanism to provide information about XR tracking devices
using callbacks. It's pretty similar to the requestAnimationFrame() exposed by Window but only used
to update WebXR content. We're adding a basic implementation of this mechanism as long as cancellation
support. It requires some platform code that will be added in follow up patches. That platform code will
provide information like devices' refresh rates, pose (position & orientation), display resolution, etc...

This patch also replaces the type of the callback id from int to unsigned int as per the following change
in specs https://github.com/immersive-web/webxr/pull/1062.

Apart from that we're adding a missing adoptRef() in the testing code that was causing assertions in some
of the tests that are being unskipped as part of this change.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::animationTimerFired): Added.
(WebCore::WebXRSession::scheduleAnimation): Ditto.
(WebCore::WebXRSession::requestAnimationFrame): Ditto.
(WebCore::WebXRSession::cancelAnimationFrame):

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/XRFrameRequestCallback.h:

(WebCore::XRFrameRequestCallback::callbackId):
(WebCore::XRFrameRequestCallback::setCallbackId):
(WebCore::XRFrameRequestCallback::cancel):
(WebCore::XRFrameRequestCallback::isCancelled const):

  • testing/WebFakeXRDevice.cpp:

(WebCore::WebFakeXRDevice::simulateInputSourceConnection):

  • testing/WebFakeXRDevice.h:
  • testing/WebFakeXRInputController.h:

LayoutTests:

  • platform/wpe/TestExpectations: Unskipped several tests that are now passing.
1:09 AM Changeset in webkit [262187] by Carlos Garcia Campos
  • 15 edits in trunk/Source

[GTK4] Make PointerLock work
https://bugs.webkit.org/show_bug.cgi?id=212314

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • platform/gtk/GtkUtilities.cpp:

(WebCore::widgetDevicePosition): Helper function to avoid #ifdefs due to GTK version differences.

  • platform/gtk/GtkUtilities.h:

Source/WebKit:

Use XLib API for warp and grab, since they are no longer available in GTK4. The grab was not actuially needed
under Wayland. Also stop using GdkEvent to keep track of motion events and create the PointerLockManager to be
able to test pointer lock and movement delta.

  • Shared/NativeWebMouseEvent.h:
  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Use FloatSize instead of FloatPoint for movement delta.

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebMouseEvent): Ditto.

  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(MotionEvent::MotionEvent): Helper struct to keep track of motion events without using GdkEvent.
(MotionEvent::delta): Return the movement delta for the given current event.
(webkitWebViewBaseHandleMouseEvent): Use MotionEvent instead of GdkEvent.
(webkitWebViewBaseMotionNotifyEvent): Pass the event coordinates to the pointer lock manager since that's the
only thing needed.
(webkitWebViewBaseRequestPointerLock): Use MotionEvent instead of GdkEvent.
(webkitWebViewBaseDidLosePointerLock): Remove GTK4 ifdefs.
(webkitWebViewBaseSynthesizeMouseEvent): Forward the event to the pointer lock manager if present. Also keep
track of the motion event and set the movement delta.

  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::create): Receive event information as parameters instead of using GdkEvent.
(WebKit::PointerLockManager::PointerLockManager): Ditto.
(WebKit::PointerLockManager::~PointerLockManager):
(WebKit::PointerLockManager::lock): Remove the grab.
(WebKit::PointerLockManager::unlock): Remove the ungrab.
(WebKit::PointerLockManager::handleMotion): Use NativeWebMouseEvent constructor taking all information as parameters.

  • UIProcess/gtk/PointerLockManager.h:
  • UIProcess/gtk/PointerLockManagerWayland.cpp:

(WebKit::PointerLockManagerWayland::PointerLockManagerWayland): Receive event information as parameters instead of using GdkEvent.
(WebKit::PointerLockManagerWayland::lock): Hide the cursor.
(WebKit::PointerLockManagerWayland::unlock): Unhide the cursor.

  • UIProcess/gtk/PointerLockManagerWayland.h:
  • UIProcess/gtk/PointerLockManagerX11.cpp:

(WebKit::PointerLockManagerX11::PointerLockManagerX11): Receive event information as parameters instead of using GdkEvent.
(WebKit::PointerLockManagerX11::lock): Use XGrabPointer.
(WebKit::PointerLockManagerX11::unlock): Use XUngrabPointer.
(WebKit::PointerLockManagerX11::didReceiveMotionEvent): Use XWarpPointer.

  • UIProcess/gtk/PointerLockManagerX11.h:
12:53 AM Changeset in webkit [262186] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, build warning fix after r261986

  • UIProcess/API/glib/WebKitSettings.cpp: A colon is needed after the transfer annotation.
12:50 AM Changeset in webkit [262185] by Peng Liu
  • 6 edits in trunk/Source

VideoFullscreenInterfaceAVKit is leaking when a video element enters and exits fullscreen/picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=212293

Source/WebCore:

Reviewed by Youenn Fablet.

WebAVPlayerViewControllerDelegate is created and retained by VideoFullscreenInterfaceAVKit,
but it has a RefPtr to VideoFullscreenInterfaceAVKit. This leads to a memory leak
when a video element enters and exit fullscreen or Picture-in-Picture. This patch
replaces the RefPtr with a WeakPtr to fix the leak.

With this patch, we config playerController in VideoFullscreenInterfaceAVKit::setupFullscreen()
and VideoFullscreenInterfaceAVKit::cleanupFullscreen(), so that we can avoid relying on
VideoFullscreenManagerProxy::setHasVideo() and VideoFullscreenManagerProxy::setVideoDimensions().
Those two functions are driven by IPC messages from the Web process, which may come before
VideoFullscreenInterfaceAVKit is constructed or after VideoFullscreenInterfaceAVKit
is destroyed.

Manually tested.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewControllerDelegate setFullscreenInterface:]):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):

Source/WebKit:

VideoFullscreenManagerProxy::ensureInterface() makes sure a fullscreen interface object exists (an object
will be created if it does not exit). That means an extra object will be created by an IPC message from
the Web process after the original video fullscreen interface object has been destroyed (thats happens
when a video element is returning to inline from fullscreen or picture-in-picture).

Reviewed by Youenn Fablet.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::setHasVideo):
Don't call VideoFullscreenInterface[AVKit|Mac]::hasVideoChanged() before the instance of
VideoFullscreenInterface[AVKit|Mac] is ready.
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
Don't call VideoFullscreenInterface[AVKit|Mac]::videoDimensionsChanged() after the instance of
VideoFullscreenInterface[AVKit|Mac] is destroyed.

12:49 AM Changeset in webkit [262184] by Carlos Garcia Campos
  • 23 edits
    1 copy
    1 delete in trunk

[GTK][WTR] EventSender: stop using GdkEvent API in preparation for GTK4
https://bugs.webkit.org/show_bug.cgi?id=212298

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add helpers to GtkUtilities to avoid #ifdefs due to GTK version differences.

  • platform/gtk/GtkUtilities.cpp:

(WebCore::widgetRootCoords):
(WebCore::widgetKeyvalToKeycode):

  • platform/gtk/GtkUtilities.h:

Source/WebKit:

Add internal API to WebKitWebViewBase to synthesize events, because with GTK4 it's not possible to
create events. In the case of layout tests, the web view is always the target of the events, so we don't really
need to send the events to GTK to process them.

  • Shared/NativeWebKeyboardEvent.h: Add new constructor that doesn't receive a GdkEvent.
  • Shared/NativeWebMouseEvent.h: Ditto.
  • Shared/NativeWebWheelEvent.h: Ditto.
  • Shared/gtk/NativeWebKeyboardEventGtk.cpp:

(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Create without a GdkEvent.

  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Ditto.

  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent): Ditto.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithKeyEvent): Return early if event doesn't have a GdkEvent.
(WebKit::PageClientImpl::doneWithTouchEvent): Ditto.
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Ditto.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(toWebKitModifiers):
(webkitWebViewBaseSynthesizeMouseEvent):
(webkitWebViewBaseSynthesizeKeyEvent):
(toWebKitWheelEventPhase):
(webkitWebViewBaseSynthesizeWheelEvent):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h: Added.
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::activePopupMenu const): Return the active popup menu proxy.

  • UIProcess/gtk/KeyBindingTranslator.cpp:

(WebKit::handleKeyBindingsForMap): Make it generic by receiving the map as parameter.
(WebKit::handleCustomKeyBindings): Call handleKeyBindingsForMap() passing the custom key bindings map.
(WebKit::KeyBindingTranslator::commandsForKeyval): Get commands for the predefined key bindings. This is used
only when synthesizing key events since we don't have a GdkEVent to forward to the GtkTextView.

  • UIProcess/gtk/KeyBindingTranslator.h:
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::popupMenuWidget): Take a ref of the GdkWindow when creating the GdkEvent, since the event will unref it
on destroy.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::handleKeyPress): Handle a key press event from its keyval and timestamp.
(WebKit::WebPopupMenuProxyGtk::activateSelectedItem): Activate the currently selected item.
(WebKit::WebPopupMenuProxyGtk::keyPressEventCallback): Call handleKeyPress().
(WebKit::WebPopupMenuProxyGtk::typeAheadFindIndex): Receive a keyval and timestamp instead of a GdkEvent.
(WebKit::WebPopupMenuProxyGtk::typeAheadFind): Ditto.

  • UIProcess/gtk/WebPopupMenuProxyGtk.h:

Tools:

Use WebKitWebViewBase internal API to synthesize events instead of GdkEvents. The touch events support has been
removed because we are no longer testing touch events, since they need an actual touchscreen.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::getGDKKeySymForKeyRef):
(WTR::toWebKitGLibAPI):
(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::leapForward):
(WTR::EventSenderProxy::addTouchPoint):
(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::touchStart):
(WTR::EventSenderProxy::touchMove):
(WTR::EventSenderProxy::touchEnd):
(WTR::EventSenderProxy::touchCancel):
(WTR::EventSenderProxy::clearTouchPoints):
(WTR::EventSenderProxy::releaseTouchPoint):
(WTR::EventSenderProxy::cancelTouchPoint):
(WTR::EventSenderProxy::setTouchPointRadius):
(WTR::EventSenderProxy::setTouchModifier):

LayoutTests:

Update expectations for tests that are passing now.

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/selection/5195166-1-expected.txt: Removed.
12:48 AM Changeset in webkit [262183] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r261277): [ Mac iOS ] webrtc/datachannel/gather-candidates-networkprocess-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=212218
<rdar://problem/63496692>

Reviewed by Eric Carlson.

  • webrtc/datachannel/gather-candidates-networkprocess-crash.html:

Create a new peer connection after the network process crash to validate it does not stay hanging.

12:40 AM Changeset in webkit [262182] by Keith Rollin
  • 8 edits in trunk/Source

Enable the use of XCBuild by default in Apple builds
https://bugs.webkit.org/show_bug.cgi?id=209890
<rdar://problem/44182078>

Unreviewed build fix. Check the value of XCODE_VERSION_ACTUAL rather
than XCODE_VERSION_MAJOR when determining whether to use the XCBuild
or non-XCBuild method of running header post-processing scripts.

Source/JavaScriptCore:

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:

Source/WebKit:

No new tests -- this is a build fix.

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:
12:13 AM Changeset in webkit [262181] by Fujii Hironori
  • 67 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt:
  • platform/wincairo/css3/flexbox/flexbox-baseline-expected.txt:
  • platform/wincairo/fast/css-generated-content/details-summary-before-after-expected.txt:
  • platform/wincairo/fast/gradients/list-item-gradient-expected.txt:
  • platform/wincairo/fast/html/details-add-child-1-expected.txt:
  • platform/wincairo/fast/html/details-add-child-2-expected.txt:
  • platform/wincairo/fast/html/details-add-details-child-1-expected.txt:
  • platform/wincairo/fast/html/details-add-details-child-2-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-1-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-1-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-10-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-10-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-2-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-2-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-3-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-3-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-4-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-4-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-5-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-5-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-6-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-6-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-7-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-7-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-8-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-8-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-9-and-click-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-9-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-child-1-expected.txt:
  • platform/wincairo/fast/html/details-add-summary-child-2-expected.txt:
  • platform/wincairo/fast/html/details-marker-style-expected.txt:
  • platform/wincairo/fast/html/details-nested-1-expected.txt:
  • platform/wincairo/fast/html/details-nested-2-expected.txt:
  • platform/wincairo/fast/html/details-no-summary1-expected.txt:
  • platform/wincairo/fast/html/details-no-summary2-expected.txt:
  • platform/wincairo/fast/html/details-no-summary3-expected.txt:
  • platform/wincairo/fast/html/details-no-summary4-expected.txt:
  • platform/wincairo/fast/html/details-open-javascript-expected.txt:
  • platform/wincairo/fast/html/details-open1-expected.txt:
  • platform/wincairo/fast/html/details-open2-expected.txt:
  • platform/wincairo/fast/html/details-open3-expected.txt:
  • platform/wincairo/fast/html/details-open4-expected.txt:
  • platform/wincairo/fast/html/details-open5-expected.txt:
  • platform/wincairo/fast/html/details-open6-expected.txt:
  • platform/wincairo/fast/html/details-position-expected.txt:
  • platform/wincairo/fast/html/details-remove-child-1-expected.txt:
  • platform/wincairo/fast/html/details-remove-child-2-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-1-and-click-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-1-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-2-and-click-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-2-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-3-and-click-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-3-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-4-and-click-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-4-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-5-and-click-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-5-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-6-and-click-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-6-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-child-1-expected.txt:
  • platform/wincairo/fast/html/details-remove-summary-child-2-expected.txt:
  • platform/wincairo/fast/html/details-replace-summary-child-expected.txt:
  • platform/wincairo/fast/html/details-replace-text-expected.txt:
  • platform/wincairo/fast/html/details-writing-mode-expected.txt:
  • platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
  • platform/wincairo/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-012-expected.txt:

May 26, 2020:

11:05 PM Changeset in webkit [262180] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

SMILTimeContainer must protect its m_scheduledAnimations while it does updateAnimations()
https://bugs.webkit.org/show_bug.cgi?id=212192
<rdar://problem/56717734>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-26
Reviewed by Youenn Fablet.

Source/WebCore:

updateAnimations() needs to protect m_scheduledAnimations while processing
the scheduled animations. m_scheduledAnimations may be changed from JavaScript
callbacks. This will invalidate the HashMap iterators while the one used
by the for-loop in updateAnimations() is still in use.

To allow copying m_scheduledAnimations, the value of the entry has to be
of type AnimationVector instead of std::unique_ptr<AnimationVector>.

Test: svg/animations/css-animation-reinsert-target.html

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::schedule):
(WebCore::SMILTimeContainer::unschedule):
(WebCore::SMILTimeContainer::processScheduledAnimations):
(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SMILTimeContainer.h:

LayoutTests:

  • svg/animations/css-animation-reinsert-target-expected.txt: Added.
  • svg/animations/css-animation-reinsert-target.html: Added.
10:19 PM Changeset in webkit [262179] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

MacApplication::isSafari should allow safari bundle id variants
https://bugs.webkit.org/show_bug.cgi?id=212401

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-26
Reviewed by Timothy Hatcher.

There is a test environment with bundle ID com.apple.Safari.something.
This change is blocking rdar://problem/63574451

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::MacApplication::isSafari):

10:19 PM Changeset in webkit [262178] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed WPE build fix after r262155.

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkit_color_parse): Use CSSParser::parseColor() to do the color parsing.

10:10 PM Changeset in webkit [262177] by Simon Fraser
  • 3 edits
    4 adds in trunk

Rendering artifacts when scrolling overlays
https://bugs.webkit.org/show_bug.cgi?id=204120
<rdar://problem/57121358>

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderLayerBacking::setContentsNeedDisplayInRect() needs to adjust repaint rects in the
scrolled contents layer by the RenderLayer's scrollOffset, because that's what's used
during repaint rect computation. We haven't yet pushed the new scroll offset onto the
GraphicsLayer, so m_scrolledContentsLayer->scrollOffset() would be stale here.

I tested RTL to make sure that scrollOffset(), and not scrollPosition() is the correct
function to tall.

Test: compositing/repaint/compositing-toggle-in-overflow-scroll-repaint.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):

LayoutTests:

  • compositing/repaint/compositing-toggle-in-overflow-scroll-repaint-expected.txt: Added.
  • compositing/repaint/compositing-toggle-in-overflow-scroll-repaint.html: Added.
  • platform/ios-wk2/compositing/repaint/compositing-toggle-in-overflow-scroll-repaint-expected.txt: Added.
  • platform/mac-wk1/compositing/repaint/compositing-toggle-in-overflow-scroll-repaint-expected.txt: Added.
9:44 PM Changeset in webkit [262176] by mark.lam@apple.com
  • 11 edits in trunk/JSTests

JSC stress tests that require --useLLInt=0 should be skipped on --no-jit test runs.
https://bugs.webkit.org/show_bug.cgi?id=212400

Reviewed by Saam Barati.

That's because using --useLLInt=0 and --useJIT=0 together is not a "coherent"
(read "valid") configuration. We should be able to do a --no-jit test run with
the JSC_useJIT=0 environmental variable set. Before this patch, the following
tests will all fail. This patch skips them.

  • stress/delete-property-poly-proto.js:
  • stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js:
  • stress/getter-setter-inlining-should-emit-movhint.js:
  • stress/merging-ic-variants-should-bail-if-structures-overlap.js:
  • stress/poly-proto-setter-adds-setter-in-middle.js:
  • stress/poly-proto-setter-changes-setter-2.js:
  • stress/poly-proto-setter-changes-setter.js:
  • stress/racy-gc-cleanup-of-identifier-after-mutator-stops-running.js:
  • stress/regress-192717.js:
  • stress/retry-cache-later.js:
9:01 PM Changeset in webkit [262175] by commit-queue@webkit.org
  • 9 edits
    4 adds in trunk

An SVG animated property animator can stop animation while other animators are still running
https://bugs.webkit.org/show_bug.cgi?id=207417
<rdar://problem/59278306>

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

Source/WebCore:

An SVG animated property can be animated by multiple animators. When one
animator stops the animation, the animVal should not be deleted since it
will be used by other animators.

SVGAnimatedProperty will maintain a WeakHashSet<SVGAttributeAnimator> in
which the animator will be added when the animation starts and will be
removed when the the animation stops. When all the animators stops their
animations, the animated property may delete the animVal or keep it if it
can be referenced by JavaScript.

Tests: svg/animations/animated-enum-mutiple-animators.svg

svg/animations/animated-length-mutiple-animators.svg

  • svg/properties/SVGAnimatedDecoratedProperty.h:
  • svg/properties/SVGAnimatedPrimitiveProperty.h:
  • svg/properties/SVGAnimatedProperty.h:

(WebCore::SVGAnimatedProperty::isAnimating const):
(WebCore::SVGAnimatedProperty::startAnimation):
(WebCore::SVGAnimatedProperty::stopAnimation):
(WebCore::SVGAnimatedProperty::instanceStartAnimation):
(WebCore::SVGAnimatedProperty::instanceStopAnimation):

  • svg/properties/SVGAnimatedPropertyAnimator.h:
  • svg/properties/SVGAnimatedPropertyList.h:
  • svg/properties/SVGAnimatedValueProperty.h:
  • svg/properties/SVGAttributeAnimator.h:

LayoutTests:

  • svg/animations/animated-enum-mutiple-animators-expected.txt: Added.
  • svg/animations/animated-enum-mutiple-animators.svg: Added.
  • svg/animations/animated-length-mutiple-animators-expected.txt: Added.
  • svg/animations/animated-length-mutiple-animators.svg: Added.
8:36 PM Changeset in webkit [262174] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (async oveflow): scrubber missing from inline video inside overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=212391
<rdar://problem/63089859>

Reviewed by Zalan Bujtas.

Source/WebCore:

backgroundClipRect() is in the coordinate space of the ClipRectContext's rootLayer, not the receiver,
so when converting to absolute coordinates we must use the ClipRectContext's rootLayer.

Test: compositing/layer-creation/overlap-in-scroller.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::addToOverlapMap const):

LayoutTests:

  • compositing/layer-creation/overlap-in-scroller-expected.html: Added.
  • compositing/layer-creation/overlap-in-scroller.html: Added.
7:42 PM Changeset in webkit [262173] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: ⌘G should not override the current query of the find banner if it's visible
https://bugs.webkit.org/show_bug.cgi?id=212395

Reviewed by Simon Fraser.

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.async handleFindNextShortcut):
(WI.ContentBrowser.prototype.async handleFindPreviousShortcut):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.highlightPreviousSearchMatch):
(WI.LogContentView.prototype.highlightNextSearchMatch):

7:09 PM Changeset in webkit [262172] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo] Unreviewed clang-cl build fix after r262158
https://bugs.webkit.org/show_bug.cgi?id=211883

std::unique_ptr<WebCore::TextureMapper> can't delete an incomplete type TextureMapper.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.h:
6:48 PM Changeset in webkit [262171] by commit-queue@webkit.org
  • 7 edits in trunk

UTF-8 encode strings of invalid URLs when converting WTF::URL to NSURL instead of truncating the UTF-16 encoding
https://bugs.webkit.org/show_bug.cgi?id=212393
<rdar://problem/63095503>

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

Source/WTF:

This only changes behavior in code that is marked as UNLIKELY because it can only be reached by invalid unicode URLs,
but it can be reached and should behave in a reasonable manner in those cases. This makes Safari behave more similarly
to Firefox in this case instead of doing something similar to no other browser.

  • wtf/URL.cpp:

(WTF::copyASCII): Deleted.
(WTF::URL::copyToBuffer const): Deleted.

  • wtf/URL.h:
  • wtf/cf/URLCF.cpp:

(WTF::URL::createCFURL const):

  • wtf/cocoa/URLCocoa.mm:

(WTF::URL::createCFURL const):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

5:36 PM Changeset in webkit [262170] by yoshiaki.jitsukawa@sony.com
  • 3 edits
    1 add in trunk/Source/WTF

[PlayStation] Disable LLINT_EMBEDDED_OPCODE_ID
https://bugs.webkit.org/show_bug.cgi?id=212387

Reviewed by Don Olmstead.

  • wtf/CMakeLists.txt:
  • wtf/PlatformEnable.h:
  • wtf/PlatformEnablePlayStation.h: Added.
5:21 PM Changeset in webkit [262169] by jer.noble@apple.com
  • 5 edits
    2 adds in trunk

Can't scrub video on https://www.judiciary.senate.gov
https://bugs.webkit.org/show_bug.cgi?id=212270
<rdar://problem/57922919>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-negative-time-expected.txt:

Source/WebCore:

Test: media/video-duration-seekable.html

www.judiciary.senate.gov uses the Akamai Media Player, which doesn't query HTMLMediaElement.duration
directly. Rather, when it receives a "durationchange" event, it calculates the duration by using the
HTMLMediaElement.seekable ranges to determine the effective media duration. But no event is fired when
the seekable ranges change, and when they first query HTMLMediaElement.seekable, AVFoundation hasn't
yet updated seekable ranges, so we report an empty set of seekable ranges.

The HTML specification suggests that UAs "should adopt a very liberal and optimistic view of what is
seekable." With that advice in mind, when we are asked by the page for our seekable ranges, and we do
not yet have the official ranges from AVPlayerItem, lets just respond with [0, duration).

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable const):

LayoutTests:

  • media/video-duration-seekable-expected.txt: Added.
  • media/video-duration-seekable.html: Added.
4:37 PM Changeset in webkit [262168] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add some new emitters to the X86_64 and ARM64 MacroAssemblers.
https://bugs.webkit.org/show_bug.cgi?id=212385

Reviewed by Robin Morisset.

This patch adds these MacroAssembler emitters:

clearBit64
clearBits64WithMask
countTrailingZeros64WithoutNullCheck

clearBit64 clears a bit.

clearBits64WithMask does the equivalent of and64 with the 1's complement of the
provided mask.

countTrailingZeros64WithoutNullCheck does the same thing as countTrailingZeros64,
except that it assumes that the word in the register it is processing will never
be null, and therefore skips the null check. This is useful in code generation
that already does a null check ahead of time. So, there's no need to do a
redundant null check.

Also added testmasm tests for these emitters.

  • assembler/AbortReason.h:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::clearBit64):
(JSC::MacroAssemblerARM64::clearBits64WithMask):
(JSC::MacroAssemblerARM64::countTrailingZeros64WithoutNullCheck):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::countTrailingZeros64WithoutNullCheck):
(JSC::MacroAssemblerX86_64::clearBit64):
(JSC::MacroAssemblerX86_64::clearBits64WithMask):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::btrq_rr):

  • assembler/testmasm.cpp:

(JSC::testClearBit64):
(JSC::testClearBits64WithMask):
(JSC::testClearBits64WithMaskTernary):
(JSC::testCountTrailingZeros64Impl):
(JSC::testCountTrailingZeros64):
(JSC::testCountTrailingZeros64WithoutNullCheck):
(JSC::run):

4:33 PM Changeset in webkit [262167] by mark.lam@apple.com
  • 4 edits in trunk

Enhance Bitmap::setEachNthBit() to also take an end index.
https://bugs.webkit.org/show_bug.cgi?id=212386
<rdar://problem/63643324>

Reviewed by Robin Morisset.

Source/WTF:

Previously, it was only taking the n interval, and the start index.
Also fixed isEmpty() and isFull() to return a bool instead of size_t.

  • wtf/Bitmap.h:

(WTF::WordType>::isEmpty const):
(WTF::WordType>::isFull const):
(WTF::WordType>::setEachNthBit):

Tools:

  • TestWebKitAPI/Tests/WTF/Bitmap.cpp:

(TestWebKitAPI::testBitmapSetEachNthBitImpl):

3:43 PM Changeset in webkit [262166] by yoshiaki.jitsukawa@sony.com
  • 4 edits in trunk/Source/JavaScriptCore

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

Reviewed by Don Olmstead.

  • API/JSRemoteInspectorServer.cpp:

Fix compile error.

  • PlatformPlayStation.cmake:

Add JSRemoteInspectorServer.h to the public header list.

  • inspector/remote/socket/posix/RemoteInspectorSocketPOSIX.cpp:

Set PlayStation specific socket option.

3:16 PM Changeset in webkit [262165] by Alexey Shvayka
  • 6 edits
    1 add in trunk

IteratorClose should suppress GetMethod errors
https://bugs.webkit.org/show_bug.cgi?id=212378

Reviewed by Keith Miller.

JSTests:

  • stress/custom-iterators.js:
  • stress/iterator-return-abrupt-lookup-builtins.js: Added.
  • test262/expectations.yaml: Mark 4 test cases as passing.

Source/JavaScriptCore:

This patch implements recent spec change [1] that prevents "return" method lookup error
from overriding outer exception, aligning JSC with V8 and SpiderMonkey.

It is accomplished by moving pushTry() before emitGetById() in BytecodeGenerator.cpp
(covered by test262 suite) and removal of RETURN_IF_EXCEPTION in IteratorOperations.cpp
(added a stress test).

Before this patch, JSC partly implemented the spec change [1] by suppressing TypeError
if "return" method of iterator was not callable.

BytecodeGenerator::emitDelegateYield() is intentionally left unchanged.
Also, this patch utilizes emitIteratorGenericClose() to avoid code duplication.
for/of microbenchmarks are neutral.

[1]: https://github.com/tc39/ecma262/pull/1408

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGenericEnumeration):
(JSC::BytecodeGenerator::emitEnumeration):

  • runtime/IteratorOperations.cpp:

(JSC::iteratorClose):

3:02 PM Changeset in webkit [262164] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Regression(?): [ iOS wk2 ] http/tests/resourceLoadStatistics/cookie-deletion.html is flaky failing and crashing.
https://bugs.webkit.org/show_bug.cgi?id=207197

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:56 PM Changeset in webkit [262163] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207583

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:34 PM Changeset in webkit [262162] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: Timing: gaps around the "An error occurred trying to load this resource" message
https://bugs.webkit.org/show_bug.cgi?id=212384

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkTableContentView.css:

(.content-view.network-table > .message-text-view): Added.
(.content-view.network-table > .message-text-view > .message): Added.
(.content-view.network .message-text-view): Deleted.
(.content-view.network .message-text-view > .message): Deleted.
Be more specific with the selector so it doesn't apply as broadly.

2:32 PM Changeset in webkit [262161] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

SamplingProfiler::takeSample() should not assume that ENABLE(WEBASSEMBLY) means Wasm is enabled.
https://bugs.webkit.org/show_bug.cgi?id=212382

Reviewed by Saam Barati.

Wasm can still be disabled at runtime with JSC options. Fixing this will allow
sampling profiler tests to run with JSC_useJIT=0 without crashing.

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::FrameWalker):
(JSC::FrameWalker::recordJITFrame):
(JSC::CFrameWalker::CFrameWalker):
(JSC::SamplingProfiler::takeSample):

1:38 PM Changeset in webkit [262160] by Kate Cheney
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] multiple fast/text/international/system-language tests are flaky crashing - WTFCrashWithInfo - WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary()
https://bugs.webkit.org/show_bug.cgi?id=211958
<rdar://problem/63275549>

Reviewed by Darin Adler.

Tests no longer crashing.

  • platform/ios-wk2/TestExpectations:
1:32 PM Changeset in webkit [262159] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the engineering build on internal SDKs

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): Silenced a deprecation warning.

1:30 PM Changeset in webkit [262158] by Fujii Hironori
  • 15 edits
    2 adds in trunk

[WinCairo][WK2] Use GraphicsLayerTextureMapper for Accelerated Compositing mode
https://bugs.webkit.org/show_bug.cgi?id=211883

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWinCairo.cmake: Added a new build option

USE_GRAPHICS_LAYER_TEXTURE_MAPPER, and set ON as the default.

Source/WebKit:

GraphicsLayerTextureMapper is a simple GraphicsLayer
implementation using TextureMapper which is used for WinCairo WebKit1.

Add a new LayerTreeHost implementation for
GraphicsLayerTextureMapper by copying WinCairo WebKit1's
AcceleratedCompositingContext.

Windows WebKitTestRunner can't capture the window content for
pixel dump tests yet.

  • PlatformWin.cmake:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::WebView):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::setNeedsDisplayInRect):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp: Added.

(WebKit::LayerTreeHost::prepareForRendering):
(WebKit::LayerTreeHost::compositeLayersToContext):
(WebKit::LayerTreeHost::flushPendingLayerChanges):
(WebKit::LayerTreeHost::layerFlushTimerFired):
(WebKit::LayerTreeHost::LayerTreeHost):
(WebKit::LayerTreeHost::setLayerFlushSchedulingEnabled):
(WebKit::LayerTreeHost::setShouldNotifyAfterNextScheduledLayerFlush):
(WebKit::LayerTreeHost::scheduleLayerFlush):
(WebKit::LayerTreeHost::cancelPendingLayerFlush):
(WebKit::LayerTreeHost::setRootCompositingLayer):
(WebKit::LayerTreeHost::setViewOverlayRootLayer):
(WebKit::LayerTreeHost::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHost::scrollNonCompositedContents):
(WebKit::LayerTreeHost::flushAndRenderLayers):
(WebKit::LayerTreeHost::forceRepaint):
(WebKit::LayerTreeHost::forceRepaintAsync):
(WebKit::LayerTreeHost::sizeDidChange):
(WebKit::LayerTreeHost::pauseRendering):
(WebKit::LayerTreeHost::resumeRendering):
(WebKit::LayerTreeHost::graphicsLayerFactory):
(WebKit::LayerTreeHost::contentsSizeChanged):
(WebKit::LayerTreeHost::didChangeViewportAttributes):
(WebKit::LayerTreeHost::setIsDiscardable):
(WebKit::LayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHost::createDisplayRefreshMonitor):
(WebKit::LayerTreeHost::window):
(WebKit::LayerTreeHost::enabled):
(WebKit::LayerTreeHost::paintContents):
(WebKit::LayerTreeHost::deviceScaleFactor const):
(WebKit::LayerTreeHost::applyDeviceScaleFactor):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.h: Added.

(WebKit::LayerTreeHost::layerTreeContext const):
(WebKit::LayerTreeHost::displayID const):

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::nativeWindowHandle):

  • WebProcess/win/WebProcessMainWin.cpp:

Tools:

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::setPreference): Call WKPreferencesSet* for
menu items IDM_ACC_COMPOSITING, IDM_COMPOSITING_BORDERS and
IDM_DEBUG_INFO_LAYER.

12:42 PM Changeset in webkit [262157] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Revert "Cherry-pick r261961. rdar://problem/63626656"

This reverts commit r262150.

12:29 PM Changeset in webkit [262156] by don.olmstead@sony.com
  • 6 edits
    1 add in trunk

[CMake] Add static analyzers
https://bugs.webkit.org/show_bug.cgi?id=212280

Reviewed by David Kilzer.

.:

Add support for static analyzers within CMake builds. Supported analyzers are
clang-tidy, iwyu (include-what-you-use) and lwyu (link-what-you-use). They can
be enabled by passing a semicolon separated list to CMake through the ANALYZERS
option.

  • Source/cmake/WebKitCommon.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/WebKitMacros.cmake:
  • Source/cmake/WebKitStaticAnalysis.cmake: Added.

Source/WTF:

Export headers from Plaform.h so include-what-you-use does not suggest they be
included directly. The headers being exported will #error when included outside of
Platform.h

  • wtf/Platform.h:
12:16 PM Changeset in webkit [262155] by Darin Adler
  • 14 edits in trunk/Source

Eliminate Color constructors that take strings, moving color parsing entirely into the CSS parser
https://bugs.webkit.org/show_bug.cgi?id=212296

Reviewed by Sam Weinig.

Source/WebCore:

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseColor): Moved more of the logic into
CSSParserFastPaths::parseSimpleColor. Also added a FIXME about what
seems to be a mistake about strict mode.
(WebCore::CSSParser::parseColorWorkerSafe): Ditto.
(WebCore::CSSParser::parseSystemColor): Removed unused context argument.
(WebCore::CSSParser::parseNamedColor): Added.
(WebCore::CSSParser::parseHexColor): Added.
(WebCore::CSSParser::parseSingleValue): Use auto.
(WebCore::CSSParser::parseValue): Ditto.

  • css/parser/CSSParser.h: Exported parseColor. Removed unused value pool

and strict arguments from parseColorWorkerSafe. Removed unused context
argument from parseSystemColor. Added parseNamedColor and parseHexColor.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::parseSimpleLengthValue): Take a StringView.
(WebCore::finishParsingHexColor): Added, logic moved from Color constructor.
(WebCore::parseHexColorInternal): Ditto.
(WebCore::parseNumericColor): Added, logic moved from fastParseColorInternal.
(WebCore::parseColor): Turned into a non-member function since it's private
to this file. Use auto a bit more, and removed unneeded value pool argument.
(WebCore::finishParsingNamedColor): Added, logic moved from Color constructor.
(WebCore::parseNamedColorInternal): Ditto.
(WebCore::parseSimpleColorInternal): Ditto.
(WebCore::CSSParserFastPaths::parseSimpleColor): Ditto.
(WebCore::CSSParserFastPaths::parseHexColor): Ditto.
(WebCore::CSSParserFastPaths::parseNamedColor): Ditto.
(WebCore::isUniversalKeyword): Take a StringView.
(WebCore::parseKeywordValue): Ditto.
(WebCore::parseSimpleTransform): Ditto.
(WebCore::parseCaretColor): Ditto. Also take a parser context rather than
a parser mode.
(WebCore::CSSParserFastPaths::maybeParseValue): Take a StringView.

  • css/parser/CSSParserFastPaths.h: Cut down includes. Use StringView.

Added parseSimpleColor, parseHexColor, and parseNamedColor.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHexColor): Return an
Optional<SimpleColor> instead of a Color.
(WebCore::CSSPropertyParserHelpers::consumeColor): Refactor a bit for clarity.

  • html/HTMLElement.cpp:

(WebCore::parseLegacyColorValue): Renamed from parseColorStringWithCrazyLegacyRules
and refactored a bit. Made this match the HTML specification more closely.
(WebCore::HTMLElement::addHTMLColorToStyle): Simplify now that more of the logic
was moved into parseLegacyColorValue.

  • html/canvas/CanvasStyle.cpp:

(WebCore::parseColor): Removed unneeded arguments for parseColorWorkerSafe
and for parseSystemColor.

  • platform/graphics/Color.cpp:

(WebCore::findNamedColor): Deleted.
(WebCore::Color::Color): Deleted overloadds that take strings.

  • platform/graphics/Color.h: Updated for the above.
  • platform/graphics/SimpleColor.cpp:

(WebCore::parseHexColorInternal): Deleted.
(WebCore::SimpleColor::parseHexColor): Deleted.

  • platform/graphics/SimpleColor.h: Removed parseHexColor functions.

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageSetComposition): Use WebCore::CSSParser::parseColor.

12:12 PM Changeset in webkit [262154] by graouts@webkit.org
  • 12 edits
    2 adds in trunk

Hardware fill-forwards animation and transitions don't interact correctly
https://bugs.webkit.org/show_bug.cgi?id=187839
<rdar://problem/42410412>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark a progression for a WPT test.

  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:

Source/WebCore:

Test: webanimations/updating-property-targeted-by-css-transition-during-css-animation.html

We didn't follow the CSS Transitions spec closely enough when it came to defining the correct before and after
change styles during a style change event.

We now correctly set the before-change style as one of three possible values:

  1. if there are running CSS-originated animations, we ensure those are updated to the current time and resolve them to get the style,
  2. otherwise we use the RenderStyle recorded in Style::TreeResolver::createAnimatedElementUpdate() prior to applying animations during the last style change event,
  3. otherwise we use the previous computed style, which should not have any animated values.

As for the after-change style, we also need to ensure any running CSS Animations are update to the current time
and resolve them to get the style. Otherwise, we just use the current computed style prior to applying animations.

Finally, we can exit from AnimationTimeline::updateCSSTransitionsForElementAndProperty() early if we find that
we have a JS-originated animation running for the given property on the given element since we know that that
animation will yield an overriding value for both the before and after change styles since JS-originated animations
have the hightest composite order.

This means we no longer need to track the unanimated style on KeyframeEffect.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):

  • animation/AnimationTimeline.h:
  • animation/ElementAnimationRareData.h:

(WebCore::ElementAnimationRareData::lastStyleChangeEventStyle const):
(WebCore::ElementAnimationRareData::setLastStyleChangeEventStyle):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::unanimatedStyle const): Deleted.

  • dom/Element.cpp:

(WebCore::Element::lastStyleChangeEventStyle const):
(WebCore::Element::setLastStyleChangeEventStyle):

  • dom/Element.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

Add a new test that reproduces the issue shown by the original test case for this bug. While an animation is running
for a CSS property, we change the underlying value for that animated property which is also set as the transition-property
value. The correct behavior is to not start a CSS Transition either when changing the underlying value during the
CSS Animation nor at the end of the CSS Animation.

  • webanimations/updating-property-targeted-by-css-transition-during-css-animation-expected.txt: Added.
  • webanimations/updating-property-targeted-by-css-transition-during-css-animation.html: Added.
11:50 AM Changeset in webkit [262153] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip revoke-blob-url-after-navigation.html on Windows.

Windows port is lacking blob support.

  • platform/win/TestExpectations:
11:42 AM Changeset in webkit [262152] by Alan Coon
  • 1 copy in branches/safari-610.1.15-branch

New branch.

10:56 AM Changeset in webkit [262151] by weinig@apple.com
  • 7 edits in trunk

Extended Color Cleanup: Remove red()/green()/blue() accessors from ExtendedColor in preperation for supporting non-RGB based ColorSpaces
https://bugs.webkit.org/show_bug.cgi?id=212366

Reviewed by Simon Fraser.

Source/WebCore:

  • platform/graphics/Color.cpp:

(WebCore::differenceSquared):
Switch to using toSRGBASimpleColorLossy() rather than poking at the ExtendedColor
components directly. The old code was already incorrect if the two colors had
differing color spaces so this at least now gives reasonable results.

(WebCore::Color::colorWithAlpha const):
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const):
Delegate to ExtendedColor completely for colorWithAlpha() to allow for more
control over how the components might be stored in the future.

  • platform/graphics/Color.h:

(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
Delegate to ExtendedColor for isBlack()/isWhite() to allow per-color space
interpretations of the predicate.

(WebCore::Color::encode const):
(WebCore::Color::decode):
Use c1, c2, c3 rather than red/green/blue. This should be acceptable for the
forseeable future, as all expected colorspaces only have 3 channels, but at
some point, it may make sense to delegate coding to ExtendedColor completely.

  • platform/graphics/ExtendedColor.cpp:
  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::channels const):
(WebCore::ExtendedColor::red const): Deleted.
(WebCore::ExtendedColor::green const): Deleted.
(WebCore::ExtendedColor::blue const): Deleted.
(WebCore::ExtendedColor::colorWithAlpha const): Added.
(WebCore::ExtendedColor::isWhite const): Added.
(WebCore::ExtendedColor::isBlack const): Added.
Use channels() with structured bindings rather than the red()/green()/blue() accessors
everywhere.

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Update tests to pull values from the channels rather than from the red()/green()/blue() accessors.

10:35 AM Changeset in webkit [262150] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r261961. rdar://problem/63626656

Potential crash in PointerCaptureController::cancelPointer()
https://bugs.webkit.org/show_bug.cgi?id=208347
<rdar://problem/59866247>

Reviewed by David Kilzer and Daniel Bates.

  • page/PointerCaptureController.cpp: (WebCore::PointerCaptureController::cancelPointer):

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

9:56 AM Changeset in webkit [262149] by Peng Liu
  • 7 edits in trunk

ASSERTION FAILED: m_clientCounts.contains(contextId) - WebKit::VideoFullscreenManagerProxy::removeClientForContext()
https://bugs.webkit.org/show_bug.cgi?id=212308

Source/WebCore:

Reviewed by Jer Noble.

Call m_videoFullscreenModel->didExitPictureInPicture() after the video player
completes the process to exit Picture-in-Picture.

Covered by existing tests.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):

Source/WebKit:

Refactor the implementation of the callback hasVideoInPictureInPictureDidChange().

Reviewed by Jer Noble.

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

(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):

(WebKit::VideoFullscreenManagerProxy::hasVideoInPictureInPictureDidChange):
Add this function to wrap m_page->uiClient().hasVideoInPictureInPictureDidChange().

(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
Remove the call to hasVideoInPictureInPictureDidChange() because it is too early to do so.

(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):
Add a call to hasVideoInPictureInPictureDidChange() on Mac as well. This fixes the timeout of
TestWebKitAPI.PictureInPicture.ExitPiPOnSuspendVideoElement on Mac.

(WebKit::VideoFullscreenManagerProxy::fullscreenModeChanged):
Remove the call to hasVideoInPictureInPictureDidChange() because it is not necessary.

Tools:

Disable TestWebKitAPI.PictureInPicture.ExitPiPOnSuspendVideoElement for old iOS versions
due to an issue of AVKit.

In addition, don't run the test if Picture-in-Picture is not supported.

Reviewed by Jer Noble.

  • TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm:

(TestWebKitAPI::TEST):

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

[LFC][TFC] Use padding to space out sections
https://bugs.webkit.org/show_bug.cgi?id=212377

Reviewed by Antti Koivisto.

Source/WebCore:

Use fake padding before/after to space out sections.

Test: fast/layoutformattingcontext/table-simple-multiple-sections-with-border-spacing-and-collapse.html

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-multiple-sections-with-border-spacing-and-collapse-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-multiple-sections-with-border-spacing-and-collapse.html: Added.
9:17 AM Changeset in webkit [262147] by Keith Rollin
  • 25 edits in trunk

Enable the use of XCBuild by default in Apple builds
https://bugs.webkit.org/show_bug.cgi?id=209890
<rdar://problem/44182078>

Reviewed by Darin Adler.

Switch from the "legacy" Xcode build system to the "new" build system
(also known as "XCBuild"). Switching to the new system speeds up
builds by a small percentage, better validates projects for
build-related issues (such as dependency cycles), lets WebKit benefit
from future improvements in XCBuild such as those coming from the
underlying llbuild open source project, and prepares us for any other
tools built for this new ecosystem.

Specific changes:

  • Remove Xcode project and workspace settings that selected the Build system, allowing the default to take hold (which is currently the New build system).
  • Updated webkitdirs.pm with a terser check for Xcode version.
  • Update build-webkit and Makefile.shared to be explicit when using the old build system (no longer treat it as a default or fall-back configuration).
  • Update various xcconfig files similarly to treat the default as using the new build system.
  • Update various post-processing build steps to check for Xcode 11.4 and to no longer treat the default as using the old build system.

.:

  • Makefile.shared:
  • WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:

Source/JavaScriptCore:

  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE.xcconfig:

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No new tests -- no changed functionality.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Configurations/WebKit.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:

Tools:

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • Scripts/build-webkit:
  • Scripts/webkitdirs.pm:

(canUseXCBuild):

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
9:17 AM Changeset in webkit [262146] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unskip fast/events/form-onchange.html after r262145.

  • platform/mac-wk1/TestExpectations:
9:15 AM Changeset in webkit [262145] by Chris Dumez
  • 1 edit
    6 deletes in trunk/LayoutTests

Unreviewed, drop a few beforeload event tests that no longer make sense after r261971.

We dropped support for the BeforeLoadEvent in r261971 so these tests do not make
sense anymore. Those tests also cause flakiness such as <rdar://63623324> now that
they no longer run as expected.

  • fast/events/form-iframe-target-before-load-crash-expected.txt: Removed.
  • fast/events/form-iframe-target-before-load-crash.html: Removed.
  • fast/events/form-iframe-target-before-load-crash2-expected.txt: Removed.
  • fast/events/form-iframe-target-before-load-crash2.html: Removed.
  • fast/events/form-iframe-target-before-load-crash3-expected.txt: Removed.
  • fast/events/form-iframe-target-before-load-crash3.html: Removed.
8:54 AM Changeset in webkit [262144] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][TFC] Add support for multiple sections
https://bugs.webkit.org/show_bug.cgi?id=212354

Reviewed by Antti Koivisto.

Source/WebCore:

Let's keep the grid about rows and columns and about distributing available space.
Use the layout tree to find sections.

Test: fast/layoutformattingcontext/table-simple-multiple-sections.html

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::Section::Section): Deleted.

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Section::box const): Deleted.
(WebCore::Layout::TableGrid::sections const): Deleted.
(WebCore::Layout::TableGrid::sections): Deleted.

LayoutTests:

  • fast/layoutformattingcontext/table-simple-multiple-sections-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-multiple-sections.html: Added.
8:42 AM Changeset in webkit [262143] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: simctl list may have stderr logging
https://bugs.webkit.org/show_bug.cgi?id=212376
<rdar://problem/63517635>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager.populate_available_devices): Only parse stdout, log error when
json decoding fails.
(SimulatedDevice.is_usable): Only parse stdout.
(SimulatedDevice.launch_app): Ditto.

7:46 AM Changeset in webkit [262142] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk1 ] fast/events/form-onchange.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=212375

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:43 AM Changeset in webkit [262141] by Diego Pino Garcia
  • 4 edits
    2 adds in trunk/LayoutTests

[WPE] Gardening, update pending baselines after r262127
https://bugs.webkit.org/show_bug.cgi?id=212370

Unrevewed gardening.

  • platform/wpe/fast/borders/fieldsetBorderRadius-expected.txt: Added.
  • platform/wpe/fast/html/details-marker-style-mixed-expected.txt: Added.
  • platform/wpe/mathml/presentation/roots-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
3:23 AM Changeset in webkit [262140] by Diego Pino Garcia
  • 2 edits
    1 move
    1 add in trunk/LayoutTests

[GTK] Gardening, update pending baselines after r262127
https://bugs.webkit.org/show_bug.cgi?id=212369

Unreviewed gardening.

  • platform/gtk/fast/borders/fieldsetBorderRadius-expected.png:
  • platform/gtk/fast/borders/fieldsetBorderRadius-expected.txt: Added.
  • platform/gtk/fast/html/details-marker-style-mixed-expected.txt: Renamed from LayoutTests/platform/glib/fast/html/details-marker-style-mixed-expected.txt.
2:46 AM WPTExportProcess edited by clopez@igalia.com
(diff)
1:46 AM Changeset in webkit [262139] by clopez@igalia.com
  • 6 edits in trunk/LayoutTests

[css-flexbox] WPT Test css/css-flexbox/flex-lines/multi-line-wrap-reverse-column-reverse.html fails
https://bugs.webkit.org/show_bug.cgi?id=212054

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Update the test to use the Ahem font, and rely on different font colors (instead of different glyps)
to check that each box of the test is placed correctly.

  • web-platform-tests/css/css-flexbox/flex-lines/multi-line-wrap-reverse-column-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/flex-lines/multi-line-wrap-reverse-column-reverse.html:

LayoutTests:

Remove expectations for passing test.

1:29 AM WPTExportProcess edited by clopez@igalia.com
(diff)
1:01 AM Changeset in webkit [262138] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK4] Use screen font options as default
https://bugs.webkit.org/show_bug.cgi?id=212332

Reviewed by Adrian Perez de Castro.

There's no gdk_screen_get_font_options() in GTK4, so we need to get the individual properties from the settings
and build a cairo_font_options_t. We can just do the same in GTK3 to avoid ifdefs. Add a helper
SystemFontOptions singleton class to monitor and parse the font settings.

  • platform/graphics/gtk/GdkCairoUtilities.cpp:

(WebCore::SystemFontOptions::singleton):
(WebCore::SystemFontOptions::SystemFontOptions):
(WebCore::SystemFontOptions::fontOptions const):
(WebCore::SystemFontOptions::updateFontOptions):
(WebCore::getDefaultCairoFontOptions):

12:59 AM Changeset in webkit [262137] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK4] Fix context menu
https://bugs.webkit.org/show_bug.cgi?id=212344

Reviewed by Adrian Perez de Castro.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSizeAllocate): Call gtk_native_check_resize() on the popover to make it appear.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::destroyMenuWidget): There's no gtk_widget_destroy() in GTK4 so we can just unparent it.
(WebKit::bindModelToMenuWidget): Do not set the action namespace because that's not possible in GTK4.
(WebKit::WebContextMenuProxyGtk::append): Use group.name again for the action name passed to
g_menu_item_set_action_and_target_value().
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Use destroyMenuWidget().

Note: See TracTimeline for information about the timeline view.