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

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

Note: See TracTimeline for information about the timeline view.