Timeline



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().

May 25, 2020:

9:48 PM Changeset in webkit [262136] by Wenson Hsieh
  • 2 edits in trunk/Tools

[iOS] ActionSheetTests.DataDetectorsLinkIsNotPresentedAsALink is failing consistently
https://bugs.webkit.org/show_bug.cgi?id=212363
<rdar://problem/63508866>

Reviewed by Tim Horton.

This test began to consistently throw an exception after <https://trac.webkit.org/r261157>, due to how
UserInterfaceSwizzler always instantiates the shared UIApplication. This apparently causes -[WKContentView
resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:] to return nil instead of a replica view. As a
result, we crash under createFallbackTargetedPreview as we're attempting to assemble a targeted preview for
the context menu interaction.

Since this seems to only affect this particular API test, work around it by swizzling out
-resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets: in this API test to return a non-null UIView.

  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

(TestWebKitAPI::swizzledResizableSnapshotViewFromRect):
(TestWebKitAPI::TEST):

8:44 PM Changeset in webkit [262135] by Diego Pino Garcia
  • 11 edits in trunk/LayoutTests

[WPE] Gardening, update baselines after r262127
https://bugs.webkit.org/show_bug.cgi?id=212365

Unreviewed gardening.

  • platform/wpe/fast/html/details-no-summary4-expected.txt:
  • platform/wpe/fast/html/details-open-javascript-expected.txt:
  • platform/wpe/fast/html/details-open2-expected.txt:
  • platform/wpe/fast/html/details-open4-expected.txt:
  • platform/wpe/fast/html/details-replace-summary-child-expected.txt:
  • platform/wpe/fast/html/details-replace-text-expected.txt:
  • platform/wpe/fast/html/details-writing-mode-expected.txt:
  • platform/wpe/fast/html/details-writing-mode-mixed-expected.txt:
  • platform/wpe/fast/writing-mode/fieldsets-expected.txt:
  • platform/wpe/svg/zoom/page/zoom-hixie-mixed-009-expected.txt:
8:30 PM Changeset in webkit [262134] by Diego Pino Garcia
  • 70 edits in trunk/LayoutTests

[GTK] Gardening, update baselines after r262127
https://bugs.webkit.org/show_bug.cgi?id=212364

Unreviewed gardening.

  • platform/glib/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt:
  • platform/glib/css3/flexbox/flexbox-baseline-expected.txt:
  • platform/glib/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
  • platform/glib/fast/css-generated-content/details-summary-before-after-expected.txt:
  • platform/glib/fast/html/details-add-child-1-expected.txt:
  • platform/glib/fast/html/details-add-child-2-expected.txt:
  • platform/glib/fast/html/details-add-details-child-1-expected.txt:
  • platform/glib/fast/html/details-add-details-child-2-expected.txt:
  • platform/glib/fast/html/details-add-summary-1-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-1-expected.txt:
  • platform/glib/fast/html/details-add-summary-10-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-10-expected.txt:
  • platform/glib/fast/html/details-add-summary-2-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-2-expected.txt:
  • platform/glib/fast/html/details-add-summary-3-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-3-expected.txt:
  • platform/glib/fast/html/details-add-summary-4-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-4-expected.txt:
  • platform/glib/fast/html/details-add-summary-5-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-5-expected.txt:
  • platform/glib/fast/html/details-add-summary-6-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-6-expected.txt:
  • platform/glib/fast/html/details-add-summary-7-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-7-expected.txt:
  • platform/glib/fast/html/details-add-summary-8-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-8-expected.txt:
  • platform/glib/fast/html/details-add-summary-9-and-click-expected.txt:
  • platform/glib/fast/html/details-add-summary-9-expected.txt:
  • platform/glib/fast/html/details-add-summary-child-1-expected.txt:
  • platform/glib/fast/html/details-add-summary-child-2-expected.txt:
  • platform/glib/fast/html/details-marker-style-expected.txt:
  • platform/glib/fast/html/details-nested-1-expected.txt:
  • platform/glib/fast/html/details-nested-2-expected.txt:
  • platform/glib/fast/html/details-no-summary1-expected.txt:
  • platform/glib/fast/html/details-no-summary2-expected.txt:
  • platform/glib/fast/html/details-no-summary3-expected.txt:
  • platform/glib/fast/html/details-open1-expected.txt:
  • platform/glib/fast/html/details-open3-expected.txt:
  • platform/glib/fast/html/details-open5-expected.txt:
  • platform/glib/fast/html/details-open6-expected.txt:
  • platform/glib/fast/html/details-position-expected.txt:
  • platform/glib/fast/html/details-remove-child-1-expected.txt:
  • platform/glib/fast/html/details-remove-child-2-expected.txt:
  • platform/glib/fast/html/details-remove-summary-1-and-click-expected.txt:
  • platform/glib/fast/html/details-remove-summary-1-expected.txt:
  • platform/glib/fast/html/details-remove-summary-2-and-click-expected.txt:
  • platform/glib/fast/html/details-remove-summary-2-expected.txt:
  • platform/glib/fast/html/details-remove-summary-3-and-click-expected.txt:
  • platform/glib/fast/html/details-remove-summary-3-expected.txt:
  • platform/glib/fast/html/details-remove-summary-4-and-click-expected.txt:
  • platform/glib/fast/html/details-remove-summary-4-expected.txt:
  • platform/glib/fast/html/details-remove-summary-5-and-click-expected.txt:
  • platform/glib/fast/html/details-remove-summary-5-expected.txt:
  • platform/glib/fast/html/details-remove-summary-6-and-click-expected.txt:
  • platform/glib/fast/html/details-remove-summary-6-expected.txt:
  • platform/glib/fast/html/details-remove-summary-child-1-expected.txt:
  • platform/glib/fast/html/details-remove-summary-child-2-expected.txt:
  • platform/glib/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt:
  • platform/glib/svg/zoom/page/zoom-svg-through-object-with-huge-size-expected.txt:
  • platform/gtk/fast/html/details-no-summary4-expected.txt:
  • platform/gtk/fast/html/details-open-javascript-expected.txt:
  • platform/gtk/fast/html/details-open2-expected.txt:
  • platform/gtk/fast/html/details-open4-expected.txt:
  • platform/gtk/fast/html/details-replace-summary-child-expected.txt:
  • platform/gtk/fast/html/details-replace-text-expected.txt:
  • platform/gtk/fast/html/details-writing-mode-expected.txt:
  • platform/gtk/fast/html/details-writing-mode-mixed-expected.txt:
  • platform/gtk/fast/writing-mode/fieldsets-expected.txt:
  • platform/gtk/svg/zoom/page/zoom-hixie-mixed-009-expected.txt:
5:27 PM Changeset in webkit [262133] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Use an Optional<> for LayerFragment::boundingBox
https://bugs.webkit.org/show_bug.cgi?id=212358

Reviewed by Zalan Bujtas.

Replace a bool + LayoutRect with Optional<LayoutRect>.

  • rendering/LayerFragment.h:

(WebCore::LayerFragment::setRects):
(WebCore::LayerFragment::moveBy):
(WebCore::LayerFragment::intersect):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
5:26 PM Changeset in webkit [262132] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Make isTableRow() an inline function
https://bugs.webkit.org/show_bug.cgi?id=212360

Reviewed by Darin Adler.

isTableCell() is a virtual function that's called in some hot code paths, like RenderLayer::localBoundingBox(),
so make it inline by using a spare bit on RenderObject.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isTableCaption const):
(WebCore::RenderObject::isTableRow const):
(WebCore::RenderObject::setIsTableRow):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::RenderTableRow):

  • rendering/RenderTableRow.h:
5:03 PM Changeset in webkit [262131] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Expose more network metrics to WebCoreNSURLSession
https://bugs.webkit.org/show_bug.cgi?id=212359
<rdar://problem/62909440>

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

Source/WebCore:

  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionTaskTransactionMetrics networkProtocolName]):
(-[WebCoreNSURLSessionTaskTransactionMetrics isReusedConnection]):
(-[WebCoreNSURLSessionTaskTransactionMetrics cellular]):
(-[WebCoreNSURLSessionTaskTransactionMetrics expensive]):
(-[WebCoreNSURLSessionTaskTransactionMetrics constrained]):
(-[WebCoreNSURLSessionTaskTransactionMetrics multipath]):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

Source/WTF:

  • wtf/PlatformHave.h:
1:51 PM WPTExportProcess edited by clopez@igalia.com
(diff)
1:39 PM Changeset in webkit [262130] by Oriol Brufau
  • 10 edits in trunk

[css-grid] Prevent grid-template-rows from serializing adjacent <line-names>
https://bugs.webkit.org/show_bug.cgi?id=212345

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-shorthand-valid-expected.txt:

Source/WebCore:

The parser for the grid-template shorthand has this code:

Persists between loop iterations so we can use the same value for
consecutive <line-names> values
RefPtr<CSSGridLineNamesValue> lineNames;

However, this wasn't working because of a lineNames.releaseNonNull() at
the end of the loop. So each iteration started with a null lineNames, and
consecutive <line-names> values were not merged together.

Tests: fast/css-grid-layout/grid-template-shorthand-get-set.html

imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-shorthand-valid.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-shorthand.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-shorthand-valid.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeGridTemplateRowsAndAreasAndColumns):

LayoutTests:

Update test expectations.

  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
1:35 PM WPTExportProcess created by clopez@igalia.com
12:25 PM Changeset in webkit [262129] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Extended Color Cleanup: Assert !isExtended() in Color::asSimpleColor()...finally
https://bugs.webkit.org/show_bug.cgi?id=212357

Reviewed by Simon Fraser.

Reap the reward of the cleanup, and add the ASSERT(!isExtended()) to Color::asSimpleColor()
as was the original goal of this effort. Only tree non-checked places remained and were
trivial to add isExtended() checks for.

  • platform/graphics/Color.cpp:

(WebCore::Color::nameForRenderTreeAsText const):
Use ExtenedColor::cssText() for the RenderTree representation. It is stable
and as good as any, no need to re-invent the wheel here.

(WebCore::Color::light const):
(WebCore::Color::dark const):
Add isExtended() checks before doing white/black checks,

  • platform/graphics/Color.h:

(WebCore::Color::asSimpleColor const):
Add ASSERT.

11:30 AM Changeset in webkit [262128] by weinig@apple.com
  • 34 edits in trunk

Extended Color Cleanup: Use the name SimpleColor consistently
https://bugs.webkit.org/show_bug.cgi?id=212337

Reviewed by Anders Carlsson.
Source/WebCore:


  • Removes RGBA32 type alias, updating all remaining users of it.
  • Renames functions that take/return SimpleColor to use the name SimpleColor rather than RGB (e.g. makeRGBA -> makeSimpleColor)
  • Moves hex color parsing from Color to SimpleColor, as that is the type it returns. Also took the opportunity to make it return an Optional<SimpleColor> instead of using a bool/out parameter.
  • Move Color::compositionFill to editing/CompositionHighlight.h It makes no real sense to keep it in Color.h
  • Replaces rgb() function in Color with asSimpleColor() for symmetry with asExtended().
  • Replaced std::max(a, std::min(value, b)) with std::clamp(value, a, b) for clarity.
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::fastParseColorInternal):
(WebCore::CSSParserFastPaths::parseColor):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHexColor):

  • editing/CompositionHighlight.h:
  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • html/ColorInputType.cpp:

(WebCore::parseSimpleColorValue):

  • html/HTMLElement.cpp:

(WebCore::parseColorStringWithCrazyLegacyRules):

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:
  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::activeSelectionForegroundColor const):
(WebCore::ThemeAdwaita::activeSelectionBackgroundColor const):
(WebCore::ThemeAdwaita::inactiveSelectionForegroundColor const):

  • platform/graphics/Color.cpp:

(WebCore::differenceSquared):
(WebCore::Color::Color):
(WebCore::Color::operator=):
(WebCore::Color::serialized const):
(WebCore::Color::cssText const):
(WebCore::Color::nameForRenderTreeAsText const):
(WebCore::Color::light const):
(WebCore::Color::dark const):
(WebCore::Color::blend const):
(WebCore::Color::blendWithWhite const):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const):
(WebCore::Color::invertedColorWithAlpha const):
(WebCore::Color::colorSpaceAndComponents const):
(WebCore::Color::toSRGBASimpleColorLossy const):
(WebCore::blend):
(WebCore::Color::tagAsValid):
(WebCore::parseHexColorInternal): Deleted.
(WebCore::Color::parseHexColor): Deleted.
(WebCore::Color::asExtended const): Deleted.

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::isHashTableDeletedValue const):
(WebCore::Color::isValid const):
(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alpha const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::isSemantic const):
(WebCore::Color::isExtended const):
(WebCore::Color::setIsSemantic):
(WebCore::operator==):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::hash const):
(WebCore::Color::asExtended const):
(WebCore::Color::asSimpleColor const):
(WebCore::Color::setSimpleColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):
(WebCore::Color::setRGB): Deleted.
(WebCore::Color::rgb const): Deleted.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampedColorComponent):

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):

  • platform/graphics/SimpleColor.cpp:

(WebCore::makePremultipliedSimpleColor):
(WebCore::makeUnpremultipliedSimpleColor):
(WebCore::makeSimpleColorFromFloats):
(WebCore::makeSimpleColorFromHSLA):
(WebCore::makeSimpleColorFromCMYKA):
(WebCore::parseHexColorInternal):
(WebCore::SimpleColor::parseHexColor):
(WebCore::makePremultipliedRGBA): Deleted.
(WebCore::makeUnPremultipliedRGBA): Deleted.
(WebCore::makeRGBA32FromFloats): Deleted.
(WebCore::makeRGBAFromHSLA): Deleted.
(WebCore::makeRGBAFromCMYKA): Deleted.

  • platform/graphics/SimpleColor.h:

(WebCore::roundAndClampColorChannel):
(WebCore::colorFloatToSimpleColorByte):
(WebCore::makeSimpleColor):
(WebCore::colorFloatToRGBAByte): Deleted.
(WebCore::makeRGB): Deleted.
(WebCore::makeRGBA): Deleted.

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes):
(WebCore::makeRGBA32FromARGBCFArray): Deleted.

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::platformTransformColorSpace):

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::nativeImageSinglePixelSolidColor):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::makeSimpleColorFromCGColor):
(WebCore::Color::Color):
(WebCore::cachedCGColor):
(WebCore::makeRGBAFromCGColor): Deleted.

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::Color):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):
(WebCore::colorFromNSColor):
(WebCore::semanticColorFromNSColor):
(WebCore::makeRGBAFromNSColor): Deleted.

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::Color):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawDotsForDocumentMarker):

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::brushWithColor):

  • platform/ios/ColorIOS.mm:

(WebCore::colorFromUIColor):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintCompositionBackground):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintResizer):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForTouchAction):
(WebCore::patternForEventListenerRegionType):

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

(WebCore::menuBackgroundColor):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(compositionHighlights):
Update for new name of CompositionHighlight::defaultCompositionFillColor.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update test for rename of makeRGBAFromHSLA to makeSimpleColorFromHSLA.

9:41 AM Changeset in webkit [262127] by Alan Bujtas
  • 230 edits
    1 copy
    3 adds in trunk

[Subpixel layout] Bad scrolling on mercurynews.com article
https://bugs.webkit.org/show_bug.cgi?id=201038
<rdar://problem/28489812>

Reviewed by Dean Jackson.

Source/WebCore:

The scrolling is caused by the mismatching subpixel handling between block and inline content.
Inline content (and in this particular case ascent/descent handling) is still integral based while block content supports fractional pixel values.
When the (inline)line height relies on the (block)inline-block height, we need to make sure that the computed line height encloses the inline-block.
This patch changes the rounding behavior of computed the line height from floor to round.

Test: fast/inline/hidpi-inline-block-is-subpixel-while-line-is-not.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::baselinePosition const):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::ascentAndDescentForBox const):

