Timeline



Oct 6, 2018:

7:48 PM Changeset in webkit [236903] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Tried to fix the macOS Mojave build.

  • UIProcess/API/Cocoa/LegacyBundleForClass.mm:
6:29 PM Changeset in webkit [236902] by mitz@apple.com
  • 18 edits in trunk/Source/WebKit

WebKit part of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.
  • WebKit.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:
  • UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:
  • UIProcess/API/Cocoa/WKConnection.mm:
  • UIProcess/API/Cocoa/WKNavigationData.mm:
  • UIProcess/API/Cocoa/WKProcessGroup.mm:
  • UIProcess/API/Cocoa/WKTypeRefWrapper.mm:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
  • UIProcess/API/mac/WKView.mm:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

Suppressed -Wdeprecated-implementations around some class, category and method
implementations the above files.

5:20 PM Changeset in webkit [236901] by Caio Lima
  • 29 edits
    7 adds in trunk

[ESNext][BigInt] Implement support for "|"
https://bugs.webkit.org/show_bug.cgi?id=186229

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-bitwise-and-jit.js:
  • stress/big-int-bitwise-or-general.js: Added.
  • stress/big-int-bitwise-or-jit-untyped.js: Added.
  • stress/big-int-bitwise-or-jit.js: Added.
  • stress/big-int-bitwise-or-memory-stress.js: Added.
  • stress/big-int-bitwise-or-to-primitive-precedence.js: Added.
  • stress/big-int-bitwise-or-type-error.js: Added.
  • stress/big-int-bitwise-or-wrapped-value.js: Added.

Source/JavaScriptCore:

This patch is introducing support for BigInt into bitwise "or" operator.
In addition, we are also introducing 2 new DFG nodes, named "ArithBitOr" and
"ValueBitOr", to replace "BitOr" node. The idea is to follow the
difference that we make on Arith<op> and Value<op>, where ArithBitOr
handles cases when the operands are Int32 and ValueBitOr handles
the remaining cases.

We are also changing op_bitor to use ValueProfile. We are using
ValueProfile during DFG generation to emit "ArithBitOr" when
outcome prediction is Int32.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::arithProfileForPC):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitBinaryOp):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

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

  • 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:

(JSC::DFG::bitwiseOp):

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueBitwiseOp):
(JSC::DFG::SpeculativeJIT::compileBitwiseOp):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::bitOp):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitOr):
(JSC::FTL::DFG::LowerDFGToB3::compileArithBitOr):
(JSC::FTL::DFG::LowerDFGToB3::compileBitOr): Deleted.

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_bitor):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::bitwiseAnd):
(JSC::JSBigInt::bitwiseOr):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAddOne):

  • runtime/JSBigInt.h:
12:49 PM Changeset in webkit [236900] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use new extra memory reporting in SparseArrayMap
https://bugs.webkit.org/show_bug.cgi?id=190278

Reviewed by Keith Miller.

This patch switches the extra memory reporting mechanism from deprecatedReportExtraMemory
to reportExtraMemoryAllocated & reportExtraMemoryVisited in SparseArrayMap.

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::add):
(JSC::SparseArrayValueMap::visitChildren):

12:10 PM Changeset in webkit [236899] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Adding some temporary asserts to debug a mysterious ASAN bot crash.
https://bugs.webkit.org/show_bug.cgi?id=190331

Reviewed by Filip Pizlo.

These assertions are needed because we can't reproduce the issue locally.
We'll remove these asserts after the needed data has been collected from the bot.

  • wtf/StackBounds.h:

(WTF::StackBounds::checkConsistency const):

9:07 AM Changeset in webkit [236898] by mitz@apple.com
  • 4 edits in trunk

[Xcode] Never build yasm with ASAN
https://bugs.webkit.org/show_bug.cgi?id=190327

Reviewed by Youenn Fablet.

Source/ThirdParty/libwebrtc:

  • Configurations/yasm.xcconfig: Set WK_ASAN_DISALLOWED to YES.

Tools:

  • asan/asan.xcconfig: Allow targets to opt out of building with ASAN by setting the WK_ASAN_DISALLOWED build setting to YES (or, actually, anything other than NO or unset).
8:59 AM Changeset in webkit [236897] by mitz@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Fixed iOS device production builds after r236896.

  • Configurations/yasm.xcconfig: Excluding all sources when building for an iOS device meant that nothing got built, which caused the install action to fail when it tried to copy the built product. Just put things back the way they were for now.
7:41 AM Changeset in webkit [236896] by mitz@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

[Xcode] Don’t install yasm and don’t compile it in iOS device builds
https://bugs.webkit.org/show_bug.cgi?id=190326

Reviewed by Youenn Fablet.

  • Configurations/yasm.xcconfig: Set SKIP_INSTALL to YES, and excluded all source files when targeting iOS devices.
6:57 AM Changeset in webkit [236895] by commit-queue@webkit.org
  • 14 edits in trunk

Properly determine if css custom property values are computationally independent
https://bugs.webkit.org/show_bug.cgi?id=190303

Patch by Justin Michaud <Justin Michaud> on 2018-10-06
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt:

Source/WebCore:

Add getDirectComputationalDependencies method to determine if a value is computationally
dependent. Use this method in CSS.registerProperty to replace existing substring checks.
No new tests are needed because the existing tests cover this behaviour.

  • css/CSSCalculationValue.cpp:

(WebCore::determineCategory):

  • css/CSSCalculationValue.h:

(WebCore::CSSCalcValue::getDirectComputationalDependencies const):
(WebCore::CSSCalcValue::getDirectRootComputationalDependencies const):

  • css/CSSCustomPropertyValue.cpp:

(WebCore::CSSCustomPropertyValue::customCSSText const):
(WebCore::CSSCustomPropertyValue::tokens const):
(WebCore::CSSCustomPropertyValue::setResolvedTypedValue):

  • css/CSSCustomPropertyValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::getDirectComputationalDependencies const):
(WebCore::CSSPrimitiveValue::getDirectRootComputationalDependencies const):

  • css/CSSPrimitiveValue.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::getDirectComputationalDependencies const):
(WebCore::CSSValue::getDirectRootComputationalDependencies const):

  • css/CSSValue.h:
  • css/CSSVariableData.cpp:

(WebCore::CSSVariableData::CSSVariableData):
(WebCore::CSSVariableData::resolveVariableReference const):

  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

Oct 5, 2018:

6:45 PM Changeset in webkit [236894] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.9.2/Source

Versioning.

6:40 PM Changeset in webkit [236893] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.9.2

New tag.

6:06 PM Changeset in webkit [236892] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: add WebVTT MIME/file type mappings to the frontend
https://bugs.webkit.org/show_bug.cgi?id=190288

Reviewed by Brian Burg.

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.mimeTypeForFileExtension):
(WI.fileExtensionForMIMEType):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.displayNameForResource):
Also attempt to use the mime-type-to-extension when the WI.Resource is of type Other.

5:20 PM Changeset in webkit [236891] by Devin Rousso
  • 8 edits in trunk

Web Inspector: refactor constructor of WI.Resource
https://bugs.webkit.org/show_bug.cgi?id=190318

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Reworked constructor of WI.Resource to use an optional object for any non-essential arguments.

Drive-by: moved some simple getters to the top of the class to save space.

  • UserInterface/Models/Resource.js:

(WI.Resource):

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource):

  • UserInterface/Models/WebSocketResource.js:

(WI.WebSocketResource):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.frameDidNavigate):
(WI.NetworkManager.prototype.resourceRequestWillBeSent):
(WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
(WI.NetworkManager.prototype._addNewResourceToFrameOrTarget):
(WI.NetworkManager.prototype._createFrame):
(WI.NetworkManager.prototype._createResource):

LayoutTests:

  • http/tests/inspector/network/har/har-basic.html:
  • inspector/unit-tests/resource-collection.html:
5:02 PM Changeset in webkit [236890] by jer.noble@apple.com
  • 1 edit
    3 adds in trunk/Websites/bugs.webkit.org

Radar links should be clickable on bugs.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=190293
<rdar://problem/45020184>

Reviewed by Lucas Forschler.

Add a new Extension which formats bug comments and makes radar:// links clickable.

  • extensions/Radar/Config.pm: Added.
  • extensions/Radar/Extension.pm: Added.

(bug_format_comment):
(_replace_radar):

3:26 PM Changeset in webkit [236889] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.9.1/Source

Versioning.

3:25 PM Changeset in webkit [236888] by Chris Dumez
  • 8 edits in trunk

Regression(r236862): Crash under DOMWindowExtension::willDetachGlobalObjectFromFrame()
https://bugs.webkit.org/show_bug.cgi?id=190320
<rdar://problem/45044814>

Reviewed by Geoffrey Garen.

Source/WebCore:

r236862 caused DOMWindowProperty::willDetachGlobalObjectFromFrame() to get called several
times. There was no effect for most DOMWindowProperty objects. However, it would cause
crashes for DOMWindowExtension objects, which subclass DOMWindowProperty and override
DOMWindowProperty::willDetachGlobalObjectFromFrame() because they dereference the frame
without null checking it.

To address the issue, we now make sure DOMWindowProperty::willDetachGlobalObjectFromFrame()
is not called several times.

  • dom/Document.cpp:

(WebCore::Document::detachFromFrame):
Stop calling DOMWindow::willDetachDocumentFromFrame() here as most call sites already
take care of calling DOMWindow::willDetachDocumentFromFrame() beforehand (e.g.
Document::prepareForDestruction()).
Also, return early if the Document is already detached from its frame.

(WebCore::Document::frameWasDisconnectedFromOwner):
Add new utility function called when a Frame is disconnected from its owner which
calls both Document::detachFromFrame() and DOMWindow::willDetachDocumentFromFrame().

  • dom/Document.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::willDetachDocumentFromFrame):
Return early if the Window is already detached from its frame.

  • page/Frame.cpp:

(WebCore::Frame::disconnectOwnerElement):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic_Bundle.cpp:

(TestWebKitAPI::DOMWindowExtensionBasic::willDestroyGlobalObjectForDOMWindowExtension):

3:14 PM Changeset in webkit [236887] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.9.1

Tag Safari-607.1.9.1.

2:39 PM Changeset in webkit [236886] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r236154) Page loads are not drawn when loaded in shipped Safari11/12
https://bugs.webkit.org/show_bug.cgi?id=190202

Reviewed by Youenn Fablet.

Safari11/12 had a WKPageLoaderClient and a WKPageNavigationClient.
It did not actually draw the page until its WKPageNavigationClient.renderingProgressDidChange was called.
r236154 made it so we only call WKPageLoaderClient.didLayout if an application has both clients.
This fixes open source WebKit running with shipped Safari.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReachLayoutMilestone):

2:12 PM Changeset in webkit [236885] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: use iframe's name attribute for FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=190275

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FrameTreeElement.js:

(WI.FrameTreeElement.prototype.get mainTitleText): Added.

  • UserInterface/Views/ResourceTreeElement.js:

(WI.ResourceTreeElement.prototype.get mainTitleText): Added.
(WI.ResourceTreeElement.prototype._updateTitles):
Provide a way for subclasses to override what is used for the mainTitle.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
Update the execution context picker to match what WI.FrameTreeElements show.

1:08 PM Changeset in webkit [236884] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Try to unflake inspector/layers/layerTreeDidChange.html

Unreviewed. Test gardening.

  • inspector/layers/layerTreeDidChange.html:

Force a layout early in the test to try to force layout tree
update events in the expected sequence.

12:59 PM Changeset in webkit [236883] by yusukesuzuki@slowstart.org
  • 9 edits
    2 adds in trunk/Source

[JSC][Linux] Support Perf JITDump logging
https://bugs.webkit.org/show_bug.cgi?id=189893

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch adds Linux perf command's JIT Dump support. It allows JSC to tell perf about JIT code information.
We add a command line option, --logJITCodeForPerf, which dumps jit-%pid.dump in the current directory.
By using this dump and perf.data output, we can annotate JIT code with profiling information.

$ echo "(function f() { var s = 0; for (var i = 0; i < 1000000000; i++) { s += i; } return s; })();" > test.js
$ perf record -k mono ../../WebKitBuild/perf/Release/bin/jsc test.js --logJITCodeForPerf=true
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.182 MB perf.data (4346 samples) ]
$ perf inject --jit -i perf.data -o perf.jit.data
$ perf report -i perf.jit.data

  • Sources.txt:
  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::finalizeCodeWithDisassemblyImpl):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::finalizeCodeWithDisassembly):

  • assembler/PerfLog.cpp: Added.

(JSC::PerfLog::singleton):
(JSC::generateTimestamp):
(JSC::getCurrentThreadID):
(JSC::PerfLog::PerfLog):
(JSC::PerfLog::write):
(JSC::PerfLog::flush):
(JSC::PerfLog::log):

  • assembler/PerfLog.h: Added.
  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):

  • runtime/Options.cpp:

(JSC::Options::isAvailable):

  • runtime/Options.h:

Source/WTF:

  • wtf/PageReservation.h:

(WTF::PageReservation::reserveAndCommitWithGuardPages):

12:30 PM Changeset in webkit [236882] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Further unreviewed watchOS build fix: videoPerformanceMetrics unavailable on watchOS.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics):

12:14 PM Changeset in webkit [236881] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: Build fix after r236880.
https://bugs.webkit.org/show_bug.cgi?id=190317

Unreviewed.

  • jit/ExecutableAllocator.h:
11:33 AM Changeset in webkit [236880] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

performJITMemcpy() should handle the case when the executable allocator is not initialized yet.
https://bugs.webkit.org/show_bug.cgi?id=190317
<rdar://problem/45039398>

Reviewed by Saam Barati.

When SeparatedWXHeaps is in use, jitWriteThunkGenerator() will call performJITMemcpy()
to copy memory before the JIT fixed memory pool is initialize. Before r236864,
performJITMemcpy() would just do a memcpy in that case. We need to restore the
equivalent behavior.

  • jit/ExecutableAllocator.cpp:

(JSC::isJITPC):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

11:26 AM Changeset in webkit [236879] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[PSON] Drop snapshotting workaround introduced in r235898
https://bugs.webkit.org/show_bug.cgi?id=190314

Reviewed by Geoffrey Garen.

Drop snapshotting workaround introduced in r235898 as it is no longer needed now
that the flashing bug has been fixed.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):

10:35 AM Changeset in webkit [236878] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed watchOS build fix: videoPerformanceMetrics unavailable on watchOS.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics):

10:20 AM Changeset in webkit [236877] by eric.carlson@apple.com
  • 58 edits in trunk/Source

[MediaStream] RealtimeMediaSource should be able to vend hashed IDs
https://bugs.webkit.org/show_bug.cgi?id=190142
<rdar://problem/44911109>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, covered by existing tests.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update order of parameters passed
to base class.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::start): ASSERT if document.deviceIDHashSalt is not the same
as passed salt.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::getSettings const): Don't need to hash ID.
(WebCore::MediaStreamTrack::getCapabilities const): Ditto.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow): Pass hash salt to createMediaStream.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource): Update order of parameters passed
to base class.

  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto.

  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Ditto.

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource): Calculate hashed ID.
(WebCore::RealtimeMediaSource::selectSettings): Use m_hashedID.
(WebCore::RealtimeMediaSource::hashedId const): New.
(WebCore::RealtimeMediaSource::deviceIDHashSalt const): New.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::createMediaStream): Take hash salt, pass it when creating
a source.
(WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto.

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::RealtimeVideoSource): Update parameters.

  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::GStreamerAudioCaptureSource::create): Ditto.
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): Ditto.

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::create): Ditto.
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): Ditto.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource): Ditto.

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:

(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource): Ditto.

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

(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.
(WebCore::AVVideoCaptureSource::settings): Use hashedId to set device ID.
(WebCore::AVVideoCaptureSource::capabilities): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::create): Update parameters.
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto.
(WebCore::CoreAudioCaptureSource::capabilities): Use hashedId to set device ID.
(WebCore::CoreAudioCaptureSource::settings): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Update parameters.

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac): Ditto.

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

(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::create): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update logging.
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Ditto.

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

(WebCore::WindowDisplayCaptureSourceMac::create): Update parameters.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::settings): Use hashedId to set device ID.
(WebCore::MockRealtimeAudioSource::capabilities): Ditto.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::create): Update parameters.
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto.
(WebCore::MockRealtimeVideoSource::capabilities): Use hashedId to set device ID.
(WebCore::MockRealtimeVideoSource::settings): Ditto.

  • platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MediaConstraints>::encode):
(IPC::ArgumentCoder<MediaConstraints>::decode):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::Source):
(WebKit::UserMediaCaptureManager::createCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
9:37 AM Changeset in webkit [236876] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix: internal builds can't find AVVideoPerformanceMetrics.

  • pal/spi/mac/AVFoundationSPI.h:
9:04 AM Changeset in webkit [236875] by jer.noble@apple.com
  • 23 edits
    1 add in trunk

Add support for reporting "display composited video frames" through the VideoPlaybackQuality object.
https://bugs.webkit.org/show_bug.cgi?id=190266

Reviewed by Eric Carlson.

Source/WebCore:

Test: TestWebKitAPI.VideoQualityDisplayCompositing

Modify VideoPlaybackQuality to take a VideoPlaybackQualityMetrics object in its
constructor (rather than individual fields). Add a new setting to control visibility
of the displayCompositedVideoFrames attribute on VideoPlaybackQuality. Add support
for VideoPlaybackQualityMetrics to MediaPlayerPrivateAVFoundationObjC.

  • Modules/mediasource/VideoPlaybackQuality.cpp:

(WebCore::VideoPlaybackQuality::create):
(WebCore::VideoPlaybackQuality::VideoPlaybackQuality):

  • Modules/mediasource/VideoPlaybackQuality.h:

(WebCore::VideoPlaybackQuality::displayCompositedVideoFrames const):

  • Modules/mediasource/VideoPlaybackQuality.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getVideoPlaybackQuality):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • page/Settings.yaml:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoPlaybackQualityMetrics):

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::videoPlaybackQualityMetrics):

Source/WebCore/PAL:

  • pal/spi/mac/AVFoundationSPI.h:

Source/WebKit:

Add a new preference to control the visibility of displayCompositedVideoFrames in the VideoPlaybackQualityObject.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setVideoQualityIncludesDisplayCompositingEnabled:]):
(-[WKPreferences _videoQualityIncludesDisplayCompositingEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/VideoQualityDisplayCompositing.mm: Added.

(TestWebKitAPI::TEST):

8:58 AM Changeset in webkit [236874] by Ryan Haddad
  • 23 edits
    1 delete in trunk

Unreviewed, rolling out r236866.

Breaks internal builds.

Reverted changeset:

"Add support for reporting "display composited video frames"
through the VideoPlaybackQuality object."
https://bugs.webkit.org/show_bug.cgi?id=190266
https://trac.webkit.org/changeset/236866

8:06 AM Changeset in webkit [236873] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

[WPE][JSC] Use Unified Sources for Platform-specific sources
https://bugs.webkit.org/show_bug.cgi?id=190300

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-10-05
Reviewed by Yusuke Suzuki.

Currently the GTK port already used Unified Sources with the same source files.
As WPE has conditional code using gmodule, we need to add GLIB_GMODULE_LIBRARIES
to the list of libraries to link with.

Source/JavaScriptCore:

  • PlatformWPE.cmake:
  • SourcesWPE.txt: Added.
  • shell/PlatformWPE.cmake:

Tools:

  • TestWebKitAPI/PlatformWPE.cmake:
6:05 AM Changeset in webkit [236872] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Skip test on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=190310

Invoking runDefault adds test to runlist, skipping the test in the next
line does not prevent the test from executing. Change order of lines such
that runDefault is only executed if test is not executed.

Patch by Dominik Infuehr <dominik.infuehr@gmail.com> on 2018-10-05
Reviewed by Mark Lam.

  • stress/regress-190187.js:
3:57 AM Changeset in webkit [236871] by graouts@webkit.org
  • 4 edits in trunk

[Web Animations] REGRESSION (r236809): crash under AnimationTimeline::updateCSSAnimationsForElement()
https://bugs.webkit.org/show_bug.cgi?id=190307
<rdar://problem/45009901>

Reviewed by Dean Jackson.

Source/WebCore:

We could crash with an invalid access to cssAnimationsByName since cancelOrRemoveDeclarativeAnimation() already
does the job of clearing the m_elementToCSSAnimationByName entry for this particular element if there are no
animations targeting it anymore. This started happening in r236809 when we switched from a simple call to to cancel()
to a call to cancelOrRemoveDeclarativeAnimation(). We can safely remove the removal here since cancelOrRemoveDeclarativeAnimation()
will already have performed this task safely if needed.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSAnimationsForElement):

LayoutTests:

This test was also crashing even though it should not have been using the new animation engine. Adding the
flag to opt into the legacy animation engine.

  • legacy-animation-engine/animations/animation-shorthand-removed.html:
3:56 AM Changeset in webkit [236870] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[GTK] build fails with python 3 if LANG and LC_TYPE are unset
https://bugs.webkit.org/show_bug.cgi?id=190258

Patch by Mike Gorse <mgorse@alum.wpi.edu> on 2018-10-05
Reviewed by Konstantin Tokarev.

  • Scripts/cssmin.py: Set stdout to UTF-8 on python 3.
  • Scripts/generateIntlCanonicalizeLanguage.py: Open files with encoding=UTF-8 on Python 3.
  • yarr/generateYarrCanonicalizeUnicode: Ditto.
  • yarr/generateYarrUnicodePropertyTables.py: Ditto.
12:49 AM Changeset in webkit [236869] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

Expose whether WKWebProcessPlugInNodeHandle is a select element to clients
https://bugs.webkit.org/show_bug.cgi?id=190302
<rdar://problem/45031469>

Patch by Zach Li <zachli@apple.com> on 2018-10-05
Reviewed by Tim Horton.

Source/WebKit:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:

Introduce a new property isSelectElement.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle isSelectElement]):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::isSelectElement const):
Check whether the node is a select element.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleNodeHandleIsSelectElement.mm: Added.

(-[InjectedBundleNodeHandleIsSelectElement verifySelectElementForHTMLElementTag:document:jsContext:expectedResult:failedElementTags:]):
(-[InjectedBundleNodeHandleIsSelectElement webProcessPlugIn:didCreateBrowserContextController:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[InjectedBundleNodeHandleIsSelectElementDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

Oct 4, 2018:

9:04 PM Changeset in webkit [236868] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r236766): Storage tab no longer updates after main frame navigation
https://bugs.webkit.org/show_bug.cgi?id=190298

Reviewed by Joseph Pecoraro.

Handle Cleared events from storage managers separately, so that successive
events during page load does not cause the Storage tab to destroy newly
created tree elements.

  • UserInterface/Views/StorageSidebarPanel.js:

(WI.StorageSidebarPanel):
(WI.StorageSidebarPanel.prototype._closeContentViewForTreeElement):
(WI.StorageSidebarPanel.prototype._domStorageCleared):
(WI.StorageSidebarPanel.prototype._applicationCacheCleared):
(WI.StorageSidebarPanel.prototype._indexedDatabaseCleared):
(WI.StorageSidebarPanel.prototype._databaseCleared):
(WI.StorageSidebarPanel.prototype._storageCleared): Deleted.

8:03 PM Changeset in webkit [236867] by Wenson Hsieh
  • 18 edits
    1 add in trunk

[iOS] [WK2] Expose some more editing SPI on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=190232
<rdar://problem/44963368>

Reviewed by Tim Horton.

Source/WebKit:

Exposes a few additional editing commands as SPI on WKWebView, by defining a new extension on WKWebView that
also conforms to <UIResponderStandardEditActions>. This patch implements nearly all of the remaining
unimplemented methods on UIResponderStandardEditActions, and the new extension augments this set of editing
methods by adding additional editing helpers that don't currently exist on iOS (e.g. toggleStrikeThrough and
insertUnorderedList). The names of these new methods have been largely been borrowed from their counterparts on
macOS (see: NSResponder.h).

The new edit actions are added in this patch on iOS are:

`

  • (void)alignCenter:(id)sender;
  • (void)alignJustified:(id)sender;
  • (void)alignLeft:(id)sender;
  • (void)alignRight:(id)sender;
  • (void)indent:(id)sender;
  • (void)insertOrderedList:(id)sender;
  • (void)insertUnorderedList:(id)sender;
  • (void)outdent:(id)sender;
  • (void)toggleStrikeThrough:(id)sender;
  • (void)setFont:(UIFont *)font sender:(id)sender;
  • (void)setFontSize:(CGFloat)fontSize sender:(id)sender;
  • (void)setTextColor:(UIColor *)color sender:(id)sender;

`

Tests: WKWebViewEditActions.ListInsertion

WKWebViewEditActions.ChangeIndentation
WKWebViewEditActions.SetAlignment
WKWebViewEditActions.ToggleStrikeThrough
WKWebViewEditActions.ChangeFontSize
WKWebViewEditActions.SetTextColor
WKWebViewEditActions.SetFontFamily

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView canPerformAction:withSender:]):

Update this to handle the new editing actions. For now, we simply treat all of the new edit actions in the same
way as we currently treat bold, italic and underline: that is, they are enabled only when the user is in a
richly contenteditable element.

(-[WKWebView setFont:sender:]):
(-[WKWebView setFontSize:sender:]):

Construct and send a set of FontChanges.

(-[WKWebView setTextColor:sender:]):

Invoke "ForeColor" with the serialized color representation. This allows us to handle rgba() color values,
which hex format would not permit.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Add the new SPI.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::changeFontAttributes):
(WebKit::WebPageProxy::changeFont):

Pull logic for applying font and font attribute style changes out of macOS-specific code, and into
platform-agnostic code in WebPage and WebPageProxy.

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

Add the new supported editing commands as supported actions in WKWebView. The only new editing commands that
aren't present in this list are -setFont:sender:, -setColor:sender:, and -setFontSize:sender: which are manually
handled in places where the FOR_EACH_WKCONTENTVIEW_ACTION macro is otherwise used. In a followup, we could
consider augmenting FOR_EACH_WKCONTENTVIEW_ACTION to handle actions with multiple arguments.

  • UIProcess/ios/WKContentViewInteraction.mm:

Define a new helper macro here to define boilerplate implementations of the -…ForWebView edit command
implementations that turn around and invoke _page->executeEditCommand with no additional arguments, and an
edit command name matching that of the WebCore edit command.

(-[WKContentView toggleStrikeThroughForWebView:]):
(-[WKContentView increaseSizeForWebView:]):
(-[WKContentView decreaseSizeForWebView:]):
(-[WKContentView setFontForWebView:sender:]):
(-[WKContentView setFontSizeForWebView:sender:]):
(-[WKContentView setTextColorForWebView:sender:]):
(-[WKContentView canPerformActionForWebView:sender:]):

Add …ForWebView plumbing for the new editing actions, so they turn around and call into WKContentView by
default, but behavior may be overridden in WKWebView.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::changeFontAttributes): Deleted.
(WebKit::WebPageProxy::changeFont): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::changeFontAttributes):
(WebKit::WebPage::changeFont):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::changeFontAttributes): Deleted.
(WebKit::WebPage::changeFont): Deleted.

Tools:

Adds new API tests to exercise the new SPIs.

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

(-[TestWKWebView querySelectorExists:]):
(TestWebKitAPI::webViewForEditActionTesting):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

(-[TestWKWebView collapseToStart]): Deleted.
(-[TestWKWebView collapseToEnd]): Deleted.
(-[TestWKWebView stylePropertyAtSelectionStart:]): Deleted.
(-[TestWKWebView stylePropertyAtSelectionEnd:]): Deleted.

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

(-[TestWKWebView stylePropertyAtSelectionStart:]):
(-[TestWKWebView stylePropertyAtSelectionEnd:]):
(-[TestWKWebView collapseToStart]):
(-[TestWKWebView collapseToEnd]):

Pull some common testing helpers out of NSFontManager and into TestWKWebView.

6:11 PM Changeset in webkit [236866] by jer.noble@apple.com
  • 23 edits
    1 add in trunk

Add support for reporting "display composited video frames" through the VideoPlaybackQuality object.
https://bugs.webkit.org/show_bug.cgi?id=190266

Reviewed by Eric Carlson.

Source/WebCore:

Test: TestWebKitAPI.VideoQualityDisplayCompositing

Modify VideoPlaybackQuality to take a VideoPlaybackQualityMetrics object in its
constructor (rather than individual fields). Add a new setting to control visibility
of the displayCompositedVideoFrames attribute on VideoPlaybackQuality. Add support
for VideoPlaybackQualityMetrics to MediaPlayerPrivateAVFoundationObjC.

  • Modules/mediasource/VideoPlaybackQuality.cpp:

(WebCore::VideoPlaybackQuality::create):
(WebCore::VideoPlaybackQuality::VideoPlaybackQuality):

  • Modules/mediasource/VideoPlaybackQuality.h:

(WebCore::VideoPlaybackQuality::displayCompositedVideoFrames const):

  • Modules/mediasource/VideoPlaybackQuality.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getVideoPlaybackQuality):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
  • page/Settings.yaml:
  • platform/graphics/MediaPlayer.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoPlaybackQualityMetrics):

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::videoPlaybackQualityMetrics):

Source/WebCore/PAL:

  • pal/spi/mac/AVFoundationSPI.h:

Source/WebKit:

Add a new preference to control the visibility of displayCompositedVideoFrames in the VideoPlaybackQualityObject.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setVideoQualityIncludesDisplayCompositingEnabled:]):
(-[WKPreferences _videoQualityIncludesDisplayCompositingEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/VideoQualityDisplayCompositing.mm: Added.

(TestWebKitAPI::TEST):

5:47 PM Changeset in webkit [236865] by Wenson Hsieh
  • 19 edits
    2 adds in trunk

[Cocoa] Add SPI to expose typing attributes at the current selection on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=190119
<rdar://problem/44767062>

Reviewed by Tim Horton.

Source/WebKit:

Add support for new WebKit2 SPI to notify the UI delegate about font attributes when the editor state changes
(e.g. due to selection changes, or executing an edit command). See below for more detail.

Test: FontAttributes.FontAttributesAfterChangingSelection

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:

Add a new optional FontAttributes member to EditorState's post-layout data. FontAttributes are computed and
sent over IPC only if the UI delegate implements the new delegate hook which requires information about font
attributes.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

Add a new flag for the UI process to let a new web page know whether it should additionally compute font
attributes when computing editor state.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::needsFontAttributes const):
(API::UIClient::didChangeFontAttributes):

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

(-[WKWebView _didChangeEditorState]):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didChangeFontAttributes):

Call out to the UI delegate with a font attribute dictionary, created via FontAttributes on EditorState's
post-layout data.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setUIClient):

Update whether or not the UI process needs to know about font attributes. The UI process only requires font
attribute information if the UI delegate implements -_webView:didChangeFontAttributes:.

(WebKit::WebPageProxy::setNeedsFontAttributes):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::editorStateChanged):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::editorStateChanged):

Update the cached font attributes in the UI process when receiving a new editor state update.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_cpuLimit):
(WebKit::WebPage::editorState const):
(WebKit::WebPage::setNeedsFontAttributes):

Add a new IPC hook to update whether or not the page should additionally compute font attributes. In the case
where the UI delegate changes from something that does not require font attributes to one that does, we
additionally schedule an editor state update.

(WebKit::WebPage::updateFontAttributesAfterEditorStateChange):

Private helper function to plumb FontAttributes to the UI client after an editor state change.

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

Tools:

Add a new API test that loads a document containing various rich text styles. This test moves the selection
around the document and checks the last set of font attributes received via the new UI delegate hook.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/FontAttributes.mm: Added.

(-[FontAttributesListener _webView:didChangeFontAttributes:]):
(-[FontAttributesListener lastFontAttributes]):
(-[TestWKWebView selectElementWithIdentifier:]):
(-[TestWKWebView fontAttributesAfterNextPresentationUpdate]):
(ColorExpectation::ColorExpectation):
(ShadowExpectation::ShadowExpectation):
(checkColor):
(checkShadow):
(checkFont):
(webViewForTestingFontAttributes):

  • TestWebKitAPI/Tests/WebKitCocoa/rich-text-attributes.html: Added.
5:35 PM Changeset in webkit [236864] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Move start/EndOfFixedExecutableMemoryPool pointers into the FixedVMPoolExecutableAllocator object.
https://bugs.webkit.org/show_bug.cgi?id=190295
<rdar://problem/19197193>

Reviewed by Saam Barati.

This allows us to use the tagging logic already baked into MacroAssemblerCodePtr
instead of needing to use our own custom version here.

  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::memoryStart):
(JSC::FixedVMPoolExecutableAllocator::memoryEnd):
(JSC::FixedVMPoolExecutableAllocator::isJITPC):
(JSC::ExecutableAllocator::allocate):
(JSC::startOfFixedExecutableMemoryPoolImpl):
(JSC::endOfFixedExecutableMemoryPoolImpl):
(JSC::isJITPC):

  • jit/ExecutableAllocator.h:
5:32 PM Changeset in webkit [236863] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.104.0.1

Tag Safari-606.2.104.0.1.

5:19 PM Changeset in webkit [236862] by Chris Dumez
  • 29 edits in trunk

A Document / Window should lose its browsing context as soon as its iframe is removed from the document
https://bugs.webkit.org/show_bug.cgi?id=190282

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several WPT tests that are now passing. I have verified that those tests are also passing in
Firefox and Chrome.

  • web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-parent-null-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard-expected.txt:

Source/WebCore:

A Document / Window should lose its browsing context (aka Frame) as soon as its iframe is removed from
the document. In WebKit, a Document / Window's Frame was only getting nulled out when the frame gets
destroyed, which happens later usually after a GC happens.

Specification:

"""
When an iframe element is removed from a document, the user agent must discard the element's nested browsing
context, if it is not null, and then set the element's nested browsing context to null.
"""

This was not consistent with the specification or other browsers (tested Chrome and Firefox) so this
patch is aligning our behavior.

In a follow-up, I am planning to look into making the Window not be a FrameDestructionObserver, and instead
get its frame from the Document. This should make the code simpler.

No new tests, rebaselined existing tests.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia const):

  • Modules/mediastream/MediaDevices.h:

Update getUserMedia() to reject a the Promise with an InvalidStateError when calling after the
document has been detached, instead of throwing an InvalidStateError. This behavior is as per
specification:

I needed to make this change to keep one of our layout tests passing.

  • dom/Document.cpp:

(WebCore::Document::attachToCachedFrame):
(WebCore::Document::detachFromFrame):

  • dom/Document.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::didSecureTransitionTo):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::setStatus):
(WebCore::DOMWindow::detachFromFrame):
(WebCore::DOMWindow::attachToFrame):

  • page/DOMWindow.h:
  • page/DOMWindowProperty.cpp:

(WebCore::DOMWindowProperty::disconnectFrameForDocumentSuspension):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):

  • page/Frame.cpp:

(WebCore::Frame::disconnectOwnerElement):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText):
Calling drawText() with a null String hits an assertion in debug. This was triggered by one of
our layout tests so I made sure we only call drawText when the String is not null.

LayoutTests:

Update existing layout test to reflect behavior change.

  • fast/dom/Window/BarInfo-after-frame-removed.html:
  • fast/dom/Window/dom-access-from-closure-iframe-expected.txt:
  • fast/dom/Window/dom-access-from-closure-window-expected.txt:
  • fast/dom/Window/dom-access-from-closure-window-with-gc-expected.txt:
  • fast/dom/Window/resources/dom-access-from-closure-iframe-child.html:
  • fast/dom/Window/resources/dom-access-from-closure-window-child.html:
  • fast/events/resources/before-unload-return-string-conversion-frame.html:
  • fast/parser/resources/set-parent-to-javascript-url.html:
  • http/tests/media/media-stream/disconnected-frame.html:
  • http/tests/security/contentSecurityPolicy/resources/checkDidSameOriginChildWindowLoad.js:

(checkDidLoad):

  • http/tests/security/named-window-property-from-same-origin-inactive-document-expected.txt:
  • http/tests/security/named-window-property-from-same-origin-inactive-document.html:
  • http/tests/security/xss-DENIED-contentWindow-eval-expected.txt:
  • http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt:
  • http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document.html:
5:17 PM Changeset in webkit [236861] by Dewei Zhu
  • 14 edits
    1 copy
    3 adds in trunk/Websites/perf.webkit.org

Add retry for test groups with failed build requests.
https://bugs.webkit.org/show_bug.cgi?id=190188

Reviewed by Ryosuke Niwa.

Added retry logic in run-analysis script.
Current retry logic will only be triggered when there is at least one successful build request for each commit set
in a test group.

  • init-database.sql: Added 'testgroup_initial_repetition_count' and 'testgroup_may_need_more_requests'.

SQL to update existing database:

BEGIN;

ALTER TABLE analysis_test_groups

ADD COLUMN testgroup_initial_repetition_count integer DEFAULT NULL,
ADD COLUMN testgroup_may_need_more_requests boolean DEFAULT FALSE;

UPDATE analysis_test_groups SET testgroup_initial_repetition_count = (

SELECT DISTINCT(COUNT(*)) FROM build_requests WHERE request_group = testgroup_id AND request_order >= 0 GROUP BY request_commit_set

);
ALTER TABLE analysis_test_groups ALTER COLUMN testgroup_initial_repetition_count DROP DEFAULT, ALTER COLUMN testgroup_may_need_more_requests SET NOT NULL;

END;

'testgroup_initial_repetition_count' represents the number of successful build request for each commit set when
test group is created.
'testgroup_may_need_more_requests' will be set when any build request in test group is set to 'failed'.

  • public/api/build-requests.php: Added the logic to set 'testgroup_may_need_more_requests'.
  • public/api/test-groups.php: Updated 'ready-for-notification' to 'ready-for-further-processing' so that it returns finished test

groups those either have 'needs_notification' or 'may_need_more_requests' set.

  • public/include/commit-sets-helpers.php: Set 'initial_repetition_count' to repetition count.
  • public/privileged-api/update-test-group.php: Added APIs to add build request for a test group and

update 'may_need_more_requests' flag.

  • public/v3/models/test-group.js:

(TestGroup): Added '_mayNeedMoreRequests' and '_initialRepetitionCount' field.
Refactored code that interacts with '/api/update-test-group'.
(TestGroup.prototype.updateSingleton):
(TestGroup.prototype.mayNeedMoreRequests):
(TestGroup.prototype.initialRepetitionCount):
(TestGroup.prototype.async._updateBuildRequest):
(TestGroup.prototype.updateName):
(TestGroup.prototype.updateHiddenFlag):
(TestGroup.prototype.async.didSendNotification):
(TestGroup.prototype.async.addMoreBuildRequests):
(TestGroup.prototype.async.clearMayNeedMoreBuildRequests): Added API to clear 'may_need_more_requests' flag.
(TestGroup.fetchAllReadyForFurtherProcessing): Refactored 'TestGroup.fetchAllWithNotificationReady' to return test groups either
have 'needs_notification' or 'may_need_more_requests' set.
(TestGroup.fetchAllThatMayNeedMoreRequests): Fetches test groups those may need more build requests.

  • server-tests/api-test-groups.js: Added unit tests.
  • server-tests/privileged-api-add-build-requests-tests.js: Added unit tests for 'add-build-requests' API.
  • server-tests/privileged-api-update-test-group-tests.js: Added unit tests.
  • server-tests/resources/mock-data.js:

(MockData.addMockData):

  • server-tests/resources/test-server.js:

(TestServer.prototype._determinePgsqlDirectory): Fixed a bug that 'childProcess.execFileSync' may return a buffer.

  • tools/run-analysis.js: Added logic to add extra build request before sennding notification.
  • tools/js/retry-failed-build-requests.js:

(async.createAdditionalBuildRequestsForTestGroupsWithFailedRequests): Module that add extra build requests.

  • unit-tests/retry-failed-build-requests-tests.js: Added.
  • unit-tests/test-groups-tests.js: Added unit tests.
4:52 PM Changeset in webkit [236860] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Unify implementation in VideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=190091
rdar://problem/44734523

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-10-04
Reviewed by Jer Noble.

Source/WebCore:

No new tests because no behavior change.

Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include
any changes that had been made in the old path.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewControllerDelegate playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground:]):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::requestUpdateInlineRect):
(VideoFullscreenControllerContext::requestVideoContentLayer):
(VideoFullscreenControllerContext::returnVideoContentLayer):
(VideoFullscreenControllerContext::didSetupFullscreen):
(VideoFullscreenControllerContext::didExitFullscreen):

Source/WebKit:

Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include
any changes that had been made in the old path.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):

4:31 PM Changeset in webkit [236859] by mitz@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

More Carbon build-fixing.

  • Carbon/CarbonWindowAdapter.mm:

(-[CarbonWindowAdapter _destroyRealWindow:]):
(-[CarbonWindowAdapter _growBoxRect]):

4:25 PM Changeset in webkit [236858] by Alan Coon
  • 2 edits in trunk/Tools

Unreviewed, add self as contributor.

  • Scripts/webkitpy/common/config/contributors.json:
4:18 PM Changeset in webkit [236857] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Bindings generator should support static attributes that are interfaces with CallWith
https://bugs.webkit.org/show_bug.cgi?id=190292

Patch by Justin Michaud <Justin Michaud> on 2018-10-04
Reviewed by Chris Dumez.

Add support for static attributes that support callWith to the bindings generator. This
is needed for CSS.paintWorklet.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjConstructorTestStaticReadonlyObjGetter):
(WebCore::jsTestObjConstructorTestStaticReadonlyObj):

  • bindings/scripts/test/TestObj.idl:
3:40 PM Changeset in webkit [236856] by Ross Kirsling
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed test gardening for WinCairo (and one cross-platform test).

Remove a cross-platform failure that seems to be passing on all platforms now.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
3:25 PM Changeset in webkit [236855] by Matt Lewis
  • 58 edits in trunk/Source

Unreviewed, rolling out r236730.

Source/WebCore:

This caused a consistent crash in test http/tests/media/media-stream/get-display-media-prompt.html.

Reverted changeset:

"[MediaStream] RealtimeMediaSource should be able to vend
hashed IDs"
https://bugs.webkit.org/show_bug.cgi?id=190142
https://trac.webkit.org/changeset/236730

Source/WebKit:

This caused a consistent crash in test http/tests/media/media-
stream/get-display-media-prompt.html.

Reverted changeset:

"[MediaStream] RealtimeMediaSource should be able to vend
hashed IDs"
https://bugs.webkit.org/show_bug.cgi?id=190142
https://trac.webkit.org/changeset/236730

3:08 PM Changeset in webkit [236854] by Wenson Hsieh
  • 8 edits
    1 copy
    1 add in trunk

[macOS] Fix some font attribute conversion bugs in preparation for "Font > Styles…" support in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=190289
<rdar://problem/45020806>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Makes some small adjustments to fix two bugs in font attribute conversion logic. See below for more detail.

Tests: FontManagerTests.AddFontShadowUsingFontOptions

