WebKit-https.git
2 years ago[MediaStream] Clean up RealtimeMediaSource settings change handling
eric.carlson@apple.com [Sun, 30 Sep 2018 14:32:15 +0000 (14:32 +0000)]
[MediaStream] Clean up RealtimeMediaSource settings change handling
https://bugs.webkit.org/show_bug.cgi?id=189998
<rdar://problem/44797884>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, updated webrtc/video-disabled-black.html.

* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::Source):
(WebCore::CanvasCaptureMediaStreamTrack::Source::settings):
(WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized):
* Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
* platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
(WebCore::RealtimeIncomingVideoSource::settings):
(WebCore::RealtimeIncomingVideoSource::settingsDidChange):
* platform/mediastream/RealtimeIncomingVideoSource.h:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::settingsDidChange):
(WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers):
(WebCore::RealtimeMediaSource::setSize):
(WebCore::RealtimeMediaSource::setFrameRate):
(WebCore::RealtimeMediaSource::setAspectRatio):
(WebCore::RealtimeMediaSource::setFacingMode):
(WebCore::RealtimeMediaSource::setVolume):
(WebCore::RealtimeMediaSource::setSampleRate):
(WebCore::RealtimeMediaSource::setSampleSize):
(WebCore::RealtimeMediaSource::setEchoCancellation):
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
(WebCore::GStreamerAudioCaptureSource::settingsDidChange):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::settingsDidChange):
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::settingsDidChange):
* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::settingsDidChange):
* platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::settingsDidChange):
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample):
* platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::settingsDidChange):
* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::settingsDidChange):

Source/WebKit:

* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::setSettings):

LayoutTests:

* webrtc/video-disabled-black.html:

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

2 years ago[MediaStream] Use display-specific capture factories
eric.carlson@apple.com [Sun, 30 Sep 2018 07:02:39 +0000 (07:02 +0000)]
[MediaStream] Use display-specific capture factories
https://bugs.webkit.org/show_bug.cgi?id=190043
<rdar://problem/44834412>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, no change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::AudioCaptureFactory::~AudioCaptureFactory): Deleted.
(WebCore::RealtimeMediaSource::VideoCaptureFactory::~VideoCaptureFactory): Deleted.
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream):
(WebCore::RealtimeMediaSourceCenter::getDisplayMediaDevices):
* platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::setAudioFactory):
(WebCore::RealtimeMediaSourceCenter::unsetAudioFactory):
* platform/mediastream/RealtimeMediaSourceFactory.cpp: Added.
(WebCore::SingleSourceFactory::setActiveSource):
(WebCore::SingleSourceFactory::unsetActiveSource):
* platform/mediastream/RealtimeMediaSourceFactory.h: Added.
(WebCore::SingleSourceFactory::activeSource):
(WebCore::VideoCaptureFactory::setVideoCapturePageState):
(WebCore::DisplayCaptureFactory::setDisplayCapturePageState):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::libWebRTCVideoCaptureSourceFactory):
(WebCore::libWebRTCDisplayCaptureSourceFactory):
(WebCore::GStreamerVideoCaptureSource::factory):
(WebCore::GStreamerVideoCaptureSource::displayFactory):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
* platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp:
(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactory):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactory):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactory):
* platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::factory):
* platform/mediastream/mac/CoreAudioCaptureSource.h:
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::videoCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterMac::audioCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterMac::audioFactory):
(WebCore::RealtimeMediaSourceCenterMac::videoFactory):
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactory):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
* platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource):
(WebCore::MockRealtimeAudioSource::startProducingData):
(): Deleted.
(WebCore::mockAudioCaptureSourceFactory): Deleted.
(WebCore::MockRealtimeAudioSource::factory): Deleted.
* platform/mock/MockRealtimeAudioSource.h:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState):
(WebCore::MockRealtimeMediaSourceCenter::audioFactory):
(WebCore::MockRealtimeMediaSourceCenter::videoFactory):
(WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactory):
* platform/mock/MockRealtimeMediaSourceCenter.h:
* platform/mock/MockRealtimeVideoSource.cpp:
(): Deleted.
(WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState): Deleted.
(WebCore::mockVideoCaptureSourceFactory): Deleted.
(WebCore::MockRealtimeVideoSource::factory): Deleted.
* platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

* WebProcess/cocoa/UserMediaCaptureManager.h:

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

2 years agoUnreviewed, rolling out r236631.
commit-queue@webkit.org [Sat, 29 Sep 2018 17:40:17 +0000 (17:40 +0000)]
Unreviewed, rolling out r236631.
https://bugs.webkit.org/show_bug.cgi?id=190112

Caused various eventSender tests, including fast/css/pseudo-
active-style-sharing*, to fail (Requested by smfr on #webkit).

Reverted changeset:

"Regression(r236512): http/tests/navigation/keyboard-events-
during-provisional-navigation.html is flaky"
https://bugs.webkit.org/show_bug.cgi?id=190052
https://trac.webkit.org/changeset/236631

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

2 years ago[css-grid] Properly align items next to collapsed tracks with gutters
commit-queue@webkit.org [Sat, 29 Sep 2018 12:11:17 +0000 (12:11 +0000)]
[css-grid] Properly align items next to collapsed tracks with gutters
https://bugs.webkit.org/show_bug.cgi?id=190089

Patch by Oriol Brufau <obrufau@igalia.com> on 2018-09-29
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import grid-gutters-013.html and reference from WPT.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-gutters-013.html

* web-platform-tests/css/css-grid/alignment/grid-gutters-013-expected.xht: Added.
* web-platform-tests/css/css-grid/alignment/grid-gutters-013.html: Added.

Source/WebCore:

gridAreaPositionForInFlowChild could return a wrong end position for
grid items adjacent to a collapsed track, because it didn't take into
account that gutters collapse in that case. Therefore, "center" or
"end" alignments displayed the item at the wrong position.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-gutters-013.html

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::gridAreaPositionForInFlowChild const):

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

2 years agoAdd yasm as third party tool for libwebrtc compilation
youenn@apple.com [Sat, 29 Sep 2018 11:52:20 +0000 (11:52 +0000)]
Add yasm as third party tool for libwebrtc compilation
https://bugs.webkit.org/show_bug.cgi?id=190025

Reviewed by Eric Carlson.

Add yasm source code and build the yasm executable as it is needed for libvpx compilati

* Source/third_party/yasm-1.3.0: Added.
* libwebrtc.xcodeproj/project.pbxproj:

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

2 years ago[PSON] Deal with the drawing area potentially being null in WebFrameLoaderClient...
cdumez@apple.com [Sat, 29 Sep 2018 09:49:31 +0000 (09:49 +0000)]
[PSON] Deal with the drawing area potentially being null in WebFrameLoaderClient::transitionToCommittedForNewPage()
https://bugs.webkit.org/show_bug.cgi?id=190084
<rdar://problem/44844561>

Reviewed by Antti Koivisto.

Deal with the drawing area potentially being null in WebFrameLoaderClient::transitionToCommittedForNewPage(), as a
result of calling WebPage::tearDownDrawingAreaForSuspend().

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

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

2 years ago[GStreamer][MSE] Use GObject for GST_TRACE_OBJECT
aboya@igalia.com [Sat, 29 Sep 2018 09:43:00 +0000 (09:43 +0000)]
[GStreamer][MSE] Use GObject for GST_TRACE_OBJECT
https://bugs.webkit.org/show_bug.cgi?id=190045

Reviewed by Philippe Normand.

Passing a non-GObject object to GST_TRACE_OBJECT() can be
theoretically misunderstood by the GStreamer logging function, so this
patch avoids that.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
(WebCore::AppendPipeline::pushNewBuffer):

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

2 years ago[WHLSL] Fix build after r236635
mmaxfield@apple.com [Sat, 29 Sep 2018 06:55:01 +0000 (06:55 +0000)]
[WHLSL] Fix build after r236635
https://bugs.webkit.org/show_bug.cgi?id=189210

Unreviewed.

* WebGPUShadingLanguageRI/Intrinsics.js:
(Intrinsics.):
* WebGPUShadingLanguageRI/Test.js:
(tests.atomicsNull):
(tests.numThreads):
(tests.textureDimensionsNull):

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

2 years ago[ESNext][BigInt] Implement support for "&"
ticaiolima@gmail.com [Sat, 29 Sep 2018 04:55:40 +0000 (04:55 +0000)]
[ESNext][BigInt] Implement support for "&"
https://bugs.webkit.org/show_bug.cgi?id=186228

Reviewed by Yusuke Suzuki.

JSTests:

* stress/big-int-bitwise-and-general.js: Added.
(assert):
(assert.sameValue):
* stress/big-int-bitwise-and-jit.js: Added.
(let.assert.sameValue):
(bigIntBitAnd):
* stress/big-int-bitwise-and-memory-stress.js: Added.
(assert):
* stress/big-int-bitwise-and-to-primitive-precedence.js: Added.
(assert.sameValue):
(let.o.Symbol.toPrimitive):
(catch):
* stress/big-int-bitwise-and-type-error.js: Added.
(assert):
(assertThrowTypeError):
(let.o.valueOf):
(o.valueOf):
(o.toString):
(o.Symbol.toPrimitive):
* stress/big-int-bitwise-and-wrapped-value.js: Added.
(assert.sameValue):
(testBitAnd):
(let.o.Symbol.toPrimitive):
(o.valueOf):
(o.toString):

Source/JavaScriptCore:

This patch introduces support of BigInt into bitwise "&" operation.
We are also introducing the ValueBitAnd DFG node, that is responsible
to take care of JIT for non-Int32 operands. With the introduction of this
new node, we renamed the BitAnd node to ArithBitAnd. The ArithBitAnd
follows the behavior of ArithAdd and other arithmetic nodes, where
the Arith<op> version always results in Number (in the case of
ArithBitAnd, its is always an Int32).

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
* 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:
* 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::compileValueBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileArithBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileBitAnd): Deleted.
* jit/JIT.h:
* jit/JITArithmetic.cpp:
(JSC::JIT::emitBitBinaryOpFastPath):
(JSC::JIT::emit_op_bitand):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/JSBigInt.cpp:
(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::initialize):
(JSC::JSBigInt::createZero):
(JSC::JSBigInt::createFrom):
(JSC::JSBigInt::bitwiseAnd):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAnd):
(JSC::JSBigInt::absoluteOr):
(JSC::JSBigInt::absoluteAndNot):
(JSC::JSBigInt::absoluteAddOne):
(JSC::JSBigInt::absoluteSubOne):
* runtime/JSBigInt.h:
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::toBigIntOrInt32 const):

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

2 years agoAngled gradient backgrounds in body render vertically when body height is 0
commit-queue@webkit.org [Sat, 29 Sep 2018 03:29:04 +0000 (03:29 +0000)]
Angled gradient backgrounds in body render vertically when body height is 0
https://bugs.webkit.org/show_bug.cgi?id=177232
<rdar://problem/34548230>.

Patch by Zamiul Haque <zhaque@apple.com> on 2018-09-28
Reviewed by Tim Horton.

Source/WebCore:

Specifically, gradients displayed at an angle (ie. 45 degrees) are rendered
as if they are vertical when the body tag containing the gradient
has a height of 0. Other browsers do not render under these circumstances,
so WebKit was modified to follow in suit. The problem was due to layout sizes for
fill tiles being calculated with a minimum height of 1px. A simple change of the
minimum height and width to 0px was enough to bring about the desired behavior.

Tests: angled-background-repeating-gradient-rendering-vertical.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateFillTileSize const):

LayoutTests:

Added tests to make sure that angled background gradients inside of a
body tag of height 0 render as empty white screens.

* angled-background-repeating-gradient-rendering-vertical.html: Added.
* angled-background-repeating-gradient-rendering-vertical-expected.html: Added.

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

2 years ago[WHLSL] Allow uniform buffers to be used in the interpreter
mmaxfield@apple.com [Sat, 29 Sep 2018 02:27:54 +0000 (02:27 +0000)]
[WHLSL] Allow uniform buffers to be used in the interpreter
https://bugs.webkit.org/show_bug.cgi?id=189210

Reviewed by Filip Pizlo.

Every lvalue is associated with an address space, and the propagation of these address spaces
matches the propagation of lvalues. Luckily, there was already the infrastructure to do most
of this, so this patch just goes the last few yards. It also updates the standard library to
allow for writing into all writable address spaces for out-params.

* WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitAssignment):
(Checker.prototype._finishVisitingPropertyAccess):
* WebGPUShadingLanguageRI/Intrinsics.js:
(Intrinsics.):
(Intrinsics.checkFalse):
(Intrinsics):
* WebGPUShadingLanguageRI/StandardLibrary.js:
(let.standardLibrary):
* WebGPUShadingLanguageRI/Test.js:
(tests.threadArrayRefLoad):
(tests.threadArrayRefLoadIntLiteral):
(tests.deviceArrayRefLoad):
(tests.threadArrayRefStore):
(tests.deviceArrayRefStore):
(tests.deviceArrayRefStoreIntLiteral):
(tests.threadPointerLoad):
(tests.threadPointerStore):
(tests.devicePointerLoad):
(tests.devicePointerStore):
(tests.arrayLoad):
(tests.constantAddressSpace):
(tests.standardLibraryDevicePointers):
(tests.threadArrayLoad): Deleted.
(tests.threadArrayLoadIntLiteral): Deleted.
(tests.deviceArrayLoad): Deleted.
(tests.threadArrayStore): Deleted.
(tests.deviceArrayStore): Deleted.
(tests.deviceArrayStoreIntLiteral): Deleted.

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

2 years agoNo DOM API to instantiate an attachment for an img element
wenson_hsieh@apple.com [Sat, 29 Sep 2018 02:12:57 +0000 (02:12 +0000)]
No DOM API to instantiate an attachment for an img element
https://bugs.webkit.org/show_bug.cgi?id=189934
<rdar://problem/44743222>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds support for HTMLAttachmentElement.getAttachmentIdentifier, a function that internal WebKit clients can use
to ensure that an image element is backed by a unique _WKAttachment. See below for more details.

Tests:  WKAttachmentTests.AddAttachmentToConnectedImageElement
        WKAttachmentTests.ChangeFileWrapperForPastedImage
        WKAttachmentTests.ConnectImageWithAttachmentToDocument

* dom/Document.cpp:
(WebCore::Document::registerAttachmentIdentifier):

Add a new hook to register an empty _WKAttachment in the UI process with a given identifier. Used when creating
a new empty attachment to back an image element.