LayoutTests:

  • fast/inline/hidpi-inline-block-is-subpixel-while-line-is-not-expected.html: Added.
  • fast/inline/hidpi-inline-block-is-subpixel-while-line-is-not.html: Added.
  • platform/ios/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt:
  • platform/ios/css3/flexbox/flexbox-baseline-expected.txt:
  • platform/ios/editing/selection/select-across-readonly-input-1-expected.txt: Added.
  • platform/ios/editing/selection/select-across-readonly-input-2-expected.txt: Added.
  • platform/ios/editing/selection/select-across-readonly-input-3-expected.txt: Added.
  • platform/ios/editing/selection/select-across-readonly-input-4-expected.txt: Added.
  • platform/ios/editing/selection/select-across-readonly-input-5-expected.txt: Added.
  • platform/ios/fast/borders/fieldsetBorderRadius-expected.txt: Copied from LayoutTests/platform/mac/fast/borders/fieldsetBorderRadius-expected.txt.
  • platform/ios/fast/forms/select-item-background-clip-expected.txt:
  • platform/ios/fast/gradients/list-item-gradient-expected.txt:
  • platform/ios/fast/html/details-add-child-1-expected.txt:
  • platform/ios/fast/html/details-add-child-2-expected.txt:
  • platform/ios/fast/html/details-add-details-child-1-expected.txt:
  • platform/ios/fast/html/details-add-details-child-2-expected.txt:
  • platform/ios/fast/html/details-add-summary-1-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-1-expected.txt:
  • platform/ios/fast/html/details-add-summary-10-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-10-expected.txt:
  • platform/ios/fast/html/details-add-summary-2-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-2-expected.txt:
  • platform/ios/fast/html/details-add-summary-3-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-3-expected.txt:
  • platform/ios/fast/html/details-add-summary-4-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-4-expected.txt:
  • platform/ios/fast/html/details-add-summary-5-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-5-expected.txt:
  • platform/ios/fast/html/details-add-summary-6-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-6-expected.txt:
  • platform/ios/fast/html/details-add-summary-7-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-7-expected.txt:
  • platform/ios/fast/html/details-add-summary-8-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-8-expected.txt:
  • platform/ios/fast/html/details-add-summary-9-and-click-expected.txt:
  • platform/ios/fast/html/details-add-summary-9-expected.txt:
  • platform/ios/fast/html/details-add-summary-child-1-expected.txt:
  • platform/ios/fast/html/details-add-summary-child-2-expected.txt:
  • platform/ios/fast/html/details-marker-style-expected.txt:
  • platform/ios/fast/html/details-marker-style-mixed-expected.txt:
  • platform/ios/fast/html/details-nested-1-expected.txt:
  • platform/ios/fast/html/details-nested-2-expected.txt:
  • platform/ios/fast/html/details-no-summary1-expected.txt:
  • platform/ios/fast/html/details-no-summary2-expected.txt:
  • platform/ios/fast/html/details-no-summary3-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open1-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open3-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/html/details-open5-expected.txt:
  • platform/ios/fast/html/details-open6-expected.txt:
  • platform/ios/fast/html/details-position-expected.txt:
  • platform/ios/fast/html/details-remove-child-1-expected.txt:
  • platform/ios/fast/html/details-remove-child-2-expected.txt:
  • platform/ios/fast/html/details-remove-summary-1-and-click-expected.txt:
  • platform/ios/fast/html/details-remove-summary-1-expected.txt:
  • platform/ios/fast/html/details-remove-summary-2-and-click-expected.txt:
  • platform/ios/fast/html/details-remove-summary-2-expected.txt:
  • platform/ios/fast/html/details-remove-summary-3-and-click-expected.txt:
  • platform/ios/fast/html/details-remove-summary-3-expected.txt:
  • platform/ios/fast/html/details-remove-summary-4-and-click-expected.txt:
  • platform/ios/fast/html/details-remove-summary-4-expected.txt:
  • platform/ios/fast/html/details-remove-summary-5-and-click-expected.txt:
  • platform/ios/fast/html/details-remove-summary-5-expected.txt:
  • platform/ios/fast/html/details-remove-summary-6-and-click-expected.txt:
  • platform/ios/fast/html/details-remove-summary-6-expected.txt:
  • platform/ios/fast/html/details-remove-summary-child-1-expected.txt:
  • platform/ios/fast/html/details-remove-summary-child-2-expected.txt:
  • platform/ios/fast/html/details-replace-summary-child-expected.txt:
  • platform/ios/fast/html/details-replace-text-expected.txt:
  • platform/ios/fast/html/details-writing-mode-expected.txt:
  • platform/ios/fast/html/details-writing-mode-mixed-expected.txt:
  • platform/ios/fast/writing-mode/fieldsets-expected.txt:
  • platform/ios/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/ios/mathml/presentation/mo-stretch-expected.txt:
  • platform/ios/mathml/presentation/roots-expected.txt:
  • platform/mac/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt:
  • platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
  • platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
  • platform/mac/fast/css-generated-content/details-summary-before-after-expected.txt:
  • platform/mac/fast/forms/basic-buttons-expected.txt:
  • platform/mac/fast/html/details-add-child-1-expected.txt:
  • platform/mac/fast/html/details-add-child-2-expected.txt:
  • platform/mac/fast/html/details-add-details-child-1-expected.txt:
  • platform/mac/fast/html/details-add-details-child-2-expected.txt:
  • platform/mac/fast/html/details-add-summary-1-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-1-expected.txt:
  • platform/mac/fast/html/details-add-summary-10-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-10-expected.txt:
  • platform/mac/fast/html/details-add-summary-2-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-2-expected.txt:
  • platform/mac/fast/html/details-add-summary-3-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-3-expected.txt:
  • platform/mac/fast/html/details-add-summary-4-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-4-expected.txt:
  • platform/mac/fast/html/details-add-summary-5-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-5-expected.txt:
  • platform/mac/fast/html/details-add-summary-6-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-6-expected.txt:
  • platform/mac/fast/html/details-add-summary-7-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-7-expected.txt:
  • platform/mac/fast/html/details-add-summary-8-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-8-expected.txt:
  • platform/mac/fast/html/details-add-summary-9-and-click-expected.txt:
  • platform/mac/fast/html/details-add-summary-9-expected.txt:
  • platform/mac/fast/html/details-add-summary-child-1-expected.txt:
  • platform/mac/fast/html/details-add-summary-child-2-expected.txt:
  • platform/mac/fast/html/details-marker-style-expected.txt:
  • platform/mac/fast/html/details-nested-1-expected.txt:
  • platform/mac/fast/html/details-nested-2-expected.txt:
  • platform/mac/fast/html/details-no-summary1-expected.txt:
  • platform/mac/fast/html/details-no-summary2-expected.txt:
  • platform/mac/fast/html/details-no-summary3-expected.txt:
  • platform/mac/fast/html/details-no-summary4-expected.txt:
  • platform/mac/fast/html/details-open-javascript-expected.txt:
  • platform/mac/fast/html/details-open1-expected.txt:
  • platform/mac/fast/html/details-open2-expected.txt:
  • platform/mac/fast/html/details-open3-expected.txt:
  • platform/mac/fast/html/details-open4-expected.txt:
  • platform/mac/fast/html/details-open5-expected.txt:
  • platform/mac/fast/html/details-open6-expected.txt:
  • platform/mac/fast/html/details-position-expected.txt:
  • platform/mac/fast/html/details-remove-child-1-expected.txt:
  • platform/mac/fast/html/details-remove-child-2-expected.txt:
  • platform/mac/fast/html/details-remove-summary-1-and-click-expected.txt:
  • platform/mac/fast/html/details-remove-summary-1-expected.txt:
  • platform/mac/fast/html/details-remove-summary-2-and-click-expected.txt:
  • platform/mac/fast/html/details-remove-summary-2-expected.txt:
  • platform/mac/fast/html/details-remove-summary-3-and-click-expected.txt:
  • platform/mac/fast/html/details-remove-summary-3-expected.txt:
  • platform/mac/fast/html/details-remove-summary-4-and-click-expected.txt:
  • platform/mac/fast/html/details-remove-summary-4-expected.txt:
  • platform/mac/fast/html/details-remove-summary-5-and-click-expected.txt:
  • platform/mac/fast/html/details-remove-summary-5-expected.txt:
  • platform/mac/fast/html/details-remove-summary-6-and-click-expected.txt:
  • platform/mac/fast/html/details-remove-summary-6-expected.txt:
  • platform/mac/fast/html/details-remove-summary-child-1-expected.txt:
  • platform/mac/fast/html/details-remove-summary-child-2-expected.txt:
  • platform/mac/fast/html/details-replace-summary-child-expected.txt:
  • platform/mac/fast/html/details-replace-text-expected.txt:
  • platform/mac/fast/html/details-writing-mode-expected.txt:
  • platform/mac/fast/writing-mode/fieldsets-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/mac/mathml/presentation/mo-stretch-expected.txt:
  • platform/mac/mathml/presentation/roots-expected.txt:
  • platform/mac/svg/zoom/page/zoom-hixie-mixed-009-expected.txt:
  • platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-huge-size-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
9:03 AM Changeset in webkit [262126] by Diego Pino Garcia
  • 5 edits
    1 move
    1 delete in trunk/LayoutTests

[WPE] Gardening, update test expectations after r262120
https://bugs.webkit.org/show_bug.cgi?id=212353

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/glib/fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Renamed from LayoutTests/platform/gtk/fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/canvas/webgl/readPixels-float-expected.txt: Removed.
  • platform/wpe/TestExpectations:
  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt: Emit baseline after r260075.
7:47 AM Changeset in webkit [262125] by commit-queue@webkit.org
  • 4 edits in trunk

Use child text content when determining whether to bail early in running a script
https://bugs.webkit.org/show_bug.cgi?id=182695

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

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/emptyish-script-elements-expected.txt:

Source/WebCore:

Check that the text content is not empty instead of just checking
for the first child [1].