FontManagerTests.AddAndRemoveColorsUsingFontOptions

  • editing/FontAttributeChanges.cpp:

(WebCore::cssValueListForShadow):

  • editing/cocoa/FontAttributesCocoa.mm:

Currently, we bail from adding a font shadow if the shadow's offset is empty. However, valid shadow offsets may
have negative dimensions, so a check for isZero() should be used instead.

(WebCore::FontAttributes::createDictionary const):

  • platform/mac/WebCoreNSFontManagerExtras.mm:

Fall back to a transparent background color; this allows senders to remove the current background color by just
removing NSBackgroundColorAttributeName from the attribute dictionary, rather than explicitly setting it to the
transparent color (this scenario is exercised when using "Font > Styles…" to specify a font style without a
background color).

(WebCore::computedFontAttributeChanges):

Tools:

Add new API tests to exercise two corner cases when using NSFontOptions ("Font > Styles…") to change font
attributes at the current selection.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

(webViewForFontManagerTesting):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/mac/TestFontOptions.h: Copied from Source/WebCore/editing/cocoa/FontAttributesCocoa.mm.
  • TestWebKitAPI/mac/TestFontOptions.mm: Added.

Introduce TestFontOptions, which wraps the shared NSFontOptions and swizzles -sharedFontOptions to return a
global instance of itself. TestFontOptions supports several testing helpers to add or remove font shadows,
foreground colors, and background colors.

(sharedFontOptionsForTesting):
(+[TestFontOptions sharedInstance]):
(-[TestFontOptions initWithFontOptions:]):
(-[TestFontOptions selectedAttributes]):
(-[TestFontOptions fontOptions]):
(-[TestFontOptions shadowWidth]):
(-[TestFontOptions setShadowWidth:]):
(-[TestFontOptions shadowHeight]):
(-[TestFontOptions setShadowHeight:]):
(-[TestFontOptions setShadowBlurRadius:]):
(-[TestFontOptions setHasShadow:]):
(-[TestFontOptions foregroundColor]):
(-[TestFontOptions setForegroundColor:]):
(-[TestFontOptions backgroundColor]):
(-[TestFontOptions setBackgroundColor:]):
(-[TestFontOptions _dispatchFontAttributeChanges]):
(-[TestFontOptions convertAttributes:]):
(-[TestFontOptions setSelectedAttributes:isMultiple:]):
(-[TestFontOptions forwardInvocation:]):

2:54 PM Changeset in webkit [236853] by Matt Baker
  • 8 edits
    8 adds in trunk

Web Inspector: Table should support multiple selection and Cmd-click behavior
https://bugs.webkit.org/show_bug.cgi?id=189705
<rdar://problem/44571170>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Add multiple row selection to Table, with new methods for programmatic
selection (deselectRow, deselectAll), and Command-click support for
selecting/deselecting Table rows.

  • UserInterface/Base/IndexSet.js: Added.

(WI.IndexSet):
(WI.IndexSet.prototype.get size):
(WI.IndexSet.prototype.get firstIndex):
(WI.IndexSet.prototype.get lastIndex):
(WI.IndexSet.prototype.add):
(WI.IndexSet.prototype.delete):
(WI.IndexSet.prototype.has):
(WI.IndexSet.prototype.clear):
(WI.IndexSet.prototype.indexGreaterThan):
(WI.IndexSet.prototype.indexLessThan):
(WI.IndexSet.prototype.Symbol.iterator):
(WI.IndexSet.prototype._indexClosestTo):
(WI.IndexSet.prototype._validateIndex):
Helper container for managing an ordered sequence of unique positive
integers, with set semantics, backed by a sorted array. Used by Table,
and eventually by TreeOutline.

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:

New files and stubs to make Table layout tests possible.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.showRepresentedObject):
(WI.NetworkTableContentView.prototype.networkResourceDetailViewClose):
(WI.NetworkTableContentView.prototype.tableSelectionDidChange):
(WI.NetworkTableContentView.prototype._restoreSelectedRow):
(WI.NetworkTableContentView.prototype.tableSelectedRowChanged): Deleted.
Replace uses of clearSelectedRow with deselectAll, and updated
selection changed delegate.

  • UserInterface/Views/Table.css:

(.table > .data-container > .data-list > li):
(.table > .data-container > .data-list > li.selected):
(@media (prefers-dark-interface)):
(.table,): Deleted.
Removed styles that are no longer needed after https://webkit.org/b/189766,
and provide a visual separation between adjacent selected rows.

  • UserInterface/Views/Table.js:

(WI.Table):
(WI.Table.prototype.get selectedRows):
(WI.Table.prototype.get allowsMultipleSelection):
(WI.Table.prototype.set allowsMultipleSelection):
(WI.Table.prototype.reloadData):
(WI.Table.prototype.selectRow):
(WI.Table.prototype.deselectRow):
(WI.Table.prototype.deselectAll):
(WI.Table.prototype._getOrCreateRow):
(WI.Table.prototype._handleMouseDown):
(WI.Table.prototype._deselectAllAndSelect):
(WI.Table.prototype._isRowSelected):
(WI.Table.prototype._notifySelectionDidChange):
(WI.Table.prototype.clearSelectedRow): Deleted.
Table now tracks selected rows using an IndexSet. selectRow accepts an
optional parameter, extendSelection, for adding rows to the selection.
_selectedRowIndex is now used to track the most recently selected row.
This will be the only selected row unless multiple selection is enabled,
in which case it is the row that has the "focus", for purposes of selecting
a new row using the up or down arrow keys.

LayoutTests:

  • inspector/table/resources/table-utilities.js: Added.

(TestPage.registerInitializer.InspectorTest.TableDataSource):
(TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.get items):
(TestPage.registerInitializer.InspectorTest.TableDataSource.prototype.tableNumberOfRows):
(TestPage.registerInitializer.InspectorTest.TableDelegate):
(TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tableSelectionDidChange):
(TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tablePopulateCell):
(TestPage.registerInitializer.InspectorTest.createTable):
(TestPage.registerInitializer):

  • inspector/table/table-selection-expected.txt: Added.
  • inspector/table/table-selection.html: Added.
  • inspector/unit-tests/index-set-expected.txt: Added.
  • inspector/unit-tests/index-set.html: Added.
2:47 PM Changeset in webkit [236852] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: clear pending callbacks when the session terminates
https://bugs.webkit.org/show_bug.cgi?id=190259
<rdar://problem/44958352>

Reviewed by Joseph Pecoraro.

WebAutomationSession::terminate() can be called at any time to nuke the session.
However, it's possible that the session is in the midst of simulating keyboard/mouse
events. While in that state, there are some CompletionHandler objects waiting
for key/mouse events to be flushed. We need to empty out callback maps with
CompletionHandler instances so that they do not assert because they were never called.

I was able to test this manually by running a test that erroneously hangs
while waiting for keyboard input. While the test was hung, I killed the NetworkProcess
manually to trigger WebAutomationSession::terminate(). From there, I saw that the
Perform Actions REST API call gets cancelled with the appropriate error code.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::terminate):

2:14 PM Changeset in webkit [236851] by mitz@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Retried to fix 32-bit macOS builds after r236846.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView setMarkedText:selectedRange:]):

2:12 PM Changeset in webkit [236850] by rniwa@webkit.org
  • 8 edits
    5 adds in trunk

MutationRecord doesn't keep JS wrappers of target, addedNodes, and removedNodes alive
https://bugs.webkit.org/show_bug.cgi?id=190277

Reviewed by Antti Koivisto.

Source/WebCore:

The bug was caused by JSMutationRecord not visiting any of the nodes referenced by mutation records.

Fixed the bug by adding JSMutationRecord::visitAdditionalChildren, which adds the root nodes of
the root nodes of the target, addedNodes, and removedNodes in each mutation record.

Test: fast/dom/MutationObserver/mutation-record-keeps-js-wrappers-of-nodes-alive.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSMutationRecordCustom.cpp: Added.

(WebCore::JSMutationRecord::visitAdditionalChildren): Added.

  • bindings/js/JSPerformanceObserverCustom.cpp: This file got dumped out of a unified build file

where using namespace JSC was defined. Use the fully qualified names to refer to JSC types.
(WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots):

  • dom/MutationRecord.cpp:

(WebCore::ChildListRecord::visitNodesConcurrently): Added.
(WebCore::RecordWithEmptyNodeLists::visitNodesConcurrently): Added.
(WebCore::MutationRecordWithNullOldValue::visitNodesConcurrently): Added.

  • dom/MutationRecord.h:
  • dom/MutationRecord.idl:

LayoutTests:

Added two regression tests for making sure mutation observers and mutation records keep JS wrappers
of the enqueued nodes alive. Also see r236799 for a previous failed attempt to add a similar test.

  • fast/dom/MutationObserver/mutation-observer-keeps-js-wrappers-of-nodes-alive-expected.txt: Added.
  • fast/dom/MutationObserver/mutation-observer-keeps-js-wrappers-of-nodes-alive.html: Added.
  • fast/dom/MutationObserver/mutation-record-keeps-js-wrappers-of-nodes-alive-expected.txt: Added.
  • fast/dom/MutationObserver/mutation-record-keeps-js-wrappers-of-nodes-alive.html: Added.
2:02 PM Changeset in webkit [236849] by mitz@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Retried to fix 32-bit macOS builds after r236846.

  • Carbon/HIWebView.mm:

(ActiveStateChanged):

1:58 PM Changeset in webkit [236848] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r236540): Uncaught Exception: TypeError: pauseReasonBreakpointTreeElement.removeStatusImage is not a function.
https://bugs.webkit.org/show_bug.cgi?id=190230

Reviewed by Matt Baker.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel._removeBreakpoint):
Leverage existing status getter/setter for creating/removing the breakpoint icon element.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement):
(WI.BreakpointTreeElement.prototype.populateContextMenu):
(WI.BreakpointTreeElement.prototype._updateStatus):
(WI.BreakpointTreeElement.prototype.removeStatusImage): Deleted.

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement):
(WI.DOMBreakpointTreeElement.prototype.onattach):
(WI.DOMBreakpointTreeElement.prototype.ondetach):
(WI.DOMBreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach):
(WI.EventBreakpointTreeElement.prototype.ondetach):
(WI.EventBreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/XHRBreakpointTreeElement.js:

(WI.XHRBreakpointTreeElement):
(WI.XHRBreakpointTreeElement.prototype.onattach):
(WI.XHRBreakpointTreeElement.prototype.ondetach):
(WI.XHRBreakpointTreeElement.prototype._updateStatus):

1:47 PM Changeset in webkit [236847] by mitz@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Tried to fix 32-bit macOS builds after r236846.

  • Carbon/HIWebView.mm:

(_NSSelectorForHICommand):

1:36 PM Changeset in webkit [236846] by mitz@apple.com
  • 40 edits in trunk/Source

WebInspectorUI and WebKitLegacy parts of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

Source/WebCore/PAL:

  • pal/spi/mac/NSWindowSPI.h: Added a private API declaration.

Source/WebInspectorUI:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION, CLANG_WARN_SUSPICIOUS_MOVE, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
  • WebInspectorUI.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

Source/WebKitLegacy/mac:
WebKitLegacy part of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED. Also enabled GCC_WARN_UNDECLARED_SELECTOR by deleting the line that set it to NO, which let an earlier line set it to YES.

Enabling -Wundeclared-selector exposed some long-standing mistakes and required the most
changes below.

  • DefaultDelegates/WebDefaultContextMenuDelegate.mm: Imported an internal header that provides some missing method declarations.
  • Misc/WebDownload.mm:

(-[WebDownload initWithRequest:delegate:]): Suppressed warning about this implementation of

a deprecated method.

  • Misc/WebIconDatabase.mm: Suppressed warning around our implementation of a deprecated class.
  • Misc/WebNSObjectExtras.mm: Declare a category that is implemented in this file, because other code in the file uses a method from it.
  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView renewGState]): Suppressed warning about this implementation of

a deprecated method.

  • Plugins/WebPluginController.mm:

(installFlip4MacPlugInWorkaroundIfNecessary): Suppressed the undeclared selector warning

around use of a selector that may be present in some WebKit client.

  • Plugins/WebPluginDatabase.mm: Imported an internal header that provides some missing method declarations.
  • WebCoreSupport/PopupMenuMac.mm: Imported a header that delcares delegate methods we call from here.
  • WebCoreSupport/WebCachedFramePlatformData.h: Imported an internal header that provides some missing method declarations.
  • WebCoreSupport/WebChromeClient.mm: Imported a header that declares delegate methods we call from here.
  • WebCoreSupport/WebFrameLoaderClient.mm: Imported headers that declare delegate methods we call from here.

(WebFrameLoaderClient::setTitle): Suppressed the undeclared selector warning around use of

an obsolete delegate method for binary compatibility.

(pluginView): Ditto.

  • WebCoreSupport/WebVisitedLinkStore.mm: Imported a header that declares delegate methods we call from here.
  • WebView/WebDeviceOrientationInternal.h: Declared -setController in a new WebDeviceOrientationProviderMock protocol.
  • WebView/WebDeviceOrientationProviderMock.mm:

(-[WebDeviceOrientationProviderMock setController:]): Moved from an internal category to the

main @implementation.

  • WebView/WebDeviceOrientationProviderMockInternal.h: Declared that WebDeviceOrientationProviderMock conforms to WebDeviceOrientationProviderMock.
  • WebView/WebDynamicScrollBarsView.mm:

(-[WebDynamicScrollBarsView accessibilityIsIgnored]): Suppressed warning about this implementation

of a deprecated method.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]): Suppressed the undeclared

selector warning around action methods that are not declared anywhere in WebKit.

(-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): Suppressed warning

about implementing this deprecated method.

(-[WebHTMLView draggingSourceOperationMaskForLocal:]): Ditto.
(-[WebHTMLView draggedImage:endedAt:operation:]): Ditto.
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): Ditto.
(-[WebHTMLView accessibilityAttributeValue:]): Ditto.
(-[WebHTMLView characterIndexForPoint:]): Ditto.
(-[WebHTMLView firstRectForCharacterRange:]): Ditto.
(-[WebHTMLView attributedSubstringFromRange:]): Ditto.
(-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
(-[WebHTMLView doCommandBySelector:]): Ditto.
(-[WebHTMLView insertText:]): Ditto.

  • WebView/WebHTMLViewInternal.h: Declared an internal method that’s used from another file.
  • WebView/WebJSPDFDoc.mm: Imported a header that declares delegate methods we call from here.
  • WebView/WebPDFView.h: Removed previewView ivar.
  • WebView/WebPDFView.mm: Removed declaration of FileInternal category and merged its implementation with the main implementation.

(-[WebPDFView dealloc]): Removed previewView ivar.
(-[WebPDFView initWithFrame:]): Removed code to deal with PDFPreviewView, which doesn’t

exist in macOS versions we support.

(+[WebPDFView _PDFPreviewViewClass]): Deleted. PDFPreviewView doesn’t exist anymore.
(-[WebPDFView _canLookUpInDictionary]): Suppressed undeclared selector warning around use of

action methods internal to PDFKit.

(-[WebPDFView _lookUpInDictionaryFromMenu:]): Ditto.
(-[WebPDFView _menuItemsFromPDFKitForEvent:]): Ditto.

  • WebView/WebUIDelegatePrivate.h: Restored declarations of the delegate methods we actually call on macOS, even though in r86988 we started calling different methods on iOS.
  • WebView/WebView.mm:
  • Imported headers that declare delegate methods that we call.
  • Removed declaration of WebFileInternal category and merged its implementation with the main implementation.
  • Many internal methods were inexplicibly implemented as part of the WebViewEditingInMail category, which made them impossible to call from the main implementation. Moved those into the main implementation. One of those had to be declared in a class extension, because it is called from a method implemented in the WebPrivate category, and that category’s implementation appears first in the file.

(-[WebView _cacheHistoryDelegateImplementations]): Suppressed undeclared selector warning

around use of obsolete delegate method for binary compatibility.

  • WebView/WebViewInternal.h: Declared an internal method that’s used from another file.
1:27 PM Changeset in webkit [236845] by Devin Rousso
  • 14 edits
    1 delete in trunk

Web Inspector: merge ProbeManager into DebuggerManager
https://bugs.webkit.org/show_bug.cgi?id=190225

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:

(WI.loaded):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.get probeSets): Added.
(WI.DebuggerManager.prototype.probeForIdentifier): Added.
(WI.DebuggerManager.prototype.addBreakpoint):
(WI.DebuggerManager.prototype.removeBreakpoint):
(WI.DebuggerManager.prototype.didSampleProbe): Added.
(WI.DebuggerManager.prototype._handleBreakpointActionsDidChange): Added.
(WI.DebuggerManager.prototype._addProbesForBreakpoint): Added.
(WI.DebuggerManager.prototype._removeProbesForBreakpoint): Added.
(WI.DebuggerManager.prototype._updateProbesForBreakpoint): Added.
(WI.DebuggerManager.prototype._probeSetForBreakpoint): Added.

  • UserInterface/Controllers/ProbeManager.js: Removed.
  • UserInterface/Protocol/DebuggerObserver.js:

(WI.DebuggerObserver.prototype.didSampleProbe):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype._processRecord):

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.onattach):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WI.ProbeDetailsSidebarPanel.prototype.closed):
(WI.ProbeDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView):
(WI.TextResourceContentView.prototype.get supplementalRepresentedObjects):
(WI.TextResourceContentView.prototype.closed):

LayoutTests:

  • http/tests/inspector/debugger/debugger-test.js:

(TestPage.registerInitializer.InspectorTest.startTracingProbes):
(TestPage.registerInitializer):

  • http/tests/inspector/resources/probe-test.js:

(TestPage.registerInitializer.ProtocolTest.Probe.installTracingListeners):
(TestPage.registerInitializer):

1:08 PM Changeset in webkit [236844] by Devin Rousso
  • 5 edits in trunk

Web Inspector: some files not listed in OpenResourceDialog
https://bugs.webkit.org/show_bug.cgi?id=190272

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Controllers/ResourceQueryController.js:

(WI.ResourceQueryController.prototype._findQueryMatches):
Allow the searchIndex to go past the end of the searchString to allow for backtracking
if the last character of searchString is not found in query.

LayoutTests:

  • inspector/unit-tests/resource-query-controller-expected.txt:
  • inspector/unit-tests/resource-query-controller.html:
1:03 PM Changeset in webkit [236843] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r236783): Uncaught Exception: Can't find variable: sourceMapURL
https://bugs.webkit.org/show_bug.cgi?id=190276

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype._sourceMapLoadAndParseFailed):

12:32 PM Changeset in webkit [236842] by jiewen_tan@apple.com
  • 23 edits
    2 copies
    2 adds in trunk

[WebAuthN] Move time out control from WebProcess to UIProcess
https://bugs.webkit.org/show_bug.cgi?id=189642
<rdar://problem/44476765>

Reviewed by Chris Dumez.

Source/WebCore:

Since now the control unit of WebAuthN has been moved to UI Process, i.e. AuthenticatorManager,
the time out timer should move to UI Process as well.

Tests: http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html

http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::create const):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
(WebCore::AuthenticatorCoordinatorInternal::initTimeoutTimer): Deleted.
(WebCore::AuthenticatorCoordinatorInternal::didTimeoutTimerFire): Deleted.

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:

(WebCore::PublicKeyCredentialCreationOptions::encode const):
(WebCore::PublicKeyCredentialCreationOptions::decode):

  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:

(WebCore::PublicKeyCredentialRequestOptions::encode const):
(WebCore::PublicKeyCredentialRequestOptions::decode):

Source/WebKit:

Besides adding a time out timer in the AuthenticatorManager, this patch also adds a new
option in MockWebAuthenticationConfiguration to turn on silent failure which is the
default policy of treating authenticators' error as suggested by spec.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManagerInternal::collectTransports):
(WebKit::AuthenticatorManager::makeCredential):
(WebKit::AuthenticatorManager::getAssertion):
(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::initTimeOutTimer):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:

(WebKit::AuthenticatorManager::requestTimeOutTimer):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::respondReceivedInternal):

  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:

Tools:

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration):

LayoutTests:

This patch also fixes some flaky behaviours regarding to the dirty ASN.1 decoder.

  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html: Copied from LayoutTests/http/wpt/webauthn/public-key-credential-create-failure-local.https.html.
  • http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html: Copied from LayoutTests/http/wpt/webauthn/public-key-credential-get-failure-local.https.html.
  • http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/resources/util.js:
12:31 PM Changeset in webkit [236841] by Chris Dumez
  • 3 edits
    4 adds in trunk

Regression(r236779): Crash when changing the input element type from inside an 'input' event listener
https://bugs.webkit.org/show_bug.cgi?id=190252

Reviewed by Alex Christensen.

Source/WebCore:

Add a null check for element() after firing the 'input' event and before firing the 'change' event
in case the input event listener changes the input type.

Tests: fast/dom/HTMLInputElement/change-type-in-click-event-listener.html

fast/dom/HTMLInputElement/change-type-in-input-event-listener.html

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLInputElement/change-type-in-click-event-listener-expected.txt: Added.
  • fast/dom/HTMLInputElement/change-type-in-click-event-listener.html: Added.
  • fast/dom/HTMLInputElement/change-type-in-input-event-listener-expected.txt: Added.
  • fast/dom/HTMLInputElement/change-type-in-input-event-listener.html: Added.
12:27 PM Changeset in webkit [236840] by commit-queue@webkit.org
  • 24 edits
    8 adds in trunk

LayoutTests/imported/w3c:
runtime flag and IDL for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=190018

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-10-04
Reviewed by Youenn Fablet and Chris Dumez.

  • web-platform-tests/mediacapture-record/BlobEvent-constructor-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-constructor-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-constructor.html: Added.