* dom/Document.h:
* editing/Editor.cpp:
(WebCore::Editor::registerAttachmentIdentifier):
(WebCore::Editor::notifyClientOfAttachmentUpdates):
* editing/Editor.h:
* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::getAttachmentIdentifier):

Creates an attachment element to back the image element, if an attachment does not already exist, and returns
the unique identifier. This also causes an empty corresponding _WKAttachment to be created in the client, whose
file wrapper determines the contents of the image.

(WebCore::HTMLAttachmentElement::ensureUniqueIdentifier):
(WebCore::HTMLAttachmentElement::hasEnclosingImage const):
(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

Add a helper that updates the source of the enclosing image element given a content type and image data, by
creating a new blob and blob URL.

* html/HTMLAttachmentElement.h:
* html/HTMLAttachmentElement.idl:
* html/HTMLImageElement.idl:

Rename webkitAttachmentIdentifier to just attachmentIdentifier.

* page/EditorClient.h:
(WebCore::EditorClient::registerAttachmentIdentifier):
(WebCore::EditorClient::didInsertAttachmentWithIdentifier):

Source/WebKit:

Makes some adjustments to support using _WKAttachment's file wrapper to change the contents of any image element
hosting the attachment in its shadow root. To do this, we add some plumbing to allow the UI process to update an
attachment element's enclosing image with data from its file wrapper.

* UIProcess/API/APIAttachment.cpp:
(API::Attachment::isEmpty const):
(API::Attachment::enclosingImageData const):

Helper method that creates a SharedBuffer representing image data for the attachment. Only returns a non-null
value for attachment elements that are enclosed within an image.

* UIProcess/API/APIAttachment.h:
* UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
(API::Attachment::enclosingImageData const):
(API::Attachment::isEmpty const):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _attachmentForIdentifier:]):

Add new SPI to request a _WKAttachment for a given unique identifier. Currently, this is only used for testing.

* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::platformRegisterAttachment):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifier):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):

Plumb whether or not the attachment is enclosed by an image from the web process to the UI process.

(WebKit::WebPageProxy::didRemoveAttachmentWithIdentifier):
(WebKit::WebPageProxy::didInsertAttachment): Deleted.
(WebKit::WebPageProxy::didRemoveAttachment):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::registerAttachmentIdentifier):
(WebKit::WebEditorClient::didInsertAttachmentWithIdentifier):

Update attachment attributes after inserting an attachment. This ensures that an attachment that was created and
later inserted via script into the document will be synced with state in the UI process, if the client has
changed the contents of the attachment.

* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateAttachmentAttributes):

Plumb attachment data from the UI process to the web process.

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

Tools:

Adds 3 new API tests in WKAttachmentTests:

`AddAttachmentToConnectedImageElement` verifies that an image element that's already in the document can gain an
attachment element via `HTMLAttachmentElement.getAttachmentIdentifier`.

`ChangeFileWrapperForPastedImage` verifies that an image that has been pasted produces a _WKAttachment in the UI
process, and changing the file wrapper of that _WKAttachment changes the pasted image.

`ConnectImageWithAttachmentToDocument` verifies that script can create an image element, ensure that it has an
attachment, and set a file wrapper for the generated _WKAttachment. Connecting the image to the document should
then result in an image element with the contents of the _WKAttachment's file wrapper.

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView imageElementSize]):
(-[TestWKWebView waitForImageElementSizeToBecome:]):
(TestWebKitAPI::TEST):
(-[TestWKWebView waitForAttachmentElementSizeToBecome:]): Deleted.

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

2 years agoThe return value of an OnBeforeUnloadEventHandler should always be coerced into a...
cdumez@apple.com [Sat, 29 Sep 2018 02:03:51 +0000 (02:03 +0000)]
The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString
https://bugs.webkit.org/show_bug.cgi?id=190090

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

* web-platform-tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-canceling-expected.txt:

Source/WebCore:

The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString:
- https://html.spec.whatwg.org/#onbeforeunloadeventhandler
- https://html.spec.whatwg.org/#the-event-handler-processing-algorithm (Step 5)

In particular, this means that returning false in an OnBeforeUnloadEventHandler should NOT
cancel the event when the event is a CustomEvent (and not a BeforeUnloadEvent). This is
because the return value cannot be false at:
- https://html.spec.whatwg.org/#the-event-handler-processing-algorithm (Step 5. Otherwise case).

No new tests, rebaselined existing test.

* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):

LayoutTests:

Update test that was returning a value in a beforeunload event listener instead of using an
event handler. The test needs to use an event handler (window.onbeforeunload) as an event
listener does not have a return value. I have verified that our behavior is consistent with
Chrome and Firefox on this test, both with an event listener and an event handler.

* fast/loader/form-submission-after-beforeunload-cancel.html:

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

2 years agoRenderLayer::removeOnlyThisLayer() should not call updateLayerPositions()
simon.fraser@apple.com [Sat, 29 Sep 2018 01:53:34 +0000 (01:53 +0000)]
RenderLayer::removeOnlyThisLayer() should not call updateLayerPositions()
https://bugs.webkit.org/show_bug.cgi?id=190093

Reviewed by Dean Jackson and Zalan Bujtas.

Source/WebCore:

It's wrong for RenderLayer::removeOnlyThisLayer() to call updateLayerPositions(),
because this is called at style update time, and layout will be stale.

It was added (see webkit.org/b/25252) so that opacity changes, which can destroy layers, correctly update
descendants. However, RenderStyle::changeRequiresLayout() checks for opacity <=> no opacity
changes and triggers layout accordingly, which will result in a full post-layout
updateLayerPositions().

This also revealed that changes to the "isolate" property fail to trigger any kind of style recalc or layout;
we need it to trigger layout (for now) because it affects z-order.

Covered by existing tests.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::removeOnlyThisLayer):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout const):

LayoutTests:

The ordering of the repaints changes.

blend-mode-turn-off-isolation-no-effect.html now issues a repaint, which is expected now.
Isolation is so rare that this is not a problem.

* css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
* css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt:
* css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt:
* fast/repaint/absolute-position-change-containing-block-expected.txt:

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

2 years agoRegression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigat...
cdumez@apple.com [Sat, 29 Sep 2018 01:38:26 +0000 (01:38 +0000)]
Regression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190052

Reviewed by Ryosuke Niwa.

Source/WebKit:

Introduce a new IPC::SendOption indicating that the IPC should always be sent asynchronously,
even if the connection is in fully synchronous mode. This is used by WebKitTestRunner for
all text outputting (e.g. console.log) is asynchronous, and thus in order.

* Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
* Platform/IPC/Connection.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePagePostMessageIgnoringFullySynchronousMode):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::postMessageIgnoringFullySynchronousMode):
* WebProcess/WebPage/WebPage.h:

Tools:

The test relies on EventSender to send events to the page synchronously to the page and then uses console.log
to log those events. It also uses console.log() before sending those events to indicate what the test is about
to do. Note that console.log() normally causes the WebKitTestRunner to send an asynchronous IPC to the UIProcess
so that it can log the message.
The issue is that EventSender uses IPC::SendOption::UseFullySynchronousModeForTesting when sending the
sync IPC to the UIProcess. This option causes follow-up *asynchronous* IPC sent from the synchronous IPC reply
handler to be transformed into synchronous IPC.
As a result, some of the console.log IPC ended up being asynchronous and some other ended up being synchronous.
Because synchronous and asynchronous IPC is not necessarily processed in-order by the UIProcess, the logged
messages may end up being out of order, leading to flakiness.

To address the issue, we now make sure that InjectedBundle::outputText() uses a new IPC::SendOption indicating
that the IPC should always be sent asynchronously, even if the connection is in fully synchronous mode. As a
result, all text outputing IPC to the UIProcess will be asynchronous, and thus in order.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::outputText):

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

2 years agoSkip debug assertion in ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsTh...
wilander@apple.com [Sat, 29 Sep 2018 01:36:27 +0000 (01:36 +0000)]
Skip debug assertion in ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain()
https://bugs.webkit.org/show_bug.cgi?id=190097
<rdar://problem/44877080>

Reviewed by Chris Dumez.

The change in https://bugs.webkit.org/show_bug.cgi?id=190055 causes a
re-classification that may trigger a debug assertion in
ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain().
We should skip the assertion for statistics model version 14 to avoid
this.

* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const):

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

2 years agocmake cannot run if python 2 isn't available
commit-queue@webkit.org [Sat, 29 Sep 2018 01:00:37 +0000 (01:00 +0000)]
cmake cannot run if python 2 isn't available
https://bugs.webkit.org/show_bug.cgi?id=190075

Patch by Mike Gorse <mgorse@alum.wpi.edu> on 2018-09-28
Reviewed by Michael Catanzaro.

* Source/cmake/WebKitCommon.cmake: Set Python_ADDITIONAL_VERSIONS
to 3, so that a python3 binary will be found.

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

2 years ago[WHLSL] Pointers should have automatically-generated equality checks
mmaxfield@apple.com [Sat, 29 Sep 2018 00:48:34 +0000 (00:48 +0000)]
[WHLSL] Pointers should have automatically-generated equality checks
https://bugs.webkit.org/show_bug.cgi?id=189986

Reviewed by Filip Pizlo.

C allows for pointer equality, and we need it so people can do null checks.
This is generated the same way all our other NativeFuncs are generated - by Checker
creating NativeFuncs inside CallExpression.resolve().

This patch also does some general cleanup.

* WebGPUShadingLanguageRI/All.js: Everything the late checker does is no longer necessary.
The last thing it was doing was making sure that only primitive types are in resources, but
it's totally reasonable to put structs and arrays in resources, so I removed this pass. We
still have to add a check to make sure resources can't live within resources, but I expect
that will be done in the same place that semantics are checked.
* WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:
(allocateAtEntryPoints.updateFunction.UpdateFunctions.prototype._addVariableDeclaration):
Name the global struct for debugging purposes.
* WebGPUShadingLanguageRI/CallExpression.js:
(CallExpression.prototype._resolveByInstantiation): Cleanup
(CallExpression.prototype._resolveWithOperatorAnderIndexer): Ditto
(CallExpression.prototype._resolveWithOperatorLength): Ditto
(CallExpression.prototype._resolveWithReferenceComparator): Add support to automatically
generate pointer equality NativeFuncs.
* WebGPUShadingLanguageRI/EPtr.js: Implement pointer equality in the interpreter.
* WebGPUShadingLanguageRI/LateChecker.js: Removed.
* WebGPUShadingLanguageRI/LayoutBuffers.js: Renamed from Tools/WebGPUShadingLanguageRI/LateCheckAndLayoutBuffers.js.
(layoutBuffers):
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj:
* WebGPUShadingLanguageRI/NativeFunc.js:
* WebGPUShadingLanguageRI/OperatorArrayRefLength.js:
(OperatorArrayRefLength.prototype.instantiateImplementation):
(OperatorArrayRefLength):
* WebGPUShadingLanguageRI/Prepare.js:
(let.prepare):
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/Test.html:
* WebGPUShadingLanguageRI/Test.js:
(tests.ternaryExpression):
(tests.break): Speed up testing time
(tests.doWhile): Ditto
(tests.forLoop): Ditto
(tests.atomics): Ditto
(tests.atomicsNull): Ditto
(tests.pointerEquality): Test pointer equality
(tests.standardLibraryDevicePointers):
(tests.devicePtrPtr): Deleted.
(tests.threadgroupPtrPtr): Deleted.
(tests.constantPtrPtr): Deleted.
* WebGPUShadingLanguageRI/index.html:

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

2 years agoWeb Inspector: crash in InspectorNetworkAgent::didReceiveResponse when loading denied...
drousso@apple.com [Sat, 29 Sep 2018 00:22:08 +0000 (00:22 +0000)]
Web Inspector: crash in InspectorNetworkAgent::didReceiveResponse when loading denied x-frame resources
https://bugs.webkit.org/show_bug.cgi?id=190046

Reviewed by Joseph Pecoraro.

Source/WebKit:

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
Send the sanitized `ResourceResponse` with the message so WebInspector is able to access it.

* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/Network/WebResourceLoader.messages.in:
(WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

LayoutTests:

* http/tests/inspector/network/resources/x-frame-options.php: Added.
* http/tests/inspector/network/x-frame-options-expected.txt: Added.
* http/tests/inspector/network/x-frame-options.html: Added.

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

2 years agoUnreviewed, rolling out r236620.
realdawei@apple.com [Sat, 29 Sep 2018 00:15:57 +0000 (00:15 +0000)]
Unreviewed, rolling out r236620.

broke internal Mac and iOS builds

Reverted changeset:

"Add yasm as third party tool for libwebrtc compilation"
https://bugs.webkit.org/show_bug.cgi?id=190025
https://trac.webkit.org/changeset/236620

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

2 years ago[WebAuthN] Polish WebAuthN auto-test environment
jiewen_tan@apple.com [Sat, 29 Sep 2018 00:02:39 +0000 (00:02 +0000)]
[WebAuthN] Polish WebAuthN auto-test environment
https://bugs.webkit.org/show_bug.cgi?id=189283
<rdar://problem/44117828>

Reviewed by Chris Dumez.

Source/WebCore:

This patch removes the old mocking mechanism.

Tests: http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html
       http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html
       http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html

* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::mockAuthenticatorCoordinator const): Deleted.
* testing/Internals.h:
* testing/Internals.idl:
* testing/MockAuthenticatorCoordinator.cpp: Removed.
* testing/MockAuthenticatorCoordinator.h: Removed.
* testing/MockAuthenticatorCoordinator.idl: Removed.

Source/WebKit:

This patch changes MockWebAuthenticationConfiguration.local to optional such that tests can express
absence of local authenticators.

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):
* UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::getUserConsent const):
(WebKit::MockLocalConnection::getAttestation const):
* UIProcess/WebAuthentication/Mock/MockLocalService.cpp:
(WebKit::MockLocalService::platformStartDiscovery const):
* UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:

Tools:

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebAuthenticationMockConfiguration):

LayoutTests:

This patch does the following few things:
1. Update tests that employ old mocking mechnism to the new one.
2. Move tests from http/tests/webauthn to http/wpt/webauthn. As a result, we have one unified place for
all WebAuthN tests: http/wpt/webauthn.
3. Add a helper function to check DOMException message as well.