Behavior matches Chrome and Firefox.

[1] https://html.spec.whatwg.org/#prepare-a-script step 5 and 6

Test: web-platform-tests/html/semantics/scripting-1/the-script-element/emptyish-script-elements.html

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::prepareScript):

7:18 AM Changeset in webkit [262124] by svillar@igalia.com
  • 7 edits in trunk

[css-flex] Allow indefinite size flex items to be definite wrt resolving percentages inside them
https://bugs.webkit.org/show_bug.cgi?id=212264

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/percentage-heights-003-expected.txt: There were 3 subtests

marked as failures. All of them work fine now.

Source/WebCore:

Implement https://github.com/w3c/csswg-drafts/commit/5b5db39d21f3658ae2f4d7992daaf822aca178d8 which modified
the way percentages were resolved in flexible items with indefinite sizes. From now on we can pretend that
they're really definite.

This allows us to mark 3 tests which were testing percentages in flex items as correct.

Based on Blink's crrev.com/1247184 by <cbiesinger@chromium.org>

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Do only check flex container main size
definiteness when computing the main size for percentage resolution, no need to check flex basis at all.

LayoutTests:

  • css3/flexbox/definite-main-size-expected.txt: Updated expectation.
  • css3/flexbox/definite-main-size.html: Updated comment.
6:58 AM Changeset in webkit [262123] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Gardening, update test expectations after r262060
https://bugs.webkit.org/show_bug.cgi?id=212346

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
6:34 AM Changeset in webkit [262122] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

AVVideoCaptureSource should notify of video samples in a background thread
https://bugs.webkit.org/show_bug.cgi?id=212072

Reviewed by Eric Carlson.

Do not hop to the main thread to send samples.
Instead, directly call the observer callback.
Manually tested.

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

(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

4:58 AM Changeset in webkit [262121] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak][GStreamer] compilation fails when GST_BUILD_PATH is defined
https://bugs.webkit.org/show_bug.cgi?id=212343

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

Flatpak's command has to be expressed before gst-env declaration.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

4:31 AM Changeset in webkit [262120] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebCore

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

Unreviewed build fix.

No new tests needed.

  • loader/ImageLoader.h: Add missing inclusion of Element.h and remove forward declaration.
  • page/PageConfiguration.h: Add missing inclusion of ShouldRelaxThirdPartyCookieBlocking.h
3:10 AM Changeset in webkit [262119] by Adrian Perez de Castro
  • 4 edits in trunk

[WPE][WKTR] Fix typo in EventSenderProxyWPE
https://bugs.webkit.org/show_bug.cgi?id=212340

Reviewed by Carlos Garcia Campos.

Tools:

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wpeKeySymForKeyRef): Fix typo rightArror -> rightArrow.

LayoutTests:

  • platform/wpe/TestExpectations: fast/events/keydown-numpad-keys.html is now passing.
1:37 AM Changeset in webkit [262118] by Diego Pino Garcia
  • 2 edits
    4 adds in trunk/LayoutTests

[GTK][WPE] Gardening, emit baselines for update-the-source-set.html after r261929.
https://bugs.webkit.org/show_bug.cgi?id=212216

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt: Added.
1:33 AM Changeset in webkit [262117] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

REGRESSION(r262057): [Flatpak SDK] sccache-dist server no longer starting
https://bugs.webkit.org/show_bug.cgi?id=212326

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

A few mount points were missing in the sandbox created by
flatpak run preventing the sccache-dist server to start and keep running.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

  • flatpak/webkit-bwrap:
1:31 AM Changeset in webkit [262116] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Fixup icecc support
https://bugs.webkit.org/show_bug.cgi?id=212301

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

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Allow homedir access from the
sandbox, this is needed because the icecc toolchains paths refer
to the host environment, not the sandbox.
(WebkitFlatpak.pack_toolchain): Fix byte-string formatting issue, happening in Python3.

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

[GTK4] SDK contains too old GTK4
https://bugs.webkit.org/show_bug.cgi?id=212334

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

  • buildstream/elements/sdk/gtk.bst: Update GTK4 to 3.98.4.
12:52 AM Changeset in webkit [262114] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

MediaPlayerPrivateMediaStreamAVFObjC::m_activeVideoTrack should be a VideoTrackPrivateMediaStream
https://bugs.webkit.org/show_bug.cgi?id=212129

Reviewed by Eric Carlson.

Instead of looking in the map when wanting to get the VideoTrackPrivateMediaStream corresponding to the active video track,
store directly the VideoTrackPrivateMediaStream as the active video track and use streamTrack() to get the corresponding MediaStreamTrack.
Small refactoring to use more Ref<>.
Covered by existing tests.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerStatusDidChange):
(WebCore::updateTracksOfType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):

  • platform/mediastream/AudioTrackPrivateMediaStream.h:
  • platform/mediastream/VideoTrackPrivateMediaStream.h:

May 24, 2020:

11:28 PM Changeset in webkit [262113] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Do not allocate a WebAudioBufferList in the AudioContext rendering thread
https://bugs.webkit.org/show_bug.cgi?id=212132

Reviewed by Eric Carlson.

Instead of allocating the buffer in the rendering thread, we do that in the audio sample producer thread.
Also, we do it only once versus one for each rendering call previously.
Covered by existing tests.

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

(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):

11:25 PM Changeset in webkit [262112] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/Source/WebKit

Remove NetworkProcess/FileAPI
https://bugs.webkit.org/show_bug.cgi?id=212335

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-24
Reviewed by Sam Weinig.

Remove NetworkProcess/FileAPI, the only file it contains is unused.
It seems this could have been removed in r248593.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: Removed.
12:29 PM Changeset in webkit [262111] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Add some missing includes due to unified sources
https://bugs.webkit.org/show_bug.cgi?id=212306

Reviewed by Anders Carlsson.

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp: Include EnterPictureInPictureEvent.h.
  • platform/PictureInPictureObserver.h: Include WeakPtr and forward declare the IntSize class.
12:13 PM Changeset in webkit [262110] by weinig@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

Extended Color Cleanup: Move SimpleColor into its own files
https://bugs.webkit.org/show_bug.cgi?id=212309

Reviewed by Simon Fraser.

Move SimpleColor into its own files. It's about time.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/Color.cpp:

(WebCore::premultipliedChannel): Deleted.
(WebCore::unpremultipliedChannel): Deleted.
(WebCore::makePremultipliedRGBA): Deleted.
(WebCore::makeUnPremultipliedRGBA): Deleted.
(WebCore::colorFloatToRGBAByte): Deleted.
(WebCore::makeRGBA32FromFloats): Deleted.
(WebCore::makeRGBAFromHSLA): Deleted.
(WebCore::makeRGBAFromCMYKA): Deleted.
(WebCore::SimpleColor::serializationForHTML const): Deleted.
(WebCore::decimalDigit): Deleted.
(WebCore::fractionDigitsForFractionalAlphaValue): Deleted.
(WebCore::SimpleColor::serializationForCSS const): Deleted.
(WebCore::RGBA32::serializationForRenderTreeAsText const): Deleted.

  • platform/graphics/Color.h:

(WebCore::SimpleColor::SimpleColor): Deleted.
(WebCore::SimpleColor::value const): Deleted.
(WebCore::SimpleColor::redComponent const): Deleted.
(WebCore::SimpleColor::greenComponent const): Deleted.
(WebCore::SimpleColor::blueComponent const): Deleted.
(WebCore::SimpleColor::alphaComponent const): Deleted.
(WebCore::SimpleColor::alphaComponentAsFloat const): Deleted.
(WebCore::SimpleColor::isOpaque const): Deleted.
(WebCore::SimpleColor::isVisible const): Deleted.
(WebCore::SimpleColor::colorWithAlpha const): Deleted.
(WebCore::SimpleColor::get const): Deleted.
(WebCore::roundAndClampColorChannel): Deleted.
(WebCore::fastMultiplyBy255): Deleted.
(WebCore::fastDivideBy255): Deleted.
(WebCore::makeRGB): Deleted.
(WebCore::makeRGBA): Deleted.

  • platform/graphics/SimpleColor.cpp: Copied from platform/graphics/Color.cpp.

(WebCore::SimpleColor::serializationForRenderTreeAsText const):
(): Deleted.
(WebCore::colorFloatToRGBAByte): Deleted.
(WebCore::parseHexColorInternal): Deleted.
(WebCore::Color::parseHexColor): Deleted.
(WebCore::differenceSquared): Deleted.
(WebCore::findNamedColor): Deleted.
(WebCore::Color::Color): Deleted.
(WebCore::Color::operator=): Deleted.
(WebCore::Color::serialized const): Deleted.
(WebCore::Color::cssText const): Deleted.
(WebCore::RGBA32::serializationForRenderTreeAsText const): Deleted.
(WebCore::Color::nameForRenderTreeAsText const): Deleted.
(WebCore::Color::light const): Deleted.
(WebCore::Color::dark const): Deleted.
(WebCore::Color::isDark const): Deleted.
(WebCore::Color::lightness const): Deleted.
(WebCore::blendComponent): Deleted.
(WebCore::Color::blend const): Deleted.
(WebCore::Color::blendWithWhite const): Deleted.
(WebCore::Color::colorWithAlphaMultipliedBy const): Deleted.
(WebCore::Color::colorWithAlphaMultipliedByUsingAlternativeRounding const): Deleted.
(WebCore::Color::colorWithAlpha const): Deleted.
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const): Deleted.
(WebCore::Color::colorSpaceAndComponents const): Deleted.
(WebCore::Color::toSRGBASimpleColorLossy const): Deleted.
(WebCore::Color::toSRGBAComponentsLossy const): Deleted.
(WebCore::extendedColorsEqual): Deleted.
(WebCore::blend): Deleted.
(WebCore::blendWithoutPremultiply): Deleted.
(WebCore::Color::tagAsValid): Deleted.
(WebCore::Color::asExtended const): Deleted.
(WebCore::operator<<): Deleted.

  • platform/graphics/SimpleColor.h: Copied from platform/graphics/Color.h.

(WebCore::SimpleColor::alphaComponentAsFloat const):
(WebCore::SimpleColor::colorWithAlpha const):
(WebCore::SimpleColor::get const):
(WebCore::colorFloatToRGBAByte):
(WebCore::Color::Color): Deleted.
(WebCore::Color::isHashTableDeletedValue const): Deleted.
(WebCore::Color::~Color): Deleted.
(WebCore::Color::isValid const): Deleted.
(WebCore::Color::isOpaque const): Deleted.
(WebCore::Color::isVisible const): Deleted.
(WebCore::Color::red const): Deleted.
(WebCore::Color::green const): Deleted.
(WebCore::Color::blue const): Deleted.
(WebCore::Color::alpha const): Deleted.
(WebCore::Color::alphaAsFloat const): Deleted.
(WebCore::Color::opaqueColor const): Deleted.
(WebCore::Color::isSemantic const): Deleted.
(WebCore::Color::isExtended const): Deleted.
(WebCore::Color::setRGB): Deleted.
(WebCore::Color::setIsSemantic): Deleted.
(WebCore::equalIgnoringSemanticColor): Deleted.
(WebCore::Color::hash const): Deleted.
(WebCore::Color::colorWithAlphaMultipliedByUsingAlternativeRounding const): Deleted.
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const): Deleted.
(WebCore::Color::rgb const): Deleted.
(WebCore::Color::isBlackColor): Deleted.
(WebCore::Color::isWhiteColor): Deleted.
(WebCore::Color::encode const): Deleted.
(WebCore::Color::decode): Deleted.

10:25 AM WebKitEmacsTips edited by Philippe Normand
(diff)
10:15 AM Changeset in webkit [262109] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][TFC] Ignore section borders even when border collapse is off.
https://bugs.webkit.org/show_bug.cgi?id=212336

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-thead-border-ignore.html

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-thead-border-ignore-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-thead-border-ignore.html: Added.
8:53 AM Changeset in webkit [262108] by weinig@apple.com
  • 28 edits in trunk

Extended Color Cleanup: Stop allowing direct access to the underlying SimpleColor (it is almost always incorrect with respect to extended colors)
https://bugs.webkit.org/show_bug.cgi?id=212184

Reviewed by Dean Jackson.

Source/WebCore:

  • Makes Color::rgb() private, removing a class of extended color bugs from users of the Color class. To get the equivilent functionality, users of the class must now use toSRGBASimpleColorLossy() which does actually does the conversion to sRGB if necessary and makes it clear to the caller that precision is being lost.
  • Removes Color::red()/green()/blue() entirely. They were just calling down to Color::rgb(), and going forward, it won't make sense to think about rgb components of Colors in general, since some extended color spaces don't deal in them (e.g. Lab) Color::alpha() was kept (and fixed to work even with ExtendedColor) since all ExtendedColors do need to have alpha.
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::colorValue const):
Use toSRGBASimpleColorLossy() to get access to color components.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):
Use toSRGBASimpleColorLossy() to get access to color components.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::colorValue const):
Use toSRGBASimpleColorLossy() to get access to color components.

  • css/DeprecatedCSSOMRGBColor.h:

Use toSRGBASimpleColorLossy() to get access to color components.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS const):
(WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS const):
(WebCore::CaptionUserPreferencesMediaAF::captionsTextColor const):
User Color::colorWithAlpha() to avoid the need to muck with components directly.

  • platform/graphics/Color.cpp:

(WebCore::differenceSquared):
Use rgb() directly, which is ok, since this is explicitly checking isExtended().
This code is still wrong (there is a FIXME) as it assumes the two colors are in
the same color space.

(WebCore::Color::Color):
Add constructor which takes an ExtendedColor to allow functions like
Color::invertedColorWithAlpha to delegate their functionality to ExtendedColor.

(WebCore::Color::light const):
Use new SimpleColor::colorWithAlpha() to avoid hardcoding constants here.

(WebCore::Color::blend const):
(WebCore::Color::blendWithWhite const):
Use toSRGBASimpleColorLossy() to get access to color components. These
are still not ideal implementations, as they don't preserve extended colors
as well as they could, but now they don't return bogus values for extended
colors. Minor cleanup bringing constants and lambda inside the function they
are used in.

(WebCore::Color::colorWithAlpha const):
(WebCore::Color::colorWithAlphaUsingAlternativeRounding const):
Minor cleanups to use a more consistent style and make use of the new
SimpleColor::colorWithAlpha.

(WebCore::Color::invertedColorWithAlpha const):
Added. Used to avoid direct component usage in line box code.

(WebCore::Color::semanticColor const):
Added. Hopefully temporary. Used by RenderThemeIOS.mm to convert
a Color from a map into a Color with the semantic bit set. This
should not be necessary as every color in the map should already
have it set, but to avoid uncessary possible behavior changes this
preserves that functionality until it can be researched further.
Fixing coders to preserve the semantic bit may be required to
elliminate the need.

(WebCore::Color::colorSpaceAndComponents const):
Use rgb() rather than the individual components which have been removed.

  • platform/graphics/Color.h:

(WebCore::SimpleColor::alphaComponentAsFloat const):
Added. Needed by DeprecatedCSSOMRGBColor and useful to Color.

(WebCore::SimpleColor::colorWithAlpha const):
Useful to simplify Color::colorWithAlpha implementations and
in Color::dark().

(WebCore::SimpleColor::get const):
Added tuple interface to SimpleColor to support structure bindings.
NOTE: Unlike the storage of SimpleColor (ARGB), this produces the
bindings in the more familiar [r,g,b,a] to match FloatComponents.

(WebCore::Color::alpha const):
Made work with ExtendedColor as well.

(WebCore::Color::red const): Deleted.
(WebCore::Color::green const): Deleted.
(WebCore::Color::blue const): Deleted.
Removed.

(CGColorRef cachedCGColor):
(int differenceSquared):
Made friends so they could use Color::rgb().

(WebCore::Color::rgb const):
Made private.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::invertedColorWithAlpha const):

  • platform/graphics/ExtendedColor.h:

Added invertedColorWithAlpha to allow inversion to be encapsulated.
When future color spaces are added, we may need to choose per-colorspace
algorithms for this instead of the trivial one used today.

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):
Use toSRGBASimpleColorLossy() to get access to color components.

  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

(PlatformCAAnimationWin::setFromValue):
(PlatformCAAnimationWin::setToValue):
(PlatformCAAnimationWin::setValues):
Use toSRGBASimpleColorLossy() to get access to color components.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawFocusRing):
Use Color::colorWithAlpha() to avoid needing access to components.

  • platform/graphics/cpu/arm/filters/FELightingNEON.h:

(WebCore::FELighting::platformApplyNeon):
Use toSRGBASimpleColorLossy() to get access to color components.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::clearColor):
Use toSRGBASimpleColorLossy() to get access to color components.

  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawGlyphs):
Use colorWithAlphaMultipliedBy() to avoid needing access to components.

  • platform/graphics/win/FontCGWin.cpp:

(WebCore::FontCascade::drawGlyphs):
Use colorWithAlphaMultipliedBy() to avoid needing access to components.

  • platform/graphics/win/FontCascadeDirect2D.cpp:

(WebCore::FontCascade::drawGlyphs):
Use colorWithAlphaMultipliedBy() to avoid needing access to components.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::paintSelection):
Use invertedColorWithAlpha() to avoid needing access to components.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::resolveStyleForMarkedText):
Use invertedColorWithAlpha() to avoid needing access to components.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBoxShadow):
Use opaqueColor() to avoid needing access to components.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor const):
Use opaqueColor() to avoid needing access to components.

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationColorFunction::animate):
Use toSRGBASimpleColorLossy() to get access to color components.

Source/WebKit:

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::animationValueFromKeyframeValue):
Use toSRGBASimpleColorLossy() to get access to color components.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Use toSRGBASimpleColorLossy() to get access to color components.

8:34 AM Changeset in webkit [262107] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][TFC] Take sections into account when computing collapsed border.
https://bugs.webkit.org/show_bug.cgi?id=212311

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-collapsed-tbody-border.html

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Section::Section):
(WebCore::Layout::TableGrid::appendCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Section::box const):
(WebCore::Layout::TableGrid::sections const):
(WebCore::Layout::TableGrid::sections):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-collapsed-tbody-border-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-collapsed-tbody-border.html: Added.
8:23 AM Changeset in webkit [262106] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Take collapsed in-between row border into account when computing cell height
https://bugs.webkit.org/show_bug.cgi?id=212307

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-collapsed-row-border2.html

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::computedCellBorder const):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-collapsed-row-border2-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-collapsed-row-border2.html: Added.
8:07 AM Changeset in webkit [262105] by Carlos Garcia Campos
  • 2 edits
    1 delete in trunk/Source/WebKit

Unreviewed. Remove unused file since r261570

I forgot to remove DragAndDropHandler.h.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/gtk/DragAndDropHandler.h: Removed.

May 23, 2020:

1:53 PM Changeset in webkit [262104] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Take row border into account when computing collapsed borders.
https://bugs.webkit.org/show_bug.cgi?id=212305

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-collapsed-row-border.html

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-collapsed-row-border-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-collapsed-row-border.html: Added.
1:13 PM Changeset in webkit [262103] by Jack Lee
  • 2 edits in trunk/Source/WebCore
ASSERTION FAILED: (!s_current
&m_view != &s_current->m_view) in RenderTreeBuilder::RenderTreeBuilder

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