Source/WebCore:
runtime flag and IDL for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=190018

Patch by Yuhan Wu <yuhan_wu@apple.com> on 2018-10-04
Reviewed by Youenn Fablet and Chris Dumez.

Covered by tests:
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-constructor.html
imported/w3c/web-platform-tests/mediacapture-record/BlobEvent-constructor.html

Add an architecture of the IDL and the class for MediaRecorder and BlobEvent.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediarecorder/BlobEvent.h:

(WebCore::BlobEvent::create):
(WebCore::BlobEvent:::Event):

  • Modules/mediarecorder/BlobEvent.idl:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::activeDOMObjectName const):
(WebCore::MediaRecorder::canSuspendForDocumentSuspension const):

  • Modules/mediarecorder/MediaRecorder.h: Added.

(WebCore::MediaRecorder::state const):
(WebCore::MediaRecorder::~MediaRecorder):

  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediastream/RTCRtpReceiver.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::mediaRecorderEnabled const):
(WebCore::RuntimeEnabledFeatures::setMediaRecorderEnabled):

Source/WebKit:
runtime flag and IDL for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=190018

Patch by Yuhan Wu <yuhan_wu@apple.com> on 2018-10-04
Reviewed by Youenn Fablet and Chris Dumez.

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:
Runtime flag and IDL for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=190018

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-10-04
Reviewed by Youenn Fablet and Chris Dumez.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences mediaRecorderEnabled]):
(-[WebPreferences setMediaRecorderEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:
Runtime flag and IDL for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=190018

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-10-04
Reviewed by Youenn Fablet and Chris Dumez.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

LayoutTests:
runtime flag and IDL for MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=190018

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-10-04
Reviewed by Youenn Fablet and Chris Dumez.

  • platform/win/TestExpectations:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-capture-out-of-DOM-element-expected.txt:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-framerate-0-expected.txt:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-imagebitmaprenderingcontext-expected.txt:
12:23 PM Changeset in webkit [236839] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Disable Options::useWebAssemblyFastMemory() on linux if ASAN signal handling is not disabled.
https://bugs.webkit.org/show_bug.cgi?id=190283
<rdar://problem/45015752>

Reviewed by Keith Miller.

  • runtime/Options.cpp:

(JSC::Options::initialize):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::enableFastMemory):

11:27 AM Changeset in webkit [236838] by mitz@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Fixed engineering builds using the Apple internal SDK as well as building with older
versions of Xcode.

  • Configurations/yasm.xcconfig: Migrated some build settings that were defined at the target level in the project file. Some didn’t make sense to migrate, because they could be inherited, or because they were warnings that were then being negated by OTHER_CFLAGS.
  • libwebrtc.xcodeproj/project.pbxproj:
10:52 AM Changeset in webkit [236837] by Chris Dumez
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r236803.

Caused crashes on some bots

Reverted changeset:

"Regression(r236779): Crash when changing the input element
type from inside an 'input' event listener"
https://bugs.webkit.org/show_bug.cgi?id=190252
https://trac.webkit.org/changeset/236803

10:34 AM Changeset in webkit [236836] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Tried to fix the Mojave build after r236832.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):

9:56 AM Changeset in webkit [236835] by Basuke Suzuki
  • 2 edits in trunk/Tools

[LayoutTests][Win] Stop wpt server correctly.
https://bugs.webkit.org/show_bug.cgi?id=190248

Reviewed by Fujii Hironori.

Use signal.CTRL_C_EVENT instead of signal.SIGINT for Windows.
Also refactoring the detection of Windows and cygwin environment check.

  • Scripts/webkitpy/common/system/executive.py:

(Executive.init): Check environment once.
(Executive._should_close_fds):
(Executive.kill_process):
(Executive.check_running_pid):
(Executive.running_pids):
(Executive.interrupt): Use signal.CTRL_C_EVENT for Windows.
(Executive.kill_all):
(Executive._child_process_encoding):
(Executive._should_encode_child_process_arguments):
(Executive.popen):
(Executive.run_in_parallel):

9:56 AM Changeset in webkit [236834] by Michael Catanzaro
  • 3 edits in trunk/Source/WebCore

ENABLE(ASSERT) used in grid code when !ASSERT_DISABLED is desired
https://bugs.webkit.org/show_bug.cgi?id=190145

Reviewed by Javier Fernandez.

Replace ENABLE(ASSERT), which doesn't exist, with !ASSERT_DISABLED.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::baselinePosition const):

  • rendering/style/GridArea.h:

(WebCore::GridSpan::GridSpan):

9:55 AM Changeset in webkit [236833] by Michael Catanzaro
  • 3 edits in trunk/Tools

Convert tests to use navigation client
https://bugs.webkit.org/show_bug.cgi?id=190153

Reviewed by Alex Christensen.

Convert these tests from PagePolicyClient and PageLoaderClient to PageNavigationClient.

  • TestWebKitAPI/Tests/WebKit/DownloadDecideDestinationCrash.cpp:

(TestWebKitAPI::decidePolicyForNavigationAction):
(TestWebKitAPI::setPagePolicyClient):

  • TestWebKitAPI/Tests/WebKit/ProvisionalURLAfterWillSendRequestCallback.cpp:

(TestWebKitAPI::didCommitNavigationCallback):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didCommitLoadForFrame): Deleted.

9:46 AM Changeset in webkit [236832] by mitz@apple.com
  • 10 edits in trunk/Source

Source/WebCore:
WebCore part of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS.
  • WebCore.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck and remove a duplicate reference in a Compile Sources build phase.
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Suppress -Wdeprecated-implementations around implementations of deprecated accessibility methods.
  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::checkForBOM): Addressed CLANG_WARN_COMMA.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]):

Suppress -Wdeprecated-implementations around implementations of this deprecated delegate method.

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]): Ditto.

Source/WebCore/PAL:
PAL part of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS.
  • PAL.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
9:20 AM Changeset in webkit [236831] by Darin Adler
  • 6 edits in trunk/Source/WebCore

AudioNode.connect should use [ReturnValue]
https://bugs.webkit.org/show_bug.cgi?id=190231

Reviewed by Eric Carlson.

This is a slightly more efficient way to return a value that is always
identical to one of the arguments, so use it here.

  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::connect): Return ExceptionOr<void>.

  • Modules/webaudio/AudioBasicInspectorNode.h: Ditto.
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::connect): Ditto.

  • Modules/webaudio/AudioNode.h: Ditto.
  • Modules/webaudio/AudioNode.idl: Use [ReturnValue].
8:37 AM Changeset in webkit [236830] by Kocsen Chung
  • 28 edits
    5 adds
    3 deletes in tags/Safari-607.1.9

Cherry-pick r236821. rdar://problem/44834363

Add VP8 support to WebRTC
https://bugs.webkit.org/show_bug.cgi?id=189976

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:

Source/ThirdParty/libwebrtc:

Add support for conditional VP8 support for both encoding and decoding.
This boolean is used by WebCore based on the new VP8 runtime flag.

Enable yasm compilation as a dependency of libvpx.

Compilation is done without using SSE4/AVX2 optimizations.

  • Configurations/libvpx.xcconfig: Added.
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Source/third_party/libvpx/run_yasm_webkit.py: Added.
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm: (webrtc::createWebKitEncoderFactory): (webrtc::createWebKitDecoderFactory):
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add a runtime flag to control activation of VP8 codec.
Bind this runtime flag to the video codec factories.
Test: webrtc/video-mute-vp8.html

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp: (WebCore::createLibWebRTCPeerConnectionBackend):
  • page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const): (WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled):
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: (WebCore::LibWebRTCProviderCocoa::createDecoderFactory): (WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
  • testing/Internals.cpp: (WebCore::Internals::resetToConsistentState): Enable VP8 codec for tests.

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • webrtc/audio-peer-connection-g722.html:
  • webrtc/routines.js:
  • webrtc/video-mute-vp8-expected.txt: Added.
  • webrtc/video-mute-vp8.html: Added.

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

8:37 AM Changeset in webkit [236829] by Kocsen Chung
  • 18 edits
    2 adds in tags/Safari-607.1.9/Source/WebCore

Cherry-pick r236818. rdar://problem/44816624

Add a quirk to disable Modern EME for sites which are broken with it enabled
https://bugs.webkit.org/show_bug.cgi?id=190051

Reviewed by Daniel Bates.

Add a new class, parallel to Settings, to track quirk behavior. Extend the bindings
generator to support a DisabledByQuirk attribute, and set this attribute for all
the Modern EME types. Check whether the quirk is set inside HTMLMediaElement in
addition to the existing Setting.

  • Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeyStatusMap.idl:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/NavigatorEME.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGenerator.pm: (WK_ucfirst):
  • bindings/scripts/CodeGeneratorJS.pm: (NeedsRuntimeCheck): (GenerateRuntimeEnableConditionalString):
  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl: (GenerateConstructorAttributes):
  • dom/Document.cpp: (WebCore::Document::Document):
  • dom/Document.h: (WebCore::Document::quirks const):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): (WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered):
  • html/HTMLMediaElement.idl:
  • page/Quirks.cpp: Added. (Quirks::Quirks): (Quirks::disableEncryptedMediaAPIQuirk const):
  • page/Quirks.h: Added.

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

5:31 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)

Oct 3, 2018:

11:23 PM Changeset in webkit [236828] by commit-queue@webkit.org
  • 41 edits
    1 copy
    6 adds in trunk

Registered custom properties should allow inheritance to be controlled
https://bugs.webkit.org/show_bug.cgi?id=190038

Patch by Justin Michaud <Justin Michaud> on 2018-10-03
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update web platform tests for css registered custom properties to fail in a different way.

  • web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt:
  • web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt:
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles-expected.txt:
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt:

Source/WebCore:

Tests: css-custom-properties-api/inherits.html

css-custom-properties-api/length.html
css-custom-properties-api/length2.html

Add support for inherits property on registered css custom properties, as well
as a starting point for evaluating registered custom properties with types. Registered
custom properties are evaluated as length values before being substituted. Currently,
relative unit cycles are not detected.

A proper solution is still needed to resolve relative unit cycles, and to apply properties like font
and line-height before they are needed by custom properties. In this patch, the font-size property is
applied twice, once before and once after resolving custom property values.

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

(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::CSSComputedStyleDeclaration::length const):
(WebCore::CSSComputedStyleDeclaration::item const):

Allow JS to get custom properties that have been resolved to a length. Also add properties from
m_rareNonInheritedData.

  • css/CSSCustomPropertyValue.cpp:

(WebCore::CSSCustomPropertyValue::checkVariablesForCycles const):
(WebCore::CSSCustomPropertyValue::resolveVariableReferences const):

  • css/CSSCustomPropertyValue.h:
  • css/CSSRegisteredCustomProperty.cpp: Copied from Source/WebCore/css/CSSRegisteredCustomProperty.h.

(WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty):
(WebCore::CSSRegisteredCustomProperty::initialValueCopy const):

  • css/CSSRegisteredCustomProperty.h:

(WebCore::CSSRegisteredCustomProperty::initialValue const):

  • css/CSSVariableData.cpp:

(WebCore::CSSVariableData::checkVariablesForCycles const):
(WebCore::CSSVariableData::checkVariablesForCyclesWithRange const):
(WebCore::CSSVariableData::resolveVariableFallback const):
(WebCore::CSSVariableData::resolveVariableReference const):
(WebCore::CSSVariableData::resolveVariableReferences const):
(WebCore::CSSVariableData::resolveTokenRange const):

  • css/CSSVariableData.h:
  • css/CSSVariableReferenceValue.cpp:

(WebCore::CSSVariableReferenceValue::checkVariablesForCycles const):

  • css/CSSVariableReferenceValue.h:
  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

Use RenderStyle over passing in a customProperties map.

  • css/StyleBuilder.h:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLength):
(WebCore::StyleBuilderConverter::convertLengthOrAuto):
(WebCore::StyleBuilderConverter::convertLengthSizing):
(WebCore::StyleBuilderConverter::convertLengthMaxSizing):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialCustomProperty):
(WebCore::StyleBuilderCustom::applyInheritCustomProperty):
(WebCore::StyleBuilderCustom::applyValueCustomProperty):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::useSVGZoomRules const):
(WebCore::StyleResolver::useSVGZoomRulesForLength const):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::resolvedVariableValue const):
(WebCore::StyleResolver::applyCascadedProperties):
(WebCore::StyleResolver::useSVGZoomRules): Deleted.
(WebCore::StyleResolver::useSVGZoomRulesForLength): Deleted.
(WebCore::StyleResolver::resolvedVariableValue): Deleted.

  • css/StyleResolver.h:
  • css/makeprop.pl:

Move custom property initial values to StyleBuilerCustom. Hook them up to correctly deal with
inheritance, unset and revert values.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences):

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

(WebCore::CSSParserContext::CSSParserContext):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

Allow parsing custom property values as lengths.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::checkVariablesInCustomProperties):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::inheritedCustomProperties const):
(WebCore::RenderStyle::nonInheritedCustomProperties const):
(WebCore::RenderStyle::setInheritedCustomPropertyValue):
(WebCore::RenderStyle::setNonInheritedCustomPropertyValue):
(WebCore::RenderStyle::getCustomProperty const):
(WebCore::RenderStyle::customProperties const): Deleted.
(WebCore::RenderStyle::setCustomPropertyValue): Deleted.

  • rendering/style/StyleRareNonInheritedData.cpp:

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

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

Add support for RenderStyle to deal with both inherited and non-inherited properties, and to find
cycles between them.

LayoutTests:

Add tests to check css registered custom properties with inherits. Also test
calc expression evaluation for inherited registered custom properties.

  • css-custom-properties-api/inherits-expected.txt: Added.
  • css-custom-properties-api/inherits.html: Added.
  • css-custom-properties-api/length-expected.txt: Added.
  • css-custom-properties-api/length.html: Added.
  • css-custom-properties-api/length2-expected.txt: Added.
  • css-custom-properties-api/length2.html: Added.
10:12 PM Changeset in webkit [236827] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] print() changes CRLF to CRCRLF on Windows
https://bugs.webkit.org/show_bug.cgi?id=190228

Reviewed by Mark Lam.

  • jsc.cpp:

(main):
Ultimately, this is just the normal behavior of printf in text mode on Windows.
Since we're reading in files as binary, we need to be printing out as binary too
(just as we do in DumpRenderTree and ImageDiff.)

9:57 PM Changeset in webkit [236826] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Tried to fix non-Cocoa, ENABLE(ATTACHMENT_ELEMENT) builds after r236822.

  • UIProcess/PageClient.h:
8:55 PM Changeset in webkit [236825] by rniwa@webkit.org
  • 8 edits in trunk/Source/WebCore

Clear m_pendingTargets in MutationObserver::takeRecords
https://bugs.webkit.org/show_bug.cgi?id=190240

Reviewed by Geoffrey Garen.

In r236781, we delayed the clearing of m_pendingTargets until the end of microtask to avoid a race between
mutation record's JS wrappers getting created and GC marking JS wrappers of elements in mutation records.

This patch shortens this delay to until mutation record's JS wrappers are created. Specifically, we make
MutationObserver::takeRecords() return a struct which has both pending targets hash set and the vector of
mutation records so that the hash set survives through the creation of JS wrappers for mutation records.

To do this, a new IDL extended attribute "ResultField" is introduced to specify the member variable in
which the result is stored.

No new tests. Unfortunately, this race condition appears to be impossible to capture in a regression test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOperationBodyDefinition):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodes):

  • bindings/scripts/test/TestImplements.idl: Added a test case.
  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::deliver):

  • dom/MutationObserver.h:
  • dom/MutationObserver.idl:
8:29 PM Changeset in webkit [236824] by sbarati@apple.com
  • 3 edits
    1 add in trunk

lowXYZ in FTLLower should always filter the type of the incoming edge
https://bugs.webkit.org/show_bug.cgi?id=189939
<rdar://problem/44407030>

Reviewed by Michael Saboff.

JSTests:

  • stress/ftl-should-always-filter-for-low-type-check-functions.js: Added.

(foo):
(test):

Source/JavaScriptCore:

For example, the FTL may know more about data flow than AI in certain programs,
and it needs to inform AI of these data flow properties to appease the assertion
we have in AI that a node must perform type checks on its child nodes.

For example, consider this program:

`
bb#1
a: Phi Let's say it has an Int32 result, so it goes into the int32 hash table in FTLLower
Branch(..., #2, #3)

bb#2
ArrayifyToStructure(Cell:@a) This modifies @a to have the its previous type union the type of some structure set.
Jump(#3)

bb#3
c: Add(Int32:@something, Int32:@a)
`

When the Add node does lowInt32() for @a, FTL lower used to just grab it
from the int32 hash table without filtering the AbstractValue. However,
the parent node is asking for a type check to happen, so we must inform
AI of this "type check" if we want to appease the assertion that all nodes
perform type checks for their edges that semantically perform type checks.
This patch makes it so we filter the AbstractValue in the lowXYZ even
if FTLLower proved the value must be XYZ.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePhi):
(JSC::FTL::DFG::LowerDFGToB3::simulatedTypeCheck):
(JSC::FTL::DFG::LowerDFGToB3::lowInt32):
(JSC::FTL::DFG::LowerDFGToB3::lowCell):
(JSC::FTL::DFG::LowerDFGToB3::lowBoolean):

8:27 PM Changeset in webkit [236823] by mitz@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Addressed the warning “no rule to process file 'Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0/modules/objfmts/macho/Makefile.inc' of type sourcecode.pascal for architecture x86_64”

  • libwebrtc.xcodeproj/project.pbxproj: Removed Makefile.inc from the yasm target’s Compile Sources build phase.
7:04 PM Changeset in webkit [236822] by mitz@apple.com
  • 9 edits in trunk

[Cocoa] Let clients specify an NSFileWrapper subclassed to be used for _WKAttachment
https://bugs.webkit.org/show_bug.cgi?id=190270

Reviewed by Wenson Hsieh.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]): Copy new _attachmentFileWrapperClass ivar.
(-[WKWebViewConfiguration _attachmentFileWrapperClass]): Added this getter.
(-[WKWebViewConfiguration _setAttachmentFileWrapperClass:]): Added this setter, which raises

an exception if the argument is not an NSFileWrapper subclass.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared new property.
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::allocFileWrapperInstance): Added. Allocates an instance of

the class specified in the configuration, or NSFileWrapper if no custom class is specified.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::platformRegisterAttachment): Use PageClient::allocFileWrapperInstance

instead of allocating an NSFileWrapper instance.

  • UIProcess/PageClient.h:

(WebKit::PageClient::allocFileWrapperInstance): Defined new function. The default

implementation returns nil.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

6:53 PM Changeset in webkit [236821] by youenn@apple.com
  • 28 edits
    5 adds
    3 deletes in trunk

Add VP8 support to WebRTC
https://bugs.webkit.org/show_bug.cgi?id=189976

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:

Source/ThirdParty/libwebrtc:

Add support for conditional VP8 support for both encoding and decoding.
This boolean is used by WebCore based on the new VP8 runtime flag.

Enable yasm compilation as a dependency of libvpx.

Compilation is done without using SSE4/AVX2 optimizations.

  • Configurations/libvpx.xcconfig: Added.
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Source/third_party/libvpx/run_yasm_webkit.py: Added.
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createWebKitEncoderFactory):
(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add a runtime flag to control activation of VP8 codec.
Bind this runtime flag to the video codec factories.
Test: webrtc/video-mute-vp8.html

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

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

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Enable VP8 codec for tests.

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • webrtc/audio-peer-connection-g722.html:
  • webrtc/routines.js:
  • webrtc/video-mute-vp8-expected.txt: Added.
  • webrtc/video-mute-vp8.html: Added.
6:32 PM Changeset in webkit [236820] by jiewen_tan@apple.com
  • 5 edits in trunk

[WebCrypto] ECDSA could not deal with invalid signature inputs
https://bugs.webkit.org/show_bug.cgi?id=189879
<rdar://problem/44701276>

Reviewed by Brent Fulgham.

Source/WebCore:

Add some guards over detections of the start positions of r/s.

Covered by improved existing tests.

  • crypto/mac/CryptoAlgorithmECDSAMac.cpp:

(WebCore::verifyECDSA):

LayoutTests:

  • crypto/subtle/ecdsa-verify-malformed-parameters-expected.txt:
  • crypto/subtle/ecdsa-verify-malformed-parameters.html:
6:17 PM Changeset in webkit [236819] by Kocsen Chung
  • 7 edits in branches/safari-606.2.104.2-branch/Source

Versioning.

5:50 PM Changeset in webkit [236818] by jer.noble@apple.com
  • 18 edits
    2 adds in trunk/Source/WebCore

Add a quirk to disable Modern EME for sites which are broken with it enabled
https://bugs.webkit.org/show_bug.cgi?id=190051

Reviewed by Daniel Bates.

Add a new class, parallel to Settings, to track quirk behavior. Extend the bindings
generator to support a DisabledByQuirk attribute, and set this attribute for all
the Modern EME types. Check whether the quirk is set inside HTMLMediaElement in
addition to the existing Setting.

  • Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeyStatusMap.idl:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • Modules/encryptedmedia/NavigatorEME.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGenerator.pm:

(WK_ucfirst):

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • dom/Document.cpp:

(WebCore::Document::Document):

  • dom/Document.h:

(WebCore::Document::quirks const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered):

  • html/HTMLMediaElement.idl:
  • page/Quirks.cpp: Added.

(Quirks::Quirks):
(Quirks::disableEncryptedMediaAPIQuirk const):

  • page/Quirks.h: Added.
5:49 PM Changeset in webkit [236817] by Kocsen Chung
  • 1 copy in branches/safari-606.2.104.2-branch

New branch.

5:13 PM Changeset in webkit [236816] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.9/Source/WebCore

Cherry-pick r236796. rdar://problem/43949622

[macOS] Switching to discrete GPU should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=189361
<rdar://problem/43949622>

Try to fix the IOSMAC build.

  • platform/graphics/GraphicsContext3D.h:

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

4:34 PM Changeset in webkit [236815] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Search does not cancel after number of matching terms exceed set max limit
https://bugs.webkit.org/show_bug.cgi?id=190020
<rdar://problem/39585214>

Patch by Zamiul Haque <zhaque@apple.com> on 2018-10-03
Reviewed by Andy Estes.

When searching a PDF document on MobileSafari, the maximum number of matching
terms are limited to a set constant. Beyond this limit, a PDF document should not
be searched, since the UI will not be updated correspondingly. To this effect,
a new SPI was made to cancel a search when the maximum limit of matching terms
is reached. This is done without clearing the highlighting for the all the terms
that were found under the limit. This bug was a result of not having implemented
the new SPI in WKPDFView.

This will be tested in a follow-up patch, after re-enabling WKPDFView tests
on iOS 12.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView pdfHostViewController:findStringUpdate:done:]):