* TestExpectations:
* http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Removed.
* http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Removed.
* http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https-expected.txt: Removed.
* http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https.html: Removed.
* http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Removed.
* http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Removed.
* http/tests/webauthn/resources/last-layer-frame.https.html: Removed.
* http/tests/webauthn/resources/util.js: Removed.
* http/wpt/credential-management/credentialscontainer-store-basics.https.html:
* http/wpt/webauthn/idl.https.html:
* 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-create-success.https-expected.txt: Removed.
* http/wpt/webauthn/public-key-credential-create-success.https.html: Removed.
* http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https.html.
* 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/public-key-credential-get-success.https-expected.txt: Removed.
* http/wpt/webauthn/public-key-credential-get-success.https.html: Removed.
* http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https.html.
* http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Added.
* http/wpt/webauthn/resources/last-layer-frame.https.html: Added.
* http/wpt/webauthn/resources/second-layer-frame.https.html: Renamed from LayoutTests/http/tests/webauthn/resources/second-layer-frame.https.html.
* http/wpt/webauthn/resources/util.js:
* platform/gtk/TestExpectations:
* platform/ios-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wpe/TestExpectations:

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

2 years agoRefactoring: eliminate raw pointer usage in Fullscreen code
jer.noble@apple.com [Fri, 28 Sep 2018 23:31:29 +0000 (23:31 +0000)]
Refactoring: eliminate raw pointer usage in Fullscreen code
https://bugs.webkit.org/show_bug.cgi?id=188747
<rdar://problem/43541164>

Reviewed by Alex Christensen.

Source/WebCore:

Two sources of raw pointers in the Fullscreen code:
- Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so
  they are passed around as raw references.
- Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and
  VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't
  be ref-able.

Make Model classes ref-able by adding ref() and deref() which call virtual refModel and
derefModel methods, overridden by implementing subclasses. Make every concrete observer
inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around
the client interface.

Since every Interface class now holds a strong reference to its Model classes, and each
Model class holds a weak reference to all its clients, no explicit invalidate() method
is necessary.

Notes:

- Since the weak pointer methods need to be able to downcast to the abstract base class,
  observers need to inherit publically (rather than privately) from those base classes.
- Media element Models should compose EventListener rather than inheriting from it, since
  EventListener has its own RefCount.
- WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when
  their underlying object is destroyed), so clients should be stored in a Vector instead.
- Interfaces should be given all required Refs at creation time, so that they can store
  those parameters as Refs instead of RefPtrs.

* platform/cocoa/PlaybackSessionInterface.h:
(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted.
* platform/cocoa/PlaybackSessionModel.h:
(WebCore::PlaybackSessionModel::ref):
(WebCore::PlaybackSessionModel::deref):
(WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted.
* platform/cocoa/PlaybackSessionModelMediaElement.h:
* platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::addClient):
(WebCore::PlaybackSessionModelMediaElement::removeClient):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices):
(WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted.
* platform/cocoa/VideoFullscreenChangeObserver.h:
(WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted.
* platform/cocoa/VideoFullscreenModel.h:
(WebCore::VideoFullscreenModel::ref):
(WebCore::VideoFullscreenModel::deref):
(WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted.
* platform/cocoa/VideoFullscreenModelVideoElement.h:
* platform/cocoa/VideoFullscreenModelVideoElement.mm:
(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):
(VideoFullscreenModelVideoElement::addClient):
(VideoFullscreenModelVideoElement::removeClient):
(VideoFullscreenModelVideoElement::setHasVideo):
(VideoFullscreenModelVideoElement::setVideoDimensions):
(VideoFullscreenModelVideoElement::willEnterPictureInPicture):
(VideoFullscreenModelVideoElement::didEnterPictureInPicture):
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture):
(VideoFullscreenModelVideoElement::willExitPictureInPicture):
(VideoFullscreenModelVideoElement::didExitPictureInPicture):
(VideoFullscreenModelVideoElement::handleEvent): Deleted.
* platform/ios/PlaybackSessionInterfaceAVKit.h:
(WebCore::PlaybackSessionInterfaceAVKit::create):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(): Deleted.
* platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted.
* platform/ios/VideoFullscreenInterfaceAVKit.h:
* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(VideoFullscreenInterfaceAVKit::create):
(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted.
(VideoFullscreenInterfaceAVKit::invalidate): Deleted.
* platform/ios/WebAVPlayerController.h:
* platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController delegate]):
(-[WebAVPlayerController playbackSessionInterface]):
(-[WebAVPlayerController setPlaybackSessionInterface:]):
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):
(VideoFullscreenControllerContext::willEnterPictureInPicture):
(VideoFullscreenControllerContext::didEnterPictureInPicture):
(VideoFullscreenControllerContext::failedToEnterPictureInPicture):
(VideoFullscreenControllerContext::willExitPictureInPicture):
(VideoFullscreenControllerContext::didExitPictureInPicture):
(VideoFullscreenControllerContext::setUpFullscreen):
* platform/mac/PlaybackSessionInterfaceMac.h:
* platform/mac/PlaybackSessionInterfaceMac.mm:
(WebCore::PlaybackSessionInterfaceMac::create):
(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
(WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted.
(WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted.
* platform/mac/VideoFullscreenInterfaceMac.h:
(WebCore::VideoFullscreenInterfaceMac::create):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):
* platform/mac/VideoFullscreenInterfaceMac.mm:
(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
(WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::clearMode):
(WebCore::VideoFullscreenInterfaceMac::invalidate):
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted.
* platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager togglePlayback]):
(-[WebPlaybackControlsManager setPlaying:]):
(-[WebPlaybackControlsManager isPlaying]):
(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit:

Adopt those Ref and WeakPtr changes made in WebCore.

* UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionModelContext::addClient):
(WebKit::PlaybackSessionModelContext::removeClient):
(WebKit::PlaybackSessionModelContext::durationChanged):
(WebKit::PlaybackSessionModelContext::currentTimeChanged):
(WebKit::PlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionModelContext::seekableRangesChanged):
(WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionModelContext::mutedChanged):
(WebKit::PlaybackSessionModelContext::volumeChanged):
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::invalidate):
(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):
* UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::create):
(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenModelContext::addClient):
(WebKit::VideoFullscreenModelContext::removeClient):
(WebKit::VideoFullscreenModelContext::willEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::willExitPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted.
* UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(WKFullScreenViewControllerPlaybackSessionModelClient::setInterface):
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _togglePiPAction:]):
* UIProcess/mac/WKFullScreenWindowController.mm:
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):
* WebProcess/cocoa/PlaybackSessionManager.h:
* WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted.
* WebProcess/cocoa/VideoFullscreenManager.h:
(WebKit::VideoFullscreenInterfaceContext::create):
(WebKit::VideoFullscreenInterfaceContext::createWeakPtr):
* WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::removeContext):

Source/WebKitLegacy/mac:

PlaybackSessionInterface no longer has an invalidate() method.

* WebView/WebView.mm:
(-[WebView _clearPlaybackControlsManager]):

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/WeakPtrContainer.h: Added.

LayoutTests:

Test was causing false pass results due to the webkitPresentationMode being correctly set
to "inline" during the close() operation; modify the test to only perform the close()
operation when the presetation mode is changed to "picture-in-picture".

* media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
* media/controls/ipad/resources/picture-in-picture.html:

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

2 years agoDrop support for cross-origin-window-policy header
cdumez@apple.com [Fri, 28 Sep 2018 23:18:28 +0000 (23:18 +0000)]
Drop support for cross-origin-window-policy header
https://bugs.webkit.org/show_bug.cgi?id=190081

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop support for cross-origin-window-policy header as this was never enabled and its design has
some issues we have not resolved. An alternative is being worked on but will be substantially
different so there is not much value in keeping this code around.

* bindings/js/JSDOMBindingSecurity.cpp:
* bindings/js/JSDOMBindingSecurity.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):
* bindings/js/JSDOMWindowCustom.h:
* bindings/js/JSRemoteDOMWindowCustom.cpp:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):
* bindings/scripts/IDLAttributes.json:
* dom/Document.cpp:
(WebCore::Document::canNavigate):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
* page/AbstractDOMWindow.cpp:
(WebCore::AbstractDOMWindow::AbstractDOMWindow):
* page/AbstractDOMWindow.h:
* page/DOMWindow.idl:
* page/Settings.yaml:
* platform/network/HTTPParsers.cpp:
* platform/network/HTTPParsers.h:

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
* UIProcess/API/C/WKPreferencesRef.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::frameBecameRemote):

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::crossOriginWindowPolicySupportEnabled):
(WebPreferences::setCrossOriginWindowPolicySupportEnabled):
* WebView.cpp:
(WebView::notifyPreferencesChanged):

Tools:

190081_DropCrossOriginWindowPolicy

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
* DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

* http/wpt/cross-origin-window-policy/allow-postmessage-expected.txt: Removed.
* http/wpt/cross-origin-window-policy/allow-postmessage-from-deny-expected.txt: Removed.
* http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html: Removed.
* http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html.headers: Removed.
* http/wpt/cross-origin-window-policy/allow-postmessage.html: Removed.
* http/wpt/cross-origin-window-policy/cross-origin-window-policy-header-expected.txt: Removed.
* http/wpt/cross-origin-window-policy/cross-origin-window-policy-header.html: Removed.
* http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target-expected.txt: Removed.
* http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target.html: Removed.
* http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target-expected.txt: Removed.
* http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target.html: Removed.
* http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html: Removed.
* http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html.headers: Removed.
* http/wpt/cross-origin-window-policy/resources/destination.html: Removed.
* http/wpt/cross-origin-window-policy/resources/navigate-parent-via-anchor.html: Removed.
* http/wpt/cross-origin-window-policy/resources/navigation-from-subframe-frame.py: Removed.
* http/wpt/cross-origin-window-policy/resources/serve-cross-origin-window-policy-header.py: Removed.
* http/wpt/cross-origin-window-policy/resources/utils.js: Removed.

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

2 years agoREGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out...
aestes@apple.com [Fri, 28 Sep 2018 23:13:38 +0000 (23:13 +0000)]
REGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out" as a value for -apple-pay-button-type
https://bugs.webkit.org/show_bug.cgi?id=190096

Reviewed by Ryosuke Niwa.

I changed "checkout" to "check-out" in r235754, but it somehow got flipped back to "checkout" in r236091.

* UserInterface/Models/CSSKeywordCompletions.js:

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

2 years agoDo not do automatic process prewarming while under memory pressure
cdumez@apple.com [Fri, 28 Sep 2018 23:09:32 +0000 (23:09 +0000)]
Do not do automatic process prewarming while under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=190082
<rdar://problem/39771424>

Reviewed by Geoffrey Garen.

Do not do automatic process prewarming while under memory pressure and
also terminate any prewarmed process when receiving a memory warning.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::handleMemoryPressureWarning):
* UIProcess/WebProcessPool.h:
* UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
(WebKit::installMemoryPressureHandler):

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

2 years agoAdd yasm as third party tool for libwebrtc compilation
youenn@apple.com [Fri, 28 Sep 2018 23:05:36 +0000 (23:05 +0000)]
Add yasm as third party tool for libwebrtc compilation
https://bugs.webkit.org/show_bug.cgi?id=190025

Reviewed by Eric Carlson.

Add yasm source code and build the yasm executable as it is needed for libvpx compilation.

* Source/third_party/yasm-1.3.0: Added.
* libwebrtc.xcodeproj/project.pbxproj:

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

2 years ago[iOS] Allow programmatic focus when hardware keyboard is attached
dbates@webkit.org [Fri, 28 Sep 2018 23:02:41 +0000 (23:02 +0000)]
[iOS] Allow programmatic focus when hardware keyboard is attached
https://bugs.webkit.org/show_bug.cgi?id=190017
<rdar://problem/42270463>

Reviewed by Wenson Hsieh.

Source/WebCore:

Add support for checking if the embedding client is WebKitTestRunner and export isDumpRenderTree()
so that we can make use of it from WebKit. We will make use of these functions to keep the current
behavior of disallowing programmatic focus when running tests in these apps. This is needed to
keep testing deterministic. Otherwise, test results would be dependent on whether a hardware
keyboard is attached. When running tests in Simulator.app the hardware keyboard may also not be
connected (i.e. Hardware > Keyboard > Connect Hardware Keyboard is disabled).

* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isWebKitTestRunner): Added.

Source/WebKit:

Make the experience of using iOS with a hardware keyboard more desktop-like by allowing
programmatic focusing of editable elements.

* Platform/spi/ios/UIKitSPI.h: Forward declare SPI.
* Shared/NativeWebKeyboardEvent.h:
* Shared/ios/NativeWebKeyboardEventIOS.mm:
(WebKit::isInHardwareKeyboardMode): Returns whether we are in hardware keyboard mode. In DumpRenderTree
and WebKitTestRunner this function always returns false to keep test results deterministic.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
Allow starting an input session if we are in hardware keyboard mode.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState const): Send the full editor state if we are in hardware
keyboard mode regardless of whether layout has been performed so that UIProcess can update UI,
including the position of the caret, immediately.

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

2 years agoREGRESSION(r236609): API tests for mso list preservation are failing
rniwa@webkit.org [Fri, 28 Sep 2018 22:32:56 +0000 (22:32 +0000)]
REGRESSION(r236609): API tests for mso list preservation are failing
https://bugs.webkit.org/show_bug.cgi?id=190095

Reviewed by Wenson Hsieh.

The regression was caused by appendNodeToPreserveMSOList called after an early return for not having renderer.
Clearly, comment & style elements coming from a MS word document wouldn't have a renderer.

Fixed the bug by changing the order.

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

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

2 years ago[WTF] Make isMainThread more reliable
yusukesuzuki@slowstart.org [Fri, 28 Sep 2018 22:32:34 +0000 (22:32 +0000)]
[WTF] Make isMainThread more reliable
https://bugs.webkit.org/show_bug.cgi?id=189880

Reviewed by Mark Lam.

.:

* Source/cmake/OptionsCommon.cmake:

Source/WTF:

isMainThread() relied on Thread::current(). This API becomes broken in Windows
when the Thread is about to be destroyed since TLS is already cleared. This causes
a bug since `isMainThread()` is called in Thread::didExit in Windows.

This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
or `pthread_self` instead.

We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
only happens in Windows since Windows calls TLS destructor for the main thread.

* WTF.xcodeproj/project.pbxproj:
* wtf/MainThread.cpp:
(WTF::initializeMainThread):
(): Deleted.
(WTF::isMainThread): Deleted.
(WTF::isMainThreadIfInitialized): Deleted.
* wtf/Platform.h:
* wtf/PlatformMac.cmake:
* wtf/Threading.cpp:
(WTF::Thread::didExit):
* wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
* wtf/generic/MainThreadGeneric.cpp:
(WTF::initializeMainThreadPlatform):
(WTF::isMainThread):
(WTF::isMainThreadIfInitialized):
* wtf/win/MainThreadWin.cpp:
(WTF::initializeMainThreadPlatform):
(WTF::isMainThread):
(WTF::isMainThreadIfInitialized):

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