Unreviewed. Improve readability. Replace comments with curly brackets for scoping.

  • dom/Document.cpp:

(WebCore::Document::updateRenderTree):

12:47 PM Changeset in webkit [262102] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Maximum constraint of a cell should never be smaller than the minimum width
https://bugs.webkit.org/show_bug.cgi?id=212304

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-fixed-width-with-wide-content.html

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::intrinsicWidthConstraintsForCell):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-fixed-width-with-wide-content-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-fixed-width-with-wide-content.html: Added.
10:10 AM Changeset in webkit [262101] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][TFC] Used height of a cell is the maximum of the computed and the content height.
https://bugs.webkit.org/show_bug.cgi?id=212302

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-tall-cell-content-with-fixed-height.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-tall-cell-content-with-fixed-height-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-tall-cell-content-with-fixed-height.html: Added.
9:35 AM Changeset in webkit [262100] by Caio Lima
  • 8 edits in trunk

[bmalloc] Fix OOM errors on MIPS after r261667
https://bugs.webkit.org/show_bug.cgi?id=212016

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
  • stress/big-int-mod-memory-stress.js:
  • stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:

Source/bmalloc:

The way we were calculating newBegin and newEnd on
ObjectTypeTable::set when index is out of bounds didn't consider
cases where bits->begin() - bits->count() or index - ObjectTypeTable::Bits::bitCountPerWord * 4
can underflow and bits->end() + bits->count() can overflow.
Given that, the value used is going to be index or index + 1.
Since we extend the size of bitvector everytime we have an OOB, this can cause a pathological case
that memory will keep extending quite often until systems reachs OOM.
It is reproducible on ARMv7 and MIPS architectures on
stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js,
stress/big-int-mod-memory-stress.js and some other tests.
This patch is including a verification if those operations are going
to overflow/underflow, and properly set newBegin to 0 and newEnd
to UINT_MAX when we observe such behavior.

  • bmalloc/ObjectTypeTable.cpp:

(bmalloc::ObjectTypeTable::set):

LayoutTests:

  • js/script-tests/stack-overflow-regexp.js:
9:21 AM Changeset in webkit [262099] by cturner@igalia.com
  • 2 edits in trunk/Source/WebKit

Error sending IPC message: Broken pipe
https://bugs.webkit.org/show_bug.cgi?id=206052

Reviewed by Adrian Perez de Castro.

The Connection implementation on *nix was not handling socket
shutdowns gracefully, this was leading to many IPC error messages
being printed. It looks like the "errors" were actually
application issues, trying to send messages during socket shutdown
sequences, rather than more serious message drop problems.

Unclear how to autotest this, but manual testing opening lots of tabs
definitely hits these codepaths.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::readyReadHandler): Handle ECONNRESET by cleanly
closing the connection.
(IPC::Connection::sendOutputMessage): Ditto, also handle the
wrinkle that for "reasons", Linux can return EPIPE when it means
ECONNRESET.

7:57 AM Changeset in webkit [262098] by Paulo Matos
  • 48 edits in trunk/Source/JavaScriptCore

Fix non-unified builds for x86_64
https://bugs.webkit.org/show_bug.cgi?id=212297

Reviewed by Adrian Perez de Castro.

  • b3/B3BasicBlock.cpp:
  • b3/B3CaseCollection.cpp:
  • b3/B3DuplicateTails.cpp:
  • b3/B3EnsureLoopPreHeaders.cpp:
  • b3/B3FenceValue.cpp:
  • b3/B3HoistLoopInvariantValues.cpp:
  • b3/B3LegalizeMemoryOffsets.cpp:
  • b3/B3LowerMacrosAfterOptimizations.cpp:
  • b3/B3LowerToAir.cpp:
  • b3/B3MathExtras.cpp:
  • b3/B3MemoryValue.cpp:
  • b3/B3Procedure.cpp:
  • b3/B3StackmapValue.cpp:
  • b3/B3SwitchValue.cpp:
  • b3/B3UseCounts.cpp:
  • b3/B3Validate.cpp:
  • b3/B3VariableValue.cpp:
  • b3/B3WasmAddressValue.cpp:
  • b3/B3WasmBoundsCheckValue.cpp:
  • ftl/FTLCommonValues.cpp:
  • ftl/FTLCompile.cpp:
  • ftl/FTLOSREntry.cpp:
  • ftl/FTLOSRExitCompiler.cpp:
  • wasm/WasmInstance.cpp:
  • wasm/WasmStreamingParser.cpp:
  • wasm/js/JSToWasm.cpp:
  • wasm/js/JSToWasmICCallee.cpp:
  • wasm/js/JSWebAssembly.cpp:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:
  • wasm/js/WebAssemblyCompileErrorPrototype.cpp:
  • wasm/js/WebAssemblyFunction.cpp:
  • wasm/js/WebAssemblyFunctionBase.cpp:
  • wasm/js/WebAssemblyGlobalPrototype.cpp:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:
  • wasm/js/WebAssemblyInstancePrototype.cpp:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:
  • wasm/js/WebAssemblyLinkErrorPrototype.cpp:
  • wasm/js/WebAssemblyMemoryConstructor.cpp:
  • wasm/js/WebAssemblyMemoryPrototype.cpp:
  • wasm/js/WebAssemblyModuleConstructor.cpp:
  • wasm/js/WebAssemblyModulePrototype.cpp:
  • wasm/js/WebAssemblyModuleRecord.cpp:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
  • wasm/js/WebAssemblyTableConstructor.cpp:
  • wasm/js/WebAssemblyTablePrototype.cpp:
6:34 AM Changeset in webkit [262097] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][TFC] Non-collapsing row border should not make the table wider/taller
https://bugs.webkit.org/show_bug.cgi?id=212263

Reviewed by Antti Koivisto.

Source/WebCore:

Non-collapsing row border eats into the content box but oddly it does not
constraint the cell boxes, so we can end up with smaller row content box than
the cell box it contains.

Test: fast/layoutformattingcontext/table-simple-row-border.html

  • layout/LayoutUnits.h:

(WebCore::Layout::Edges::width const):
(WebCore::Layout::Edges::height const):
(WebCore::Layout::HorizontalEdges::width const): Deleted.
(WebCore::Layout::VerticalEdges::height const): Deleted.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::intrinsicWidthConstraintsForCell):

LayoutTests:

  • fast/layoutformattingcontext/table-simple-row-border-expected.html: Added.
  • fast/layoutformattingcontext/table-simple-row-border.html: Added.
Note: See TracTimeline for information about the timeline view.