4:24 PM Changeset in webkit [236814] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Command line jsc should report memory footprint in bytes
https://bugs.webkit.org/show_bug.cgi?id=190267

Reviewed by Mark Lam.

Change to leave the footprint values from the system unmodified.

  • jsc.cpp:

(JSCMemoryFootprint::finishCreation):

3:02 PM Changeset in webkit [236813] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Suppress unreachable code warning for LLIntAssembly.h code.
https://bugs.webkit.org/show_bug.cgi?id=190263
<rdar://problem/44986532>

Reviewed by Saam Barati.

This is needed because LLIntAssembly.h is template generated from LowLevelInterpreter
asm files, and may contain dead code which are harmless, but will trip up the warning.
We should suppress the warning so that it doesn't break builds.

  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

2:09 PM Changeset in webkit [236812] by Kocsen Chung
  • 2 edits in branches/safari-606.2.104.0-branch/Source/WebCore

Cherry-pick r236806. rdar://problem/44855484

CRASH in CVPixelBufferGetBytePointerCallback()
https://bugs.webkit.org/show_bug.cgi?id=190092

Reviewed by Eric Carlson.

Speculative fix for crash that occurs when callers of CVPixelBufferGetBytePointerCallback() attempt
to read the last byte of a CVPixelBuffer (as a pre-flight check) and crash due to a memory access
error. It's speculated that mismatching CVPixelBufferLockBytePointer / CVPixelBufferUnlockBytePointer
calls could result in an incorrect state inside the CVPixelBuffer. Add log count checks, locking, and
release logging to try to pinpoint if mismatch lock counts are occurring in this code path.

  • platform/graphics/cv/PixelBufferConformerCV.cpp: (WebCore::CVPixelBufferGetBytePointerCallback): (WebCore::CVPixelBufferReleaseBytePointerCallback): (WebCore::CVPixelBufferReleaseInfoCallback): (WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):

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

2:08 PM Changeset in webkit [236811] by mitz@apple.com
  • 6 edits in trunk/Source/ThirdParty

ANGLE and libwebrtc parts of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj: Kept the unreachable code warning off for four files that were generated by tools: glslang_lex.cpp, glslang_tab.cpp, Tokenizer.cpp, and ExpressionParser.cpp. Let Xcode update LastUpgradeCheck.
  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_SUSPICIOUS_MOVE, CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig: Removed a duplicate reference to x_all.c and let Xcode update LastUpgradeCheck.
  • libwebrtc.xcodeproj/project.pbxproj: Enabled CLANG_WARN_INFINITE_RECURSION, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and CLANG_WARN_SUSPICIOUS_MOVE. Other warnings that Xcode 10 recommended were incompatible with one or more source files in the project.
2:02 PM Changeset in webkit [236810] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] REGRESSION: web content process paused in debugger is considered to be unresponsive if WebKit client is sandboxed
https://bugs.webkit.org/show_bug.cgi?id=190256
<rdar://problem/44957921>

Reviewed by Alexey Proskuryakov.

Instead of giving up when the client is sandboxed, check whether it has the
exception that's necessary to get process information. If it is possible,
proceed to check whether the web content process has a debugger attached.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformIsBeingDebugged const):
Check 'process-info-pidinfo' to see if the sysctl call would be allowed.

1:54 PM Changeset in webkit [236809] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[Web Animations] REGRESSION: setting 'animation-name: none' after a 'fill: forwards' animation has completed does not revert to the unanimated style
https://bugs.webkit.org/show_bug.cgi?id=190257
<rdar://problem/41341473>

Reviewed by Dean Jackson.

Source/WebCore:

Test: animations/animation-fill-forwards-removal.html

While we removed a declarative animation that was no longer targetting its element, we were not removing it from the declarative animation maps
on the timeline, which means that the animation would still be picked up when resolving styles. We now notify the timeline that the animation
was detached from the element. This preserves the DeclarativeAnimation relationship returning the element as its effect's target and the document
timeline as its timeline, but the document timeline will no longer see this animation as targeting this element.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation):

  • animation/DeclarativeAnimation.h:

(WebCore::DeclarativeAnimation::target const):

LayoutTests:

Add a test that checks that an animation with fill: forwards no longer applies to an element once it's been removed.

  • animations/animation-fill-forwards-removal-expected.txt: Added.
  • animations/animation-fill-forwards-removal.html: Added.
1:19 PM Changeset in webkit [236808] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.8.2/Source

Versioning.

1:13 PM Changeset in webkit [236807] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.8.2

New tag.

12:28 PM Changeset in webkit [236806] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CRASH in CVPixelBufferGetBytePointerCallback()
https://bugs.webkit.org/show_bug.cgi?id=190092

Reviewed by Eric Carlson.

Speculative fix for crash that occurs when callers of CVPixelBufferGetBytePointerCallback() attempt
to read the last byte of a CVPixelBuffer (as a pre-flight check) and crash due to a memory access
error. It's speculated that mismatching CVPixelBufferLockBytePointer / CVPixelBufferUnlockBytePointer
calls could result in an incorrect state inside the CVPixelBuffer. Add log count checks, locking, and
release logging to try to pinpoint if mismatch lock counts are occurring in this code path.

  • platform/graphics/cv/PixelBufferConformerCV.cpp:

(WebCore::CVPixelBufferGetBytePointerCallback):
(WebCore::CVPixelBufferReleaseBytePointerCallback):
(WebCore::CVPixelBufferReleaseInfoCallback):
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):

11:38 AM Changeset in webkit [236805] by mitz@apple.com
  • 16 edits in trunk

bmalloc, WTF and JavaScriptCore parts of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Alex Christensen.

Source/bmalloc:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
  • bmalloc.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

Source/JavaScriptCore:

  • API/tests/Regress141275.mm:

(-[JSTEvaluator _sourcePerform]): Addressed newly-enabled CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF

by making the self-retaining explicit.

  • API/tests/testapi.cpp:

(testCAPIViaCpp): Addressed newly-enabled CLANG_WARN_UNREACHABLE_CODE by breaking out of the

loop instead of returning from the lambda.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.
  • JavaScriptCore.xcodeproj/project.pbxproj: Removed a duplicate reference to UnlinkedFunctionExecutable.h, and let Xcode update the project file.
  • assembler/MacroAssemblerPrinter.cpp:

(JSC::Printer::printAllRegisters): Addressed newly-enabled CLANG_WARN_COMMA by replacing

some commas with semicolons.

Source/WTF:

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
  • WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
  • wtf/MathExtras.h:

(WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated

expressions into individual statements.

11:28 AM Changeset in webkit [236804] by mark.lam@apple.com
  • 10 edits
    1 add in trunk

Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=190187
<rdar://problem/42512909>

Reviewed by Michael Saboff.

JSTests:

  • stress/regress-190187.js: Added.

Source/JavaScriptCore:

Allowing different max string lengths at each level opens up opportunities for
bugs to creep in. With 2 different max length values, it is more difficult to
keep the story straight on how we do overflow / bounds checks at each place in
the code. It's also difficult to tell if a seemingly valid check at the WTF level
will have bad ramifications at the JSC level. Also, it's also not meaningful to
support a max length > INT_MAX. To eliminate this class of bugs, we'll
standardize on a MaxLength of INT_MAX at all levels.

We'll also standardize the way we do length overflow checks on using
CheckedArithmetic, and add some asserts to document the assumptions of the code.

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • Fix OOM error handling which crashed a test after the new MaxLength was applied.
  • runtime/JSString.h:

(JSC::JSString::finishCreation):
(JSC::JSString::createHasOtherOwner):
(JSC::JSString::setLength):

  • runtime/JSStringInlines.h:

(JSC::jsMakeNontrivialString):

  • runtime/Operations.h:

(JSC::jsString):

Source/WTF:

  • wtf/text/StringConcatenate.h:

(WTF::tryMakeStringFromAdapters):
(WTF::sumWithOverflow): Deleted.

  • wtf/text/StringImpl.h:
  • wtf/text/WTFString.h:
11:26 AM Changeset in webkit [236803] by Chris Dumez
  • 3 edits
    4 adds in trunk

Regression(r236779): Crash when changing the input element type from inside an 'input' event listener
https://bugs.webkit.org/show_bug.cgi?id=190252

Reviewed by Alex Christensen.

Source/WebCore:

Add a null check for element() after firing the 'input' event and before firing the 'change' event
in case the input event listener changes the input type.

Tests: fast/dom/HTMLInputElement/change-type-in-click-event-listener.html

fast/dom/HTMLInputElement/change-type-in-input-event-listener.html

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLInputElement/change-type-in-click-event-listener-expected.txt: Added.
  • fast/dom/HTMLInputElement/change-type-in-click-event-listener.html: Added.
  • fast/dom/HTMLInputElement/change-type-in-input-event-listener-expected.txt: Added.
  • fast/dom/HTMLInputElement/change-type-in-input-event-listener.html: Added.
11:23 AM Changeset in webkit [236802] by Chris Dumez
  • 4 edits in trunk

Passing noopener=NOOPENER to window.open() should cause the new window to not have an opener
https://bugs.webkit.org/show_bug.cgi?id=190251

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noopener-expected.txt:

Source/WebCore:

Passing noopener=NOOPENER to window.open() should cause the new window to not have an opener,
similarly to noopener=1:

It does not matter what the value is, if there is a key named "noopener", then the new window
should not have an opener.

No new tests, rebaselined existing test.

  • page/WindowFeatures.cpp:

(WebCore::setWindowFeature):

11:16 AM Changeset in webkit [236801] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

GC can collect JS wrappers of nodes in the mutation records waiting to be delivered
https://bugs.webkit.org/show_bug.cgi?id=190115

Reviewed by Geoffrey Garen.

Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef.

This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's
target is kept alive and MutationObserverRegistration where each node which had been removed
from an observed tree is kept alive for a subtree observation.

No new test since the test which can reproduce this problem is too slow.

  • dom/GCReachableRef.h:

(WebCore::GCReachableRef): Made it work with hash table.
(WebCore::GCReachableRef::operator T& const):
(WebCore::GCReachableRef::GCReachableRef):
(WebCore::GCReachableRef::isHashTableDeletedValue const):
(WebCore::GCReachableRef::isHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue):
(WebCore::GCReachableRef::assignToHashTableEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::peek):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::take):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers
to be collected before elements in mutation records are accessed. We delay until the end of the current
microtask at which point deliver() function is called.
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive.
This is needed for a newly inserted node, a node with attribute change, etc...
(WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation
records are delivered to each observer. These are nodes which had been removed from a tree and whose
subtree had still been obsreved up until this point.

  • dom/MutationObserver.h:
  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets
that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver
function had been called.
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet const):

  • dom/MutationObserverRegistration.h:
11:14 AM Changeset in webkit [236800] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Make the Pointer Events feature description valid
https://bugs.webkit.org/show_bug.cgi?id=190254

Reviewed by Simon Fraser.

  • features.json:
11:02 AM Changeset in webkit [236799] by Matt Lewis
  • 7 edits
    2 deletes in trunk

Unreviewed, rolling out r236781.

The test added with this commit is timing out consistently.

Reverted changeset:

"GC can collect JS wrappers of nodes in the mutation records
waiting to be delivered"
https://bugs.webkit.org/show_bug.cgi?id=190115
https://trac.webkit.org/changeset/236781

10:56 AM Changeset in webkit [236798] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

10:42 AM Changeset in webkit [236797] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.9

Tag Safari-607.1.9.

10:28 AM Changeset in webkit [236796] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Switching to discrete GPU should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=189361
<rdar://problem/43949622>

Try to fix the IOSMAC build.

  • platform/graphics/GraphicsContext3D.h:
9:05 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:02 AM Changeset in webkit [236795] by Chris Dumez
  • 6 edits in trunk

input.checked is incorrect while we're parsing its children
https://bugs.webkit.org/show_bug.cgi?id=190227

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/semantics/forms/the-input-element/checked-expected.txt:

Source/WebCore:

input.checked was incorrect while we're parsing its children because we were delaying updating the
checked state until HTMLInputElement::finishParsingChildren() is called, to avoid a bad interaction
with form state restoration.

In this patch, we update the checked state as soon as the 'checked' attribute is set, when we know
that no form state to restore.

fast/forms/radio/state-restore-radio-group.html covers the form restoration case and is still
passing.

No new tests, rebaselined existing test.

  • html/FormController.cpp:

(WebCore::FormController::hasFormStateToRestore const):

  • html/FormController.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):

8:47 AM Changeset in webkit [236794] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Incorrect rendering of layers whose backingStore hasn't changed
https://bugs.webkit.org/show_bug.cgi?id=190249

Reviewed by Žan Doberšek.

Do not overwrite m_nicosia.performLayerSync when updating the content buffers or we lose
the value calculated during the layer flush. Use an OR instead to keep the old value.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):

8:15 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
6:49 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
6:06 AM Changeset in webkit [236793] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Enable MSE by default
https://bugs.webkit.org/show_bug.cgi?id=190243

Reviewed by Xabier Rodriguez-Calvar.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_class_init):

5:11 AM Changeset in webkit [236792] by youenn@apple.com
  • 18 edits
    2 moves
    2 adds in trunk

Enable H264 simulcast
https://bugs.webkit.org/show_bug.cgi?id=190167

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Rename .m files to .mm to enable C++ compilation of included header files.
Rename RTCH264VideoEncoder to RTCSingleH264Encoder.
Implement a new RTCH264VideoEncoder that spawns as many RTCSingleH264Encoder as needed for simulcast.
Update ObjC API to allow passing simulcast parameters to/from RTCH264VideoEncoder.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m.
  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m.
  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h:
  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm:

(-[RTCCodecSpecificInfoH264 nativeCodecSpecificInfo]):

  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm:

(-[RTCVideoEncoderSettings initWithNativeVideoCodec:]):

  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm:

(-[RTCWrappedNativeVideoEncoder setBitrate:framerate:]):
(-[RTCWrappedNativeVideoEncoder setRateAllocation:framerate:]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
(-[RTCSingleVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
(-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(-[RTCSingleVideoEncoderH264 scalingSettings]):
(-[RTCSingleVideoEncoderH264 setRateAllocation:framerate:]):
(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 setCallback:]):
(-[RTCVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
(-[RTCVideoEncoderH264 releaseEncoder]):
(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCVideoEncoderH264 setRateAllocation:framerate:]):
(-[RTCVideoEncoderH264 implementationName]):
(-[RTCVideoEncoderH264 scalingSettings]):
(-[RTCVideoEncoderH264 setBitrate:framerate:]):

  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h:
  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h:
  • Source/webrtc/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Activate H264 simulcast trial field.
Make track.getSettings() expose width and height for incoming tracks.

Test: webrtc/simulcast-h264.html

  • Configurations/WebCore.xcconfig:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):

LayoutTests:

  • TestExpectations:
  • webrtc/simulcast-h264-expected.txt: Added.
  • webrtc/simulcast-h264.html: Added.
5:05 AM Changeset in webkit [236791] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add a C++ callable overload of objectConstructorSeal
https://bugs.webkit.org/show_bug.cgi?id=190137

Patch by Koby Boyango <koby.b@mce-sys.com> on 2018-10-03
Reviewed by Yusuke Suzuki.

  • runtime/ObjectConstructor.cpp:
  • runtime/ObjectConstructor.h:
4:03 AM Changeset in webkit [236790] by Michael Catanzaro
  • 4 edits in trunk/Source

-Wunused-variable in RenderLayer::updateScrollableAreaSet
https://bugs.webkit.org/show_bug.cgi?id=190200

Reviewed by Yusuke Suzuki.

Source/WebCore:

Pass it through UNUSED_VARIABLE().

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

Source/WTF:

Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.

  • wtf/Compiler.h:
3:09 AM Changeset in webkit [236789] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Ref<FetchResponse> use-after-move in DOMCache::put()
https://bugs.webkit.org/show_bug.cgi?id=190239

Reviewed by Youenn Fablet.

Retrieve reference from the Ref<FetchResponse> object before it's
move-captured in the lambda that's passed to the
FetchResponse::consumeBodyReceivedByChunk() method that is invoked on
that very same object. This is a classic use-after-move bug that pops
up on compilers with different C++ calling convention.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::put):

2:45 AM Changeset in webkit [236788] by rniwa@webkit.org
  • 24 edits in trunk

Enable selectionAcrossShadowBoundariesEnabled by default in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=190238

Reviewed by Antti Koivisto.

Source/WebCore:

Enable the feature by default.

  • page/Settings.yaml:

Source/WebKitLegacy/mac:

Enabled the feature by default.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Tools:

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

LayoutTests:

Removed the unnecessary webkit-test-runner directive.

  • editing/pasteboard/copy-paste-across-shadow-boundaries-1.html:
  • editing/pasteboard/copy-paste-across-shadow-boundaries-2.html:
  • editing/pasteboard/copy-paste-across-shadow-boundaries-3.html:
  • editing/pasteboard/copy-paste-across-shadow-boundaries-4.html:
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html:
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html:
  • editing/pasteboard/copy-paste-with-shadow-content.html:
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html:
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html:
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html:
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html:
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html:
  • editing/selection/selection-across-shadow-boundaries-readonly-1.html:
  • editing/selection/selection-across-shadow-boundaries-readonly-2.html:
  • editing/selection/selection-across-shadow-boundaries-readonly-3.html:
  • editing/selection/selection-across-shadow-boundaries-user-select-all-1.html:
12:08 AM Changeset in webkit [236787] by commit-queue@webkit.org
  • 3 edits
    21 adds in trunk/LayoutTests/imported/w3c

Import WPT mimesniff resources
https://bugs.webkit.org/show_bug.cgi?id=190074

Patch by Rob Buis <rbuis@igalia.com> on 2018-10-03
Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • web-platform-tests/mimesniff/META.yml: Added.
  • web-platform-tests/mimesniff/README.md: Added.
  • web-platform-tests/mimesniff/mime-types/README.md: Added.
  • web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt: Added.
  • web-platform-tests/mimesniff/mime-types/charset-parameter.window.html: Added.
  • web-platform-tests/mimesniff/mime-types/charset-parameter.window.js: Added.

(promise_test):
(isByteCompatible):
(encodeForURL):
(runTests):

  • web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt: Added.
  • web-platform-tests/mimesniff/mime-types/parsing.any.html: Added.
  • web-platform-tests/mimesniff/mime-types/parsing.any.js: Added.

(promise_test):
(isByteCompatible):
(runTests):

  • web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt: Added.
  • web-platform-tests/mimesniff/mime-types/parsing.any.worker.html: Added.
  • web-platform-tests/mimesniff/mime-types/resources/generated-mime-types.json: Added.
  • web-platform-tests/mimesniff/mime-types/resources/generated-mime-types.py: Added.

(isHTTPTokenCodePoint):
(isHTTPQuotedStringTokenCodePoint):

  • web-platform-tests/mimesniff/mime-types/resources/mime-charset.py: Added.

(main):

  • web-platform-tests/mimesniff/mime-types/resources/mime-types.json: Added.
  • web-platform-tests/mimesniff/mime-types/resources/w3c-import.log: Added.
  • web-platform-tests/mimesniff/mime-types/w3c-import.log: Added.
  • web-platform-tests/mimesniff/w3c-import.log: Added.
  • web-platform-tests/xhr/overridemimetype-blob-expected.txt:

Oct 2, 2018:

11:39 PM Changeset in webkit [236786] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo][BuildBot] archive-test-results fails to delete pywebsocket.ws.log-err.txt
https://bugs.webkit.org/show_bug.cgi?id=190236

Unreviewed test gardening.

  • platform/wincairo/TestExpectations: Skipped http/wpt and imported/w3c.
11:28 PM Changeset in webkit [236785] by rniwa@webkit.org
  • 21 edits
    19 adds in trunk

Copying content with shadow DOM doesn't copy any contents
https://bugs.webkit.org/show_bug.cgi?id=157443

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch adds the support for copying and pasting content across shadow boundaries in HTML and plain text,
which is enabled whenever selection across shadow boundaries is enabled.

To do this, TextIterator now has a constructor which takes two Positions, and the node traversal code in
StyledMarkupAccumulator has been abstracted via helper functions as done for TextIterator.

When serializing a HTMl slot element, serialize it as a span with "display: contents" to make sure when
the content is pasted into a shadow tree, it wouldn't affect the slot assignment of the shadow tree.

Tests: editing/pasteboard/copy-paste-across-shadow-boundaries-1.html

editing/pasteboard/copy-paste-across-shadow-boundaries-2.html
editing/pasteboard/copy-paste-across-shadow-boundaries-3.html
editing/pasteboard/copy-paste-across-shadow-boundaries-4.html
editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html
editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html
editing/pasteboard/copy-paste-with-shadow-content.html

  • dom/ComposedTreeIterator.h:

(WebCore::assignedSlotIgnoringUserAgentShadow): Moved from TextIterator.cpp.
(WebCore::shadowRootIgnoringUserAgentShadow): Ditto.
(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow): Ditto.
(WebCore::nextSiblingInComposedTreeIgnoringUserAgentShadow): Ditto.

  • dom/Position.h:

(WebCore::Position::treeScope const): Added.

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::addDisplayContents): Added.

  • editing/EditingStyle.h:
  • editing/Editor.cpp:

(WebCore::Editor::selectedText const): Use the new behavior when selectionAcrossShadowBoundariesEnabled is set.
(WebCore::Editor::selectedTextForDataTransfer const): Ditto.

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendEndElement): Renamed from appendEndTag. Now takes StringBuilder.

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::appendEndTag):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::TextIterator): Added a new variant which takes two positions.
(WebCore::TextIterator::init):
(WebCore::firstChild):
(WebCore::nextSibling):
(WebCore::plainText): Ditto.

  • editing/TextIterator.h:
  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat): Use the new behavior if selectionAcrossShadowBoundariesEnabled is set.

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard): Ditto.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::parentNode): Added.
(WebCore::StyledMarkupAccumulator::firstChild): Added.
(WebCore::StyledMarkupAccumulator::nextSibling): Added.
(WebCore::StyledMarkupAccumulator::nextSkippingChildren): Added.
(WebCore::StyledMarkupAccumulator::hasChildNodes): Added.
(WebCore::StyledMarkupAccumulator::isDescendantOf): Added.
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement): Serialize a slot element as a span with display: contents.
(WebCore::StyledMarkupAccumulator::appendEndElement): Added. Ditto.
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Use the newly added helper functions to
traverse the composed tree when m_useComposedTree is set.
(WebCore::commonShadowIncludingAncestor): Added.
(WebCore::serializePreservingVisualAppearanceInternal): Added SerializeComposedTree as an argument. Also use
StyledMarkupAccumulator::parentNode to serialize special common ancestors; e.g. to preserve b, i, etc...
(WebCore::serializePreservingVisualAppearance): Ditto to the variant which takes VisibleSelection.
(WebCore::sanitizedMarkupForFragmentInDocument):

  • editing/markup.h:
  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::appendEndElement):

  • testing/Internals.cpp:

(WebCore::Internals::setSelectionWithoutValidation): Added. A helper function to create a selection across
shadow boundaries for testing purposes.

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

LayoutTests:

Added tests for copying and pasting across shadow boundaries with HTML and plain text.

  • editing/pasteboard/copy-paste-across-shadow-boundaries-1-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-1.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-2-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-2.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-3-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-3.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-4-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-4.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html: Added.
  • editing/pasteboard/copy-paste-with-shadow-content-expected.txt: Added.
  • editing/pasteboard/copy-paste-with-shadow-content.html: Added.
6:59 PM Changeset in webkit [236784] by Chris Dumez
  • 8 edits in trunk

MessageEvent.ports should return the same object
https://bugs.webkit.org/show_bug.cgi?id=190151

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.https-expected.txt:

Source/WebCore:

MessageEvent.ports should return the same object it was initialized to instead of
constructing a new JSValue every time.

No new tests, rebaselined existing test.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::ports const):
(WebCore::JSMessageEvent::visitAdditionalChildren):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::initMessageEvent):

  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
6:49 PM Changeset in webkit [236783] by Devin Rousso
  • 9 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: merge SourceMapManager into NetworkManager
https://bugs.webkit.org/show_bug.cgi?id=190224

Reviewed by Joseph Pecoraro.

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:

(WI.loaded):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager):
(WI.NetworkManager.prototype.downloadSourceMap): Added.
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype.resourceRequestDidFinishLoading):
(WI.NetworkManager.prototype._createResource):
(WI.NetworkManager.prototype._loadAndParseSourceMap): Added.
(WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): Added.
(WI.NetworkManager.prototype._sourceMapLoadAndParseSucceeded): Added.
(WI.NetworkManager.prototype._handleFrameMainResourceDidChange): Added.

  • UserInterface/Controllers/SourceMapManager.js: Removed.
  • UserInterface/Models/Script.js:

(WI.Script):

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
5:48 PM Changeset in webkit [236782] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.104.1.1

Tag Safari-606.2.104.1.1.

5:29 PM Changeset in webkit [236781] by rniwa@webkit.org
  • 7 edits
    2 adds in trunk

GC can collect JS wrappers of nodes in the mutation records waiting to be delivered
https://bugs.webkit.org/show_bug.cgi?id=190115

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef.

This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's
target is kept alive and MutationObserverRegistration where each node which had been removed
from an observed tree is kept alive for a subtree observation.

Test: fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html

  • dom/GCReachableRef.h:

(WebCore::GCReachableRef): Made it work with hash table.
(WebCore::GCReachableRef::operator T& const):
(WebCore::GCReachableRef::GCReachableRef):
(WebCore::GCReachableRef::isHashTableDeletedValue const):
(WebCore::GCReachableRef::isHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue):
(WebCore::GCReachableRef::assignToHashTableEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::peek):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::take):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers
to be collected before elements in mutation records are accessed. We delay until the end of the current
microtask at which point deliver() function is called.
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive.
This is needed for a newly inserted node, a node with attribute change, etc...
(WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation
records are delivered to each observer. These are nodes which had been removed from a tree and whose
subtree had still been obsreved up until this point.

  • dom/MutationObserver.h:
  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets
that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver
function had been called.
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet const):

  • dom/MutationObserverRegistration.h:

LayoutTests:

Added a regression test.

  • fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive-expected.txt: Added.
  • fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html: Added.
5:29 PM Changeset in webkit [236780] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: start editing property name/value on mouseup instead of mousedown
https://bugs.webkit.org/show_bug.cgi?id=190114
<rdar://problem/44891030>

Reviewed by Matt Baker.

This change only affects the experimental multiple properties selection.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
Without this code, the focus outline flickers on click (after mousedown but before mouseup event).

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype._handleMouseUp):

5:28 PM Changeset in webkit [236779] by Chris Dumez
  • 14 edits in trunk

radio / checkbox inputs should fire "click, input, change" events in order when clicked
https://bugs.webkit.org/show_bug.cgi?id=190223

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline a few WPT tests that are now passing. I have verified that those are passing in Gecko and Blink
as well.

  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-click-events-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

radio / checkbox inputs should fire "click, input, change" events in order when clicked:

Gecko and Blink already behave this way. However, WebKit has the following issues:

  • the input event is not fired
  • the click event is fired after the change event

No new tests, updated / rebaselined existing tests.

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):

  • html/BaseCheckableInputType.h:
  • html/CheckboxInputType.cpp:

(WebCore::CheckboxInputType::willDispatchClick):
(WebCore::CheckboxInputType::didDispatchClick):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):

  • html/HTMLInputElement.h:
  • html/RadioInputType.cpp:

(WebCore::RadioInputType::willDispatchClick):
(WebCore::RadioInputType::didDispatchClick):

LayoutTests:

Update existing test to reflect behavior change. I have verified that our new behavior
on this test is consistent with Gecko and Chrome.

  • fast/forms/radio/radio-group-keyboard-change-event-expected.txt:
  • fast/forms/radio/radio-group-keyboard-change-event.html:
5:26 PM Changeset in webkit [236778] by Chris Dumez
  • 14 edits
    2 adds
    2 deletes in trunk

fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection
https://bugs.webkit.org/show_bug.cgi?id=190218

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test now that it is passing.

  • web-platform-tests/html/semantics/forms/the-fieldset-element/HTMLFieldSetElement-expected.txt:

Source/WebCore:

fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection:

Gecko has always behaved this way. Blink aligned with Gecko and the HTML specification in December 2016:

This simplifies our HTMLFieldSetElement code a lot.

Test: fast/forms/fieldset/fieldset-elements-htmlcollection.html

  • html/CollectionType.h:
  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::elements):

  • html/HTMLFieldSetElement.h:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore:: const):
(WebCore::HTMLFormControlsCollection::copyFormControlElementsVector const):
(WebCore::HTMLFormControlsCollection::ownerNode const):
(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):

  • html/HTMLFormControlsCollection.h:

LayoutTests:

Update existing tests to reflect behavior change, after checking that our behavior is consistent
with Gecko and Blink on these tests.

  • fast/forms/fieldset/fieldset-elements-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt: Added.
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html: Added.
  • fast/forms/fieldset/fieldset-elements.html:
  • fast/forms/fieldset/fieldset-form-collection-radionode-list-expected.txt: Removed.
  • fast/forms/fieldset/fieldset-form-collection-radionode-list.html: Removed.
5:25 PM Changeset in webkit [236777] by Devin Rousso
  • 7 edits
    2 adds in trunk

Web Inspector: prevent layer events from firing until the layer information is re-requested
https://bugs.webkit.org/show_bug.cgi?id=190159

Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: inspector/layers/layerTreeDidChange.html

  • inspector/agents/InspectorLayerTreeAgent.h:
  • inspector/agents/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::reset):
(WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
(WebCore::InspectorLayerTreeAgent::layersForNode):

Source/WebInspectorUI:

  • UserInterface/Controllers/LayerTreeManager.js:

(WI.LayerTreeManager):
(WI.LayerTreeManager.prototype.get supported):
Remove supported member variable in favor of re-evaluating its value.

  • UserInterface/Protocol/LayerTreeObserver.js:

(WI.LayerTreeObserver.prototype.layerTreeDidChange):

LayoutTests:

  • inspector/layers/layerTreeDidChange-expected.txt: Added.
  • inspector/layers/layerTreeDidChange.html: Added.
5:21 PM Changeset in webkit [236776] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r236766): WI.IssueManager no longer exists
https://bugs.webkit.org/show_bug.cgi?id=190226

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/ConsoleManager.js:

(WI.ConsoleManager.prototype.issuesForSourceCode):

5:13 PM Changeset in webkit [236775] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Deprecate WKConnection
https://bugs.webkit.org/show_bug.cgi?id=190147

Patch by Alex Christensen <achristensen@webkit.org> on 2018-10-02
Reviewed by Andy Estes.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

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

(didReceiveMessage):
(didClose):

  • UIProcess/API/Cocoa/WKConnectionInternal.h:
  • UIProcess/API/Cocoa/WKProcessGroup.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
4:55 PM Changeset in webkit [236774] by BJ Burg
  • 2 edits in trunk/Source/WebCore

Web Automation: tab default key handler should always cycle focus when page is controlled by automation
https://bugs.webkit.org/show_bug.cgi?id=190221
<rdar://problem/44914534>

Reviewed by Joseph Pecoraro.

This change progresses WPT WebDriver test special_keys.py::test_webdriver_special_key_sends_keydown[TAB-expected24].

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):
Always cycle focus if the page is controlled by automation. If the chrome takes
focus, then the first responder will be something other than the WebView, which
causes subsequent WebDriver commands to hang.

4:42 PM Changeset in webkit [236773] by dino@apple.com
  • 25 edits
    8 adds in trunk/Source

[macOS] Switching to discrete GPU should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=189361
<rdar://problem/43949622>

Reviewed by Simon Fraser.

Source/WebCore:

Based on an earlier patch by Per Arne Vollan.

Due to the fact we can't talk to the Window Server, the Web Process can
no longer muxing to the discrete GPU directly. Instead we have to get the
UI Process to process the change. Do this by adding a new Chrome client
called GPUClient, that will have implementations provided by both WebKit
and legacy WebKit.

Unfortunately this can't be tested by a regular WKTR since:

  • it requires specific hardware
  • swapping to/from the discrete GPU takes about 20 seconds
  • running concurrent tests could confuse the tests into thinking the wrong GPU is active

Instead we'll write a specific test for this functionality and
run it on a separate bot.

  • WebCore.xcodeproj/project.pbxproj: Add GPUClient files.
  • page/Chrome.cpp: Drive by clean-up.

(WebCore::Chrome::windowScreenDidChange):

  • platform/graphics/GraphicsContext3D.h: We need to keep track of

whether we've muxed for this context, in order to not respond to
the screen change notifications (they are misleading in the case
of muxing).

  • platform/graphics/GraphicsContext3DManager.cpp: Rather than try

to mux directly, call into GPUClient.
(WebCore::GraphicsContext3DManager::displayWasReconfigured):
(WebCore::GraphicsContext3DManager::updateHighPerformanceState):
(WebCore::GraphicsContext3DManager::disableHighPerformanceGPUTimerFired):
(WebCore::GraphicsContext3DManager::recycleContextIfNecessary):

  • platform/graphics/GraphicsContext3DManager.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm: Only reconfigure

the virtual display if it didn't happen from muxing.
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::updateCGLContext):
(WebCore::GraphicsContext3D::screenDidChange):

  • platform/graphics/mac/GPUClient.cpp: Added.

(WebCore::GPUClient::singleton):
(WebCore::GPUClient::setSingleton):

  • platform/graphics/mac/GPUClient.h: Added.
  • testing/Internals.cpp: Testing helper.

(WebCore::Internals::hasMuxableGPU):

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

Source/WebKit:

Implement the UI-side process for triggering a GPU mux.

  • Platform/Logging.h: Add a WebGL logging channel.
  • SourcesCocoa.txt: Add the new files: WebGPUClient and HighPerformanceGPUManager.
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm: UI process calls that use HighPerformanceGPUManager

to keep track of whether or not this process needs the high-performance GPU.
(WebKit::WebProcessProxy::requestHighPerformanceGPU):
(WebKit::WebProcessProxy::releaseHighPerformanceGPU):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy): Make sure to unregister with the HighPerformanceGPUManager
as the process disappears without manually removing itself (e.g. crashes).

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in: New messages.
  • UIProcess/mac/HighPerformanceGPUManager.cpp: New class that copies most of what used

to live in GraphicsContext3DManager. It creates a CGLPixelFormat object when it sees
that at least one process needs the high-performance GPU.
(WebKit::HighPerformanceGPUManager::singleton):
(WebKit::HighPerformanceGPUManager::addProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::updateState):

  • UIProcess/mac/HighPerformanceGPUManager.h: Added.
  • WebKit.xcodeproj/project.pbxproj: Add new files.
  • WebProcess/WebCoreSupport/mac/WebGPUClient.cpp: Implementation of the GPUClient for

WebCore, which sends messages to the UI process.
(WebKit::WebGPUClient::singleton):
(WebKit::WebGPUClient::requestHighPerformanceGPU):
(WebKit::WebGPUClient::releaseHighPerformanceGPU):

  • WebProcess/WebCoreSupport/mac/WebGPUClient.h: Added.
  • WebProcess/cocoa/WebProcessCocoa.mm: Register the GPUClient.

(WebKit::WebProcess::platformInitializeProcess):

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Add new files.

Source/WebKitLegacy/mac:

Implement a no-op GPUClient instance in legacy WebKit. We will
not support swapping to the discrete GPU in this configuration.

  • WebCoreSupport/WebGPUClient.cpp: Added.

(WebKit::WebGPUClient::singleton):

  • WebCoreSupport/WebGPUClient.h: Added.
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WTF:

Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.

  • wtf/Platform.h:
4:02 PM Changeset in webkit [236772] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Fix a potential crash in NetworkProcess::deleteWebsiteDataForOrigins
https://bugs.webkit.org/show_bug.cgi?id=190220

Reviewed by Chris Dumez.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):

3:59 PM Changeset in webkit [236771] by Chris Dumez
  • 5 edits
    1 add in trunk/LayoutTests/imported/w3c

Refresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh
https://bugs.webkit.org/show_bug.cgi?id=190212

Reviewed by Youenn Fablet.

Refresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh
from upstream f15449622a76d0.

  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/refresh.sub.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/w3c-import.log:
3:53 PM Changeset in webkit [236770] by Wenson Hsieh
  • 5 edits in trunk

[WebKit2] Format > Bold and Format > Italic don't toggle between bold and italic style
https://bugs.webkit.org/show_bug.cgi?id=179787
<rdar://problem/35593389>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by relaxing our policy in WebViewImpl::updateFontManagerIfNeeded. Instead of updating only when
the font panel is visible, update when either the font panel is visible, or the selection is in a richly
editable area. In the latter case, an up-to-date NSFontManager state is needed in order for certain font
formatting menu items, such as bold and italic, to correctly toggle state.

Test: FontManagerTests.ToggleBoldAndItalicWithMenuItems

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKWindowVisibilityObserver observeValueForKeyPath:ofObject:change:context:]):
(WebKit::WebViewImpl::selectionDidChange):
(WebKit::WebViewImpl::updateFontManagerIfNeeded):

Rename updateFontPanelIfNeeded to updateFontManagerIfNeeded, to reflect the new behavior.

(WebKit::WebViewImpl::changeFontAttributesFromSender):
(WebKit::WebViewImpl::changeFontFromFontManager):
(WebKit::WebViewImpl::updateFontPanelIfNeeded): Deleted.

Tools:

Add a test to verify that NSFontManager's selected font is updated when applying italic and bold styles using
menu items.

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

(webViewForFontManagerTesting):
(menuItemCellForFontAction):
(TestWebKitAPI::TEST):

3:53 PM Changeset in webkit [236769] by Chris Dumez
  • 6 edits in trunk

Image.proto should be Function.prototype, not HTMLElement.prototype
https://bugs.webkit.org/show_bug.cgi?id=190216

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test now that it is passing.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt:

Source/WebCore:

Properties created for named constructors should always use Function.prototype as prototype, as per:

Gecko and Blink agree with the Web IDL specification. However, WebKit was using the parent interface's
prototype if such a parent existing. So Image.proto would end up being HTMLElement.prototype
instead of Function.prototype.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

3:53 PM Changeset in webkit [236768] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix Disassembler-output on ARM Thumb2
https://bugs.webkit.org/show_bug.cgi?id=190203

On ARMv7 with Thumb2 addresses have bit 0 set to 1 to force
execution in thumb mode for jumps and calls. The actual machine
instructions are still aligned to 2-bytes though. Use dataLocation() as
start address for disassembling since it unsets the thumb bit.
Until now the disassembler would start at the wrong address (off by 1),
resulting in the wrong disassembled machine instructions.

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-10-02
Reviewed by Mark Lam.

  • disassembler/CapstoneDisassembler.cpp:

(JSC::tryToDisassemble):

3:34 PM Changeset in webkit [236767] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Prepare WebCoreNSURLExtras for ARC
https://bugs.webkit.org/show_bug.cgi?id=190219

Reviewed by Tim Horton.

ARC doesn't like the explicit sending of -release.
Use RetainPtr instead.

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::collectRangesThatNeedMapping):
(WebCore::collectRangesThatNeedEncoding):
(WebCore::collectRangesThatNeedDecoding):
(WebCore::applyHostNameFunctionToMailToURLString):
(WebCore::applyHostNameFunctionToURLString):
(WebCore::mapHostNames):
(WebCore::stringByTrimmingWhitespace):
(WebCore::URLWithUserTypedString):
(WebCore::userVisibleString):
(WebCore::rangeOfURLScheme):
(WebCore::looksLikeAbsoluteURL):
(WebCore::retain): Deleted.

3:14 PM Changeset in webkit [236766] by Devin Rousso
  • 182 edits
    6 moves
    1 add
    1 delete in trunk