2 years agoBuild fix after r236612.
rniwa@webkit.org [Fri, 28 Sep 2018 22:12:07 +0000 (22:12 +0000)]
Build fix after r236612.

* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeSelection):

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

2 years ago[Apple Pay] Remove the "in-store" button type
aestes@apple.com [Fri, 28 Sep 2018 22:06:02 +0000 (22:06 +0000)]
[Apple Pay] Remove the "in-store" button type
https://bugs.webkit.org/show_bug.cgi?id=190079

Reviewed by Tim Horton.

Source/WebCore:

According to <https://developer.apple.com/design/human-interface-guidelines/apple-pay/buttons-and-marks/buttons/>,
this button is meant only for certain kinds of native apps. It shouldn't be available on the web.

Updated http/tests/ssl/applepay/ApplePayButton.html.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):
* css/CSSValueKeywords.in:
* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
* rendering/RenderThemeCocoa.mm:
(WebCore::toPKPaymentButtonType):
* rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

* UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

* http/tests/ssl/applepay/ApplePayButton.html:
* platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
* platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:

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

2 years agoWebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
realdawei@apple.com [Fri, 28 Sep 2018 22:01:21 +0000 (22:01 +0000)]
WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed, skip tests that are timing out.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-28

* TestExpectations:

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

2 years agodocument.open() should throw errors for cross-origin calls
cdumez@apple.com [Fri, 28 Sep 2018 21:56:33 +0000 (21:56 +0000)]
document.open() should throw errors for cross-origin calls
https://bugs.webkit.org/show_bug.cgi?id=189371
<rdar://problem/44282700>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline existing WPT tests now that more checks are passing.

* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window-expected.txt:
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window-expected.txt:

Source/WebCore:

document.open() / document.write() should throw errors for cross-origin calls as per:
- https://html.spec.whatwg.org/#document-open-steps (Step 4)

No new tests, rebaselined existing tests.

* dom/Document.cpp:
(WebCore::Document::open):
(WebCore::Document::write):
(WebCore::Document::writeln):
* dom/Document.h:

LayoutTests:

Tweak a couple of existing tests to reflect behavior change.

* fast/dom/HTMLDocument/document-open-return-value.html:
* fast/parser/tokenizer-close-during-document-write.html:

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

2 years agoRename createMarkup to serializePreservingVisualAppearance
rniwa@webkit.org [Fri, 28 Sep 2018 21:08:54 +0000 (21:08 +0000)]
Rename createMarkup to serializePreservingVisualAppearance
https://bugs.webkit.org/show_bug.cgi?id=190086

Reviewed by Wenson Hsieh.

Source/WebCore:

Renamed the function to clarify what it does. Also removed the unused Range::toHTML.

* dom/Range.cpp:
(WebCore::Range::toHTML const): Deleted.
* dom/Range.h:
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::selectionInHTMLFormat):
* editing/gtk/EditorGtk.cpp:
(WebCore::Editor::writeSelectionToPasteboard):
* editing/markup.cpp:
(WebCore::serializePreservingVisualAppearance):
(WebCore::createMarkup): Deleted.
* editing/markup.h:
* editing/wpe/EditorWPE.cpp:
(WebCore::Editor::writeSelectionToPasteboard):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeRangeToDataObject):

Source/WebKit:

* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::updateGlobalSelection):

Source/WebKitLegacy/mac:

* DOM/WebDOMOperations.mm:
(-[DOMRange markupString]):

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

2 years agoRemove some unused RenderLayer code
simon.fraser@apple.com [Fri, 28 Sep 2018 21:03:23 +0000 (21:03 +0000)]
Remove some unused RenderLayer code
https://bugs.webkit.org/show_bug.cgi?id=190078

Reviewed by Zalan Bujtas.

The 'outOfFlowDescendantContainingBlocks' code was related to the accelerated overflow scrolling code that
I removed recently.

updateDescendantsLayerListsIfNeeded() is never called.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderLayer.h:

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

2 years agoUnreviewed, rolling out r236605.
commit-queue@webkit.org [Fri, 28 Sep 2018 20:38:32 +0000 (20:38 +0000)]
Unreviewed, rolling out r236605.
https://bugs.webkit.org/show_bug.cgi?id=190087

caused three API test timeouts (Requested by jernoble on
#webkit).

Reverted changeset:

"Refactoring: eliminate raw pointer usage in Fullscreen code"
https://bugs.webkit.org/show_bug.cgi?id=188747
https://trac.webkit.org/changeset/236605

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

2 years agoSimplify StyledMarkupAccumulator::traverseNodesForSerialization
rniwa@webkit.org [Fri, 28 Sep 2018 20:03:45 +0000 (20:03 +0000)]
Simplify StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=190073

Reviewed by Antti Koivisto.

Simplified the range traversal algorithm in traverseNodesForSerialization as it was too complicated
to support shadow DOM for copy and paste.

Instead of using NodeTraversal::next to traverse past ancestors and then figuring out which ancestor
must be closed or to wrap the existing markup with, new code collects the list of ancestors as we
traverse out of them.

Also extracted lambdas for generating markup and deciding whether to skip a node as well as keeping
track of the depth of the current markup. This further reduces the code complexity of the actual
node traversal algorithm. Keeping track of the depth allows us to now generate ancestor elements'
closing tags without keeping a stack of ancestor nodes we opened at all times.

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

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

2 years agoReplace recently added line comments in Compiler.h
bburg@apple.com [Fri, 28 Sep 2018 20:02:55 +0000 (20:02 +0000)]
Replace recently added line comments in Compiler.h
https://bugs.webkit.org/show_bug.cgi?id=190062
<rdar://problem/44838618>

Reviewed by Joseph Pecoraro.

This breaks some Apple-internal tooling. For now, work around it by
changing the comment style. On the other side, the issue will be fixed
more permanently by adopting the approach from r230213.

* wtf/Compiler.h: Use multiline comments.

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

2 years agoReplace every use of Node::offsetInCharacters() by Node::isCharacterDataNode()
rniwa@webkit.org [Fri, 28 Sep 2018 19:47:22 +0000 (19:47 +0000)]
Replace every use of Node::offsetInCharacters() by Node::isCharacterDataNode()
https://bugs.webkit.org/show_bug.cgi?id=190069

Reviewed by Zalan Bujtas.

Removed Node::offsetInCharacters() and replaced every use of it by isCharacterDataNode()
because their implementations are identical.

Note that offsetInCharacters() sounds like a function which returns some kind of an offset
but it doesn't. It returns true when called on a CharacterData and false elsewhere.

* accessibility/AXObjectCache.cpp:
(WebCore::characterOffsetsInOrder):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
* dom/CharacterData.cpp:
(WebCore::CharacterData::offsetInCharacters const): Deleted.
* dom/CharacterData.h:
* dom/Node.cpp:
(WebCore::Node::offsetInCharacters const): Deleted.
* dom/Node.h:
* dom/Position.cpp:
(WebCore::Position::parentAnchoredEquivalent const):
* dom/Position.h:
(WebCore::lastOffsetInNode):
(WebCore::minOffsetForNode):
(WebCore::offsetIsBeforeLastNodeOffset):
* dom/Range.cpp:
(WebCore::Range::firstNode const):
(WebCore::Range::pastLastNode const):
* dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::setOffset):
(WebCore::RangeBoundaryPoint::setToEndOfNode):
* editing/Editing.cpp:
(WebCore::lastOffsetForEditing):
* editing/TextIterator.cpp:
(WebCore::nextInPreOrderCrossingShadowBoundaries):
(WebCore::TextIterator::node const):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::extend):

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

2 years agoGardening: speculative build fix.
mark.lam@apple.com [Fri, 28 Sep 2018 18:46:52 +0000 (18:46 +0000)]
Gardening: speculative build fix.
<rdar://problem/44869924>

Not reviewed.

* assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):

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

2 years agoRefactoring: eliminate raw pointer usage in Fullscreen code
jer.noble@apple.com [Fri, 28 Sep 2018 18:39:51 +0000 (18:39 +0000)]
Refactoring: eliminate raw pointer usage in Fullscreen code
https://bugs.webkit.org/show_bug.cgi?id=188747
<rdar://problem/43541164>

Reviewed by Alex Christensen.

Source/WebCore:

Two sources of raw pointers in the Fullscreen code:
- Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so
  they are passed around as raw references.
- Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and
  VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't
  be ref-able.

Make Model classes ref-able by adding ref() and deref() which call virtual refModel and
derefModel methods, overridden by implementing subclasses. Make every concrete observer
inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around
the client interface.

Since every Interface class now holds a strong reference to its Model classes, and each
Model class holds a weak reference to all its clients, no explicit invalidate() method
is necessary.

Notes:

- Since the weak pointer methods need to be able to downcast to the abstract base class,
  observers need to inherit publically (rather than privately) from those base classes.
- Media element Models should compose EventListener rather than inheriting from it, since
  EventListener has its own RefCount.
- WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when
  their underlying object is destroyed), so clients should be stored in a Vector instead.
- Interfaces should be given all required Refs at creation time, so that they can store
  those parameters as Refs instead of RefPtrs.

* platform/cocoa/PlaybackSessionInterface.h:
(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted.
* platform/cocoa/PlaybackSessionModel.h:
(WebCore::PlaybackSessionModel::ref):
(WebCore::PlaybackSessionModel::deref):
(WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted.
* platform/cocoa/PlaybackSessionModelMediaElement.h:
* platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::addClient):
(WebCore::PlaybackSessionModelMediaElement::removeClient):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices):
(WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted.
* platform/cocoa/VideoFullscreenChangeObserver.h:
(WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted.
* platform/cocoa/VideoFullscreenModel.h:
(WebCore::VideoFullscreenModel::ref):
(WebCore::VideoFullscreenModel::deref):
(WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted.
* platform/cocoa/VideoFullscreenModelVideoElement.h:
* platform/cocoa/VideoFullscreenModelVideoElement.mm:
(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):
(VideoFullscreenModelVideoElement::addClient):
(VideoFullscreenModelVideoElement::removeClient):
(VideoFullscreenModelVideoElement::setHasVideo):
(VideoFullscreenModelVideoElement::setVideoDimensions):
(VideoFullscreenModelVideoElement::willEnterPictureInPicture):
(VideoFullscreenModelVideoElement::didEnterPictureInPicture):
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture):
(VideoFullscreenModelVideoElement::willExitPictureInPicture):
(VideoFullscreenModelVideoElement::didExitPictureInPicture):
(VideoFullscreenModelVideoElement::handleEvent): Deleted.
* platform/ios/PlaybackSessionInterfaceAVKit.h:
(WebCore::PlaybackSessionInterfaceAVKit::create):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(): Deleted.
* platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted.
* platform/ios/VideoFullscreenInterfaceAVKit.h:
* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(VideoFullscreenInterfaceAVKit::create):
(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted.
(VideoFullscreenInterfaceAVKit::invalidate): Deleted.
* platform/ios/WebAVPlayerController.h:
* platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController delegate]):
(-[WebAVPlayerController playbackSessionInterface]):
(-[WebAVPlayerController setPlaybackSessionInterface:]):
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):
(VideoFullscreenControllerContext::willEnterPictureInPicture):
(VideoFullscreenControllerContext::didEnterPictureInPicture):
(VideoFullscreenControllerContext::failedToEnterPictureInPicture):
(VideoFullscreenControllerContext::willExitPictureInPicture):
(VideoFullscreenControllerContext::didExitPictureInPicture):
(VideoFullscreenControllerContext::setUpFullscreen):
* platform/mac/PlaybackSessionInterfaceMac.h:
* platform/mac/PlaybackSessionInterfaceMac.mm:
(WebCore::PlaybackSessionInterfaceMac::create):
(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
(WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted.
(WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted.
* platform/mac/VideoFullscreenInterfaceMac.h:
(WebCore::VideoFullscreenInterfaceMac::create):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):
* platform/mac/VideoFullscreenInterfaceMac.mm:
(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
(WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::clearMode):
(WebCore::VideoFullscreenInterfaceMac::invalidate):
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted.
* platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager togglePlayback]):
(-[WebPlaybackControlsManager setPlaying:]):
(-[WebPlaybackControlsManager isPlaying]):
(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit:

Adopt those Ref and WeakPtr changes made in WebCore.

* UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionModelContext::addClient):
(WebKit::PlaybackSessionModelContext::removeClient):
(WebKit::PlaybackSessionModelContext::durationChanged):
(WebKit::PlaybackSessionModelContext::currentTimeChanged):
(WebKit::PlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionModelContext::seekableRangesChanged):
(WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionModelContext::mutedChanged):
(WebKit::PlaybackSessionModelContext::volumeChanged):
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::invalidate):
(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):
* UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::create):
(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenModelContext::addClient):
(WebKit::VideoFullscreenModelContext::removeClient):
(WebKit::VideoFullscreenModelContext::willEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::willExitPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted.
* UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(WKFullScreenViewControllerPlaybackSessionModelClient::setInterface):
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _togglePiPAction:]):
* UIProcess/mac/WKFullScreenWindowController.mm:
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):
* WebProcess/cocoa/PlaybackSessionManager.h:
* WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted.
* WebProcess/cocoa/VideoFullscreenManager.h:
(WebKit::VideoFullscreenInterfaceContext::create):
(WebKit::VideoFullscreenInterfaceContext::createWeakPtr):
* WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::removeContext):

Source/WebKitLegacy/mac:

PlaybackSessionInterface no longer has an invalidate() method.

* WebView/WebView.mm:
(-[WebView _clearPlaybackControlsManager]):

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/WeakPtrContainer.h: Added.

LayoutTests:

Test was causing false pass results due to the webkitPresentationMode being correctly set
to "inline" during the close() operation; modify the test to only perform the close()
operation when the presetation mode is changed to "picture-in-picture".

* media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
* media/controls/ipad/resources/picture-in-picture.html:

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

2 years ago[JSC] [Armv7] Add a copy function argument to MacroAssemblerARMv7::link() and pass...
guijemont@igalia.com [Fri, 28 Sep 2018 18:18:14 +0000 (18:18 +0000)]
[JSC] [Armv7] Add a copy function argument to MacroAssemblerARMv7::link() and pass it down to the assembler's linking functions.
https://bugs.webkit.org/show_bug.cgi?id=190080

Reviewed by Mark Lam.

* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT2):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkJumpT4):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkBX):
(JSC::ARMv7Assembler::linkConditionalBX):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::link):

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

