⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

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

Note: See TracTimeline for information about the timeline view.