Timeline
May 20, 2017:
- 11:01 PM Changeset in webkit [217195] by
-
- 3 edits in trunk/LayoutTests
Correct line endings in a couple files.
- fast/canvas/script-tests/canvas-gradient-without-path.js:
- fast/dom/Geolocation/page-reload-cancel-permission-requests.html:
- 7:10 PM Changeset in webkit [217194] by
-
- 10 edits3 deletes in trunk
Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport
https://bugs.webkit.org/show_bug.cgi?id=172418
Reviewed by Youenn Fablet.
Source/JavaScriptCore:
Add CommonIdentifiers that are now needed.
- runtime/CommonIdentifiers.h:
Source/WebCore:
Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport to match the specification:
Firefox exposes both RTCDTMFSender and RTCStatsReport. Chrome exposes RTCStatsReport only.
RTCDTMFSender seems to be currently disabled at build time currently so the change to
its interface does not currently impact Web-exposed behavior, only the change to the
RTCStatsReport interface currently does.
No new tests, rebaselined existing test.
- Modules/mediastream/RTCDTMFSender.idl:
- Modules/mediastream/RTCStatsReport.idl:
Drop [NoInterfaceObject].
- Modules/mediastream/RTCIceCandidateEvent.cpp: Removed.
- Modules/mediastream/RTCIceCandidateEvent.h: Removed.
- Modules/mediastream/RTCIceCandidateEvent.idl: Removed.
Drop class and IDL that are no longer used. They were not even part of any project files.
RTCIceCandidateEvent has been renamed to RTCPeerConnectionIceEvent, which we support.
LayoutTests:
Rebaseline existing test to reflect change.
- platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 3:40 PM Changeset in webkit [217193] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, add scope.release() to propertyIsEnumerable functions.
https://bugs.webkit.org/show_bug.cgi?id=172411
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncPropertyIsEnumerable):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncPropertyIsEnumerable):
- 1:07 PM Changeset in webkit [217192] by
-
- 16 edits2 deletes in trunk/Source/JavaScriptCore
[JSC] Drop MapBase
https://bugs.webkit.org/show_bug.cgi?id=172417
Reviewed by Sam Weinig.
MapBase is a purely additional indirection. JSMap and JSSet can directly inherit HashMapImpl.
Thus MapBase is unnecessary. This patch drops it.
It is good because we can eliminate one indirection when accessing to map implementation.
Moreover, we can drop one unnecessary allocation per Map and Set.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
- runtime/HashMapImpl.cpp:
(JSC::HashMapImpl<HashMapBucket>::estimatedSize):
(JSC::getHashMapImplKeyClassInfo): Deleted.
(JSC::getHashMapImplKeyValueClassInfo): Deleted.
- runtime/HashMapImpl.h:
(JSC::HashMapImpl::finishCreation):
(JSC::HashMapImpl::get):
(JSC::HashMapImpl::info): Deleted.
(JSC::HashMapImpl::createStructure): Deleted.
(JSC::HashMapImpl::create): Deleted.
- runtime/JSMap.h:
(JSC::JSMap::set):
(JSC::JSMap::get): Deleted.
- runtime/JSMapIterator.cpp:
(JSC::JSMapIterator::finishCreation):
- runtime/JSSet.h:
(JSC::JSSet::add): Deleted.
- runtime/JSSetIterator.cpp:
(JSC::JSSetIterator::finishCreation):
- runtime/MapBase.cpp: Removed.
- runtime/MapBase.h: Removed.
- runtime/MapPrototype.cpp:
(JSC::mapProtoFuncSize):
- runtime/SetConstructor.cpp:
(JSC::constructSet):
- runtime/SetPrototype.cpp:
(JSC::setProtoFuncSize):
- runtime/VM.cpp:
(JSC::VM::VM):
- 1:02 PM Changeset in webkit [217191] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC] Speedup Object.assign for slow case by using propertyIsEnumerable
https://bugs.webkit.org/show_bug.cgi?id=172411
Reviewed by Sam Weinig.
We use @Reflect.@getOwnPropertyDescriptor() to check
- the descriptor exists,
- and the descriptor.enumrable is true
But Object::propertyIsEnumerable does the completely same thing without
allocating a new object for property descriptor.
In this patch, we add a new private function @propertyIsEnumerable, and
use it in Object.assign implementation. It does not allocate unnecessary
objects. It is good for GC-pressure and performance.
This patch improves SixSpeed object-assign.es6 by 1.7x. While this patch
does not introduce a fast path for objects that do not have accessors,
and it could speed up things further, this patch can speed up the common
slow path cases that is the current implementation of Object.assign.
object-assign.es6 1103.2487+-21.5602 621.8478+-34.9875 definitely 1.7741x faster
- builtins/BuiltinNames.h:
- builtins/ObjectConstructor.js:
(globalPrivate.enumerableOwnProperties):
(assign):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncPropertyIsEnumerable):
- runtime/JSGlobalObjectFunctions.h:
- 12:56 PM Changeset in webkit [217190] by
-
- 2 edits in trunk/Tools
[GTK] gtkdoc-fixxref needs --module argument to work
https://bugs.webkit.org/show_bug.cgi?id=172415
Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-05-20
Reviewed by Michael Catanzaro.
- gtk/gtkdoc.py:
(GTKDoc._run_gtkdoc_fixxref):
- 12:25 PM Changeset in webkit [217189] by
-
- 2 edits in trunk/Source/WebKit2
-Wreturn-type warning triggered by WKNotification.cpp:77
https://bugs.webkit.org/show_bug.cgi?id=172414
Reviewed by Sam Weinig.
- UIProcess/API/C/WKNotification.cpp:
(WKNotificationCopyDir):
- 12:14 PM Changeset in webkit [217188] by
-
- 7 edits in trunk
Value for iterator property is wrong for maplike interfaces
https://bugs.webkit.org/show_bug.cgi?id=172410
Reviewed by Sam Weinig.
Source/WebCore:
Value for iterator property was wrong for maplike interfaces. The iterator property is
supposed to have the same value as the 'entries' property but we were using the value
of the 'values' property.
Specification:
This impacts the iterator of the RTCStatsReport interface.
No new tests, updated existing test.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::JSMapLikePrototype::finishCreation):
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::JSReadOnlyMapLikePrototype::finishCreation):
LayoutTests:
Extend test coverage to test the RTCStatsReport iterator.
- webrtc/video-stats.html:
- 11:58 AM Changeset in webkit [217187] by
-
- 2 edits in trunk/Source/WebCore
Drop superfluous iterator property setting in addValueIterableMethods()
https://bugs.webkit.org/show_bug.cgi?id=172409
Reviewed by Youenn Fablet.
Drop superfluous iterator setting in addValueIterableMethods(). The bindings already take care of
adding the iterator property before calling addValueIterableMethods().
No new tests, no Web-facing behavior change.
- bindings/js/JSDOMIterator.cpp:
(WebCore::addValueIterableMethods):
- 11:15 AM Changeset in webkit [217186] by
-
- 2 edits in trunk/Tools
make-new-script-test should create tests that use js-test.js, not js-test-pre.js
https://bugs.webkit.org/show_bug.cgi?id=172416
Reviewed by Daniel Bates.
- Scripts/make-new-script-test:
- 9:55 AM Changeset in webkit [217185] by
-
- 19 edits6 adds in trunk
[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-paint-to-canvas.html
In order to have access to decoded video data for painting, decode the encoded samples manually
instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new
utility class WebCoreDecompressionSession, which can decode samples and store them.
For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication
of our sample delivery pipeline, we will only support painting of decoded video samples when the video is
not displayed in the DOM.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added.
- Modules/mediasource/SourceBuffer.h:
- WebCore.xcodeproj/project.pbxproj:
- platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros.
- platform/cf/CoreMediaSoftLink.h: Ditto.
- platform/cocoa/CoreVideoSoftLink.cpp: Ditto.
- platform/cocoa/CoreVideoSoftLink.h: Ditto.
- platform/graphics/SourceBufferPrivateClient.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session..
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted.
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo().
(WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer.
(WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session.
(WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected
buffer and add the decompression session or layer to the newly selected buffer.
(WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession.
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes.
(WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added.
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added.
- platform/graphics/cocoa/WebCoreDecompressionSession.h: Added.
(WebCore::WebCoreDecompressionSession::create):
(WebCore::WebCoreDecompressionSession::isInvalidated):
(WebCore::WebCoreDecompressionSession::createWeakPtr):
- platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added.
(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests.
(WebCore::WebCoreDecompressionSession::invalidate): Unregister for same.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts.
(WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue.
(WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample.
(WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput.
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread.
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame).
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count.
(WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady):
(WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same.
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued.
(WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time.
(WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues.
(WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method.
(WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto.
(WebCore::WebCoreDecompressionSession::getDuration): Ditto.
(WebCore::WebCoreDecompressionSession::compareBuffers): Ditto.
- platform/cocoa/VideoToolboxSoftLink.cpp: Added.
- platform/cocoa/VideoToolboxSoftLink.h: Added.
LayoutTests:
- media/media-source/content/test-fragmented.mp4: Add a 'edts' atom to move the presentation time for the
first sample to 0:00.
- media/media-source/content/test-fragmented-manifest.json:
- media/media-source/media-source-paint-to-canvas-expected.txt: Added.
- media/media-source/media-source-paint-to-canvas.html: Added.
May 19, 2017:
- 11:55 PM Changeset in webkit [217184] by
-
- 2 edits1 add in trunk/Tools
[Win] error LNK2005: WebCore::JSNode::checkSubClassPatchpoint() already defined in WebKit.lib
https://bugs.webkit.org/show_bug.cgi?id=172267
Patch by Fujii Hironori <Fujii Hironori> on 2017-05-19
Reviewed by Per Arne Vollan.
TestWebCoreLib and TestWebKitLib have linked both WebCore and WebKit.
TestWebCoreLib should link only with WebCore. And, TestWebKitLib
should link only with WebKit.
Unfortunately, there is a layer violation at the moment.
WebCore::Image::loadPlatformResource needs loadResourceIntoBuffer
in WebKit. This change contains a stub of loadResourceIntoBuffer
in TestWebCoreLib for the workaround.
- TestWebKitAPI/PlatformWin.cmake: Do not link WebKit to
TestWebCoreLib. Do not link WebCore to TestWebKitLib.
- TestWebKitAPI/win/TestWebCoreStubs.cpp: Added.
(loadResourceIntoBuffer): Added a stub.
- 9:24 PM Changeset in webkit [217183] by
-
- 2 edits in trunk/Source/WebCore
WebAVStreamDataParserListener String leak
https://bugs.webkit.org/show_bug.cgi?id=172395
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-19
Reviewed by Chris Dumez.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]):
Use an isolated String in a lambda used across threads.
- 8:31 PM Changeset in webkit [217182] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Enable testapi on Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=172354
Reviewed by Alex Christensen.
This patch makes testapi buildable and runnable for Mac CMake port.
- API/tests/DateTests.mm:
(+[DateTests JSDateToNSDateTest]):
(+[DateTests roundTripThroughJSDateTest]):
This test only works with the en_US locale.
- shell/CMakeLists.txt:
- shell/PlatformMac.cmake:
Some of tests rely on ARC. We enable ARC for those files.
- shell/PlatformWin.cmake:
Clean up.
- 7:30 PM Changeset in webkit [217181] by
-
- 4 edits in trunk
Consider not exposing webkitURL in workers
https://bugs.webkit.org/show_bug.cgi?id=172166
Reviewed by Geoffrey Garen.
Source/WebCore:
Drop webkitURL alias for URL in workers, to match other browsers. The risk should
be low given that this only impacts workers, we expose URL to workers and Blink
does not have this alias. We still support the webkitURL alias for URL on Window.
No new tests, rebaselined existing test.
- workers/WorkerGlobalScope.idl:
LayoutTests:
Rebaseline existing test to reflect behavior change.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
- 6:59 PM Changeset in webkit [217180] by
-
- 2 edits in trunk/Source/WebCore
Add RTCPeerConnection connection state change logging
https://bugs.webkit.org/show_bug.cgi?id=172314
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-19
Reviewed by Eric Carlson.
No change of behavior.
Adding some release logging of connection state changes.
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::rtcIceGatheringStateToString):
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::rtcIceConnectionStateToString):
(WebCore::RTCPeerConnection::updateIceConnectionState):
- 5:59 PM Changeset in webkit [217179] by
-
- 12 edits1 add in trunk
[Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
https://bugs.webkit.org/show_bug.cgi?id=172383
<rdar://problem/31418651>
Reviewed by Filip Pizlo.
JSTests:
- stress/regress-172383.js: Added.
Source/JavaScriptCore:
pickCanTrample() is wrongly assuming that one of regT0 and regT1 is always
available as a scratch register. This assumption is wrong if this canTrample
register is used for a silentFill() after an operation that returns a result in
regT0 or regT1.
Turns out the only reason we need the canTrample register is for
SetDoubleConstant. We can remove the need for this canTrample register by
introducing a moveDouble() pseudo instruction in the MacroAssembler to do the
job using the scratchRegister() on X86_64 or the dataMemoryTempRegister() on
ARM64. In so doing, we can simplify the silentFill() code and eliminate the bug.
Update for re-landing: Changed ARM64 to use scratchRegister() as well.
scratchRegister() is the proper way to get the underlying dataMemoryTempRegister()
as a scratch register.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::moveDouble):
- dfg/DFGArrayifySlowPathGenerator.h:
- dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
(JSC::DFG::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator):
- dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
- dfg/DFGSaneStringGetByValSlowPathGenerator.h:
- dfg/DFGSlowPathGenerator.h:
(JSC::DFG::CallSlowPathGenerator::tearDown):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::silentSpillAllRegisters):
(JSC::DFG::SpeculativeJIT::silentFillAllRegisters):
(JSC::DFG::SpeculativeJIT::pickCanTrample): Deleted.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertAnyInt):
- 5:58 PM Changeset in webkit [217178] by
-
- 28 edits5 adds in branches/safari-603-branch
Cherry-pick r216541. rdar://problem/31971362
- 5:43 PM Changeset in webkit [217177] by
-
- 4 edits in branches/safari-603-branch/LayoutTests
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/TestExpectations:
- 5:27 PM Changeset in webkit [217176] by
-
- 6 edits2 copies in trunk
webkitSupportsFullscreen and webkitSupportsPresentationMode('fullscreen') disagree.
https://bugs.webkit.org/show_bug.cgi?id=172329
rdar://problem/32260891
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Darin Adler.
Source/WebCore:
Updated tests:
- media/media-fullscreen-inline-expected.txt:
- media/media-fullscreen-not-in-document-expected.txt:
- media/media-fullscreen.js:
webkitSupportsPresentationMode('fullscreen') should delegate to webkitSupportsFullscreen.
The additional mediaSession().fullscreenPermitted() check causes it to return false when
not handling a user gesture, which isn't helpful to deciding to show a button in controls
or not.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode):
LayoutTests:
webkitSupportsPresentationMode('fullscreen') should delegate to webkitSupportsFullscreen.
The additional mediaSession().fullscreenPermitted() check causes it to return false when
not handling a user gesture, which isn't helpful to deciding to show a button in controls
or not.
- media/media-fullscreen-inline-expected.txt:
- media/media-fullscreen-not-in-document-expected.txt:
- media/media-fullscreen.js:
(canplaythrough):
- platform/mac-elcapitan/media/media-fullscreen-inline-expected.txt:
- platform/mac-elcapitan/media/media-fullscreen-not-in-document-expected.txt:
- 5:25 PM Changeset in webkit [217175] by
-
- 9 edits in trunk/Source/WebCore
Prevent javascript interface from activating picture-in-picture for video elements that are showing capture camera on ios.
https://bugs.webkit.org/show_bug.cgi?id=172328
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Eric Carlson.
This change allows MediaPlayers to decide if they support pictureInPicture.
And check this from supportsFullscreen().
In MediaPlayerPrivateMediaStreamAVFObjC disable pip if there is a capture video track.
Elsewhere, leave it enabled.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::supportsFullscreen): Added Check.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::supportsPictureInPicture): Added.
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::supportsPictureInPicture): Added.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::supportsPictureInPicture): Added
- platform/graphics/mac/MediaPlayerPrivateQTKit.h:
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::supportsFullscreen): Deleted. Moved inline.
- 5:18 PM Changeset in webkit [217174] by
-
- 4 edits in trunk/LayoutTests
Marked webrtc/datachannel/filter-ice-candidate.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171061
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 5:03 PM Changeset in webkit [217173] by
-
- 6 edits in trunk/Websites/perf.webkit.org
Add a commit log viewer next to the analysis results viewer
https://bugs.webkit.org/show_bug.cgi?id=172399
Reviewed by Chris Dumez.
Add a commit log viewer next to the analysis results viewer, which visualizes the A/B testing results.
Also linkify the revisions in the table that shows the status of each A/B testing job,
and allow the prefix of "r" when associating a Subversion revision.
Finally, Fixed a bug that the list of commits associated with the analysis task were not re-rendered
when the list was updated by the user.
- public/v3/components/analysis-results-viewer.js:
(AnalysisResultsViewer): Added _selectorRadioButtonList as an instance variable. It's a list of radio
buttons to select a configuration (A/B) with a commit set. It's added to update the checked status of
radio buttons upon changing the currently selected test group.
(AnalysisResultsViewer.prototype.setTestGroups): Update the selected range to that of the currently
selected group.
(AnalysisResultsViewer.prototype.render): Fill _selectorRadioButtonList with radio buttons.
- public/v3/components/commit-log-viewer.js:
(CommitLogViewer): Added _showRepositoryName as an instance variable.
(CommitLogViewer.prototype.setShowRepositoryName): Added.
(CommitLogViewer.prototype.render): Hide the repository name when _showRepositoryName is false. This
is used in the newly added commit log viewer for the analysis results since we're showing a select
element with all the names of repositories above this component.
- public/v3/components/test-group-revision-table.js:
(TestGroupRevisionTable.prototype._buildCommitCell): Linkify the revisions if possible.
- public/v3/models/analysis-task.js:
(AnalysisTask.prototype.associateCommit): Strip "r" at the beginning for a Subversion like r12345
since that's the format we use to show to the user. This makes copy & paste easier.
- public/v3/pages/analysis-task-page.js:
(AnalysisTaskResultsPane): Added a bunch of new instance variables to show and update the commit log
viewer next to the analysis results viewer.
(AnalysisTaskResultsPane.prototype.setPoints): Create the list of repositories to show details.
(AnalysisTaskResultsPane.prototype.didConstructShadowTree): Re-render when the current selected test
group changes since that may have updated the selected range for A/B testing. Also re-render when
a new repository is selected to show details.
(AnalysisTaskResultsPane.prototype.render): Update the list of repositories and the commit log viewer.
(AnalysisTaskResultsPane.prototype._renderRepositoryList): Renders the list of repositories.
(AnalysisTaskResultsPane.prototype._updateCommitViewer): Updates the commit log viewer given the range
selected in the analysis results viewer.
(AnalysisTaskResultsPane.htmlTemplate): Updated the template.
(AnalysisTaskResultsPane.cssTemplate): Ditto.
(AnalysisTaskTestGroupPane.cssTemplate): Add a little space between the list of results and the table
of A/B testing jobs with revisions.
(AnalysisTaskPage.prototype.render): Fixed the bug that the list of commits associated with the task
is not updated when the list changes the task or the start point never changed when the list of commits
associated with the task changed. Make the lazily evaluated function compare the actual list of commits
so that it will invoke _renderCauseAndFixes when the list changes.
(AnalysisTaskPage.prototype._renderCauseAndFixes): Now renders a specific list.
- 5:00 PM Changeset in webkit [217172] by
-
- 3 edits2 adds in trunk
Do not fire load event for SVGElements that are detached or in frameless documents
https://bugs.webkit.org/show_bug.cgi?id=172289
<rdar://problem/32275689>
Reviewed by Ryosuke Niwa.
Source/WebCore:
We should not fire load event for SVGElements that are detached or in frameless
documents.
Test: svg/load-event-detached.html
- svg/SVGElement.cpp:
(WebCore::SVGElement::sendSVGLoadEventIfPossible):
LayoutTests:
Add layout test coverage.
- svg/load-event-detached-expected.txt: Added.
- svg/load-event-detached.html: Added.
- 4:37 PM Changeset in webkit [217171] by
-
- 91 edits in trunk/LayoutTests
Many accessibility js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172372
Reviewed by Tim Horton.
Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.
- accessibility/anonymous-render-block-in-continuation-causes-crash-expected.txt:
- accessibility/anonymous-render-block-in-continuation-causes-crash.html:
- accessibility/aria-checkbox-sends-notification.html:
- accessibility/aria-invalid.html:
- accessibility/aria-switch-sends-notification.html:
- accessibility/deleting-iframe-destroys-axcache.html:
- accessibility/file-upload-button-with-axpress.html:
- accessibility/frame-disconnect-textmarker-cache-crash-expected.txt:
- accessibility/frame-disconnect-textmarker-cache-crash.html:
- accessibility/gtk/aria-listbox-crash.html:
- accessibility/heading-title-includes-links-expected.txt:
- accessibility/heading-title-includes-links.html:
- accessibility/image-map-update-parent-crash-expected.txt:
- accessibility/image-map-update-parent-crash.html:
- accessibility/insert-children-assert-expected.txt:
- accessibility/insert-children-assert.html:
- accessibility/ios-simulator/focus-change-notifications.html:
- accessibility/label-element-press.html:
- accessibility/loading-iframe-updates-axtree.html:
- accessibility/mac/aria-expanded-notifications.html:
- accessibility/mac/aria-listbox-selectedchildren-change.html:
- accessibility/mac/aria-liveregion-on-image.html:
- accessibility/mac/aria-liveregions-addedelement.html:
- accessibility/mac/aria-liveregions-changedalt.html:
- accessibility/mac/aria-liveregions-changedtext.html:
- accessibility/mac/aria-liveregions-removedelement.html:
- accessibility/mac/combobox-activedescendant-notifications-expected.txt:
- accessibility/mac/combobox-activedescendant-notifications.html:
- accessibility/mac/focus-setting-selection-syncronizing-not-clearing-expected.txt:
- accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html:
- accessibility/mac/html-slider-indicator.html:
- accessibility/mac/input-replacevalue-userinfo-expected.txt:
- accessibility/mac/input-replacevalue-userinfo.html:
- accessibility/mac/ordered-textmarker-crash-expected.txt:
- accessibility/mac/ordered-textmarker-crash.html:
- accessibility/mac/search-with-frames-expected.txt:
- accessibility/mac/search-with-frames.html:
- accessibility/mac/selection-boundary-userinfo.html:
- accessibility/mac/selection-change-userinfo.html:
- accessibility/mac/selection-element-tabbing-to-link.html:
- accessibility/mac/selection-value-changes-for-aria-textbox.html:
- accessibility/mac/stale-textmarker-crash-expected.txt:
- accessibility/mac/stale-textmarker-crash.html:
- accessibility/mac/textbox-role-reports-notifications-expected.txt:
- accessibility/mac/textbox-role-reports-notifications.html:
- accessibility/mac/value-change/value-change-user-info-contenteditable.html:
- accessibility/mac/value-change/value-change-user-info-textarea.html:
- accessibility/mac/value-change/value-change-user-info-textfield.html:
- accessibility/media-element.html:
- accessibility/menu-list-sends-change-notification.html:
- accessibility/multiselect-list-reports-active-option.html:
- accessibility/paragraph-with-linebreaks.html:
- accessibility/platform-name.html:
- accessibility/radio-button-group-members.html:
- accessibility/radio-button-title-label.html:
- accessibility/selection-states-expected.txt:
- accessibility/selection-states.html:
- accessibility/spinbutton-value.html:
- accessibility/svg-bounds.html:
- accessibility/table-cell-for-column-and-row-crash.html:
- accessibility/table-cells-roles.html:
- accessibility/table-roles-hierarchy.html:
- accessibility/table-with-aria-role.html:
- accessibility/textarea-insertion-point-line-number.html:
- accessibility/textbox-role-reports-selection.html:
- accessibility/title-ui-element-correctness.html:
- accessibility/unknown-roles-not-exposed-expected.txt:
- accessibility/unknown-roles-not-exposed.html:
- accessibility/win/bstr-elements-role.html:
- accessibility/win/detached-object-notification-crash.html:
- accessibility/win/heading-elements.html:
- accessibility/win/img-alt-attribute.html:
- accessibility/win/linked-elements.html:
- accessibility/win/list-item-role.html:
- accessibility/win/list-marker-role.html:
- accessibility/win/list-role.html:
- accessibility/win/multiple-select-element-role.html:
- accessibility/win/option-element-position-and-size.html:
- accessibility/win/parent-element.html:
- accessibility/win/select-element-role.html:
- accessibility/win/selection-and-focus.html:
- accessibility/win/single-select-children-changed.html:
- accessibility/win/single-select-children.html:
- accessibility/win/text-role.html:
- platform/mac-wk1/accessibility/loading-iframe-updates-axtree-expected.txt:
- platform/mac-wk2/accessibility/deleting-iframe-destroys-axcache-expected.txt:
- platform/mac/accessibility/deleting-iframe-destroys-axcache-expected.txt:
- platform/mac/accessibility/media-element-expected.txt:
- platform/mac/accessibility/table-cells-roles-expected.txt:
- platform/mac/accessibility/table-roles-hierarchy-expected.txt:
- 4:30 PM Changeset in webkit [217170] by
-
- 2 edits in trunk/LayoutTests
Rebaselined js/dom/global-constructors-attributes.html after revision 217129
Unreviewed test gardening.
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 4:25 PM Changeset in webkit [217169] by
-
- 12 edits1 delete in trunk
Unreviewed, rolling out r217156.
This change broke the iOS build.
Reverted changeset:
"DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
result registers."
https://bugs.webkit.org/show_bug.cgi?id=172383
http://trac.webkit.org/changeset/217156
- 4:20 PM Changeset in webkit [217168] by
-
- 6 edits4 adds in trunk
Option() named constructor is not per spec
https://bugs.webkit.org/show_bug.cgi?id=172185
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Import test coverage from upstream web-platform-tests at 8b69df3a68.
- web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor.html: Added.
- web-platform-tests/html/semantics/forms/the-option-element/option-index-expected.txt: Added.
- web-platform-tests/html/semantics/forms/the-option-element/option-index.html: Added.
- web-platform-tests/html/semantics/forms/the-option-element/w3c-import.log:
Source/WebCore:
Align the behavior of the Option() named constructor with the HTML specification:
In particular, we no longer create an empty Text child node if the input text is the empty string.
This also aligns our behavior with Firefox.
Test: imported/w3c/web-platform-tests/html/semantics/forms/the-option-element/option-element-constructor.html
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
- html/HTMLOptionElement.h:
- html/HTMLOptionElement.idl:
- 4:14 PM Changeset in webkit [217167] by
-
- 2 edits in trunk/Tools
Fix dump-class-layout to handle different file architectures
https://bugs.webkit.org/show_bug.cgi?id=172392
Reviewed by Zalan Bujtas.
Instead of using lldb.LLDB_ARCH_DEFAULT by default, run 'file' on the binary
and use the first architecture reported. Also add a "--architecture" argument
to allow the user to specify an architecture.
- Scripts/dump-class-layout:
(import_lldb):
(verify_type_recursive):
(get_first_file_architecture):
(dump_class):
(main):
(find_build_directory): Deleted.
- 4:07 PM Changeset in webkit [217166] by
-
- 13 edits in trunk
URLSearchParams / Headers objects @@iterator is not as per Web IDL spec
https://bugs.webkit.org/show_bug.cgi?id=172218
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline web-platform-tests that are now passing.
- web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
- web-platform-tests/url/interfaces.any-expected.txt:
- web-platform-tests/url/interfaces.any.worker-expected.txt:
Source/WebCore:
Both URLSearchParams and Headers interfaces are iterable as per their
respective specification, and they both have a pair iterator:
- https://url.spec.whatwg.org/#interface-urlsearchparams
- https://fetch.spec.whatwg.org/#headers-class
As per the WebIDL specification for 'entries'[1], "If the interface has a pair
iterator, then the Function object is the value of the @@iterator property",
the value of @@iterator being defined at [2]. In WebKit, we were using
different values/functions for 'entries' and @@iterator, although those
functions were doing the same thing (and the right thing).
Also, as per [2], the name of the @@iterator function should be "entries",
which I also implemented in this patch. Previously, we were using
"[Symbol.Iterator]" as function name.
[1] https://heycam.github.io/webidl/#es-iterable-entries
[2] https://heycam.github.io/webidl/#es-iterator
No new tests, rebaselined existing tests.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateImplementationIterableFunctions):
- bindings/scripts/test/JS/JSMapLike.cpp:
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterablePrototype::finishCreation):
(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
LayoutTests:
- fast/text/font-face-set-javascript-expected.txt:
- fast/text/font-face-set-javascript.html:
Fix FontFaceSet test which wrong expected FontFaceSet's entries() to return
a pair iterator. It does not make sense to return a pair iterator here given
that this is not a key-value structure. FontFaceSet should not even have an
entries() method but this is an artifact of us using iterable<FontFace> instead of
setlike<FontFace> until we support setlike<> (Bug 159140).
- 4:02 PM Changeset in webkit [217165] by
-
- 2 edits in trunk/Tools
Unreviewed infrastructure fix.
- Scripts/webkitpy/port/ios_simulator.py:
(IOSSimulatorPort._create_devices): Ignore failure to open Simulator.app.
- 3:54 PM Changeset in webkit [217164] by
-
- 6 edits2 adds in trunk
Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent().
https://bugs.webkit.org/show_bug.cgi?id=172309
<rdar://problem/32262357>
Reviewed by Simon Fraser.
Source/WebCore:
This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION.
In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which
keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we
re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function.
In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it
later, while accessing the children list. However this redundant ellipsis box was never added to the line,
so the assertion hits incorrectly.
Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::EllipsisBox):
- rendering/InlineBox.cpp: This needs 32bits padding.
(WebCore::InlineBox::invalidateParentChildList):
- rendering/InlineBox.h:
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::placeEllipsis):
LayoutTests:
- fast/inline/redundant-ellipsis-triggers-assert-incorrectly-expected.txt: Added.
- fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html: Added.
- 3:51 PM Changeset in webkit [217163] by
-
- 2 edits in branches/safari-603-branch/Source/WebCore
Cherry-pick r215091. rdar://problem/32279160
- 3:51 PM Changeset in webkit [217162] by
-
- 3 edits in branches/safari-603-branch/Source/WebCore
Build Fix: Disabling WritableStream and ReadableByteStream.
<rdar://problem/32057089> Grizzly: Outdated WritableStream API shipped in Safari 10.1
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-19
- Modules/streams/ReadableStream.js:
(initializeReadableStream): Throwing in case the source type is bytes.
- Modules/streams/WritableStream.idl: Making it dependent on writable stream API flag.
- 3:42 PM Changeset in webkit [217161] by
-
- 4 edits in trunk
REGRESSION(r217118): Speedometer 2.0: Flight.js test is broken
https://bugs.webkit.org/show_bug.cgi?id=172394
Reviewed by Chris Dumez.
PerformanceTests:
Fixed the bug that we were never clearing window.checkLoadedTimeoutId.
- Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
(newContext.checkLoaded):
Websites/browserbench.org:
Merge the fix.
- Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
(newContext.checkLoaded):
- 3:38 PM Changeset in webkit [217160] by
-
- 7 edits in branches/safari-604.1.21-branch/Source
Versioning.
- 3:36 PM Changeset in webkit [217159] by
-
- 1 copy in tags/Safari-604.1.21.7
Tag Safari-604.1.21.7.
- 3:31 PM Changeset in webkit [217158] by
-
- 2 edits in trunk/Source/WebKit2
Resource Load Statistics: Use WebProcessPool::allProcessPools() when sending message to network process about partitioning
https://bugs.webkit.org/show_bug.cgi?id=172370
<rdar://problem/32288012>
Reviewed by Alex Christensen.
The existing test case
http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html
is currently failing and should start passing again with this patch.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::shouldPartitionCookiesForTopPrivatelyOwnedDomains):
- 3:28 PM Changeset in webkit [217157] by
-
- 3 edits1 add in trunk
Add missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=172346
<rdar://problem/32289640>
Reviewed by Geoffrey Garen.
JSTests:
- stress/regress-172346.js: Added.
Source/JavaScriptCore:
- runtime/JSObject.cpp:
(JSC::JSObject::hasInstance):
- 3:25 PM Changeset in webkit [217156] by
-
- 12 edits1 add in trunk
DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
https://bugs.webkit.org/show_bug.cgi?id=172383
<rdar://problem/31418651>
Reviewed by Filip Pizlo.
JSTests:
- stress/regress-172383.js: Added.
Source/JavaScriptCore:
pickCanTrample() is wrongly assuming that one of regT0 and regT1 is always
available as a scratch register. This assumption is wrong if this canTrample
register is used for a silentFill() after an operation that returns a result in
regT0 or regT1.
Turns out the only reason we need the canTrample register is for
SetDoubleConstant. We can remove the need for this canTrample register by
introducing a moveDouble() pseudo instruction in the MacroAssembler to do the
job using the scratchRegister() on X86_64 or the dataMemoryTempRegister() on
ARM64. In so doing, we can simplify the silentFill() code and eliminate the bug.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::moveDouble):
- dfg/DFGArrayifySlowPathGenerator.h:
- dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
(JSC::DFG::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableStructureVariableSizeSlowPathGenerator):
- dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
- dfg/DFGSaneStringGetByValSlowPathGenerator.h:
- dfg/DFGSlowPathGenerator.h:
(JSC::DFG::CallSlowPathGenerator::tearDown):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileInstanceOfForObject):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::silentSpillAllRegisters):
(JSC::DFG::SpeculativeJIT::silentFillAllRegisters):
(JSC::DFG::SpeculativeJIT::pickCanTrample): Deleted.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::convertAnyInt):
- 3:24 PM Changeset in webkit [217155] by
-
- 2 edits in trunk/LayoutTests
LayoutTest js/Promise-types.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=171739
Unreviewed follow-up fix for JSC tests.
- js/script-tests/Promise-types.js:
- 3:17 PM Changeset in webkit [217154] by
-
- 8 edits in trunk/Websites/browserbench.org
Merge Speedometer 2.0 fixes up to r217121 to browserbench.org
https://bugs.webkit.org/show_bug.cgi?id=172389
Rubber-stamped by Chris Dumez.
Merged the various fixes for Speedometer 2.0 starting from r217107 through r217121.
- Speedometer2.0/InteractiveRunner.html:
- Speedometer2.0/resources/benchmark-runner.js:
- Speedometer2.0/resources/tests.js:
- Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/main.js:
- Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
- Speedometer2.0/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
- Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
- 3:11 PM Changeset in webkit [217153] by
-
- 16 edits in trunk/Source/WebKit2
[WK2] Notify client when a process exceeds background CPU limit while in the foreground
https://bugs.webkit.org/show_bug.cgi?id=172246
<rdar://problem/32235411>
Reviewed by Geoffrey Garen.
When there is a background CPU limit set by the client, we now monitor the CPU
usages of all WebContent processes, not just the non-visible ones. This way, we
are now able to notify the client a process has exceeded the background CPU
limit while in the foreground, via the UIClient's didExceedBackgroundResourceLimitWhileInForeground
function, passing kWKResourceLimitCPU.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy):
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::cpuLimit):
(API::PageConfiguration::setCPULimit):
- UIProcess/API/C/WKPageConfigurationRef.cpp:
(WKPageConfigurationSetBackgroundCPULimit):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::didExceedInactiveMemoryLimitWhileActive):
(WebKit::WebPageProxy::didExceedBackgroundCPULimitWhileInForeground):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didExceedCPULimit):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_cpuLimit):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::cpuLimit):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::updateCPULimit):
(WebKit::WebProcess::updateCPUMonitorState):
(WebKit::WebProcess::pageActivityStateDidChange):
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::updateCPULimit):
(WebKit::WebProcess::updateCPUMonitorState):
- 2:56 PM Changeset in webkit [217152] by
-
- 4 edits1 add in trunk
Inherit media user gestures from the top document when autoplay quirks are allowed.
https://bugs.webkit.org/show_bug.cgi?id=172375
Reviewed by Eric Carlson.
Added API test.
- dom/Document.cpp:
(WebCore::Document::processingUserGestureForMedia):
- 2:41 PM Changeset in webkit [217151] by
-
- 10 edits in trunk
Align MockRealtimeMediaSourceCenter with RealtimeMediaSourceCenter
https://bugs.webkit.org/show_bug.cgi?id=172324
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-19
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior.
Remove most of MockRealtimeMediaSourceCenter implementation.
Next step should be to remove it entirely and use the factory setters instead.
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
(WebCore::RealtimeMediaSourceCenter::createMediaStream):
(WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices):
(WebCore::RealtimeMediaSourceCenter::setDeviceEnabled):
- platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::supportedConstraints):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::MockCaptureDeviceManager::captureDevices):
- platform/mock/MockRealtimeMediaSourceCenter.h:
LayoutTests:
- fast/mediastream/mock-media-source-webaudio.html:
- 2:19 PM Changeset in webkit [217150] by
-
- 42 edits in trunk/LayoutTests
Many CSS js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172379
Reviewed by Tim Horton.
Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.
- css3/filters/should-not-have-compositing-layer-expected.txt:
- css3/filters/should-not-have-compositing-layer.html:
- css3/scroll-snap/nested-elements-expected.txt:
- css3/scroll-snap/nested-elements.html:
- css3/scroll-snap/scroll-snap-2d-change-axis-type-expected.txt:
- css3/scroll-snap/scroll-snap-2d-change-axis-type.html:
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently-expected.txt:
- css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html:
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children-expected.txt:
- css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html:
- css3/scroll-snap/scroll-snap-mismatch-expected.txt:
- css3/scroll-snap/scroll-snap-mismatch.html:
- css3/scroll-snap/scroll-snap-offsets-expected.txt:
- css3/scroll-snap/scroll-snap-offsets.html:
- css3/scroll-snap/scroll-snap-positions-expected.txt:
- css3/scroll-snap/scroll-snap-positions-mainframe-expected.txt:
- css3/scroll-snap/scroll-snap-positions-mainframe.html:
- css3/scroll-snap/scroll-snap-positions-overflow-resize-expected.txt:
- css3/scroll-snap/scroll-snap-positions-overflow-resize.html:
- css3/scroll-snap/scroll-snap-positions.html:
- css3/scroll-snap/scroll-snap-style-changed-align-expected.txt:
- css3/scroll-snap/scroll-snap-style-changed-align.html:
- css3/touch-action/touch-action-manipulation-fast-clicks.html:
- fast/css/counters/2displays-expected.txt:
- fast/css/counters/2displays.html:
- fast/css/counters/after-continuation-expected.txt:
- fast/css/counters/after-continuation.html:
- fast/css/counters/counter-increment-inherit-expected.txt:
- fast/css/counters/counter-increment-inherit.htm:
- fast/css/counters/counter-increment-tests-expected.txt:
- fast/css/counters/counter-increment-tests.htm:
- fast/css/device-aspect-ratio.html:
- fast/css/hover-display-block-inline-expected.txt:
- fast/css/hover-display-block-inline.html:
- fast/css/hover-display-block-none-expected.txt:
- fast/css/hover-display-block-none.html:
- fast/css/image-resolution/image-resolution.html:
- fast/css/max-device-aspect-ratio.html:
- fast/css/min-device-aspect-ratio.html:
- fast/css/pseudo-target-indirect-sibling-001.html:
- fast/css/pseudo-target-indirect-sibling-002.html:
- 2:08 PM Changeset in webkit [217149] by
-
- 2 edits in trunk/Source/JavaScriptCore
Deduplicate some code in arrayProtoPrivateFuncConcatMemcpy
https://bugs.webkit.org/show_bug.cgi?id=172382
Reviewed by Saam Barati.
This is just a small clean-up - my last patch here created some unnecessary code duplication.
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoPrivateFuncConcatMemcpy):
- 1:47 PM Changeset in webkit [217148] by
-
- 2 edits in trunk/Source/WebCore
Update SameSizeAsInlineBox with the correct InlineBoxBitfields bits.
https://bugs.webkit.org/show_bug.cgi?id=172377
Reviewed by Tim Horton.
- rendering/InlineBox.cpp:
- 1:47 PM Changeset in webkit [217147] by
-
- 4 edits in trunk/Tools
webkitpy: Use simctl boot to run multiple simulators at once
https://bugs.webkit.org/show_bug.cgi?id=172374
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.xcode_version): Return the current version of Xcode.
- Scripts/webkitpy/common/system/platforminfo_mock.py:
(MockPlatformInfo.xcode_version): Return version 8.0 for testing.
- Scripts/webkitpy/port/ios_simulator.py:
(IOSSimulatorPort.use_multiple_simulator_apps): Return true if we need to
run multiple Simulator.app instances.
(IOSSimulatorPort._create_simulators): Only copy the simulator app for older
versions of Xcode.
(IOSSimulatorPort._create_devices): Use 'simctl boot' directly unless using
an older version of Xcode.
- 1:13 PM Changeset in webkit [217146] by
-
- 6 edits in trunk/Source/WebCore
Bindings: Support runtime-enabled features in specific worlds
https://bugs.webkit.org/show_bug.cgi?id=172235
Reviewed by Chris Dumez.
Currently a function, attribute, or interface can be annotated with either EnabledAtRuntime
or EnabledForWorld (not both) to expose/conceal it depending on the state of a runtime
feature flag or the DOM world associated with the running JavaScript code, respectively.
Even though we do not have any functions, attributes, or interfaces that are annotated
with both EnabledAtRuntime and EnabledForWorld at the time of writing, it seems reasonable
to support such a combination of annotations. This also has the benefit of making it
straightforward to support the extended attribute SecureContext by generalizing the logic
that generates the code to expose/conceal a function, attribute, or interface.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateRuntimeEnableConditionalString): Use an array to build up all the conjuncts in
the conditional expression.
(GenerateImplementation): Substitute GenerateRuntimeEnableConditionalString() and $runtimeEnableConditionalString
for GetRuntimeEnableFunctionName() and $enable_function_result, respectively.
(GetRuntimeEnableFunctionName): Deleted.
- bindings/scripts/test/JS/JSTestGlobalObject.cpp: (WebCore::JSTestGlobalObject::finishCreation): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabled): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledCaller): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabled): (WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledCaller): Update expected results.
- bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::JSTestObjPrototype::finishCreation): (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabled): (WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledCaller): Ditto.
- bindings/scripts/test/TestGlobalObject.idl: Added test cases.
- bindings/scripts/test/TestObj.idl: Added test case.
- 1:12 PM Changeset in webkit [217145] by
-
- 3 edits in trunk/Source/WebCore
Fix macos build after r217143
https://bugs.webkit.org/show_bug.cgi?id=172380
unreviewed.
Remove reference to WebVideoFullscreenInterface for mac build.
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
- html/HTMLMediaElement.cpp:
- platform/mac/WebVideoFullscreenInterfaceMac.h:
- 1:12 PM Changeset in webkit [217144] by
-
- 5 edits in trunk/LayoutTests
Skip tests that are reporting FailureNotTested.
https://bugs.webkit.org/show_bug.cgi?id=172378
Unreviewed test gardening.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 12:39 PM Changeset in webkit [217143] by
-
- 12 edits1 delete in trunk/Source
Remove defunct WebVideoFullscreenInterface
https://bugs.webkit.org/show_bug.cgi?id=172254
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Jon Lee.
Source/WebCore:
No new tests because no behavior change.
WebVideoFullscreenInterface has long since been replaced by WebVideoFullscreenModelClient.
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
- html/HTMLVideoElement.cpp:
- platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
- platform/cocoa/WebVideoFullscreenInterface.h: Removed.
- platform/cocoa/WebVideoFullscreenModel.h:
- platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
- platform/ios/WebVideoFullscreenInterfaceAVKit.h:
- platform/mac/WebVideoFullscreenInterfaceMac.h:
Source/WebKit2:
Remove reference to WebVideoFullscreenInterface. It has long since been replaced by
WebVideoFullscreenModelClient.
- WebProcess/cocoa/WebVideoFullscreenManager.h:
- 12:31 PM Changeset in webkit [217142] by
-
- 2 edits in branches/safari-603-branch/LayoutTests
Merge r217138. rdar://problem/32182167
- 12:25 PM Changeset in webkit [217141] by
-
- 2 edits in trunk/Source/WebCore
HTMLVideoElement::webkitSupportsPresentationMode allowsPictureInPicture() check is redundant.
https://bugs.webkit.org/show_bug.cgi?id=172330
rdar://problem/32285443
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Eric Carlson.
No new tests because no behavior change.
This removes a redundant call to allowsPictureInPicture() to make it
more clear that webkitSupportsPresentationMode gives the same result as
webkitSupportsFullscreen(pipMode)
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode):
- 12:09 PM Changeset in webkit [217140] by
-
- 2 edits in trunk/LayoutTests
LayoutTest js/Promise-types.html is a flaky failure (Unhandled Promise Rejection messages)
https://bugs.webkit.org/show_bug.cgi?id=171739
Reviewed by Joseph Pecoraro.
Silence the console messages for unhandled rejections in this LayoutTest.
- js/script-tests/Promise-types.js:
- 12:06 PM Changeset in webkit [217139] by
-
- 5 edits in trunk/Source
[WebRTC] Remove PiP support for video elements that are showing camera capture
https://bugs.webkit.org/show_bug.cgi?id=172336
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-19
Reviewed by Eric Carlson.
Source/WebCore:
No new tests because no effect on the DOM. This just changes a value sent to the platform interface layer.
Ask video element if it supports picture-in-picture instead of asking the mediaSession directly.
This allows the video element to give a more robust answer.
- html/HTMLVideoElement.h:
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::setUpFullscreen):
Source/WebKit2:
Ask video element if it supports picture-in-picture instead of asking the mediaSession directly.
This allows the video element to give a more robust answer.
- WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
- 11:47 AM Changeset in webkit [217138] by
-
- 2 edits in trunk/LayoutTests
LayoutTests/accessibility/mac/aria-multiple-liveregions-notification.html should force layout after r216726.
https://bugs.webkit.org/show_bug.cgi?id=172363
<rdar://problem/32182167>
Reviewed by Simon Fraser.
10ms timer is too short to securely ensure a layout. Let's force it instead.
- accessibility/mac/aria-multiple-liveregions-notification.html:
- 11:44 AM Changeset in webkit [217137] by
-
- 3 edits1 copy in trunk/Source/WebKit2
Make sure implementation of InitializeWebKit2() always run on the main thread
https://bugs.webkit.org/show_bug.cgi?id=172362
<rdar://problem/32295678>
Reviewed by Geoffrey Garen.
Add logic in InitializeWebKit2() for Cocoa ports to always run the initialization code
is only called once, and on the main thread. If we are called from a non-main thread,
we will dispatch synchronously to the main thread to run the initialization code.
This is needed because WebKit2Initialize() is called from the API::Object constructor.
API::Object is thread-safe RefCounted and those objects are sometimes initialized on
non-main thread. If the first of such objects happened to be initialized on a non-main
thread, then we would run the initialization code for the first time on a non-main
thread. This would lead to hard to debug issues because code such as
RunLoop::initializeMainRunLoop() is only safe to call on the main thread because it
stores a pointer to the current thread's RunLoop in a static variable for later use
(i.e. for RunLoop::main()).
- Shared/Cocoa/WebKit2InitializeCocoa.mm: Copied from Source/WebKit2/Shared/WebKit2Initialize.cpp.
(WebKit::runInitializationCode):
(WebKit::InitializeWebKit2):
- Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
- WebKit2.xcodeproj/project.pbxproj:
- 11:41 AM Changeset in webkit [217136] by
-
- 2 edits in trunk/Tools
Unreviewed, fix the build on the latest internal SDK.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
- 11:36 AM Changeset in webkit [217135] by
-
- 7 edits1 add in trunk
arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
https://bugs.webkit.org/show_bug.cgi?id=172369
Reviewed by Mark Lam.
JSTests:
- stress/undecided-concat.js: Added.
Source/JavaScriptCore:
- heap/Subspace.cpp: Reshaped the code a bit to aid debugging.
(JSC::Subspace::allocate):
(JSC::Subspace::tryAllocate):
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoPrivateFuncConcatMemcpy): Fix the bug!
- runtime/ObjectInitializationScope.cpp: Provide even better feedback.
(JSC::ObjectInitializationScope::verifyPropertiesAreInitialized):
Tools:
Because I wrote a test that relies on the NoCJIT config scribbling free cells, I thought it
would be a good idea to write this down.
- Scripts/run-jsc-stress-tests:
- 11:07 AM Changeset in webkit [217134] by
-
- 49 edits in trunk/Source
[WebIDL] Remove the need for the generator to know about native type mapping
https://bugs.webkit.org/show_bug.cgi?id=172310
Reviewed by Darin Adler.
Source/WebCore:
Replace the use of explicit typename to native type mappings in CodeGeneratorJS.pm
with use of IDLTypes and Converter, which already need the mapping. This allows us
to have the information in only one spot.
Also, callback generation to account for nullability and update the IDLs to correctly
annotate only the types that need to be nullable.
- Modules/geolocation/GeoNotifier.cpp:
- Modules/geolocation/GeoNotifier.h:
- Modules/geolocation/Geolocation.cpp:
- Modules/geolocation/Geolocation.h:
- Modules/geolocation/PositionCallback.idl:
- Modules/geolocation/PositionErrorCallback.h:
Use references where possible in the Geolocation code. It was almost possible
to make PositionCallback take a non-nullable position, but some odd logic in
Geolocation::makeCachedPositionCallbacks() implies that there is a path where
passing null is possible, though it would assert. Added FIXME's to return to
this in a follow up.
- Modules/webaudio/AudioBufferCallback.idl:
Add nullable annotation and FIXME explaining that the latest spec splits the callback
into two separate ones.
- Modules/webdatabase/Database.cpp:
(WebCore::Database::runTransaction):
- Modules/webdatabase/DatabaseCallback.h:
- Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::performCallback):
- Modules/webdatabase/SQLStatementCallback.h:
- Modules/webdatabase/SQLStatementErrorCallback.h:
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
- Modules/webdatabase/SQLTransactionCallback.h:
- Modules/webdatabase/SQLTransactionErrorCallback.h:
- inspector/InspectorDatabaseAgent.cpp:
- bindings/js/JSSQLStatementErrorCallbackCustom.cpp:
(WebCore::JSSQLStatementErrorCallback::handleEvent):
Update to pass callback parameters as references, since they are never null.
- bindings/IDLTypes.h:
Add NullableParameterType to allow customization of nullable parameters (in much
the same way we allow customization of the nullable implementation type).
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateDefaultValue):
Use Converter<>::ReturnType{ } for default values rather than ${GetNativeType..}().
(GenerateHeader):
Remove use of GetNativeType for toWrapped by using the impl type, since this will never
be a complex type.
(GenerateImplementation):
Simplify DOMJIT UnsafeToNative by merging two identical paths and using auto.
(GenerateParametersCheck):
Rework parameter checks to use more specific variable names, make branches more clear,
and use Converter<>::ReturnType rather than GetNativeType.
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
Switch to using typename ${IDLType}::ParameterType as the parameters for callback functions. Also
add final and override to make sure the generated function matches the user provided base class.
(GetNativeType): Deleted.
(GetNativeInnerType): Deleted.
(GetNativeTypeForCallbacks): Deleted.
Remove native type mappings.
- css/MediaQueryListListener.h:
- css/MediaQueryListListener.idl:
- css/MediaQueryMatcher.cpp:
Update MediaQueryListListener to take a non-nullable MediaQueryList.
- dom/NativeNodeFilter.cpp:
- dom/NativeNodeFilter.h:
- dom/NodeFilter.h:
- dom/NodeFilter.idl:
- dom/NodeIterator.cpp:
- dom/Traversal.cpp:
- dom/Traversal.h:
- dom/TreeWalker.cpp:
- bindings/js/JSNodeFilterCustom.cpp:
Update acceptNode to be non-nullable and pass the Node by reference.
- dom/StringCallback.cpp:
- dom/StringCallback.h:
Pass the ScriptExecutionContext by reference.
- page/IntersectionObserverCallback.h:
Update to match new parameter types and pass IntersectionObserver by reference.
- page/PerformanceObserver.cpp:
- page/PerformanceObserverCallback.h:
Update to pass PerformanceObserverEntryList and PerformanceObserver by reference.
- bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
- bindings/scripts/test/JS/JSTestCallbackFunction.h:
- bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
- bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
- bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
- bindings/scripts/test/JS/JSTestCallbackInterface.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
Update test results.
- bindings/scripts/test/TestCallbackInterface.idl:
Update test to refer to actual interfaces as we now do lookup on these parameter
types rather than blindly assuming they are interfaces.
Source/WebKit/mac:
- DOM/DOM.mm:
(-[DOMNodeFilter acceptNode:]):
Update to pass Node by reference.
- 11:06 AM Changeset in webkit [217133] by
-
- 18 edits6 deletes in trunk
Unreviewed, rolling out r217098, r217111, r217113, and
r217114.
https://bugs.webkit.org/show_bug.cgi?id=172367
These changes broke the Windows build and introduced
LayoutTest failures (Requested by ryanhaddad on #webkit).
Reverted changesets:
"[MSE][Mac] Support painting MSE video-element to canvas"
https://bugs.webkit.org/show_bug.cgi?id=125157
http://trac.webkit.org/changeset/217098
"[MSE][Mac] Support painting MSE video-element to canvas"
https://bugs.webkit.org/show_bug.cgi?id=125157
http://trac.webkit.org/changeset/217111
"Unreviewed build fix; add undefined functions and constants
to the CoreMediaSoftLink.h, and use the"
http://trac.webkit.org/changeset/217113
"[MSE][Mac] Support painting MSE video-element to canvas"
https://bugs.webkit.org/show_bug.cgi?id=125157
http://trac.webkit.org/changeset/217114
Patch by Commit Queue <commit-queue@webkit.org> on 2017-05-19
- 11:02 AM Changeset in webkit [217132] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Use initialLayout for Settings tab
https://bugs.webkit.org/show_bug.cgi?id=172304
Reviewed by Matt Baker.
- UserInterface/Views/GeneralSettingsView.js:
(WebInspector.GeneralSettingsView.prototype.initialLayout):
Move listener for zoom factor to only update that editor.
- UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.initialLayout): Added.
It is not necessary to create the UI for editing settings until the Settings tab is shown.
Use initialLayout to ensure UI gets created exactly once, after the tab is selected.
- 9:37 AM Changeset in webkit [217131] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r217096. rdar://problem/32243153
- 9:23 AM Changeset in webkit [217130] by
-
- 3 edits in trunk/Tools
webkitpy: Layout tests which have no output will succeed
https://bugs.webkit.org/show_bug.cgi?id=172322
<rdar://problem/32258350>
Reviewed by David Kilzer.
- Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner._compare_text): Add FailreNotTested to failures if test has no output.
- Scripts/webkitpy/layout_tests/models/test_failures.py:
(determine_result_type): FailureNotTested means that the test could not be loaded. This
is classified as a MISSING failure.
(FailureNotTested): Added.
(FailureNotTested.message):
- 9:16 AM Changeset in webkit [217129] by
-
- 4 edits in trunk
REGRESSION (r217078): window.ApplePaySession is undefined on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=172344
Reviewed by Tim Horton.
Source/WebCore:
r213673 mistakenly changed the ApplePaySession interface from being conditional on
APPLE_PAY to being conditional on APPLE_PAY_DELEGATE, so when r217078 disabled
APPLE_PAY_DELEGATE on Sierra and earlier it disabled ApplePaySession.
Fix this by reverting ApplePaySession to being conditional on APPLE_PAY.
Fixes http/tests/ssl/applepay/ApplePaySession.html
- Modules/applepay/ApplePaySession.idl:
LayoutTests:
- TestExpectations: Removed http/tests/ssl/applepay/ApplePaySession.html
- 9:11 AM Changeset in webkit [217128] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION(r216977): [GTK] Ephemeral sessions broken after r216977
https://bugs.webkit.org/show_bug.cgi?id=172345
Reviewed by Michael Catanzaro.
Since r216977, WebProcessPool sends the page session ID to the web process, but the WebsiteDataStoreParameters
session ID to the network process. WebsiteDataStoreParameters is only implemented for Cocoa, so we are sending 0
session ID to the network process, while using the right session ID everywhere else.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::pageAddedToProcess): Add an ASSERT to ensure we are sending the same session ID to Web
and Network processes.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters): Add minimal implementation for non-Cocoa ports to at least set the
session ID.
- 8:48 AM Changeset in webkit [217127] by
-
- 12 edits in trunk/Source/JavaScriptCore
B3::Value::effects() says that having a fence range implies the fence bit, but on x86_64 we lower loadAcq/storeRel to load/store so the store-before-load fence bit orderings won't be honored
https://bugs.webkit.org/show_bug.cgi?id=172306
Reviewed by Michael Saboff.
This changes B3 to emit xchg and its variants for fenced stores on x86. This ensures that
fenced stores cannot be reordered around other fenced instructions. Previously, B3 emitted
normal store instructions for fenced stores. That's wrong because then you get reorderings
that are possible in TSO but impossible in SC. Fenced instructions are supposed to be SC
with respect for each other.
This is imprecise. If you really just wanted a store-release, then every X86 store does this.
But, in B3, fenced stores are ARM-style store-release, meaning that they are fenced with
respect to all other fences. If we ever did want to say that something is a store release in
the traditional sense, then we'd want MemoryValue to have a fence flag. Then, having a fence
range without the fence flag would mean the traditional store-release, which lowers to a
normal store on x86. But to my knowledge, that traditional store-release is only useful for
unlocking spinlocks. We don't use spinlocks in JSC. Adaptive locks require CAS for unlock,
and B3 CAS is plenty fast. I think it's OK to have this small imprecision of giving clients
an ARM-style store-release on x86 using xchg.
The implication of this change is that the FTL no longer violates the SAB memory model.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::xchg8):
(JSC::MacroAssemblerX86Common::xchg16):
(JSC::MacroAssemblerX86Common::xchg32):
(JSC::MacroAssemblerX86Common::loadAcq8): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq8SignedExtendTo32): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq16): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq16SignedExtendTo32): Deleted.
(JSC::MacroAssemblerX86Common::loadAcq32): Deleted.
(JSC::MacroAssemblerX86Common::storeRel8): Deleted.
(JSC::MacroAssemblerX86Common::storeRel16): Deleted.
(JSC::MacroAssemblerX86Common::storeRel32): Deleted.
- assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::xchg64):
(JSC::MacroAssemblerX86_64::loadAcq64): Deleted.
(JSC::MacroAssemblerX86_64::storeRel64): Deleted.
- b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::ArgPromise::inst):
(JSC::B3::Air::LowerToAir::trappingInst):
(JSC::B3::Air::LowerToAir::tryAppendStoreBinOp):
(JSC::B3::Air::LowerToAir::createStore):
(JSC::B3::Air::LowerToAir::storeOpcode):
(JSC::B3::Air::LowerToAir::appendStore):
(JSC::B3::Air::LowerToAir::append):
(JSC::B3::Air::LowerToAir::appendTrapping):
(JSC::B3::Air::LowerToAir::fillStackmap):
(JSC::B3::Air::LowerToAir::lower):
- b3/air/AirKind.cpp:
(JSC::B3::Air::Kind::dump):
- b3/air/AirKind.h:
(JSC::B3::Air::Kind::Kind):
(JSC::B3::Air::Kind::operator==):
(JSC::B3::Air::Kind::hash):
- b3/air/AirLowerAfterRegAlloc.cpp:
(JSC::B3::Air::lowerAfterRegAlloc):
- b3/air/AirLowerMacros.cpp:
(JSC::B3::Air::lowerMacros):
- b3/air/AirOpcode.opcodes:
- b3/air/AirValidate.cpp:
- b3/air/opcode_generator.rb:
- b3/testb3.cpp:
(JSC::B3::correctSqrt):
(JSC::B3::testSqrtArg):
(JSC::B3::testSqrtImm):
(JSC::B3::testSqrtMem):
(JSC::B3::testSqrtArgWithUselessDoubleConversion):
(JSC::B3::testSqrtArgWithEffectfulDoubleConversion):
(JSC::B3::testStoreRelAddLoadAcq32):
(JSC::B3::testTrappingLoad):
(JSC::B3::testTrappingStore):
(JSC::B3::testTrappingLoadAddStore):
(JSC::B3::testTrappingLoadDCE):
- 7:45 AM Changeset in webkit [217126] by
-
- 2 edits in trunk/Source/WebKit2
Add more input validation in Connection::processMessage()
https://bugs.webkit.org/show_bug.cgi?id=171682
Reviewed by Michael Catanzaro.
Check limits of attachments and message size. Credit to Nathan Crandall for reporting this issue and submitting
an equivalent fix.
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
- 7:11 AM Changeset in webkit [217125] by
-
- 13 edits153 adds in trunk
CSSOM insertRule() index argument is optional with default 0
https://bugs.webkit.org/show_bug.cgi?id=172219
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Import cssom web-platform-tests. The insertRule* tests include coverage
for this change.
- resources/import-expectations.json:
- web-platform-tests/cssom/CSS-expected.txt: Added.
- web-platform-tests/cssom/CSS.html: Added.
- web-platform-tests/cssom/CSSKeyframeRule-expected.txt: Added.
- web-platform-tests/cssom/CSSKeyframeRule.html: Added.
- web-platform-tests/cssom/CSSKeyframesRule-expected.txt: Added.
- web-platform-tests/cssom/CSSKeyframesRule.html: Added.
- web-platform-tests/cssom/CSSNamespaceRule-expected.txt: Added.
- web-platform-tests/cssom/CSSNamespaceRule.html: Added.
- web-platform-tests/cssom/CSSRuleList-expected.txt: Added.
- web-platform-tests/cssom/CSSRuleList.html: Added.
- web-platform-tests/cssom/CSSStyleRule-expected.txt: Added.
- web-platform-tests/cssom/CSSStyleRule.html: Added.
- web-platform-tests/cssom/CSSStyleSheet-expected.txt: Added.
- web-platform-tests/cssom/CSSStyleSheet.html: Added.
- web-platform-tests/cssom/MediaList-expected.txt: Added.
- web-platform-tests/cssom/MediaList.html: Added.
- web-platform-tests/cssom/MediaList.xhtml: Added.
- web-platform-tests/cssom/OWNERS: Added.
- web-platform-tests/cssom/StyleSheetList-expected.txt: Added.
- web-platform-tests/cssom/StyleSheetList.html: Added.
- web-platform-tests/cssom/computed-style-001-expected.txt: Added.
- web-platform-tests/cssom/computed-style-001.html: Added.
- web-platform-tests/cssom/css-style-attribute-modifications-expected.txt: Added.
- web-platform-tests/cssom/css-style-attribute-modifications.html: Added.
- web-platform-tests/cssom/css-style-declaration-modifications-expected.txt: Added.
- web-platform-tests/cssom/css-style-declaration-modifications.html: Added.
- web-platform-tests/cssom/cssimportrule-expected.txt: Added.
- web-platform-tests/cssom/cssimportrule.html: Added.
- web-platform-tests/cssom/cssom-cssText-serialize-expected.txt: Added.
- web-platform-tests/cssom/cssom-cssText-serialize.html: Added.
- web-platform-tests/cssom/cssom-cssstyledeclaration-set-expected.txt: Added.
- web-platform-tests/cssom/cssom-cssstyledeclaration-set.html: Added.
- web-platform-tests/cssom/cssom-fontfacerule-constructors-expected.txt: Added.
- web-platform-tests/cssom/cssom-fontfacerule-constructors.html: Added.
- web-platform-tests/cssom/cssom-fontfacerule-expected.txt: Added.
- web-platform-tests/cssom/cssom-fontfacerule.html: Added.
- web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt: Added.
- web-platform-tests/cssom/cssom-setProperty-shorthand.html: Added.
- web-platform-tests/cssom/cssstyledeclaration-csstext-expected.txt: Added.
- web-platform-tests/cssom/cssstyledeclaration-csstext.html: Added.
- web-platform-tests/cssom/cssstyledeclaration-mutability-expected.txt: Added.
- web-platform-tests/cssom/cssstyledeclaration-mutability.html: Added.
- web-platform-tests/cssom/escape-expected.txt: Added.
- web-platform-tests/cssom/escape.html: Added.
- web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt: Added.
- web-platform-tests/cssom/getComputedStyle-pseudo.html: Added.
- web-platform-tests/cssom/historical-expected.txt: Added.
- web-platform-tests/cssom/historical.html: Added.
- web-platform-tests/cssom/index-001-expected.txt: Added.
- web-platform-tests/cssom/index-001.html: Added.
- web-platform-tests/cssom/index-002-expected.txt: Added.
- web-platform-tests/cssom/index-002.html: Added.
- web-platform-tests/cssom/index-003-expected.txt: Added.
- web-platform-tests/cssom/index-003.html: Added.
- web-platform-tests/cssom/inline-style-001-expected.txt: Added.
- web-platform-tests/cssom/inline-style-001.html: Added.
- web-platform-tests/cssom/insertRule-charset-no-index-expected.txt: Added.
- web-platform-tests/cssom/insertRule-charset-no-index.html: Added.
- web-platform-tests/cssom/insertRule-import-no-index-expected.txt: Added.
- web-platform-tests/cssom/insertRule-import-no-index.html: Added.
- web-platform-tests/cssom/insertRule-namespace-no-index-expected.txt: Added.
- web-platform-tests/cssom/insertRule-namespace-no-index.html: Added.
- web-platform-tests/cssom/insertRule-no-index-expected.txt: Added.
- web-platform-tests/cssom/insertRule-no-index.html: Added.
- web-platform-tests/cssom/interfaces-expected.txt: Added.
- web-platform-tests/cssom/interfaces.html: Added.
- web-platform-tests/cssom/medialist-interfaces-001-expected.txt: Added.
- web-platform-tests/cssom/medialist-interfaces-001.html: Added.
- web-platform-tests/cssom/medialist-interfaces-002-expected.txt: Added.
- web-platform-tests/cssom/medialist-interfaces-002.html: Added.
- web-platform-tests/cssom/medialist-interfaces-003-expected.txt: Added.
- web-platform-tests/cssom/medialist-interfaces-003.html: Added.
- web-platform-tests/cssom/medialist-interfaces-004-expected.txt: Added.
- web-platform-tests/cssom/medialist-interfaces-004.html: Added.
- web-platform-tests/cssom/overflow-serialization-expected.txt: Added.
- web-platform-tests/cssom/overflow-serialization.html: Added.
- web-platform-tests/cssom/selectorSerialize-expected.txt: Added.
- web-platform-tests/cssom/selectorSerialize.html: Added.
- web-platform-tests/cssom/serialization-CSSDeclaration-with-important-expected.txt: Added.
- web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html: Added.
- web-platform-tests/cssom/serialize-namespaced-type-selectors-expected.txt: Added.
- web-platform-tests/cssom/serialize-namespaced-type-selectors.html: Added.
- web-platform-tests/cssom/serialize-values-expected.txt: Added.
- web-platform-tests/cssom/serialize-values.html: Added.
- web-platform-tests/cssom/serialize-variable-reference-expected.txt: Added.
- web-platform-tests/cssom/serialize-variable-reference.html: Added.
- web-platform-tests/cssom/shorthand-serialization-expected.txt: Added.
- web-platform-tests/cssom/shorthand-serialization.html: Added.
- web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt: Added.
- web-platform-tests/cssom/style-sheet-interfaces-001.html: Added.
- web-platform-tests/cssom/style-sheet-interfaces-002-expected.txt: Added.
- web-platform-tests/cssom/style-sheet-interfaces-002.html: Added.
- web-platform-tests/cssom/stylesheet-same-origin.css: Added.
(body):
- web-platform-tests/cssom/stylesheet-same-origin.sub-expected.txt: Added.
- web-platform-tests/cssom/stylesheet-same-origin.sub.html: Added.
- web-platform-tests/cssom/support/1x1-green.png: Added.
- web-platform-tests/cssom/support/1x1-lime.png: Added.
- web-platform-tests/cssom/support/1x1-maroon.png: Added.
- web-platform-tests/cssom/support/1x1-navy.png: Added.
- web-platform-tests/cssom/support/1x1-red.png: Added.
- web-platform-tests/cssom/support/1x1-white.png: Added.
- web-platform-tests/cssom/support/60x60-gg-rr.png: Added.
- web-platform-tests/cssom/support/60x60-green.png: Added.
- web-platform-tests/cssom/support/60x60-red.png: Added.
- web-platform-tests/cssom/support/README: Added.
- web-platform-tests/cssom/support/a-green.css: Added.
(.a):
- web-platform-tests/cssom/support/b-green.css: Added.
(.b):
- web-platform-tests/cssom/support/c-red.css: Added.
(.c):
- web-platform-tests/cssom/support/cat.png: Added.
- web-platform-tests/cssom/support/import-charset.css: Added.
- web-platform-tests/cssom/support/import-green.css: Added.
(.import):
- web-platform-tests/cssom/support/import-red.css: Added.
(.import):
- web-platform-tests/cssom/support/pattern-grg-rgr-grg.png: Added.
- web-platform-tests/cssom/support/pattern-grg-rrg-rgg.png: Added.
- web-platform-tests/cssom/support/pattern-rgr-grg-rgr.png: Added.
- web-platform-tests/cssom/support/pattern-tr.png: Added.
- web-platform-tests/cssom/support/ruler-h-50%.png: Added.
- web-platform-tests/cssom/support/ruler-h-50px.png: Added.
- web-platform-tests/cssom/support/ruler-v-100px.png: Added.
- web-platform-tests/cssom/support/ruler-v-50px.png: Added.
- web-platform-tests/cssom/support/square-purple.png: Added.
- web-platform-tests/cssom/support/square-teal.png: Added.
- web-platform-tests/cssom/support/square-white.png: Added.
- web-platform-tests/cssom/support/support/README: Added.
- web-platform-tests/cssom/support/support/swatch-green.png: Added.
- web-platform-tests/cssom/support/support/swatch-red.png: Added.
- web-platform-tests/cssom/support/support/w3c-import.log: Added.
- web-platform-tests/cssom/support/swatch-blue.png: Added.
- web-platform-tests/cssom/support/swatch-green.png: Added.
- web-platform-tests/cssom/support/swatch-lime.png: Added.
- web-platform-tests/cssom/support/swatch-orange.png: Added.
- web-platform-tests/cssom/support/swatch-red.png: Added.
- web-platform-tests/cssom/support/swatch-teal.png: Added.
- web-platform-tests/cssom/support/swatch-white.png: Added.
- web-platform-tests/cssom/support/swatch-yellow.png: Added.
- web-platform-tests/cssom/support/test-bl.png: Added.
- web-platform-tests/cssom/support/test-br.png: Added.
- web-platform-tests/cssom/support/test-inner-half-size.png: Added.
- web-platform-tests/cssom/support/test-outer.png: Added.
- web-platform-tests/cssom/support/test-tl.png: Added.
- web-platform-tests/cssom/support/test-tr.png: Added.
- web-platform-tests/cssom/support/w3c-import.log: Added.
- web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count-expected.txt: Added.
- web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html: Added.
- web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt: Added.
- web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html: Added.
- web-platform-tests/cssom/ttwf-cssom-document-extension-expected.txt: Added.
- web-platform-tests/cssom/ttwf-cssom-document-extension.html: Added.
- web-platform-tests/cssom/variable-names-expected.txt: Added.
- web-platform-tests/cssom/variable-names.html: Added.
- web-platform-tests/cssom/w3c-import.log: Added.
Source/WebCore:
Index parameter to CSSSupportsRule.insertRule() and CSSStyleSheet.insertRule() should
be optional with a default value of 0, as per the latest specification:
- https://github.com/w3c/csswg-drafts/commit/7949d41a2d86107f8ad4624c055b4b0c9c28ad0d
- https://www.w3.org/Bugs/Public/show_bug.cgi?id=27384
Tests: imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html
imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html
imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html
imported/w3c/web-platform-tests/cssom/insertRule-no-index.html
- css/CSSStyleSheet.cpp:
- css/CSSStyleSheet.h:
- css/CSSStyleSheet.idl:
- css/CSSSupportsRule.idl:
LayoutTests:
Update / Rebaseline existing tests to reflect behavior change.
- fast/css/CSSSupportsRule-parameters-expected.txt:
- fast/css/CSSSupportsRule-parameters.html:
- fast/css/stylesheet-parameters-expected.txt:
- fast/css/stylesheet-parameters.html:
- fast/dom/non-numeric-values-numeric-parameters-expected.txt:
- 6:59 AM Changeset in webkit [217124] by
-
- 4 edits86 adds in trunk
Add SixSpeed benchmark to PerformanceTests
https://bugs.webkit.org/show_bug.cgi?id=172326
Reviewed by Sam Weinig.
PerformanceTests:
This patch imports SixSpeed benchmark into WebKit tree.
It is a collection of ES6 microbenchmarks. While the scripts are very tiny,
it sometimes hits our missing care for optimization. So including it is useful.
The benchmark is released under MIT license.
- SixSpeed/LICENSE: Added.
- SixSpeed/REVISION: Added.
- SixSpeed/ReadMe.md: Added.
- SixSpeed/tests/.eslintrc: Added.
- SixSpeed/tests/arrow-args/arrow-args.es5: Added.
- SixSpeed/tests/arrow-args/arrow-args.es6: Added.
- SixSpeed/tests/arrow-declare/arrow-declare.es5: Added.
- SixSpeed/tests/arrow-declare/arrow-declare.es6: Added.
- SixSpeed/tests/arrow/arrow.es5: Added.
- SixSpeed/tests/arrow/arrow.es6: Added.
- SixSpeed/tests/bindings-compound/bindings-compound.es5: Added.
- SixSpeed/tests/bindings-compound/bindings-compound.es6: Added.
- SixSpeed/tests/bindings/bindings.es5: Added.
- SixSpeed/tests/bindings/bindings.es6: Added.
- SixSpeed/tests/classes/classes.es5: Added.
- SixSpeed/tests/classes/classes.es6: Added.
- SixSpeed/tests/defaults/defaults.es5: Added.
- SixSpeed/tests/defaults/defaults.es6: Added.
- SixSpeed/tests/destructuring-simple/destructuring-simple.es5: Added.
- SixSpeed/tests/destructuring-simple/destructuring-simple.es6: Added.
- SixSpeed/tests/destructuring/destructuring.es5: Added.
- SixSpeed/tests/destructuring/destructuring.es6: Added.
- SixSpeed/tests/for-of-array/for-of-array.es5: Added.
- SixSpeed/tests/for-of-array/for-of-array.es6: Added.
- SixSpeed/tests/for-of-object/for-of-object.es5: Added.
- SixSpeed/tests/for-of-object/for-of-object.es6: Added.
- SixSpeed/tests/generator/generator.es5: Added.
- SixSpeed/tests/generator/generator.es6: Added.
- SixSpeed/tests/map-set-lookup/map-set-lookup.es5: Added.
- SixSpeed/tests/map-set-lookup/map-set-lookup.es6: Added.
- SixSpeed/tests/map-set-object/map-set-object.es5: Added.
- SixSpeed/tests/map-set-object/map-set-object.es6: Added.
- SixSpeed/tests/map-set/map-set.es5: Added.
- SixSpeed/tests/map-set/map-set.es6: Added.
- SixSpeed/tests/map-string/map-string.es5: Added.
- SixSpeed/tests/map-string/map-string.es6: Added.
- SixSpeed/tests/new-target/defaults.es5: Added.
- SixSpeed/tests/new-target/defaults.es6: Added.
- SixSpeed/tests/object-assign/object-assign.es5: Added.
- SixSpeed/tests/object-assign/object-assign.es6: Added.
- SixSpeed/tests/object-literal-ext/object-literal-ext.es5: Added.
- SixSpeed/tests/object-literal-ext/object-literal-ext.es6: Added.
- SixSpeed/tests/regex-u/regex-u.es5: Added.
- SixSpeed/tests/regex-u/regex-u.es6: Added.
- SixSpeed/tests/rest/rest.es5: Added.
- SixSpeed/tests/rest/rest.es6: Added.
- SixSpeed/tests/spread-generator/spread-generator.es5: Added.
- SixSpeed/tests/spread-generator/spread-generator.es6: Added.
- SixSpeed/tests/spread-literal/spread-literal.es5: Added.
- SixSpeed/tests/spread-literal/spread-literal.es6: Added.
- SixSpeed/tests/spread/spread.es5: Added.
- SixSpeed/tests/spread/spread.es6: Added.
- SixSpeed/tests/super/super.es5: Added.
- SixSpeed/tests/super/super.es6: Added.
- SixSpeed/tests/template_string/template_string.es5: Added.
- SixSpeed/tests/template_string/template_string.es6: Added.
- SixSpeed/tests/template_string_tag/template_string_tag.es5: Added.
- SixSpeed/tests/template_string_tag/template_string_tag.es6: Added.
- SixSpeed/wrappers/wrapper.js:
(test):
Tools:
- Scripts/run-jsc-benchmarks:
- 5:32 AM Changeset in webkit [217123] by
-
- 15 edits1 copy1 add in trunk/Source
[Threaded Compositor] Remove platform ifdefs from threaded compositor implementation
https://bugs.webkit.org/show_bug.cgi?id=172265
Reviewed by Žan Doberšek.
Source/WebCore:
Remove PlatformDisplayWPE::EGLTarget.
- platform/graphics/wpe/PlatformDisplayWPE.cpp:
- platform/graphics/wpe/PlatformDisplayWPE.h:
Source/WebKit2:
Add AcceleratedSurfaceWPE implementation that is equivalent to the PlatformDisplayWPE::EGLTarget. Since WPE needs the
surface to be initialized/finalized in the compositing thread, two new virtual methods has been added to
AcceleratedSurface initialize/finalize that are only implemented by WPE. The threaded compositor no longer
receives a native surface handle as contructor parameter, it now asks the client for it from the compositing
thread, right after it's created.
- PlatformWPE.cmake:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::create): Remove ativeSurfaceHandle parameter.
(WebKit::ThreadedCompositor::ThreadedCompositor): Initialize m_nativeSurfaceHandle from the compositing thread
asking the client for it.
(WebKit::ThreadedCompositor::createGLContext): Remove the WPE implementation.
(WebKit::ThreadedCompositor::invalidate): Notify the client that the GL context has been destroyed.
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Remove GTK ifdefs.
(WebKit::ThreadedCompositor::setViewportSize): Remove WPE implementation.
(WebKit::ThreadedCompositor::renderLayerTree): Notify the client the frame will be rendered, and when it has
been rendered.
(WebKit::ThreadedCompositor::frameComplete): Remove WPE ifdefs.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- WebProcess/WebPage/AcceleratedSurface.cpp:
(WebKit::AcceleratedSurface::create): Add client parameter.
(WebKit::AcceleratedSurface::AcceleratedSurface): Create a AcceleratedSurfaceWPE if display is WPE.
- WebProcess/WebPage/AcceleratedSurface.h:
(WebKit::AcceleratedSurface::surfaceID):
(WebKit::AcceleratedSurface::initialize):
(WebKit::AcceleratedSurface::finalize):
(WebKit::AcceleratedSurface::willRenderFrame):
(WebKit::AcceleratedSurface::didRenderFrame):
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Pass this as client of AcceleratedSurface.
(WebKit::ThreadedCoordinatedLayerTreeHost::frameComplete): Notify the compositor.
(WebKit::ThreadedCoordinatedLayerTreeHost::nativeSurfaceHandleForCompositing): Initialize the surface and return
the window handler.
(WebKit::ThreadedCoordinatedLayerTreeHost::didDestroyGLContext): Finalize the surface.
(WebKit::ThreadedCoordinatedLayerTreeHost::willRenderFrame): Notify the surface.
(WebKit::ThreadedCoordinatedLayerTreeHost::didRenderFrame): Ditto.
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:
(WebKit::AcceleratedSurfaceWayland::create): Add client parameter.
(WebKit::AcceleratedSurfaceWayland::AcceleratedSurfaceWayland): Ditto.
(WebKit::AcceleratedSurfaceWayland::didRenderFrame): Call Client::frameComplete().
- WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h:
- WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
(WebKit::AcceleratedSurfaceX11::create): Add client parameter.
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11): Ditto.
(WebKit::AcceleratedSurfaceX11::didRenderFrame): Call Client::frameComplete().
- WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:
- WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp: Added.
(WebKit::AcceleratedSurfaceWPE::create):
(WebKit::AcceleratedSurfaceWPE::AcceleratedSurfaceWPE):
(WebKit::AcceleratedSurfaceWPE::~AcceleratedSurfaceWPE):
(WebKit::AcceleratedSurfaceWPE::initialize):
(WebKit::AcceleratedSurfaceWPE::finalize):
(WebKit::AcceleratedSurfaceWPE::window):
(WebKit::AcceleratedSurfaceWPE::surfaceID):
(WebKit::AcceleratedSurfaceWPE::resize):
(WebKit::AcceleratedSurfaceWPE::willRenderFrame):
(WebKit::AcceleratedSurfaceWPE::didRenderFrame):
- WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.h: Copied from Source/WebKit2/WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h.
- 4:46 AM Changeset in webkit [217122] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Adding or updating test expectations for
four W3C layout tests covering MSE and IndexedDB implementations.
- platform/gtk/TestExpectations:
- 3:50 AM Changeset in webkit [217121] by
-
- 3 edits in trunk/PerformanceTests
Speedometer 2.0: Angular v1 test only deletes the second item
https://bugs.webkit.org/show_bug.cgi?id=172353
Reviewed by Antti Koivisto.
Like jQuery and Inferno, run querySelector after removing each todo item.
- Speedometer/InteractiveRunner.html: Tweaked CSS again.
- Speedometer/resources/tests.js:
- 3:13 AM Changeset in webkit [217120] by
-
- 4 edits in trunk/Source/WTF
[WTF] Remove PLATFORM(WIN) references
https://bugs.webkit.org/show_bug.cgi?id=172301
Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-19
Reviewed by Yusuke Suzuki.
- wtf/MemoryPressureHandler.cpp:
- wtf/MemoryPressureHandler.h:
- wtf/Platform.h:
- 3:09 AM Changeset in webkit [217119] by
-
- 3 edits in trunk/PerformanceTests
Speedometer 2.0: Elem test isn't updating DOM during the measurement
https://bugs.webkit.org/show_bug.cgi?id=172343
Reviewed by Antti Koivisto.
Elem test wasn't doing much work because it simply enqueues items into the work queue, which doesn't get
executed until the next requestAnimationFrame or setTimeout callback happens.
Expose elm's work function as contentWindow.elemWork and make the first use of rAF a synchronous callback
just as it would when requestAnimationFrame isn't defined, and make the second use of rAF queue up to
an array of callbacks, and have the test runner manually invoke each callback.
This increases the runtime of the Elm suite from 100ms to 300ms on Safari.
- Speedometer/resources/tests.js:
(processElmWorkQueue): Added. A helper which processes Elm's work queue and manually invokes render callbacks.
- Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js:
- 3:05 AM Changeset in webkit [217118] by
-
- 4 edits in trunk/PerformanceTests
Speedometer 2.0: Flight.js test is sometime broken
https://bugs.webkit.org/show_bug.cgi?id=172347
Reviewed by Antti Koivisto.
The bug was caused by the test runner only waiting for #new-todo, which happens before all other states are
updated in the Flight.js dependency example. As done in Speedometer v1, insert a dummy element with id set
to appIsReady and wait for this element to appear in the benchmark harness.
- Speedometer/resources/tests.js: Wait for #appIsReady.
- Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Removed the superflous call
to console.log.
(checkReady): Added. Insert #appIsReady if checkLoaded is no longer running at 50ms interval. Because this
could happen asynchronously, we check the absense of checkLoadedTimeoutId Ωevery 10ms for 5 times for
the total duration of 50ms. If checkLoadedTimeoutId was never present, we call it ready. If we ever observed
the presence of checkLoadedTimeoutId, wait another 50ms and start over.
- Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js:
(.newContext.checkLoaded): Expose checkLoadedTimeoutId which is a timer ID used to check the dependency.
- 3:02 AM Changeset in webkit [217117] by
-
- 2 edits in trunk/Tools
[WK1] MiniBrowser should navigate when handling a dropped URL
https://bugs.webkit.org/show_bug.cgi?id=172350
Reviewed by Tim Horton.
Allow all drop actions, including URL navigation, for WebKit1 MiniBrowser.
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController webView:dragDestinationActionMaskForDraggingInfo:]):
- 3:01 AM Changeset in webkit [217116] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r217058. rdar://problem/32277335
- 3:00 AM Changeset in webkit [217115] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r216936. rdar://problem/32278538
- 2:54 AM Changeset in webkit [217114] by
-
- 2 edits in trunk/LayoutTests
[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>
Reviewed by Eric Carlson.
- media/media-source/content/test-fragmented.mp4:
- 2:50 AM Changeset in webkit [217113] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed build fix; add undefined functions and constants to the CoreMediaSoftLink.h, and use the
correct (and previously soft-linked) method in WebCoreDecompressionSession.
- platform/cf/CoreMediaSoftLink.cpp:
- platform/cf/CoreMediaSoftLink.h:
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::imageForTime):
- 2:43 AM Changeset in webkit [217112] by
-
- 4 edits in trunk/PerformanceTests
Speedometer 2.0: jQuery and Inferno tests don't delete all ToDo items
https://bugs.webkit.org/show_bug.cgi?id=172341
Reviewed by Antti Koivisto.
The bug was caused by the fact TodoMVC examples for jQuery and Inferno JS create a new button
to delete the todo item each time todo items are rendered.
Fixed the bug by dynamically look for .destroy using querySelector for each item.
Also moved the deletion of the iframe from the end of each test suite to the beginning of each suite.
This will make debugging the issue like this easier on InteractiveRunner.html since the iframe
will stick around after stepping the last item in the suite.
- Speedometer/InteractiveRunner.html: Tweaked the CSS to make buttons to "Step" and "Run" always visible
even if the list of suites and subtests are too long to fit in the viewport.
- Speedometer/resources/benchmark-runner.js:
(BenchmarkRunner.prototype.step):
(BenchmarkRunner.prototype._runTestAndRecordResults):
- Speedometer/resources/tests.js: Fixed the bug for jQuery and Inferno. In the case of jQuery
we also have to fix the code for checking every ToDo item as completed as well.
- 2:41 AM Changeset in webkit [217111] by
-
- 1 edit2 adds in trunk/LayoutTests
[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>
Reviewed by Eric Carlson.
- media/media-source/content/test-fragmented.mp4: Add a 'edts' atom to move the presentation time for the
first sample to 0:00.
- media/media-source/media-source-paint-to-canvas-expected.txt: Added.
- media/media-source/media-source-paint-to-canvas.html: Added.
- 2:39 AM Changeset in webkit [217110] by
-
- 4 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r217083. rdar://problem/32282831
- 2:39 AM Changeset in webkit [217109] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Remove PLATFORM(WIN) references
https://bugs.webkit.org/show_bug.cgi?id=172294
Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-19
Reviewed by Yusuke Suzuki.
- heap/MachineStackMarker.cpp:
(JSC::MachineThreads::removeThread):
- llint/LLIntOfflineAsmConfig.h:
- runtime/ConfigFile.h:
- runtime/VM.cpp:
(JSC::VM::updateStackLimits):
- 2:23 AM Changeset in webkit [217108] by
-
- 307 edits4 copies1 add in trunk
[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
https://bugs.webkit.org/show_bug.cgi?id=172098
Reviewed by Saam Barati.
JSTests:
- stress/check-sub-class.js: Added.
(shouldBe):
(shouldThrow):
(calling):
(array.forEach):
(i.array.forEach):
Source/JavaScriptCore:
In this patch, we generalize CheckDOM to CheckSubClass.
It can accept any ClassInfo and perform ClassInfo check
in DFG / FTL. Now, we add a new function pointer to ClassInfo,
checkSubClassPatchpoint. It can create DOMJIT patchpoint
for that ClassInfo. It it natural that ClassInfo holds the
way to emit DOMJIT::Patchpoint to perform CheckSubClass
rather than having it in each DOMJIT getter / function
signature annotation.
One problem is that it enlarges the size of ClassInfo.
But this is the best place to put this function pointer.
By doing so, we can add a patchpoint for CheckSubClass
in an non-intrusive manner: WebCore can inject patchpoints
without interactive JSC.
We still have a way to reduce the size of ClassInfo if
we move ArrayBuffer related methods out to the other places.
This patch touches many files because we add a new function
pointer to ClassInfo. But they are basically mechanical change.
- API/JSAPIWrapperObject.mm:
- API/JSCallbackConstructor.cpp:
- API/JSCallbackFunction.cpp:
- API/JSCallbackObject.cpp:
- API/ObjCCallbackFunction.mm:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
- bytecode/DOMJITAccessCasePatchpointParams.h:
(JSC::DOMJITAccessCasePatchpointParams::DOMJITAccessCasePatchpointParams):
- bytecode/EvalCodeBlock.cpp:
- bytecode/FunctionCodeBlock.cpp:
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::emitDOMJITGetter):
- bytecode/ModuleProgramCodeBlock.cpp:
- bytecode/ProgramCodeBlock.cpp:
- bytecode/UnlinkedCodeBlock.cpp:
- bytecode/UnlinkedEvalCodeBlock.cpp:
- bytecode/UnlinkedFunctionCodeBlock.cpp:
- bytecode/UnlinkedFunctionExecutable.cpp:
- bytecode/UnlinkedModuleProgramCodeBlock.cpp:
- bytecode/UnlinkedProgramCodeBlock.cpp:
- debugger/DebuggerScope.cpp:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDOMJITPatchpointParams.h:
(JSC::DFG::DOMJITPatchpointParams::DOMJITPatchpointParams):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeCallDOM):
(JSC::DFG::FixupPhase::fixupCheckSubClass):
(JSC::DFG::FixupPhase::fixupCheckDOM): Deleted.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasClassInfo):
(JSC::DFG::Node::classInfo):
(JSC::DFG::Node::hasCheckDOMPatchpoint): Deleted.
(JSC::DFG::Node::checkDOMPatchpoint): Deleted.
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileCheckDOM): Deleted.
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::vm):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- domjit/DOMJITGetterSetter.h:
- domjit/DOMJITPatchpointParams.h:
(JSC::DOMJIT::PatchpointParams::PatchpointParams):
(JSC::DOMJIT::PatchpointParams::vm):
- domjit/DOMJITSignature.h:
(JSC::DOMJIT::Signature::Signature):
(JSC::DOMJIT::Signature::checkDOM): Deleted.
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLDOMJITPatchpointParams.h:
(JSC::FTL::DOMJITPatchpointParams::DOMJITPatchpointParams):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckDOM): Deleted.
- inspector/JSInjectedScriptHost.cpp:
- inspector/JSInjectedScriptHostPrototype.cpp:
- inspector/JSJavaScriptCallFrame.cpp:
- inspector/JSJavaScriptCallFramePrototype.cpp:
- jsc.cpp:
(WTF::DOMJITNode::checkSubClassPatchpoint):
(WTF::DOMJITFunctionObject::checkSubClassPatchpoint):
(WTF::DOMJITFunctionObject::finishCreation):
(WTF::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(WTF::DOMJITCheckSubClassObject::createStructure):
(WTF::DOMJITCheckSubClassObject::create):
(WTF::DOMJITCheckSubClassObject::safeFunction):
(WTF::DOMJITCheckSubClassObject::unsafeFunction):
(WTF::DOMJITCheckSubClassObject::finishCreation):
(GlobalObject::finishCreation):
(functionCreateDOMJITCheckSubClassObject):
(WTF::DOMJITNode::checkDOMJITNode): Deleted.
(WTF::DOMJITFunctionObject::checkDOMJITNode): Deleted.
- runtime/AbstractModuleRecord.cpp:
- runtime/ArrayBufferNeuteringWatchpoint.cpp:
- runtime/ArrayConstructor.cpp:
- runtime/ArrayIteratorPrototype.cpp:
- runtime/ArrayPrototype.cpp:
- runtime/AsyncFunctionConstructor.cpp:
- runtime/AsyncFunctionPrototype.cpp:
- runtime/AtomicsObject.cpp:
- runtime/BooleanConstructor.cpp:
- runtime/BooleanObject.cpp:
- runtime/BooleanPrototype.cpp:
- runtime/ClassInfo.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.
(JSC::ClassInfo::dump):
- runtime/ClassInfo.h:
(JSC::ClassInfo::offsetOfParentClass):
- runtime/ClonedArguments.cpp:
- runtime/ConsoleObject.cpp:
- runtime/CustomGetterSetter.cpp:
- runtime/DateConstructor.cpp:
- runtime/DateInstance.cpp:
- runtime/DatePrototype.cpp:
- runtime/DirectArguments.cpp:
- runtime/Error.cpp:
- runtime/ErrorConstructor.cpp:
- runtime/ErrorInstance.cpp:
- runtime/ErrorPrototype.cpp:
- runtime/EvalExecutable.cpp:
- runtime/Exception.cpp:
- runtime/ExceptionHelpers.cpp:
- runtime/ExecutableBase.cpp:
- runtime/FunctionConstructor.cpp:
- runtime/FunctionExecutable.cpp:
- runtime/FunctionPrototype.cpp:
- runtime/FunctionRareData.cpp:
- runtime/GeneratorFunctionConstructor.cpp:
- runtime/GeneratorFunctionPrototype.cpp:
- runtime/GeneratorPrototype.cpp:
- runtime/GetterSetter.cpp:
- runtime/HashMapImpl.cpp:
- runtime/HashMapImpl.h:
- runtime/InferredType.cpp:
(JSC::InferredType::create):
- runtime/InferredTypeTable.cpp:
- runtime/InferredValue.cpp:
- runtime/InspectorInstrumentationObject.cpp:
- runtime/InternalFunction.cpp:
- runtime/IntlCollator.cpp:
- runtime/IntlCollatorConstructor.cpp:
- runtime/IntlCollatorPrototype.cpp:
- runtime/IntlDateTimeFormat.cpp:
- runtime/IntlDateTimeFormatConstructor.cpp:
- runtime/IntlDateTimeFormatPrototype.cpp:
- runtime/IntlNumberFormat.cpp:
- runtime/IntlNumberFormatConstructor.cpp:
- runtime/IntlNumberFormatPrototype.cpp:
- runtime/IntlObject.cpp:
- runtime/IteratorPrototype.cpp:
- runtime/JSAPIValueWrapper.cpp:
- runtime/JSArray.cpp:
- runtime/JSArrayBuffer.cpp:
- runtime/JSArrayBufferConstructor.cpp:
- runtime/JSArrayBufferPrototype.cpp:
- runtime/JSArrayBufferView.cpp:
- runtime/JSAsyncFunction.cpp:
- runtime/JSBoundFunction.cpp:
- runtime/JSCallee.cpp:
- runtime/JSCustomGetterSetterFunction.cpp:
- runtime/JSDataView.cpp:
- runtime/JSDataViewPrototype.cpp:
- runtime/JSEnvironmentRecord.cpp:
- runtime/JSFixedArray.cpp:
- runtime/JSFunction.cpp:
- runtime/JSGeneratorFunction.cpp:
- runtime/JSGlobalLexicalEnvironment.cpp:
- runtime/JSGlobalObject.cpp:
- runtime/JSInternalPromise.cpp:
- runtime/JSInternalPromiseConstructor.cpp:
- runtime/JSInternalPromiseDeferred.cpp:
- runtime/JSInternalPromisePrototype.cpp:
- runtime/JSLexicalEnvironment.cpp:
- runtime/JSMap.cpp:
- runtime/JSMapIterator.cpp:
- runtime/JSModuleEnvironment.cpp:
- runtime/JSModuleLoader.cpp:
- runtime/JSModuleNamespaceObject.cpp:
- runtime/JSModuleRecord.cpp:
- runtime/JSNativeStdFunction.cpp:
- runtime/JSONObject.cpp:
- runtime/JSObject.cpp:
- runtime/JSPromise.cpp:
- runtime/JSPromiseConstructor.cpp:
- runtime/JSPromiseDeferred.cpp:
- runtime/JSPromisePrototype.cpp:
- runtime/JSPropertyNameEnumerator.cpp:
- runtime/JSPropertyNameIterator.cpp:
- runtime/JSProxy.cpp:
- runtime/JSScriptFetcher.cpp:
- runtime/JSSet.cpp:
- runtime/JSSetIterator.cpp:
- runtime/JSSourceCode.cpp:
- runtime/JSString.cpp:
- runtime/JSStringIterator.cpp:
- runtime/JSSymbolTableObject.cpp:
- runtime/JSTemplateRegistryKey.cpp:
- runtime/JSTypedArrayConstructors.cpp:
- runtime/JSTypedArrayPrototypes.cpp:
- runtime/JSTypedArrayViewConstructor.cpp:
- runtime/JSTypedArrays.cpp:
- runtime/JSWeakMap.cpp:
- runtime/JSWeakSet.cpp:
- runtime/JSWithScope.cpp:
- runtime/MapConstructor.cpp:
- runtime/MapIteratorPrototype.cpp:
- runtime/MapPrototype.cpp:
- runtime/MathObject.cpp:
- runtime/ModuleLoaderPrototype.cpp:
- runtime/ModuleProgramExecutable.cpp:
- runtime/NativeErrorConstructor.cpp:
- runtime/NativeExecutable.cpp:
- runtime/NativeStdFunctionCell.cpp:
- runtime/NullGetterFunction.cpp:
- runtime/NullSetterFunction.cpp:
- runtime/NumberConstructor.cpp:
- runtime/NumberObject.cpp:
- runtime/NumberPrototype.cpp:
- runtime/ObjectConstructor.cpp:
- runtime/ObjectPrototype.cpp:
- runtime/ProgramExecutable.cpp:
- runtime/PropertyTable.cpp:
- runtime/ProxyConstructor.cpp:
- runtime/ProxyObject.cpp:
- runtime/ProxyRevoke.cpp:
- runtime/ReflectObject.cpp:
- runtime/RegExp.cpp:
- runtime/RegExpConstructor.cpp:
- runtime/RegExpObject.cpp:
- runtime/RegExpPrototype.cpp:
- runtime/ScopedArguments.cpp:
- runtime/ScopedArgumentsTable.cpp:
- runtime/ScriptExecutable.cpp:
- runtime/SetConstructor.cpp:
- runtime/SetIteratorPrototype.cpp:
- runtime/SetPrototype.cpp:
- runtime/SparseArrayValueMap.cpp:
- runtime/StrictEvalActivation.cpp:
- runtime/StringConstructor.cpp:
- runtime/StringIteratorPrototype.cpp:
- runtime/StringObject.cpp:
- runtime/StringPrototype.cpp:
- runtime/Structure.cpp:
- runtime/StructureChain.cpp:
- runtime/StructureRareData.cpp:
- runtime/Symbol.cpp:
- runtime/SymbolConstructor.cpp:
- runtime/SymbolObject.cpp:
- runtime/SymbolPrototype.cpp:
- runtime/SymbolTable.cpp:
- runtime/WeakMapConstructor.cpp:
- runtime/WeakMapData.cpp:
- runtime/WeakMapPrototype.cpp:
- runtime/WeakSetConstructor.cpp:
- runtime/WeakSetPrototype.cpp:
- testRegExp.cpp:
- tools/JSDollarVM.cpp:
- tools/JSDollarVMPrototype.cpp:
- wasm/JSWebAssembly.cpp:
- wasm/js/JSWebAssemblyCodeBlock.cpp:
- wasm/js/JSWebAssemblyCompileError.cpp:
- wasm/js/JSWebAssemblyInstance.cpp:
- wasm/js/JSWebAssemblyLinkError.cpp:
- wasm/js/JSWebAssemblyMemory.cpp:
- wasm/js/JSWebAssemblyModule.cpp:
- wasm/js/JSWebAssemblyRuntimeError.cpp:
- wasm/js/JSWebAssemblyTable.cpp:
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
- wasm/js/WebAssemblyCompileErrorPrototype.cpp:
- wasm/js/WebAssemblyFunction.cpp:
- wasm/js/WebAssemblyFunctionBase.cpp:
- wasm/js/WebAssemblyInstanceConstructor.cpp:
- wasm/js/WebAssemblyInstancePrototype.cpp:
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
- wasm/js/WebAssemblyLinkErrorPrototype.cpp:
- wasm/js/WebAssemblyMemoryConstructor.cpp:
- wasm/js/WebAssemblyMemoryPrototype.cpp:
- wasm/js/WebAssemblyModuleConstructor.cpp:
- wasm/js/WebAssemblyModulePrototype.cpp:
- wasm/js/WebAssemblyModuleRecord.cpp:
- wasm/js/WebAssemblyPrototype.cpp:
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
- wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
- wasm/js/WebAssemblyTableConstructor.cpp:
- wasm/js/WebAssemblyTablePrototype.cpp:
- wasm/js/WebAssemblyToJSCallee.cpp:
- wasm/js/WebAssemblyWrapperFunction.cpp:
Source/WebCore:
Add DOMJIT interface IDL attribute. Which allows us to define checkSubClassPatchpointFor${className}
function for that ClassInfo. And we move CheckSubClass patchpoint implementation to ClassInfo's member
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMGlobalObject.cpp:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSDOMWindowProperties.cpp:
- bindings/js/JSDOMWindowShell.cpp:
- bindings/js/JSReadableStreamPrivateConstructors.cpp:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateImplementationIterableFunctions):
(GenerateConstructorHelperMethods):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSInterfaceName.cpp:
- bindings/scripts/test/JS/JSMapLike.cpp:
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
- bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.h:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestException.cpp:
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
- bindings/scripts/test/JS/JSTestIterable.cpp:
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
- bindings/scripts/test/JS/JSTestSerialization.cpp:
- bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bridge/c/CRuntimeObject.cpp:
- bridge/c/c_instance.cpp:
- bridge/objc/ObjCRuntimeObject.mm:
- bridge/objc/objc_instance.mm:
- bridge/objc/objc_runtime.mm:
- bridge/runtime_array.cpp:
- bridge/runtime_method.cpp:
- bridge/runtime_object.cpp:
- dom/Document.idl:
- dom/DocumentFragment.idl:
- dom/Element.idl:
- dom/Event.idl:
- dom/Node.idl:
- domjit/JSDocumentDOMJIT.cpp:
(WebCore::checkSubClassPatchpointForJSDocument):
(WebCore::DocumentDocumentElementDOMJIT::checkDOM): Deleted.
(WebCore::DocumentBodyDOMJIT::checkDOM): Deleted.
- domjit/JSDocumentFragmentDOMJIT.cpp: Copied from Source/JavaScriptCore/runtime/JSMap.cpp.
(WebCore::checkSubClassPatchpointForJSDocumentFragment):
- domjit/JSElementDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.
(WebCore::checkSubClassPatchpointForJSElement):
- domjit/JSEventDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.
(WebCore::checkSubClassPatchpointForJSEvent):
- domjit/JSNodeDOMJIT.cpp:
(WebCore::checkSubClassPatchpointForJSNode):
(WebCore::NodeFirstChildDOMJIT::checkDOM): Deleted.
(WebCore::NodeLastChildDOMJIT::checkDOM): Deleted.
(WebCore::NodeNextSiblingDOMJIT::checkDOM): Deleted.
(WebCore::NodePreviousSiblingDOMJIT::checkDOM): Deleted.
(WebCore::NodeParentNodeDOMJIT::checkDOM): Deleted.
(WebCore::NodeNodeTypeDOMJIT::checkDOM): Deleted.
(WebCore::NodeOwnerDocumentDOMJIT::checkDOM): Deleted.
Source/WebKit/mac:
- Plugins/Hosted/ProxyInstance.mm:
- Plugins/Hosted/ProxyRuntimeObject.mm:
Source/WebKit2:
- WebProcess/Plugins/Netscape/JSNPMethod.cpp:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
- 2:19 AM Changeset in webkit [217107] by
-
- 2 edits in trunk/PerformanceTests
Speedometer 2.0: Vanilla JS test doesn't mark all todo items as completed
https://bugs.webkit.org/show_bug.cgi?id=172348
Reviewed by Antti Koivisto.
The bug was caused by the in-memory store class using the milisecond precision timestamp as an ID.
Because we inserts 50 items all at once, this can result in multiple data items sharing a single ID.
Fixed the bug by using a mononotically increasing ID instead.
- Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js:
(Store.prototype.save):
- 2:11 AM Changeset in webkit [217106] by
-
- 3 edits in trunk/LayoutTests
Unreviewed GTK+ gardening.
- platform/gtk/TestExpectations: Skip Apple Pay layout tests. Update one
http/tests/loading/resourceLoadStatistics test expectation.
- platform/gtk/http/tests/dom/document-attributes-null-handling-expected.txt: Update after r217091.
- 1:58 AM Changeset in webkit [217105] by
-
- 5 edits in trunk
[CMake] Add HAVE check for int128_t
https://bugs.webkit.org/show_bug.cgi?id=172317
Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-19
Reviewed by Yusuke Suzuki.
.:
- Source/cmake/OptionsCommon.cmake:
Source/WTF:
- wtf/MediaTime.cpp:
(WTF::MediaTime::setTimeScale):
- wtf/Platform.h:
- 1:27 AM Changeset in webkit [217104] by
-
- 6 edits in branches/safari-604.1.21-branch/Source
- 1:04 AM Changeset in webkit [217103] by
-
- 4 edits in branches/safari-604.1.21-branch
Cherry-pick r217074. rdar://problem/32282945
May 18, 2017:
- 11:58 PM Changeset in webkit [217102] by
-
- 3 edits in branches/safari-604.1.21-branch/Tools/TestWebKitAPI
Build fix: Temporarily disable data interaction tests.
- 11:54 PM Changeset in webkit [217101] by
-
- 13 edits in trunk/Source
[WK2] Notify WebPageProxy client when an active process goes over the inactive memory limit
https://bugs.webkit.org/show_bug.cgi?id=172244
<rdar://problem/31800943>
Reviewed by Geoffrey Garen.
Source/WebKit2:
Add a WKPageUIClient callback that is invoked when an active process exceeds the inactive memory limit.
With the current state of the implementation, this means that a UI client can learn that backgrounding
a non-audible, non-capturing tab may cause it to get killed once the active/inactive hysteresis time
is over (8 minutes.)
The callback can be invoked multiple times if we exceed the limit, and then go under, and exceed again.
This is the callback:
didExceedBackgroundResourceLimitWhileInForeground(WKPageRef, WKResourceLimit)
Where WKResourceLimit is one of { kWKResourceLimitMemory, kWKResourceLimitCPU }
The CPU enum value is a placeholder pending implementation soon.
- UIProcess/API/APIUIClient.h:
(API::UIClient::didExceedBackgroundResourceLimitWhileInForeground):
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didExceedInactiveMemoryLimitWhileActive):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didExceedInactiveMemoryLimitWhileActive):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Source/WTF:
Add an installable callback to MemoryPressureHandler that gets invoked when an active process
exceeds the kill limit for an inactive process.
This allows a UI client to become aware that backgrounding a tab may cause it to get killed.
- wtf/MemoryPressureHandler.cpp:
(WTF::thresholdForMemoryKillWithProcessState):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):
(WTF::MemoryPressureHandler::measurementTimerFired):
(WTF::MemoryPressureHandler::doesExceedInactiveLimitWhileActive):
(WTF::MemoryPressureHandler::doesNotExceedInactiveLimitWhileActive):
- wtf/MemoryPressureHandler.h:
(WTF::MemoryPressureHandler::setDidExceedInactiveLimitWhileActiveCallback):
- 11:25 PM Changeset in webkit [217100] by
-
- 22 edits in trunk/LayoutTests/imported/w3c
Update webidl2.js from upstream web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=172342
Reviewed by Sam Weinig.
- web-platform-tests/fetch/api/headers/headers-idl.html:
Re-sync test from upstream 11216539e as the test would break otherwise with the new webidl2.js.
- web-platform-tests/resources/webidl2/*:
Re-sync webidl2.js from upstream web-platform-tests 11216539e.
- web-platform-tests/url/interfaces.any-expected.txt:
- web-platform-tests/url/interfaces.any.worker-expected.txt:
Rebaseline tests that are now actually working. They relied on this new webidl2.js version.
- 10:58 PM Changeset in webkit [217099] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening on ApplePaySession.html after r217078.
- TestExpectations: Expect failure until webkit.org/b/172344 is fixed.
- 10:50 PM Changeset in webkit [217098] by
-
- 16 edits4 adds in trunk/Source/WebCore
[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>
Reviewed by Eric Carlson.
Test: media/media-source/media-source-paint-to-canvas.html
In order to have access to decoded video data for painting, decode the encoded samples manually
instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new
utility class WebCoreDecompressionSession, which can decode samples and store them.
For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication
of our sample delivery pipeline, we will only support painting of decoded video samples when the video is
not displayed in the DOM.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added.
- Modules/mediasource/SourceBuffer.h:
- WebCore.xcodeproj/project.pbxproj:
- platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros.
- platform/cf/CoreMediaSoftLink.h: Ditto.
- platform/cocoa/CoreVideoSoftLink.cpp: Ditto.
- platform/cocoa/CoreVideoSoftLink.h: Ditto.
- platform/graphics/SourceBufferPrivateClient.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session..
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted.
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo().
(WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer.
(WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session.
(WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected
buffer and add the decompression session or layer to the newly selected buffer.
(WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession.
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes.
(WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added.
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added.
- platform/graphics/cocoa/WebCoreDecompressionSession.h: Added.
(WebCore::WebCoreDecompressionSession::create):
(WebCore::WebCoreDecompressionSession::isInvalidated):
(WebCore::WebCoreDecompressionSession::createWeakPtr):
- platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added.
(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests.
(WebCore::WebCoreDecompressionSession::invalidate): Unregister for same.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts.
(WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue.
(WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample.
(WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput.
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread.
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame).
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count.
(WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady):
(WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same.
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued.
(WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time.
(WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues.
(WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method.
(WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto.
(WebCore::WebCoreDecompressionSession::getDuration): Ditto.
(WebCore::WebCoreDecompressionSession::compareBuffers): Ditto.
- platform/cocoa/VideoToolboxSoftLink.cpp: Added.
- platform/cocoa/VideoToolboxSoftLink.h: Added.
- 10:27 PM Changeset in webkit [217097] by
-
- 8 edits in trunk
WebAssembly: exports is a getter
https://bugs.webkit.org/show_bug.cgi?id=172129
Reviewed by Saam Barati.
JSTests:
Update test to reflect new semantics.
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
Source/JavaScriptCore:
As updated here: https://github.com/WebAssembly/design/pull/1062
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finishCreation): don't putDirect here anymore
- wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::moduleNamespaceObject): add accessor
- wasm/js/WebAssemblyFunctionBase.cpp: squelch causing a warning
- wasm/js/WebAssemblyInstancePrototype.cpp: use LUT
(JSC::getInstance): helper, as in surrounding files
(JSC::webAssemblyInstanceProtoFuncExports): instead of putDirect
- wasm/js/WebAssemblyMemoryPrototype.cpp: pass VM around as for Table
(JSC::getMemory):
(JSC::webAssemblyMemoryProtoFuncGrow):
(JSC::webAssemblyMemoryProtoFuncBuffer):
- wasm/js/WebAssemblyTablePrototype.cpp: static everywhere as with other code
(JSC::webAssemblyTableProtoFuncLength):
(JSC::webAssemblyTableProtoFuncGrow):
(JSC::webAssemblyTableProtoFuncGet):
(JSC::webAssemblyTableProtoFuncSet):
- 9:09 PM Changeset in webkit [217096] by
-
- 2 edits in trunk/Source/WebCore
[REGRESSION](r216901): Delete ImageDecoder if BitmapImage::destroyDecodedData() was called to destroy all the decoded frames
https://bugs.webkit.org/show_bug.cgi?id=172325
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-18
Reviewed by Simon Fraser.
When calling BitmapImage::destroyDecodedData() with destroyAll = true, the
current ImageDecoder has to be deleted regardless the current frame needs
to be cached or not. This is true except when the image is animating.
Creating a new ImageDecoder for the animated image will lead to decoding
all the frames from frame-zero till the current frame.
Deleting the current ImageDecoder has the benefit of releasing its raster
data. We also must delete the current ImageDecoder when the CachedImage
switched its data SharedBuffer.
The fix is return the condition in BitmapImage::destroyDecodedData() to
be as it was before r216901.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
- 9:01 PM Changeset in webkit [217095] by
-
- 15 edits4 copies4 moves2 adds1 delete in trunk/LayoutTests
Re-sync url web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=172333
Reviewed by Youenn Fablet.
Re-sync url web-platform-tests from upstream 11216539.
- web-platform-tests/url/README.md:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/failure-expected.txt:
- web-platform-tests/url/failure.html:
- web-platform-tests/url/historical.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker-expected.txt.
- web-platform-tests/url/historical.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
- web-platform-tests/url/historical.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.js.
(self.GLOBAL.isWindow):
- web-platform-tests/url/historical.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker-expected.txt.
- web-platform-tests/url/historical.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
- web-platform-tests/url/historical.html: Removed.
- web-platform-tests/url/interfaces.any-expected.txt: Added.
- web-platform-tests/url/interfaces.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
- web-platform-tests/url/interfaces.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/interfaces.html.
- web-platform-tests/url/interfaces.any.worker-expected.txt: Added.
- web-platform-tests/url/interfaces.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/url/historical.worker.html.
- web-platform-tests/url/url-constructor-expected.txt:
- web-platform-tests/url/url-origin-expected.txt:
- web-platform-tests/url/urlsearchparams-constructor-expected.txt:
- web-platform-tests/url/urlsearchparams-constructor.html:
- web-platform-tests/url/urltestdata.json:
- web-platform-tests/url/w3c-import.log:
- 8:56 PM Changeset in webkit [217094] by
-
- 4 edits in branches/safari-603-branch/LayoutTests
Unreviewed test gardening.
- platform/ios-simulator-wk2/pageoverlay/overlay-remove-reinsert-view-expected.txt:
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 8:51 PM Changeset in webkit [217093] by
-
- 6 edits1 add in trunk
Proxy's Get passes incorrect receiver
https://bugs.webkit.org/show_bug.cgi?id=164849
<rdar://problem/31767058>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/proxy-get-set-correct-receiver.js: Added.
(assert):
(test):
(test.let.target.set prop):
(test.let.target.get prop):
(test.get let):
- stress/proxy-set.js:
(let.target.get x):
- stress/reflect-set-proxy-set.js:
(let.target.get x):
- stress/reflect-set-receiver-proxy-set.js:
(let.target.get x):
Source/JavaScriptCore:
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
- 8:28 PM Changeset in webkit [217092] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r217079.
This change broke internal builds.
Reverted changeset:
"Redundant ellipsis box triggers
ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent()."
https://bugs.webkit.org/show_bug.cgi?id=172309
http://trac.webkit.org/changeset/217079
- 8:21 PM Changeset in webkit [217091] by
-
- 3 edits in trunk/LayoutTests
[macOS Sierra] Layout Test http/tests/dom/document-attributes-null-handling.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=172311
Reviewed by Andreas Kling.
Not sure why the cookies are sometimes returned by CFNetwork in a different order. However,
what matters and what we want to test is that the cookie was actually added so make the
test not rely on a specific order to address flakiness.
- http/tests/dom/document-attributes-null-handling-expected.txt:
- http/tests/dom/document-attributes-null-handling.html:
- 8:11 PM Changeset in webkit [217090] by
-
- 1 edit2 copies1 delete in trunk/Websites/browserbench.org
Add Speedometer 2.0 to browserbench.org for final testing
https://bugs.webkit.org/show_bug.cgi?id=172335
Rubber-stamped by Chris Dumez.
Stage Speedometer 2.0 here for the final testing before we call it official.
- Speedometer2.0: Copied from PerformanceTests/Speedometer.
- Speedometer2.0/Full.html: Removed.
- Speedometer2.0/index.html: Copied from PerformanceTests/Speedometer/index.html.
- 8:05 PM Changeset in webkit [217089] by
-
- 5 edits1 move in trunk
REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing
https://bugs.webkit.org/show_bug.cgi?id=172077
Reviewed by Chris Dumez.
PerformanceTests:
Rename Full.html to index.html to match the convention of other benchmarks.
- Speedometer/index.html: Renamed from PerformanceTests/Speedometer/Full.html.
Tools:
Fixed perftest.py by updating the lines to ignore in Speedometer.
Also start report the results as "Speedometer" instead of "DoYouEvenBench/Full.html" to perf.webkit.org.
- Scripts/webkitpy/performance_tests/perftest.py:
(PerfTest._lines_to_ignore_in_parser_result): Updated for Speedometer 2.0.
- Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._collect_tests): Use "Speedometer" instead of "Speedometer/index.html" as the test name.
(_generate_results_dict): Removed the workaround to keep reporting Speedometer as DoYouEvenBench.
- Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.test_collect_tests_with_index_html_and_resources): Added.
- 8:03 PM Changeset in webkit [217088] by
-
- 2 edits1 add in trunk/PerformanceTests
Speedometer: check-in missing React TodoMVC dependency
https://bugs.webkit.org/show_bug.cgi?id=172213
Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-18
Reviewed by Ryosuke Niwa.
- Speedometer/resources/todomvc/architecture-examples/react/index.html: fix director.min.js path.
- Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/director.min.js: Added.
- 7:59 PM Changeset in webkit [217087] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Release InjectedScripts when frontends close
https://bugs.webkit.org/show_bug.cgi?id=172313
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-18
Reviewed by Andreas Kling.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::disconnectFrontend):
Release inspector resources together, including discarding injected
scripts so that they may be collected.
(WebCore::InspectorController::inspectedPageDestroyed):
(WebCore::InspectorController::disconnectAllFrontends):
Move the disconnect call inside of disconnectAllFrontends to establish
a pattern of releasing web inspector resources together.
- 7:55 PM Changeset in webkit [217086] by
-
- 4 edits2 adds in trunk/LayoutTests
Unreviewed gardening on ApplePaySession.html after r217078.
The ApplePayError tests are only expected to pass when APPLE_PAY_DELEGATE is enabled, so
this breaks them out into their own file so that they can be skipped independently from
ApplePaySession.html.
- http/tests/ssl/applepay/ApplePayError-expected.txt: Added.
- http/tests/ssl/applepay/ApplePayError.html: Added.
- http/tests/ssl/applepay/ApplePaySession-expected.txt:
- http/tests/ssl/applepay/ApplePaySession.html:
- platform/mac-wk2/TestExpectations:
- 7:47 PM Changeset in webkit [217085] by
-
- 3 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html after r217078.
Unreviewed test gardening.
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 6:54 PM Changeset in webkit [217084] by
-
- 2 edits in trunk/Source/WebCore
Add a newline after the URL in showLayerTree output.
Reviewed by Zalan Bujtas.
- rendering/RenderLayer.cpp:
(WebCore::showLayerTree):
- 6:44 PM Changeset in webkit [217083] by
-
- 4 edits in trunk/Source/WebCore
Attachment drag preview should not have the attachment outline
https://bugs.webkit.org/show_bug.cgi?id=172327
<rdar://problem/32282831>
Reviewed by Tim Horton.
When creating a drag image for an attachment element, don't include borders around the attachment.
- page/DragController.cpp:
(WebCore::DragController::startDrag):
- rendering/RenderAttachment.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintAttachment):
- 6:43 PM Changeset in webkit [217082] by
-
- 3 edits in trunk/Source/WebCore
Make WebRTC logging happen in Release
https://bugs.webkit.org/show_bug.cgi?id=172307
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-18
Reviewed by Eric Carlson.
No change of behavior.
Move from LOG(WebRTC...) to RELEASE_LOG(WebRTC...).
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::queuedCreateOffer):
(WebCore::RTCPeerConnection::queuedCreateAnswer):
(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):
- 6:16 PM Changeset in webkit [217081] by
-
- 15 edits in trunk
[MediaStream] do not cache gUM permissions
https://bugs.webkit.org/show_bug.cgi?id=172245
Reviewed by Youenn Fablet.
Source/WebCore:
No new tests, updated fast/mediastream/MediaDevices-getUserMedia.html.
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Add salt parameter.
- platform/mediastream/RealtimeMediaSourceCenter.h:
Source/WebKit2:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied):
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::FrameAuthorizationState::FrameAuthorizationState): Deleted.
(WebKit::FrameAuthorizationState::hasPermissionToUseCaptureDevice): Deleted.
(WebKit::FrameAuthorizationState::setHasPermissionToUseCaptureDevice): Deleted.
(WebKit::FrameAuthorizationState::ensureSecurityOriginsAreEqual): Deleted.
(WebKit::UserMediaPermissionRequestManagerProxy::stateForRequest): Deleted.
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
(WebKit::FrameAuthorizationState::setDeviceIdentifierHashSalt): Deleted.
(WebKit::FrameAuthorizationState::deviceIdentifierHashSalt): Deleted.
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
- UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalt):
LayoutTests:
- fast/mediastream/MediaDevices-getUserMedia-expected.txt: Updated.
- fast/mediastream/MediaDevices-getUserMedia.html:
- http/tests/media/media-stream/get-user-media-prompt-expected.txt:
- http/tests/media/media-stream/get-user-media-prompt.html:
- 5:47 PM Changeset in webkit [217080] by
-
- 2 edits in trunk/Source/WebKit2
Data interaction conclusion snapshot has too much margin
https://bugs.webkit.org/show_bug.cgi?id=172323
<rdar://problem/32283772>
Reviewed by Beth Dakin.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::didConcludeEditDataInteraction):
Disable the default TextIndicator margin.
- 5:37 PM Changeset in webkit [217079] by
-
- 6 edits2 adds in trunk
Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent().
https://bugs.webkit.org/show_bug.cgi?id=172309
<rdar://problem/32262357>
Reviewed by Simon Fraser.
Source/WebCore:
This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION.
In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which
keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we
re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function.
In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it
later, while accessing the children list. However this redundant ellipsis box was never added to the line,
so the assertion hits incorrectly.
Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::EllipsisBox):
- rendering/InlineBox.cpp:
(WebCore::InlineBox::invalidateParentChildList):
- rendering/InlineBox.h:
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::placeEllipsis): Use the newly created ellipsis box instead.
LayoutTests:
- fast/inline/redundant-ellipsis-triggers-assert-incorrectly-expected.txt: Added.
- fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html: Added.
- 5:00 PM Changeset in webkit [217078] by
-
- 12 edits in trunk
ENABLE(APPLE_PAY_DELEGATE) should be NO on macOS Sierra and earlier
https://bugs.webkit.org/show_bug.cgi?id=172305
Reviewed by Anders Carlsson.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 4:47 PM Changeset in webkit [217077] by
-
- 2 edits in trunk/Source/JavaScriptCore
We need to destroy worker threads in jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=170751
<rdar://problem/31800412>
Reviewed by Filip Pizlo.
This patch fixes a bug where a $ agent worker would still
have compilation threads running after the thread the worker
was created on dies. This manifested itself inside DFG AI where
we would notice a string constant is atomic, then the worker
thread would die, destroying its atomic string table, then
we'd notice the same string is no longer atomic, and we'd crash
because we'd fail to see the same speculated type for the same
JSValue.
This patch makes it so that $ agent workers destroy their VM when
they're done executing. Before a VM gets destroyed, it ensures that
all its compilation threads finish.
- jsc.cpp:
(functionDollarAgentStart):
(runJSC):
(jscmain):
- 4:27 PM Changeset in webkit [217076] by
-
- 1 edit2 adds in trunk/LayoutTests
Add a test to ensure that media controls don't trigger composting of ancestors via "isolates blending"
https://bugs.webkit.org/show_bug.cgi?id=172320
Reviewed by Dean Jackson.
Test that makes some source-less and sourced audio and video controls, and dumps
the layer tree to ensure that they didn't trigger compositing on their ancestor
stacking context element.
- media/controls-should-not-trigger-isolates-blending-expected.txt: Added.
- media/controls-should-not-trigger-isolates-blending.html: Added.
- 4:22 PM Changeset in webkit [217075] by
-
- 8 edits2 adds in trunk
Transform misplaces element 50% of the time
https://bugs.webkit.org/show_bug.cgi?id=172300
Source/WebCore:
Reviewed by Simon Fraser.
A hardware-accelerated animation of the transform property
requires layout to happen if it contains a translate operation
using percentages, otherwise it may create an incorrect
animation. The "50% of the time" comes in to play because
the layout timer may sometimes fire before the animation
timer. The test case contains a example that is much more
likely to fail without this fix.
Test: animations/needs-layout.html
- page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::animationTimerFired): If
we've been told that we need a layout, and we have one pending, then
force it before doing the rest of the animation logic.
(WebCore::CSSAnimationController::updateAnimations): Check if the
CompositeAnimation depends on layout, and tell the private controller
that it should check for the necessity of a layout as the animation
timer fires.
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::animate): Ask the keyframes if this
animation depends on layout.
- page/animation/CompositeAnimation.h:
(WebCore::CompositeAnimation::hasAnimationThatDependsOnLayout):
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::computeLayoutDependency): Look at all
the keyframe properties for something that is a translation using
percentages.
- page/animation/KeyframeAnimation.h:
LayoutTests:
<rdar://problem/29835668>
Reviewed by Simon Fraser.
A test case which has an animation that relies on
translation percentages. If all goes well, the
animating element will be completely obscured.
- animations/needs-layout-expected.html: Added.
- animations/needs-layout.html: Added.
- 4:20 PM Changeset in webkit [217074] by
-
- 4 edits in trunk
Selection around attachment elements should not persist when beginning a drag
https://bugs.webkit.org/show_bug.cgi?id=172319
<rdar://problem/32283008>
Reviewed by Tim Horton.
Source/WebCore:
When beginning to drag an attachment element, save and restore the visible selection when calling out to the
injected bundle for additional data, and when creating the drag image.
Augmented an existing API test: DataInteractionTests.AttachmentElementItemProviders.
- page/DragController.cpp:
(WebCore::DragController::startDrag):
Tools:
Tests that temporary selection around an attachment does not persist longer than it needs to.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
- 4:11 PM Changeset in webkit [217073] by
-
- 4 edits in trunk/Source/JavaScriptCore
Add FTL whitelist debugging option
https://bugs.webkit.org/show_bug.cgi?id=172321
Reviewed by Saam Barati.
- dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::ensureGlobalFTLWhitelist):
(JSC::DFG::TierUpCheckInjectionPhase::run):
- runtime/Options.h:
- tools/FunctionWhitelist.cpp:
(JSC::FunctionWhitelist::contains):
- 3:33 PM Changeset in webkit [217072] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r?): Web Inspector: Shift-click on color square in Styles sidebar should not select text
https://bugs.webkit.org/show_bug.cgi?id=171902
Reviewed by Matt Baker.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
Do not attempt to select text if the element being clicked is a bookmark (such as a swatch).
- 3:14 PM Changeset in webkit [217071] by
-
- 3 edits in trunk/Source/WebCore
Cleanup: Remove unused functions from RuntimeEnabledFeatures
https://bugs.webkit.org/show_bug.cgi?id=172315
Reviewed by Jer Noble.
- page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::htmlMediaElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::htmlVideoElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::htmlSourceElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::mediaControllerEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::mediaErrorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::timeRangesEnabled): Deleted.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDOMIteratorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::domIteratorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setGeolocationEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::geolocationEnabled): Deleted.
- 3:10 PM Changeset in webkit [217070] by
-
- 3 edits in trunk/Websites/webkit.org
Add an Accessibility icon to webkit.org
https://bugs.webkit.org/show_bug.cgi?id=172298
Reviewed by Alexey Proskuryakov.
- wp-content/themes/webkit/images/icons.svg: Added accessibility icon to the sprite.
- wp-content/themes/webkit/style.css: New rule to use the accessibility icon from the icons sprite.
(.tile.category-accessibility .background-image):
- 2:53 PM Changeset in webkit [217069] by
-
- 8 edits in trunk
Improve error message for Access-Control-Allow-Origin violation due to misconfigured server
https://bugs.webkit.org/show_bug.cgi?id=162819
<rdar://problem/28575938>
Reviewed by Joseph Pecoraro.
LayoutTests/imported/w3c:
Update expected result.
- web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
- web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:
Source/WebCore:
Inspired by Blink change:
<https://src.chromium.org/viewvc/blink?view=revision&revision=163406>
At most one Access-Control-Allow-Origin header may be in an HTTP response. Improve the
error message emitted on a CORS failure when Access-Control-Allow-Origin contains more
than one origin, indicated by the presence of a ',', as a way to help web developers/server
administrators differentiate between a misconfigured Access-Control-Allow-Origin header
and a misconfigured server.
- loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck): Defined a local variable to hold the value of securityOrigin.toString()
and referenced this variable throughout the code to avoid computing the stringified security
origin more than once. Switched to using makeString() to concatenate error message when the
origin of the page does not match the value of the Access-Control-Allow-Origin header.
LayoutTests:
Add more tests when Access-Control-Allow-Origin has more than one value and group
with existing tests. Update expected results.
- http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
- http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html: Also extracted
the origin string for the page into a local variable called pageOrigin, making use of document.origin,
and referenced this variable instead of duplicating its value. Fixed various style nits.
- 2:50 PM Changeset in webkit [217068] by
-
- 30 edits2 adds in trunk
Resource Load Statistics: Grandfather domains for existing data records
https://bugs.webkit.org/show_bug.cgi?id=172155
<rdar://problem/24913532>
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/loading/resourceLoadStatistics/grandfathering.html
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setGrandfathered):
(WebCore::ResourceLoadObserver::isGrandfathered):
(WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval):
(WebCore::ResourceLoadObserver::setGrandfatheringTime):
Functions for testing and configuration.
ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval() changed as a result of moving
WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here.
- loader/ResourceLoadObserver.h:
- loader/ResourceLoadStatisticsStore.cpp:
(WebCore::ResourceLoadStatisticsStore::createEncoderFromData):
(WebCore::ResourceLoadStatisticsStore::readDataFromDecoder):
Now contains endOfGrandfatheringTimestamp.
(WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent):
Now makes a call to m_grandfatherExistingWebsiteDataHandler().
(WebCore::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback):
(WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval):
Changed as a result of moving
WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here.
(WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime):
(WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
Renamed since it now also takes grandfathering into account.
(WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):
Fixed typo in local variable name.
(WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
(WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords):
Convenience function added.
(WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved):
Convenience function added.
(WebCore::ResourceLoadStatisticsStore::dataRecordsWereRemoved):
Convenience function added.
(WebCore::ResourceLoadStatisticsStore::prevalentResourceDomainsWithoutUserInteraction): Deleted.
Replaced by ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor().
- loader/ResourceLoadStatisticsStore.h:
Source/WebKit2:
When WebResourceLoadStatisticsStore starts fresh it needs
to scan existing website data records and 'grandfather' them to
allow ample time to capture user interaction.
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:
(WKResourceLoadStatisticsManagerSetGrandfathered):
(WKResourceLoadStatisticsManagerIsGrandfathered):
(WKResourceLoadStatisticsManagerSetMinimumTimeBetweeenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetGrandfatheringTime):
Functions for testing and configuration.
- UIProcess/API/C/WKResourceLoadStatisticsManager.h:
- UIProcess/Cocoa/WebResourceLoadStatisticsManagerCocoa.mm:
(WebKit::WebResourceLoadStatisticsManager::registerUserDefaultsIfNeeded):
Added grandfathering configuration.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebiteData):
New function to get all top privately controlled domains that
have website data.
- UIProcess/WebProcessProxy.h:
- UIProcess/WebResourceLoadStatisticsManager.cpp:
(WebKit::WebResourceLoadStatisticsManager::setGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::isGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsManager::resetToConsistentState):
Functions for testing and configuration.
WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval() changed
as a result of WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval()
moving to WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval().
- UIProcess/WebResourceLoadStatisticsManager.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::initializeDataTypesToRemove):
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
Moved handling of pending removal into WebCore::ResourceLoadStatisticsStore since
that's where grandfathering happens.
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
Moved registration of write persistent store callback and reading of Cocoa defaults to
WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver without parameters
so they are called for platforms without CFNETWORK_STORAGE_PARTITIONING.
Now includes registering WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData()
as handler for grandfathering since it involves reading of the website data store.
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval): Deleted.
Now happens in WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval().
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::topPrivatelyControlledDomain):
New function to ask a WebsiteDataRecord for its top privately controlled domain.
- UIProcess/WebsiteData/WebsiteDataRecord.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::topPrivatelyControlledDomainsWithWebsiteData):
New function to get all top privately controlled domains that
have website data.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
Adds test infrastructure needed for the added functionality.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsGrandfathered):
(WTR::TestRunner::isStatisticsGrandfathered):
(WTR::TestRunner::installStatisticsDidScanDataRecordsCallback):
(WTR::TestRunner::statisticsDidScanDataRecordsCallback):
(WTR::TestRunner::setStatisticsGrandfatheringTime):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setStatisticsGrandfatheringTime):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/loading/resourceLoadStatistics/grandfathering-expected.txt: Added.
- http/tests/loading/resourceLoadStatistics/grandfathering.html: Added.
- platform/wk2/TestExpectations:
Marked it Pass for WebKit2.
- 2:44 PM Changeset in webkit [217067] by
-
- 2 edits4 adds in trunk/Source/WebInspectorUI
Web Inspector: Web Socket Document Icon
https://bugs.webkit.org/show_bug.cgi?id=170023
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-18
Reviewed by Matt Baker.
Icons made by Jon Davis.
- UserInterface/Images/WebSocket.png: Added.
- UserInterface/Images/WebSocket@2x.png: Added.
- UserInterface/Images/WebSocketLarge.png: Added.
- UserInterface/Images/WebSocketLarge@2x.png: Added.
New icons for Web Socket resources.
- UserInterface/Views/ResourceIcons.css:
(body:matches(.mac-platform, .windows-platform) .resource-icon.resource-type-websocket .icon):
(body:matches(.mac-platform, .windows-platform) .large .resource-icon.resource-type-websocket .icon):
Use the icon.
- 2:35 PM Changeset in webkit [217066] by
-
- 6 edits in trunk/Source/WebCore
Bindings: Require value for extended attributes EnabledAtRuntime and EnabledForWorld
https://bugs.webkit.org/show_bug.cgi?id=172252
Reviewed by Sam Weinig.
According to Sam Weinig it is an anti-feature that EnabledAtRuntime can be specified
without a value. We should make it require a value for the name of the RuntimeEnabledFeatures
function to use in the generated code. For similar reasons we should also require
a value for the extended attribute EnabledForWorld.
- Modules/websockets/WebSocket.idl: Substitute EnabledAtRuntime=WebSocket for EnabledAtRuntime.
- bindings/scripts/CodeGeneratorJS.pm:
(GetRuntimeEnableFunctionName):
- html/HTMLAudioElement.idl: Substitute EnabledAtRuntime=Audio for EnabledAtRuntime.
- page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::audioEnabled):
(WebCore::RuntimeEnabledFeatures::htmlAudioElementEnabled): Deleted. This function duplicated
the functionality of RuntimeEnabledFeatures::audioEnabled(). Instead we explicitly
write EnabledAtRuntime=Audio in HTMLAudioElement.idl to use RuntimeEnabledFeatures::audioEnabled()
to determine whether to expose/conceal the HTMLAudioElement global constructor at runtime.
- page/RuntimeEnabledFeatures.h:
- 2:14 PM Changeset in webkit [217065] by
-
- 7 edits in branches/safari-604.1.21-branch/Source
Versioning.
- 1:49 PM Changeset in webkit [217064] by
-
- 3 edits in trunk/LayoutTests
Fix wasm-mem-post-message.html test expectations
https://bugs.webkit.org/show_bug.cgi?id=172308
Unreviewed, test gardening.
- platform/ios-simulator/TestExpectations:
- platform/win/TestExpectations:
- 1:32 PM Changeset in webkit [217063] by
-
- 6 edits2 adds2 deletes in trunk
Allow nested timers to propagate user gestures so long as the total nested interval is less than 1s.
https://bugs.webkit.org/show_bug.cgi?id=172173
Reviewed by Andy Estes.
Source/WebCore:
Test: media/restricted-audio-playback-with-multiple-settimeouts.html
Store the current nested timer interval in DOMTimerFireState, and use that value to propagate the
nested interval through multiple invocations of setTimeout().
Drive-by fix: instead of manually resetting the nesting level in DOMTimer::fired(), add the
nesting level to the DOMTimerFireState, and reset the nesting level on the state's destruction.
This fixes one place in DOMTimer::fire() where an early return lead to the timer's nesting level
not being reset.
- page/DOMTimer.cpp:
(WebCore::DOMTimerFireState::DOMTimerFireState):
(WebCore::DOMTimerFireState::~DOMTimerFireState):
(WebCore::DOMTimerFireState::nestedTimerInterval):
(WebCore::shouldForwardUserGesture):
(WebCore::userGestureTokenToForward):
(WebCore::currentNestedTimerInterval):
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::fired):
- page/DOMTimer.h:
LayoutTests:
- fast/events/popup-blocked-from-untrusted-mouse-click.html:
- fast/events/popup-blocking-timers4-expected.txt: Removed.
- fast/events/popup-blocking-timers4.html: Removed.
- media/restricted-audio-playback-with-multiple-settimeouts-expected.txt: Added.
- media/restricted-audio-playback-with-multiple-settimeouts.html: Added.
- platform/ios/TestExpectations:
- 12:55 PM Changeset in webkit [217062] by
-
- 5 edits3 adds in trunk
Constructor calls set this too early
https://bugs.webkit.org/show_bug.cgi?id=172302
Reviewed by Saam Barati.
JSTests:
This tests all three kinds of constructs in BytecodeGenerator. All three were previously
wrong.
- stress/construct-overwritten-variable.js: Added.
(new.x.x):
- stress/construct-spread-overwritten-variable-2.js: Added.
(new.x.x):
- stress/construct-spread-overwritten-variable.js: Added.
(new.x.x):
Source/JavaScriptCore:
We were setting this before evaluating the arguments, so this code:
var x = 42;
new x(x = function() { });
Would crash because we would pass 42 as this, and create_this would treat it as a cell.
Dereferencing a non-cell is guaranteed to crash.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitConstruct):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::NewExprNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
- 12:40 PM Changeset in webkit [217061] by
-
- 1 edit5 adds in trunk/LayoutTests
Evaluating window named element may return wrong result
https://bugs.webkit.org/show_bug.cgi?id=166792
<rdar://problem/29801059>
Reviewed by Chris Dumez.
Add tests to ensure we do not regress evaluation of window named elements.
- http/tests/security/named-window-property-from-same-origin-inactive-document-expected.txt: Added.
- http/tests/security/named-window-property-from-same-origin-inactive-document.html: Added.
- http/tests/security/resources/innocent-victim-with-named-elements.html: Added.
- http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt: Added.
- http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document.html: Added.
- 12:38 PM Changeset in webkit [217060] by
-
- 32 edits1 add in trunk
WebAssembly: perform stack checks
https://bugs.webkit.org/show_bug.cgi?id=165546
<rdar://problem/29760307>
Reviewed by Filip Pizlo.
JSTests:
- wasm.yaml:
- wasm/function-tests/factorial.js:
- wasm/function-tests/float-sub.js:
- wasm/function-tests/stack-overflow.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
(assertOverflows.makeInstance):
(assertOverflows.makeInstance2):
(assertOverflows.assertThrows):
(assertOverflows):
(assertThrows.test.makeSignature):
(assertThrows.test.makeInstance):
(assertThrows.test):
(assertThrows):
Source/JavaScriptCore:
This patch adds stack checks to wasm. It implements it by storing the stack
bounds on the Context.
Stack checking works as normal, except we do a small optimization for terminal
nodes in the call tree (nodes that don't make any calls). These nodes will
only do a stack check if their frame size is beyond 1024 bytes. Otherwise,
it's assumed the parent that called them did their stack check for them.
This is because all things that make calls make sure to do an extra 1024
bytes whenever doing a stack check.
We also take into account stack size for potential JS calls when doing
stack checks since our JS stubs don't do this on their own. Each frame
will ensure it does a stack check large enough for any potential JS call
stubs it'll execute.
Surprisingly, this patch is neutral on WasmBench and TitzerBench.
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LowLevelInterpreter.asm:
- runtime/Error.cpp:
(JSC::createRangeError):
(JSC::addErrorInfoAndGetBytecodeOffset):
I fixed a bug here where we assumed that the first frame that has line
and column info would be in our stack trace. This is not correct
since we limit our stack trace size. If everything in our limited
size stack trace is Wasm, then we won't have any frames with line
and column info.
- runtime/Error.h:
- runtime/ExceptionHelpers.cpp:
(JSC::createStackOverflowError):
- runtime/ExceptionHelpers.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::webAssemblyToJSCalleeStructure):
- runtime/JSType.h:
- runtime/Options.h: I've added a new option that controls
whether or not we use fast TLS for the wasm context.
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- wasm/WasmContext.cpp:
(JSC::Wasm::loadContext):
(JSC::Wasm::storeContext):
- wasm/WasmContext.h:
(JSC::Wasm::useFastTLSForContext):
- wasm/WasmExceptionType.h:
- wasm/WasmMemoryInformation.h:
(JSC::Wasm::PinnedRegisterInfo::toSave):
- wasm/WasmThunks.cpp:
(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
(JSC::Wasm::Thunks::stub):
- wasm/WasmThunks.h:
- wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::offsetOfCachedStackLimit):
(JSC::JSWebAssemblyInstance::cachedStackLimit):
(JSC::JSWebAssemblyInstance::setCachedStackLimit):
- wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::finishCreation):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::callWebAssemblyFunction):
- wasm/js/WebAssemblyToJSCallee.cpp: Make this a descendent of object.
This is needed for correctness because we may call into JS,
and then the first JS frame could stack overflow. When it stack
overflows, it rolls back one frame to the wasm->js call stub with
the wasm->js callee. It gets the lexical global object from this
frame, meaning it gets the global object from the callee. Therefore,
we must make it an object since all objects have global objects.
(JSC::WebAssemblyToJSCallee::create):
- wasm/js/WebAssemblyToJSCallee.h:
Tools:
Add some new testing modes for using and not using fast TLS wasm contexts.
- Scripts/run-jsc-stress-tests:
- 12:29 PM Changeset in webkit [217059] by
-
- 1 copy in tags/Safari-604.1.21.6
Tag Safari-604.1.21.6.
- 12:07 PM Changeset in webkit [217058] by
-
- 2 edits in trunk/Source/WebCore
RealtimeOutgoingAudioSource should use the source sample rate
https://bugs.webkit.org/show_bug.cgi?id=172297
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-18
Reviewed by Eric Carlson.
Covered by manual tests.
- platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:
(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable): Using the audio source sample rate so that the converter does the right conversion.
- 11:57 AM Changeset in webkit [217057] by
-
- 8 edits in trunk
Add "countryCode" to ApplePayErrorContactField
https://bugs.webkit.org/show_bug.cgi?id=172264
<rdar://problem/32004909>
Reviewed by Anders Carlsson.
Source/WebCore:
Added ApplePayError tests to http/tests/ssl/applepay/ApplePaySession.html
- Modules/applepay/ApplePayError.idl:
- Modules/applepay/PaymentRequest.h:
Source/WebKit2:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toNSError):
LayoutTests:
- http/tests/ssl/applepay/ApplePaySession-expected.txt:
- http/tests/ssl/applepay/ApplePaySession.html:
- 11:56 AM Changeset in webkit [217056] by
-
- 2 edits in trunk/Source/WebCore
Cleanup: Remove unnecessary call to AddToImplIncludes("RuntimeEnabledFeatures.h") in GenerateImplementation()
https://bugs.webkit.org/show_bug.cgi?id=172236
Reviewed by Chris Dumez.
It is unnecessary for GenerateImplementation() to explicitly call AddToImplIncludes("RuntimeEnabledFeatures.h")
to add the header RuntimeEnabledFeatures.h to the list of headers in the generated implementation
as this header is added when GetRuntimeEnableFunctionName() is called. And GenerateImplementation()
calls GetRuntimeEnableFunctionName().
No functionality changed. So, no new tests.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- 11:56 AM Changeset in webkit [217055] by
-
- 3 edits in trunk/Source/WTF
AutomaticThread should wait longer before timing out
https://bugs.webkit.org/show_bug.cgi?id=172292
Reviewed by Filip Pizlo.
Increased the idle timeout from 1s => 10s.
This reduces the number of thread restarts on JetStream from
~150 => ~0. It also matches other thread pool APIs on Darwin.
Intuitively, it seems wrong for helper threads to idle exit during
hardcore benchmarking.
This patch in combination with a bmalloc fix seems to be a 1%-2% JetStream
speedup on my Mac Pro.
A nice side-benefit is that per-thread traces are easier to read.
- wtf/AutomaticThread.cpp:
(WTF::AutomaticThread::start):
- wtf/AutomaticThread.h:
- 11:55 AM Changeset in webkit [217054] by
-
- 7 edits7 adds in trunk
REGRESSION (r209608): Cross-origin plugin document opened in child window blocked by parent
window CSP when object-src 'none' is set
https://bugs.webkit.org/show_bug.cgi?id=172038
<rdar://problem/32258262>
Reviewed by Andy Estes.
Source/WebCore:
Fixes an issue where a cross-origin plugin document opened in a child window would inherit
the Content Security Policy (CSP) of its opener. In particular, a cross-origin plugin
document opened in a child window would be blocked when the CSP of its opener disallows
plugins (e.g. object-source 'none').
Prior to r209608 a document opened in a child window never inherited the CSP from its opener
and a plugin document loaded in a subframe would unconditionally inherit the CSP from its
parent frame. So, a plugin document opened in a child window would be allowed to load
regardless of whether its opener had a CSP that prevented plugins. Following r209608 a
document opened in a child window would inherit its CSP from its opener if and only if it
would inherit the security origin from its opener (e.g. about:blank) or was a plugin
document. The latter condition makes plugin documents opened in a child window unconditionally
inherit the CSP from their opener and is the cause of this bug. It seems reasonable to exempt
cross-origin plugin documents opened in a child window from the CSP inheritance rule because
such documents cannot compromise the origin of their opener. Same-origin plugin documents
opened in a child window will continue to inherit the CSP from their opener because such
documents can compromise the origin of their opener.
Tests: http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html
http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html
http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html
- dom/Document.cpp:
(WebCore::Document::shouldInheritContentSecurityPolicyFromOwner): Added.
(WebCore::Document::initContentSecurityPolicy):
- dom/Document.h:
Tools:
Teach the test Netscape plugin to look for a URL that contains plugin-document-alert-and-notify-done.pl.
When it sees this URL it will show a JavaScript alert and call testRunner.notifyDone().
- DumpRenderTree/TestNetscapePlugIn/main.cpp:
(NPP_New):
LayoutTests:
Adds tests to ensure that a same-origin- and cross-origin- plugin document opened in a child
window inherit and do not inherit the CSP of its opener, respectively. Also adds a test to
ensure that an about:blank window inherits the CSP plugin policy of its opener.
- http/tests/plugins/resources/plugin-document-alert-and-notify-done.pl: Added.
- http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html: Added.
- http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html: Added.
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html: Added.
- platform/ios/TestExpectations: Skip added tests as iOS does not support plugins.
- 11:26 AM Changeset in webkit [217053] by
-
- 2 edits in trunk/Tools
[Win] Many layout tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=172286
Reviewed by Brent Fulgham.
Add a FIXME comment about unimplemented functions, instead of writing this to the test result file.
- DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::grantWebNotificationPermission):
(TestRunner::denyWebNotificationPermission):
(TestRunner::removeAllWebNotificationPermissions):
(TestRunner::simulateWebNotificationClick):
- 11:22 AM Changeset in webkit [217052] by
-
- 11 edits7 adds in trunk
WebAssembly API: test with neutered inputs
https://bugs.webkit.org/show_bug.cgi?id=163899
Reviewed by JF Bastien.
JSTests:
- wasm/js-api/neutered-inputs.js: Added.
(const.testFunction):
(const.testConstructor):
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
Source/JavaScriptCore:
Add tests to check that we properly throw a type error when
we get a transferred ArrayBuffer. Also, we should make sure
we cannot post message a wasm memory's ArrayBuffer.
- API/JSTypedArray.cpp:
(JSObjectGetArrayBufferBytesPtr):
- runtime/ArrayBuffer.cpp:
(JSC::ArrayBuffer::makeShared):
(JSC::ArrayBuffer::makeWasmMemory):
(JSC::ArrayBuffer::transferTo):
(JSC::ArrayBuffer::neuter):
(JSC::ArrayBuffer::notifyIncommingReferencesOfTransfer):
(JSC::errorMesasgeForTransfer):
- runtime/ArrayBuffer.h:
(JSC::ArrayBuffer::isLocked):
(JSC::ArrayBuffer::isWasmMemory):
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::buffer):
(JSC::JSWebAssemblyMemory::grow):
Source/WebCore:
Make it not possible to transfer an ArrayBuffer that is backed by a
wasm memory.
Test: workers/wasm-mem-post-message.html
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
LayoutTests:
This patch dups Saam's de-modularized builder.
- workers/sab/postMessage-transfer-type-error-expected.txt:
- workers/wasm-mem-post-message-expected.txt: Added.
- workers/wasm-mem-post-message.html: Added.
- workers/wasm-mem-post-message/test.js: Added.
(worker.onmessage):
- workers/wasm-mem-post-message/worker.js: Added.
(onmessage):
- workers/wasm-resources/builder.js: Added.
(const._fail):
(const.isNotA.assert.isNotA):
(const):
(switch.typeof):
(Builder):
(Builder.prototype.setChecked):
(Builder.prototype.setPreamble):
(Builder.prototype._functionIndexSpaceKeyHash):
(Builder.prototype._registerFunctionToIndexSpace):
(Builder.prototype._getFunctionFromIndexSpace):
(Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
(Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.const.codeBuilder.End.switch.case.string_appeared_here.e):
(Builder.prototype._registerSectionBuilders.this.Unknown):
- 11:09 AM Changeset in webkit [217051] by
-
- 3 edits in trunk/Source/JavaScriptCore
Remote Inspector: Be stricter about checking message types
https://bugs.webkit.org/show_bug.cgi?id=172259
<rdar://problem/32264839>
Reviewed by Brian Burg.
- inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::receivedDataMessage):
(Inspector::RemoteInspector::receivedDidCloseMessage):
(Inspector::RemoteInspector::receivedIndicateMessage):
(Inspector::RemoteInspector::receivedConnectionDiedMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionConfigurationMessage):
(Inspector::RemoteInspector::receivedAutomaticInspectionRejectMessage):
(Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):
- inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:
(Inspector::RemoteInspectorXPCConnection::deserializeMessage):
(Inspector::RemoteInspectorXPCConnection::handleEvent):
(Inspector::RemoteInspectorXPCConnection::sendMessage):
Bail if we don't receive the expected types for message data.
- 10:46 AM Changeset in webkit [217050] by
-
- 7 edits3 adds in trunk
DFG inlining should be hardened for the no-result case
https://bugs.webkit.org/show_bug.cgi?id=172290
Reviewed by Saam Barati.
JSTests:
- stress/array-constructor-no-result.js: Added.
(foo):
- stress/pow-no-result.js: Added.
(foo):
Source/JavaScriptCore:
Previously, if we were inlining a setter call, we might have a bad time because the setter's
result register is the invalid VirtualRegister(), and much of the intrinsic handling code
assumes that the result register is valid.
This doesn't usually cause problems because people don't usually point a setter at something
that we recognize as an intrinsic.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/air/AirAllocateRegistersAndStackByLinearScan.cpp: Fix a comment.
- dfg/DFGByteCodeParser.cpp: Make RELEASE_ASSERT give accurate stacks. I was getting an absurd stack from the assert I added in DelayedSetLocal.
(JSC::DFG::ByteCodeParser::DelayedSetLocal::DelayedSetLocal): Assert so we catch the problem sooner.
(JSC::DFG::ByteCodeParser::handleIntrinsicCall): Fix the bug.
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction): Fix the bug if constant internal functions were setter-inlineable (they ain't, because the bytecode parser doesn't fold GetSetter).
- runtime/Intrinsic.cpp: Added. I needed this to debug.
(JSC::intrinsicName):
(WTF::printInternal):
- runtime/Intrinsic.h:
- 10:42 AM Changeset in webkit [217049] by
-
- 307 edits5 deletes in trunk
Unreviewed, rolling out r217031, r217032, and r217037.
https://bugs.webkit.org/show_bug.cgi?id=172293
cause linking errors in Windows (Requested by yusukesuzuki on
#webkit).
Reverted changesets:
"[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217031
"Unreviewed, rebaseline for newly added ClassInfo"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217032
"Unreviewed, fix debug and non-JIT build"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217037
- 10:17 AM Changeset in webkit [217048] by
-
- 2 edits in trunk/Source/WebCore
Protect MediaDeviceRequest instance during context destruction.
https://bugs.webkit.org/show_bug.cgi?id=172285
<rdar://problem/30369017>
Reviewed by Brent Fulgham.
In MediaDevicesRequest::contextDestroyed(), the call to m_enumerationRequest->cancel() might
end up deleting itself (MediaDevicesRequest). The std::function member m_completionHandler
in MediaDevicesEnumerationRequest contains a captured variable of type
RefPtr<MediaDevicesRequest>. When m_completionHandler is set to null in the cancel() method,
the MediaDevicesRequest object will be deleted if the m_completionHandler member is holding
the last reference.
No new tests, since I am unable to reproduce.
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::contextDestroyed):
- 10:07 AM Changeset in webkit [217047] by
-
- 208 edits15 copies1 move200 adds in trunk/LayoutTests
Update web-platform-tests tools
https://bugs.webkit.org/show_bug.cgi?id=172247
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline tests now that WPT tools were updated.
- web-platform-tests/FileAPI/idlharness-expected.txt:
- web-platform-tests/FileAPI/idlharness.worker-expected.txt:
- web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt:
- web-platform-tests/IndexedDB/interfaces-expected.txt:
- web-platform-tests/IndexedDB/interfaces.worker-expected.txt:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt:
- web-platform-tests/WebCryptoAPI/idlharness-expected.txt:
- web-platform-tests/WebCryptoAPI/idlharness.worker-expected.txt:
- web-platform-tests/XMLHttpRequest/formdata-foreach-expected.txt:
- web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
- web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
- web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
- web-platform-tests/background-fetch/interfaces.worker-expected.txt:
- web-platform-tests/cors/origin-expected.txt:
- web-platform-tests/custom-elements/custom-element-registry/define-expected.txt:
- web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
- web-platform-tests/dom/interfaces-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
- web-platform-tests/encoding/idlharness-expected.txt:
- web-platform-tests/fetch/api/basic/integrity-sharedworker-expected.txt:
- web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
- web-platform-tests/fetch/api/request/request-idl-expected.txt:
- web-platform-tests/fetch/api/response/response-idl-expected.txt:
- web-platform-tests/hr-time/idlharness-expected.txt:
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
- web-platform-tests/html/dom/reflection-embedded-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-1-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/moving-documents-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt:
- web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
- web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
- web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
- web-platform-tests/notifications/interfaces-expected.txt:
- web-platform-tests/resource-timing/idlharness-expected.txt:
- web-platform-tests/resource-timing/rt-initiatorType-other-expected.txt:
- web-platform-tests/resources/idlharness.js:
(set exposed):
(IdlArray.prototype.test):
(IdlArray.prototype.assert_type_is):
(IdlInterface.prototype.test_self):
(IdlInterface.prototype.add_iterable_members):
(IdlInterface.prototype.test_member_iterable):
(IdlInterface.prototype.test_members):
(IdlInterface.prototype.test_primary_interface_of):
(IdlInterface.prototype.test_interface_of):
(IdlInterface.prototype.do_interface_attribute_asserts):
(IdlTypedef):
- web-platform-tests/resources/testharness.js:
(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(ServiceWorkerTestEnvironment):
(promise_test):
- web-platform-tests/shadow-dom/Document-prototype-currentScript-expected.txt:
- web-platform-tests/streams/byte-length-queuing-strategy.sharedworker-expected.txt:
- web-platform-tests/streams/count-queuing-strategy.sharedworker-expected.txt:
- web-platform-tests/streams/piping/close-propagation-backward.sharedworker-expected.txt:
- web-platform-tests/streams/piping/close-propagation-forward.sharedworker-expected.txt:
- web-platform-tests/streams/piping/error-propagation-backward.sharedworker-expected.txt:
- web-platform-tests/streams/piping/error-propagation-forward.sharedworker-expected.txt:
- web-platform-tests/streams/piping/flow-control.sharedworker-expected.txt:
- web-platform-tests/streams/piping/general-expected.txt:
- web-platform-tests/streams/piping/general.sharedworker-expected.txt:
- web-platform-tests/streams/piping/multiple-propagation.sharedworker-expected.txt:
- web-platform-tests/streams/piping/pipe-through.sharedworker-expected.txt:
- web-platform-tests/streams/piping/transform-streams.sharedworker-expected.txt:
- web-platform-tests/streams/readable-byte-streams/general.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/bad-strategies.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/bad-underlying-sources.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/brand-checks.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/cancel.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/garbage-collection.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/general.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/pipe-through.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/readable-stream-reader.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/tee.sharedworker-expected.txt:
- web-platform-tests/streams/readable-streams/templated.sharedworker-expected.txt:
- web-platform-tests/tools/browserutils/init.py: Added.
- web-platform-tests/tools/browserutils/browser.py: Added.
(path):
(Browser):
(Browser.install):
(Browser.install_webdriver):
(Browser.version):
(Browser.requirements):
(Browser.prepare_environment):
(Firefox):
(Firefox.platform_string):
(Firefox.platform_string_geckodriver):
(Firefox.latest_nightly_listing):
(Firefox.get_from_nightly):
(Firefox.install):
(Firefox.find_binary):
(Firefox.find_certutil):
(Firefox.find_webdriver):
(Firefox.install_certutil):
(Firefox.install_prefs):
(Firefox._latest_geckodriver_version):
(Firefox.install_webdriver):
(Firefox.version):
(Chrome):
(Chrome.platform_string):
(Chrome.install):
(Chrome.find_webdriver):
(Chrome.install_webdriver):
(Chrome.version):
(Chrome.prepare_environment):
- web-platform-tests/tools/browserutils/utils.py: Added.
(Kwargs):
(Kwargs.set_if_none):
(call):
(get_git_cmd):
(get_git_cmd.git):
(seekable):
(untar):
(unzip):
(pwd):
(pwd.init):
(pwd.enter):
(pwd.exit):
(get):
- web-platform-tests/tools/browserutils/virtualenv.py: Added.
(Virtualenv):
(Virtualenv.init):
(Virtualenv.exists):
(Virtualenv.create):
(Virtualenv.bin_path):
(Virtualenv.pip_path):
(Virtualenv.activate):
(Virtualenv.start):
(Virtualenv.install_requirements):
- web-platform-tests/tools/browserutils/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
- web-platform-tests/tools/conftest.py:
- web-platform-tests/tools/gitignore/tests/w3c-import.log:
- web-platform-tests/tools/gitignore/w3c-import.log:
- web-platform-tests/tools/html5lib/doc/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/filters/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/serializer/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/serializer/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/sniffer/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/tokenizer/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/scripted/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/tree-construction/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/validator/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/testdata/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/tests/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/treeadapters/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/treebuilders/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/treewalkers/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/trie/w3c-import.log:
- web-platform-tests/tools/html5lib/html5lib/w3c-import.log:
- web-platform-tests/tools/html5lib/utils/w3c-import.log:
- web-platform-tests/tools/html5lib/w3c-import.log:
- web-platform-tests/tools/lint/lint.py:
- web-platform-tests/tools/lint/tests/dummy/css-unique/match/support/tools/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/match/support/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/match/tools/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/match/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/not-match/support/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/not-match/tools/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/not-match/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/selectors/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/support/tools/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/support/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/tools/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css-unique/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/css/work-in-progress/foo/support/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/ref/w3c-import.log:
- web-platform-tests/tools/lint/tests/dummy/w3c-import.log:
- web-platform-tests/tools/lint/tests/w3c-import.log:
- web-platform-tests/tools/lint/w3c-import.log:
- web-platform-tests/tools/localpaths.py:
- web-platform-tests/tools/manifest/catalog/w3c-import.log:
- web-platform-tests/tools/manifest/tests/w3c-import.log:
- web-platform-tests/tools/manifest/w3c-import.log:
- web-platform-tests/tools/pytest.ini:
- web-platform-tests/tools/pytest/_pytest/_code/w3c-import.log:
- web-platform-tests/tools/pytest/_pytest/assertion/w3c-import.log:
- web-platform-tests/tools/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/w3c-import.log:
- web-platform-tests/tools/pytest/_pytest/vendored_packages/w3c-import.log:
- web-platform-tests/tools/pytest/_pytest/w3c-import.log:
- web-platform-tests/tools/pytest/bench/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/_templates/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/_themes/flask/static/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/_themes/flask/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/_themes/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/announce/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/assertion/global_testmodule_config/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/assertion/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/costlysetup/sub1/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/costlysetup/sub2/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/costlysetup/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/layout1/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/nonpython/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/py2py3/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/example/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/img/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/test/plugin/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/test/w3c-import.log:
- web-platform-tests/tools/pytest/doc/en/w3c-import.log:
- web-platform-tests/tools/pytest/extra/setup-py.test/w3c-import.log:
- web-platform-tests/tools/pytest/extra/w3c-import.log:
- web-platform-tests/tools/pytest/testing/code/w3c-import.log:
- web-platform-tests/tools/pytest/testing/cx_freeze/tests/w3c-import.log:
- web-platform-tests/tools/pytest/testing/cx_freeze/w3c-import.log:
- web-platform-tests/tools/pytest/testing/python/w3c-import.log:
- web-platform-tests/tools/pytest/testing/w3c-import.log:
- web-platform-tests/tools/pytest/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/example/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/handshake/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/test/cert/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/test/testdata/handlers/sub/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/test/testdata/handlers/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/test/testdata/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/test/w3c-import.log:
- web-platform-tests/tools/pywebsocket/src/w3c-import.log:
- web-platform-tests/tools/runner/css/w3c-import.log:
- web-platform-tests/tools/runner/fonts/w3c-import.log:
- web-platform-tests/tools/runner/w3c-import.log:
- web-platform-tests/tools/scripts/w3c-import.log:
- web-platform-tests/tools/serve/w3c-import.log:
- web-platform-tests/tools/six/documentation/w3c-import.log:
- web-platform-tests/tools/six/w3c-import.log:
- web-platform-tests/tools/sslutils/w3c-import.log:
- web-platform-tests/tools/tox.ini:
- web-platform-tests/tools/w3c-import.log:
- web-platform-tests/tools/webdriver/README.md:
- web-platform-tests/tools/webdriver/w3c-import.log:
- web-platform-tests/tools/webdriver/webdriver/client.py:
(Element.send_keys):
- web-platform-tests/tools/webdriver/webdriver/w3c-import.log:
- web-platform-tests/tools/wptrun.py: Added.
(WptrunnerHelpAction):
(WptrunnerHelpAction.init):
(WptrunnerHelpAction.call):
(create_parser):
(exit):
(args_general):
(check_environ):
(prompt_install):
(args_firefox):
(setup_firefox):
(args_chrome):
(setup_chrome):
(setup_edge):
(setup_sauce):
(setup_servo):
(setup_wptrunner):
(main):
- web-platform-tests/tools/wptrunner/LICENSE: Renamed from LayoutTests/imported/w3c/web-platform-tests/tools/LICENSE.
- web-platform-tests/tools/wptrunner/MANIFEST.in: Added.
- web-platform-tests/tools/wptrunner/README.rst: Added.
- web-platform-tests/tools/wptrunner/docs/Makefile: Added.
- web-platform-tests/tools/wptrunner/docs/architecture.svg: Added.
- web-platform-tests/tools/wptrunner/docs/conf.py: Added.
- web-platform-tests/tools/wptrunner/docs/design.rst: Added.
- web-platform-tests/tools/wptrunner/docs/expectation.rst: Added.
- web-platform-tests/tools/wptrunner/docs/index.rst: Added.
- web-platform-tests/tools/wptrunner/docs/make.bat: Added.
- web-platform-tests/tools/wptrunner/docs/usage.rst: Added.
- web-platform-tests/tools/wptrunner/docs/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/requirements.txt: Added.
- web-platform-tests/tools/wptrunner/requirements_chrome.txt: Added.
- web-platform-tests/tools/wptrunner/requirements_firefox.txt: Added.
- web-platform-tests/tools/wptrunner/requirements_sauce.txt: Added.
- web-platform-tests/tools/wptrunner/requirements_servo.txt: Added.
- web-platform-tests/tools/wptrunner/setup.py: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_and_fail.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_cycle_fail.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_match_fail.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_mismatch_fail.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_ref_timeout.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/reftest_timeout.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/reftest/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/dir.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/subdir/test_pref_reset.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/py/doc/img/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/test_pref_set.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/firefox/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/subdir/dir.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/subdir/testharness_1.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/testdata/encoding/chardet/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/testharness_0.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/testharness_error.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/testharness_timeout.html.ini: Added.
- web-platform-tests/tools/wptrunner/test/metadata/testharness/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/test.cfg.example: Added.
- web-platform-tests/tools/wptrunner/test/test.py: Added.
(setup_wptrunner_logging):
(ResultHandler):
(ResultHandler.init):
(ResultHandler.set_product):
(ResultHandler.call):
(test_settings):
(read_config):
(run_tests):
(settings_to_argv):
(set_from_args):
(run):
(get_parser):
(main):
- web-platform-tests/tools/wptrunner/test/testdata/reftest/green-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/green-ref-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/green-ref.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/green.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/red.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest.https-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest.https.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail_0-ref-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_and_fail_0-ref.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_0-ref-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_0-ref.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_1-ref-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_1-ref.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail_0-ref-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_cycle_fail_0-ref.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match_fail-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_match_fail.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch_fail-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_mismatch_fail.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_or_0-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_or_0.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_ref_timeout-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_ref_timeout.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_timeout-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_timeout.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_wait_0-expected.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/reftest_wait_0.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/reftest/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/subdir/test_pref_inherit.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/subdir/test_pref_reset.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/test_pref_dir.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/test_pref_set.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/firefox/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/subdir/testharness_1.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/subdir/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/py/doc/img/w3c-import.log.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness.https.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_0.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_error.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_long_timeout.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/testharness_timeout.html: Added.
- web-platform-tests/tools/wptrunner/test/testdata/testharness/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/test/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/testdata/sanitizer/w3c-import.log.
- web-platform-tests/tools/wptrunner/tox.ini: Added.
- web-platform-tests/tools/wptrunner/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/wptrunner.default.ini: Added.
- web-platform-tests/tools/wptrunner/wptrunner/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/certtest_app.zip: Added.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/b2g_setup/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/py/doc/img/w3c-import.log.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/base.py: Added.
(cmd_arg):
(get_free_port):
(browser_command):
(BrowserError):
(Browser):
(Browser.init):
(Browser.init.serving):
(Browser.init.also):
(Browser.enter):
(Browser.exit):
(Browser.setup):
(Browser.start):
(Browser.stop):
(Browser.pid):
(Browser.is_alive):
(Browser.setup_ssl):
(Browser.cleanup):
(Browser.executor_browser):
(Browser.executor_browser.for):
(Browser.log_crash):
(NullBrowser):
(NullBrowser.init):
(NullBrowser.start):
(NullBrowser.stop):
(NullBrowser.pid):
(NullBrowser.is_alive):
(NullBrowser.on_output):
(ExecutorBrowser):
(ExecutorBrowser.init):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome.py: Added.
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(ChromeBrowser):
(ChromeBrowser.init):
(ChromeBrowser.start):
(ChromeBrowser.stop):
(ChromeBrowser.pid):
(ChromeBrowser.is_alive):
(ChromeBrowser.cleanup):
(ChromeBrowser.executor_browser):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py: Added.
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(EdgeBrowser):
(EdgeBrowser.init):
(EdgeBrowser.start):
(EdgeBrowser.stop):
(EdgeBrowser.pid):
(EdgeBrowser.is_alive):
(EdgeBrowser.cleanup):
(EdgeBrowser.executor_browser):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py: Added.
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(run_info_extras):
(update_properties):
(FirefoxBrowser):
(FirefoxBrowser.init):
(FirefoxBrowser.start):
(FirefoxBrowser.load_prefs):
(FirefoxBrowser.stop):
(FirefoxBrowser.pid):
(FirefoxBrowser.on_output):
(FirefoxBrowser.is_alive):
(FirefoxBrowser.cleanup):
(FirefoxBrowser.executor_browser):
(FirefoxBrowser.log_crash):
(FirefoxBrowser.setup_ssl):
(FirefoxBrowser.setup_ssl.certutil):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce.py: Added.
(get_capabilities):
(get_sauce_config):
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(get_tar):
(SauceConnect):
(SauceConnect.init):
(SauceConnect.enter):
(SauceConnect.exit):
(SauceConnect.upload_prerun_exec):
(SauceException):
(SauceBrowser):
(SauceBrowser.init):
(SauceBrowser.start):
(SauceBrowser.stop):
(SauceBrowser.pid):
(SauceBrowser.is_alive):
(SauceBrowser.cleanup):
(SauceBrowser.executor_browser):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat: Added.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh: Added.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce_setup/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/tests/w3c-import.log.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/server-locations.txt: Added.
- web-platform-tests/tools/wptrunner/wptrunner/browsers/servo.py: Added.
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(update_properties):
(ServoBrowser):
(ServoBrowser.init):
(ServoBrowser.executor_browser):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/servodriver.py: Added.
(check_args):
(browser_kwargs):
(executor_kwargs):
(env_extras):
(env_options):
(update_properties):
(make_hosts_file):
(ServoWebDriverBrowser):
(ServoWebDriverBrowser.init):
(ServoWebDriverBrowser.start):
(ServoWebDriverBrowser.stop):
(ServoWebDriverBrowser.pid):
(ServoWebDriverBrowser.on_output):
(ServoWebDriverBrowser.is_alive):
(ServoWebDriverBrowser.cleanup):
(ServoWebDriverBrowser.executor_browser):
- web-platform-tests/tools/wptrunner/wptrunner/browsers/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/wptrunner/config.json: Added.
- web-platform-tests/tools/wptrunner/wptrunner/config.py: Added.
(ConfigDict):
(ConfigDict.init):
(ConfigDict.get_path):
(read):
(path):
(load):
- web-platform-tests/tools/wptrunner/wptrunner/environment.py: Added.
(do_delayed_imports):
(serve_path):
(get_ssl_kwargs):
(ssl_env):
(TestEnvironmentError):
(TestEnvironment):
(TestEnvironment.init):
(TestEnvironment.enter):
(TestEnvironment.exit):
(TestEnvironment.ignore_interrupts):
(TestEnvironment.process_interrupts):
(TestEnvironment.load_config):
(TestEnvironment.setup_server_logging):
(TestEnvironment.get_routes):
(TestEnvironment.ensure_started):
- web-platform-tests/tools/wptrunner/wptrunner/executors/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/executors/base.py: Added.
(executor_kwargs):
(strip_server):
(TestharnessResultConverter):
(TestharnessResultConverter.call):
(reftest_result_converter):
(pytest_result_converter):
(ExecutorException):
(ExecutorException.init):
(TestExecutor):
(TestExecutor.init):
(TestExecutor.init.for):
(TestExecutor.logger):
(TestExecutor.setup):
(TestExecutor.teardown):
(TestExecutor.run_test):
(TestExecutor.server_url):
(TestExecutor.test_url):
(TestExecutor.do_test):
(TestExecutor.on_environment_change):
(TestExecutor.result_from_exception):
(TestharnessExecutor):
(RefTestExecutor):
(RefTestExecutor.init):
(RefTestImplementation):
(RefTestImplementation.init):
(RefTestImplementation.logger):
(RefTestImplementation.get_hash):
(RefTestImplementation.is_pass):
(RefTestImplementation.run_test):
(RefTestImplementation.retake_screenshot):
(WdspecExecutor):
(Protocol):
(Protocol.init):
(Protocol.logger):
(Protocol.setup):
(Protocol.teardown):
(Protocol.wait):
- web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py: Added.
(do_delayed_imports):
(MarionetteProtocol):
(MarionetteProtocol.init):
(MarionetteProtocol.setup):
(MarionetteProtocol.teardown):
(MarionetteProtocol.is_alive):
(MarionetteProtocol.after_connect):
(MarionetteProtocol.set_timeout):
(MarionetteProtocol.load_runner):
(MarionetteProtocol.close_old_windows):
(MarionetteProtocol.wait):
(MarionetteProtocol.on_environment_change):
(MarionetteProtocol.set_pref):
(MarionetteProtocol.clear_user_pref):
(MarionetteProtocol.get_pref):
(MarionetteProtocol.clear_origin):
(RemoteMarionetteProtocol):
(RemoteMarionetteProtocol.init):
(RemoteMarionetteProtocol.setup):
(RemoteMarionetteProtocol.teardown):
(RemoteMarionetteProtocol.is_alive):
(ExecuteAsyncScriptRun):
(ExecuteAsyncScriptRun.init):
(ExecuteAsyncScriptRun.run):
(ExecuteAsyncScriptRun._run):
(MarionetteTestharnessExecutor):
(MarionetteTestharnessExecutor.init):
(MarionetteTestharnessExecutor.is_alive):
(MarionetteTestharnessExecutor.on_environment_change):
(MarionetteTestharnessExecutor.do_test):
(MarionetteTestharnessExecutor.do_testharness):
(MarionetteRefTestExecutor):
(MarionetteRefTestExecutor.init):
(MarionetteRefTestExecutor.is_alive):
(MarionetteRefTestExecutor.on_environment_change):
(MarionetteRefTestExecutor.do_test):
(MarionetteRefTestExecutor.screenshot):
(MarionetteRefTestExecutor._screenshot):
(WdspecRun):
(WdspecRun.init):
(WdspecRun.run):
(WdspecRun._run):
(MarionetteWdspecExecutor):
(MarionetteWdspecExecutor.init):
(MarionetteWdspecExecutor.is_alive):
(MarionetteWdspecExecutor.on_environment_change):
(MarionetteWdspecExecutor.do_test):
(MarionetteWdspecExecutor.do_wdspec):
(MarionetteWdspecExecutor.do_delayed_imports):
- web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py: Added.
(do_delayed_imports):
(SeleniumProtocol):
(SeleniumProtocol.init):
(SeleniumProtocol.setup):
(SeleniumProtocol.teardown):
(SeleniumProtocol.is_alive):
(SeleniumProtocol.after_connect):
(SeleniumProtocol.load_runner):
(SeleniumProtocol.wait):
(SeleniumRun):
(SeleniumRun.init):
(SeleniumRun.run):
(SeleniumRun._run):
(SeleniumTestharnessExecutor):
(SeleniumTestharnessExecutor.init):
(SeleniumTestharnessExecutor.is_alive):
(SeleniumTestharnessExecutor.on_environment_change):
(SeleniumTestharnessExecutor.do_test):
(SeleniumTestharnessExecutor.do_testharness):
(SeleniumRefTestExecutor):
(SeleniumRefTestExecutor.init):
(SeleniumRefTestExecutor.is_alive):
(SeleniumRefTestExecutor.do_test):
(SeleniumRefTestExecutor.screenshot):
(SeleniumRefTestExecutor._screenshot):
- web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py: Added.
(make_hosts_file):
(ServoTestharnessExecutor):
(ServoTestharnessExecutor.init):
(ServoTestharnessExecutor.teardown):
(ServoTestharnessExecutor.do_test):
(ServoTestharnessExecutor.on_output):
(ServoTestharnessExecutor.on_finish):
(TempFilename):
(TempFilename.init):
(TempFilename.enter):
(TempFilename.exit):
(ServoRefTestExecutor):
(ServoRefTestExecutor.init):
(ServoRefTestExecutor.teardown):
(ServoRefTestExecutor.screenshot):
(ServoRefTestExecutor.do_test):
(ServoRefTestExecutor.on_output):
(ServoWdspecProtocol):
(ServoWdspecProtocol.init):
(ServoWdspecProtocol.setup):
(ServoWdspecProtocol.teardown):
(ServoWdspecProtocol.is_alive):
(ServoWdspecProtocol.do_delayed_imports):
(ServoWdspecExecutor):
(ServoWdspecExecutor.init):
(ServoWdspecExecutor.is_alive):
(ServoWdspecExecutor.on_environment_change):
(ServoWdspecExecutor.do_test):
(ServoWdspecExecutor.do_wdspec):
- web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py: Added.
(do_delayed_imports):
(ServoWebDriverProtocol):
(ServoWebDriverProtocol.init):
(ServoWebDriverProtocol.setup):
(ServoWebDriverProtocol.teardown):
(ServoWebDriverProtocol.is_alive):
(ServoWebDriverProtocol.after_connect):
(ServoWebDriverProtocol.wait):
(ServoWebDriverProtocol.on_environment_change):
(ServoWebDriverRun):
(ServoWebDriverRun.init):
(ServoWebDriverRun.run):
(ServoWebDriverRun._run):
(timeout_func):
(ServoWebDriverTestharnessExecutor):
(ServoWebDriverTestharnessExecutor.init):
(ServoWebDriverTestharnessExecutor.on_protocol_change):
(ServoWebDriverTestharnessExecutor.is_alive):
(ServoWebDriverTestharnessExecutor.do_test):
(ServoWebDriverTestharnessExecutor.do_testharness):
(TimeoutError):
(ServoWebDriverRefTestExecutor):
(ServoWebDriverRefTestExecutor.init):
(ServoWebDriverRefTestExecutor.is_alive):
(ServoWebDriverRefTestExecutor.do_test):
(ServoWebDriverRefTestExecutor.screenshot):
(ServoWebDriverRefTestExecutor._screenshot):
- web-platform-tests/tools/wptrunner/wptrunner/executors/process.py: Added.
(ProcessTestExecutor):
(ProcessTestExecutor.init):
(ProcessTestExecutor.setup):
(ProcessTestExecutor.is_alive):
(ProcessTestExecutor.do_test):
- web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py: Added.
(do_delayed_imports):
(run):
(SubtestResultRecorder):
(SubtestResultRecorder.init):
(SubtestResultRecorder.pytest_runtest_logreport):
(SubtestResultRecorder.record_pass):
(SubtestResultRecorder.record_fail):
(SubtestResultRecorder.record_error):
(SubtestResultRecorder.record_skip):
(SubtestResultRecorder.record):
(TemporaryDirectory):
(TemporaryDirectory.enter):
(TemporaryDirectory.exit):
- web-platform-tests/tools/wptrunner/wptrunner/executors/pytestrunner/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
- web-platform-tests/tools/wptrunner/wptrunner/executors/reftest-wait.js: Added.
(test):
- web-platform-tests/tools/wptrunner/wptrunner/executors/reftest-wait_servodriver.js: Added.
(check_done):
- web-platform-tests/tools/wptrunner/wptrunner/executors/reftest-wait_webdriver.js: Added.
(test):
- web-platform-tests/tools/wptrunner/wptrunner/executors/reftest.js: Added.
- web-platform-tests/tools/wptrunner/wptrunner/executors/testharness_marionette.js: Added.
(listener):
(timeout.s.timer.setTimeout):
- web-platform-tests/tools/wptrunner/wptrunner/executors/testharness_servodriver.js: Added.
- web-platform-tests/tools/wptrunner/wptrunner/executors/testharness_webdriver.js: Added.
(f):
(timer.setTimeout):
- web-platform-tests/tools/wptrunner/wptrunner/executors/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/wptrunner/expected.py: Added.
(expected_path):
- web-platform-tests/tools/wptrunner/wptrunner/hosts.py: Added.
(HostsLine):
(HostsLine.init):
(HostsLine.from_string):
(HostsFile):
(HostsFile.init):
(HostsFile.set_host):
(HostsFile.from_file):
(HostsFile.to_string):
(HostsFile.to_file):
- web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py: Added.
(data_cls_getter):
(bool_prop):
(tags):
(prefs):
(prefs.value):
(ExpectedManifest):
(ExpectedManifest.init):
(ExpectedManifest.append):
(ExpectedManifest._remove_child):
(ExpectedManifest.get_test):
(ExpectedManifest.url):
(ExpectedManifest.disabled):
(ExpectedManifest.restart_after):
(ExpectedManifest.tags):
(ExpectedManifest.prefs):
(DirectoryManifest):
(DirectoryManifest.disabled):
(DirectoryManifest.restart_after):
(DirectoryManifest.tags):
(DirectoryManifest.prefs):
(TestNode):
(TestNode.init):
(TestNode.is_empty):
(TestNode.test_type):
(TestNode.id):
(TestNode.disabled):
(TestNode.restart_after):
(TestNode.tags):
(TestNode.prefs):
(TestNode.append):
(TestNode.get_subtest):
(SubtestNode):
(SubtestNode.init):
(SubtestNode.is_empty):
(get_manifest):
(get_dir_manifest):
- web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py: Added.
(IncludeManifest):
(IncludeManifest.init):
(IncludeManifest.create):
(IncludeManifest.append):
(IncludeManifest.include):
(IncludeManifest._include):
(IncludeManifest._get_components):
(IncludeManifest._add_rule):
(IncludeManifest.add_include):
(IncludeManifest.add_exclude):
(get_manifest):
- web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py: Added.
(ConditionError):
(data_cls_getter):
(ExpectedManifest):
(ExpectedManifest.init):
(ExpectedManifest.append):
(ExpectedManifest._remove_child):
(ExpectedManifest.get_test):
(ExpectedManifest.has_test):
(ExpectedManifest.url):
(TestNode):
(TestNode.init):
(TestNode.create):
(TestNode.is_empty):
(TestNode.test_type):
(TestNode.id):
(TestNode.disabled):
(TestNode.set_result):
(TestNode.coalesce_expected):
(TestNode._add_key_value):
(TestNode.clear_expected):
(TestNode.append):
(TestNode.get_subtest):
(SubtestNode):
(SubtestNode.init):
(SubtestNode.create):
(SubtestNode.is_empty):
(group_conditionals):
(make_expr):
(get_manifest):
(compile):
- web-platform-tests/tools/wptrunner/wptrunner/metadata.py: Added.
(load_test_manifests):
(update_expected):
(do_delayed_imports):
(files_in_repo):
(rev_range):
(paths_changed):
(load_change_data):
(unexpected_changes):
(update_from_logs):
(directory_manifests):
(write_changes):
(write_new_expected):
(ExpectedUpdater):
(ExpectedUpdater.init):
(ExpectedUpdater.update_from_log):
(ExpectedUpdater.suite_start):
(ExpectedUpdater.test_id):
(ExpectedUpdater.test_start):
(ExpectedUpdater.test_status):
(ExpectedUpdater.test_end):
(create_test_tree):
(create_expected):
(load_expected):
- web-platform-tests/tools/wptrunner/wptrunner/products.py: Added.
(products_enabled):
(product_module):
(load_product):
(load_product_update):
- web-platform-tests/tools/wptrunner/wptrunner/reduce.py: Added.
(setup_logging):
(group):
(next_power_of_two):
(Reducer):
(Reducer.init):
(Reducer.run):
(Reducer.unstable):
(Reducer.log_is_unstable):
(Reducer.log_is_unstable.handle_status):
(Reducer.log_is_unstable.handle_end):
(Reducer.get_initial_tests):
(do_reduce):
- web-platform-tests/tools/wptrunner/wptrunner/testharness_runner.html: Added.
- web-platform-tests/tools/wptrunner/wptrunner/testharnessreport-servo.js: Added.
(add_completion_callback):
- web-platform-tests/tools/wptrunner/wptrunner/testharnessreport-servodriver.js: Added.
(add_completion_callback.):
(add_completion_callback):
- web-platform-tests/tools/wptrunner/wptrunner/testharnessreport.js: Added.
- web-platform-tests/tools/wptrunner/wptrunner/testloader.py: Added.
(do_delayed_imports):
(TestChunker):
(TestChunker.init):
(TestChunker.call):
(Unchunked):
(Unchunked.init):
(Unchunked.call):
(HashChunker):
(HashChunker.call):
(DirectoryHashChunker):
(DirectoryHashChunker.call):
(EqualTimeChunker):
(EqualTimeChunker._group_by_directory):
(EqualTimeChunker._group_by_directory.PathData):
(EqualTimeChunker._group_by_directory.PathData.init):
(EqualTimeChunker._maybe_remove):
(EqualTimeChunker._maybe_add):
(EqualTimeChunker._maybe_move):
(EqualTimeChunker._badness):
(EqualTimeChunker._get_chunk):
(EqualTimeChunker._all_tests):
(EqualTimeChunker._chunked_tests):
(EqualTimeChunker._create_initial_chunks):
(EqualTimeChunker._create_initial_chunks.Chunk):
(EqualTimeChunker._create_initial_chunks.Chunk.init):
(EqualTimeChunker._create_initial_chunks.Chunk.appendleft):
(EqualTimeChunker._create_initial_chunks.Chunk.append):
(EqualTimeChunker._create_initial_chunks.Chunk.pop):
(EqualTimeChunker._create_initial_chunks.Chunk.popleft):
(EqualTimeChunker._create_initial_chunks.Chunk.badness):
(EqualTimeChunker._update_chunks):
(EqualTimeChunker._get_tests):
(EqualTimeChunker.call):
(TestFilter):
(TestFilter.init):
(TestFilter.call):
(TagFilter):
(TagFilter.init):
(TagFilter.call):
(ManifestLoader):
(ManifestLoader.init):
(ManifestLoader.load):
(ManifestLoader.create_manifest):
(ManifestLoader.update_manifest):
(ManifestLoader.load_manifest):
(iterfilter):
(TestLoader):
(TestLoader.init):
(TestLoader.test_ids):
(TestLoader.get_test):
(TestLoader.load_dir_metadata):
(TestLoader.load_metadata):
(TestLoader.iter_tests):
(TestLoader.iter_wpttest):
(TestLoader._load_tests):
(TestLoader.groups):
(TestSource):
(TestSource.queue_tests):
(TestSource.requeue_test):
(TestSource.enter):
(TestSource.exit):
(SingleTestSource):
(SingleTestSource.init):
(SingleTestSource.queue_tests):
(SingleTestSource.get_queue):
(SingleTestSource.requeue_test):
(PathGroupedSource):
(PathGroupedSource.init):
(PathGroupedSource.queue_tests):
(PathGroupedSource.get_queue):
(PathGroupedSource.requeue_test):
(PathGroupedSource.exit):
- web-platform-tests/tools/wptrunner/wptrunner/testrunner.py: Added.
(MessageLogger):
(MessageLogger.init):
(MessageLogger._log_data):
(MessageLogger.process_output):
(_log_func):
(_log_func.log):
(TestRunner):
(TestRunner.init):
(TestRunner.init.delegates):
(TestRunner.enter):
(TestRunner.exit):
(TestRunner.setup):
(TestRunner.teardown):
(TestRunner.run):
(TestRunner.stop):
(TestRunner.run_test):
(TestRunner.wait):
(TestRunner.send_message):
(start_runner):
(next_manager_number):
(BrowserManager):
(BrowserManager.init):
(BrowserManager.init):
(BrowserManager.send_message):
(BrowserManager.init_timeout):
(BrowserManager.after_init):
(BrowserManager.stop):
(BrowserManager.cleanup):
(BrowserManager.log_crash):
(BrowserManager.is_alive):
(_RunnerManagerState):
(TestRunnerManager):
(TestRunnerManager.init):
(TestRunnerManager.run):
(TestRunnerManager.wait_event):
(TestRunnerManager.should_stop):
(TestRunnerManager.start_init):
(TestRunnerManager.init):
(TestRunnerManager.start_test_runner):
(TestRunnerManager.init_succeeded):
(TestRunnerManager.init_failed):
(TestRunnerManager.get_next_test):
(TestRunnerManager.run_test):
(TestRunnerManager.test_ended):
(TestRunnerManager.wait_finished):
(TestRunnerManager.after_test_end):
(TestRunnerManager.restart_runner):
(TestRunnerManager.log):
(TestRunnerManager.error):
(TestRunnerManager.stop_runner):
(TestRunnerManager.teardown):
(TestRunnerManager.ensure_runner_stopped):
(TestRunnerManager.runner_teardown):
(TestRunnerManager.send_message):
(TestRunnerManager.cleanup):
(TestQueue):
(TestQueue.init):
(TestQueue.enter):
(TestQueue.exit):
(ManagerGroup):
(ManagerGroup.init):
(ManagerGroup.enter):
(ManagerGroup.exit):
(ManagerGroup.run):
(ManagerGroup.is_alive):
(ManagerGroup.wait):
(ManagerGroup.stop):
(ManagerGroup.unexpected_count):
- web-platform-tests/tools/wptrunner/wptrunner/tests/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/tests/test_chunker.py: Added.
(MockTest):
(MockTest.init):
(make_mock_manifest):
(TestEqualTimeChunker):
(TestEqualTimeChunker.test_include_all):
(TestEqualTimeChunker.test_include_all_1):
(TestEqualTimeChunker.test_long):
(TestEqualTimeChunker.test_long_1):
(TestEqualTimeChunker.test_too_few_dirs):
- web-platform-tests/tools/wptrunner/wptrunner/tests/test_hosts.py: Added.
(HostsTest):
(HostsTest.do_test):
(HostsTest.test_simple):
(test_blank_lines):
(test_whitespace):
(test_alignment):
(test_multiple_same_name):
- web-platform-tests/tools/wptrunner/wptrunner/tests/test_testloader.py: Added.
(test_filter_unicode):
- web-platform-tests/tools/wptrunner/wptrunner/tests/test_update.py: Added.
(TestExpectedUpdater):
(TestExpectedUpdater.create_manifest):
(TestExpectedUpdater.create_updater):
(TestExpectedUpdater.create_log):
(TestExpectedUpdater.coalesce_results):
(TestExpectedUpdater.test_update_0):
(TestExpectedUpdater.test_update_1):
(TestExpectedUpdater.test_new_subtest):
(TestExpectedUpdater.test_update_multiple_0):
(TestExpectedUpdater.test_update_multiple_1):
(TestExpectedUpdater.test_update_multiple_2):
(TestExpectedUpdater.test_update_multiple_3):
(TestExpectedUpdater.test_update_ignore_existing):
- web-platform-tests/tools/wptrunner/wptrunner/tests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
- web-platform-tests/tools/wptrunner/wptrunner/update/init.py: Added.
(remove_logging_args):
(setup_logging):
(run_update):
(main):
- web-platform-tests/tools/wptrunner/wptrunner/update/base.py: Added.
(Step):
(Step.init):
(Step.run):
(Step.run.for):
(Step.create):
(Step.restore):
(StepRunner):
(StepRunner.init):
(StepRunner.run):
- web-platform-tests/tools/wptrunner/wptrunner/update/metadata.py: Added.
(GetUpdatePropertyList):
(GetUpdatePropertyList.create):
(UpdateExpected):
(UpdateExpected.create):
(CreateMetadataPatch):
(CreateMetadataPatch.create):
(MetadataUpdateRunner):
- web-platform-tests/tools/wptrunner/wptrunner/update/state.py: Added.
(State):
(State.new):
(State.init):
(State.getstate):
(State.load):
(State.push):
(State.save):
(State.is_empty):
(State.clear):
(State.setattr):
(State.getattr):
(State.contains):
(State.update):
(State.keys):
(StateContext):
(StateContext.init):
(StateContext.enter):
(StateContext.exit):
- web-platform-tests/tools/wptrunner/wptrunner/update/sync.py: Added.
(copy_wpt_tree):
(add_license):
(UpdateCheckout):
(UpdateCheckout.create):
(UpdateCheckout.restore):
(GetSyncTargetCommit):
(GetSyncTargetCommit.create):
(LoadManifest):
(LoadManifest.create):
(UpdateManifest):
(UpdateManifest.create):
(CopyWorkTree):
(CopyWorkTree.create):
(CreateSyncPatch):
(CreateSyncPatch.create):
(SyncFromUpstreamRunner):
- web-platform-tests/tools/wptrunner/wptrunner/update/tree.py: Added.
(get_unique_name):
(NoVCSTree):
(NoVCSTree.init):
(NoVCSTree.is_type):
(NoVCSTree.is_clean):
(NoVCSTree.add_new):
(NoVCSTree.create_patch):
(NoVCSTree.update_patch):
(NoVCSTree.commit_patch):
(HgTree):
(HgTree.init):
(HgTree.getstate):
(HgTree.setstate):
(HgTree.is_type):
(HgTree.is_clean):
(HgTree.add_new):
(HgTree.create_patch):
(HgTree.update_patch):
(HgTree.commit_patch):
(HgTree.contains_commit):
(GitTree):
(GitTree.init):
(GitTree.getstate):
(GitTree.setstate):
(GitTree.is_type):
(GitTree.rev):
(GitTree.is_clean):
(GitTree.add_new):
(GitTree.list_refs):
(GitTree.list_remote):
(GitTree.get_remote_sha1):
(GitTree.create_patch):
(GitTree.update_patch):
(GitTree.commit_patch):
(GitTree.init):
(GitTree.checkout):
(GitTree.update):
(GitTree.clean):
(GitTree.paths):
(GitTree.submodules):
(GitTree.contains_commit):
(CommitMessage):
(CommitMessage.init):
(CommitMessage.str):
(CommitMessage._parse_message):
(Commit):
(Commit.init):
(Commit.getstate):
(Commit.setstate):
(Commit._get_meta):
- web-platform-tests/tools/wptrunner/wptrunner/update/update.py: Added.
(setup_paths):
(LoadConfig):
(LoadConfig.create):
(LoadTrees):
(LoadTrees.create):
(SyncFromUpstream):
(SyncFromUpstream.create):
(UpdateMetadata):
(UpdateMetadata.create):
(UpdateRunner):
(WPTUpdate):
(WPTUpdate.init):
(WPTUpdate.init.holding):
(WPTUpdate.run):
(WPTUpdate.abort):
- web-platform-tests/tools/wptrunner/wptrunner/update/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/wptrunner/vcs.py: Added.
(vcs):
(vcs.inner):
(bind_to_repo):
(is_git_root):
- web-platform-tests/tools/wptrunner/wptrunner/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/wptrunner/webdriver_server.py: Added.
(WebDriverServer):
(WebDriverServer.init):
(WebDriverServer.make_command):
(WebDriverServer.start):
(WebDriverServer._run):
(WebDriverServer.stop):
(WebDriverServer.is_alive):
(WebDriverServer.on_output):
(WebDriverServer.pid):
(WebDriverServer.url):
(WebDriverServer.port):
(WebDriverServer._find_next_free_port):
(SeleniumServer):
(SeleniumServer.make_command):
(ChromeDriverServer):
(ChromeDriverServer.init):
(ChromeDriverServer.make_command):
(EdgeDriverServer):
(EdgeDriverServer.init):
(EdgeDriverServer.make_command):
(GeckoDriverServer):
(GeckoDriverServer.init):
(GeckoDriverServer.make_command):
(ServoDriverServer):
(ServoDriverServer.init):
(ServoDriverServer.make_command):
(cmd_arg):
(get_free_port):
(wait_for_service):
- web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py: Added.
(abs_path):
(url_or_path):
(require_arg):
(create_parser):
(set_from_config):
(get_test_paths):
(exe_path):
(check_args):
(check_args_update):
(create_parser_update):
(create_parser_reduce):
(parse_args):
(parse_args_update):
(parse_args_reduce):
- web-platform-tests/tools/wptrunner/wptrunner/wptlogging.py: Added.
(setup):
(setup_stdlib_logger):
(LogLevelRewriter):
(LogLevelRewriter.init):
(LogLevelRewriter.call):
(LogThread):
(LogThread.init):
(LogThread.run):
(LoggingWrapper):
(LoggingWrapper.init):
(LoggingWrapper.write):
(LoggingWrapper.flush):
(CaptureIO):
(CaptureIO.init):
(CaptureIO.enter):
(CaptureIO.exit):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py: Added.
(ConditionalValue):
(ConditionalValue.init):
(ConditionalValue.value):
(ConditionalValue.call):
(ConditionalValue.set_value):
(ConditionalValue.remove):
(Compiler):
(Compiler.compile):
(Compiler.compile.of):
(Compiler.compile_condition):
(Compiler._initial_output_node):
(Compiler.visit_DataNode):
(Compiler.visit_KeyValueNode):
(Compiler.visit_ListNode):
(Compiler.visit_ValueNode):
(Compiler.visit_AtomNode):
(Compiler.visit_ConditionalNode):
(Compiler.visit_StringNode):
(Compiler.visit_StringNode.value):
(Compiler.visit_NumberNode):
(Compiler.visit_VariableNode):
(Compiler.visit_VariableNode.value):
(Compiler.visit_IndexNode):
(Compiler.visit_UnaryExpressionNode):
(Compiler.visit_BinaryExpressionNode):
(Compiler.visit_UnaryOperatorNode):
(Compiler.visit_BinaryOperatorNode):
(ManifestItem):
(ManifestItem.init):
(ManifestItem.repr):
(ManifestItem.str):
(ManifestItem.contains):
(ManifestItem.is_empty):
(ManifestItem.root):
(ManifestItem.name):
(ManifestItem.has_key):
(ManifestItem.get):
(ManifestItem.set):
(ManifestItem._add_key_value):
(ManifestItem.append):
(ManifestItem.remove):
(ManifestItem._remove_child):
(ManifestItem.iterchildren):
(ManifestItem._flatten):
(ManifestItem.iteritems):
(ManifestItem.iterkeys):
(ManifestItem.remove_value):
(compile_ast):
(compile):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/static.py: Added.
(Compiler):
(Compiler.compile):
(Compiler.compile.of):
(Compiler.visit_DataNode):
(Compiler.visit_KeyValueNode):
(Compiler.visit_ValueNode):
(Compiler.visit_AtomNode):
(Compiler.visit_ListNode):
(Compiler.visit_ConditionalNode):
(Compiler.visit_StringNode):
(Compiler.visit_NumberNode):
(Compiler.visit_VariableNode):
(Compiler.visit_IndexNode):
(Compiler.visit_UnaryExpressionNode):
(Compiler.visit_BinaryExpressionNode):
(Compiler.visit_UnaryOperatorNode):
(Compiler.visit_BinaryOperatorNode):
(ManifestItem):
(ManifestItem.init):
(ManifestItem.repr):
(ManifestItem.str):
(ManifestItem.is_empty):
(ManifestItem.root):
(ManifestItem.has_key):
(ManifestItem.get):
(ManifestItem.set):
(ManifestItem.remove):
(ManifestItem._remove_child):
(ManifestItem.iterchildren):
(ManifestItem._flatten):
(ManifestItem.iteritems):
(ManifestItem.iterkeys):
(ManifestItem.itervalues):
(ManifestItem.append):
(compile_ast):
(compile):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/backends/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/html5lib/html5lib/tests/performance/w3c-import.log.
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/node.py: Added.
(NodeVisitor):
(NodeVisitor.visit):
(NodeVisitor.visit.body):
(Node):
(Node.init):
(Node.append):
(Node.remove):
(Node.repr):
(Node.str):
(Node.eq):
(Node.copy):
(DataNode):
(DataNode.append):
(KeyValueNode):
(KeyValueNode.append):
(ListNode):
(ListNode.append):
(ValueNode):
(ValueNode.append):
(AtomNode):
(ConditionalNode):
(UnaryExpressionNode):
(UnaryExpressionNode.init):
(UnaryExpressionNode.append):
(UnaryExpressionNode.copy):
(BinaryExpressionNode):
(BinaryExpressionNode.init):
(BinaryExpressionNode.append):
(BinaryExpressionNode.copy):
(UnaryOperatorNode):
(UnaryOperatorNode.append):
(BinaryOperatorNode):
(BinaryOperatorNode.append):
(IndexNode):
(VariableNode):
(StringNode):
(NumberNode):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py: Added.
(ParseError):
(ParseError.init):
(decode):
(precedence):
(TokenTypes):
(TokenTypes.init):
(Tokenizer):
(Tokenizer.init):
(Tokenizer.reset):
(Tokenizer.tokenize):
(Tokenizer.char):
(Tokenizer.consume):
(Tokenizer.peek):
(Tokenizer.skip_whitespace):
(Tokenizer.eol_state):
(Tokenizer.line_start_state):
(Tokenizer.data_line_state):
(Tokenizer.heading_state):
(Tokenizer.key_state):
(Tokenizer.after_key_state):
(Tokenizer.list_start_state):
(Tokenizer.list_value_start_state):
(Tokenizer.list_value_state):
(Tokenizer.list_value_atom_state):
(Tokenizer.list_end_state):
(Tokenizer.value_state):
(Tokenizer.value_inner_state):
(Tokenizer.comment_state):
(Tokenizer.line_end_state):
(Tokenizer.consume_string):
(Tokenizer.expr_or_value_state):
(Tokenizer.expr_state):
(Tokenizer.operator_state):
(Tokenizer.digit_state):
(Tokenizer.ident_state):
(Tokenizer.consume_escape):
(Tokenizer.decode_escape):
(Tokenizer.escape_value):
(Parser):
(Parser.init):
(Parser.reset):
(Parser.parse):
(Parser.consume):
(Parser.expect):
(Parser.manifest):
(Parser.data_block):
(Parser.eof_or_end_group):
(Parser.value_block):
(Parser.list_value):
(Parser.expression_values):
(Parser.value):
(Parser.atom):
(Parser.expr_start):
(Parser.expr):
(Parser.expr_operand):
(Parser.expr_unary_op):
(Parser.expr_bin_op):
(Parser.expr_value):
(Parser.expr_number):
(Treebuilder):
(Treebuilder.init):
(Treebuilder.append):
(Treebuilder.pop):
(ExpressionBuilder):
(ExpressionBuilder.init):
(ExpressionBuilder.finish):
(ExpressionBuilder.left_paren):
(ExpressionBuilder.right_paren):
(ExpressionBuilder.push_operator):
(ExpressionBuilder.pop_operator):
(ExpressionBuilder.push_operand):
(ExpressionBuilder.pop_operand):
(ExpressionBuilder.is_empty):
(ExpressionBuilder.precedence):
(parse):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/serializer.py: Added.
(escape):
(ManifestSerializer):
(ManifestSerializer.init):
(ManifestSerializer.serialize):
(ManifestSerializer.visit_DataNode):
(ManifestSerializer.visit_KeyValueNode):
(ManifestSerializer.visit_ListNode):
(ManifestSerializer.visit_ValueNode):
(ManifestSerializer.visit_AtomNode):
(ManifestSerializer.visit_ConditionalNode):
(ManifestSerializer.visit_StringNode):
(ManifestSerializer.visit_NumberNode):
(ManifestSerializer.visit_VariableNode):
(ManifestSerializer.visit_IndexNode):
(ManifestSerializer.visit_UnaryExpressionNode):
(ManifestSerializer.visit_BinaryExpressionNode):
(ManifestSerializer.visit_UnaryOperatorNode):
(ManifestSerializer.visit_BinaryOperatorNode):
(serialize):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/init.py: Added.
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_conditional.py: Added.
(TestConditional):
(TestConditional.compile):
(TestConditional.test_get_0):
(test_get_1):
(test_get_2):
(test_get_3):
(test_set_0):
(test_set_1):
(test_set_2):
(test_api_0):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_parser.py: Added.
(TestExpression):
(TestExpression.setUp):
(TestExpression.parse):
(TestExpression.compare):
(TestExpression.match):
(TestExpression.test_expr_0):
(test_expr_1):
(test_atom_0):
(test_atom_1):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py: Added.
(TokenizerTest):
(TokenizerTest.setUp):
(TokenizerTest.serialize):
(TokenizerTest.compare):
(TokenizerTest.test_0):
(test_1):
(test_2):
(test_3):
(test_4):
(test_5):
(test_6):
(test_7):
(test_8):
(test_9):
(test_10):
(test_11):
(test_12):
(test_13):
(test_14):
(test_15):
(test_16):
(test_17):
(test_18):
(test_escape_0):
(test_escape_1):
(test_escape_2):
(test_escape_3):
(test_escape_4):
(test_escape_5):
(test_escape_6):
(test_escape_7):
(test_escape_8):
(test_escape_9):
(test_escape_10):
(test_escape_11):
(test_atom_1):
(test_atom_2):
(test_atom_3):
(test_atom_4):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_static.py: Added.
(TestStatic):
(TestStatic.compile):
(TestStatic.test_get_0):
(test_get_1):
(test_get_3):
(test_get_4):
(test_api):
(test_is_empty_1):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py: Added.
(TokenizerTest):
(TokenizerTest.setUp):
(TokenizerTest.tokenize):
(TokenizerTest.compare):
(TokenizerTest.test_heading_0):
(TokenizerTest.test_heading_1):
(TokenizerTest.test_heading_2):
(TokenizerTest.test_heading_3):
(TokenizerTest.test_heading_4):
(TokenizerTest.test_heading_5):
(TokenizerTest.test_heading_6):
(TokenizerTest.test_key_0):
(TokenizerTest.test_key_1):
(TokenizerTest.test_key_2):
(TokenizerTest.test_key_3):
(TokenizerTest.test_key_4):
(TokenizerTest.test_key_5):
(TokenizerTest.test_key_6):
(TokenizerTest.test_key_7):
(TokenizerTest.test_key_8):
(TokenizerTest.test_key_9):
(TokenizerTest.test_key_10):
(TokenizerTest.test_key_11):
(TokenizerTest.test_key_12):
(TokenizerTest.test_key_13):
(TokenizerTest.test_key_14):
(TokenizerTest.test_list_0):
(test_list_1):
(test_list_2):
(test_list_3):
(test_list_4):
(test_list_5):
(test_list_6):
(test_expr_0):
(test_expr_1):
(test_expr_2):
(test_expr_3):
(test_expr_4):
(test_expr_5):
(test_expr_6):
(test_expr_7):
(test_expr_8):
(test_expr_9):
(test_expr_10):
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/w3c-import.log: Added.
- web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/tools/gitignore/w3c-import.log.
- web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py: Added.
(setup_logging):
(get_loader):
(list_test_groups):
(list_disabled):
(get_pause_after_test):
(run_tests):
(start):
(main):
- web-platform-tests/tools/wptrunner/wptrunner/wpttest.py: Added.
(Result):
(Result.init):
(Result.repr):
(SubtestResult):
(SubtestResult.init):
(SubtestResult.repr):
(TestharnessResult):
(TestharnessSubtestResult):
(ReftestResult):
(WdspecResult):
(WdspecSubtestResult):
(get_run_info):
(RunInfo):
(RunInfo.init):
(RunInfo._update_mozinfo):
(Test):
(Test.init):
(Test.eq):
(Test.from_manifest):
(Test.id):
(Test.keys):
(Test.abs_path):
(Test._get_metadata):
(Test.itermeta):
(Test.disabled):
(Test.restart_after):
(Test.tags):
(Test.prefs):
(Test.expected):
(Test.repr):
(TestharnessTest):
(TestharnessTest.id):
(ManualTest):
(ManualTest.id):
(ReftestTest):
(ReftestTest.init):
(ReftestTest.from_manifest):
(ReftestTest.id):
(ReftestTest.keys):
(WdspecTest):
(from_manifest):
- web-platform-tests/tools/wptserve/docs/w3c-import.log:
- web-platform-tests/tools/wptserve/tests/functional/docroot/subdir/w3c-import.log:
- web-platform-tests/tools/wptserve/tests/functional/docroot/w3c-import.log:
- web-platform-tests/tools/wptserve/tests/functional/w3c-import.log:
- web-platform-tests/tools/wptserve/w3c-import.log:
- web-platform-tests/tools/wptserve/wptserve/w3c-import.log:
- web-platform-tests/url/interfaces-expected.txt:
LayoutTests:
- platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt:
- 8:16 AM Changeset in webkit [217046] by
-
- 5 edits2 adds in trunk
Design mode should not affect UA shadow trees
https://bugs.webkit.org/show_bug.cgi?id=171854
<rdar://problem/32071037>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: editing/deleting/search-shadow-tree-delete.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::editabilityFromContentEditableAttr):
Ignore design mode for UA shadow trees.
- html/SearchInputType.cpp:
(WebCore::SearchInputType::~SearchInputType):
(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::resultsButtonElement):
(WebCore::SearchInputType::cancelButtonElement):
- html/SearchInputType.h:
Use RefPtr.
LayoutTests:
- editing/deleting/search-shadow-tree-delete-expected.txt: Added.
- editing/deleting/search-shadow-tree-delete.html: Added.
- 7:05 AM Changeset in webkit [217045] by
-
- 5 edits in trunk/Source/WebCore
[GTK][GStreamer][MSE] Crash on youtube when MSE is enabled but gstreamer cant find the decoder element.
https://bugs.webkit.org/show_bug.cgi?id=167120
Patch by Vanessa Chipirrás Navalón <vchipirras@igalia.com> on 2017-05-18
Reviewed by Žan Doberšek.
This is because supportCodecs() doesn't check in runtime which plugins the player has.
So, a static function which returns a map with the plugins has been created. That map is later
used in the supportsCodecs() method to check if the requested codec matches any of the map.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements):
The declaration is moved into this class.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::isAvailable): This function calls the implementation of
initializeGstreamerAndRegisterWebKitElements function.
(WebCore::MediaPlayerPrivateGStreamer::load): Ditto
(WebCore::mimeTypeSet): Ditto
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: It is static type to expose
initializeGStreamerAndRegisterWebKitElements() function to be called from internal function
"which runs before MediaPlayerPrivateGStreamerBase initialization but needs to have GStreamer initialized".
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::codecSet): It returns a map with the plugins has been created.
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsCodecs): To check if the requested codec
matches any of the map from codecSet().
- 5:56 AM Changeset in webkit [217044] by
-
- 8 edits in trunk
[Readable Streams API] Align getDesiredSize with spec
https://bugs.webkit.org/show_bug.cgi?id=172220
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-18
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Updated test expectations (tests are now passing).
- web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
- web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.
- web-platform-tests/streams/readable-streams/general-expected.txt: Updated.
- web-platform-tests/streams/readable-streams/general.dedicatedworker-expected.txt: Updated.
Source/WebCore:
Aligned implementation of getDesiredSize operation for both controllers:
- https://streams.spec.whatwg.org/#readable-stream-default-controller-get-desired-size
- https://streams.spec.whatwg.org/#readable-byte-stream-controller-get-desired-size
Implementation slightly differs from spec as queueTotalSize refactoring is not
yet implemented, but behavior is now similar.
No new tests (already covered by WPT tests, corresponding expectations have been updated).
- Modules/streams/ReadableByteStreamInternals.js:
(readableByteStreamControllerGetDesiredSize): Updated.
- Modules/streams/ReadableStreamInternals.js:
(readableStreamDefaultControllerGetDesiredSize): Updated.
- 5:39 AM WebKitGTK/Gardening/Calendar edited by
- Give up on gardening log (diff)
- 5:00 AM Changeset in webkit [217043] by
-
- 2 edits in trunk/Source/WebKit2
[WPE] Unreviewed build fix
Add missing header after r217041.
- UIProcess/API/wpe/WPEView.cpp:
- 4:28 AM Changeset in webkit [217042] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Update expectations of tests failing after r217039.
- platform/gtk/TestExpectations:
- 2:04 AM Changeset in webkit [217041] by
-
- 42 edits in trunk/Source
More WebKit2 header cleanup
https://bugs.webkit.org/show_bug.cgi?id=172214
Reviewed by Simon Fraser.
- Shared/WebFindOptions.h:
- UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
- UIProcess/Cocoa/WebViewImpl.mm:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCompositionAsync):
- UIProcess/WebPageProxy.h:
- UIProcess/mac/PageClientImpl.mm:
- UIProcess/mac/ViewGestureControllerMac.mm:
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
- WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h:
- WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h:
- WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
- WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h:
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.h:
- WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
- WebProcess/Notifications/WebNotificationManager.cpp:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
- WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
- WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
- WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setDeviceScaleFactor):
(WebKit::WebPage::centerSelectionInVisibleArea):
(WebKit::WebPage::findString):
(WebKit::WebPage::findStringMatches):
(WebKit::WebPage::getImageForFindMatch):
(WebKit::WebPage::selectFindMatch):
(WebKit::WebPage::hideFindUI):
(WebKit::WebPage::countStringMatches):
(WebKit::WebPage::didReceiveGeolocationPermissionDecision):
(WebKit::WebPage::mainFrameDidLayout):
(WebKit::WebPage::setCompositionAsync):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::findController):
(WebKit::WebPage::geolocationPermissionRequestManager):
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
Many small changes added up to a few percent. Removing UserMediaRequest
from UserMediaPermissionRequestProxy, which is included into WebPageProxy.h,
was worth another ~10% because it got VM.h out of WebPageProxy.h (like the
previous patch did with WebPage.h). In total, in my measurement (WebKit2
clean debug build) this is a ~15% speedup.
We really should figure out how to make DOMPromise.h not bring in all of
JavaScriptCore (or how to use promises without including DOMPromise.h in headers).
- Modules/mediastream/UserMediaController.cpp:
- Modules/mediastream/UserMediaController.h:
- 1:14 AM Changeset in webkit [217040] by
-
- 2 edits in branches/safari-604.1.21-branch/Tools
Cherry-pick r217010. rdar://problem/32141505
- 1:05 AM Changeset in webkit [217039] by
-
- 60 edits in trunk/Source/WebInspectorUI
Web Inspector: [GTK] Adopt currentColor for mask SVG images
https://bugs.webkit.org/show_bug.cgi?id=150603
Patch by Fujii Hironori <Fujii Hironori> on 2017-05-18
Reviewed by Carlos Garcia Campos.
- UserInterface/Images/gtk/Circle.svg:
- UserInterface/Images/gtk/ClearBoth.svg:
- UserInterface/Images/gtk/ClearLeft.svg:
- UserInterface/Images/gtk/ClearRight.svg:
- UserInterface/Images/gtk/Close.svg:
- UserInterface/Images/gtk/CloseLarge.svg:
- UserInterface/Images/gtk/Console.svg:
- UserInterface/Images/gtk/Debugger.svg:
- UserInterface/Images/gtk/DockBottom.svg:
- UserInterface/Images/gtk/DockRight.svg:
- UserInterface/Images/gtk/DownloadArrow.svg:
- UserInterface/Images/gtk/Elements.svg:
- UserInterface/Images/gtk/Errors.svg:
- UserInterface/Images/gtk/Eye.svg:
- UserInterface/Images/gtk/FloatLeft.svg:
- UserInterface/Images/gtk/FloatRight.svg:
- UserInterface/Images/gtk/FontStyleItalic.svg:
- UserInterface/Images/gtk/FontStyleNormal.svg:
- UserInterface/Images/gtk/Gear.svg:
- UserInterface/Images/gtk/Issues.svg:
- UserInterface/Images/gtk/Logs.svg:
- UserInterface/Images/gtk/Minus.svg:
- UserInterface/Images/gtk/NavigationItemClear.svg:
- UserInterface/Images/gtk/NavigationItemTrash.svg:
- UserInterface/Images/gtk/Network.svg:
- UserInterface/Images/gtk/NewTab.svg:
- UserInterface/Images/gtk/NewTabPlus.svg:
- UserInterface/Images/gtk/Pause.svg:
- UserInterface/Images/gtk/Pencil.svg:
- UserInterface/Images/gtk/Plus13.svg:
- UserInterface/Images/gtk/Plus15.svg:
- UserInterface/Images/gtk/ReloadFull.svg:
- UserInterface/Images/gtk/ReloadToolbar.svg:
- UserInterface/Images/gtk/Resources.svg:
- UserInterface/Images/gtk/Search.svg:
- UserInterface/Images/gtk/SearchResults.svg:
- UserInterface/Images/gtk/SplitToggleUp.svg:
- UserInterface/Images/gtk/StepInto.svg:
- UserInterface/Images/gtk/StepOut.svg:
- UserInterface/Images/gtk/StepOver.svg:
- UserInterface/Images/gtk/Stop.svg:
- UserInterface/Images/gtk/Storage.svg:
- UserInterface/Images/gtk/TextAlignCenter.svg:
- UserInterface/Images/gtk/TextAlignJustify.svg:
- UserInterface/Images/gtk/TextAlignLeft.svg:
- UserInterface/Images/gtk/TextAlignRight.svg:
- UserInterface/Images/gtk/TextDecorationLineThrough.svg:
- UserInterface/Images/gtk/TextDecorationOverline.svg:
- UserInterface/Images/gtk/TextDecorationUnderline.svg:
- UserInterface/Images/gtk/TextTransformCapitalize.svg:
- UserInterface/Images/gtk/TextTransformLowercase.svg:
- UserInterface/Images/gtk/TextTransformUppercase.svg:
- UserInterface/Images/gtk/Time.svg:
- UserInterface/Images/gtk/Timeline.svg:
- UserInterface/Images/gtk/Undock.svg:
- UserInterface/Images/gtk/VisualStyleNone.svg:
- UserInterface/Images/gtk/VisualStylePropertyLinked.svg:
- UserInterface/Images/gtk/VisualStylePropertyUnlinked.svg:
- UserInterface/Images/gtk/Weight.svg:
- 12:12 AM Changeset in webkit [217038] by
-
- 5 edits in trunk
[Win] Remove usage of _snprintf
https://bugs.webkit.org/show_bug.cgi?id=172251
Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-18
Reviewed by Per Arne Vollan.
Source/WTF:
- wtf/DataLog.cpp:
(WTF::initializeLogFileOnce):
(WTF::setDataFile):
Tools:
- DumpRenderTree/TestNetscapePlugIn/PluginTest.h:
- MiniBrowser/win/PageLoadTestClient.cpp:
(PageLoadTestClient::dumpRunStatistics):
May 17, 2017:
- 11:57 PM Changeset in webkit [217037] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix debug and non-JIT build
https://bugs.webkit.org/show_bug.cgi?id=172098
- jsc.cpp:
(WTF::DOMJITFunctionObject::checkSubClassPatchpoint):
- 11:02 PM Changeset in webkit [217036] by
-
- 2 edits in trunk/Source/WebKit2
Fix unsafe lambda capture in ContentRuleListStore::lookupContentRuleList()
https://bugs.webkit.org/show_bug.cgi?id=172258
Reviewed by Brady Eidson.
Fix unsafe lambda capture in ContentRuleListStore::lookupContentRuleList(). The String
was moved instead of calling isolatedCopy(), even though we're passing the String to
another thread.
- UIProcess/API/APIContentRuleListStore.cpp:
(API::ContentRuleListStore::lookupContentRuleList):
- 10:36 PM Changeset in webkit [217035] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r217022. rdar://problem/32258020
- 10:35 PM Changeset in webkit [217034] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r216954. rdar://problem/32233799
- 10:35 PM Changeset in webkit [217033] by
-
- 30 edits in branches/safari-604.1.21-branch/Source
Cherry-pick r216898. rdar://problem/32231650
- 10:08 PM Changeset in webkit [217032] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, rebaseline for newly added ClassInfo
https://bugs.webkit.org/show_bug.cgi?id=172098
- wasm/js/WebAssemblyFunctionBase.cpp:
- 9:59 PM Changeset in webkit [217031] by
-
- 306 edits4 copies1 add in trunk
[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
https://bugs.webkit.org/show_bug.cgi?id=172098
Reviewed by Saam Barati.
JSTests:
- stress/check-sub-class.js: Added.
(shouldBe):
(shouldThrow):
(calling):
(array.forEach):
(i.array.forEach):
Source/JavaScriptCore:
In this patch, we generalize CheckDOM to CheckSubClass.
It can accept any ClassInfo and perform ClassInfo check
in DFG / FTL. Now, we add a new function pointer to ClassInfo,
checkSubClassPatchpoint. It can create DOMJIT patchpoint
for that ClassInfo. It it natural that ClassInfo holds the
way to emit DOMJIT::Patchpoint to perform CheckSubClass
rather than having it in each DOMJIT getter / function
signature annotation.
One problem is that it enlarges the size of ClassInfo.
But this is the best place to put this function pointer.
By doing so, we can add a patchpoint for CheckSubClass
in an non-intrusive manner: WebCore can inject patchpoints
without interactive JSC.
We still have a way to reduce the size of ClassInfo if
we move ArrayBuffer related methods out to the other places.
This patch touches many files because we add a new function
pointer to ClassInfo. But they are basically mechanical change.
- API/JSAPIWrapperObject.mm:
- API/JSCallbackConstructor.cpp:
- API/JSCallbackFunction.cpp:
- API/JSCallbackObject.cpp:
- API/ObjCCallbackFunction.mm:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
- bytecode/DOMJITAccessCasePatchpointParams.h:
(JSC::DOMJITAccessCasePatchpointParams::DOMJITAccessCasePatchpointParams):
- bytecode/EvalCodeBlock.cpp:
- bytecode/FunctionCodeBlock.cpp:
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::emitDOMJITGetter):
- bytecode/ModuleProgramCodeBlock.cpp:
- bytecode/ProgramCodeBlock.cpp:
- bytecode/UnlinkedCodeBlock.cpp:
- bytecode/UnlinkedEvalCodeBlock.cpp:
- bytecode/UnlinkedFunctionCodeBlock.cpp:
- bytecode/UnlinkedFunctionExecutable.cpp:
- bytecode/UnlinkedModuleProgramCodeBlock.cpp:
- bytecode/UnlinkedProgramCodeBlock.cpp:
- debugger/DebuggerScope.cpp:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDOMJITPatchpointParams.h:
(JSC::DFG::DOMJITPatchpointParams::DOMJITPatchpointParams):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeCallDOM):
(JSC::DFG::FixupPhase::fixupCheckSubClass):
(JSC::DFG::FixupPhase::fixupCheckDOM): Deleted.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasClassInfo):
(JSC::DFG::Node::classInfo):
(JSC::DFG::Node::hasCheckDOMPatchpoint): Deleted.
(JSC::DFG::Node::checkDOMPatchpoint): Deleted.
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileCheckDOM): Deleted.
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::vm):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
In DFG, we rename CheckDOM to CheckSubClass. It just holds ClassInfo.
And ClassInfo knows how to perform CheckSubClass efficiently.
If ClassInfo does not have a way to perform CheckSubClass efficiently,
we just perform jsDynamicCast thing in ASM.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- domjit/DOMJITGetterSetter.h:
- domjit/DOMJITPatchpointParams.h:
(JSC::DOMJIT::PatchpointParams::PatchpointParams):
(JSC::DOMJIT::PatchpointParams::vm):
- domjit/DOMJITSignature.h:
(JSC::DOMJIT::Signature::Signature):
(JSC::DOMJIT::Signature::checkDOM): Deleted.
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLDOMJITPatchpointParams.h:
(JSC::FTL::DOMJITPatchpointParams::DOMJITPatchpointParams):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckDOM): Deleted.
- inspector/JSInjectedScriptHost.cpp:
- inspector/JSInjectedScriptHostPrototype.cpp:
- inspector/JSJavaScriptCallFrame.cpp:
- inspector/JSJavaScriptCallFramePrototype.cpp:
- jsc.cpp:
(WTF::DOMJITNode::checkSubClassPatchpoint):
(WTF::DOMJITFunctionObject::checkSubClassPatchpoint):
(WTF::DOMJITFunctionObject::finishCreation):
(WTF::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(WTF::DOMJITCheckSubClassObject::createStructure):
(WTF::DOMJITCheckSubClassObject::create):
(WTF::DOMJITCheckSubClassObject::safeFunction):
(WTF::DOMJITCheckSubClassObject::unsafeFunction):
(WTF::DOMJITCheckSubClassObject::finishCreation):
(GlobalObject::finishCreation):
(functionCreateDOMJITCheckSubClassObject):
(WTF::DOMJITNode::checkDOMJITNode): Deleted.
(WTF::DOMJITFunctionObject::checkDOMJITNode): Deleted.
- runtime/AbstractModuleRecord.cpp:
- runtime/ArrayBufferNeuteringWatchpoint.cpp:
- runtime/ArrayConstructor.cpp:
- runtime/ArrayIteratorPrototype.cpp:
- runtime/ArrayPrototype.cpp:
- runtime/AsyncFunctionConstructor.cpp:
- runtime/AsyncFunctionPrototype.cpp:
- runtime/AtomicsObject.cpp:
- runtime/BooleanConstructor.cpp:
- runtime/BooleanObject.cpp:
- runtime/BooleanPrototype.cpp:
- runtime/ClassInfo.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.
(JSC::ClassInfo::dump):
- runtime/ClassInfo.h:
(JSC::ClassInfo::offsetOfParentClass):
- runtime/ClonedArguments.cpp:
- runtime/ConsoleObject.cpp:
- runtime/CustomGetterSetter.cpp:
- runtime/DateConstructor.cpp:
- runtime/DateInstance.cpp:
- runtime/DatePrototype.cpp:
- runtime/DirectArguments.cpp:
- runtime/Error.cpp:
- runtime/ErrorConstructor.cpp:
- runtime/ErrorInstance.cpp:
- runtime/ErrorPrototype.cpp:
- runtime/EvalExecutable.cpp:
- runtime/Exception.cpp:
- runtime/ExceptionHelpers.cpp:
- runtime/ExecutableBase.cpp:
- runtime/FunctionConstructor.cpp:
- runtime/FunctionExecutable.cpp:
- runtime/FunctionPrototype.cpp:
- runtime/FunctionRareData.cpp:
- runtime/GeneratorFunctionConstructor.cpp:
- runtime/GeneratorFunctionPrototype.cpp:
- runtime/GeneratorPrototype.cpp:
- runtime/GetterSetter.cpp:
- runtime/HashMapImpl.cpp:
- runtime/HashMapImpl.h:
- runtime/InferredType.cpp:
(JSC::InferredType::create):
- runtime/InferredTypeTable.cpp:
- runtime/InferredValue.cpp:
- runtime/InspectorInstrumentationObject.cpp:
- runtime/InternalFunction.cpp:
- runtime/IntlCollator.cpp:
- runtime/IntlCollatorConstructor.cpp:
- runtime/IntlCollatorPrototype.cpp:
- runtime/IntlDateTimeFormat.cpp:
- runtime/IntlDateTimeFormatConstructor.cpp:
- runtime/IntlDateTimeFormatPrototype.cpp:
- runtime/IntlNumberFormat.cpp:
- runtime/IntlNumberFormatConstructor.cpp:
- runtime/IntlNumberFormatPrototype.cpp:
- runtime/IntlObject.cpp:
- runtime/IteratorPrototype.cpp:
- runtime/JSAPIValueWrapper.cpp:
- runtime/JSArray.cpp:
- runtime/JSArrayBuffer.cpp:
- runtime/JSArrayBufferConstructor.cpp:
- runtime/JSArrayBufferPrototype.cpp:
- runtime/JSArrayBufferView.cpp:
- runtime/JSAsyncFunction.cpp:
- runtime/JSBoundFunction.cpp:
- runtime/JSCallee.cpp:
- runtime/JSCustomGetterSetterFunction.cpp:
- runtime/JSDataView.cpp:
- runtime/JSDataViewPrototype.cpp:
- runtime/JSEnvironmentRecord.cpp:
- runtime/JSFixedArray.cpp:
- runtime/JSFunction.cpp:
- runtime/JSGeneratorFunction.cpp:
- runtime/JSGlobalLexicalEnvironment.cpp:
- runtime/JSGlobalObject.cpp:
- runtime/JSInternalPromise.cpp:
- runtime/JSInternalPromiseConstructor.cpp:
- runtime/JSInternalPromiseDeferred.cpp:
- runtime/JSInternalPromisePrototype.cpp:
- runtime/JSLexicalEnvironment.cpp:
- runtime/JSMap.cpp:
- runtime/JSMapIterator.cpp:
- runtime/JSModuleEnvironment.cpp:
- runtime/JSModuleLoader.cpp:
- runtime/JSModuleNamespaceObject.cpp:
- runtime/JSModuleRecord.cpp:
- runtime/JSNativeStdFunction.cpp:
- runtime/JSONObject.cpp:
- runtime/JSObject.cpp:
- runtime/JSPromise.cpp:
- runtime/JSPromiseConstructor.cpp:
- runtime/JSPromiseDeferred.cpp:
- runtime/JSPromisePrototype.cpp:
- runtime/JSPropertyNameEnumerator.cpp:
- runtime/JSPropertyNameIterator.cpp:
- runtime/JSProxy.cpp:
- runtime/JSScriptFetcher.cpp:
- runtime/JSSet.cpp:
- runtime/JSSetIterator.cpp:
- runtime/JSSourceCode.cpp:
- runtime/JSString.cpp:
- runtime/JSStringIterator.cpp:
- runtime/JSSymbolTableObject.cpp:
- runtime/JSTemplateRegistryKey.cpp:
- runtime/JSTypedArrayConstructors.cpp:
- runtime/JSTypedArrayPrototypes.cpp:
- runtime/JSTypedArrayViewConstructor.cpp:
- runtime/JSTypedArrays.cpp:
- runtime/JSWeakMap.cpp:
- runtime/JSWeakSet.cpp:
- runtime/JSWithScope.cpp:
- runtime/MapConstructor.cpp:
- runtime/MapIteratorPrototype.cpp:
- runtime/MapPrototype.cpp:
- runtime/MathObject.cpp:
- runtime/ModuleLoaderPrototype.cpp:
- runtime/ModuleProgramExecutable.cpp:
- runtime/NativeErrorConstructor.cpp:
- runtime/NativeExecutable.cpp:
- runtime/NativeStdFunctionCell.cpp:
- runtime/NullGetterFunction.cpp:
- runtime/NullSetterFunction.cpp:
- runtime/NumberConstructor.cpp:
- runtime/NumberObject.cpp:
- runtime/NumberPrototype.cpp:
- runtime/ObjectConstructor.cpp:
- runtime/ObjectPrototype.cpp:
- runtime/ProgramExecutable.cpp:
- runtime/PropertyTable.cpp:
- runtime/ProxyConstructor.cpp:
- runtime/ProxyObject.cpp:
- runtime/ProxyRevoke.cpp:
- runtime/ReflectObject.cpp:
- runtime/RegExp.cpp:
- runtime/RegExpConstructor.cpp:
- runtime/RegExpObject.cpp:
- runtime/RegExpPrototype.cpp:
- runtime/ScopedArguments.cpp:
- runtime/ScopedArgumentsTable.cpp:
- runtime/ScriptExecutable.cpp:
- runtime/SetConstructor.cpp:
- runtime/SetIteratorPrototype.cpp:
- runtime/SetPrototype.cpp:
- runtime/SparseArrayValueMap.cpp:
- runtime/StrictEvalActivation.cpp:
- runtime/StringConstructor.cpp:
- runtime/StringIteratorPrototype.cpp:
- runtime/StringObject.cpp:
- runtime/StringPrototype.cpp:
- runtime/Structure.cpp:
- runtime/StructureChain.cpp:
- runtime/StructureRareData.cpp:
- runtime/Symbol.cpp:
- runtime/SymbolConstructor.cpp:
- runtime/SymbolObject.cpp:
- runtime/SymbolPrototype.cpp:
- runtime/SymbolTable.cpp:
- runtime/WeakMapConstructor.cpp:
- runtime/WeakMapData.cpp:
- runtime/WeakMapPrototype.cpp:
- runtime/WeakSetConstructor.cpp:
- runtime/WeakSetPrototype.cpp:
- testRegExp.cpp:
- tools/JSDollarVM.cpp:
- tools/JSDollarVMPrototype.cpp:
- wasm/JSWebAssembly.cpp:
- wasm/js/JSWebAssemblyCodeBlock.cpp:
- wasm/js/JSWebAssemblyCompileError.cpp:
- wasm/js/JSWebAssemblyInstance.cpp:
- wasm/js/JSWebAssemblyLinkError.cpp:
- wasm/js/JSWebAssemblyMemory.cpp:
- wasm/js/JSWebAssemblyModule.cpp:
- wasm/js/JSWebAssemblyRuntimeError.cpp:
- wasm/js/JSWebAssemblyTable.cpp:
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
- wasm/js/WebAssemblyCompileErrorPrototype.cpp:
- wasm/js/WebAssemblyFunction.cpp:
- wasm/js/WebAssemblyInstanceConstructor.cpp:
- wasm/js/WebAssemblyInstancePrototype.cpp:
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
- wasm/js/WebAssemblyLinkErrorPrototype.cpp:
- wasm/js/WebAssemblyMemoryConstructor.cpp:
- wasm/js/WebAssemblyMemoryPrototype.cpp:
- wasm/js/WebAssemblyModuleConstructor.cpp:
- wasm/js/WebAssemblyModulePrototype.cpp:
- wasm/js/WebAssemblyModuleRecord.cpp:
- wasm/js/WebAssemblyPrototype.cpp:
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
- wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
- wasm/js/WebAssemblyTableConstructor.cpp:
- wasm/js/WebAssemblyTablePrototype.cpp:
- wasm/js/WebAssemblyToJSCallee.cpp:
- wasm/js/WebAssemblyWrapperFunction.cpp:
Source/WebCore:
Add DOMJIT interface IDL attribute. Which allows us to define checkSubClassPatchpoint function
for that ClassInfo. And we move CheckSubClass patchpoint implementation to ClassInfo's member.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMGlobalObject.cpp:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSDOMWindowProperties.cpp:
- bindings/js/JSDOMWindowShell.cpp:
- bindings/js/JSReadableStreamPrivateConstructors.cpp:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateImplementationIterableFunctions):
(GenerateConstructorHelperMethods):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSInterfaceName.cpp:
- bindings/scripts/test/JS/JSMapLike.cpp:
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
- bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.h:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestException.cpp:
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
- bindings/scripts/test/JS/JSTestIterable.cpp:
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
- bindings/scripts/test/JS/JSTestSerialization.cpp:
- bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bridge/c/CRuntimeObject.cpp:
- bridge/c/c_instance.cpp:
- bridge/objc/ObjCRuntimeObject.mm:
- bridge/objc/objc_instance.mm:
- bridge/objc/objc_runtime.mm:
- bridge/runtime_array.cpp:
- bridge/runtime_method.cpp:
- bridge/runtime_object.cpp:
- dom/Document.idl:
- dom/DocumentFragment.idl:
- dom/Element.idl:
- dom/Event.idl:
- dom/Node.idl:
- domjit/JSDocumentDOMJIT.cpp:
(WebCore::JSDocument::checkSubClassPatchpoint):
(WebCore::DocumentDocumentElementDOMJIT::checkDOM): Deleted.
(WebCore::DocumentBodyDOMJIT::checkDOM): Deleted.
- domjit/JSDocumentFragmentDOMJIT.cpp: Copied from Source/JavaScriptCore/runtime/JSMap.cpp.
(WebCore::JSDocumentFragment::checkSubClassPatchpoint):
- domjit/JSElementDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.
(WebCore::JSElement::checkSubClassPatchpoint):
- domjit/JSEventDOMJIT.cpp: Copied from Source/JavaScriptCore/tools/JSDollarVM.cpp.
(WebCore::JSEvent::checkSubClassPatchpoint):
- domjit/JSNodeDOMJIT.cpp:
(WebCore::JSNode::checkSubClassPatchpoint):
(WebCore::NodeFirstChildDOMJIT::checkDOM): Deleted.
(WebCore::NodeLastChildDOMJIT::checkDOM): Deleted.
(WebCore::NodeNextSiblingDOMJIT::checkDOM): Deleted.
(WebCore::NodePreviousSiblingDOMJIT::checkDOM): Deleted.
(WebCore::NodeParentNodeDOMJIT::checkDOM): Deleted.
(WebCore::NodeNodeTypeDOMJIT::checkDOM): Deleted.
(WebCore::NodeOwnerDocumentDOMJIT::checkDOM): Deleted.
Source/WebKit/mac:
- Plugins/Hosted/ProxyInstance.mm:
- Plugins/Hosted/ProxyRuntimeObject.mm:
Source/WebKit2:
- WebProcess/Plugins/Netscape/JSNPMethod.cpp:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
- 9:07 PM Changeset in webkit [217030] by
-
- 2 edits in trunk/Source/WebCore
r216999 broke win build
https://bugs.webkit.org/show_bug.cgi?id=172257
Unreviewed.
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-17
- testing/Internals.cpp:
(WebCore::Internals::setPageVisibility): Moving setPageVisibility out of MEDIA_STREAM compilation flag.
- 7:10 PM Changeset in webkit [217029] by
-
- 7 edits2 adds in branches/safari-603-branch
Cherry-pick r216726. rdar://problem/31971324
- 6:36 PM Changeset in webkit [217028] by
-
- 4 edits2 adds in branches/safari-603-branch
Cherry-pick r216978. rdar://problem/31971195
- 6:36 PM Changeset in webkit [217027] by
-
- 3 edits2 adds in branches/safari-603-branch
Cherry-pick r216813. rdar://problem/31971160
- 6:36 PM Changeset in webkit [217026] by
-
- 6 edits2 adds in branches/safari-603-branch
Cherry-pick r216631. rdar://problem/32200771
- 6:36 PM Changeset in webkit [217025] by
-
- 3 edits in branches/safari-603-branch/Source/WebKit/win
Cherry-pick r216554. rdar://problem/31971362
- 6:35 PM Changeset in webkit [217024] by
-
- 2 edits in branches/safari-603-branch/Source/JavaScriptCore
Cherry-pick r211063. rdar://problem/32228083
- 6:01 PM Changeset in webkit [217023] by
-
- 7 edits in branches/safari-604.1.21-branch/Source
Versioning.
- 5:58 PM Changeset in webkit [217022] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] errors are not propagated to PassKit when calling ApplePaySession.completePayment()
https://bugs.webkit.org/show_bug.cgi?id=172253
<rdar://problem/32258020>
Reviewed by Dan Bernstein.
In ApplePaySession::completePayment(), releaseReturnValue() was being called twice on the
same convertedResult. Since the first call moved the errors vector out of convertedResult,
the vector is empty in the second call. It's the second call that sends the result to the
UI process, so we end up with an empty arary when we call PassKit's delegate completion
handler.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::completePayment):
- 5:50 PM Changeset in webkit [217021] by
-
- 1 copy in tags/Safari-604.1.21.5
Tag Safari-604.1.21.5.
- 5:37 PM Changeset in webkit [217020] by
-
- 30 edits2 deletes in trunk
Unreviewed, rolling out r217014.
This change caused mac-wk2 LayoutTests to exit early due to
crashes.
Reverted changeset:
"Resource Load Statistics: Grandfather domains for existing
data records"
https://bugs.webkit.org/show_bug.cgi?id=172155
http://trac.webkit.org/changeset/217014
- 5:29 PM Changeset in webkit [217019] by
-
- 6 edits in trunk
Tighten TextIterator::handleTextNode run-renderer mapping logic.
https://bugs.webkit.org/show_bug.cgi?id=172174
Reviewed by Antti Koivisto.
Source/WebCore:
This patch ensure that when runs and renderers are getting out of sync
we don't run into problems like webkit.org/b/172113 (where we end up
using incorrect content start/end positions).
- editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
LayoutTests:
- fast/shadow-dom/slot-crash-expected.txt:
- 5:26 PM Changeset in webkit [217018] by
-
- 2 edits in trunk/JSTests
Unreviewed, address mlam's review feedback.
- stress/arguments-elimination-varargs-too-many-args-arg-count.js:
- 5:23 PM Changeset in webkit [217017] by
-
- 11 edits3 adds in trunk
We don't do context switches for Wasm->Wasm call indirect
https://bugs.webkit.org/show_bug.cgi?id=172188
<rdar://problem/32231828>
Reviewed by Keith Miller.
JSTests:
- wasm/function-tests/context-switch.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
(makeInstance):
(makeInstance2):
(assert.eq.makeInstance):
(assert.eq.makeInstance2):
(assert.eq):
Source/JavaScriptCore:
We did not do a context switch when doing an indirect call.
This is clearly wrong, since the thing we're making an indirect
call to could be from another instance. This patch fixes this
oversight by doing a very simple context switch. I've also opened
a bug to make indirect calls fast: https://bugs.webkit.org/show_bug.cgi?id=172197
since this patch adds yet another branch to the indirect call path.
I've also added tests that either throw or crash before this change.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- wasm/WasmB3IRGenerator.cpp:
- wasm/js/JSWebAssemblyTable.h:
(JSC::JSWebAssemblyTable::offsetOfJSFunctions):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::visitChildren):
(JSC::WebAssemblyFunction::finishCreation): Deleted.
- wasm/js/WebAssemblyFunction.h:
(JSC::WebAssemblyFunction::instance): Deleted.
(JSC::WebAssemblyFunction::offsetOfInstance): Deleted.
- wasm/js/WebAssemblyFunctionBase.cpp: Added.
(JSC::WebAssemblyFunctionBase::WebAssemblyFunctionBase):
(JSC::WebAssemblyFunctionBase::visitChildren):
(JSC::WebAssemblyFunctionBase::finishCreation):
- wasm/js/WebAssemblyFunctionBase.h: Added.
(JSC::WebAssemblyFunctionBase::instance):
(JSC::WebAssemblyFunctionBase::offsetOfInstance):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):
- wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):
(JSC::WebAssemblyWrapperFunction::finishCreation):
(JSC::WebAssemblyWrapperFunction::visitChildren):
- wasm/js/WebAssemblyWrapperFunction.h:
- 5:22 PM Changeset in webkit [217016] by
-
- 3 edits1 add in trunk
JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
https://bugs.webkit.org/show_bug.cgi?id=172208
Reviewed by Saam Barati.
JSTests:
- stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
(foo):
(bar):
(baz):
Source/JavaScriptCore:
- dfg/DFGArgumentsEliminationPhase.cpp:
- 5:12 PM Changeset in webkit [217015] by
-
- 17 edits in branches/safari-603-branch/Source
Cherry-pick r215345. rdar://problem/31968033
- 4:55 PM Changeset in webkit [217014] by
-
- 30 edits2 adds in trunk
Resource Load Statistics: Grandfather domains for existing data records
https://bugs.webkit.org/show_bug.cgi?id=172155
<rdar://problem/24913532>
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/loading/resourceLoadStatistics/grandfathering.html
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setGrandfathered):
(WebCore::ResourceLoadObserver::isGrandfathered):
(WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval):
(WebCore::ResourceLoadObserver::setGrandfatheringTime):
Functions for testing and configuration.
ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval() changed as a result of moving
WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here.
- loader/ResourceLoadObserver.h:
- loader/ResourceLoadStatisticsStore.cpp:
(WebCore::ResourceLoadStatisticsStore::createEncoderFromData):
(WebCore::ResourceLoadStatisticsStore::readDataFromDecoder):
Now contains endOfGrandfatheringTimestamp.
(WebCore::ResourceLoadStatisticsStore::clearInMemoryAndPersistent):
Now makes a call to m_grandfatherExistingWebsiteDataHandler().
(WebCore::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback):
(WebCore::ResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval):
Changed as a result of moving
WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval() here.
(WebCore::ResourceLoadStatisticsStore::setGrandfatheringTime):
(WebCore::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
Renamed since it now also takes grandfathering into account.
(WebCore::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):
Fixed typo in local variable name.
(WebCore::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
(WebCore::ResourceLoadStatisticsStore::shouldRemoveDataRecords):
Convenience function added.
(WebCore::ResourceLoadStatisticsStore::dataRecordsBeingRemoved):
Convenience function added.
(WebCore::ResourceLoadStatisticsStore::dataRecordsWereRemoved):
Convenience function added.
(WebCore::ResourceLoadStatisticsStore::prevalentResourceDomainsWithoutUserInteraction): Deleted.
Replaced by ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor().
- loader/ResourceLoadStatisticsStore.h:
Source/WebKit2:
When WebResourceLoadStatisticsStore starts fresh it needs
to scan existing website data records and 'grandfather' them to
allow ample time to capture user interaction.
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:
(WKResourceLoadStatisticsManagerSetGrandfathered):
(WKResourceLoadStatisticsManagerIsGrandfathered):
(WKResourceLoadStatisticsManagerSetMinimumTimeBetweeenDataRecordsRemoval):
(WKResourceLoadStatisticsManagerSetGrandfatheringTime):
Functions for testing and configuration.
- UIProcess/API/C/WKResourceLoadStatisticsManager.h:
- UIProcess/Cocoa/WebResourceLoadStatisticsManagerCocoa.mm:
(WebKit::WebResourceLoadStatisticsManager::registerUserDefaultsIfNeeded):
Added grandfathering configuration.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebiteData):
New function to get all top privately controlled domains that
have website data.
- UIProcess/WebProcessProxy.h:
- UIProcess/WebResourceLoadStatisticsManager.cpp:
(WebKit::WebResourceLoadStatisticsManager::setGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::isGrandfathered):
(WebKit::WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval):
(WebKit::WebResourceLoadStatisticsManager::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsManager::resetToConsistentState):
Functions for testing and configuration.
WebResourceLoadStatisticsManager::setMinimumTimeBetweeenDataRecordsRemoval() changed
as a result of WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval()
moving to WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval().
- UIProcess/WebResourceLoadStatisticsManager.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::initializeDataTypesToRemove):
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
Moved handling of pending removal into WebCore::ResourceLoadStatisticsStore since
that's where grandfathering happens.
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
Moved registration of write persistent store callback and reading of Cocoa defaults to
WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver without parameters
so they are called for platforms without CFNETWORK_STORAGE_PARTITIONING.
Now includes registering WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData()
as handler for grandfathering since it involves reading of the website data store.
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweeenDataRecordsRemoval): Deleted.
Now happens in WebCore::ResourceLoadObserver::setMinimumTimeBetweeenDataRecordsRemoval().
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::topPrivatelyControlledDomain):
New function to ask a WebsiteDataRecord for its top privately controlled domain.
- UIProcess/WebsiteData/WebsiteDataRecord.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::topPrivatelyControlledDomainsWithWebsiteData):
New function to get all top privately controlled domains that
have website data.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
Adds test infrastructure needed for the added functionality.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsGrandfathered):
(WTR::TestRunner::isStatisticsGrandfathered):
(WTR::TestRunner::installStatisticsDidScanDataRecordsCallback):
(WTR::TestRunner::statisticsDidScanDataRecordsCallback):
(WTR::TestRunner::setStatisticsGrandfatheringTime):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setStatisticsGrandfatheringTime):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/loading/resourceLoadStatistics/grandfathering-expected.txt: Added.
- http/tests/loading/resourceLoadStatistics/grandfathering.html: Added.
- platform/wk2/TestExpectations:
Marked it Pass for WebKit2.
- 4:40 PM Changeset in webkit [217013] by
-
- 2 edits in trunk/Source/WebKit2
[WK2][iOS] Allow access to additional IOHID user class
https://bugs.webkit.org/show_bug.cgi?id=172198
<rdar://problem/31967635>
Reviewed by Alex Christensen.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 4:30 PM Changeset in webkit [217012] by
-
- 4 edits2 adds in trunk
Debug ASSERT: WebCore::RenderImageResource::shutdown
https://bugs.webkit.org/show_bug.cgi?id=172238
<rdar://problem/30064601>
Reviewed by Simon Fraser.
Source/WebCore:
While constructing new renderers, as part of the render tree update, we check if the insertion point is valid for them.
When this newly constructed child renderer can't be injected to a specific place, we destroy it right away.
This assert was added with the assumption that the image resource object gets initialized
(through RenderObject::initializeStyle) even when the renderer turns out to be invalid.
Test: fast/images/assert-when-insertion-point-is-incorrect.html
- rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::RenderImageResource):
(WebCore::RenderImageResource::shutdown):
- rendering/RenderImageResource.h:
LayoutTests:
- fast/images/assert-when-insertion-point-is-incorrect-expected.txt: Added.
- fast/images/assert-when-insertion-point-is-incorrect.html: Added.
- 4:13 PM Changeset in webkit [217011] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Win] Support $vm.getpid()
https://bugs.webkit.org/show_bug.cgi?id=172248
Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-17
Reviewed by Mark Lam.
- tools/JSDollarVMPrototype.cpp:
(JSC::functionGetPID):
(JSC::JSDollarVMPrototype::finishCreation):
- 4:11 PM Changeset in webkit [217010] by
-
- 2 edits in trunk/Tools
Fix ios-simulator API test after r216977
https://bugs.webkit.org/show_bug.cgi?id=171987
- TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm:
(TEST):
<rdar://problem/32260156> covers the investigation of this, but fixing it is
not as urgent as having the rest of this working. Notably the ephemeral part of the
test works, so something is just wrong with the persistent part.
- 3:37 PM Changeset in webkit [217009] by
-
- 6 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r216998. rdar://problem/31538943
- 3:37 PM Changeset in webkit [217008] by
-
- 23 edits1 add in branches/safari-604.1.21-branch
Cherry-pick r216977. rdar://problem/32141505
- 3:34 PM Changeset in webkit [217007] by
-
- 2 edits in trunk/LayoutTests
Mark http/tests/appcache/404-resource-with-slow-main-resource.php as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=172241
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:58 PM Changeset in webkit [217006] by
-
- 2 edits in trunk/Source/WebKit2
Add more assertions in BackgroundProcessResponsivenessTimer
https://bugs.webkit.org/show_bug.cgi?id=172239
Reviewed by Andreas Kling.
Add more assertions in BackgroundProcessResponsivenessTimer to help figure out the
source of <rdar://problem/32251578>.
- UIProcess/BackgroundProcessResponsivenessTimer.cpp:
(WebKit::BackgroundProcessResponsivenessTimer::updateState):
(WebKit::BackgroundProcessResponsivenessTimer::scheduleNextResponsivenessCheck):
- 2:53 PM Changeset in webkit [217005] by
-
- 2 edits in trunk/Source/WebCore
Crash under WebCore::AudioSourceProviderAVFObjC::process().
https://bugs.webkit.org/show_bug.cgi?id=172101
rdar://problem/27446589
Reviewed by Jer Noble.
Calling the function MTAudioProcessingTapGetSourceAudio when the value of the
MTAudioProcessingTapRef parameter is null, will lead to a null dereference.
This can for example happen if MediaPlayerPrivateAVFoundationObjC::cancelLoad()
is called on the main thread while MediaToolbox is calling the
WebCore::AudioSourceProviderAVFObjC::processCallback function on a secondary
thread. MediaPlayerPrivateAVFoundationObjC::cancelLoad() will then call
AudioSourceProviderAVFObjC::setPlayerItem(nullptr), which will call
AudioSourceProviderAVFObjC::destroyMix(), which will set m_tap to null. When
AudioSourceProviderAVFObjC::process is called on the secondary thread, using
the m_tap member in the call to MTAudioProcessingTapGetSourceAudio, the process
will crash.
No new tests since I am not able to reproduce.
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::initCallback):
(WebCore::AudioSourceProviderAVFObjC::process):
- 2:50 PM Changeset in webkit [217004] by
-
- 11 edits in trunk
Setting URL.search to results in a stringified URL ending in '?'
https://bugs.webkit.org/show_bug.cgi?id=162345
<rdar://problem/31800441>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline web-platform-test now that more checks are passing.
- web-platform-tests/url/url-setters-expected.txt:
Source/WebCore:
As per the specification for the URL.search setter [1], if the given value is
the empty string, then we should set the URL's query to null. We would
previously set the URL's query to the empty string in this case. This aligns
our behavior with Firefox and Chrome.
[1] https://url.spec.whatwg.org/#dom-url-search
No new tests, updated existing tests.
- html/URLUtils.h:
(WebCore::URLUtils<T>::setSearch):
LayoutTests:
- fast/dom/DOMURL/set-href-attribute-search-expected.txt:
- fast/dom/DOMURL/set-href-attribute-search.html:
- fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js:
- fast/dom/HTMLAnchorElement/set-href-attribute-search-expected.txt:
Update / rebaseline existing tests to reflect behavior change.
- platform/ios-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
Unskip url-setters.html test as it seems to be passing for me on WK1.
- 2:49 PM Changeset in webkit [217003] by
-
- 3 edits in trunk/Tools
Unreviewed, rolling out r216955.
This change caused strange behavior with web-platform-tests
locally and on EWS.
Reverted changeset:
"webkitpy: Start servers before setting-up for testing"
https://bugs.webkit.org/show_bug.cgi?id=172176
http://trac.webkit.org/changeset/216955
- 2:48 PM Changeset in webkit [217002] by
-
- 2 edits in trunk/Source/WebKit2
No need to copy origin references in UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo
https://bugs.webkit.org/show_bug.cgi?id=172242
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-17
Reviewed by Eric Carlson.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
- 2:31 PM Changeset in webkit [217001] by
-
- 12 edits2 adds in trunk
[MediaStream] videoWidth and videoHeight should be set when 'loadedmetadata' event fires
https://bugs.webkit.org/show_bug.cgi?id=172223
<rdar://problem/31899755>
Reviewed by Jer Noble.
Source/WebCore:
Test: fast/mediastream/get-user-media-on-loadedmetadata.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): If a stream has
a video track, return HaveNothing until we have a sample.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::tick): Optionally delay the next sample.
(WebCore::MockRealtimeAudioSource::delaySamples):
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::delaySamples):
(WebCore::MockRealtimeVideoSource::generateFrame): Optionally delay the next sample.
- platform/mock/MockRealtimeVideoSource.h:
- testing/Internals.cpp:
(WebCore::Internals::delayMediaStreamTrackSamples):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/mediastream/get-user-media-on-loadedmetadata-expected.txt: Added.
- fast/mediastream/get-user-media-on-loadedmetadata.html: Added.
- 2:28 PM Changeset in webkit [217000] by
-
- 5 edits in trunk/Source
Source/bmalloc:
[iOS] The Garbage Collector shouldn't rely on the bmalloc scavenger for up to date memory footprint info (172186)
https://bugs.webkit.org/show_bug.cgi?id=172186
Reviewed by Geoffrey Garen.
The calls memoryFootprint() and percentAvailableMemoryInUse() now make a system call to get
the current memory footprint value.
- bmalloc/Heap.h:
(bmalloc::Heap::memoryFootprint):
(bmalloc::Heap::percentAvailableMemoryInUse):
Source/JavaScriptCore:
[iOS] The Garbage Collector shouldn't rely on the bmalloc scavenger for up to date memory footprint info
https://bugs.webkit.org/show_bug.cgi?id=172186
Reviewed by Geoffrey Garen.
The calls to bmalloc::api::memoryFootprint() and ::percentAvailableMemoryInUse() now call
the OS to get up to date values. In overCriticalMemoryThreshold(), we get the current value every
100th call and use a cached value the rest of the time. When colleciton is done, we start with
a new overCriticalMemoryThreshold value for the next cycle.
The choice of 1 out of 100 calls was validated by using JetStream and verifying that it didn't impact
performance and still provides timely memory footprint data. With additional debug logging, I
determined that we call overCriticalMemoryThreshold() over 20,000 times/second running JetStream.
Other logging showed that there were over 1700 calls to overCriticalMemoryThreshold() on average per
GC cycle. Dividing both of these numbers by 100 seems reasonable.
- heap/Heap.cpp:
(JSC::Heap::overCriticalMemoryThreshold):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::shouldDoFullCollection):
- heap/Heap.h:
- 2:08 PM Changeset in webkit [216999] by
-
- 12 edits in trunk
iOS WebRTC Media Capture should not allow camera capture from background tab
https://bugs.webkit.org/show_bug.cgi?id=172200
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-17
Reviewed by Eric Carlson.
Source/WebCore:
Test: platform/ios/mediastream/getUserMedia-disabled-in-background-tabs.html and manual tests.
Making Video Capture Factory aware of Document visibility changes.
On iOS, muting/unmuting the current video source according Document visibility.
Not using Document visibility change observer as factories are platform and cannot implement
the visibility observer interface without moving the visibility observer interface.
Introducing internals API to switch on/off the page visibility.
- dom/Document.cpp:
(WebCore::Document::visibilityStateChanged):
(WebCore::Document::notifyVisibilityChangedToMediaCapture):
- dom/Document.h:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::setVisibility):
- platform/mediastream/RealtimeMediaSourceCenter.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSourceFactory::setVisibility):
- testing/Internals.cpp:
(WebCore::Internals::setPageVisibility):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- platform/ios/mediastream/getUserMedia-disabled-in-background-tabs-expected.txt: Added.
- platform/ios/mediastream/getUserMedia-disabled-in-background-tabs.html: Added.
- 1:58 PM Changeset in webkit [216998] by
-
- 6 edits in trunk/Source/WebCore
When the image decoding thread makes a callOnMainThread(), ensure all the objects it needs are protected
https://bugs.webkit.org/show_bug.cgi?id=171614
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-17
Reviewed by David Kilzer.
The asynchronous image decoding was designed to not block the main thread if
the image is deleted. To achieve that we allow decoding the current frame
even if it is not going to be used after closing the decoding queue. We
protect all the objects which the decoding thread uses. But when a frame
finishes decoding the native image frame is cached on the main thread. Not
all of the objects are protected when the callOnMainThread() is dispatched.
The ImageFrameCache and the ImageDecoder objects are not protected.
This might lead to two kinds of crashes:
- A segfault inside the ImageDecoder trying to access one of its member
- A segfault inside the ImageFrameCache trying to access one of its frames
The fix is to protect the ImageFrameCache and the ImageDecoder when the
decoding thread makes a callOnMainThread(). Also switch all the pointers
the decoding threads protect to be ThreadSafeRefCounted.
- platform/graphics/ImageFrameCache.cpp:
(WebCore::ImageFrameCache::startAsyncDecodingQueue):
- platform/graphics/ImageFrameCache.h:
- platform/graphics/cg/ImageDecoderCG.h:
- platform/graphics/win/ImageDecoderDirect2D.h:
- platform/image-decoders/ImageDecoder.h:
- 1:56 PM Changeset in webkit [216997] by
-
- 4 edits in trunk
A URL type is vended for a non-URL plain text string when starting data interaction
https://bugs.webkit.org/show_bug.cgi?id=172228
<rdar://problem/32166729>
Reviewed by Andy Estes.
Source/WebCore:
Previously, when writing a plain text string to WebItemProviderPasteboard, we would write an NSString directly
to the item provider by using built-in functionality in NSString+UIItemProvider. However, this causes plain
strings such as "apple" to be considered URLs, since -[NSURL URLWithString:] creates a non-null NSURL. To fix
this, we instead write the string as UTF8 data, for the UTI kUTTypeUTF8PlainText, if the plain text is not a
URL. If the plain text is clearly a URL (determined by constructing a new WebCore URL with no base URL and the
plaintext string as the absolute URL) then we additionally write an NSURL to the pasteboard.
2 new API tests:
DataInteractionTests.SinglePlainTextWordTypeIdentifiers
DataInteractionTests.SinglePlainTextURLTypeIdentifiers
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::addRepresentationsForPlainText):
(WebCore::PlatformPasteboard::writeObjectRepresentations):
Tools:
Adds two new data interaction tests, SinglePlainTextWordTypeIdentifiers and SinglePlainTextURLTypeIdentifiers,
to verify that a URL UTI is not vended when beginning a data interaction on a single word, but that a URL is
still vended when beginning data interaction on something that resembles a link.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
- 1:52 PM Changeset in webkit [216996] by
-
- 2 edits in trunk/PerformanceTests
Speedometer: adjust Ember TodoMVC to use full path
https://bugs.webkit.org/show_bug.cgi?id=172211
Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-17
Reviewed by Ryosuke Niwa.
- Speedometer/resources/tests.js: use full path to Ember TodoMVC app.
- 1:51 PM Changeset in webkit [216995] by
-
- 7 copies1 add in releases/Apple/iOS 10.3.2
Added a tag for iOS 10.3.2.
- 1:47 PM Changeset in webkit [216994] by
-
- 8 copies1 add in releases/Apple/Safari 10.1.1
Added a tag for Safari 10.1.1.
- 1:39 PM Changeset in webkit [216993] by
-
- 8 copies1 add in releases/Apple/Safari Technology Preview 30
Added a tag for Safari Technology Preview release 30.
- 1:09 PM Changeset in webkit [216992] by
-
- 5 edits2 adds in trunk
Replace CryptoOperationData with BufferSource for WebKitSubtleCrypto
https://bugs.webkit.org/show_bug.cgi?id=172146
<rdar://problem/32122256>
Reviewed by Brent Fulgham.
Source/WebCore:
In this patch, we replaces CryptoOperationData with BufferSource for WebKitSubtleCrypto in
the custom binding codes.
Test: crypto/webkitSubtle/import-export-raw-key-leak.html
- bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::JSWebKitSubtleCrypto::encrypt):
(WebCore::JSWebKitSubtleCrypto::decrypt):
(WebCore::JSWebKitSubtleCrypto::sign):
(WebCore::JSWebKitSubtleCrypto::verify):
(WebCore::JSWebKitSubtleCrypto::digest):
(WebCore::JSWebKitSubtleCrypto::importKey):
(WebCore::JSWebKitSubtleCrypto::unwrapKey):
- crypto/WebKitSubtleCrypto.idl:
LayoutTests:
- crypto/webkitSubtle/argument-conversion-expected.txt:
- crypto/webkitSubtle/import-export-raw-key-leak-expected.txt: Added.
- crypto/webkitSubtle/import-export-raw-key-leak.html: Added.
- 1:07 PM Changeset in webkit [216991] by
-
- 7 edits in trunk/Source
Move-related refactoring on UserMediaPermissionRequestProxy
https://bugs.webkit.org/show_bug.cgi?id=172195
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-17
Reviewed by Alex Christensen.
Source/WebCore:
No behavioral change.
- platform/mediastream/RealtimeMediaSourceCenter.h: Cleaning the function definition.
Source/WebKit2:
Moving vectors of strings instead of passing as const ref so that we do not copy them.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
- UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
- 12:44 PM Changeset in webkit [216990] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, skip newly imported notifications tests on iOS
Notifications are not enabled on iOS.
- platform/ios/TestExpectations:
- 12:25 PM Changeset in webkit [216989] by
-
- 10 edits in trunk/Source/JavaScriptCore
PinnedRegisters should be better modeled in IRC/Briggs
https://bugs.webkit.org/show_bug.cgi?id=171955
Reviewed by Filip Pizlo.
This patch fixes a bug in Briggs/IRC with respect to pinned registers.
Pinned registers were not part of the assignable register file in IRC/Briggs,
and this would lead to an asymmetry because they were modeled in the
interference graph. The bug is that we use registerCount() to move various
Tmps between various lists in the different allocators, and if a Tmp
interfered with a pinned register (usually via a Patchpoint's clobbered set),
we'd have an interference edge modeled in the degree for that Tmp, but the registerCount()
would make us think that this particular Tmp is not assignable. This would
lead us to fail to color a colorable graph. Specifically, this happened in
our various patchpoint tests that stress the register allocator by forcing
the entire register file into arguments for the patchpoint and then doing
interesting things with the result, arguments, etc.
This patch fixes the bug by coming up with an more natural way to model pinned
registers. Pinned registers are now part of the register file. However,
pinned registers are live at every point in the program (this is a defining
property of a pinned register). In practice, this means that the only Tmps
that can be assigned to pinned registers are ones that are coalescing
candidates. This means the program has some number of defs for a Tmp T like:
MoveType pinnedReg, T
Note, if any other defs for T happen, like:
Add32, t1, t2, T
T will have an interference edge with pinnedReg, since pinnedReg is live
at every point in the program. Modeling pinned registers this way allows
IRC/Briggs to have no special casing for them. It treats it like any other
precolored Tmp. This allows us to do coalescing, biased coloring, etc, which
could all lead to a Tmp being assigned to a pinned register.
Interestingly, we used to have special handling for the frame pointer
register, which in many ways, acts like a pinned register, since FP is
always live, and we wanted it to take place in coalescing. The allocator
had a side-table interference graph with FP. Interestingly, we didn't even
handle this properly everywhere since we could rely on a patchpoint never
claiming to clobber FP (this would be illegal). So the code only handled
the pseudo-pinned register properties of FP in various places. This patch
drops this special casing and pins FP since all pinned registers can take
part in coalescing.
- b3/B3PatchpointSpecial.h:
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::mutableGPRs):
(JSC::B3::Procedure::mutableFPRs):
- b3/B3Procedure.h:
- b3/air/AirAllocateRegistersByGraphColoring.cpp:
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::Code):
(JSC::B3::Air::Code::pinRegister):
(JSC::B3::Air::Code::mutableGPRs):
(JSC::B3::Air::Code::mutableFPRs):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::pinnedRegisters):
- b3/air/AirSpecial.h:
- b3/air/testair.cpp:
- b3/testb3.cpp:
(JSC::B3::testSimplePatchpointWithOuputClobbersGPArgs):
(JSC::B3::testSpillDefSmallerThanUse):
(JSC::B3::testLateRegister):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled):
(JSC::B3::testTerminalPatchpointThatNeedsToBeSpilled2):
(JSC::B3::testMoveConstants):
- 11:44 AM Changeset in webkit [216988] by
-
- 5 edits in trunk
BlobDataFileReference::generateReplacementFile() should use mkstemp()
<https://webkit.org/b/172192>
Reviewed by Brent Fulgham.
Source/WebCore:
- platform/network/mac/BlobDataFileReferenceMac.mm:
(WebCore::BlobDataFileReference::generateReplacementFile): Use
mkstemp().
Tools:
- Scripts/webkitpy/style/checkers/cpp.py:
(check_language): Add check for mktemp.
(CppChecker): Add 'security/temp_file' category.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_insecure_temp_file): Add test.
- 11:32 AM Changeset in webkit [216987] by
-
- 5 edits in branches/safari-604.1.21-branch/Source/WebCore
Revert r216784. rdar://problem/32249274
- 11:32 AM Changeset in webkit [216986] by
-
- 32 edits in branches/safari-604.1.21-branch
Cherry-pick r216901. rdar://problem/31469922
- 11:32 AM Changeset in webkit [216985] by
-
- 4 edits in branches/safari-604.1.21-branch/LayoutTests
Cherry-pick r216225. rdar://problem/31976651
- 11:28 AM Changeset in webkit [216984] by
-
- 2 edits in trunk/LayoutTests
Mark two http/tests/media/hls/video tests as failing during investigation.
https://bugs.webkit.org/show_bug.cgi?id=171814
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 11:26 AM Changeset in webkit [216983] by
-
- 2 edits in trunk/Tools
Unreviewed, change my email.
- Scripts/webkitpy/common/config/contributors.json:
- 11:17 AM Changeset in webkit [216982] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION (r215480): PKPaymentAuthorizationStatusFailure sent to PassKit in completeShippingContactSelection() even when there are no errors
https://bugs.webkit.org/show_bug.cgi?id=172227
<rdar://problem/31978432>
Reviewed by Alexey Proskuryakov.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentAuthorizationStatus): If there is an update with no errors, we should
return PKPaymentAuthorizationStatusSuccess instead of PKPaymentAuthorizationStatusFailure.
- 10:52 AM Changeset in webkit [216981] by
-
- 18 edits in trunk
Unreviewed, rolling out r216974.
Revision caused consistent timeouts on all platforms.
Reverted changeset:
"Add a RuntimeEnabledFeature for display: contents, defaulted
to false."
https://bugs.webkit.org/show_bug.cgi?id=171984
http://trac.webkit.org/changeset/216974
- 10:34 AM Changeset in webkit [216980] by
-
- 4 edits2 adds in trunk
ASSERTION FAILED in WebCore::AccessibilityNodeObject::insertChild()
https://bugs.webkit.org/show_bug.cgi?id=171927
<rdar://problem/32109781>
Reviewed by Chris Fleizach.
Source/WebCore:
The nextSibling() logic might include the continuation sibling that's not
the child of the current renderer. Make sure we only insert the valid child.
Test: accessibility/insert-children-assert.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::nextSibling):
LayoutTests:
- accessibility/insert-children-assert-expected.txt: Added.
- accessibility/insert-children-assert.html: Added.
- 10:23 AM Changeset in webkit [216979] by
-
- 5 edits24 adds in trunk/LayoutTests
Import Notification tests from web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=172196
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- web-platform-tests/notifications/OWNERS: Added.
- web-platform-tests/notifications/common.js: Added.
(createPassFail):
(clearPassFail):
(closeNotifications):
(hasNotificationPermission):
- web-platform-tests/notifications/constructor-basic-expected.txt: Added.
- web-platform-tests/notifications/constructor-basic.html: Added.
- web-platform-tests/notifications/constructor-invalid-expected.txt: Added.
- web-platform-tests/notifications/constructor-invalid.html: Added.
- web-platform-tests/notifications/event-onclose-expected.txt: Added.
- web-platform-tests/notifications/event-onclose.html: Added.
- web-platform-tests/notifications/event-onshow-expected.txt: Added.
- web-platform-tests/notifications/event-onshow.html: Added.
- web-platform-tests/notifications/instance-expected.txt: Added.
- web-platform-tests/notifications/instance.html: Added.
- web-platform-tests/notifications/interfaces-expected.txt: Added.
- web-platform-tests/notifications/interfaces.html: Added.
- web-platform-tests/notifications/lang-expected.txt: Added.
- web-platform-tests/notifications/lang.html: Added.
- web-platform-tests/notifications/permission-expected.txt: Added.
- web-platform-tests/notifications/permission.html: Added.
- web-platform-tests/notifications/resources/icon.png: Added.
- web-platform-tests/notifications/resources/shownotification-sw.js: Added.
(self.onmessage.event.then):
- web-platform-tests/notifications/resources/w3c-import.log: Added.
- web-platform-tests/notifications/shownotification-resolve-manual.https-expected.txt: Added.
- web-platform-tests/notifications/shownotification-resolve-manual.https.html: Added.
- web-platform-tests/notifications/w3c-import.log: Added.
LayoutTests:
- resources/testharnessreport.js:
Allow notifications as this is a pre-requirement for web-platform-tests.
- 10:15 AM Changeset in webkit [216978] by
-
- 4 edits2 adds in trunk
getElementById can return a wrong elemnt when a matching element is removed during beforeload event
https://bugs.webkit.org/show_bug.cgi?id=171374
Patch by Ryosuke Niwa <rniwa@webkit.org> on 2017-05-17
Reviewed by Brent Fulgham.
Source/WebCore:
The bug was caused by HTMLLinkElement firing beforeload event inside insertedInto before the tree state is updated.
Delay the event dispatch to the post insertion callback.
Test: fast/html/link-element-removal-during-beforeload.html
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::insertedInto):
(WebCore::HTMLLinkElement::finishedInsertingSubtree):
- html/HTMLLinkElement.h:
LayoutTests:
Added a regression test for calling getElementById after removing a matching element
during beforeload event of a link element.
- fast/html/link-element-removal-during-beforeload-expected.txt: Added.
- fast/html/link-element-removal-during-beforeload.html: Added.
- 9:51 AM Changeset in webkit [216977] by
-
- 23 edits1 add in trunk
Interacting with WKHTTPCookieStores before creating WKWebViews and WKProcessPools should affect cookies used
https://bugs.webkit.org/show_bug.cgi?id=171987
Reviewed by Brady Eidson.
Source/WebCore:
Covered by new API tests.
- CMakeLists.txt:
- platform/Cookie.h:
(WebCore::Cookie::Cookie):
(WebCore::Cookie::isNull):
(WebCore::CookieHash::hash):
(WebCore::CookieHash::equal):
(WTF::HashTraits<WebCore::Cookie>::emptyValue):
(WTF::HashTraits<WebCore::Cookie>::constructDeletedValue):
(WTF::HashTraits<WebCore::Cookie>::isDeletedValue):
- platform/network/Cookie.cpp: Added.
(WebCore::Cookie::operator==):
(WebCore::Cookie::hash):
- platform/network/cocoa/CookieCocoa.mm:
(WebCore::Cookie::operator NSHTTPCookie *):
(WebCore::Cookie::operator==):
(WebCore::Cookie::hash):
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::setCookies):
Use NSHTTPCookie's hash and equality comparison to more closely match the NSHTTPCookie behavior.
Source/WebKit2:
When putting cookies in a WKHTTPCookieStore that hasn't been associated with a WKProcessPool yet, there is no
NetworkProcess into which to put the cookies. In such a case, we should store these cookies in the WebsiteDataStore
until there is a NetworkProcess.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/RemoteNetworkingContext.h:
- NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::~WebsiteDataStoreParameters):
(WebKit::WebsiteDataStoreParameters::encode):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::WebsiteDataStoreParameters): Deleted.
- Shared/WebsiteDataStoreParameters.h:
- UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::setCookie):
(API::HTTPCookieStore::deleteCookie):
- UIProcess/API/APIHTTPCookieStore.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::pageAddedToProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::pendingCookies):
(WebKit::WebsiteDataStore::addPendingCookie):
(WebKit::WebsiteDataStore::removePendingCookie):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm:
(-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- 9:23 AM Changeset in webkit [216976] by
-
- 9 edits in trunk/LayoutTests
Unreviewed, rebaseline js/dom/global-constructors-attributes.html after r216959.
- js/dom/global-constructors-attributes-expected.txt:
- platform/gtk/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- platform/win/js/dom/global-constructors-attributes-expected.txt:
- platform/wpe/js/dom/global-constructors-attributes-expected.txt:
- 9:04 AM Changeset in webkit [216975] by
-
- 6 edits102 adds in trunk/LayoutTests
Import FileAPI WPT tests.
https://bugs.webkit.org/show_bug.cgi?id=171960
Patch by Ben Kelly <ben@wanderview.com> on 2017-05-17
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/FileAPI/BlobURL/support/file_test1.js: Added.
- web-platform-tests/FileAPI/BlobURL/support/file_test2.txt: Added.
- web-platform-tests/FileAPI/BlobURL/support/file_test3.html: Added.
- web-platform-tests/FileAPI/BlobURL/support/w3c-import.log: Added.
- web-platform-tests/FileAPI/FileReader/Progress_event_bubbles_cancelable-expected.txt: Added.
- web-platform-tests/FileAPI/FileReader/Progress_event_bubbles_cancelable.html: Added.
- web-platform-tests/FileAPI/FileReader/support/file_test1.txt: Added.
- web-platform-tests/FileAPI/FileReader/support/w3c-import.log: Added.
- web-platform-tests/FileAPI/FileReader/w3c-import.log: Added.
- web-platform-tests/FileAPI/FileReaderSync.worker-expected.txt: Added.
- web-platform-tests/FileAPI/FileReaderSync.worker.html: Added.
- web-platform-tests/FileAPI/FileReaderSync.worker.js: Added.
(setup):
(test):
- web-platform-tests/FileAPI/OWNERS: Added.
- web-platform-tests/FileAPI/blob/Blob-XHR-revoke-expected.txt: Added.
- web-platform-tests/FileAPI/blob/Blob-XHR-revoke.html: Added.
- web-platform-tests/FileAPI/blob/Blob-constructor-expected.txt: Added.
- web-platform-tests/FileAPI/blob/Blob-constructor.html: Added.
- web-platform-tests/FileAPI/blob/Blob-in-worker.worker-expected.txt: Added.
- web-platform-tests/FileAPI/blob/Blob-in-worker.worker.html: Added.
- web-platform-tests/FileAPI/blob/Blob-in-worker.worker.js: Added.
(async_test):
- web-platform-tests/FileAPI/blob/Blob-slice-expected.txt: Added.
- web-platform-tests/FileAPI/blob/Blob-slice-overflow-expected.txt: Added.
- web-platform-tests/FileAPI/blob/Blob-slice-overflow.html: Added.
- web-platform-tests/FileAPI/blob/Blob-slice.html: Added.
- web-platform-tests/FileAPI/blob/w3c-import.log: Added.
- web-platform-tests/FileAPI/file/File-constructor-expected.txt: Added.
- web-platform-tests/FileAPI/file/File-constructor.html: Added.
- web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker-expected.txt: Added.
- web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker.html: Added.
- web-platform-tests/FileAPI/file/Worker-read-file-constructor.worker.js: Added.
(async_test):
- web-platform-tests/FileAPI/file/w3c-import.log: Added.
- web-platform-tests/FileAPI/fileReader-expected.txt: Added.
- web-platform-tests/FileAPI/fileReader.html: Added.
- web-platform-tests/FileAPI/filelist-section/filelist-expected.txt: Added.
- web-platform-tests/FileAPI/filelist-section/filelist.html: Added.
- web-platform-tests/FileAPI/filelist-section/support/upload.txt: Added.
- web-platform-tests/FileAPI/filelist-section/support/upload.zip: Added.
- web-platform-tests/FileAPI/filelist-section/support/w3c-import.log: Added.
- web-platform-tests/FileAPI/filelist-section/w3c-import.log: Added.
- web-platform-tests/FileAPI/historical.https-expected.txt: Added.
- web-platform-tests/FileAPI/historical.https.html: Added.
- web-platform-tests/FileAPI/idlharness-expected.txt: Added.
- web-platform-tests/FileAPI/idlharness.html: Added.
- web-platform-tests/FileAPI/idlharness.idl: Added.
- web-platform-tests/FileAPI/idlharness.worker-expected.txt: Added.
- web-platform-tests/FileAPI/idlharness.worker.html: Added.
- web-platform-tests/FileAPI/idlharness.worker.js: Added.
(request.onload):
- web-platform-tests/FileAPI/reading-data-section/Determining-Encoding-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/Determining-Encoding.html: Added.
- web-platform-tests/FileAPI/reading-data-section/FileReader-event-handler-attributes-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/FileReader-event-handler-attributes.html: Added.
- web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_abort-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_abort.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_error-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_error.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsArrayBuffer-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsArrayBuffer.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsText-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readAsText.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readystate-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_readystate.html: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_result-expected.txt: Added.
- web-platform-tests/FileAPI/reading-data-section/filereader_result.html: Added.
- web-platform-tests/FileAPI/reading-data-section/support/blue-100x100.png: Added.
- web-platform-tests/FileAPI/reading-data-section/support/w3c-import.log: Added.
- web-platform-tests/FileAPI/reading-data-section/w3c-import.log: Added.
- web-platform-tests/FileAPI/support/Blob.js: Added.
(test_blob):
- web-platform-tests/FileAPI/support/document-domain-setter.sub.html: Added.
- web-platform-tests/FileAPI/support/historical-serviceworker.js: Added.
(test):
- web-platform-tests/FileAPI/support/incumbent.sub.html: Added.
- web-platform-tests/FileAPI/support/upload.txt: Added.
- web-platform-tests/FileAPI/support/url-origin.html: Added.
- web-platform-tests/FileAPI/support/w3c-import.log: Added.
- web-platform-tests/FileAPI/url/blob-url-in-sandboxed-iframe-expected.txt: Added.
- web-platform-tests/FileAPI/url/blob-url-in-sandboxed-iframe.html: Added.
- web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt: Added.
- web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html: Added.
- web-platform-tests/FileAPI/url/origin.sub-expected.txt: Added.
- web-platform-tests/FileAPI/url/origin.sub.html: Added.
- web-platform-tests/FileAPI/url/url_createobjecturl_blob-expected.txt: Added.
- web-platform-tests/FileAPI/url/url_createobjecturl_blob.html: Added.
- web-platform-tests/FileAPI/url/url_xmlhttprequest-expected.txt: Added.
- web-platform-tests/FileAPI/url/url_xmlhttprequest.html: Added.
- web-platform-tests/FileAPI/url/url_xmlhttprequest_img-expected.html: Added.
- web-platform-tests/FileAPI/url/url_xmlhttprequest_img.html: Added.
- web-platform-tests/FileAPI/url/w3c-import.log: Added.
- web-platform-tests/FileAPI/w3c-import.log: Added.
LayoutTests:
- 8:51 AM Changeset in webkit [216974] by
-
- 18 edits in trunk
Add a RuntimeEnabledFeature for display: contents, defaulted to false.
https://bugs.webkit.org/show_bug.cgi?id=171984
Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-17
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/innerText/getter-expected.txt:
Source/WebCore:
The "defaulted to false" is not only because there are spec issues,
but because I ran the WPT suite, and there was a fair amount of
crashes and messed render trees.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDisplayContentsEnabled):
(WebCore::RuntimeEnabledFeatures::displayContentsEnabled):
Source/WebKit/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences displayContentsEnabled]):
(-[WebPreferences setDisplayContentsEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKit2:
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetDisplayContentsEnabled):
(WKPreferencesGetDisplayContentsEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
- 8:12 AM Changeset in webkit [216973] by
-
- 4 edits2 adds in trunk
Regression (198943): <marquee> shouldn't wrap text
https://bugs.webkit.org/show_bug.cgi?id=172217
Reviewed by Andreas Kling.
Source/WebCore:
RenderMarquee::updateMarqueeStyle mutated the style and then expected it to inherit to children.
This doesn't work anymore because render tree construction is now separated from style resolution
where inheritance happens.
Test: fast/html/marquee-child-wrap.html
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
Implement marquee hacks in adjustRenderStyle instead. This can't do the childrenInline check
the previous code had but it wasn't working anyway (there are no children when updateMarqueeStyle
gets called).
- rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::updateMarqueeStyle):
This no longer needs mutable style.
LayoutTests:
- fast/html/marquee-child-wrap-expected.html: Added.
- fast/html/marquee-child-wrap.html: Added.
- 4:58 AM Changeset in webkit [216972] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r216966): fast/shadow-dom/slot-crash.html started to fail
Unreviewed test gardening.
Update test results after the fix for:
Do not skip <slot> children when collecting content for innerText.
https://bugs.webkit.org/show_bug.cgi?id=172113
<rdar://problem/30362324>
- fast/shadow-dom/slot-crash-expected.txt: Update results to add
a space to the end of the output.
- 1:01 AM Changeset in webkit [216971] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix the build with MEDIA_STREAM disabled after r216952.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
- 12:18 AM Changeset in webkit [216970] by
-
- 3 edits in trunk/Source/WebKit2
[Threaded Compositor] SHOULD NEVER BE REACHED in WebKit::CompositingRunLoop::updateCompleted
https://bugs.webkit.org/show_bug.cgi?id=172167
Reviewed by Michael Catanzaro.
This is still happening, even after r216182, less often but still happens. There are two conditions in which
this can happen:
- Again in force repaint. r216182 fixed the case of force repaint called when update state is completed, but it can also crash if update state is inProgress or PendingAfterCompletion when m_coordinateUpdateCompletionWithClient is true.
- When the threaded compositor is invalidated right after renderLayerTree() starts, but before it finishes.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate): Invalidate the refresh monitor right after stopping updates in the
compositing run loop to ensure no more updates are scheduled.
(WebKit::ThreadedCompositor::renderLayerTree): Check the scene is still active before calling sceneUpdateFinished().
(WebKit::ThreadedCompositor::updateSceneState): Do not update m_coordinateUpdateCompletionWithClient when in
force repaint.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::dispatchDisplayRefreshCallback): Return early if the monitor has been invalidated.
May 16, 2017:
- 10:26 PM Changeset in webkit [216969] by
-
- 3 edits in trunk/LayoutTests
[macOS Debug wk2] Layout test svg/animations/animations-paused-in-background-page-iframe.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=172183
Reviewed by Andreas Kling.
Fix test flakiness by using shouldBecome() instead of relying on a 30ms timer.
- svg/animations/animations-paused-in-background-page-iframe-expected.txt:
- svg/animations/animations-paused-in-background-page-iframe.html:
- 10:04 PM Changeset in webkit [216968] by
-
- 7 edits in trunk/Source/WebCore
Remove C-style casts by using xmlDocPtr instead of void*
<https://webkit.org/b/172189>
Reviewed by Alex Christensen.
- dom/TransformSource.h: Fix whitespace indentation.
(typedef PlatformTransformSource): Use xmlDocPtr not void*.
- dom/TransformSourceLibxslt.cpp:
(WebCore::TransformSource::~TransformSource): Remove cast.
- xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::document): Remove cast.
- xml/XSLTProcessorLibxslt.cpp:
(WebCore::xmlDocPtrFromNode): Remove casts.
- xml/parser/XMLDocumentParser.h:
(WebCore::xmlDocPtrForString): Update declaration to return
xmlDocPtr not void*.
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doEnd): Change type of local
variable from void* to xmlDocPtr.
(WebCore::xmlDocPtrForString): Update to return xmlDocPtr
not void*.
- 8:22 PM Changeset in webkit [216967] by
-
- 29 edits3 copies2 adds in trunk
Bring Notification.idl up to spec
https://bugs.webkit.org/show_bug.cgi?id=172156
Patch by Sam Weinig <sam@webkit.org> on 2017-05-16
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/tests/notifications/notification.html
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
Add new files.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::create):
(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::directionString): Deleted.
(WebCore::Notification::permission): Deleted.
(WebCore::Notification::permissionString): Deleted.
- Modules/notifications/Notification.h:
- Modules/notifications/Notification.idl:
- Modules/notifications/NotificationClient.h:
- Modules/notifications/NotificationDirection.h: Added.
- Modules/notifications/NotificationPermission.h: Added.
- Modules/notifications/NotificationPermission.idl: Added.
- Modules/notifications/NotificationPermissionCallback.h:
- Modules/notifications/NotificationPermissionCallback.idl:
Bring up to spec, replacing DOMStrings with enums where appropriate and adding
additional readonly properties to Notification to mirror options provided
in construction.
Source/WebKit/mac:
- WebCoreSupport/WebNotificationClient.h:
- WebCoreSupport/WebNotificationClient.mm:
(generateNotificationID):
(WebNotificationClient::show):
(WebNotificationClient::cancel):
(WebNotificationClient::clearNotifications):
(WebNotificationClient::notificationObjectDestroyed):
(WebNotificationClient::requestPermission):
(WebNotificationClient::hasPendingPermissionRequests):
(WebNotificationClient::checkPermission):
(-[WebNotificationPolicyListener allow]):
(-[WebNotificationPolicyListener deny]):
- WebView/WebNotification.mm:
(-[WebNotification iconURL]):
(-[WebNotification dir]):
Simplify #ifdefs and update for enum vs String usage.
Source/WebKit2:
- Shared/WebCoreArgumentCoders.h:
- UIProcess/API/C/WKNotification.cpp:
(WKNotificationCopyDir):
- UIProcess/Notifications/WebNotification.cpp:
(WebKit::WebNotification::WebNotification):
- UIProcess/Notifications/WebNotification.h:
(WebKit::WebNotification::create):
(WebKit::WebNotification::dir):
- UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::show):
- UIProcess/Notifications/WebNotificationManagerProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showNotification):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::startRequest):
(WebKit::NotificationPermissionRequestManager::permissionLevel):
(WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
- WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::policyForOrigin):
(WebKit::WebNotificationManager::show):
- WebProcess/WebCoreSupport/WebNotificationClient.cpp:
(WebKit::WebNotificationClient::checkPermission):
- WebProcess/WebCoreSupport/WebNotificationClient.h:
Update for enum vs String usage.
LayoutTests:
- http/tests/notifications/notification-expected.txt: Added.
- http/tests/notifications/notification.html: Added.
Add test for basic Notification API functionality.
- 7:33 PM Changeset in webkit [216966] by
-
- 5 edits2 adds in trunk
Do not skip <slot> children when collecting content for innerText.
https://bugs.webkit.org/show_bug.cgi?id=172113
<rdar://problem/30362324>
Reviewed by Ryosuke Niwa and Brent Fulgham.
Source/WebCore:
"display: contents" elements do not generate renderers but their children might.
This patch ensure that we don't skip them while collecting text content.
Test: fast/text/inner-text-should-include-slot-subtree.html
- editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
LayoutTests:
- fast/text/inner-text-should-include-slot-subtree-expected.txt: Added.
- fast/text/inner-text-should-include-slot-subtree.html: Added.
- 7:11 PM Changeset in webkit [216965] by
-
- 2 edits in trunk/Source/WebCore
GCController::garbageCollectNowIfNotDoneRecently should request Async Full GCs
https://bugs.webkit.org/show_bug.cgi?id=172204
Reviewed by Saam Barati.
No new tests because existing tests will tell us if there is a problem.
The goal of this change is to reduce the likelihood that we block for a GC. We want it to be
benchmark-neutral.
It's a 0.14% speed-up on JetStream with 24% probability.
It's a 0.12% slow-down on PLT3 with 43% probability.
So it's neutral on my machine.
- bindings/js/GCController.cpp:
(WebCore::GCController::garbageCollectNowIfNotDoneRecently):
- 6:17 PM Changeset in webkit [216964] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, fix LayoutTests/plugins/navigator-plugin-crash.html
<rdar://problem/32236478>
- plugins/navigator-plugin-crash-expected.txt:
- plugins/navigator-plugin-crash.html:
- 6:01 PM Changeset in webkit [216963] by
-
- 2 edits in trunk/Tools
Fix the build
- TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):
- 5:53 PM Changeset in webkit [216962] by
-
- 3 edits in trunk/Source/WebCore
[macOS] REGRESSION: Drag images for links with right-to-left titles are incorrect (172006)
https://bugs.webkit.org/show_bug.cgi?id=172006
<rdar://problem/32165137>
Reviewed by Dean Jackson.
- platform/mac/DragImageMac.mm:
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::createDragImageForLink):
(WebCore::LinkImageLayout::addLine): Deleted.
- platform/spi/cocoa/CoreTextSPI.h:
Set and paint the entire frame as a single unit, making use of the
CTFrameMaximumNumberOfLines attribute to limit the number of lines.
This gives CoreText power over text alignment and makes RTL text lay
out correctly.
- 5:51 PM Changeset in webkit [216961] by
-
- 2 edits in trunk/Tools
PageVisibilityStateWithWindowChanges tests sometimes time out
https://bugs.webkit.org/show_bug.cgi?id=172202
<rdar://problem/29653266>
Reviewed by Dean Jackson.
- TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):
Make sure the window is miniaturizable, otherwise, in some cases, miniaturize: will not work.
- 5:12 PM Changeset in webkit [216960] by
-
- 2 edits in trunk/Source/bmalloc
REGRESSION(r216763): JetStream is 1% slower on Mac
https://bugs.webkit.org/show_bug.cgi?id=172124
Reviewed by Filip Pizlo.
It appears that changing maxScavengeSleepDuration from 512 to 250ms in r216763 is
responsible for the regression.
- bmalloc/Sizes.h:
- 4:45 PM Changeset in webkit [216959] by
-
- 24 edits13 adds2 deletes in trunk
Implement DOMMatrix / DOMMatrixReadOnly
https://bugs.webkit.org/show_bug.cgi?id=110001
Reviewed by Sam Weinig and Simon Fraser.
LayoutTests/imported/w3c:
Rebaseline web-platform-tests now that more checks are passing.
- web-platform-tests/css/geometry-1/DOMMatrix-001-expected.txt:
Most checks are now passing. The few remaining failures seem to be due to our
parsing of the input CSS string now matching the specification. This behavior
is not new to this patch as I re-used exactly the same logic as for
WebKitCSSMatrix's parsing of the input string.
- web-platform-tests/css/geometry-1/DOMMatrix-002-expected.txt:
- web-platform-tests/css/geometry-1/DOMMatrix-003-expected.txt:
- web-platform-tests/css/geometry-1/DOMMatrix-a-f-alias-expected.txt:
All checks are now passing.
- web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt:
Most checks are now passing. The remaining failures are due to DOMMatrixReadOnly's
transformPoint() / toFloat32Array() / toFloat64Array() not being implemented in
this patch. I think we can take care of those in a follow-up.
- web-platform-tests/css/geometry-1/DOMPoint-002-expected.txt:
Fails differently now that we support DOMMatrix. The test goes further but still
fails because DOMPoint.matrixTransform() is not implemented.
- web-platform-tests/css/geometry-1/WebKitCSSMatrix-expected.txt:
One more check is passing now that we implement DOMMatrix. The remaining failure is
due to WebKitCSSMatrix not being an alias to DOMMatrix yet. I'd rather do this in a
follow-up.
- web-platform-tests/css/geometry-1/historical-expected.txt:
A lot of new passes.
- web-platform-tests/css/geometry-1/structured-serialization-expected.txt:
The test fails differently now that we support DOMMatrix. The test still fails because
we do not support yet the structured serialization of DOMMatrix objects. It appears we
do not support this for other types in this spec either (e.g. DOMPoint). I filed:
https://bugs.webkit.org/show_bug.cgi?id=172191
- web-platform-tests/css/geometry-1/DOMMatrix-stringifier-expected.txt: Added.
- web-platform-tests/css/geometry-1/DOMMatrix-stringifier.html: Added.
Import new test from upstream. The WebKitCSSMatrix failures are due to our
WebKitCSSMatrix implementation not complying with the standard. As per the
standard, WebKitCSSMatrix is supposed to become an alias to DOMMatrix. If we
do this aliasing (in a follow-up), then those tests will start passing.
- web-platform-tests/css/geometry-1/support/dommatrix-test-util.js: Added.
Add missing script that was missed by the importer when I initially imported the test
suite from upstream.
Source/WebCore:
Implement DOMMatrix / DOMMatrixReadOnly as per:
For now, these new types co-exist with WebKitCSSMatrix / SVGMatrix. However, in the future,
WebKitCSSMatrix / SVGMatrix are supposed to become aliases to DOMMatrix.
Most of it has been implemented. What remaining to be implemented is:
- Make WebKitCSSMatrix / SVGMatrix aliases to DOMMatrix
- DOMMatrix.fromFloat32Array() / fromFloat64Array()
- DOMMatrixReadOnly.fromFloat32Array() / fromFloat64Array() / toFloat32Array() / toFloat64Array()
- DOMMatrixReadOnly.transformPoint().
Tests: imported/w3c/web-platform-tests/css/geometry-1/*
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/scripts/CodeGeneratorJS.pm:
- bindings/scripts/test/JS/JSTestObj.cpp:
Fix a bug in the bindings generator causing the generator code for
"Constructor(optional (DOMString or sequence<unrestricted double>) init)" to be wrong
and not build.
- css/DOMMatrix.cpp: Added.
(WebCore::DOMMatrix::DOMMatrix):
(WebCore::DOMMatrix::fromMatrix):
(WebCore::DOMMatrix::multiplySelf):
(WebCore::DOMMatrix::preMultiplySelf):
(WebCore::DOMMatrix::translateSelf):
(WebCore::DOMMatrix::scaleSelf):
(WebCore::DOMMatrix::scale3dSelf):
(WebCore::DOMMatrix::rotateSelf):
(WebCore::DOMMatrix::rotateFromVectorSelf):
(WebCore::DOMMatrix::rotateAxisAngleSelf):
(WebCore::DOMMatrix::skewXSelf):
(WebCore::DOMMatrix::skewYSelf):
(WebCore::DOMMatrix::invertSelf):
(WebCore::DOMMatrix::setMatrixValueForBindings):
- css/DOMMatrix.h: Added.
(WebCore::DOMMatrix::create):
(WebCore::DOMMatrix::setA):
(WebCore::DOMMatrix::setB):
(WebCore::DOMMatrix::setC):
(WebCore::DOMMatrix::setD):
(WebCore::DOMMatrix::setE):
(WebCore::DOMMatrix::setF):
(WebCore::DOMMatrix::setM11):
(WebCore::DOMMatrix::setM12):
(WebCore::DOMMatrix::setM13):
(WebCore::DOMMatrix::setM14):
(WebCore::DOMMatrix::setM21):
(WebCore::DOMMatrix::setM22):
(WebCore::DOMMatrix::setM23):
(WebCore::DOMMatrix::setM24):
(WebCore::DOMMatrix::setM31):
(WebCore::DOMMatrix::setM32):
(WebCore::DOMMatrix::setM33):
(WebCore::DOMMatrix::setM34):
(WebCore::DOMMatrix::setM41):
(WebCore::DOMMatrix::setM42):
(WebCore::DOMMatrix::setM43):
(WebCore::DOMMatrix::setM44):
- css/DOMMatrix.idl: Added.
- css/DOMMatrixInit.h: Added.
- css/DOMMatrixInit.idl: Added.
- css/DOMMatrixReadOnly.cpp: Added.
(WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly):
(WebCore::DOMMatrixReadOnly::validateAndFixup):
(WebCore::DOMMatrixReadOnly::fromMatrix):
(WebCore::DOMMatrixReadOnly::isIdentity):
(WebCore::DOMMatrixReadOnly::setMatrixValue):
(WebCore::DOMMatrixReadOnly::translate):
(WebCore::DOMMatrixReadOnly::flipX):
(WebCore::DOMMatrixReadOnly::flipY):
(WebCore::DOMMatrixReadOnly::multiply):
(WebCore::DOMMatrixReadOnly::scale):
(WebCore::DOMMatrixReadOnly::scale3d):
(WebCore::DOMMatrixReadOnly::rotate):
(WebCore::DOMMatrixReadOnly::rotateFromVector):
(WebCore::DOMMatrixReadOnly::rotateAxisAngle):
(WebCore::DOMMatrixReadOnly::skewX):
(WebCore::DOMMatrixReadOnly::skewY):
(WebCore::DOMMatrixReadOnly::inverse):
(WebCore::DOMMatrixReadOnly::toString):
- css/DOMMatrixReadOnly.h: Added.
(WebCore::DOMMatrixReadOnly::create):
(WebCore::DOMMatrixReadOnly::a):
(WebCore::DOMMatrixReadOnly::b):
(WebCore::DOMMatrixReadOnly::c):
(WebCore::DOMMatrixReadOnly::d):
(WebCore::DOMMatrixReadOnly::e):
(WebCore::DOMMatrixReadOnly::f):
(WebCore::DOMMatrixReadOnly::m11):
(WebCore::DOMMatrixReadOnly::m12):
(WebCore::DOMMatrixReadOnly::m13):
(WebCore::DOMMatrixReadOnly::m14):
(WebCore::DOMMatrixReadOnly::m21):
(WebCore::DOMMatrixReadOnly::m22):
(WebCore::DOMMatrixReadOnly::m23):
(WebCore::DOMMatrixReadOnly::m24):
(WebCore::DOMMatrixReadOnly::m31):
(WebCore::DOMMatrixReadOnly::m32):
(WebCore::DOMMatrixReadOnly::m33):
(WebCore::DOMMatrixReadOnly::m34):
(WebCore::DOMMatrixReadOnly::m41):
(WebCore::DOMMatrixReadOnly::m42):
(WebCore::DOMMatrixReadOnly::m43):
(WebCore::DOMMatrixReadOnly::m44):
(WebCore::DOMMatrixReadOnly::is2D):
(WebCore::DOMMatrixReadOnly::fromMatrixHelper):
- css/DOMMatrixReadOnly.idl: Added.
- css/WebKitCSSMatrix.h:
- css/WebKitCSSMatrix.idl:
- svg/SVGMatrix.h:
- svg/SVGMatrix.idl:
LayoutTests:
Drop test I previously added now that a better version landed in web-platform-tests
and was re-imported in this patch.
- fast/css/matrix-stringifier-expected.txt: Removed.
- fast/css/matrix-stringifier.html: Removed.
- 4:44 PM Changeset in webkit [216958] by
-
- 5 edits in branches/safari-604.1.21-branch/Source
Cherry-pick r216947. rdar://problem/32200017
- 4:44 PM Changeset in webkit [216957] by
-
- 7 edits in branches/safari-604.1.21-branch
Cherry-pick r216892. rdar://problem/31513869
- 4:44 PM Changeset in webkit [216956] by
-
- 3 edits in branches/safari-604.1.21-branch/Source/WebCore
Cherry-pick r216257. rdar://problem/32014052
- 4:19 PM Changeset in webkit [216955] by
-
- 3 edits in trunk/Tools
webkitpy: Start servers before setting-up for testing
https://bugs.webkit.org/show_bug.cgi?id=172176
<rdar://problem/32225538>
Reviewed by Alexey Proskuryakov.
On-device testing requires that servers are started before ports set-up their
test environments.
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.init): Start servers when initializing LayoutTestRunner.
(LayoutTestRunner.run_tests): Move the starting of servers to the initializer.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.init): Delay construction of the test runner until we can determine
if servers need to be started.
(Manager.run): Determine if servers need to be started and construct the test runner.
(Manager._run_tests): Move the determination of servers to run into Manager.run.
- 4:10 PM Changeset in webkit [216954] by
-
- 2 edits in trunk/Source/WebCore
[MediaStream] AudioSampleBufferList::zeroABL takes byte count, not sample count
https://bugs.webkit.org/show_bug.cgi?id=172194
<rdar://problem/32233799>
Reviewed by Jer Noble.
- platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:
(WebCore::AudioTrackPrivateMediaStreamCocoa::render): Pass number of bytes to zero,
not number of samples.
- 4:06 PM Changeset in webkit [216953] by
-
- 2 edits in trunk/Source/WebCore
WorkerRunLoop::Task::performTask() needs to null check context->script() before use.
https://bugs.webkit.org/show_bug.cgi?id=172193
<rdar://problem/32225346>
Reviewed by Filip Pizlo.
According to https://build-safari.apple.com/results/Trunk%20Fuji%20GuardMalloc%20Production%20WK2%20Tests/r216929_459760e0918316187c8e52c6585a3a9ba9181204%20(12066)/results.html,
we see a crash with this crash trace:
Thread 13 Crashed:: WebCore: Worker
0 com.apple.WebCore 0x00000001099607b2 WebCore::WorkerScriptController::isTerminatingExecution() const + 18
1 com.apple.WebCore 0x000000010995ebbf WebCore::WorkerRunLoop::runCleanupTasks(WebCore::WorkerGlobalScope*) + 143
2 com.apple.WebCore 0x000000010995e80f WebCore::WorkerRunLoop::run(WebCore::WorkerGlobalScope*) + 111
3 com.apple.WebCore 0x00000001099621b6 WebCore::WorkerThread::workerThread() + 742
4 com.apple.JavaScriptCore 0x000000010a964b92 WTF::threadEntryPoint(void*) + 178
5 com.apple.JavaScriptCore 0x000000010a964a69 WTF::wtfThreadEntryPoint(void*) + 121
6 libsystem_pthread.dylib 0x00007fffbdb5caab _pthread_body + 180
7 libsystem_pthread.dylib 0x00007fffbdb5c9f7 _pthread_start + 286
8 libsystem_pthread.dylib 0x00007fffbdb5c1fd thread_start + 13
... and the crashing address is:
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000022
0x0000000000000022 is the offset of m_scheduledTerminationMutex in the
WorkerScriptController. This means that WorkerScriptController::isTerminatingExecution()
is passed a NULL this pointer. This means that it's possible to have a race
where a WorkerRunLoop::Task gets enqueued beyond the Cleanup task that deletes the
context->script(). As a result, WorkerRunLoop::Task::performTask() (called by
runCleanupTasks()) may see a null context->script().
Hence, WorkerRunLoop::Task::performTask() should null check context->script()
before invoking the isTerminatingExecution() query on it.
No new tests because this is already covered by existing tests.
- workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::Task::performTask):
- 3:49 PM Changeset in webkit [216952] by
-
- 13 edits in trunk/Source
Modernize WebKit2 getUserMedia passing of parameters
https://bugs.webkit.org/show_bug.cgi?id=172161
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-16
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior.
- platform/mediastream/RealtimeMediaSourceCenter.h: Using WTF::Function to enable capture Ref<>.
Source/WebKit2:
Passing SecurityOrigin as SecurityOriginData through IPC instead of Strings.
Making more use of Ref<> instead of RefPtr<>.
- UIProcess/UserMediaPermissionCheckProxy.cpp:
(WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy):
(WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo):
- UIProcess/UserMediaPermissionCheckProxy.h:
(WebKit::UserMediaPermissionCheckProxy::create):
(WebKit::UserMediaPermissionCheckProxy::userMediaDocumentSecurityOrigin):
(WebKit::UserMediaPermissionCheckProxy::topLevelDocumentSecurityOrigin):
(WebKit::UserMediaPermissionCheckProxy::completionHandler):
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::FrameAuthorizationState::FrameAuthorizationState):
(WebKit::FrameAuthorizationState::ensureSecurityOriginsAreEqual):
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
- UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
(WebKit::WebPageProxy::enumerateMediaDevicesForFrame):
(WebKit::WebPageProxy::requestNotificationPermission):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):
- 3:27 PM Changeset in webkit [216951] by
-
- 3 edits in trunk/Source/WebCore
Captions and subtitles not showing up in picture-in-picture for MSE content.
https://bugs.webkit.org/show_bug.cgi?id=172145
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-16
Reviewed by Eric Carlson.
No new tests as this has no affect on the DOM.
Add TextTrackRepresentation code from MediaPlayerPrivateAVFoundationObj to MediaPlayerPrivateMediaSourceAVFObjc.
This moves the TextTrackRepresentation platfrom layer into the fullscreen container layer when going into
pip for fullscreen, allowing the captions to be visible.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenFrame):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::requiresTextTrackRepresentation):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation):
- 3:27 PM Changeset in webkit [216950] by
-
- 7 edits in branches/safari-604.1.21-branch/Source
Versioning.
- 3:20 PM Changeset in webkit [216949] by
-
- 2 edits in trunk/Source/WebCore
WebCore::leakCGColor() needs CF_RETURNS_RETAINED annotation
<https://webkit.org/b/172190>
Reviewed by Simon Fraser.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::leakCGColor): Annotate with CF_RETURNS_RETAINED since
it does not follow the CF naming convention, which means the
expected behavior can't be inferred by the clang static
analyzer.
- 2:54 PM Changeset in webkit [216948] by
-
- 4 edits1 add in trunk
[DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
https://bugs.webkit.org/show_bug.cgi?id=172115
Reviewed by Saam Barati.
JSTests:
- stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
(shouldBe):
(unknown):
(readWord1):
(readWord2):
(readWord3):
(readWord4):
Source/JavaScriptCore:
In Fixup phase, we attempt to fold MakeRope to Identity (or reduce arguments) by dropping
empty strings. However, when we are in Fixup phase, we do not have much information about
constant values.
In ARES-6 Babylon, we find that we can constant-fold MakeRope by using constants figured
out by CFA. Without it, Babylon repeatedly produces rope strings. To fix this, we introduce
MakeRope handling in constant folding phase.
It shows 7.5% performance improvement in ARES-6 Babylon steadyState.
Before:
firstIteration: 50.02 +- 14.56 ms
averageWorstCase: 26.52 +- 4.52 ms
steadyState: 8.15 +- 0.23 ms
After:
firstIteration: 49.08 +- 12.90 ms
averageWorstCase: 25.16 +- 3.82 ms
steadyState: 7.58 +- 0.21 ms
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- 2:18 PM Changeset in webkit [216947] by
-
- 5 edits in trunk/Source
RealtimeOutgoingVideoSource should support sinkWants for rotation
https://bugs.webkit.org/show_bug.cgi?id=172123
<rdar://problem/32200017>
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-16
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
- Source/webrtc/api/video/i420_buffer.h: Exporting rotate routine.
Source/WebCore:
Covered by manual testing.
- platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::AddOrUpdateSink): Triggering pixel rotation based on sink.
(WebCore::RealtimeOutgoingVideoSource::sendFrame): Doing the rotation using libwebrtc API.
- platform/mediastream/mac/RealtimeOutgoingVideoSource.h:
- 2:16 PM Changeset in webkit [216946] by
-
- 12 edits8 adds in trunk/PerformanceTests
Update to Speedometer 2.0 w/updated frameworks + new workloads
https://bugs.webkit.org/show_bug.cgi?id=170513
Patch by Addy Osmani <addyosmani@gmail.com> on 2017-05-16
Reviewed by Ryosuke Niwa.
Refresh test runner and fix apps to work with it.
- Speedometer/InteractiveRunner.html:
(parseQueryString): Adds support for startAutomatically query parameter.
- Speedometer/resources/tests.js:
(triggerEnter): Refactor event triggering behavior for tests.
- Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html:
(CSS): Drop reference to extraneous stylesheet in Angular TodoMVC.
- Speedometer/resources/todomvc/architecture-examples/emberjs/assets/todomvc.js:
- Speedometer/resources/todomvc/architecture-examples/emberjs/index.html:
(base): Enable Ember TodoMVC to be run from any directory/level.
- Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/memory.js:
(localStorageMemory): Correct import path and switch to window.localStorageMemory to fix Ember failures.
- Speedometer/resources/todomvc/architecture-examples/emberjs/source/app/services/repo.js:
- Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html:
- Speedometer/resources/todomvc/architecture-examples/jquery/index.html:
- Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE: Added.
(LICENSE): Add missing metadata and LICENSE files as part of director.js package for jQuery TodoMVC
- Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json: Added.
- Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js: Add missing
director.js dependency for jQuery TodoMVC implementation.
- Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js: Added.
- Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js: Added.
- Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json: Added.
- Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Fix path to built Elm TodoMVC scripts.
- 2:02 PM Changeset in webkit [216945] by
-
- 2 edits in trunk/Source/WebKit2
Unused lambdas in UserMediaPermissionRequestManagerProxy.cpp
<https://webkit.org/b/172179>
Reviewed by Eric Carlson.
Fixes unused lambda warnings found with newer clang:
Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:309:46: error: lambda capture 'userMediaID' is not used [-Werror,-Wunused-lambda-capture]
auto validateConstraintsHandler = [this, userMediaID, validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), audioConstraints = WebCore::MediaConstraints(audioConstraints), videoConstraints = WebCore::MediaConstraints(videoConstraints)](String&& deviceIdentifierHashSalt) mutable {
Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:318:41: error: lambda capture 'userMediaID' is not used [-Werror,-Wunused-lambda-capture]
auto haveDeviceSaltHandler = [this, userMediaID, frameID, validateConstraintsHandler = WTFMove(validateConstraintsHandler)](uint64_t userMediaID, String&& deviceIdentifierHashSalt, bool originHasPersistentAccess) mutable {
Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:318:54: error: lambda capture 'frameID' is not used [-Werror,-Wunused-lambda-capture]
auto haveDeviceSaltHandler = [this, userMediaID, frameID, validateConstraintsHandler = WTFMove(validateConstraintsHandler)](uint64_t userMediaID, String&& deviceIdentifierHashSalt, bool originHasPersistentAccess) mutable {
Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:362:37: error: lambda capture 'userMediaID' is not used [-Werror,-Wunused-lambda-capture]
auto completionHandler = [this, userMediaID](uint64_t userMediaID, String&& deviceIdentifierHashSalt, bool originHasPersistentAccess) {
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
- Remove unused lambdas.
- 1:26 PM Changeset in webkit [216944] by
-
- 23 edits4 copies10 adds in trunk
REGRESSION(r212513): LastResort is platform-dependent, so its semantics should not be required to perform font loading correctly.
https://bugs.webkit.org/show_bug.cgi?id=168487
Reviewed by Antti Koivisto.
Source/WebCore:
There are three ways a Web author can chain multiple font files together:
- Multiple entries in the "src" descriptor in an @font-face rule
- Multiple @font-face rules with the same "font-family" descriptor
- Multiple entries in the "font-family" property on an element
Before r212513, the code which iterated across #2 and #3 above could have
triggered each item in the chain to download. r212513 tried to solve this
by using LastResort as the interstitial font used during downloads, because
LastResort supports every character and therefore solves #3 above. However,
this change had a few problems:
- Previously, our code would try to avoid using the interstitial font for
layout or rendering whenever possible (because one of the chains above may
have named a local font which would be better to use). In order to use the
benefits of LastResort, I had to remove this avoidance logic and make
WebKit try to use the interstitial font as often as possible. However, due
to the large metrics of LastResort, this means that offsetWidth queries
during font loading would be wildly inaccurate, causing Google Docs to break.
- It also means that canvas drawing during font loading would actually draw
LastResort, causing Bing maps to break.
- LastResort is platform-specific, so only platforms which have it would
actually be able to load fonts correctly.
Instead, we should keep the older logic about avoiding using the
interstitial font so that loading has a better experience for the user.
We solve the unnecessary download problem by giving our loading code a
downloading policy enum, which has two values: allow downloads or forbid
downloads. Whenever our loading code returns the interstitial font, we
continue our search, but we change the policy to forbid downloads.
There is one piece of subtlety, though: It is more common for web authors
to put good fallbacks in the "font-family" property than in the "src"
descriptor inside @font-face. This means that we shouldn't exhaustively
search through the @font-face src list first. Instead, we should look
through the src list until we hit a non-local font, and then immediately
start looking through the other other chains.
Tests: fast/text/font-download-font-face-src-list.html
fast/text/font-download-font-family-property.html
fast/text/font-download-remote-fallback-all.html
fast/text/font-interstitial-invisible-width-while-loading.html
fast/text/font-weight-download-3.html
fast/text/web-font-load-fallback-during-loading-2.html
fast/text/web-font-load-invisible-during-loading.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::fontLoadEventOccurred): Implement support for
the font download policy.
(WebCore::CSSFontFace::setStatus): After 3 seconds of loading, we
will start drawing the fallback font. However, for testing, we have an
internal setting to make this switch happen immediately. This patch now
requires that this internal switch happen synchronously.
(WebCore::CSSFontFace::pump): Implement support for the font download
policy.
(WebCore::CSSFontFace::load): Ditto.
(WebCore::CSSFontFace::font): Ditto.
- css/CSSFontFace.h: Ditto.
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::beginLoadingFontSoon): Implement support for
synchronous font download timeouts.
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges): Implement support for the
font download policy.
- platform/graphics/Font.cpp: Add new flag which represents if the
interstitial font was created after the 3 second timeout or before.
Previously, we would distinguish between these two cases by knowing
that one font was LastResort and the other font was a fallback. Now that
we're using fallback fonts on both sides of the 3 second timeout, we
now no longer know which one should be invisible. This new enum solves
this problem.
(WebCore::Font::Font):
(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
- platform/graphics/Font.h: Ditto.
(WebCore::Font::create):
(WebCore::Font::origin):
(WebCore::Font::visibility):
- platform/graphics/FontCache.h:
- platform/graphics/FontCascade.cpp: We try to fall back to a local() font
during downloads, but there might not be one that we can use. Therefore, we
can't use the presence of the interstitial font to detect if we should paint
invisibly. Instead, we can move this logic into the font-specific part of
painting, and consult with the specific font to know if it was created from
a timed-out @font-face rule or not.
(WebCore::FontCascade::drawText):
(WebCore::shouldDrawIfLoading):
(WebCore::FontCascade::drawGlyphBuffer):
(WebCore::FontCascade::drawEmphasisMarks):
- platform/graphics/FontCascade.h:
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForVariant): Implement the logic
described above where we switch the policy if we encounter the intestitial
font.
(WebCore::FontCascadeFonts::glyphDataForNormalVariant): Ditto.
(WebCore::glyphPageFromFontRanges): Ditto.
- platform/graphics/FontRanges.cpp: Implement support for the font download
policy.
(WebCore::FontRanges::Range::font):
(WebCore::FontRanges::glyphDataForCharacter):
(WebCore::FontRanges::fontForCharacter):
(WebCore::FontRanges::fontForFirstRange):
- platform/graphics/FontRanges.h:
- platform/graphics/FontSelector.h:
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::lastResortFallbackFontForEveryCharacter): Deleted.
- platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::lastResortFallbackFontForEveryCharacter): Deleted.
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::lastResortFallbackFontForEveryCharacter): Deleted.
LayoutTests:
- fast/text/font-download-font-face-src-list-expected.txt: Added.
- fast/text/font-download-font-face-src-list.html: Copied from LayoutTests/fast/text/font-weight-download-2.html.
- fast/text/font-download-font-family-property-expected.txt: Added.
- fast/text/font-download-font-family-property.html: Copied from LayoutTests/fast/text/font-weight-download-2.html.
- fast/text/font-download-remote-fallback-all-expected.txt: Added.
- fast/text/font-download-remote-fallback-all.html: Copied from LayoutTests/fast/text/font-weight-download-2.html.
- fast/text/font-interstitial-invisible-width-while-loading-expected.txt: Added.
- fast/text/font-interstitial-invisible-width-while-loading.html: Added.
- fast/text/font-weight-download-2.html:
- fast/text/font-weight-download-3-expected.txt: Added.
- fast/text/font-weight-download-3.html: Copied from LayoutTests/fast/text/font-weight-download-2.html.
- fast/text/web-font-load-fallback-during-loading-2-expected.html: Added.
- fast/text/web-font-load-fallback-during-loading-2.html: Added.
- fast/text/web-font-load-fallback-during-loading-expected.html:
- fast/text/web-font-load-fallback-during-loading.html:
- fast/text/web-font-load-invisible-during-loading-expected.txt: Added.
- fast/text/web-font-load-invisible-during-loading.html: Added.
- http/tests/webfont/fallback-font-while-loading-expected.txt:
- http/tests/webfont/fallback-font-while-loading.html:
- 12:54 PM Changeset in webkit [216943] by
-
- 2 edits in trunk/Source/WebKit2
[WK2][macOS] Support Flash Player DRM features
https://bugs.webkit.org/show_bug.cgi?id=172157
<rdar://problem/31889297>
Reviewed by Dean Jackson.
Relax the IOKit whitelist to support DRM features needed by
some websites.
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- 12:36 PM Changeset in webkit [216942] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Another build fix. Added a missing null check.
- public/v3/components/custom-analysis-task-configurator.js:
(CustomAnalysisTaskConfigurator.prototype._setUploadedFilesIfEmpty):
- 12:09 PM Changeset in webkit [216941] by
-
- 5 edits in trunk/Source/WebKit2
[WK2][macOS] Adopt a whitelist for XPC services
https://bugs.webkit.org/show_bug.cgi?id=172151
<rdar://problem/31916325>
Reviewed by Alex Christensen.
- DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:01 PM Changeset in webkit [216940] by
-
- 2 edits in trunk/Source/WebCore
Simple line layout: Move setCollapedWhitespaceWidth call to updateLineConstrains.
https://bugs.webkit.org/show_bug.cgi?id=172178
Reviewed by Antti Koivisto.
No change in functionality.
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::updateLineConstrains):
(WebCore::SimpleLineLayout::createLineRuns):
- 11:43 AM Changeset in webkit [216939] by
-
- 1 copy in tags/Safari-604.1.21.4
Tag Safari-604.1.21.4.
- 11:27 AM Changeset in webkit [216938] by
-
- 4 edits2 adds2 deletes in trunk
[MediaStream] Return default device list until user gives permission to capture
https://bugs.webkit.org/show_bug.cgi?id=172168
<rdar://problem/31816884>
Reviewed by Youenn Fablet.
Source/WebCore:
Test: fast/mediastream/media-devices-enumerate-devices.html
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::filterDeviceList): Remove all but the "default" number of
devices of each type.
(WebCore::MediaDevicesRequest::start): Call filterDeviceList.
- Modules/mediastream/MediaDevicesRequest.h:
LayoutTests:
- fast/mediastream/MediaDevices-enumerateDevices-expected.txt: Removed.
- fast/mediastream/MediaDevices-enumerateDevices.html: Removed.
- fast/mediastream/media-devices-enumerate-devices-expected.txt: Added.
- fast/mediastream/media-devices-enumerate-devices.html: Added.
- 11:18 AM Changeset in webkit [216937] by
-
- 4 edits in trunk/Source/WebCore
Silent a few warnings about unused parameters
https://bugs.webkit.org/show_bug.cgi?id=172169
Reviewed by Sam Weinig.
- page/Page.cpp:
(WebCore::Page::mainFrameLoadStarted):
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::toData):
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::partitionName):
- 10:52 AM Changeset in webkit [216936] by
-
- 2 edits in trunk/Source/WebCore
WebItemProviderPasteboard should be robust when temporary files are missing path extensions
https://bugs.webkit.org/show_bug.cgi?id=172170
Reviewed by Tim Horton.
Makes a slight adjustment to the temporary file URLs are handled when using WebItemProviderPasteboard to load
data off of item providers. Previously, we would bail early and not load any data if the temporary URL is
missing an extension. Since the switch to NSItemProviders from UIItemProviders, some types of temporary files
generated by item providers are missing extensions, so this extra check is meaningless.
Covered by existing data interaction unit tests.
- platform/ios/WebItemProviderPasteboard.mm:
(temporaryFileURLForDataInteractionContent):
(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
- 10:20 AM Changeset in webkit [216935] by
-
- 6 edits in trunk
Make it possible to adjust which edges are affected by safe area insets
https://bugs.webkit.org/show_bug.cgi?id=172149
<rdar://problem/31564729>
Reviewed by Beth Dakin.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _computedContentInset]):
(-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]):
(-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Add SPI to adjust which edges are taken into account, and adjust the default.
- fast/viewport/ios/viewport-fit-auto-expected.txt:
- fast/viewport/ios/viewport-fit-contain-expected.txt:
- 10:12 AM Changeset in webkit [216934] by
-
- 3 edits in trunk/LayoutTests
Gardening: rebased parser-syntax-check test results after r216891.
https://bugs.webkit.org/show_bug.cgi?id=172171
Not reviewed.
- js/parser-syntax-check-expected.txt:
- js/script-tests/parser-syntax-check.js:
- 9:19 AM Changeset in webkit [216933] by
-
- 2 edits in trunk/LayoutTests
Skip LayoutTest media/restricted-audio-playback-with-document-gesture.html on iOS.
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:30 AM Changeset in webkit [216932] by
-
- 2 edits in trunk/Tools
Patch
- 8:08 AM Changeset in webkit [216931] by
-
- 9 edits in trunk
[GTK] Tests that always pass when run alone, but fail in the bots
https://bugs.webkit.org/show_bug.cgi?id=168572
Reviewed by Michael Catanzaro.
PlatformWebView::viewSupportsOptions() is basically a comparison
that checks that the passed options are the ones supported by the
web view. There is no reason for them to be implemented for each
platform differently. In fact doing so causes issues each time a
new option is added, if the corresponding platform implementation
is not updated accordingly.
A consequence of not updating the viewSupportOptions()
implementations when new options are added is that tests that need
these options might fail if they are executed after a test that
didn't need the option, as the webview will be reused even if the
option is not supported. This cannot be spotted when running the
tests individually. See bug #165133 for other example of the same
problem.
Remove the platform implementations and make the comparison a
method of the TestOptions structure, so that the check is in one
Tools:
place. For the time being, only include in the comparison the
options that were checked in the mac platform, which seem to be
the only ones relevant this far (unless newer ones have also been
forgotten).
- WebKitTestRunner/PlatformWebView.h:
(WTR::PlatformWebView::viewSupportsOptions): Use the method
defined below.
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions): Added.
- WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::viewSupportsOptions): Deleted.
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::viewSupportsOptions): Deleted.
- WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::viewSupportsOptions): Deleted.
- WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:
(WTR::PlatformWebView::viewSupportsOptions): Deleted.
LayoutTests:
place. For the time being include in the comparison the options
checked in the mac and ios platforms, which seem to be the only
ones relevant this far (unless newer ones have also been
forgotten).
- platform/gtk/TestExpectations: Unskip an affected test.
- 6:04 AM Changeset in webkit [216930] by
-
- 2 edits in trunk/Source/WebCore
[WPE] GLContextEGL::createWPEContext() should fall back to pbuffer-based contexts when offscreen target provides no native window
https://bugs.webkit.org/show_bug.cgi?id=172162
Reviewed by Carlos Garcia Campos.
When creating an offscreen GLContext, the underlying implementation might
provide a mock native window that's to be used as the window target upon
which a window-based GLContext should be created. But we should also support
falling back to pbuffer-based GLContexts when the underlying implementation
can't provide such mock targets.
- platform/graphics/egl/GLContextEGLWPE.cpp:
(WebCore::GLContextEGL::createWPEContext):
- 5:57 AM Changeset in webkit [216929] by
-
- 2 edits in trunk/Source/WebKit2
[GLib] Use RunLoopSourcePriority::RunLoopDispatcher as the GSocketMonitor's GSource priority
https://bugs.webkit.org/show_bug.cgi?id=172160
Reviewed by Carlos Garcia Campos.
- Platform/IPC/glib/GSocketMonitor.cpp:
(IPC::GSocketMonitor::start): Explicitly set the priority for the GSocketMonitor's
GSource object to RunLoopSourcePriority::RunLoopDispatcher, equating it to the
priority that's used in RunLoop for dispatches of the queued functions.
- 5:51 AM Changeset in webkit [216928] by
-
- 2 edits in trunk
[WPE] Set and expose ENABLE_DEVELOPER_MODE in build when DEVELOPER_MODE is enabled
https://bugs.webkit.org/show_bug.cgi?id=172159
Reviewed by Carlos Garcia Campos.
- Source/cmake/OptionsWPE.cmake: Expose the ENABLE_DEVELOPER_MODE macro
when the DEVELOPER_MODE configuration options is enabled.
- 5:49 AM Changeset in webkit [216927] by
-
- 6 edits in trunk/Source
[GLib] Name more GSource-based RunLoop::Timers
https://bugs.webkit.org/show_bug.cgi?id=172158
Reviewed by Carlos Garcia Campos.
Source/WebCore:
- platform/glib/MainThreadSharedTimerGLib.cpp:
(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
Specify 'MainThreadSharedTimer' as the name of this GSource-based RunLoop::Timer.
Source/WebKit2:
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::CompositingRunLoop):
Specify 'CompositingRunLoop' as the name of this GSource-based RunLoop::Timer.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::ThreadedDisplayRefreshMonitor):
Specify 'ThreadedDisplayRefreshMonitor' as the name of this GSource-based RunLoop::Timer.
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
Specify 'CoordinatedLayerTreeHost' as the name of this GSource-based RunLoop::Timer.
- 5:47 AM Changeset in webkit [216926] by
-
- 9 edits in trunk
[Readable Streams API] Implement ReadableStreamBYOBReader releaseLock()
https://bugs.webkit.org/show_bug.cgi?id=172111
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-16
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Updated test expectations.
- web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
- web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt: Updated.
Source/WebCore:
Implemented ReadableStreamBYOBReader releaseLock():
- https://streams.spec.whatwg.org/#byob-reader-release-lock;
- https://streams.spec.whatwg.org/#readable-stream-reader-generic-release.
Added tests to check releaseLock behavior.
- Modules/streams/ReadableStreamBYOBReader.js:
(releaseLock): Implemented.
- Modules/streams/ReadableStreamInternals.js:
(readableStreamReaderGenericRelease): Aligned with spec.
LayoutTests:
Added tests to check releaseLock() behavior.
- streams/readable-stream-byob-reader-expected.txt: Updated.
- streams/readable-stream-byob-reader.js: Added new tests.
- 3:32 AM Changeset in webkit [216925] by
-
- 2 edits in trunk/LayoutTests
Unreviewed Windows gardening. Skip svg animation test, since image throttling behaves differently on WK1.
- platform/win/TestExpectations:
- 2:40 AM Changeset in webkit [216924] by
-
- 1 edit1 add in trunk/Source/JavaScriptCore
Unreviewed, add Objective C files to CMake Mac port
https://bugs.webkit.org/show_bug.cgi?id=172103
- shell/PlatformMac.cmake: Added.
- 2:37 AM Changeset in webkit [216923] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Revert change committed by mistakle in r216922.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::forceRepaint):
- 2:35 AM Changeset in webkit [216922] by
-
- 7 edits in trunk
Unreviewed GTK+ gardening. Rebaseline tests after r216817.
- platform/gtk/fast/multicol/client-rects-expected.txt:
- platform/gtk/fast/multicol/client-rects-spanners-complex-expected.txt:
- platform/gtk/fast/multicol/client-rects-spanners-expected.txt:
- platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
- platform/gtk/fast/transforms/bounding-rect-zoom-expected.txt:
- 2:24 AM Changeset in webkit [216921] by
-
- 4 edits1 add in trunk/Source/JavaScriptCore
WebAssembly: enforce size limits
https://bugs.webkit.org/show_bug.cgi?id=165833
<rdar://problem/29760219>
Reviewed by Keith Miller.
Use the same limits as V8.
- JavaScriptCore.xcodeproj/project.pbxproj:
- wasm/WasmLimits.h: Added.
- wasm/WasmModuleParser.cpp:
- wasm/WasmParser.h:
(JSC::Wasm::Parser<SuccessType>::consumeUTF8String):
- 2:10 AM Changeset in webkit [216920] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Try to fix GTK+ build with MEDIA_STREAM enabled after r216918.
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
- 1:53 AM Changeset in webkit [216919] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Update expectations of several WebRTC tests.
- platform/gtk/TestExpectations:
- 1:51 AM Changeset in webkit [216918] by
-
- 34 edits2 deletes in trunk/Source
Remove MediaConstraintsData and MediaConstraintsImpl
https://bugs.webkit.org/show_bug.cgi?id=172132
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-16
Reviewed by Eric Carlson.
Source/WebCore:
No observable change of behavior.
Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code.
Further simplified the code by making MediaConstraints no longer ref counted and now a struct.
Simplified some RealtimeMediaSource subclasses by removing unused MediaConstraints class members.
- CMakeLists.txt: Removing MediaConstraintsImpl.cpp.
- Modules/mediastream/MediaConstraintsImpl.cpp: Removed.
- Modules/mediastream/MediaConstraintsImpl.h: Removed.
- Modules/mediastream/MediaDevices.cpp:
(WebCore::createMediaConstraints):
(WebCore::MediaDevices::getUserMedia):
(WebCore::createMediaConstraintsImpl): Deleted.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::createMediaConstraints):
(WebCore::MediaStreamTrack::applyConstraints):
(WebCore::createMediaConstraintsImpl): Deleted.
- Modules/mediastream/MediaTrackConstraints.cpp:
(WebCore::createMediaConstraints):
(WebCore::createMediaConstraintsImpl): Deleted.
- Modules/mediastream/MediaTrackConstraints.h:
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::allow):
- Modules/mediastream/UserMediaRequest.h:
(WebCore::UserMediaRequest::audioConstraints):
(WebCore::UserMediaRequest::videoConstraints):
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/MediaConstraints.cpp:
(WebCore::addDefaultVideoConstraints):
(WebCore::MediaConstraints::isConstraintSet):
(WebCore::MediaConstraints::setDefaultVideoConstraints):
- platform/mediastream/MediaConstraints.h:
(WebCore::MediaConstraints::~MediaConstraints): Deleted.
(WebCore::MediaConstraints::MediaConstraints): Deleted.
- platform/mediastream/MediaStreamConstraintsValidationClient.h:
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::selectSettings):
(WebCore::RealtimeMediaSource::supportsConstraints):
(WebCore::RealtimeMediaSource::applyConstraints):
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
- platform/mediastream/RealtimeMediaSourceCenter.h:
- platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::supportedConstraints): Deleted.
- platform/mediastream/mac/RealtimeIncomingAudioSource.h:
- platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::supportedConstraints): Deleted.
- platform/mediastream/mac/RealtimeIncomingVideoSource.h:
- platform/mock/MockRealtimeMediaSource.h:
(WebCore::MockRealtimeMediaSource::constraints): Deleted.
Source/WebKit2:
Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code.
Further simplified the code by making MediaConstraints no longer ref counted and now a struct.
- Scripts/webkit/messages.py:
(headers_for_type):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaConstraints>::encode):
(IPC::ArgumentCoder<MediaConstraints>::decode):
(IPC::ArgumentCoder<MediaConstraintsData>::encode): Deleted.
(IPC::ArgumentCoder<MediaConstraintsData>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::applyConstraints):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::applyConstraints):
- 1:03 AM Changeset in webkit [216917] by
-
- 3 edits in trunk/Source/WebCore
[Cocoa] Tell NEFilterSource about the presenting app's PID
https://bugs.webkit.org/show_bug.cgi?id=172152
<rdar://problem/32197740>
Reviewed by Dan Bernstein.
- platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::initialize):
- platform/spi/cocoa/NEFilterSourceSPI.h:
- 12:50 AM Changeset in webkit [216916] by
-
- 4 edits in trunk
[css-grid] Fix static position of positioned grid items
https://bugs.webkit.org/show_bug.cgi?id=172108
Reviewed by Sergio Villar Senin.
Source/WebCore:
This patch makes us follow the text on the spec
(https://drafts.csswg.org/css-grid/#static-position):
"The static position of an absolutely-positioned child
of a grid container is determined as if it were the sole grid item
in a grid area whose edges coincide with the padding edges
of the grid container."
Test: fast/css-grid-layout/absolute-positioning-grid-container-parent.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::prepareChildForPositionedLayout): Modified to avoid
including padding to match the spec behavior.
LayoutTests:
The test is updated as the expected results were wrong.
Note that after this patch we match Chrome and Firefox behavior on this test.
- fast/css-grid-layout/absolute-positioning-grid-container-parent.html:
- 12:44 AM Changeset in webkit [216915] by
-
- 3 edits in trunk/Source/WebKit2
[SOUP] Remove LATEST_RECORD_VERSION from GnuTLS priority string
https://bugs.webkit.org/show_bug.cgi?id=172153
Based on discussion with Nikos in https://bugzilla.gnome.org/show_bug.cgi?id=782218, we
should remove LATEST_RECORD_VERSION from our GnuTLS priority string. This causes GnuTLS to
use the latest TLS record version (the record format is separate from the TLS protocol
version), which we needed a couple years ago (after dropping SSLv3) for maximum
compatibility with broken web servers. But it's not needed anymore, and is causing new
compatibility problems with other broken web servers, so let's get rid of it.
Reviewed by Carlos Garcia Campos.
- NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
(main):
- WebProcess/EntryPoint/unix/WebProcessMain.cpp:
(main):
- 12:27 AM Changeset in webkit [216914] by
-
- 15 edits in trunk
[JSC] Build testapi in non Apple ports
https://bugs.webkit.org/show_bug.cgi?id=172103
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch makes JSC testapi buildable in non-Apple ports.
We isolate CF related tests in testapi.c. If we do not use
CF, we include JavaScript.h instead of JavaScriptCore.h.
By running the testapi in Linux, we found that contraints
test have a bug: If constraint marker runs after WeakRefs
are destroyed, it accesses destroyed WeakRef. This patch
also fixes it.
- API/tests/CurrentThisInsideBlockGetterTest.h:
- API/tests/CustomGlobalObjectClassTest.c:
- API/tests/ExecutionTimeLimitTest.cpp:
- API/tests/FunctionOverridesTest.cpp:
- API/tests/GlobalContextWithFinalizerTest.cpp:
- API/tests/JSObjectGetProxyTargetTest.cpp:
- API/tests/MultithreadedMultiVMExecutionTest.cpp:
- API/tests/PingPongStackOverflowTest.cpp:
- API/tests/TypedArrayCTest.cpp:
- API/tests/testapi.c:
(assertEqualsAsCharactersPtr):
(markingConstraint):
(testMarkingConstraintsAndHeapFinalizers):
(testCFStrings):
(main):
- shell/CMakeLists.txt:
Tools:
Now testapi is drived in JSCOnly, GTK and WPE ports too.
- Scripts/build-jsc:
- Scripts/run-javascriptcore-tests:
- 12:23 AM Changeset in webkit [216913] by
-
- 1 edit1 add in trunk/JSTests
WebAssembly: add memory fuzzer
https://bugs.webkit.org/show_bug.cgi?id=169976
<rdar://problem/31965328>
Reviewed by Keith Miller.
- wasm/fuzz/memory.js: Added.
(const.insert):
(const.action.string_appeared_here):
(const.performAction):
(catch):
- 12:11 AM Changeset in webkit [216912] by
-
- 2 edits in trunk/Source/WebCore
Compile error, include file is not found.
https://bugs.webkit.org/show_bug.cgi?id=172105
Reviewed by Brent Fulgham.
Use has_include to detect if include file exists.
- platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm:
- 12:09 AM Changeset in webkit [216911] by
-
- 2 edits in trunk/Source/JavaScriptCore
WebAssembly: report Memory usage to GC
https://bugs.webkit.org/show_bug.cgi?id=170690
<rdar://problem/31965310>
Reviewed by Keith Miller.
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::grow):
(JSC::JSWebAssemblyMemory::finishCreation):
(JSC::JSWebAssemblyMemory::visitChildren):
- 12:07 AM Changeset in webkit [216910] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebKit2
Cherry-pick r216893. rdar://problem/32082745
- 12:07 AM Changeset in webkit [216909] by
-
- 2 edits in branches/safari-604.1.21-branch/Source/WebKit2
Cherry-pick r216790. rdar://problem/32082745
- 12:07 AM Changeset in webkit [216908] by
-
- 8 edits in trunk
WebAssembly: validate load / store alignment
https://bugs.webkit.org/show_bug.cgi?id=168836
<rdar://problem/31965349>
Reviewed by Keith Miller.
JSTests:
- wasm/WASM.js: fix regular expression greed
- wasm/function-tests/memory-alignment.js: Added.
(const.op.of.WASM.opcodes):
- wasm/wasm.json: fix formatting
Source/JavaScriptCore:
- wasm/WasmFunctionParser.h: check the alignment
- wasm/generateWasm.py: generate the log2 alignment helper
(Wasm):
(isSimple):
(memoryLog2Alignment):
- wasm/generateWasmOpsHeader.py:
(memoryLog2AlignmentGenerator):
- wasm/wasm.json: fix formatting