2 years agoDrop iOS specific quirk in SettingsBase::scriptEnabledChanged()
cdumez@apple.com [Fri, 28 Sep 2018 17:04:04 +0000 (17:04 +0000)]
Drop iOS specific quirk in SettingsBase::scriptEnabledChanged()
https://bugs.webkit.org/show_bug.cgi?id=190077
<rdar://problem/44812613>

Reviewed by Zalan Bujtas.

Drop iOS specific quirk in SettingsBase::scriptEnabledChanged() that would dirty style after the
"JavaScriptEnabled" setting's state is toggled. I do not see a good reason to do this given that
scripts would not get executed until a reload.

If we find out after dropping this that this is actually useful for some reason, then we can
always bring it back and consider making this non-iOS specific, as well as documenting why this
it is needed.

* page/Settings.yaml:
* page/SettingsBase.cpp:
(WebCore::SettingsBase::scriptEnabledChanged): Deleted.
* page/SettingsBase.h:

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

2 years ago[WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
commit-queue@webkit.org [Fri, 28 Sep 2018 15:56:54 +0000 (15:56 +0000)]
[WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
https://bugs.webkit.org/show_bug.cgi?id=189991

Patch by Koby Boyango <koby.b@mce.systems> on 2018-09-28
Reviewed by Yusuke Suzuki.

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/text/ExternalStringImpl.cpp: Added.
* wtf/text/ExternalStringImpl.h: Added.
* wtf/text/StringImpl.cpp:
* wtf/text/StringImpl.h:

Tools:

* TestWebKitAPI/Tests/WTF/StringImpl.cpp:

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

2 years agoREGRESSION (r236573): [iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html...
cdumez@apple.com [Fri, 28 Sep 2018 15:43:17 +0000 (15:43 +0000)]
REGRESSION (r236573): [iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190067

Unreviewed, re-land ios-specific expected result for this test as they were inadvertently
dropped in r236573.

* platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
* platform/ios/TestExpectations:

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

2 years agoJSC test stress/jsc-read.js doesn't support CRLF
ross.kirsling@sony.com [Fri, 28 Sep 2018 15:31:47 +0000 (15:31 +0000)]
JSC test stress/jsc-read.js doesn't support CRLF
https://bugs.webkit.org/show_bug.cgi?id=190063

Reviewed by Yusuke Suzuki.

In order to run this test via Windows command prompt, we can't assume that the final newline will be LF.

* stress/jsc-read.js:
(test):

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

2 years agoWeb Inspector: image resources without content are still shown when the Images folder...
drousso@apple.com [Fri, 28 Sep 2018 08:04:10 +0000 (08:04 +0000)]
Web Inspector: image resources without content are still shown when the Images folder is selected
https://bugs.webkit.org/show_bug.cgi?id=190072

Reviewed by Matt Baker.

* UserInterface/Views/ResourceContentView.js:
(WI.ResourceContentView.prototype.showGenericNoContentMessage):
Treat paths that result in a "Resource has no content" message as a "content error".

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

2 years ago[WinCairo] error C2027: use of undefined type 'WTF::EnumTraits<E>' while compiling...
Hironori.Fujii@sony.com [Fri, 28 Sep 2018 07:06:04 +0000 (07:06 +0000)]
[WinCairo] error C2027: use of undefined type 'WTF::EnumTraits<E>' while compiling AuthenticationChallengeProxy.cpp
https://bugs.webkit.org/show_bug.cgi?id=190071

Unreviewed build fix for WinCairo port.

AuthenticationChallengeDisposition was not defined in this file.

* UIProcess/Authentication/AuthenticationChallengeProxy.cpp: Include "AuthenticationChallengeDisposition.h".

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

2 years ago[Curl] Fix priority issue with multiple cookies with different level of path.
Basuke.Suzuki@sony.com [Fri, 28 Sep 2018 06:55:03 +0000 (06:55 +0000)]
[Curl] Fix priority issue with multiple cookies with different level of path.
https://bugs.webkit.org/show_bug.cgi?id=189920

Reviewed by Fujii Hironori.

Source/WebCore:

When multiple cookies are stored in the database for same site, the priority of
multiple cookies which matches path criteria was not defined. The backend
implementation `sqlite` then returns the first matching result, which is the one
stored earlier.

Test: http/tests/cookies/cookie-with-multiple-level-path.html

* platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::searchCookies):

LayoutTests:

* http/tests/cookies/cookie-with-multiple-level-path-expected.txt: Added.
* http/tests/cookies/cookie-with-multiple-level-path.html: Added.
* http/tests/cookies/resources/cookie-with-multiple-level-path.php: Added.

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

2 years agoUpdate flakiness dashboard configuration for Mojave queues
ryanhaddad@apple.com [Fri, 28 Sep 2018 05:47:59 +0000 (05:47 +0000)]
Update flakiness dashboard configuration for Mojave queues
https://bugs.webkit.org/show_bug.cgi?id=190068

Reviewed by Alexey Proskuryakov.

* TestResultServer/static-dashboards/builders.jsonp:

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

2 years agoVerify the contents of AssemblerBuffer on arm64e
sbarati@apple.com [Fri, 28 Sep 2018 05:34:38 +0000 (05:34 +0000)]
Verify the contents of AssemblerBuffer on arm64e
https://bugs.webkit.org/show_bug.cgi?id=190057
<rdar://problem/38916630>

Reviewed by Mark Lam.

JSTests:

* stress/regress-189132.js:

Source/JavaScriptCore:

* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::ARM64Assembler):
(JSC::ARM64Assembler::fillNops):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):
(JSC::ARM64Assembler::unlinkedCode): Deleted.
* assembler/ARMAssembler.h:
(JSC::ARMAssembler::fillNops):
* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::unlinkedCode): Deleted.
* assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::emitNops):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
* assembler/AssemblerBuffer.h:
(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::hash const):
(JSC::ARM64EHash::randomSeed const):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putShort):
(JSC::AssemblerBuffer::putIntUnchecked):
(JSC::AssemblerBuffer::putInt):
(JSC::AssemblerBuffer::hash const):
(JSC::AssemblerBuffer::data const):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append): Deleted.
* assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):
* assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::fillNops):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::jumpsToLink):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::unlinkedCode): Deleted.
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::jumpsToLink):
(JSC::MacroAssemblerARMv7::unlinkedCode): Deleted.
* assembler/X86Assembler.h:
(JSC::X86Assembler::fillNops):

Source/WTF:

* wtf/PtrTag.h:
(WTF::tagInt):

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

2 years agoByValInfo should not use integer offsets.
mark.lam@apple.com [Fri, 28 Sep 2018 05:07:03 +0000 (05:07 +0000)]
ByValInfo should not use integer offsets.
https://bugs.webkit.org/show_bug.cgi?id=190070
<rdar://problem/44803430>

Reviewed by Saam Barati.

Also moved some fields around to allow the ByValInfo struct to be more densely packed.

* bytecode/ByValInfo.h:
(JSC::ByValInfo::ByValInfo):
* jit/JIT.cpp:
(JSC::JIT::link):
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

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

2 years agoDFG::OSRExit::m_patchableCodeOffset should not be an int
sbarati@apple.com [Fri, 28 Sep 2018 04:46:50 +0000 (04:46 +0000)]
DFG::OSRExit::m_patchableCodeOffset should not be an int
https://bugs.webkit.org/show_bug.cgi?id=190066
<rdar://problem/39498244>

Reviewed by Mark Lam.

* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::setPatchableCodeOffset): Deleted.
(JSC::DFG::OSRExit::getPatchableCodeOffsetAsJump const): Deleted.
(JSC::DFG::OSRExit::correctJump): Deleted.
* dfg/DFGOSRExit.h:
* dfg/DFGOSRExitCompilationInfo.h:

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

2 years agoDon't use int offsets in StructureStubInfo
sbarati@apple.com [Fri, 28 Sep 2018 04:27:10 +0000 (04:27 +0000)]
Don't use int offsets in StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=190064
<rdar://problem/44784719>

Reviewed by Mark Lam.

* bytecode/InlineAccess.cpp:
(JSC::linkCodeInline):
* bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITInlineCacheGenerator::finalize):

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

2 years agoUse enum class in createMarkup arguments
rniwa@webkit.org [Fri, 28 Sep 2018 04:22:50 +0000 (04:22 +0000)]
Use enum class in createMarkup arguments
https://bugs.webkit.org/show_bug.cgi?id=190028

Reviewed by Wenson Hsieh.

Source/WebCore:

Replaced enums used by createMarkup with equivalent enum classes: EChildrenOnly with SerializedNodes,
EAbsoluteURLs with ResolveURLs, and EFragmentSerialization with SerializationSyntax.

Also replaced the boolean convertBlocksToInlines with an enum class of the same name.

Finally, renamed the createMarkup variant which doesn't serialize style and used for innerHTML and XMLSerializer
to serializeFragment.

* dom/Element.cpp:
(WebCore::Element::innerHTML const):
(WebCore::Element::outerHTML const):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::innerHTML const):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/HTMLInterchange.h:
(WebCore::AnnotateForInterchange): Renamed from EAnnotateForInterchange.
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::MarkupAccumulator):
(WebCore::MarkupAccumulator::serializeNodes):
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::resolveURLIfNeeded const):
* editing/MarkupAccumulator.h:
(WebCore::MarkupAccumulator::inXMLFragmentSerialization const):
* editing/ReplaceRangeWithTextCommand.cpp:
(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer const):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::willApplyCommand):
* editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::inputEventDataTransfer const):
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::selectionInHTMLFormat):
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentMarkupReader::readRTFD):
(WebCore::WebContentMarkupReader::readRTF):
* editing/gtk/EditorGtk.cpp:
(WebCore::Editor::writeImageToPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
(WebCore::highestAncestorToWrapMarkup):
(WebCore::createMarkupInternal):
(WebCore::createMarkup):
(WebCore::sanitizedMarkupForFragmentInDocument):
(WebCore::serializeFragment): Renamed from createMarkup. This is used for innerHTML and XMLSerializer,
which faithfully serializes the fragment without any computed style as inline styles.
(WebCore::documentTypeString):
(WebCore::createFullMarkup): Deleted two varinats used in WebKitLegacy.
* editing/markup.h:
(WebCore::ResolveURLs): Renamed from EAbsoluteURLs.
(WebCore::ConvertBlocksToInlines): Added.
(WebCore::SerializedNodes): Renamed from EChildrenOnly.
(WebCore::SerializationSyntax): Renamed from EFragmentSerialization.
* editing/wpe/EditorWPE.cpp:
(WebCore::Editor::writeSelectionToPasteboard):
* inspector/DOMEditor.cpp:
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getOuterHTML):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator):
(WebCore::PageSerializer::serializeFrame):
* page/win/DragControllerWin.cpp:
(WebCore::DragController::declareAndWriteDragImage):
* Source/WebCore/platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeRangeToDataObject):
(WebCore::Pasteboard::writeSelection):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
* xml/XMLSerializer.cpp:
(WebCore::XMLSerializer::serializeToString):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::xsltStylesheetPointer):
(WebCore::xmlDocPtrFromNode):

Source/WebKit:

* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::updateGlobalSelection):

Source/WebKitLegacy/mac:

* DOM/WebDOMOperations.mm:
(-[DOMNode markupString]): Moved the code from WebCore/editing/markup.cpp
(-[DOMRange markupString]): Ditto.

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

2 years ago[iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
ryanhaddad@apple.com [Fri, 28 Sep 2018 03:22:04 +0000 (03:22 +0000)]
[iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190067

Unreviewed test gardening.

* platform/ios/TestExpectations: Mark test as failing.

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

2 years agoBring up queues for Mojave
ryanhaddad@apple.com [Fri, 28 Sep 2018 01:34:36 +0000 (01:34 +0000)]
Bring up queues for Mojave
https://bugs.webkit.org/show_bug.cgi?id=189935

Unreviewed infrastructure fix.

* BuildSlaveSupport/build.webkit.org-config/config.json: Remove trigger, update bot assignment.

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

2 years agoBring up queues for Mojave
ryanhaddad@apple.com [Fri, 28 Sep 2018 01:25:35 +0000 (01:25 +0000)]
Bring up queues for Mojave
https://bugs.webkit.org/show_bug.cgi?id=189935

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

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

2 years agoIncrease the timeout for iOS Simulator data migration
ryanhaddad@apple.com [Fri, 28 Sep 2018 00:50:28 +0000 (00:50 +0000)]
Increase the timeout for iOS Simulator data migration
https://bugs.webkit.org/show_bug.cgi?id=190059

Reviewed by Aakash Jain.

3 minutes isn't always enough time for the data migrator to complete
when booting up multiple iOS Simulators. Change the timeout to 10 minutes.

* Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager): Create a constant for the default timeout.
(SimulatedDeviceManager.initialize_devices): Use new constant.
(SimulatedDeviceManager.swap): Ditto.
(SimulatedDeviceManager.wait_until_data_migration_is_done): Ditto.

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

2 years agoResource Load Statistics: Non-redirected top frame navigation should not get captured...
wilander@apple.com [Fri, 28 Sep 2018 00:23:37 +0000 (00:23 +0000)]
Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics
https://bugs.webkit.org/show_bug.cgi?id=190055
<rdar://problem/44843460>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html

* loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::decode):
    Corrects legacy statistics for frames and triggers a re-classification.

Source/WebKit:

* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
    Bumped the statisticsModelVersion to 14 to be able to
    correct legacy statistics.
(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):
    Now skips capture if it's the main frame.

LayoutTests:

* http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-expected.txt: Added.
* http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html: Added.

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

2 years agoUnreviewed watchOS build fix; Fix declaration for ports which USE(ENCRYPTED_MEDIA...
jer.noble@apple.com [Thu, 27 Sep 2018 22:37:01 +0000 (22:37 +0000)]
Unreviewed watchOS build fix; Fix declaration for ports which USE(ENCRYPTED_MEDIA) but don't
HAVE(AVCONTENTKEYSESSION).

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

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

2 years agoDFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
mark.lam@apple.com [Thu, 27 Sep 2018 22:33:24 +0000 (22:33 +0000)]
DFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
https://bugs.webkit.org/show_bug.cgi?id=190054
<rdar://problem/44803543>

Reviewed by Saam Barati.

* dfg/DFGJITCode.h:
(JSC::DFG::JITCode::appendOSREntryData):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::noticeOSREntry):
* dfg/DFGOSREntry.cpp:
(JSC::DFG::OSREntryData::dumpInContext const):
(JSC::DFG::prepareOSREntry):
* dfg/DFGOSREntry.h:
* runtime/JSCPtrTag.h:

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