Web Inspector: rename frontend managers to be more consistent with backend agents
https://bugs.webkit.org/show_bug.cgi?id=190160

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:
  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:
  • UserInterface/Base/DOMUtilities.js:
  • UserInterface/Controllers/ApplicationCacheManager.js:
  • UserInterface/Controllers/CSSManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/CSSStyleManager.js.
  • UserInterface/Controllers/ConsoleManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/LogManager.js.
  • UserInterface/Controllers/DOMDebuggerManager.js:
  • UserInterface/Controllers/DOMManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js.
  • UserInterface/Controllers/DOMStorageManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/StorageManager.js.
  • UserInterface/Controllers/DashboardManager.js: Removed.
  • UserInterface/Controllers/DatabaseManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
  • UserInterface/Controllers/HARBuilder.js:
  • UserInterface/Controllers/IndexedDBManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
  • UserInterface/Controllers/IssueManager.js: Removed.
  • UserInterface/Controllers/JavaScriptLogViewController.js:
  • UserInterface/Controllers/NetworkManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js.
  • UserInterface/Controllers/SourceMapManager.js:
  • UserInterface/Controllers/TimelineManager.js:
  • UserInterface/Debug/UncaughtExceptionReporter.js:
  • UserInterface/Models/CSSProperty.js:
  • UserInterface/Models/CSSSelector.js:
  • UserInterface/Models/CallFrame.js:
  • UserInterface/Models/Canvas.js:
  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Models/DOMBreakpoint.js:
  • UserInterface/Models/DOMNode.js:
  • UserInterface/Models/DOMNodeStyles.js:
  • UserInterface/Models/DOMTree.js:
  • UserInterface/Models/DefaultDashboard.js:
  • UserInterface/Models/Script.js:
  • UserInterface/Models/ScriptTimelineRecord.js:
  • UserInterface/Models/SourceMapResource.js:
  • UserInterface/Models/TimelineRecording.js:
  • UserInterface/Protocol/CSSObserver.js:
  • UserInterface/Protocol/ConsoleObserver.js:
  • UserInterface/Protocol/DOMObserver.js:
  • UserInterface/Protocol/DOMStorageObserver.js:
  • UserInterface/Protocol/DatabaseObserver.js:
  • UserInterface/Protocol/InspectorFrontendAPI.js:
  • UserInterface/Protocol/InspectorObserver.js:
  • UserInterface/Protocol/MainTarget.js:
  • UserInterface/Protocol/NetworkObserver.js:
  • UserInterface/Protocol/PageObserver.js:
  • UserInterface/Protocol/RemoteObject.js:
  • UserInterface/Protocol/RuntimeObserver.js:
  • UserInterface/Protocol/WorkerTarget.js:
  • UserInterface/Views/BoxModelDetailsSectionRow.js:
  • UserInterface/Views/CanvasOverviewContentView.js:
  • UserInterface/Views/CanvasTreeElement.js:
  • UserInterface/Views/ContentView.js:
  • UserInterface/Views/ContextMenuUtilities.js:
  • UserInterface/Views/CookieStorageContentView.js:
  • UserInterface/Views/DOMDetailsSidebarPanel.js:
  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
  • UserInterface/Views/DOMNodeTreeElement.js:
  • UserInterface/Views/DOMTreeContentView.js:
  • UserInterface/Views/DOMTreeDataGrid.js:
  • UserInterface/Views/DOMTreeElement.js:
  • UserInterface/Views/DOMTreeElementPathComponent.js:
  • UserInterface/Views/DOMTreeOutline.js:
  • UserInterface/Views/DOMTreeUpdater.js:
  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/ElementsTabContentView.js:
  • UserInterface/Views/EventBreakpointPopover.js:
  • UserInterface/Views/EventBreakpointTreeElement.js:
  • UserInterface/Views/EventListenerSectionGroup.js:
  • UserInterface/Views/FormattedValue.js:
  • UserInterface/Views/FrameTreeElement.js:
  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
  • UserInterface/Views/LayerDetailsSidebarPanel.js:
  • UserInterface/Views/LayerTreeDataGridNode.js:
  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
  • UserInterface/Views/Layers3DContentView.js:
  • UserInterface/Views/LogContentView.js:
  • UserInterface/Views/NetworkTableContentView.js:
  • UserInterface/Views/ObjectTreeBaseTreeElement.js:
  • UserInterface/Views/ObjectTreeView.js:
  • UserInterface/Views/OpenResourceDialog.js:
  • UserInterface/Views/ResourceSidebarPanel.js:
  • UserInterface/Views/SearchSidebarPanel.js:
  • UserInterface/Views/SettingsTabContentView.js:
  • UserInterface/Views/SourceCodeTextEditor.js:
  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
  • UserInterface/Views/StorageSidebarPanel.js:
  • UserInterface/Views/StyleDetailsPanel.js:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

LayoutTests:

  • http/tests/inspector/dom/cross-domain-inspected-node-access.html:
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
  • http/tests/inspector/dom/shapes-test.js:
  • http/tests/inspector/network/har/har-page.html:
  • http/tests/inspector/network/loadResource-insecure-resource.html:
  • http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
  • http/tests/websocket/tests/hybi/inspector/before-load.html:
  • http/tests/websocket/tests/hybi/inspector/resolveWebSocket.html:
  • inspector/canvas/requestNode.html:
  • inspector/codemirror/resources/prettyprinting/utilities.js:

(TestPage.registerInitializer.loadPrettyPrintingTestAndExpectedResults):
(TestPage.registerInitializer.window.addPrettyPrintingTests):
(TestPage.registerInitializer):

  • inspector/console/clearMessages.html:
  • inspector/console/command-line-api.html:
  • inspector/console/console-api.html:
  • inspector/console/console-count.html:
  • inspector/console/console-table.html:
  • inspector/console/console-time.html:
  • inspector/console/message-stack-trace.html:
  • inspector/console/messageAdded-from-named-evaluations.html:
  • inspector/console/messageRepeatCountUpdated.html:
  • inspector/console/messagesCleared.html:
  • inspector/console/webcore-logging-expected.txt:
  • inspector/console/webcore-logging.html:
  • inspector/controller/runtime-controller-import.html:
  • inspector/controller/runtime-controller.html:
  • inspector/css/add-rule.html:
  • inspector/css/createStyleSheet.html:
  • inspector/css/css-property.html:
  • inspector/css/getAllStyleSheets.html:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
  • inspector/css/matched-style-properties.html:
  • inspector/css/modify-css-property.html:
  • inspector/css/modify-rule-selector.html:
  • inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
  • inspector/css/pseudo-element-matches.html:
  • inspector/css/selector-dynamic-specificity.html:
  • inspector/css/selector-specificity.html:
  • inspector/css/shadow-scoped-style.html:
  • inspector/css/stylesheet-events-basic.html:
  • inspector/css/stylesheet-events-imports.html:
  • inspector/css/stylesheet-events-inspector-stylesheet.html:
  • inspector/css/stylesheet-events-multiple-documents.html:
  • inspector/css/stylesheet-with-mutations.html:
  • inspector/debugger/csp-exceptions.html:
  • inspector/debugger/js-stacktrace.html:
  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.findScript):
(TestPage.registerInitializer.window.loadMainPageContent):
(TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
(TestPage.registerInitializer.window.logLinesWithContext):

  • inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html:
  • inspector/dom-debugger/dom-breakpoints.html:
  • inspector/dom-debugger/xhr-breakpoints.html:
  • inspector/dom/breakpoint-for-event-listener.html:
  • inspector/dom/csp-big5-hash.html:
  • inspector/dom/csp-hash.html:
  • inspector/dom/customElementState.html:
  • inspector/dom/domutilities-csspath.html:
  • inspector/dom/domutilities-path-dump.html:
  • inspector/dom/domutilities-xpath.html:
  • inspector/dom/event-listener-add-remove.html:
  • inspector/dom/getEventListenersForNode.html:
  • inspector/dom/getOuterHTML.html:
  • inspector/dom/hideHighlight.html:
  • inspector/dom/highlightFrame.html:
  • inspector/dom/highlightNode.html:
  • inspector/dom/highlightNodeList.html:
  • inspector/dom/highlightSelector.html:
  • inspector/dom/insertAdjacentHTML.html:
  • inspector/dom/inspect.html:
  • inspector/dom/pseudo-element-dynamic.html:
  • inspector/dom/pseudo-element-static.html:
  • inspector/dom/push-node-by-path-to-frontend.html:
  • inspector/dom/setEventListenerDisabled.html:
  • inspector/dom/setInspectedNode.html:
  • inspector/dom/setOuterHTML-no-document-element.html:
  • inspector/dom/setOuterHTML.html:
  • inspector/dom/shadow-and-non-shadow-children.html:
  • inspector/dom/shadowRootType.html:
  • inspector/dom/template-content.html:
  • inspector/formatting/resources/utilities.js:

(TestPage.registerInitializer.loadFormattingTestAndExpectedResults):
(TestPage.registerInitializer.window.addFormattingTests):
(TestPage.registerInitializer):

  • inspector/indexeddb/clearObjectStore.html:
  • inspector/indexeddb/deleteDatabaseNamesWithSpace.html:
  • inspector/indexeddb/requestData.html:
  • inspector/indexeddb/requestDatabase.html:
  • inspector/indexeddb/requestDatabaseNames.html:
  • inspector/layers/layer-tree-manager.html:
  • inspector/model/dom-node.html:
  • inspector/model/frame-extra-scripts.html:
  • inspector/model/script-resource-relationship.html:
  • inspector/model/stack-trace.html:
  • inspector/page/empty-or-missing-resources.html:
  • inspector/page/hidpi-snapshot-size.html:
  • inspector/page/main-frame-resource.html:
  • inspector/runtime/change-execution-context-identifier.html:
  • inspector/runtime/saveResult.html:
  • inspector/storage/domStorage-events.html:
  • inspector/worker/console-basic.html:
  • inspector/worker/resources-in-worker.html:
1:45 PM Changeset in webkit [236765] by Basuke Suzuki
  • 4 edits in trunk

[Curl] Fix missing values of resource timing API.
https://bugs.webkit.org/show_bug.cgi?id=190193

Reviewed by Alex Christensen.

Source/WebCore:

The property nextHopProtocol was not returned correctly. It was
returned only when remote inspector is opened.

Tests: http/wpt/resource-timing/rt-nextHopProtocol.html

http/wpt/resource-timing/rt-nextHopProtocol.worker.html

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::getNetworkLoadMetrics):
(WebCore::CurlHandle::addExtraNetworkLoadMetrics):

LayoutTests:

  • platform/wincairo/TestExpectations:
1:44 PM Changeset in webkit [236764] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION: TestWebKitAPI.WKWebView.ProvisionalURLNotChange API test is failing
https://bugs.webkit.org/show_bug.cgi?id=190176
<rdar://problem/44925871>

Reviewed by Alex Christensen.

Use a URL that is truly recognized as invalid by WebCore's URL parser.

  • TestWebKitAPI/Tests/WebKitCocoa/ProvisionalURLNotChange.mm:

(TEST):

1:26 PM Changeset in webkit [236763] by achristensen@apple.com
  • 5 edits in trunk/Source

Remove unused linked-on-or-before-iOS5 check
https://bugs.webkit.org/show_bug.cgi?id=190164

Reviewed by Michael Saboff.

Source/WebCore:

If an app hasn't been updated since iOS5, it can't run supported iOS.
This value is also only checked in an uninstantiated template function.

  • platform/URL.cpp:

(WebCore::enableURLSchemeCanonicalization): Deleted.
(WebCore::equal): Deleted.

  • platform/URL.h:

Source/WebKitLegacy/ios:

  • Misc/WebUIKitSupport.mm:

(WebKitInitialize):
(linkedOnOrAfterIOS5): Deleted.

1:24 PM Changeset in webkit [236762] by achristensen@apple.com
  • 59 edits in trunk

Remove ParsedURLString
https://bugs.webkit.org/show_bug.cgi?id=190154

Reviewed by Chris Dumez.

Source/WebCore:

Before the introduction of URLParser, it would indicate that we should assume the String
is from a valid URL so we can skip canonicalization and just find the offsets inside the String
to quickly create a URL. It was a performance optimization that caused security issues when
misused. Since the introduction of URLParser, we have a fast path for all URL parsing, so
right now it actually doesn't change any behavior. It's just a relic of the past that complicates
the URL class, making it harder to express which constructor to use and making it harder to move
the class.

  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):

  • dom/Document.cpp:

(WebCore::Document::updateBaseURL):
(WebCore::Document::initSecurityContext):

  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • editing/markup.cpp:

(WebCore::completeURLs):

  • fileapi/BlobURL.cpp:

(WebCore::BlobURL::createBlobURL):

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::url const):
(WebCore::HistoryItem::originalURL const):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::location const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::stop):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::resourceStyleSheetText const):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):
(WebCore::InspectorPageAgent::getResourceContent):
(WebCore::InspectorPageAgent::searchInResource):

  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::sourceMapURLForScript):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::subresources const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::pushState):
(WebCore::HistoryController::replaceState):

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::addResource):
(WebCore::ApplicationCache::resourceForURL):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::startLoadingEntry):
(WebCore::ApplicationCacheGroup::addEntry):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::manifestURLs):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::urlForBlankFrame):

  • platform/URL.cpp:

(WebCore::blankURL):

  • platform/URL.h:

(): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::load):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::populateBlobsForFileWriting):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::decodeBase):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeSuggestedFilename):

  • platform/network/cf/DNSResolveQueueCFNet.cpp:

(WebCore::DNSResolveQueueCFNet::updateIsUsingProxy):

  • platform/network/cf/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::setCookie):
(WebCore::CookieJarDB::deleteCookie):

  • platform/network/curl/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::docLoaderFunc):

Source/WebKit:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::writeBlobToFilePath):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::streamWillSendRequest):
(WebKit::PluginControllerProxy::streamDidReceiveResponse):
(WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):

  • Shared/API/APIUserContentURLPattern.h:

(API::UserContentURLPattern::matchesURL const):

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::itemIsInSameDocument const):

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::handleRequest):
(WebKit::RemoteInspectorProtocolHandler::targetListChanged):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::openURL):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::processDidTerminate):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::addProcessToOriginCacheSet):
(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::createShareMenuItem):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::addUserScript):
(WebKit::InjectedBundle::addUserStyleSheet):
(WebKit::InjectedBundle::removeUserScript):
(WebKit::InjectedBundle::removeUserStyleSheet):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::Parameters::decode):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::url):
(WebKit::WebPlatformStrategies::readURLFromPasteboard):

Source/WebKitLegacy/mac:

  • WebView/WebScriptDebugger.mm:

(toNSURL):

Source/WebKitLegacy/win:

  • WebDownloadCurl.cpp:

(WebDownload::initWithRequest):

  • WebURLResponse.cpp:

(WebURLResponse::createInstance):

Tools:

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):

12:42 PM Changeset in webkit [236761] by dbates@webkit.org
  • 4 edits in trunk/Tools

Fix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
(https://bugs.webkit.org/show_bug.cgi?id=190017)

For now swizzle +[UIKeyboard isInHardwareKeyboardMode] to return NO in the following tests:

WKWebViewAutofillTests.AutofillRequiresInputSession
DragAndDropTests.ExternalSourceJPEGOnly
DragAndDropTests.ExternalSourceUTF8PlainTextOnly

so that the presence of a hardware keyboad does not effect their results. In <https://bugs.webkit.org/show_bug.cgi?id=190211>
we will look to swizzle this method for all test by default.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
12:20 PM Changeset in webkit [236760] by Kocsen Chung
  • 7 edits in branches/safari-606.2.104.0-branch/Source

Versioning.

12:18 PM Changeset in webkit [236759] by Kocsen Chung
  • 7 edits in branches/safari-606.2.104.1-branch/Source

Versioning.

12:01 PM Changeset in webkit [236758] by yusukesuzuki@slowstart.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add stub of ExecutableAllocator used when JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=190215

Reviewed by Mark Lam.

When ENABLE(JIT) is disabled, we do not use JIT. But we ExecutableAllocator is still available since
it is guarded by ENABLE(ASSEMBLER). ENABLE(ASSEMBLER) is necessary for LLInt ASM interpreter since
our MacroAssembler tells machine architecture information. Eventually, we would like to decouple
this machine architecture information from MacroAssembler. But for now, we use ENABLE(ASSEMBLER)
for LLInt ASM interpreter even if JIT is disabled by ENABLE(JIT).

To ensure any executable memory allocation is not done, we add a stub of ExecutableAllocator for
non-JIT configurations. This does not have any functionality allocating executable memory, thus
any accidental operation cannot attempt to allocate executable memory if ENABLE(JIT) = OFF.

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::initializeAllocator):
(JSC::ExecutableAllocator::singleton):

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocator::isValid const):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::getLock const):
(JSC::performJITMemcpy):

11:43 AM Changeset in webkit [236757] by Kocsen Chung
  • 1 copy in branches/safari-606.2.104.1-branch

New branch.

11:42 AM Changeset in webkit [236756] by Kocsen Chung
  • 1 copy in branches/safari-606.2.104.0-branch

New branch.

11:39 AM Changeset in webkit [236755] by realdawei@apple.com
  • 4 edits in trunk/Tools

Unreviewed, rolling out r236751.

broke the iOS Build

Reverted changeset:

"Fix iOS TestWebKitAPI failures following
<https://trac.webkit.org/changeset/236619>"
https://bugs.webkit.org/show_bug.cgi?id=190017
https://trac.webkit.org/changeset/236751

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-02

11:36 AM Changeset in webkit [236754] by pvollan@apple.com
  • 3 edits
    3 adds in trunk

[WebVTT] Cue with line setting is not rendered correctly
https://bugs.webkit.org/show_bug.cgi?id=190168

Reviewed by Eric Carlson.

Source/WebCore:

When the line setting contains an optional alignment value, the cue is not rendered at the correct position,
see https://w3c.github.io/webvtt/#webvtt-line-cue-setting. This patch does not implement correct handling of
the line setting alignment values, it only makes sure parsing does not fail when the cue has line alignment
settings.

Test: media/track/track-cue-line-position.html

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getPositionCoordinates const):
(WebCore::VTTCue::setCueSettings):

LayoutTests:

  • media/track/captions-webvtt/line-position.vtt: Added.
  • media/track/track-cue-line-position-expected-mismatch.html: Added.
  • media/track/track-cue-line-position.html: Added.
10:57 AM Changeset in webkit [236753] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

User installed fonts are not always disabled when they should be
https://bugs.webkit.org/show_bug.cgi?id=190195

Reviewed by Geoffrey Garen.

SVG images and some theme cases fail to respect the setting. Besides the obvious problem this
is also a performance issue as various font caches include this setting in the key.

  • platform/graphics/FontDescription.cpp:

(WebCore::m_shouldAllowUserInstalledFonts):

Initialize to 'No' by default. All paths where user fonts make sense already set the bit from
settings. This fixes some cases in system themes that construct FontDescriptions from scratch.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

Add assertion. This verified the change with the existing tests.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Always disallow user fonts in SVG used as images.

10:52 AM Changeset in webkit [236752] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GTK] fast/forms/color/input-appearance-color.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189350

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-10-02
Reviewed by Michael Catanzaro.

Update test expectations to match changes introduced in r235435.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.png:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.txt:
10:49 AM Changeset in webkit [236751] by dbates@webkit.org
  • 4 edits in trunk/Tools

Fix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
(https://bugs.webkit.org/show_bug.cgi?id=190017)

For now swizzle +[UIKeyboard isInHardwareKeyboardMode] to return NO in the following tests:

WKWebViewAutofillTests.AutofillRequiresInputSession
DragAndDropTests.ExternalSourceJPEGOnly
DragAndDropTests.ExternalSourceUTF8PlainTextOnly

so that the presence of a hardware keyboad does not effect their results. In <https://bugs.webkit.org/show_bug.cgi?id=190211>
we will look to swizzle this method for all test by default.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
10:36 AM Changeset in webkit [236750] by dino@apple.com
  • 48 edits
    27 deletes in trunk

Remove CSS Animation Triggers
https://bugs.webkit.org/show_bug.cgi?id=190175
<rdar://problem/44925626>

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Remove the never-properly specified CSS Animation Triggers.

  • Configurations/FeatureDefines.xcconfig:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSAnimationTriggerScrollValue.cpp: Removed.
  • css/CSSAnimationTriggerScrollValue.h: Removed.
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
(WebCore::createAnimationTriggerValue): Deleted.
(WebCore::animationTriggerValue): Deleted.

  • css/CSSProperties.json:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTrigger): Deleted.

  • css/CSSToStyleMap.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isAnimationTriggerScrollValue const): Deleted.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationValue):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeWebkitAnimationTrigger): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::sendScrollEvent):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setAnimationTriggersEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::animationTriggersEnabled const): Deleted.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::timeToNextService):
(WebCore::AnimationBase::getElapsedTime const):

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::animationWillBeRemoved):
(WebCore::CSSAnimationControllerPrivate::addToAnimationsDependentOnScroll): Deleted.
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsDependentOnScroll): Deleted.
(WebCore::CSSAnimationControllerPrivate::scrollWasUpdated): Deleted.
(WebCore::CSSAnimationController::wantsScrollUpdates const): Deleted.
(WebCore::CSSAnimationController::scrollWasUpdated): Deleted.

  • page/animation/CSSAnimationController.h:
  • page/animation/CSSAnimationControllerPrivate.h:

(WebCore::CSSAnimationControllerPrivate::wantsScrollUpdates const): Deleted.
(WebCore::CSSAnimationControllerPrivate::scrollPosition const): Deleted.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::hasScrollTriggeredAnimation const): Deleted.

  • platform/animation/Animation.cpp:

(WebCore::Animation::Animation):
(WebCore::Animation::operator=):
(WebCore::Animation::animationsMatch const):

  • platform/animation/Animation.h:

(WebCore::Animation::isTimingFunctionSet const):
(WebCore::Animation::isEmpty const):
(WebCore::Animation::clearTimingFunction):
(WebCore::Animation::clearAll):
(WebCore::Animation::animationMode const):
(WebCore::Animation::setAnimationMode):
(WebCore::Animation::initialTimingFunction):
(WebCore::Animation::isTriggerSet const): Deleted.
(WebCore::Animation::clearTrigger): Deleted.
(WebCore::Animation::trigger const): Deleted.
(WebCore::Animation::setTrigger): Deleted.
(WebCore::Animation::initialTrigger): Deleted.

  • platform/animation/AnimationTrigger.h: Removed.
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::animationCanBeAccelerated const):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Remove a bunch of tests that no longer have an implementation.

  • TestExpectations:
  • animations/trigger-computed-style-expected.txt: Removed.
  • animations/trigger-computed-style.html: Removed.
  • animations/trigger-container-scroll-boundaries-expected.txt: Removed.
  • animations/trigger-container-scroll-boundaries.html: Removed.
  • animations/trigger-container-scroll-empty-expected.txt: Removed.
  • animations/trigger-container-scroll-empty.html: Removed.
  • animations/trigger-container-scroll-simple-expected.txt: Removed.
  • animations/trigger-container-scroll-simple.html: Removed.
  • animations/trigger-parsing-expected.txt: Removed.
  • animations/trigger-parsing.html: Removed.
  • fast/css/compare-animation-trigger-expected.txt: Removed.
  • fast/css/compare-animation-trigger.html: Removed.
  • legacy-animation-engine/animations/trigger-computed-style-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-computed-style.html: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-boundaries-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-boundaries.html: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-empty-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-empty.html: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-simple-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-simple.html: Removed.
  • legacy-animation-engine/animations/trigger-parsing-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-parsing.html: Removed.
  • legacy-animation-engine/fast/css/compare-animation-trigger-expected.txt: Removed.
  • legacy-animation-engine/fast/css/compare-animation-trigger.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wincairo/TestExpectations:
10:32 AM Changeset in webkit [236749] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

REGRESSION(r236662): Fix -Wformat warnings in CacheStorageEngineCaches.cpp
https://bugs.webkit.org/show_bug.cgi?id=190205

Reviewed by Chris Dumez.

Passing enums to %d is not kosher, at least not according to GCC's -Wformat. Avoid it.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::initialize):
(WebKit::CacheStorage::Caches::readCachesFromDisk):
(WebKit::CacheStorage::Caches::writeCachesToDisk):

10:08 AM Changeset in webkit [236748] by commit-queue@webkit.org
  • 39 edits
    1 delete in trunk

Unreviewed, rolling out r236624 and r236671.
https://bugs.webkit.org/show_bug.cgi?id=190207

The change in r236624 introduced crashes on the bots
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"Refactoring: eliminate raw pointer usage in Fullscreen code"
https://bugs.webkit.org/show_bug.cgi?id=188747
https://trac.webkit.org/changeset/236624

"Unify implementation in VideoFullscreenInterfaceAVKit"
https://bugs.webkit.org/show_bug.cgi?id=190091
https://trac.webkit.org/changeset/236671

9:46 AM Changeset in webkit [236747] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase::invokeOperationAndTransactionTimer()
https://bugs.webkit.org/show_bug.cgi?id=190178

Reviewed by Chris Dumez.

This would help debug rdar://problem/44902833.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):

9:15 AM Changeset in webkit [236746] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

WebPageProxy::reattachToWebProcess cleanups
https://bugs.webkit.org/show_bug.cgi?id=189881

Reviewed by Chris Dumez.

Change the factoring to separate swap and crash code paths into different functions.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::swapToWebProcess):

Separate function for the swap case.

(WebKit::WebPageProxy::finishAttachingToWebProcess):

Factor the common parts here.

(WebKit::WebPageProxy::continueNavigationInNewProcess):

  • UIProcess/WebPageProxy.h:
8:55 AM Changeset in webkit [236745] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[WPE] Enable more Cache Storage and Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=190198

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

  • platform/wpe/TestExpectations: Unskip most tests and add expectations for a few of them.
8:50 AM Changeset in webkit [236744] by Chris Dumez
  • 2 edits in trunk/PerformanceTests

Regression(r236613): Parser/html-parser.html performance test is failing
https://bugs.webkit.org/show_bug.cgi?id=190201

Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
same origin, so that calls to document.open() / document.write() succeed.

  • Parser/html-parser.html:
8:43 AM Changeset in webkit [236743] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] Use our own check of flatpak repos
https://bugs.webkit.org/show_bug.cgi?id=190194

Allowing us to not mess up with user installation
and "--assumeyes" everywhere.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

  • flatpak/flatpakutils.py:

(FlatpakPackage.init):
(FlatpakPackage.install):
(FlatpakPackage.update):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):

8:05 AM Changeset in webkit [236742] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Enable more Cache Storage and Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=190196

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

  • platform/gtk/TestExpectations: Unskip most tests are add some failure annotations.
7:19 AM Changeset in webkit [236741] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r236719.
https://bugs.webkit.org/show_bug.cgi?id=190197

this revision caused 39 layout test failures that tested for
scrolling, a bug was also not present in the commit or change
log. (Requested by Truitt on #webkit).

Reverted changeset:

"Unreviewed, fix unused variable in
RenderLayer::updateScrollableAreaSet"
https://trac.webkit.org/changeset/236719

7:02 AM Changeset in webkit [236740] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.22.0

WPE WebKit 2.22.0

7:01 AM Changeset in webkit [236739] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.22.0 release.

build-releng/..:

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

build-releng/../Source/WebKit:

  • wpe/NEWS: Add release notes for 2.22.0.
7:01 AM Changeset in webkit [236738] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source

wip

6:42 AM Changeset in webkit [236737] by Caio Lima
  • 7 edits in trunk

[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
https://bugs.webkit.org/show_bug.cgi?id=190033

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-to-string.js:

Source/JavaScriptCore:

The implementation of JSBigInt::toStringToGeneric doesn't handle power
of 2 radix when JSBigInt length is >= 2. To handle such cases, we
implemented JSBigInt::toStringBasePowerOfTwo that follows the
algorithm that groups bits using mask of (2 n) - 1 to extract every
digit.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::toString):
(JSC::JSBigInt::toStringBasePowerOfTwo):

  • runtime/JSBigInt.h:

Source/WTF:

  • wtf/MathExtras.h:

(WTF::ctz32):

5:43 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
5:43 AM Changeset in webkit [236736] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236735 - [MSE][GStreamer] Add h264parse to accept MP4 without stss
https://bugs.webkit.org/show_bug.cgi?id=190143

Reviewed by Xabier Rodriguez-Calvar.

The MP4 file used in this URL does not contain a stss (Sync Sample
Box). In consequence, in acordance with the ISO BMFF spec, all samples
are assumed to be sync frames... But in this case that is not true,
it's just that the file is wrong (e.g. created with a buggy muxer).

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

The way it works in other browsers is because instead of trusting the
MP4 stss table, they rely on parsing the h264 frames. We can do that
too.

This patch also changes RELEASE_ASSERT() when creating the parsers
to GLib criticals.

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

(WebCore::createOptionalParserForFormat):

5:27 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:57 AM Changeset in webkit [236735] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Add h264parse to accept MP4 without stss
https://bugs.webkit.org/show_bug.cgi?id=190143

Reviewed by Xabier Rodriguez-Calvar.

The MP4 file used in this URL does not contain a stss (Sync Sample
Box). In consequence, in acordance with the ISO BMFF spec, all samples
are assumed to be sync frames... But in this case that is not true,
it's just that the file is wrong (e.g. created with a buggy muxer).

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

The way it works in other browsers is because instead of trusting the
MP4 stss table, they rely on parsing the h264 frames. We can do that
too.

This patch also changes RELEASE_ASSERT() when creating the parsers
to GLib criticals.

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

(WebCore::createOptionalParserForFormat):

4:47 AM Changeset in webkit [236734] by yusukesuzuki@slowstart.org
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Add branchIfNaN and branchIfNotNaN
https://bugs.webkit.org/show_bug.cgi?id=190122

Reviewed by Mark Lam.

Add AssemblyHelpers::{branchIfNaN, branchIfNotNaN} to make code more readable.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::getIntTypedArrayStoreOperand):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::purifyNaN):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNaN):
(JSC::AssemblyHelpers::branchIfNotNaN):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitFloatTypedArrayGetByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

4:31 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:29 AM Changeset in webkit [236733] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236721 - [GStreamer][playbin3] Stream tag lists leaks
https://bugs.webkit.org/show_bug.cgi?id=190192

Reviewed by Xabier Rodriguez-Calvar.

The gst_stream_get_tags() result is transfer-full, so needs to be adopted to prevent a leak.
Also check the tags list pointer which might be NULL in some cases.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

4:29 AM Changeset in webkit [236732] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236668 - [GStreamer] Fix abort in gst_sample_get_info()
https://bugs.webkit.org/show_bug.cgi?id=190135

Reviewed by Philippe Normand.

A flush can occur before any frame has finished decoding -- especially
in tests, where actions on the player often occur in quick succession.

Therefore, the code must not assume by the time a flush occurs any
frame has reached the sink. This patch fixes a case when such wrong
assumption was causing gst_sample_get_info() to abort (crashing
WebKit).

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::createGLAppSink):

4:26 AM Changeset in webkit [236731] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK] Theming of authentication dialog breaks with themes other than Adwaita
https://bugs.webkit.org/show_bug.cgi?id=190117

Reviewed by Michael Catanzaro.

Adds the missing GTK_STYLE_CLASS_BACKGROUND to the WebKitWebViewDialog
widget, which was missing for GTK+ 3.20 or newer, and set the widget
as app-paintable to avoid the base class paint method to add an opaque
background.

Thanks to Benjamin Otte for the guidance to debug the theming issues.

  • UIProcess/API/gtk/WebKitWebViewDialog.cpp:

(webkitWebViewDialogDraw): Remove the style context save/restore, it
is unneeded because the style classes are set at widget construction
time and not changed ever after.
(webkitWebViewDialogConstructed): Mark the widget as app-paintable to
avoid the base widget paint operation to fill the whole background,
because the dialog widget paints the translucent overlay itself; and
also add the missing GTK_STYLE_CLASS_BACKGROUND class at construction
when building against GTK+ 3.20 or newer.

4:22 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:18 AM Changeset in webkit [236730] by eric.carlson@apple.com
  • 58 edits in trunk/Source

[MediaStream] RealtimeMediaSource should be able to vend hashed IDs
https://bugs.webkit.org/show_bug.cgi?id=190142
<rdar://problem/44911109>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, covered by existing tests.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update order of parameters passed
to base class.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::start): ASSERT if document.deviceIDHashSalt is not the same
as passed salt.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::getSettings const): Don't need to hash ID.
(WebCore::MediaStreamTrack::getCapabilities const): Ditto.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow): Pass hash salt to createMediaStream.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource): Update order of parameters passed
to base class.

  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto.

  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Ditto.

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource): Calculate hashed ID.
(WebCore::RealtimeMediaSource::selectSettings): Use m_hashedID.
(WebCore::RealtimeMediaSource::hashedId const): New.
(WebCore::RealtimeMediaSource::deviceIDHashSalt const): New.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::createMediaStream): Take hash salt, pass it when creating
a source.
(WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto.

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::RealtimeVideoSource): Update parameters.

  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::GStreamerAudioCaptureSource::create): Ditto.
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): Ditto.

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::create): Ditto.
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): Ditto.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource): Ditto.

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:

(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource): Ditto.

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

(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.
(WebCore::AVVideoCaptureSource::settings): Use hashedId to set device ID.
(WebCore::AVVideoCaptureSource::capabilities): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::create): Update parameters.
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto.
(WebCore::CoreAudioCaptureSource::capabilities): Use hashedId to set device ID.
(WebCore::CoreAudioCaptureSource::settings): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Update parameters.

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac): Ditto.

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

(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::create): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update logging.
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Ditto.

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

(WebCore::WindowDisplayCaptureSourceMac::create): Update parameters.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::settings): Use hashedId to set device ID.
(WebCore::MockRealtimeAudioSource::capabilities): Ditto.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::create): Update parameters.
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto.
(WebCore::MockRealtimeVideoSource::capabilities): Use hashedId to set device ID.
(WebCore::MockRealtimeVideoSource::settings): Ditto.

  • platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MediaConstraints>::encode):
(IPC::ArgumentCoder<MediaConstraints>::decode):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::Source):
(WebKit::UserMediaCaptureManager::createCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
4:15 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:14 AM Changeset in webkit [236729] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Merge r236716 - [GStreamer][MSE] Ubuntu LTS build broken since r236409
https://bugs.webkit.org/show_bug.cgi?id=190036

Reviewed by Michael Catanzaro.

Interrupt the build if MSE is enabled but no supported (1.14)
GStreamer version was found.

  • Source/cmake/GStreamerChecks.cmake:
4:12 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:12 AM Changeset in webkit [236728] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236717 - [MSE][GStreamer] Make same thread assert non-release
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::AppendPipeline::handleNewAppsinkSample):

4:12 AM Changeset in webkit [236727] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236547 - [MSE][GStreamer] Use sentinel buffer to detect end of append
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Philippe Normand.

This patch introduces a new mechanism to detect when an append has
been consumed completely by the demuxer. It takes advantage of the
fact that buffer pushing is synchronous: both the appsrc and the
demuxer live in the same streaming thread. When appsrc pushes a
buffer, it's actually making a qtdemux function call (it calls its
"chain" function). The demuxer will return from that call when it has
finished processing that buffer; only then the control returns to
appsrc, that can push the next buffer.

By pushing an additional buffer and capturing it in a probe we can
detect reliably when the previous buffer has been processed.
Because the pipeline only has one thread, at this point no more frames
can arrive to the appsink.

This replaces the old method of detecting end of append which relied
on the need-data event, which is more difficult to handle correctly
because it fires whenever the appsrc is empty (or below a given
level), which also happens when a buffer has not been pushed yet or
in response to a flush.

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

(WebCore::EndOfAppendMeta::init):
(WebCore::EndOfAppendMeta::transform):
(WebCore::EndOfAppendMeta::free):
(WebCore::AppendPipeline::staticInitialization):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived): Deleted.:
(WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::checkEndOfAppend): Deleted.
(WebCore::AppendPipeline::setAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::removeAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::reportAppsrcNeedDataReceived): Deleted.
(WebCore::appendPipelineAppsrcDataLeaving): Deleted.
(WebCore::appendPipelineAppsrcNeedData): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
4:08 AM Changeset in webkit [236726] by Adrian Perez de Castro
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236399 - [MSE][GStreamer] Use no-more-pads event for noticing initialization segments
https://bugs.webkit.org/show_bug.cgi?id=189868

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Fixes the following YTTV 2018 tests:
62.VideoDimensionVP9
63.PlaybackStateVP9

This removes the hack that was making supporting multiple tracks in
the same file in MSE impossible.

For WebM, this GStreamer patch is required:
https://bugzilla.gnome.org/show_bug.cgi?id=797187
"matroskademux: Emit no-more-pads after parsing Tracks"

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

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::demuxerNoMorePads):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::appendPipelineDemuxerNoMorePadsFromAnyThread):
(WebCore::appendPipelineDemuxerNoMorePads):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

Tools:

Added patch from https://bugzilla.gnome.org/show_bug.cgi?id=797187

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Added.
4:07 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:45 AM Changeset in webkit [236725] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Blacklist more tests that are requiring webrtc <-> webaudio bridging
https://bugs.webkit.org/show_bug.cgi?id=189829

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-02
Reviewed by Alejandro G. Castro.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:39 AM Changeset in webkit [236724] by Wenson Hsieh
  • 22 edits
    2 copies
    1 add in trunk

[macOS] Implement a way for the UI process to request typing attributes at the current selection
https://bugs.webkit.org/show_bug.cgi?id=189983
<rdar://problem/44648705>

Reviewed by Ryosuke Niwa.

Source/WebKit:

Implements -[WKWebView typingAttributesWithCompletionHandler:], which asynchronously retrieves an NSDictionary
containing the typing attributes at the start of the current selection. This is a new asynchronous text input
client hook on macOS that is needed in order to support NSInspectorBar on WKWebView.

At a high level, this patch builds on top of refactoring done in r236445 to make it possible to send typing
attributes from the web process to the UI process, and then adds plumbing in the WebKit2 client layer to surface
typing attributes to WKWebView on macOS.

Tests: FontManagerTests.TypingAttributesAfterSubscriptAndSuperscript

FontManagerTests.ChangeTypingAttributesWithInspectorBar
FontManagerTests.ChangeAttributesWithFontEffectsBox

  • Platform/spi/mac/AppKitSPI.h:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FontAttributes>::encode):
(IPC::ArgumentCoder<FontAttributes>::decode):

Implement IPC coding support for FontAttributes.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/mac/ArgumentCodersMac.h:
  • Shared/mac/ArgumentCodersMac.mm:

(IPC::encode):
(IPC::decode):

Add the ability to encode and decode UIFont. This allows Cocoa platforms to send FontAttributes.font over IPC
with a single call to IPC::encode/IPC::decode.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView typingAttributesWithCompletionHandler:]):

Add plumbing to WebViewImpl.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::selectionDidChange):

Update the NSInspectorBar on selection change, but only if it is present and visible, and WKWebView is currently
first responder.

(WebKit::WebViewImpl::typingAttributesWithCompletionHandler):

Call into WebPageProxy to retrieve FontAttributes from the web process, and invoke the callback with an
NSDictionary constructed from the retrieved FontAttributes.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::fontAttributesCallback):

Add plumbing to retrieve FontAttributes from the web process at the current selection. Additionally, cache the
font attributes to avoid doing extra work during subsequent requests.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::cachedFontAttributesAtSelectionStart const):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::editorStateChanged):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::editorStateChanged):

Invalidate cached font attributes.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestFontAttributesAtSelectionStart):

Use the currently focused frame's Editor to compute FontAttributes at the current selection, and send the
computed FontAttributes back to the UI process.

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

Tools:

Adds new FontManagerTests that exercise -typingAttributesWithCompletionHandler:. See below for more detail.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

Add a new test that exercises font attribute modification via inspector bar. Also, add a new test that checks
typing attributes when using subscript/superscript/unscript. Lastly, augment an existing NSFontPanel test to
additionally check that shadowed text and strike-through are reflected in typing attributes.

(-[FontManagerTestWKWebView inspectorBarItemIdentifiers]):
(-[TestWKWebView typingAttributes]):

Add a synchronous wrapper around -typingAttributesWithCompletionHandler: by spinning the runloop.

(-[TestWKWebView collapseToStart]):
(webViewForFontManagerTesting):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/mac/TestInspectorBar.h: Copied from Tools/TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h.
  • TestWebKitAPI/mac/TestInspectorBar.mm: Added.

Introduce subclasses of __InspectorBarItemController and NSInspectorBar for testing inspector bar interaction.

(-[TestInspectorBarItemController initWithInspectorBar:]):
(-[TestInspectorBarItemController inspectorBar]):
(-[TestInspectorBarItemController updateSelectedAttributes]):
(-[TestInspectorBar initWithWebView:]):
(+[TestInspectorBar standardItemControllerClass]):
(+[TestInspectorBar standardTextItemIdentifiers]):
(-[TestInspectorBar _setStyleControlSelected:atIndex:]):
(-[TestInspectorBar chooseFontSize:]):
(-[TestInspectorBar chooseFontFamily:]):
(-[TestInspectorBar _chooseColor:inColorWell:]):
(-[TestInspectorBar chooseForegroundColor:]):
(-[TestInspectorBar chooseBackgroundColor:]):
(-[TestInspectorBar formatBold:]):
(-[TestInspectorBar formatItalic:]):
(-[TestInspectorBar formatUnderline:]):

Add helper methods to TestInspectorBar to simulate interacting with various controls (e.g. color wells and font
styling controls).

(-[TestInspectorBar itemController]):
(-[TestInspectorBar setItemController:]):

3:38 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:35 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:17 AM Changeset in webkit [236723] by Basuke Suzuki
  • 2 edits
    7 adds in trunk/LayoutTests

[WinCairo] Enable some wpt tests.
https://bugs.webkit.org/show_bug.cgi?id=190129

Unreviewed test gardening..

  • platform/wincairo/TestExpectations:
  • platform/wincairo/http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click-expected.txt: Added.
  • platform/wincairo/http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href-expected.txt: Added.
2:47 AM Changeset in webkit [236722] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Flatpak] Implement icecream and ccache support
https://bugs.webkit.org/show_bug.cgi?id=190146

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-02
Reviewed by Alejandro G. Castro.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.save_config):
(WebkitFlatpak):
(WebkitFlatpak.setup_ccache):
(WebkitFlatpak.setup_icecc):
(WebkitFlatpak.setup_dev_env):

  • flatpak/org.webkit.WebKit.yaml:
2:43 AM Changeset in webkit [236721] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer][playbin3] Stream tag lists leaks
https://bugs.webkit.org/show_bug.cgi?id=190192

Reviewed by Xabier Rodriguez-Calvar.

The gst_stream_get_tags() result is transfer-full, so needs to be adopted to prevent a leak.
Also check the tags list pointer which might be NULL in some cases.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

2:32 AM Changeset in webkit [236720] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, fix missing return value in TestController::keyExistsInKeychain

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::keyExistsInKeychain):

2:30 AM Changeset in webkit [236719] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix unused variable in RenderLayer::updateScrollableAreaSet

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const): This is a prepare-ChangeLog bug. I don't
have any changes in this function....

2:29 AM Changeset in webkit [236718] by Basuke Suzuki
  • 2 edits in trunk/Tools

[WinCairo] Enable WPT tests environment.
https://bugs.webkit.org/show_bug.cgi?id=190128

Reviewed by Youenn Fablet.

Escaping backslash of the path not to confuse the JSON parser.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._prepare_config):

2:20 AM Changeset in webkit [236717] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Make same thread assert non-release
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::AppendPipeline::handleNewAppsinkSample):

1:04 AM WebKitGTK/2.22.x edited by Philippe Normand
(diff)
1:02 AM Changeset in webkit [236716] by Philippe Normand
  • 2 edits in trunk

[GStreamer][MSE] Ubuntu LTS build broken since r236409
https://bugs.webkit.org/show_bug.cgi?id=190036

Reviewed by Michael Catanzaro.

Interrupt the build if MSE is enabled but no supported (1.14)
GStreamer version was found.

  • Source/cmake/GStreamerChecks.cmake:
1:00 AM Changeset in webkit [236715] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: replace constant numbers with their associated name on WebGL contexts
https://bugs.webkit.org/show_bug.cgi?id=190026

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.constantNameForParameter): Added.
(WI.RecordingAction.prototype.getColorParameters):
(WI.RecordingAction.prototype.getImageParameters):
Drive-by: add additional swatches to color/image arguments for WebGL actions.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
Drive-by: ensure that the WI.RecordingContentView is showing before applying the action.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._generateDOM.createParameterElement):
(WI.RecordingActionTreeElement._generateDOM):

  • UserInterface/Views/RecordingActionTreeElement.css:

(.item.action > .titles .parameter.constant): Added.

Note: See TracTimeline for information about the timeline view.