2 years agoRemove duplicate CSS Properties and Values feature on status page
commit-queue@webkit.org [Thu, 27 Sep 2018 22:29:26 +0000 (22:29 +0000)]
Remove duplicate CSS Properties and Values feature on status page
https://bugs.webkit.org/show_bug.cgi?id=189909

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-09-27
Reviewed by Simon Fraser.

Update CSS properties and values api feature in features.json

* features.json:

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

2 years agoRegression(r236512): fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html...
cdumez@apple.com [Thu, 27 Sep 2018 21:57:13 +0000 (21:57 +0000)]
Regression(r236512): fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html and editing/pasteboard/emacs-ctrl-a-k-y.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=190048

Reviewed by Ryosuke Niwa.

Update editing/pasteboard/emacs-ctrl-a-k-y.html to address flakiness:
- Stop dumping editing callbacks as some of them may get logged in a slightly different order
  due to IPC ordering, and those are not needed to determine that the test passes.
- Dump the test as text to avoid needing platform-specific results.

* editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
* editing/pasteboard/emacs-ctrl-a-k-y.html:
* platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
* platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
* platform/ios-wk1/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
* platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
* platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
* platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
* platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
* platform/win/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
* platform/wincairo/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
* platform/wincairo/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Removed.

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

2 years agoMediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey()...
jer.noble@apple.com [Thu, 27 Sep 2018 21:41:22 +0000 (21:41 +0000)]
MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
https://bugs.webkit.org/show_bug.cgi?id=189951

Reviewed by Eric Carlson.

Source/WebCore:

In order to implement the "Resume Playback" section of EME, part 4, we need to be able
to query whether the MediaPlayer is still waiting for a key after attemptToDecrypt()
has been called. Currently this involves no behavioral changes, as all modern EME ports
will still just notify the media element that they no longer need keys after one has
been added, but future ports may be able to wait for multiple keys before reporting
that it is no longer waiting for keys.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerWaitingForKeyChanged):
(WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
(WebCore::HTMLMediaElement::mediaPlayerWaitingForKey): Deleted.
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::waitingForKeyChanged):
(WebCore::MediaPlayer::waitingForKey const):
(WebCore::MediaPlayer::waitingForKey): Deleted.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerWaitingForKeyChanged):
(WebCore::MediaPlayerClient::mediaPlayerWaitingForKey): Deleted.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::waitingForKey const):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::attemptToDecryptWithInstance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKey const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKeyChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initializationDataEncountered):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::reportWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamerBase::setWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamerBase::waitingForKey const):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptSinkEventHandler):

Source/WTF:

Templated functions should take r-value references, as they have perfect type deduction for
all parameter types; references, l-value references, and r-value references in template function
parameters have special type deduction semantics.
See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>

Previously, const reference parameters would be copied when passed into anyOf(), and containers
of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
with r-value reference types in template parameters, a const reference is mapped to a const reference,
a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
an r-value reference.

* wtf/Algorithms.h:
(WTF::forEach):
(WTF::anyOf):
(WTF::allOf):

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

2 years ago[iOS] Allow access to VoiceServices features needed for accessibility
bfulgham@apple.com [Thu, 27 Sep 2018 21:27:53 +0000 (21:27 +0000)]
[iOS] Allow access to VoiceServices features needed for accessibility
https://bugs.webkit.org/show_bug.cgi?id=190019
<rdar://problem/43621111>

Reviewed by Chris Fleizach.

Revise the sandbox to allow access to relevant WebSpeech features.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

2 years ago[Payment Request] Update web platform tests
aestes@apple.com [Thu, 27 Sep 2018 21:04:58 +0000 (21:04 +0000)]
[Payment Request] Update web platform tests
https://bugs.webkit.org/show_bug.cgi?id=190049

Reviewed by Youenn Fablet.

Updated web-platform-tests/payment-request/ to tip-of-tree from web-platform-tests.

LayoutTests/imported/w3c:

* web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt: Added.
* web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html.
* web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt:
* web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html:
* web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log:
* web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
* web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt:
* web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html:
* web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt:
* web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html:
* web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html:
* web-platform-tests/payment-request/historical.https-expected.txt:
* web-platform-tests/payment-request/historical.https.html:
* web-platform-tests/payment-request/idlharness.https.window.js:
* web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html.
* web-platform-tests/payment-request/payment-response/w3c-import.log:

LayoutTests:

* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:

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

2 years agoDisable test without LLInt on ARMv7
commit-queue@webkit.org [Thu, 27 Sep 2018 21:04:33 +0000 (21:04 +0000)]
Disable test without LLInt on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=190037

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-09-27
Reviewed by Mark Lam.

Test runs out of executable memory on ARMv7, do not run
this test without LLInt enabled.

* stress/regress-169445.js:

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

2 years agoFix IOSMAC build
sihui_liu@apple.com [Thu, 27 Sep 2018 21:01:21 +0000 (21:01 +0000)]
Fix IOSMAC build
https://bugs.webkit.org/show_bug.cgi?id=190021

Reviewed by Alex Christensen.

* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

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

2 years ago[MSE] Fix unwanted sample erase from the decode queue
aboya@igalia.com [Thu, 27 Sep 2018 20:10:26 +0000 (20:10 +0000)]
[MSE] Fix unwanted sample erase from the decode queue
https://bugs.webkit.org/show_bug.cgi?id=180643

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-append-acb-no-frame-lost.html

This bug reproduced when unordered appends were made. For instance, if
the application appended [0, 10) and then [20, 30), the frame at 20
would be wrongly discarded from the decode queue.

Later the application could append [10, 20) and the gap at [20, 21)
would persist in the decode queue, even if the frame remained in the
track buffer table.

Thanks to Daniel Zhang for reporting the issue.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::provideMediaData):

LayoutTests:

Added a test case for the fixed bug.

* media/media-source/media-source-append-acb-no-frame-lost.html: Added.

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

2 years agoURLParser should use TextEncoding through an abstract class
achristensen@apple.com [Thu, 27 Sep 2018 20:05:52 +0000 (20:05 +0000)]
URLParser should use TextEncoding through an abstract class
https://bugs.webkit.org/show_bug.cgi?id=190027

Reviewed by Andy Estes.

Source/WebCore:

URLParser uses TextEncoding for one call to encode, which is only used for encoding the query of URLs in documents with non-UTF encodings.
There are 3 call sites that specify the TextEncoding to use from the Document, and even those call sites use a UTF encoding most of the time.
All other URL parsing is done using a well-optimized path which assumes UTF-8 encoding and uses macros from ICU headers, not a TextEncoding.
Moving the logic in this way breaks URL and URLParser's dependency on TextEncoding, which makes it possible to use in a lower-level project
without also moving TextEncoding, TextCodec, TextCodecICU, ThreadGlobalData, and the rest of WebCore and JavaScriptCore.

There is no observable change in behavior.  There is now one virtual function call in a code path in URLParser that is not performance-sensitive,
and TextEncodings now have a vtable, which uses a few more bytes of memory total for WebKit.

* css/parser/CSSParserContext.h:
(WebCore::CSSParserContext::completeURL const):
* css/parser/CSSParserIdioms.cpp:
(WebCore::completeURL):
* dom/Document.cpp:
(WebCore::Document::completeURL const):
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::href const):
Move the call to encodingForFormSubmission from the URL constructor to the 3 call sites that specify the encoding from the Document.
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::encodingForURLParsing):
* loader/TextResourceDecoder.h:
* platform/URL.cpp:
(WebCore::URL::URL):
* platform/URL.h:
(WebCore::URLTextEncoding::~URLTextEncoding):
* platform/URLParser.cpp:
(WebCore::URLParser::encodeNonUTF8Query):
(WebCore::URLParser::copyURLPartsUntil):
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):
(WebCore::URLParser::encodeQuery): Deleted.
A pointer replaces the boolean isUTF8Encoding and the TextEncoding& which had a default value of UTF8Encoding.
Now the pointer being null means that we use UTF8, and the pointer being non-null means we use that encoding.
* platform/URLParser.h:
(WebCore::URLParser::URLParser):
* platform/text/TextEncoding.cpp:
(WebCore::UTF7Encoding):
(WebCore::TextEncoding::encodingForFormSubmissionOrURLParsing const):
(WebCore::ASCIIEncoding):
(WebCore::Latin1Encoding):
(WebCore::UTF16BigEndianEncoding):
(WebCore::UTF16LittleEndianEncoding):
(WebCore::UTF8Encoding):
(WebCore::WindowsLatin1Encoding):
(WebCore::TextEncoding::encodingForFormSubmission const): Deleted.
Use NeverDestroyed because TextEncoding now has a virtual destructor.
* platform/text/TextEncoding.h:
Rename encodingForFormSubmission to encodingForFormSubmissionOrURLParsing to make it more clear that we are intentionally using it for both.

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):

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

2 years agoUnreviewed, make fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html more...
cdumez@apple.com [Thu, 27 Sep 2018 19:44:40 +0000 (19:44 +0000)]
Unreviewed, make fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html more deterministic to address flakiness.

* fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
* fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:

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

2 years agoResource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups
wilander@apple.com [Thu, 27 Sep 2018 19:40:16 +0000 (19:40 +0000)]
Resource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups
https://bugs.webkit.org/show_bug.cgi?id=189980
<rdar://problem/44780645>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html

The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary
compatibility fix as explained in:
https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should
remove it.

Most of these changes remove the parameter isTriggeredByUserGesture since it's no longer needed.

* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
(WebCore::ResourceLoadObserver::logWindowCreation): Deleted.
* loader/ResourceLoadObserver.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
    Now no longer logs anything to ResourceLoadObserver.

Source/WebKit:

The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary
compatibility fix as explained in:
https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should
remove it.

These changes remove the parameter isTriggeredByUserGesture since it's no longer needed.

* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):
* UIProcess/ResourceLoadStatisticsMemoryStore.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/WebResourceLoadStatisticsStore.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):

LayoutTests:

This test was for the temporary compatibility fix in:
https://bugs.webkit.org/show_bug.cgi?id=183620. This change makes it into a
test that the compatibility fix is no longer there.

* http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-expected.txt.
* http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener.html.
* platform/ios-wk2/TestExpectations:
    Removed comment and entry since https://bugs.webkit.org/show_bug.cgi?id=183714 was fixed long ago.
* platform/ios/TestExpectations:
    Changed test name.
* platform/mac-wk2/TestExpectations:
    Changed test name.

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

2 years agoiOS Simulator bots should pass '--dedicated-simulators' to run-webkit-tests
ryanhaddad@apple.com [Thu, 27 Sep 2018 19:00:13 +0000 (19:00 +0000)]
iOS Simulator bots should pass '--dedicated-simulators' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=190042

Reviewed by Aakash Jain.

To make iOS Simulator bots resilient to issues that can arise from reusing
existing simulators, ensure that dedicated simulators are created for each test run.

* Scripts/webkitpy/common/config/ports.py:
(IOSSimulatorWK2Port.run_webkit_tests_command):

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

2 years agoUnreviewed, rolling out r236557.
ryanhaddad@apple.com [Thu, 27 Sep 2018 18:29:52 +0000 (18:29 +0000)]
Unreviewed, rolling out r236557.

Really roll out r236557 this time because it breaks internal
builds.

Reverted changeset:

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

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

2 years agoFragment should be stripped from document URL during document.open() URL propagation
cdumez@apple.com [Thu, 27 Sep 2018 18:15:55 +0000 (18:15 +0000)]
Fragment should be stripped from document URL during document.open() URL propagation
https://bugs.webkit.org/show_bug.cgi?id=189374
<rdar://problem/44282736>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window-expected.txt:

Source/WebCore:

Strip the Document URL fragment during document.open() URL propagation if the entry document
is not the current document, as per:
- https://html.spec.whatwg.org/#document-open-steps (Step 11.2.)

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::open):

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

2 years agoUnreviewed, rolling out r236558.
ryanhaddad@apple.com [Thu, 27 Sep 2018 17:50:34 +0000 (17:50 +0000)]
Unreviewed, rolling out r236558.
https://bugs.webkit.org/show_bug.cgi?id=190044

 236557  Broke internal builds (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Unreviewed build fix, remove *.o files that were committed in
r236557."
https://trac.webkit.org/changeset/236558

Patch by Commit Queue <commit-queue@webkit.org> on 2018-09-27

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

2 years agoUnreviewed build fix, remove *.o files that were committed in r236557.
ryanhaddad@apple.com [Thu, 27 Sep 2018 17:42:54 +0000 (17:42 +0000)]
Unreviewed build fix, remove *.o files that were committed in r236557.

* Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse3.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/dequantize_mmx.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_mmx.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/iwalsh_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/mfqe_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_mmx.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_mmx.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_sse2.asm.o: Removed.
* Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_ssse3.asm.o: Removed.

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

2 years agoAdd VP8 support to WebRTC
youenn@apple.com [Thu, 27 Sep 2018 17:16:47 +0000 (17:16 +0000)]
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.

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@236557 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2 years agoCrash under WebCore::deleteCookiesForHostnames()
cdumez@apple.com [Thu, 27 Sep 2018 17:06:26 +0000 (17:06 +0000)]
Crash under WebCore::deleteCookiesForHostnames()
https://bugs.webkit.org/show_bug.cgi?id=190040
<rdar://problem/38020368>

Reviewed by Alex Christensen.

Update NetworkStorageSession::deleteCookiesForHostnames() to properly deal with the fact
that NSHTTPCookie.domain can return nil.

* platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

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

2 years agoLayoutTest webrtc/video-unmute.html is a flaky timeout
youenn@apple.com [Thu, 27 Sep 2018 17:03:45 +0000 (17:03 +0000)]
LayoutTest webrtc/video-unmute.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=172879
<rdar://problem/32548738>

Reviewed by Eric Carlson.

* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
* webrtc/video-unmute.html:
Resort on routines.js black frame routine.
Reenable test in mac and ios.

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

2 years agoJITMathIC should not use integer offsets into machine code.
mark.lam@apple.com [Thu, 27 Sep 2018 16:58:25 +0000 (16:58 +0000)]
JITMathIC should not use integer offsets into machine code.
https://bugs.webkit.org/show_bug.cgi?id=190030
<rdar://problem/44803307>

Reviewed by Saam Barati.

We'll replace them with CodeLocation smart pointers instead.

* jit/JITMathIC.h:
(JSC::isProfileEmpty):

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

2 years agoUse kCVPixelFormatType_420YpCbCr8Planar for capturing frames
youenn@apple.com [Thu, 27 Sep 2018 16:45:24 +0000 (16:45 +0000)]
Use kCVPixelFormatType_420YpCbCr8Planar for capturing frames
https://bugs.webkit.org/show_bug.cgi?id=190014

Reviewed by Eric Carlson.

On Mac, rely on the monoplanar format which can be displayed without any issue.
Once rendering is fixed, we should change it back to biplanar as it is closer to what libwebrtc consumes.
Covered by manual testing.

* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::avVideoCapturePixelBufferFormat):
(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

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

2 years ago[Apple Pay] Support granular errors in PaymentDetailsUpdate
aestes@apple.com [Thu, 27 Sep 2018 16:44:49 +0000 (16:44 +0000)]
[Apple Pay] Support granular errors in PaymentDetailsUpdate
https://bugs.webkit.org/show_bug.cgi?id=189938

Reviewed by Youenn Fablet.

Source/WebCore:

Implemented the shippingAddressErrors, payerErrors, and paymentMethodErrors properties on
PaymentDetailsUpdate, as specified in the Payment Request API W3C Editor's Draft of
26 September 2018.

When these errors are specified in a PaymentDetailsUpdate, map them to PaymentErrors. For
shippingAddressErrors and payerErrors, we use the "shippingContactInvalid" code and a
contact field that matches the shippingAddressError or payerError property specified.

For paymentMethodErrors, we interpret this as a sequence of ApplePayErrors, which are
converted to PaymentErrors as in Apple Pay JS.

Tests: http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html
       http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html

* DerivedSources.make: Removed some tabs and added new .idl files.
* Modules/applepay/ApplePayError.idl: Moved ApplePayErrorCode and ApplePayErrorContactField
into their own .idl files so they can be used in MockPaymentError.
* Modules/applepay/ApplePayErrorCode.h: Added.
* Modules/applepay/ApplePayErrorCode.idl: Added.
* Modules/applepay/ApplePayErrorContactField.h: Added.
* Modules/applepay/ApplePayErrorContactField.idl: Added.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::appendShippingContactInvalidError): Appended a "shippingContactInvalid"
PaymentError to errors if the message is non-null.
(WebCore::ApplePayPaymentHandler::computeErrors const):
(WebCore::ApplePayPaymentHandler::detailsUpdated):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated): Computed a vector of PaymentErrors
based on shippingAddressErrors, payerErrors, and paymentMethodErrors.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:

* Modules/paymentrequest/PaymentDetailsUpdate.h:
* Modules/paymentrequest/PaymentDetailsUpdate.idl: Defined shippingAddressErrors,
payerErrors, and paymentMethodErrors.

* Modules/paymentrequest/PaymentHandler.h:
* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::settleDetailsPromise): Passed shippingAddressErrors, payerErrors,
and paymentMethodErrors to the payment handler.

* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:

* testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::completeShippingContactSelection): Stored errors in m_errors.
* testing/MockPaymentCoordinator.h:
* testing/MockPaymentCoordinator.idl: Added an errors attribute.

* testing/MockPaymentError.h: Added.
* testing/MockPaymentError.idl: Added.

LayoutTests:

* http/tests/resources/payment-request.js:
(validPaymentDetails):
(updateDetailsOnShippingAddressChange):
* http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https-expected.txt: Added.
* http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html: Added.
* http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https-expected.txt: Added.
* http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html: Added.
* platform/mac-wk2/TestExpectations:

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

2 years agoURLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore...
achristensen@apple.com [Thu, 27 Sep 2018 16:34:34 +0000 (16:34 +0000)]
URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL
https://bugs.webkit.org/show_bug.cgi?id=189979

Reviewed by Youenn Fablet.

Source/WebCore:

* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::URLWithUserTypedString):
(WebCore::dataForURLComponentType):
(WebCore::URLByRemovingComponentAndSubsequentCharacter):
(WebCore::URLByCanonicalizingURL):
(WebCore::originalURLData):
(WebCore::userVisibleString):

Tools:

* TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
(TestWebKitAPI::originalDataAsString):
(TestWebKitAPI::TEST):

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

2 years agodocument.open() should not propagate URLs to non-fully active documents
cdumez@apple.com [Thu, 27 Sep 2018 16:31:53 +0000 (16:31 +0000)]
document.open() should not propagate URLs to non-fully active documents
https://bugs.webkit.org/show_bug.cgi?id=189375
<rdar://problem/44282755>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window-expected.txt:

Source/WebCore:

Update our document.open() to not propagate URLs to non-fully active documents, as per:
- https://html.spec.whatwg.org/#document-open-steps (Step 11)

A "fully active" document is defined by at:
- https://html.spec.whatwg.org/#fully-active

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::open):
(WebCore::Document::isFullyActive const):
* dom/Document.h:
* dom/Document.idl:

LayoutTests:

Update existing test to reflect behavior change. I have verified that this test was
failing in Firefox and is now passing in Firefox.

* fast/dom/resource-locations-in-created-html-document.html:

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

2 years ago[Win][WebKit] Implement authentication dialog on MiniBrowser.
Basuke.Suzuki@sony.com [Thu, 27 Sep 2018 16:27:38 +0000 (16:27 +0000)]
[Win][WebKit] Implement authentication dialog on MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=189846

Reviewed by Fujii Hironori.

It was implemented for WebKitLegacy, but not for WebKit.
Also added text field to display Realm information.

* MiniBrowser/win/Common.cpp:
(authDialogProc):
(askCredential):
(displayAuthDialog): Deleted.
* MiniBrowser/win/Common.h:
* MiniBrowser/win/MiniBrowserLib.rc:
* MiniBrowser/win/MiniBrowserLibResource.h:
* MiniBrowser/win/ResourceLoadDelegate.cpp:
(ResourceLoadDelegate::didReceiveAuthenticationChallenge):
* MiniBrowser/win/WebKitBrowserWindow.cpp:
(createString):
(createUTF8String):
(createWKString):
(createWKURL):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didReceiveAuthenticationChallenge):
(toNullTerminatedUTF8): Deleted.
* MiniBrowser/win/WebKitBrowserWindow.h:

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

2 years agoEnable getUserMedia in mini browser
youenn@apple.com [Thu, 27 Sep 2018 16:08:49 +0000 (16:08 +0000)]
Enable getUserMedia in mini browser
https://bugs.webkit.org/show_bug.cgi?id=190012

Reviewed by Eric Carlson.

Enable MediaDevices and mock capture devices.
Grant mock devices access to any getUserMedia call.
Covered by manual testing.

* MiniBrowser/mac/AppDelegate.m:
(defaultConfiguration):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[WK2BrowserWindowController _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):

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

2 years ago[MSE][GStreamer] Use sentinel buffer to detect end of append
aboya@igalia.com [Thu, 27 Sep 2018 16:03:48 +0000 (16:03 +0000)]
[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:

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

2 years agoThe WebContent process should not process incoming IPC while waiting for a sync IPC...
cdumez@apple.com [Thu, 27 Sep 2018 15:57:08 +0000 (15:57 +0000)]
The WebContent process should not process incoming IPC while waiting for a sync IPC reply
https://bugs.webkit.org/show_bug.cgi?id=184183
<rdar://problem/36800576>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop test infrastructure for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption
given that this SendOption was removed from this patch.

* page/ChromeClient.h:
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

In recent years, we have experienced re-entrancy bugs/crashes in WebCore due to the WebContent process
processing unrelated incoming synchronous IPC when waiting for a reply to one of its synchronous IPC
to another process. In order to deal with this, we introduced a DoNotProcessIncomingMessagesWhenWaitingForSyncReply
IPC::SendOption which we used on sendSync() calls where we knew re-entering would be unsafe. However,
it turns out to be needed for a lot of the WebProcess's sync IPC and it is error-prone. In order to
address the issue, we've decided to update the WebContent process behavior so that it processes all its
IPC in order (not matter if synchronous or not) and thus so that we never dispatch unrelated synchronous
IPC while waiting for a synchronous IPC reply, expect in cases where it would cause a deadlock.

As a result, this patch also drops support for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply
IPC::SendOption which is no longer needed and has some code complexity.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
* Platform/IPC/Connection.cpp:
(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):
* Platform/IPC/Connection.h:
(IPC::Connection::sendSync):
* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::WebProcessConnection):
* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::StorageToWebProcessConnection):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postSynchronousMessage):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier):
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::destroy):
(WebKit::PluginProxy::supportsSnapshotting const):
* WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::populatePluginCache):
* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::rootViewToScreen):
* WebProcess/WebProcess.cpp:
(WebKit::getNetworkProcessConnection):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

LayoutTests:

Drop test for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption as it was
removed in this patch. This SendOption is no longer useful because it is now the default behavior
for the WebContent process.

* fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply-expected.txt: Removed.
* fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply.html: Removed.

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

2 years agoUnreviewed, GTK Ubuntu LTS build fix attempt after r236396.
philn@webkit.org [Thu, 27 Sep 2018 12:51:09 +0000 (12:51 +0000)]
Unreviewed, GTK Ubuntu LTS build fix attempt after r236396.

* platform/graphics/gstreamer/GStreamerCommon.h:

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

2 years agoUnreviewed GTK WebAudio rebaseline.
philn@webkit.org [Thu, 27 Sep 2018 12:46:48 +0000 (12:46 +0000)]
Unreviewed GTK WebAudio rebaseline.

This time from the 64-bit Release bot...

* platform/gtk/webaudio/oscillator-custom-expected.wav:
* platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
* platform/gtk/webaudio/oscillator-sine-expected.wav:
* platform/gtk/webaudio/oscillator-square-expected.wav:
* platform/gtk/webaudio/oscillator-triangle-expected.wav:

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

2 years agoUnreviewed GTK WebAudio rebaselines
philn@webkit.org [Thu, 27 Sep 2018 12:14:18 +0000 (12:14 +0000)]
Unreviewed GTK WebAudio rebaselines

* platform/gtk/TestExpectations: webaudio/audioprocessingevent.html doesn't fail.
* platform/gtk/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Rebaselined.

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

2 years ago[GTK] Several tests are failing since r217598
philn@webkit.org [Thu, 27 Sep 2018 11:51:48 +0000 (11:51 +0000)]
[GTK] Several tests are failing since r217598
https://bugs.webkit.org/show_bug.cgi?id=172809

Unreviewed, GTK platform test expectations rebaseline.

* platform/gtk/TestExpectations:
* platform/gtk/http/tests/xmlhttprequest/cache-override-expected.txt: Removed.
* platform/gtk/webaudio/oscillator-custom-expected.wav:
* platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
* platform/gtk/webaudio/oscillator-sine-expected.wav:
* platform/gtk/webaudio/oscillator-square-expected.wav:
* platform/gtk/webaudio/oscillator-triangle-expected.wav:

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

2 years ago[Web Animations] Turn Web Animations with CSS integration on
graouts@webkit.org [Thu, 27 Sep 2018 09:49:52 +0000 (09:49 +0000)]
[Web Animations] Turn Web Animations with CSS integration on
https://bugs.webkit.org/show_bug.cgi?id=184819
<rdar://problem/39597337>

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

* css-animations/test_animation-cancel.html:
* css-animations/test_animation-computed-timing.html:
* css-animations/test_animation-currenttime.html:
* css-animations/test_animation-finish.html:
* css-animations/test_animation-finished.html:
* css-animations/test_animation-id.html:
* css-animations/test_animation-pausing.html:
* css-animations/test_animation-playstate.html:
* css-animations/test_animation-ready.html:
* css-animations/test_animation-reverse.html:
* css-animations/test_animation-starttime.html:
* css-animations/test_animations-dynamic-changes.html:
* css-animations/test_cssanimation-animationname.html:
* css-animations/test_document-get-animations.html:
* css-animations/test_effect-target.html:
* css-animations/test_element-get-animations.html:
* css-animations/test_event-dispatch.html:
* css-animations/test_event-order.html:
* css-animations/test_keyframeeffect-getkeyframes.html:
* css-animations/test_pseudoElement-get-animations.html:
* css-animations/test_setting-effect.html:
* css-transitions/test_animation-cancel.html:
* css-transitions/test_animation-computed-timing.html:
* css-transitions/test_animation-currenttime.html:
* css-transitions/test_animation-finished.html:
* css-transitions/test_animation-pausing.html:
* css-transitions/test_animation-ready.html:
* css-transitions/test_animation-starttime.html:
* css-transitions/test_csstransition-transitionproperty.html:
* css-transitions/test_document-get-animations.html:
* css-transitions/test_effect-target.html:
* css-transitions/test_element-get-animations.html:
* css-transitions/test_event-dispatch.html:
* css-transitions/test_keyframeeffect-getkeyframes.html:
* css-transitions/test_pseudoElement-get-animations.html:
* css-transitions/test_setting-effect.html:

LayoutTests/imported/w3c:

* web-platform-tests/css-timing-1/frames-timing-functions-output.html:
* web-platform-tests/css/css-logical/animation-003.tentative.html:
* web-platform-tests/css/css-scoping/keyframes-001.html:
* web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html:
* web-platform-tests/web-animations/interfaces/Animatable/animate.html:
* web-platform-tests/web-animations/timing-model/animations/current-time.html:

Source/WebCore:

* page/RuntimeEnabledFeatures.h:

Source/WebKit:

* Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKitLegacy/win:

* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):

Tools:

* DumpRenderTree/TestOptions.h:

LayoutTests:

* TestExpectations:
* animations/3d/matrix-transform-type-animation.html:
* animations/3d/replace-filling-transform.html:
* animations/3d/transform-origin-vs-functions.html:
* animations/3d/transform-perspective.html:
* animations/additive-transform-animations.html:
* animations/animation-border-overflow.html:
* animations/animation-callback-timestamp.html:
* animations/animation-controller-drt-api.html:
* animations/animation-direction-alternate-reverse-expected.txt:
* animations/animation-direction-alternate-reverse.html:
* animations/animation-direction-reverse-fill-mode-hardware.html:
* animations/animation-direction-reverse-hardware-opacity.html:
* animations/animation-direction-reverse-hardware.html:
* animations/animation-direction-reverse-non-hardware.html:
* animations/animation-direction-reverse-timing-functions-hardware.html:
* animations/animation-direction-reverse-timing-functions.html:
* animations/animation-direction.html:
* animations/animation-followed-by-transition.html:
* animations/animation-hit-test-transform.html:
* animations/animation-hit-test.html:
* animations/animation-internals-api-expected.txt: Removed.
* animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
* animations/animation-internals-api-multiple-keyframes.html: Removed.
* animations/animation-internals-api.html: Removed.
* animations/animation-offscreen-to-onscreen.html:
* animations/animation-playstate-paused-style-resolution.html:
* animations/big-rotation-expected.txt:
* animations/big-rotation.html:
* animations/change-completed-animation-transform.html:
* animations/change-keyframes.html:
* animations/combo-transform-rotate+scale.html:
* animations/cross-fade-background-image.html:
* animations/cross-fade-border-image-source.html:
* animations/cross-fade-list-style-image.html:
* animations/cross-fade-webkit-mask-box-image.html:
* animations/duplicate-keys-expected.html:
* animations/duplicate-keys.html:
* animations/duplicated-keyframes-name.html:
* animations/fill-forwards-end-state.html:
* animations/fill-mode-forwards-zero-duration-expected.txt:
* animations/fill-mode-forwards-zero-duration.html:
* animations/fill-mode-removed.html:
* animations/font-variations/font-stretch.html:
* animations/font-variations/font-style.html:
* animations/font-variations/font-variation-settings-order.html:
* animations/font-variations/font-variation-settings-unlike.html:
* animations/font-variations/font-variation-settings.html:
* animations/font-variations/font-weight.html:
* animations/generic-from-to.html:
* animations/import.html:
* animations/keyframe-multiple-timing-functions-transform.html:
* animations/keyframe-timing-functions-transform.html:
* animations/keyframe-timing-functions.html:
* animations/keyframe-timing-functions2.html:
* animations/keyframes-comma-separated.html:
* animations/keyframes-dynamic.html:
* animations/keyframes-infinite-iterations.html:
* animations/keyframes-invalid-keys.html:
* animations/keyframes-out-of-order.html:
* animations/keyframes.html:
* animations/leak-document-with-css-animation.html:
* animations/lineheight-animation.html:
* animations/longhand-timing-function.html:
* animations/matrix-anim.html:
* animations/missing-from-to-transforms.html:
* animations/missing-from-to.html:
* animations/missing-keyframe-properties-repeating.html:
* animations/missing-keyframe-properties-timing-function.html:
* animations/missing-keyframe-properties.html:
* animations/missing-values-first-keyframe.html:
* animations/missing-values-last-keyframe.html:
* animations/multiple-animations-timing-function.html:
* animations/multiple-animations.html:
* animations/multiple-keyframes.html:
* animations/negative-delay.html:
* animations/pause-crash.html:
* animations/play-state-start-paused.html:
* animations/resources/animation-leak-iframe.html:
* animations/simultaneous-start-left.html:
* animations/simultaneous-start-transform.html:
* animations/spring-function.html:
* animations/stacking-context-unchanged-while-running.html:
* animations/stop-animation-on-suspend.html:
* animations/suspend-resume-animation-events.html:
* animations/timing-functions.html:
* animations/transition-and-animation-1.html:
* animations/transition-and-animation-2.html:
* animations/transition-and-animation-3.html:
* animations/trigger-container-scroll-boundaries.html:
* animations/trigger-container-scroll-empty.html:
* animations/trigger-container-scroll-simple.html:
* animations/unanimated-style.html:
* animations/unprefixed-keyframes.html:
* animations/width-using-ems.html:
* compositing/animation/animated-composited-inside-hidden.html:
* compositing/animation/computed-style-during-delay.html:
* compositing/animation/layer-for-filling-animation.html:
* compositing/backing/backface-visibility-flip.html:
* compositing/backing/transform-transition-from-outside-view.html:
* compositing/contents-scale/animating.html:
* compositing/layer-creation/animation-overlap-with-children.html:
* compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
* compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
* compositing/layer-creation/mismatched-transform-transition-overlap.html:
* compositing/layer-creation/multiple-keyframes-animation-overlap.html:
* compositing/layer-creation/overlap-animation-clipping.html:
* compositing/layer-creation/overlap-animation-container.html:
* compositing/layer-creation/overlap-animation.html:
* compositing/layer-creation/scale-rotation-animation-overlap.html:
* compositing/layer-creation/scale-rotation-transition-overlap.html:
* compositing/layer-creation/translate-animation-overlap.html:
* compositing/layer-creation/translate-scale-animation-overlap.html:
* compositing/layer-creation/translate-scale-transition-overlap.html:
* compositing/layer-creation/translate-transition-overlap.html:
* compositing/overflow/overflow-positioning.html:
* compositing/reflections/animation-inside-reflection.html:
* compositing/reflections/nested-reflection-animated.html:
* compositing/reflections/nested-reflection-transition.html:
* compositing/scrolling/touch-scroll-to-clip.html:
* compositing/transitions/scale-transition-no-start.html:
* compositing/transitions/singular-scale-transition.html:
* compositing/visible-rect/animated-from-none.html:
* compositing/visible-rect/animated.html:
* css3/calc/transitions-dependent.html:
* css3/calc/transitions.html:
* css3/filters/backdrop/animation.html:
* css3/filters/composited-during-animation.html:
* css3/filters/filter-animation-from-none-hw.html:
* css3/filters/filter-animation-from-none-multi-hw.html:
* css3/filters/filter-animation-from-none-multi.html:
* css3/filters/filter-animation-from-none.html:
* css3/filters/filter-animation-hw.html:
* css3/filters/filter-animation-multi-hw.html:
* css3/filters/filter-animation-multi.html:
* css3/filters/filter-animation.html:
* css3/masking/clip-path-animation.html:
* fast/animation/css-animation-resuming-when-visible-with-style-change.html:
* fast/animation/css-animation-resuming-when-visible-with-style-change2.html:
* fast/animation/css-animation-resuming-when-visible.html:
* fast/animation/css-animation-throttling-lowPowerMode.html:
* fast/animation/height-auto-transition-computed-value.html:
* fast/css-generated-content/pseudo-animation.html:
* fast/css-generated-content/pseudo-transition.html:
* fast/filter-image/filter-image-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
* http/wpt/css/css-animations/start-animation-001.html:
* imported/blink/transitions/transition-not-interpolable.html:
* imported/blink/transitions/unprefixed-transform.html:
* platform/ios/TestExpectations:
* platform/win/TestExpectations:
* transitions/remove-transition-style.html:
* transitions/transition-drt-api-delay-expected.txt: Removed.
* transitions/transition-drt-api-delay.html: Removed.
* transitions/transition-drt-api-expected.txt: Removed.
* transitions/transition-drt-api.html: Removed.
* transitions/zero-duration-with-non-zero-delay-end.html:

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

2 years agoWeb Inspector: Hide DOM and XHR breakpoint sections when they are empty
drousso@apple.com [Thu, 27 Sep 2018 06:24:39 +0000 (06:24 +0000)]
Web Inspector: Hide DOM and XHR breakpoint sections when they are empty
https://bugs.webkit.org/show_bug.cgi?id=182406
<rdar://problem/37131512>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Combine all breakpoint sections (e.g. DOM, XHR, and Event) into the main "Breakpoints"
section, including all the various "+" buttons for creating different types of breakpoints.

Global breakpoints (except "All Exceptions" and "Uncaught Exceptions") are now deletable,
and can be re-added via the "+" button of the "Breakpoints" section. Deletable global
breakpoints (e.g. "Assertion Failures" and "All Requests") are able to remain visible while
disabled, and will only be hidden when the user specifically deletes them.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* UserInterface/Main.html:

* UserInterface/Controllers/DOMBreakpointTreeController.js: Removed.
* UserInterface/Controllers/EventBreakpointTreeController.js: Removed.
* UserInterface/Controllers/XHRBreakpointTreeController.js: Removed.

* UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype.get uncaughtExceptionsBreakpoint): Added.
(WI.DebuggerManager.prototype.get assertionFailuresBreakpoint): Added.
(WI.DebuggerManager.prototype.isBreakpointRemovable):
(WI.DebuggerManager.prototype.isBreakpointSpecial): Added.
(WI.DebuggerManager.prototype.isBreakpointEditable):
(WI.DebuggerManager.prototype.addBreakpoint):
(WI.DebuggerManager.prototype.removeBreakpoint):
(WI.DebuggerManager.prototype.initializeTarget):
(WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WI.DebuggerManager.prototype._updateBreakOnExceptionsState):
(WI.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint): Deleted.
(WI.DebuggerManager.prototype.get assertionsBreakpoint): Deleted.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Added.
(WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
(WI.DOMDebuggerManager.prototype.addXHRBreakpoint):
(WI.DOMDebuggerManager.prototype.removeXHRBreakpoint):
(WI.DOMDebuggerManager.prototype.isBreakpointRemovable): Deleted.
Always fire add/remove events, including for special breakpoints, so that any listeners will
be able to adjust accordingly. Even though special breakpoints don't get stored in the lists
held by each manager, we are still able to enable/disable them, and that should be reported.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype.closed):
(WI.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie.revealAndSelect):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):
(WI.DebuggerSidebarPanel.prototype._addBreakpoint):
(WI.DebuggerSidebarPanel.prototype._removeBreakpoint): Added.
(WI.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
(WI.DebuggerSidebarPanel.prototype._mainResourceDidChange):
(WI.DebuggerSidebarPanel.prototype._breakpointRemoved):
(WI.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
(WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
(WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Added.
(WI.DebuggerSidebarPanel.prototype._addTreeElement): Added.
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._domBreakpointResolvedStateDidChange): Added.
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Added.
(WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint): Deleted.
(WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements): Deleted.
(WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): Deleted.
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Deleted.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Deleted.
(WI.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked): Deleted.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
Unify the logic for adding/removing breakpoints of all types.

* UserInterface/Views/BreakpointTreeElement.js:
(WI.BreakpointTreeElement):
(WI.BreakpointTreeElement.prototype.ondelete):
* UserInterface/Views/DOMBreakpointTreeElement.js:
(WI.DOMBreakpointTreeElement):
(WI.DOMBreakpointTreeElement.prototype.ondelete):
* UserInterface/Views/DOMNodeTreeElement.js:
(WI.DOMNodeTreeElement):
(WI.DOMNodeTreeElement.prototype.ondelete):
(WI.DOMNodeTreeElement.prototype.populateContextMenu):
* UserInterface/Views/EventBreakpointTreeElement.js:
(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
* UserInterface/Views/XHRBreakpointTreeElement.js:
(WI.XHRBreakpointTreeElement):
(WI.XHRBreakpointTreeElement.prototype.ondelete):
(WI.XHRBreakpointTreeElement.prototype.populateContextMenu):
* UserInterface/Views/XHRBreakpointTreeElement.css: Added.
(.breakpoint.xhr .subtitle):
Add/remove checks for whether the associated breakpoint can be deleted.

* UserInterface/Views/DOMNodeTreeElement.css: Added.
(.tree-outline .item.dom-node .titles):
(.tree-outline .item.dom-node .icon):
(.tree-outline .item.dom-node:not(:hover, .selected) .status .go-to-arrow):

* UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForDOMNode):
(WI.appendContextMenuItemsForDOMNodeBreakpoints): Added.
* UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype._statusImageContextmenu):

* UserInterface/Views/XHRBreakpointPopover.js:
(WI.XHRBreakpointPopover):
(WI.XHRBreakpointPopover.prototype.get breakpoint): Added.
(WI.XHRBreakpointPopover.prototype.show):
(WI.XHRBreakpointPopover.prototype.dismiss): Added.
(WI.XHRBreakpointPopover.prototype._createEditor):
(WI.XHRBreakpointPopover.prototype._updateEditor):
(WI.XHRBreakpointPopover.prototype.get result): Deleted.
(WI.XHRBreakpointPopover.prototype.get type): Deleted.
(WI.XHRBreakpointPopover.prototype.get value): Deleted.
Drive-by: remove the erroneous usage of `WI.InputPopover.Result`.
LayoutTests:

* inspector/debugger/break-on-uncaught-exception-throw-in-promise.html:
* inspector/debugger/break-on-uncaught-exception.html:
* inspector/debugger/breakpoints-disabled-expected.txt:
* inspector/debugger/breakpoints-disabled.html:
* inspector/debugger/pause-reason.html:
* inspector/debugger/setPauseOnAssertions.html:
* inspector/worker/debugger-pause.html:

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

2 years agoWeb Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
drousso@apple.com [Thu, 27 Sep 2018 06:09:48 +0000 (06:09 +0000)]
Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
https://bugs.webkit.org/show_bug.cgi?id=189860

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* UserInterface/Base/Utilities.js:

* UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.prototype.process.getContent):
(WI.RecordingAction.prototype.process):

* UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement.prototype.onattach):

* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

* UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView.prototype._updateImageGrid):
Drive-by: don't attempt to show the image grid if we haven't called initialized yet.
* UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action.
LayoutTests:

* inspector/unit-tests/array-utilities-expected.txt:
* inspector/unit-tests/array-utilities.html:

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

2 years agoOptions::useSeparatedWXHeap() should always be false when ENABLE(FAST_JIT_PERMISSIONS...
mark.lam@apple.com [Thu, 27 Sep 2018 04:36:42 +0000 (04:36 +0000)]
Options::useSeparatedWXHeap() should always be false when ENABLE(FAST_JIT_PERMISSIONS) && CPU(ARM64E).
https://bugs.webkit.org/show_bug.cgi?id=190022
<rdar://problem/44800928>

Reviewed by Saam Barati.

* jit/ExecutableAllocator.cpp:
(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
* jit/ExecutableAllocator.h:
(JSC::performJITMemcpy):
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):

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

2 years agoWebGL 2: updated passing test expectations for deqp/primitiverestart
justin_fan@apple.com [Thu, 27 Sep 2018 02:00:32 +0000 (02:00 +0000)]
WebGL 2: updated passing test expectations for deqp/primitiverestart
https://bugs.webkit.org/show_bug.cgi?id=189981

Reviewed by Jon Lee.

Test-expectation updates for trac.webkit.org/changeset/236490; these are still to be skipped on ews.

* webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt:
* webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt:

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

2 years agoVideo track clone cannot preserve original property
commit-queue@webkit.org [Thu, 27 Sep 2018 01:42:24 +0000 (01:42 +0000)]
Video track clone cannot preserve original property
https://bugs.webkit.org/show_bug.cgi?id=189872
<rdar://problem/44706579>

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-26
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint-expected.txt:

Source/WebCore:

Fix the issue that the cloned track created by canvas.captureStream().getVideoTracks() cannot keep some attributes, such as enabled.
Updated a testcase expected result:
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html

* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack):
(WebCore::CanvasCaptureMediaStreamTrack::create):
(WebCore::CanvasCaptureMediaStreamTrack::clone):
* Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrack.h:

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