Timeline



Jun 25, 2017:

11:51 PM Changeset in webkit [218801] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.16

Merge r215387 - ParseInt intrinsic in DFG backend doesn't properly flush its operands
https://bugs.webkit.org/show_bug.cgi?id=170865

Reviewed by Mark Lam and Geoffrey Garen.

JSTests:

  • stress/parse-int-intrinsic-dfg-backend-flush.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

The DFG backend code needed to first call .gpr()/.jsValueRegs()
before calling flushRegisters(), or the input JSValueOperand would
not be flushed.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileParseInt):

2:41 PM Changeset in webkit [218800] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

initializeThreading() [first] causes WTFCrash due to maxSingleAllocationSize not being initialized
https://bugs.webkit.org/show_bug.cgi?id=173720

Reviewed by Mark Lam.

When using std::numeric_limits<size_t>::max() for global variable's initialization,
it seems that it invokes static constructor to initialize this in VC++.
We avoid this edge case by introducing a workaround using SIZE_MAX here.

When I perform git-grep, there is only one site (this) using std::numeric_limits<>::xxx()
to initialize global variable.

  • wtf/FastMalloc.cpp:
1:35 PM Changeset in webkit [218799] by Konstantin Tokarev
  • 90 edits in trunk

Remove excessive headers from WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=173822

Reviewed by Tim Horton.

Source/WebCore:

No new tests needed.

  • html/ColorInputType.h:
  • html/MediaElementSession.h:
  • page/SecurityOriginData.cpp:
  • platform/CalculationValue.cpp:
  • platform/CalculationValue.h:
  • platform/ColorChooserClient.h:
  • platform/ContentType.h:
  • platform/LogMacros.h:
  • platform/PODRedBlackTree.h:
  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/PopupMenuStyle.h:
  • platform/ScrollAnimator.h:
  • platform/Theme.h:
  • platform/ThreadGlobalData.h:
  • platform/animation/AnimationList.h:
  • platform/audio/AudioArray.h:
  • platform/audio/AudioChannel.h:
  • platform/audio/DynamicsCompressor.h:
  • platform/audio/DynamicsCompressorKernel.h:
  • platform/audio/FFTFrame.h:
  • platform/audio/HRTFDatabaseLoader.cpp:
  • platform/audio/HRTFDatabaseLoader.h:
  • platform/audio/HRTFElevation.h:
  • platform/audio/MultiChannelResampler.h:
  • platform/audio/PlatformMediaSession.h:
  • platform/audio/ReverbConvolver.h:
  • platform/audio/ReverbConvolverStage.cpp:
  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/FloatPolygon.h:
  • platform/graphics/FloatSizeHash.h:
  • platform/graphics/Font.h:
  • platform/graphics/FontMetrics.h:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/FontRanges.h:
  • platform/graphics/FontTaggedSettings.h:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/GraphicsContext3DPrivate.h:
  • platform/graphics/GraphicsLayerClient.h:
  • platform/graphics/Image.cpp:
  • platform/graphics/ImageFrame.h:
  • platform/graphics/ImageFrameCache.h:
  • platform/graphics/ImageSource.h:
  • platform/graphics/IntRectHash.h:
  • platform/graphics/IntSizeHash.h:
  • platform/graphics/MediaPlaybackTargetClient.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/PlatformTimeRanges.h:
  • platform/graphics/TextRun.h:
  • platform/graphics/TiledBacking.h:
  • platform/graphics/cairo/FontCustomPlatformData.h:
  • platform/graphics/filters/FEConvolveMatrix.h:
  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/SourceAlpha.h:
  • platform/graphics/gstreamer/GStreamerUtilities.h:
  • platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
  • platform/graphics/harfbuzz/HarfBuzzShaper.h:
  • platform/graphics/opengl/Extensions3DOpenGL.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperBackingStore.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:
  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
  • platform/graphics/texmap/TextureMapperTile.h:
  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
  • platform/graphics/transforms/TransformState.h:
  • platform/gtk/PasteboardHelper.h:
  • platform/gtk/ScrollbarThemeGtk.h:
  • platform/image-decoders/ImageDecoder.h:
  • platform/network/BlobData.h:
  • platform/network/BlobDataFileReference.h:
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:
  • platform/network/SocketStreamHandleClient.h:
  • platform/network/soup/ResourceRequest.h:
  • platform/network/soup/SocketStreamHandleImpl.h:
  • platform/network/soup/SoupNetworkSession.h:
  • platform/sql/SQLiteFileSystem.h:
  • platform/text/LocaleICU.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:
12:56 PM Changeset in webkit [218798] by Michael Catanzaro
  • 5 edits in trunk

Unreviewed, rolling out r215190.

Broke product select element on GNOME Bugzilla

Reverted changeset:

"[GTK] Misplaced right click menu on web page due to
deprecated gtk_menu_popup()"
https://bugs.webkit.org/show_bug.cgi?id=170553
http://trac.webkit.org/changeset/215190

11:20 AM Changeset in webkit [218797] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK][WPE] Unreviewed, fix typo in translatable string

Thanks to Yuri Chornoivan for reporting this typo.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_class_init):

11:18 AM Changeset in webkit [218796] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=173823

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2017-06-25
Rubber-stamped by Michael Catanzaro.

  • uk.po:
11:06 AM Changeset in webkit [218795] by commit-queue@webkit.org
  • 15 edits
    2 adds in trunk

Remove use of mock webrtc backend factory at injected bundle reset time
https://bugs.webkit.org/show_bug.cgi?id=173817

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-25
Reviewed by Darin Adler.

Source/WebCore:

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Resetting the peer connection backend.

  • testing/MockLibWebRTCPeerConnection.cpp: Doing some clean-up

(WebCore::useRealRTCPeerConnectionFactory):
(WebCore::MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory):
(WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection):
(WebCore::MockLibWebRTCPeerConnectionFactory::CreateVideoTrack):
(WebCore::MockLibWebRTCPeerConnectionFactory::CreateAudioTrack):

  • testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

Making some tests less flaky.

  • TestExpectations:
  • fast/mediastream/RTCPeerConnection-media-setup-two-dialogs-expected.txt:
  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:
  • webrtc/audio-peer-connection-webaudio.html:
  • webrtc/captureCanvas-webrtc.html:
  • webrtc/datachannel/bufferedAmountLowThreshold-default-expected.txt: Added.
  • webrtc/datachannel/bufferedAmountLowThreshold-default.html: Added.
  • webrtc/datachannel/bufferedAmountLowThreshold-expected.txt:
  • webrtc/datachannel/bufferedAmountLowThreshold.html:
  • webrtc/routines.js:
  • webrtc/video-replace-muted-track.html:
  • webrtc/video-unmute.html:
10:40 AM Changeset in webkit [218794] by Konstantin Tokarev
  • 305 edits in trunk/Source

Remove excessive headers from JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=173812

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • API/APIUtils.h:
  • assembler/LinkBuffer.cpp:
  • assembler/MacroAssemblerCodeRef.cpp:
  • b3/air/AirLiveness.h:
  • b3/air/AirLowerAfterRegAlloc.cpp:
  • bindings/ScriptValue.cpp:
  • bindings/ScriptValue.h:
  • bytecode/AccessCase.cpp:
  • bytecode/AccessCase.h:
  • bytecode/ArrayProfile.h:
  • bytecode/BytecodeDumper.h:
  • bytecode/BytecodeIntrinsicRegistry.cpp:
  • bytecode/BytecodeKills.h:
  • bytecode/BytecodeLivenessAnalysis.h:
  • bytecode/BytecodeUseDef.h:
  • bytecode/CallLinkStatus.h:
  • bytecode/CodeBlock.h:
  • bytecode/CodeOrigin.h:
  • bytecode/ComplexGetStatus.h:
  • bytecode/GetByIdStatus.h:
  • bytecode/GetByIdVariant.h:
  • bytecode/InlineCallFrame.h:
  • bytecode/InlineCallFrameSet.h:
  • bytecode/Instruction.h:
  • bytecode/InternalFunctionAllocationProfile.h:
  • bytecode/JumpTable.h:
  • bytecode/MethodOfGettingAValueProfile.h:
  • bytecode/ObjectPropertyConditionSet.h:
  • bytecode/Operands.h:
  • bytecode/PolymorphicAccess.h:
  • bytecode/PutByIdStatus.h:
  • bytecode/SpeculatedType.cpp:
  • bytecode/StructureSet.h:
  • bytecode/StructureStubInfo.h:
  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecode/ValueProfile.h:
  • bytecompiler/BytecodeGenerator.cpp:
  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/Label.h:
  • bytecompiler/StaticPropertyAnalysis.h:
  • debugger/DebuggerCallFrame.cpp:
  • dfg/DFGAbstractInterpreter.h:
  • dfg/DFGAdjacencyList.h:
  • dfg/DFGArgumentsUtilities.h:
  • dfg/DFGArrayMode.h:
  • dfg/DFGArrayifySlowPathGenerator.h:
  • dfg/DFGBackwardsPropagationPhase.h:
  • dfg/DFGBasicBlock.h:
  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGCallCreateDirectArgumentsSlowPathGenerator.h:
  • dfg/DFGCapabilities.h:
  • dfg/DFGCommon.h:
  • dfg/DFGCommonData.h:
  • dfg/DFGDesiredIdentifiers.h:
  • dfg/DFGDesiredWatchpoints.h:
  • dfg/DFGDisassembler.cpp:
  • dfg/DFGDominators.h:
  • dfg/DFGDriver.cpp:
  • dfg/DFGDriver.h:
  • dfg/DFGEdgeDominates.h:
  • dfg/DFGFinalizer.h:
  • dfg/DFGGenerationInfo.h:
  • dfg/DFGJITCompiler.cpp:
  • dfg/DFGJITCompiler.h:
  • dfg/DFGJITFinalizer.h:
  • dfg/DFGLivenessAnalysisPhase.h:
  • dfg/DFGMinifiedNode.h:
  • dfg/DFGMultiGetByOffsetData.h:
  • dfg/DFGNaturalLoops.cpp:
  • dfg/DFGNaturalLoops.h:
  • dfg/DFGNode.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.h:
  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompilationInfo.h:
  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGOSRExitCompiler.h:
  • dfg/DFGOSRExitJumpPlaceholder.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPlan.h:
  • dfg/DFGPreciseLocalClobberize.h:
  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGRegisteredStructure.h:
  • dfg/DFGRegisteredStructureSet.h:
  • dfg/DFGSaneStringGetByValSlowPathGenerator.h:
  • dfg/DFGSlowPathGenerator.h:
  • dfg/DFGSnippetParams.h:
  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGToFTLDeferredCompilationCallback.h:
  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h:
  • dfg/DFGValidate.h:
  • dfg/DFGValueSource.h:
  • dfg/DFGVariableEvent.h:
  • dfg/DFGVariableEventStream.h:
  • dfg/DFGWorklist.h:
  • domjit/DOMJITCallDOMGetterSnippet.h:
  • domjit/DOMJITEffect.h:
  • ftl/FTLLink.cpp:
  • ftl/FTLLowerDFGToB3.cpp:
  • ftl/FTLPatchpointExceptionHandle.h:
  • heap/AllocatorAttributes.h:
  • heap/CodeBlockSet.h:
  • heap/DeferGC.h:
  • heap/GCSegmentedArray.h:
  • heap/Heap.cpp:
  • heap/Heap.h:
  • heap/IncrementalSweeper.h:
  • heap/ListableHandler.h:
  • heap/MachineStackMarker.h:
  • heap/MarkedAllocator.h:
  • heap/MarkedBlock.cpp:
  • heap/MarkedBlock.h:
  • heap/MarkingConstraint.h:
  • heap/SlotVisitor.cpp:
  • heap/SlotVisitor.h:
  • inspector/ConsoleMessage.cpp:
  • inspector/ConsoleMessage.h:
  • inspector/InjectedScript.h:
  • inspector/InjectedScriptHost.h:
  • inspector/InjectedScriptManager.cpp:
  • inspector/JSGlobalObjectInspectorController.cpp:
  • inspector/JavaScriptCallFrame.h:
  • inspector/ScriptCallStack.h:
  • inspector/ScriptCallStackFactory.cpp:
  • inspector/ScriptDebugServer.h:
  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorHeapAgent.cpp:
  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/InspectorScriptProfilerAgent.h:
  • inspector/agents/JSGlobalObjectConsoleAgent.h:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.h:
  • inspector/agents/JSGlobalObjectRuntimeAgent.h:
  • inspector/augmentable/AlternateDispatchableAgent.h:
  • interpreter/CLoopStack.h:
  • interpreter/CachedCall.h:
  • interpreter/CallFrame.h:
  • interpreter/Interpreter.cpp:
  • interpreter/Interpreter.h:
  • jit/AssemblyHelpers.cpp:
  • jit/AssemblyHelpers.h:
  • jit/CCallHelpers.h:
  • jit/CallFrameShuffler.h:
  • jit/ExecutableAllocator.h:
  • jit/GCAwareJITStubRoutine.h:
  • jit/HostCallReturnValue.h:
  • jit/ICStats.h:
  • jit/JIT.cpp:
  • jit/JIT.h:
  • jit/JITAddGenerator.h:
  • jit/JITCall32_64.cpp:
  • jit/JITCode.h:
  • jit/JITDisassembler.cpp:
  • jit/JITExceptions.cpp:
  • jit/JITMathIC.h:
  • jit/JITOpcodes.cpp:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITThunks.cpp:
  • jit/JITThunks.h:
  • jit/JSInterfaceJIT.h:
  • jit/PCToCodeOriginMap.h:
  • jit/PolymorphicCallStubRoutine.h:
  • jit/RegisterSet.h:
  • jit/Repatch.h:
  • jit/SetupVarargsFrame.h:
  • jit/Snippet.h:
  • jit/SnippetParams.h:
  • jit/ThunkGenerators.h:
  • jsc.cpp:
  • llint/LLIntCLoop.h:
  • llint/LLIntEntrypoint.h:
  • llint/LLIntExceptions.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntSlowPaths.cpp:
  • parser/NodeConstructors.h:
  • parser/Nodes.cpp:
  • parser/Nodes.h:
  • parser/Parser.cpp:
  • parser/Parser.h:
  • parser/ParserTokens.h:
  • parser/SourceProviderCacheItem.h:
  • profiler/ProfilerBytecodeSequence.h:
  • profiler/ProfilerDatabase.cpp:
  • profiler/ProfilerDatabase.h:
  • profiler/ProfilerOrigin.h:
  • profiler/ProfilerOriginStack.h:
  • profiler/ProfilerProfiledBytecodes.h:
  • profiler/ProfilerUID.h:
  • runtime/AbstractModuleRecord.h:
  • runtime/ArrayConstructor.h:
  • runtime/ArrayConventions.h:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/ArrayPrototype.h:
  • runtime/BasicBlockLocation.h:
  • runtime/Butterfly.h:
  • runtime/CallData.cpp:
  • runtime/CodeCache.h:
  • runtime/CommonSlowPaths.cpp:
  • runtime/CommonSlowPaths.h:
  • runtime/CommonSlowPathsExceptions.cpp:
  • runtime/Completion.cpp:
  • runtime/ControlFlowProfiler.h:
  • runtime/DateInstanceCache.h:
  • runtime/ErrorConstructor.h:
  • runtime/ErrorInstance.h:
  • runtime/ExceptionHelpers.cpp:
  • runtime/ExceptionHelpers.h:
  • runtime/ExecutableBase.h:
  • runtime/FunctionExecutable.h:
  • runtime/HasOwnPropertyCache.h:
  • runtime/Identifier.h:
  • runtime/InternalFunction.h:
  • runtime/IntlCollator.cpp:
  • runtime/IntlCollatorPrototype.h:
  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlNumberFormat.cpp:
  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IteratorOperations.cpp:
  • runtime/JSArray.h:
  • runtime/JSArrayBufferPrototype.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:
  • runtime/JSCell.h:
  • runtime/JSFunction.cpp:
  • runtime/JSFunction.h:
  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/JSGlobalObjectDebuggable.cpp:
  • runtime/JSGlobalObjectDebuggable.h:
  • runtime/JSGlobalObjectFunctions.cpp:
  • runtime/JSGlobalObjectFunctions.h:
  • runtime/JSJob.cpp:
  • runtime/JSLock.h:
  • runtime/JSModuleLoader.cpp:
  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSModuleRecord.h:
  • runtime/JSObject.cpp:
  • runtime/JSObject.h:
  • runtime/JSRunLoopTimer.h:
  • runtime/JSTemplateRegistryKey.h:
  • runtime/JSTypedArrayPrototypes.cpp:
  • runtime/JSTypedArrayPrototypes.h:
  • runtime/JSTypedArrays.h:
  • runtime/LiteralParser.h:
  • runtime/MatchResult.h:
  • runtime/MemoryStatistics.h:
  • runtime/PrivateName.h:
  • runtime/PromiseDeferredTimer.h:
  • runtime/ProxyObject.h:
  • runtime/RegExp.h:
  • runtime/SamplingProfiler.cpp:
  • runtime/SmallStrings.h:
  • runtime/StringPrototype.cpp:
  • runtime/StringRecursionChecker.h:
  • runtime/Structure.h:
  • runtime/SymbolConstructor.h:
  • runtime/SymbolPrototype.cpp:
  • runtime/SymbolPrototype.h:
  • runtime/TypeProfiler.h:
  • runtime/TypeProfilerLog.h:
  • runtime/TypedArrayType.h:
  • runtime/VM.cpp:
  • runtime/VM.h:
  • runtime/VMEntryScope.h:
  • runtime/WeakMapData.h:
  • runtime/WriteBarrier.h:
  • tools/FunctionOverrides.cpp:
  • tools/FunctionOverrides.h:
  • wasm/WasmBinding.cpp:
  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/WebAssemblyPrototype.cpp:
  • yarr/Yarr.h:
  • yarr/YarrJIT.cpp:
  • yarr/YarrJIT.h:
  • yarr/YarrParser.h:

Source/WebCore:

No new tests needed.

  • Modules/indexeddb/IDBObjectStore.cpp:
  • bindings/js/JSDOMPromiseDeferred.h:
  • bindings/js/JSLazyEventListener.cpp:
  • bindings/js/JSMainThreadExecState.h:
  • bindings/js/ReadableStreamDefaultController.cpp:
  • bindings/js/ScriptGlobalObject.cpp:
  • bindings/js/SerializedScriptValue.cpp:
  • bridge/NP_jsobject.cpp:
  • dom/ScriptExecutionContext.cpp:
  • html/HTMLPlugInImageElement.cpp:

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:
  • WebView/WebView.mm:

Source/WebKit/win:

  • Plugins/PluginPackage.cpp:

Source/WebKit2:

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

Source/WTF:

  • wtf/Bag.h:
3:01 AM Changeset in webkit [218793] by Konstantin Tokarev
  • 96 edits in trunk/Source/WebCore

Remove excessive headers from WebCore/{rendering,style,svg}
https://bugs.webkit.org/show_bug.cgi?id=173773

Reviewed by Darin Adler.

No new tests needed.

  • css/StyleBuilderConverter.h:
  • editing/TextIterator.cpp:
  • rendering/CounterNode.h:
  • rendering/FlexibleBoxAlgorithm.h:
  • rendering/HitTestLocation.h:
  • rendering/HitTestResult.h:
  • rendering/HitTestingTransformState.h:
  • rendering/OrderIterator.h:
  • rendering/RenderButton.h:
  • rendering/RenderCombineText.h:
  • rendering/RenderFlowThread.h:
  • rendering/RenderFullScreen.h:
  • rendering/RenderGeometryMap.h:
  • rendering/RenderListItem.h:
  • rendering/RenderMediaControlElements.cpp:
  • rendering/RenderMediaControlElements.h:
  • rendering/RenderMediaControls.h:
  • rendering/RenderMeter.h:
  • rendering/RenderMultiColumnSet.cpp:
  • rendering/RenderObject.h:
  • rendering/RenderRegion.h:
  • rendering/RenderRegionSet.cpp:
  • rendering/RenderRegionSet.h:
  • rendering/RenderTheme.h:
  • rendering/RenderVTTCue.cpp:
  • rendering/RenderVTTCue.h:
  • rendering/SimpleLineLayoutFunctions.h:
  • rendering/SimpleLineLayoutResolver.h:
  • rendering/line/BreakingContext.h:
  • rendering/line/LineBreaker.h:
  • rendering/mathml/MathMLStyle.h:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/shapes/RectangleShape.h:
  • rendering/style/BasicShapes.h:
  • rendering/style/BorderData.h:
  • rendering/style/CounterDirectives.h:
  • rendering/style/GridArea.h:
  • rendering/style/KeyframeList.h:
  • rendering/style/RenderStyle.h:
  • rendering/style/SVGRenderStyle.h:
  • rendering/style/ShapeValue.h:
  • rendering/style/StyleCachedImage.h:
  • rendering/style/StyleMultiColData.h:
  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/WillChangeData.h:
  • rendering/svg/RenderSVGBlock.h:
  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGResource.h:
  • rendering/svg/RenderSVGResourceContainer.h:
  • rendering/svg/RenderSVGResourceMarker.h:
  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/SVGInlineFlowBox.cpp:
  • rendering/svg/SVGInlineTextBox.h:
  • rendering/svg/SVGRootInlineBox.h:
  • rendering/svg/SVGTextChunk.cpp:
  • rendering/svg/SVGTextChunk.h:
  • rendering/svg/SVGTextChunkBuilder.cpp:
  • rendering/svg/SVGTextLayoutEngine.cpp:
  • rendering/svg/SVGTextLayoutEngineSpacing.h:
  • style/RenderTreePosition.cpp:
  • style/RenderTreePosition.h:
  • style/RenderTreeUpdater.h:
  • style/StyleFontSizeFunctions.h:
  • style/StyleInvalidator.h:
  • style/StyleResolveForDocument.h:
  • style/StyleScope.h:
  • style/StyleTreeResolver.cpp:
  • style/StyleTreeResolver.h:
  • style/StyleUpdate.h:
  • svg/SVGAnimationElement.h:
  • svg/SVGFEBlendElement.cpp:
  • svg/SVGFEBlendElement.h:
  • svg/SVGFEComponentTransferElement.h:
  • svg/SVGFEFloodElement.cpp:
  • svg/SVGFEFloodElement.h:
  • svg/SVGFEImageElement.h:
  • svg/SVGFEMergeElement.cpp:
  • svg/SVGFEMergeElement.h:
  • svg/SVGFEOffsetElement.cpp:
  • svg/SVGFEOffsetElement.h:
  • svg/SVGFETileElement.cpp:
  • svg/SVGFETileElement.h:
  • svg/SVGParserUtilities.h:
  • svg/SVGPathByteStream.h:
  • svg/SVGPathElement.cpp:
  • svg/SVGPolyElement.cpp:
  • svg/SVGSVGElement.cpp:
  • svg/SVGTRefElement.cpp:
  • svg/SVGTextPathElement.cpp:
  • svg/SVGUseElement.cpp:
  • svg/animation/SMILTimeContainer.h:
  • svg/graphics/SVGImageCache.h:
  • svg/graphics/filters/SVGFilter.h:
2:22 AM Changeset in webkit [218792] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

Remove rAf suspension logging
https://bugs.webkit.org/show_bug.cgi?id=173821

Reviewed by Tim Horton.

Now that webkit.org/b/173628 is fixed, we can remove the logging code we added.

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::suspend):
(WebCore::ScriptedAnimationController::resume):

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):
(WebCore::Page::setIsVisibleInternal):

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::MacApplication::isDumpRenderTree): Deleted.

Jun 24, 2017:

5:07 PM Changeset in webkit [218791] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2] Make sure encodeClientTypesAndData() / decodeClientTypesAndData() match exactly
https://bugs.webkit.org/show_bug.cgi?id=173813

Reviewed by Ryosuke Niwa.

Make sure encodeClientTypesAndData() / decodeClientTypesAndData() match exactly. The previous
IPC encoder code would assume types and data vector have the same length. It would first encode
the length of data using |data.size()| but then would encode types.size() values from the
data vector. While there are debug assertions to ensure both vectors have the same size, this
seems unnecessarily fragile in release builds. If both vectors happen to have different sizes,
this will lead to weird IPC bugs.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeClientTypesAndData):
(IPC::decodeClientTypesAndData):

3:29 PM Changeset in webkit [218790] by Yusuke Suzuki
  • 7 edits
    1 add in trunk

[JSC] Clean up Object.entries implementation
https://bugs.webkit.org/show_bug.cgi?id=173759

Reviewed by Sam Weinig.

JSTests:

  • microbenchmarks/object-entries.js: Added.

(test):

Source/JavaScriptCore:

This patch cleans up Object.entries implementation.
We drop unused private functions. And we merge the
implementation into Object.entries.

It slightly speeds up Object.entries speed.

baseline patched

object-entries 148.0101+-5.6627 142.1877+-4.8661 might be 1.0409x faster

  • builtins/BuiltinNames.h:
  • builtins/ObjectConstructor.js:

(entries):
(globalPrivate.enumerableOwnProperties): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ObjectConstructor.cpp:

(JSC::ownEnumerablePropertyKeys): Deleted.

  • runtime/ObjectConstructor.h:
2:47 PM Changeset in webkit [218789] by commit-queue@webkit.org
  • 7 edits
    21 adds in trunk/Source/WebCore

[WebIDL] Add complete support for stringifier
https://bugs.webkit.org/show_bug.cgi?id=173724

Patch by Sam Weinig <sam@webkit.org> on 2017-06-24
Reviewed by Darin Adler.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddStringifierOperationIfNeeded):
Update AddStringifierOperationIfNeeded to support stringifier on operations and be more
strict about the allowed types. Also copies over all extended attributes to the synthetic
operation.

  • bindings/scripts/IDLParser.pm:

(parseInterfaceMember):
(parseOperationOrReadWriteAttributeOrMaplike):
(parseReadOnlyMember):
(parseStringifier):
(parseStaticMember):
(parseAttributeOrOperationForStringifierOrStatic):
(parseReadWriteAttribute):
(parseAttributeRest):
(parseOperation):
(parseSpecialOperation):
(parseMapLikeProperties):
(parseOperationRest):
(parseAttributeOrOperationOrIterator): Deleted.
(parseQualifier): Deleted.
(parseAttributeOrOperationRest): Deleted.
(parseAttribute): Deleted.
(parseOperationOrIterator): Deleted.

  • Update parser to more closely resemble the WebIDL grammar, splitting out parseStringifier and parseStaticMember into their own subroutines.
  • Move those and parseSerializer, parseStringifier, parseStaticMember, parseIterableRest and a split out parseReadOnlyMembers up into parseInterfaceMember to make it clearer that they are top level members and match the grammar.
  • Rename parseAttributeOrOperationOrIterator to parseOperationOrReadWriteAttributeOrMaplike to match the grammar language and make it clear what it does.
  • Add parseAttributeOrOperationForStringifierOrStatic which contains most of the logic for parsing stringifiers and static members, which have almost identical grammars.
  • Remove creator special which no longer exists in the spec.
  • css/DOMMatrixReadOnly.idl:
  • css/WebKitCSSMatrix.idl:
  • dom/Range.idl:
  • html/URLSearchParams.idl:

Fix FIXMEs by switching to use stringifier.

  • bindings/scripts/test/JS/JSTestStringifier.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifier.h: Added.
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h: Added.
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h: Added.
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h: Added.
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h: Added.
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h: Added.
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: Added.
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h: Added.
  • bindings/scripts/test/TestStringifier.idl: Added.
  • bindings/scripts/test/TestStringifierAnonymousOperation.idl: Added.
  • bindings/scripts/test/TestStringifierNamedOperation.idl: Added.
  • bindings/scripts/test/TestStringifierOperationImplementedAs.idl: Added.
  • bindings/scripts/test/TestStringifierOperationNamedToString.idl: Added.
  • bindings/scripts/test/TestStringifierReadOnlyAttribute.idl: Added.
  • bindings/scripts/test/TestStringifierReadWriteAttribute.idl: Added.

Add new tests.

1:14 PM Changeset in webkit [218788] by ggaren@apple.com
  • 8 edits in trunk/Source/bmalloc

bmalloc: Add a per-thread line cache
https://bugs.webkit.org/show_bug.cgi?id=173552

Reviewed by Darin Adler.

Previously, any thread could allocate out of any page with free lines.
Now, the first thread to free a line in a page owns that page's free
lines until the whole page becomes free.

This patch is a big speedup on multi-threaded benchmarks.
tree_churn --parallel gets 14% faster on a 2-core (4-hyper-core) MacBook
Air and 2.85X faster on 12-core (24-hyper-core) Mac Pro. Other parallel
benchmarks show significant but smaller speedups.

Thread affinity is a great predictor of object lifetime. The per-thread
line cache avoids the pathology of shuffling pages between threads,
turning predictable lifetimes into unpredictable lifetimes, increasing
fragmentation. On tree_churn --parallel, the per-thread line cache
increases free memory found per page scanned by 2.85X.

Free line scanning in fragmented pages is pretty expensive relative to
other allocate / initialize / free operations. According to Instruments,
on tree_churn --parallel, scanning is about 10X more expensive than
freeing. This explains why a 2.85X improvement in scanning efficiency
translates into a 2.85X overall speedup on tree_churn --parallel.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::refillAllocatorSlowCase): Pass through our line
cache so the Heap can fill it.

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::scavenge): Scavenge our line cache.

(bmalloc::Deallocator::processObjectLog): Deleted.

  • bmalloc/Deallocator.h:

(bmalloc::Deallocator::lineCache): Added a line cache.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::deallocateLineCache): Deallocation function for thread
destruction.

(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject): Consult the new per-thread line
cache for allocation and deallocation.

  • bmalloc/Heap.h:

(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine):

  • bmalloc/List.h:

(bmalloc::List::remove): Remove has always been a logically static
operation. Declare it static now so that the Heap can remove a page from
a thread's line cache without holding a direct pointer to the cache.

  • bmalloc/SmallPage.h:
8:14 AM Changeset in webkit [218787] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit2

[GTK] Introspection: webkit_web_view_new_with_related_view needs to be marked as a constructor
https://bugs.webkit.org/show_bug.cgi?id=173765

Reviewed by Carlos Garcia Campos.

Because the first parameter to this WebKitWebView constructor is itself a WebKitWebView,
the gi-scanner's heuristics decide that it's probably an object method rather than a
constructor, resulting in improper introspection generation. Annotate it with (constructor)
to override this behavior.

  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:
  • UIProcess/API/wpe/WebKitWebViewWPE.cpp:
3:24 AM Changeset in webkit [218786] by Konstantin Tokarev
  • 4 edits in trunk/Source/WebKit2

Unreviewed, rolling out r218785.
https://bugs.webkit.org/show_bug.cgi?id=173808

This change broke the macOS Sierra build (Requested by
annulen|home on #webkit).

Reverted changeset:

"Removed unused lambda captures from WebKit2"
https://bugs.webkit.org/show_bug.cgi?id=173555
http://trac.webkit.org/changeset/218785

Patch by Commit Queue <commit-queue@webkit.org> on 2017-06-24

3:16 AM Changeset in webkit [218785] by Konstantin Tokarev
  • 4 edits in trunk/Source/WebKit2

Removed unused lambda captures from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=173555

Reviewed by Alex Christensen.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::topPrivatelyControlledDomainsWithWebsiteData):

1:06 AM Changeset in webkit [218784] by commit-queue@webkit.org
  • 19 edits
    3 deletes in trunk

Remove Reflect.enumerate
https://bugs.webkit.org/show_bug.cgi?id=173806

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-06-24
Reviewed by Yusuke Suzuki.

JSTests:

  • ChakraCore.yaml:
  • es6.yaml:

These tests now fail because they use Reflect.enumerate.

  • test262.yaml:

This test now passes, it checked that Reflect.enumerate is undefined!

  • stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js:

Convert to for..in which presented the original issue. See bug <https://webkit.org/b/149811>

  • stress/reflect-enumerate.js: Removed.

Remove a test solely for Reflect.enumerate.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSPropertyNameIterator.cpp: Removed.
  • runtime/JSPropertyNameIterator.h: Removed.
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectEnumerate): Deleted.

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:
  • platform/mac/inspector/model/remote-object-expected.txt:
12:14 AM Changeset in webkit [218783] by Chris Fleizach
  • 8 edits
    2 adds in trunk

AX: Cannot call setValue() on contenteditable or ARIA text controls
https://bugs.webkit.org/show_bug.cgi?id=173520

Reviewed by Ryosuke Niwa.

Source/WebCore:

Add support for changing the value of a contenteditable and any other aria text control in setValue().

Test: accessibility/mac/set-value-editable-types.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setValue):

Tools:

Add setValue() method to WKTR (already existed in DRT).

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::setValue):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setValue):

LayoutTests:

  • accessibility/mac/set-value-editable-types-expected.txt: Added.
  • accessibility/mac/set-value-editable-types.html: Added.

Jun 23, 2017:

7:54 PM Changeset in webkit [218782] by keith_miller@apple.com
  • 22 edits in trunk

Switch VMTraps to use halt instructions rather than breakpoint instructions
https://bugs.webkit.org/show_bug.cgi?id=173677
Source/JavaScriptCore:

<rdar://problem/32178892>

Reviewed by JF Bastien.

Using the breakpoint instruction for VMTraps caused issues with lldb.
Since we only need some way to stop execution we can, in theory, use
any exceptioning instruction we want. I went with the halt instruction
on X86 since that is the only one byte instruction that does not
breakpoint (in my tests both 0xf1 and 0xd6 produced EXC_BREAKPOINT).
On ARM we use the data cache clearing instruction with the zero register,
which triggers a segmentation fault.

Also, update the platform code to only use signaling VMTraps
on where we have an appropriate instruction (x86 and ARM64).

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::replaceWithVMHalt):
(JSC::ARM64Assembler::dataCacheZeroVirtualAddress):
(JSC::ARM64Assembler::replaceWithBkpt): Deleted.

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::replaceWithBkpt): Deleted.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::replaceWithBkpt): Deleted.

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::replaceWithBkpt): Deleted.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::replaceWithBreakpoint): Deleted.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::replaceWithVMHalt):
(JSC::MacroAssemblerARM64::replaceWithBreakpoint): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::storeFence):
(JSC::MacroAssemblerARMv7::replaceWithBreakpoint): Deleted.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::replaceWithBreakpoint): Deleted.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::replaceWithVMHalt):
(JSC::MacroAssemblerX86Common::replaceWithBreakpoint): Deleted.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::replaceWithHlt):
(JSC::X86Assembler::replaceWithInt3): Deleted.

  • dfg/DFGJumpReplacement.cpp:

(JSC::DFG::JumpReplacement::installVMTrapBreakpoint):

  • runtime/VMTraps.cpp:

(JSC::SignalContext::SignalContext):
(JSC::installSignalHandler):
(JSC::SignalContext::adjustPCToPointToTrappingInstruction): Deleted.

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::enableFastMemory):

Source/WTF:

<rdar://problem/32178892>

Reviewed by JF Bastien.

Remove the Trap signal handler code since it plays badly with lldb and combine
SIGBUS with SIGSEGV since distiguishing them is generally non-portable.

Also, update the platform code to only use signaling VMTraps
on where we have an appropriate instruction (x86 and ARM64).

  • wtf/Platform.h:
  • wtf/threads/Signals.cpp:

(WTF::fromMachException):
(WTF::toMachMask):
(WTF::installSignalHandler):
(WTF::jscSignalHandler):

  • wtf/threads/Signals.h:

(WTF::toSystemSignal):
(WTF::fromSystemSignal):

Tools:

Reviewed by JF Bastien.

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:

(TEST):

7:45 PM Changeset in webkit [218781] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Script Timeline bubbles sometimes appear to miss large events
https://bugs.webkit.org/show_bug.cgi?id=173746
<rdar://problem/32950808>

Reviewed by Brian Burg.

  • UserInterface/Models/Timeline.js:

(WebInspector.Timeline.prototype.addRecord):
(WebInspector.Timeline.prototype._tryInsertInSortedOrder):
The list of records is assumed to be sorted by the code that draws bubbles
however the order in which we receive them may not be sorted. Make a quick
effort to sort recent records so that as we are drawing the timeline it is
more accurate.

7:19 PM Changeset in webkit [218780] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove an unused typedef from WebFrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=173795

Reviewed by Simon Fraser.

  • WebCoreSupport/WebFrameLoaderClient.h:

This unused typedef in the global namespace conflicts with one in a macOS system header.
Also... it's unused.
Remove it.

6:56 PM Changeset in webkit [218779] by Chris Dumez
  • 4 edits in trunk/LayoutTests

fast/events/page-visibility-iframe-delete-test.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=173798

Reviewed by Simon Fraser.

Modernize the test and deflake it by not making it rely on a specific order
for the visibilitychange events. The event queues are per documents and there
is therefore no guarantee those events will fire in frame tree order.

  • fast/events/page-visibility-iframe-delete-test-expected.txt:
  • fast/events/page-visibility-iframe-delete-test.html:
6:25 PM Changeset in webkit [218778] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Attempt to fix an internal build after r218755.

  • bindings/js/JSMainThreadExecStateInstrumentation.h:
5:35 PM Changeset in webkit [218777] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: flip all go-to-arrow instances
https://bugs.webkit.org/show_bug.cgi?id=173794
<rdar://problem/32221912>

Reviewed by Joseph Pecoraro.

Move the flipping transform so it applies to all go-to arrows.

  • UserInterface/Views/DataGrid.css:

(body[dir=rtl] .data-grid td .go-to-arrow):

  • UserInterface/Views/Main.css:

(body[dir=rtl] .go-to-arrow):

5:03 PM Changeset in webkit [218776] by Antti Koivisto
  • 2 edits in trunk/Source/WTF

Add notifyutil registrations for going in and out of simulated low memory state
https://bugs.webkit.org/show_bug.cgi?id=173797

Reviewed by Andreas Kling.

Add

notifyutil -p org.WebKit.lowMemory.begin
notifyutil -p org.WebKit.lowMemory.end

for debugging.

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::install):

4:24 PM Changeset in webkit [218775] by Chris Dumez
  • 5 edits in trunk/Source

Add release assertion to make sure callbackIdentifier is not 0 in DocumentLoader::finishedLoadingIcon()
https://bugs.webkit.org/show_bug.cgi?id=173792

Reviewed by Ryosuke Niwa.

Add release assertion to make sure callbackIdentifier is not 0 in DocumentLoader::finishedLoadingIcon()
as this could cause HashTable corruption on WebPageProxy side.

Source/WebCore:

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoadingIcon):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::finishedLoadingIcon):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
4:21 PM Changeset in webkit [218774] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add a binary data channel webrtc test
https://bugs.webkit.org/show_bug.cgi?id=173787

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-23
Reviewed by Alex Christensen.

  • webrtc/datachannel/binary-expected.txt: Added.
  • webrtc/datachannel/binary.html: Added.
4:16 PM Changeset in webkit [218773] by commit-queue@webkit.org
  • 14 edits in trunk

Set getUserMedia permission to true by default on WTR
https://bugs.webkit.org/show_bug.cgi?id=173610

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-23
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/simplecall-expected.txt:

Tools:

Adding a way to reset the getUserMedia permission to pending.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::setUserMediaPermissionAsUnset):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setUserMediaPermissionAsUnset):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::setUserMediaPermissionAsUnset):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

  • fast/mediastream/delayed-permission-allowed.html:
  • fast/mediastream/delayed-permission-denied.html:
4:08 PM Changeset in webkit [218772] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

webrtc/routines.js should call createAnswer once setRemoteDescription promise is resolved
https://bugs.webkit.org/show_bug.cgi?id=173785

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-23
Reviewed by Alex Christensen.

  • webrtc/routines.js:
4:06 PM Changeset in webkit [218771] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

webrtc::WebRtcSession is not handling correctly its state when setLocalDescription fails and is called again
https://bugs.webkit.org/show_bug.cgi?id=173783

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-23
Reviewed by Alex Christensen.

Source/WebCore:

Test: webrtc/libwebrtc/setLocalDescriptionCrash.html

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::doSetLocalDescription): Fail early if there is no pending remote description and description is for an answer.

LayoutTests:

  • webrtc/libwebrtc/setLocalDescriptionCrash-expected.txt: Added.
  • webrtc/libwebrtc/setLocalDescriptionCrash.html: Added.
3:50 PM Changeset in webkit [218770] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Added additional test expectations for webrtc/video-replace-muted-track.html.
https://bugs.webkit.org/show_bug.cgi?id=173608

Unreviewed test expectations.

  • platform/mac-wk2/TestExpectations:
3:50 PM Changeset in webkit [218769] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

Stop passing Vector by value in WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores()
https://bugs.webkit.org/show_bug.cgi?id=173782

Reviewed by Brent Fulgham.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):

3:10 PM Changeset in webkit [218768] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[MediaStream macOS] enumerateDevices should only return valid audio capture devices
https://bugs.webkit.org/show_bug.cgi?id=173790
<rdar://problem/32260334>

Reviewed by Youenn Fablet.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

(WebCore::isValidCaptureDevice): A valid device has a name and is not an aggregate device
created by VPIO.
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):

3:08 PM Changeset in webkit [218767] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Avoid copying HashSet to Vector in WebPageProxy::clearLoadDependentCallbacks()
https://bugs.webkit.org/show_bug.cgi?id=173786

Reviewed by Geoffrey Garen.

Avoid copying HashSet to Vector in WebPageProxy::clearLoadDependentCallbacks().
Instead, just move the HashSet and iterate on that. This is OK since we were
clearing the HashSet right after copying it to the vector anyway.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::clearLoadDependentCallbacks):

2:34 PM Changeset in webkit [218766] by jmarcell@apple.com
  • 7 edits in tags/Safari-604.1.27.0.1/Source

Versioning.

2:33 PM Changeset in webkit [218765] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed, fix Debug build after r218763

  • NetworkProcess/NetworkDataTask.cpp:
2:26 PM Changeset in webkit [218764] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Add more release logging for process assertions
https://bugs.webkit.org/show_bug.cgi?id=173624
<rdar://problem/32412701>

Reviewed by Geoffrey Garen.

Add more release logging for process assertions to help debug issues such
as <rdar://problem/32412701>.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::didConnectToProcess):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAssertion::setState):

2:18 PM Changeset in webkit [218763] by Chris Dumez
  • 19 edits in trunk/Source/WebKit2

Consistently use RunLoop::isMain() in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=173745
<rdar://problem/32936527>

Reviewed by Brent Fulgham.

Consistently use RunLoop:isMain() on WebKit2 instead of WTF::isMainThread().
WTF::isMainThread() returns true for the WebThread instead of the UIThread
in WebKit1. Therefore WTF::isMainThread() is unsafe to use in the UIProcess
as the application may be using WebKit1 as well and have a WebThread.

Technically, we only *need* to move from WTF::isMainThread() to
RunLoop::isMain() in the UIProcess code but I ported all of WebKit2 for
consistency. RunLoop::isMain() is always safe in WebKit2.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::NetworkDataTask):
(WebKit::NetworkDataTask::~NetworkDataTask):

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::getSizeForNext):
(WebKit::NetworkDataTaskBlob::didGetSize):
(WebKit::NetworkDataTaskBlob::seek):
(WebKit::NetworkDataTaskBlob::read):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::notifyDidReceiveResponse):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::defaultSession):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::resourceType):
(WebKit::NetworkCache::Cache::initialize):

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSyncInThread):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::defaultSession):
(WebKit::NetworkSessionCocoa::dataTaskForIdentifier):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebKit::CoordinatedGraphicsScene::syncRemoteContent):
(WebKit::CoordinatedGraphicsScene::detach):
(WebKit::CoordinatedGraphicsScene::appendUpdate):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::WorkQueuePool::singleton):
(WebKit::WorkQueuePool::dispatch):
(WebKit::CompositingRunLoop::~CompositingRunLoop):
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext):
(WebKit::ThreadedCompositor::renderNextFrame):
(WebKit::ThreadedCompositor::commitScrollOffset):
(WebKit::ThreadedCompositor::updateSceneState):
(WebKit::ThreadedCompositor::releaseUpdateAtlases):
(WebKit::ThreadedCompositor::frameComplete):

  • Shared/Plugins/NPObjectProxy.cpp:

(WebKit::NPObjectProxy::NP_Deallocate):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebiteData):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver):
(WebKit::WebResourceLoadStatisticsStore::writeStoreToDisk):
(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _highlightLinkAnnotation:forDuration:completionHandler:]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]):

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):

  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamReadAsync):

1:50 PM Changeset in webkit [218762] by fred.wang@free.fr
  • 1 edit
    2 deletes in trunk/LayoutTests

Remove fast/regions/region-leak-js-information-when-disabled-at-runtime.html
https://bugs.webkit.org/show_bug.cgi?id=173784

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-23
Reviewed by Simon Fraser.

fast/regions/region-leak-js-information-when-disabled-at-runtime.html is supposed to test
that some JS properties are undefined when CSS regions are disabled at runtime. However, this
part is currently commented out and the test is no longer relevant after r200524. Hence we
just remove it.

  • fast/regions/region-leak-js-information-when-disabled-at-runtime-expected.txt: Removed.
  • fast/regions/region-leak-js-information-when-disabled-at-runtime.html: Removed.
1:49 PM Changeset in webkit [218761] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.27.0.1

New tag.

1:45 PM Changeset in webkit [218760] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit2

v3: REGRESSION (r218419): 3 NSMutableDictionary leaks calling -[WKProcessPool _pluginLoadClientPolicies]
<https://webkit.org/b/173689>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(policiesHashMapToDictionary): Use adoptNS().get() to avoid
dumping objects into autoreleasepools unnecessarily.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

(-[WKProcessPool _pluginLoadClientPolicies]): Add back 'copy'
attribute to document that we're returning a new object on each
invocation. I shouldn't have removed it in the v2 patch.

1:43 PM Changeset in webkit [218759] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

LibWebRTCSocketClient should not destroy its socket within signalClose callback
https://bugs.webkit.org/show_bug.cgi?id=173739

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-23
Reviewed by Brent Fulgham.

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::signalClose): Destroy 'this' asynchronously to make the caller of signalClose valid until it is not used.

1:12 PM Changeset in webkit [218758] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

Fix typo in WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData() naming
https://bugs.webkit.org/show_bug.cgi?id=173781

Reviewed by Brent Fulgham.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData):
(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebiteData): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):

12:32 PM Changeset in webkit [218757] by jer.noble@apple.com
  • 14 edits in trunk/Source

[WK2] Support -[WebAVPlayerController setMuted:]
https://bugs.webkit.org/show_bug.cgi?id=173777

Reviewed by Eric Carlson.

Source/WebCore:

Have -[WebAVPlayerController setMuted:] pass the request to its delegate (the model)
rather than just storing the value.

  • platform/cocoa/WebPlaybackSessionModel.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebCore::WebPlaybackSessionModelMediaElement::toggleMuted):
(WebCore::WebPlaybackSessionModelMediaElement::setMuted):

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

(-[WebAVPlayerController isMuted]):
(-[WebAVPlayerController setMuted:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setMuted):

Source/WebKit2:

Add a SetMuted message to WebPlaybackSessionManager.

Drive-by refactoring: Because the new setMuted() method conflicts with the existing setMuted()
notification, do a giant rename of the notificiation methods from set(Value) -> (value)Changed.

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionModelContext::setMuted):
(WebKit::WebPlaybackSessionModelContext::playbackStartedTimeChanged):
(WebKit::WebPlaybackSessionModelContext::durationChanged):
(WebKit::WebPlaybackSessionModelContext::currentTimeChanged):
(WebKit::WebPlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::WebPlaybackSessionModelContext::rateChanged):
(WebKit::WebPlaybackSessionModelContext::seekableRangesChanged):
(WebKit::WebPlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::WebPlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::WebPlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::WebPlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionModelContext::mutedChanged):
(WebKit::WebPlaybackSessionManagerProxy::currentTimeChanged):
(WebKit::WebPlaybackSessionManagerProxy::bufferedTimeChanged):
(WebKit::WebPlaybackSessionManagerProxy::seekableRangesVectorChanged):
(WebKit::WebPlaybackSessionManagerProxy::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManagerProxy::audioMediaSelectionIndexChanged):
(WebKit::WebPlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged):
(WebKit::WebPlaybackSessionManagerProxy::externalPlaybackPropertiesChanged):
(WebKit::WebPlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionManagerProxy::mutedChanged):
(WebKit::WebPlaybackSessionManagerProxy::durationChanged):
(WebKit::WebPlaybackSessionManagerProxy::playbackStartedTimeChanged):
(WebKit::WebPlaybackSessionManagerProxy::rateChanged):
(WebKit::WebPlaybackSessionManagerProxy::setMuted):
(WebKit::WebPlaybackSessionManagerProxy::controlsManagerInterface):
(WebKit::WebPlaybackSessionModelContext::setPlaybackStartedTime): Deleted.
(WebKit::WebPlaybackSessionModelContext::setDuration): Deleted.
(WebKit::WebPlaybackSessionModelContext::setCurrentTime): Deleted.
(WebKit::WebPlaybackSessionModelContext::setBufferedTime): Deleted.
(WebKit::WebPlaybackSessionModelContext::setRate): Deleted.
(WebKit::WebPlaybackSessionModelContext::setSeekableRanges): Deleted.
(WebKit::WebPlaybackSessionModelContext::setCanPlayFastReverse): Deleted.
(WebKit::WebPlaybackSessionModelContext::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionModelContext::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionModelContext::setAudioMediaSelectionIndex): Deleted.
(WebKit::WebPlaybackSessionModelContext::setLegibleMediaSelectionIndex): Deleted.
(WebKit::WebPlaybackSessionModelContext::setExternalPlayback): Deleted.
(WebKit::WebPlaybackSessionModelContext::setWirelessVideoPlaybackDisabled): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setCurrentTime): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setBufferedTime): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setSeekableRangesVector): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setCanPlayFastReverse): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionIndex): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionIndex): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setExternalPlaybackProperties): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setWirelessVideoPlaybackDisabled): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setDuration): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setPlaybackStartedTime): Deleted.
(WebKit::WebPlaybackSessionManagerProxy::setRate): Deleted.

  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.messages.in:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::durationChanged):
(WebKit::WebPlaybackSessionManager::currentTimeChanged):
(WebKit::WebPlaybackSessionManager::bufferedTimeChanged):
(WebKit::WebPlaybackSessionManager::playbackStartedTimeChanged):
(WebKit::WebPlaybackSessionManager::rateChanged):
(WebKit::WebPlaybackSessionManager::seekableRangesChanged):
(WebKit::WebPlaybackSessionManager::canPlayFastReverseChanged):
(WebKit::WebPlaybackSessionManager::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::externalPlaybackChanged):
(WebKit::WebPlaybackSessionManager::audioMediaSelectionIndexChanged):
(WebKit::WebPlaybackSessionManager::legibleMediaSelectionIndexChanged):
(WebKit::WebPlaybackSessionManager::wirelessVideoPlaybackDisabledChanged):
(WebKit::WebPlaybackSessionManager::mutedChanged):
(WebKit::WebPlaybackSessionManager::setMuted):

12:13 PM Changeset in webkit [218756] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Make RenderLayer::handleTouchEvent use usesAcceleratedScrolling()
https://bugs.webkit.org/show_bug.cgi?id=173763

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-23
Reviewed by Simon Fraser.

No new tests, behavior is unchanged.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::handleTouchEvent): Call usesAcceleratedScrolling() instead of
hasTouchScrollableOverflow() for clarity.

12:07 PM Changeset in webkit [218755] by Konstantin Tokarev
  • 44 edits
    1 add in trunk/Source

Remove excessive headers from WebCore/{bindings,css,dom}
https://bugs.webkit.org/show_bug.cgi?id=173766

Reviewed by Simon Fraser.

Source/WebCore:

No new tests needed.

  • ForwardingHeaders/runtime/ThrowScope.h: Added.
  • Modules/plugins/QuickTimePluginReplacement.mm:
  • bindings/js/CachedScriptSourceProvider.h:
  • bindings/js/JSCommandLineAPIHostCustom.cpp:
  • bindings/js/JSCustomXPathNSResolver.cpp:
  • bindings/js/JSDOMConstructorNotConstructable.h:
  • bindings/js/JSDOMConvertBase.h:
  • bindings/js/JSDOMConvertBufferSource.h:
  • bindings/js/JSDOMConvertInterface.h:
  • bindings/js/JSDOMConvertStrings.h:
  • bindings/js/JSDOMConvertUnion.h:
  • bindings/js/JSDOMConvertVariadic.h:
  • bindings/js/JSDOMConvertWebGL.h:
  • bindings/js/JSDOMExceptionHandling.h:
  • bindings/js/JSDOMIterator.h:
  • bindings/js/JSDOMMapLike.h:
  • bindings/js/JSDOMWindowBase.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:
  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSDOMWindowProperties.h:
  • bindings/js/JSDOMWrapperCache.h:
  • bindings/js/JSLazyEventListener.cpp:
  • bindings/js/JSMainThreadExecStateInstrumentation.h:
  • bindings/js/JSMediaListCustom.h:
  • bindings/js/JSNodeCustom.h:
  • bindings/js/JSNodeListCustom.h:
  • bindings/js/JSVideoTrackListCustom.cpp:
  • bindings/js/ScheduledAction.h:
  • bindings/js/ScriptSourceCode.h:
  • bindings/js/SerializedScriptValue.h:
  • bindings/js/WebCoreJSClientData.h:
  • css/CSSFontFeatureValue.h:
  • css/CSSPrimitiveValue.h:
  • css/CSSStyleSheet.h:
  • css/CSSValue.h:
  • css/StyleBuilderCustom.h:
  • dom/ContainerNodeAlgorithms.h:
  • dom/DataTransfer.h:
  • dom/Node.h:
  • dom/NodeRareData.h:
  • dom/Position.h:
  • dom/RenderedDocumentMarker.h:

Source/WebKit/mac:

  • DOM/DOMInternal.mm:
11:48 AM Changeset in webkit [218754] by fred.wang@free.fr
  • 65 edits
    1 delete in trunk

Use window.internals instead of overridePreference to set WebCore settings in tests
https://bugs.webkit.org/show_bug.cgi?id=173714

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-23
Reviewed by Simon Fraser.

Source/WebKit2:

This commit remove preference to settings mapping in overrideBoolPreferenceForTestRunner that
are no longer necessary after the changes done in LayoutTests.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Remove mapping for preferences
that no longer require testRunner.overridePreference calls in tests.

LayoutTests:

This commit is a first step to replace the use of testRunner.overridePreference with
internals.settings.set* calls in tests. Such a call will fail immediately and obviously if
its a function that does not exist, and these settings are restored properly between tests.
Some preferences that do not have a WebCore setting or an internals.settings setter are not
handled yet. The temporary failure added in r218480 for fast/frames/flattening/set-preference
is removed and so is a custom expectation caret-mode-document-begin-end for Mac WK1.

  • accessibility/gtk/caret-browsing-select-focus.html: Use internals.settings.set* function.
  • accessibility/gtk/caret-browsing-text-focus.html: Ditto.
  • accessibility/gtk/caret-offsets-and-extraneous-white-spaces.html: Ditto.
  • accessibility/gtk/caret-offsets.html: Ditto.
  • accessibility/gtk/text-in-span-block-in-a-block.html: Ditto.
  • css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html: Ditto.
  • css3/blending/blend-mode-simple.html: Ditto.
  • css3/blending/effect-background-blend-mode.html: Ditto.
  • css3/filters/blur-filter-page-scroll-parents.html: Ditto.
  • css3/filters/blur-filter-page-scroll-self.html: Ditto.
  • css3/filters/blur-filter-page-scroll.html: Ditto.
  • css3/filters/effect-blur.html: Ditto.
  • css3/filters/effect-brightness-clamping.html: Ditto.
  • css3/filters/effect-brightness.html: Ditto.
  • css3/filters/effect-combined.html: Ditto.
  • css3/filters/effect-contrast.html: Ditto.
  • css3/filters/effect-drop-shadow.html: Ditto.
  • css3/filters/effect-grayscale.html: Ditto.
  • css3/filters/effect-hue-rotate.html: Ditto.
  • css3/filters/effect-invert.html: Ditto.
  • css3/filters/effect-opacity.html: Ditto.
  • css3/filters/effect-saturate.html: Ditto.
  • css3/filters/effect-sepia.html: Ditto.
  • css3/filters/filter-repaint.html: Ditto.
  • css3/filters/null-effect-check.html: Ditto.
  • editing/selection/caret-mode-document-begin-end.html: Ditto.
  • editing/selection/caret-mode-paragraph-keys-navigation.html: Ditto.
  • fast/animation/request-animation-frame-disabled.html: Ditto.
  • fast/canvas/canvas-blend-image.html: Ditto.
  • fast/canvas/canvas-blend-solid.html: Ditto.
  • fast/canvas/canvas-imageSmoothingQuality.html: Ditto.
  • fast/canvas/drawImage-with-small-values.html: Ditto.
  • fast/images/exif-orientation-composited.html: Ditto.
  • fast/images/exif-orientation-css.html: Ditto.
  • fast/images/exif-orientation.html: Ditto.
  • fast/images/image-controls-basic.html: Ditto.
  • fast/parser/pre-html5-parser-quirks.html: Ditto.
  • fast/repaint/no-caret-repaint-in-non-content-editable-element.html: Ditto.
  • http/tests/appcache/disabled.html: Ditto.
  • http/tests/contentextensions/block-cookies-in-ping.html: Ditto.
  • http/tests/contentextensions/block-ping.html: Ditto.
  • http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html: Ditto.
  • http/tests/contentextensions/hide-on-ping.html: Ditto.
  • http/tests/misc/favicon-loads-with-icon-loading-override.html: Ditto.
  • http/tests/navigation/ping-attribute/anchor-cookie.html: Ditto.
  • http/tests/navigation/ping-attribute/anchor-cross-origin-from-https.html: Ditto.
  • http/tests/navigation/ping-attribute/anchor-cross-origin.html: Ditto.
  • http/tests/navigation/ping-attribute/anchor-ping-and-follow-redirect-when-sending-ping.html: Ditto.
  • http/tests/navigation/ping-attribute/anchor-same-origin.html: Ditto.
  • http/tests/navigation/ping-attribute/area-cookie.html: Ditto.
  • http/tests/navigation/ping-attribute/area-cross-origin-from-https.html: Ditto.
  • http/tests/navigation/ping-attribute/area-cross-origin.html: Ditto.
  • http/tests/navigation/ping-attribute/area-same-origin.html: Ditto.
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html: Ditto.
  • imported/blink/fast/css/image-orientation/image-orientation-dynamic-expected.html: Ditto.
  • loader/meta-refresh-disabled.html: Ditto.
  • media/crash-closing-page-with-media-as-plugin-fallback.html: Ditto.
  • platform/mac-wk1/editing/selection/caret-mode-document-begin-end-expected.txt: Removed.

Mac WK1 now produces the same output as other platforms.

  • platform/mac/TestExpectations: Remove the failure for FrameFlattening now that the test

uses internals.settings.set*.

  • platform/mac/fast/frames/flattening/set-preference.html: Use internals.settings.set*.
  • plugins/crash-restoring-plugin-page-from-page-cache.html: Ditto.
  • plugins/frameset-with-plugin-frame.html: Ditto.
  • plugins/netscape-plugin-page-cache-works.html: Ditto.
11:05 AM Changeset in webkit [218753] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit2

Avoid moving the same vector multiple times
https://bugs.webkit.org/show_bug.cgi?id=173748
<rdar://problem/32936804>

Reviewed by Chris Dumez.

We discovered that a Vector<String> was being moved inside a loop, causing it to be moved more than once.
We should never do this!

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
Do not perform a move at each step of the iteration.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains): Receive vector of top privately
controlled domains as a const reference. Copy this vector into the completion handler. Do not move
origins out of the vector in the inner loop.
(WebKit::WebsiteDataStore::removeDataForTopPrivatelyControlledDomains): Receive vector of top privately
controlled domains as a const reference.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
10:55 AM WebKitGTK/DependenciesPolicy edited by Michael Catanzaro
Policy now applies only to runtime dependencies, not to build toolchain (diff)
10:54 AM Changeset in webkit [218752] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix broken WinCairo build

[Curl] Extract CurlDownloadManager as shared background task handler
https://bugs.webkit.org/show_bug.cgi?id=173557

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-06-23
Reviewed by Joseph Pecoraro.

  • platform/network/curl/CurlManager.h:
10:33 AM Changeset in webkit [218751] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

[iOS] Potential crash under WebCore::notifyLowPowerModeChanged(WebCore::LowPowerModeNotifier*, bool)
https://bugs.webkit.org/show_bug.cgi?id=173755
<rdar://problem/32940942>

Reviewed by Mark Lam.

The crash was happening because the WebLowPowerModeObserver would dispatch
a lambda to the main thread but the LowPowerModeNotifier object could be
dead by the time we get to the main thread.

To address the issue, keep a strong ref to the WebLowPowerModeObserver in
the lambda we dispatch to the main thread to make sure it stays alive until
we execute the lambda. In the LowPowerModeNotifier destructor, we now reset
the WebLowPowerModeObserver's notifier pointer to nil and I added a null
check for this notifier in the lambda.

  • platform/LowPowerModeNotifier.cpp:

(WebCore::LowPowerModeNotifier::~LowPowerModeNotifier):

  • platform/LowPowerModeNotifier.h:
  • platform/ios/LowPowerModeNotifierIOS.mm:

(-[WebLowPowerModeObserver initWithNotifier:]):
(-[WebLowPowerModeObserver _didReceiveLowPowerModeChange]):
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::~LowPowerModeNotifier):
(WebCore::notifyLowPowerModeChanged):

10:25 AM Changeset in webkit [218750] by achristensen@apple.com
  • 22 edits
    1 add in trunk

Add SPI to WKURLSchemeTask for redirection
https://bugs.webkit.org/show_bug.cgi?id=173730

Reviewed by Brady Eidson.

Source/WebCore:

  • platform/network/CacheValidation.cpp:

(WebCore::computeFreshnessLifetimeForHTTPFamily):
Asserting that redirects are always http/https URLs is no longer valid.
If there's a custom scheme redirect, give it no freshness lifetime in the cache.

Source/WebKit2:

This is needed for testing an upcoming fix for redirect callbacks, and it might be
necessary for loading with custom schemes in general. Right now just responding with

an HTTP 301/302/307/308 response code doesn't work because there is nothing that

synthesizes an NSURLRequest from the Location header like we do in
SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest et al. for HSTS,
and that would require using an NSHTTPURLResponse for non-HTTP responses, which is
conceptually wrong. Instead of waiting for a completion handler in the API, we are
following the pattern of WKNavigationDelegate.didReceiveServerRedirectForProvisionalNavigation
and allowing the SPI to indicate that a redirect has happened to update the state of
WebKit, but not allowing the SPI to wait for a processed request and slow down loading.

This adds WKURLSchemeTaskPrivate._didPerformRedirection which is covered by new API tests.

  • UIProcess/API/Cocoa/WKURLSchemeTask.mm:

(raiseExceptionIfNecessary):
(-[WKURLSchemeTaskImpl _didPerformRedirection:newRequest:completionHandler:]):

  • UIProcess/API/Cocoa/WKURLSchemeTaskInternal.h:
  • UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::startURLSchemeTask):
(WebKit::WebPageProxy::stopURLSchemeTask):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebURLSchemeHandler.cpp:

(WebKit::WebURLSchemeHandler::startTask):
(WebKit::WebURLSchemeHandler::stopTask):

  • UIProcess/WebURLSchemeHandler.h:
  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveResponse): Deleted.
(WebKit::WebURLSchemeTask::didReceiveData): Deleted.
(WebKit::WebURLSchemeTask::didComplete): Deleted.

  • UIProcess/WebURLSchemeTask.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::urlSchemeTaskDidPerformRedirection):

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

(WebKit::WebURLSchemeHandlerProxy::taskDidPerformRedirection):

  • WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:

(WebKit::WebURLSchemeTaskProxy::didPerformRedirection):

  • WebProcess/WebPage/WebURLSchemeTaskProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm:

(-[SchemeHandler webView:startURLSchemeTask:]):
(-[SchemeHandler webView:stopURLSchemeTask:]):
(TEST):
(-[RedirectSchemeHandler webView:startURLSchemeTask:]):
(-[RedirectSchemeHandler webView:stopURLSchemeTask:]):
(-[RedirectSchemeHandler webView:didReceiveServerRedirectForProvisionalNavigation:]):
(-[RedirectSchemeHandler webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[RedirectSchemeHandler userContentController:didReceiveScriptMessage:]):

10:21 AM Changeset in webkit [218749] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

[WK2][macOS] Support Mac Mini Flash Player Features
https://bugs.webkit.org/show_bug.cgi?id=173581
<rdar://problem/32804073>

Reviewed by Dean Jackson.

Revise the sandboxes for additional IOKit properties identified during Flash video player
testing.

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:11 AM Changeset in webkit [218748] by Konstantin Tokarev
  • 57 edits in trunk/Source/WebCore

Remove excessive headers from WebCore/{editing,fileapi,history,html,loader,page}
https://bugs.webkit.org/show_bug.cgi?id=173769

Reviewed by Simon Fraser.

No new tests needed.

  • css/CSSFontFaceSource.cpp:
  • editing/DictationCommand.cpp:
  • editing/Editor.h:
  • editing/VisiblePosition.h:
  • editing/VisibleUnits.h:
  • fileapi/BlobBuilder.h:
  • history/PageCache.h:
  • html/DOMURL.h:
  • html/HTMLCollection.h:
  • html/HTMLMediaElement.cpp:
  • html/HTMLMediaElement.h:
  • html/HTMLPlugInImageElement.cpp:
  • html/StepRange.h:
  • html/canvas/CanvasRenderingContext.h:
  • html/canvas/CanvasRenderingContext2D.h:
  • html/parser/HTMLDocumentParser.cpp:
  • html/parser/HTMLElementStack.h:
  • html/parser/HTMLInputStream.h:
  • html/shadow/MediaControlElements.cpp:
  • html/shadow/MediaControls.cpp:
  • html/shadow/MediaControls.h:
  • html/track/TrackListBase.h:
  • html/track/VTTCue.h:
  • html/track/WebVTTParser.cpp:
  • html/track/WebVTTParser.h:
  • loader/CrossOriginPreflightChecker.cpp:
  • loader/DocumentThreadableLoader.cpp:
  • loader/FrameLoaderClient.h:
  • loader/LinkPreloadResourceClients.h:
  • loader/LoadTiming.h:
  • loader/ThreadableLoaderClientWrapper.h:
  • loader/WorkerThreadableLoader.h:
  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.h:
  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedTextTrack.h:
  • loader/icon/IconLoader.cpp:
  • page/AlternativeTextClient.h:
  • page/CaptionUserPreferences.cpp:
  • page/CaptionUserPreferences.h:
  • page/ContextMenuClient.h:
  • page/MainFrame.h:
  • page/Page.h:
  • page/PageGroup.h:
  • page/PerformanceEntry.h:
  • page/PerformanceResourceTiming.h:
  • page/ResourceUsageOverlay.cpp:
  • page/ResourceUsageOverlay.h:
  • page/UserContentController.h:
  • page/UserContentProvider.h:
  • page/animation/AnimationBase.h:
  • page/animation/CSSPropertyAnimation.h:
  • page/animation/CompositeAnimation.h:
  • page/scrolling/ScrollingCoordinator.h:
  • xml/XSLTProcessorLibxslt.cpp:
  • xml/parser/XMLDocumentParserLibxml2.cpp:
8:44 AM Changeset in webkit [218747] by Chris Dumez
  • 9 edits in trunk

[mac-wk1] requestAnimationFrame callbacks may not get serviced
https://bugs.webkit.org/show_bug.cgi?id=173628

Reviewed by Simon Fraser.

Source/WebCore:

Page::setIsVisibleInternal() was firing the 'visibilitychange' event
synchronously while in the middle of updating its visibility/activity
state. This allowed the JavaScript to re-enter the method by calling
testRunner.setPageVisibility() / resetPageVisiblity() and we would
end up in an inconsistent state.

No new tests, extended existing test.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):
Do no fire the visibilitychange event synchronously as we are in the
middle of updating the page's activity state. Instead fire the
event asynchronously.

  • page/Page.cpp:

(WebCore::Page::setIsVisibleInternal):
Move the calling of Document::visibilityStateChanged() until after we're
done updating the page's visibility state.

  • testing/Internals.cpp:

(WebCore::Internals::scriptedAnimationsAreSuspended):

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

Add test infrastructure to check if scripted animations are suspended.

LayoutTests:

Extend layout test coverage.

  • fast/events/page-visibility-transition-test-expected.txt:
  • fast/events/page-visibility-transition-test.html:
8:40 AM Changeset in webkit [218746] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk/Source/WebCore

[iOS] Respond to AudioSession interruption and resume
https://bugs.webkit.org/show_bug.cgi?id=173718
<rdar://problem/32925263>

Reviewed by Youenn Fablet.

Tested manually.

  • WebCore.xcodeproj/project.pbxproj: Add CoreAudioCaptureSourceIOS.mm/.h
  • platform/mediastream/RealtimeMediaSource.h: Make createWeakPtr protected so derived classes

can use it.

  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.h: Added.
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm: Added.

(-[WebCoreAudioCaptureSourceIOSListener initWithCallback:]):
(-[WebCoreAudioCaptureSourceIOSListener invalidate]):
(-[WebCoreAudioCaptureSourceIOSListener handleInterruption:]):
(-[WebCoreAudioCaptureSourceIOSListener sessionMediaServicesWereReset:]):
(WebCore::CoreAudioCaptureSourceIOS::CoreAudioCaptureSourceIOS):
(WebCore::CoreAudioCaptureSourceIOS::~CoreAudioCaptureSourceIOS):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::suspended):
(WebCore::CoreAudioSharedUnit::setupAudioUnit): Clear m_suspended.
(WebCore::CoreAudioSharedUnit::suspend): Don't clear sources or uninitialize the audio unit,
suspend is temporary. Set m_suspended.
(WebCore::CoreAudioSharedUnit::resume): New, restart the audio unit.
(WebCore::CoreAudioCaptureSource::create): Create the correct object.
(WebCore::CoreAudioCaptureSource::scheduleReconfiguration): Dispatch to main thread if necessary.
(WebCore::CoreAudioCaptureSource::beginInterruption): New, suspend from main thread.
(WebCore::CoreAudioCaptureSource::endInterruption): New, resume/reconfigure from main thread.
(WebCore::CoreAudioCaptureSource::interrupted):

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
5:08 AM Changeset in webkit [218745] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Clean up type aliases in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=173764

Reviewed by Carlos Garcia Campos.

Drop the various type aliases created in the CoordinatedGraphicsScene
class. We can leave without these by leveraging auto where necessary.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::updateImageBacking):
(WebKit::CoordinatedGraphicsScene::clearImageBackingContents):
(WebKit::CoordinatedGraphicsScene::assignImageBackingToLayer):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
5:03 AM Changeset in webkit [218744] by zandobersek@gmail.com
  • 3 edits
    5 adds in trunk

[GCrypt] Drop the AES-CFB support
https://bugs.webkit.org/show_bug.cgi?id=173547

Reviewed by Jiewen Tan.

Source/WebCore:

No new tests -- relevant test baselines are updated.

Stop registering the AES-CFB algorithm as something that's supported by
the libgcrypt implementation. This algorithm was previously included in
the Web Crypto API specification, but has since been dropped from it.

Conveniently, libgcrypt only recently gained support for the CFB8 AES
cipher mode that's required by the specification, meaning we could only
support this algorithm with future releases of the libgcrypt library.

  • crypto/gcrypt/CryptoAlgorithmRegistryGCrypt.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):

LayoutTests:

Add GTK+-specific baselines for AES tests that also cover the CFB variation.
These tests still pass because errors are expected, it's just that errors now
occur because the algorithm isn't supported anymore, rather than because of
operation errors due to malformed parameters.

  • platform/gtk/crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt: Added.
  • platform/gtk/crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt: Added.
  • platform/gtk/crypto/subtle/aes-export-key-malformed-parameters-expected.txt: Added.
  • platform/gtk/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt: Added.
  • platform/gtk/crypto/subtle/aes-import-key-malformed-parameters-expected.txt: Added.
5:03 AM Changeset in webkit [218743] by Carlos Garcia Campos
  • 4 edits in trunk/Tools

[WPE] Use JSC API to send script messages from web extension in tests
https://bugs.webkit.org/show_bug.cgi?id=173757

Reviewed by Žan Doberšek.

The GTK+ uses DOM bindings to send the messages. We can just build the message string and use JSEvaluateScript
to run postMessage().

Fixes: /wpe/WebKitSecurityManager/file-xhr

/wpe/WebKitConsoleMessage/console-api
/wpe/WebKitConsoleMessage/js-exception
/wpe/WebKitConsoleMessage/network-error
/wpe/WebKitConsoleMessage/security-error

  • TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp:

(testWebKitConsoleMessageSecurityError): Remove ifdefs.
(beforeAll): Ditto.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextSecurityFileXHR): Ditto.
(beforeAll): Ditto.

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(consoleMessageSentCallback): Use JSEvaluateScript in WPE. We need to escape the '"' in the message string.
(pageCreatedCallback): Remove ifdefs.

4:48 AM Changeset in webkit [218742] by Konstantin Tokarev
  • 4 edits in trunk/Source/WTF

Remove more unused headers from WTF
https://bugs.webkit.org/show_bug.cgi?id=173761

Reviewed by Yusuke Suzuki.

  • wtf/Liveness.h:
  • wtf/PageAllocation.h:
  • wtf/ParallelJobs.h:
4:14 AM Changeset in webkit [218741] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[WPE] Crash in wpe_view_backend_get_renderer_host_fd
https://bugs.webkit.org/show_bug.cgi?id=173760

Reviewed by Žan Doberšek.

This can happen if views are created and destroyed quickly. The problem is that CompositingManagerProxy adds a
message receiver but never removes it, so it's possible that the message arrives right after the view has been
destroyed. This is happening most of the times running /wpe/WebKitAutomationSession/request-session that creates
3 web views in a row that are deleted when the test finishes.

Fixes /wpe/WebKitAutomationSession/request-session.

  • UIProcess/API/wpe/CompositingManagerProxy.cpp:

(WebKit::CompositingManagerProxy::finalize): Remove the message handler.

  • UIProcess/API/wpe/CompositingManagerProxy.h:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::~View): Call CompositingManagerProxy::finalize().

4:11 AM Changeset in webkit [218740] by Carlos Garcia Campos
  • 18 edits in trunk

[WPE] User script messages don't work
https://bugs.webkit.org/show_bug.cgi?id=173712

Reviewed by Žan Doberšek.

.:

Enable user script messages.

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit2:

When a user script message is received we need to create a WebKitJavascriptResult to deserialize the script
value. WebKitJavascriptResult is created with a WebKitWebView for two reasons: to get its JavaScript global
context and to take a reference that ensures the JavaScript context will be alive while the results is
alive. However, we could create the WebKitJavascriptResult with the JavaScript global context and take a
reference of the context itself. This way we don't need to access the WebKitWebView from the
WebScriptMessageHandler client. But we still need access to the JavaScript context, so I've added a
javascriptGlobalContext() method to WebPageProxy for GTK+ and WPE that is implemented from the page client.

Fixes /wpe/WebKitUserContentManager/script-message-received.

  • UIProcess/API/glib/WebKitJavascriptResult.cpp:

(_WebKitJavascriptResult::_WebKitJavascriptResult): Create the WebKitJavascriptResult with a JSGlobalContextRef
instead of a WEbKitWebView.
(webkitJavascriptResultCreate): Pass the js context to the constructor.
(webkit_javascript_result_get_global_context): Return the js context.

  • UIProcess/API/glib/WebKitJavascriptResultPrivate.h:
  • UIProcess/API/glib/WebKitUserContentManager.cpp:
  • UIProcess/API/glib/WebKitWebView.cpp:

(_WebKitWebViewPrivate::~_WebKitWebViewPrivate): Use JSRetainPtr
(webkit_web_view_get_javascript_global_context):
(webkitWebViewRunJavaScriptCallback):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::javascriptGlobalContext):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/wpe/APIViewClient.h:

(API::ViewClient::javascriptGlobalContext):

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::javascriptGlobalContext):

  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::javascriptGlobalContext):

  • UIProcess/API/wpe/WPEView.h:
  • UIProcess/PageClient.h:

(WebKit::PageClient::javascriptGlobalContext):

  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::javascriptGlobalContext):

  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::javascriptGlobalContext):

4:08 AM Changeset in webkit [218739] by Carlos Garcia Campos
  • 4 edits in trunk

[WPE] Enable PUBLIC_SUFFIX_LIST
https://bugs.webkit.org/show_bug.cgi?id=173758

Reviewed by Žan Doberšek.

.:

WebsiteDataStore needs it when fetching data.

Fixes: /wpe/WebKitCookieManager/accept-policy

/wpe/WebKitCookieManager/delete-cookies
/wpe/WebKitCookieManager/cookies-changed
/wpe/WebKitCookieManager/persistent-storage
/wpe/WebKitCookieManager/ephemeral
/wpe/WebKitWebsiteData/ephemeral
/wpe/WebKitWebsiteData/cache
/wpe/WebKitWebsiteData/storage
/wpe/WebKitWebsiteData/databases
/wpe/WebKitWebsiteData/appcache
/wpe/WebKitWebsiteData/cookies

  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • PlatformWPE.cmake: Add PublicSuffixSoup.cpp to the build.
1:21 AM Changeset in webkit [218738] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix WPE /wpe/WebKitWebView/javascript-dialogs and /wpe/WebKitWebView/window-properties

Skip onbeforeunload dialog tests for now in WPE since we don't have a implemention for
simulateUserInteraction(). And do not expect changes in "geometry" property of WebKitWindowProperties that
doesn't exist yet in WPE.

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewJavaScriptDialogs):
(testWebViewWindowProperties):

Jun 22, 2017:

10:40 PM Changeset in webkit [218737] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Upgrade pixman and cairo in jhbuild
https://bugs.webkit.org/show_bug.cgi?id=173710

Reviewed by Carlos Alberto Lopez Perez.

  • gtk/jhbuild.modules:
10:38 PM Changeset in webkit [218736] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

REGRESSION(r218686): [GTK] Several unit tests are failing after r218686 in the bots
https://bugs.webkit.org/show_bug.cgi?id=173711

Reviewed by Carlos Alberto Lopez Perez.

I can't reproduce it locally, but it's complaining about a g_setenv() and I only added one in r218686 to recover
the XDG_RUNTIME_DIR, because it's required by Wayland to work. So, I guess that env var is not set in the bots.

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp:

(WebKitTestBus::run): Ensure value is not nullptr before calling g_setenv().

9:34 PM Changeset in webkit [218735] by Antti Koivisto
  • 6 edits
    2 adds in trunk

REGRESSION(r217695): Offscreen/overflowed items not being rendered while translating in-frame
https://bugs.webkit.org/show_bug.cgi?id=173732

Reviewed by Simon Fraser.

Source/WebCore:

If an accelerated animation starts completely outside the view we fail to create backing for it
when it moves into view.

Fix by computing the full extent rect of the animation when it starts and doing the viewport overlap
testing with that.

Test: compositing/backing/transform-transition-from-outside-view.html

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::animationExtent):
(WebCore::GraphicsLayer::setAnimationExtent):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::computeVisibleAndCoverageRect):

Return the current animation transformation matrix so we can use it elsewhere without recomputing.

(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

If we have animation extent use it instead of bounds for visibility testing.

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

Track if theres is a visible ancestor layer with a transition animation.

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateCoverage):

For simplicity create backing for all sublayers of a visible transform animated layer.

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::VisibleAndCoverageRects::VisibleAndCoverageRects): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

Pass the animation extent (including descendants) to GraphicsLayer.

LayoutTests:

  • compositing/backing/transform-transition-from-outside-view-expected.txt: Added.
  • compositing/backing/transform-transition-from-outside-view.html: Added.
7:58 PM Changeset in webkit [218734] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

ResourceLoadStatisticsStore should be ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=173753
<rdar://problem/32939326>

Reviewed by Andreas Kling.

ResourceLoadStatisticsStore should be ThreadSafeRefCounted as it is ref'd/deref'd
from different threads.

  • loader/ResourceLoadStatisticsStore.h:
7:17 PM Changeset in webkit [218733] by mmaxfield@apple.com
  • 4 edits
    3 adds in trunk

@font-face rules with invalid primary fonts never download their secondary fonts
https://bugs.webkit.org/show_bug.cgi?id=173138
<rdar://problem/32554450>

Reviewed by Simon Fraser.

Source/WebCore:

We have logic in CSSFontAccessor::font() which disallows downloading a CSSFontFace if that CSSFontFace
is already in the Succeeded state. However, it was possible for a succeeded CSSFontFace to still fail
to create a font. In this situation, we wouldn't be able to use the downloaded font, and we wouldn't
try to download the next item in the src: list because the CSSFontFace is succeeded.

This patch strengthens the meaning of the Succeeded state. Previously, it just meant that the bytes
in the file were downloaded successfully. This patch extends this to also mean that the bytes in the
file can be successfully interpreted as a font. This way, the CSSFontFace in the example above won't be
set to the Succeeded state, so we will continue follow the src: list and download the secondary fonts.

This has an added benefit that the CSS Font Loading API's promises will be called more appropriately.
The transition to the Succeeded state will trigger a resolve of the promise. Now, these promises will
only be resolved if the fonts are actually parsed and understood by our text system.

Test: fast/text/font-fallback-invalid-load.html

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::fontLoaded): Move to the failed state if we can't understand the font
data. This is the crux of this patch.
(WebCore::CSSFontFaceSource::font): This function should only be called if we are in the Succeeded
state, which means now we know we should always be able to understand the bytes of the file. Therefore,
we can change some if statements into ASSERT()s.

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::createFont): Ditto.
(WebCore::CachedSVGFont::ensureCustomFontData): Similarly to CSSFontFaceSource::fontLoaded(), this
adds another check to our criteria for transitioning into the Succeeded state, which will guarantee that
later we will always be able to create the font object.

LayoutTests:

  • fast/text/font-fallback-invalid-load-expected.html: Added.
  • fast/text/font-fallback-invalid-load.html: Added.
  • fast/text/resources/bogus.svg: Added.
7:13 PM Changeset in webkit [218732] by akling@apple.com
  • 5 edits in trunk/Source

Rename MemoryPressureHandler::setTabCount to setPageCount
https://bugs.webkit.org/show_bug.cgi?id=173750

Reviewed by Daniel Bates.

Source/WebCore:

  • page/Page.cpp:

(WebCore::Page::~Page):

Source/WTF:

This function is counting WebCore::Page objects (excluding utility Pages used
by SVG-as-image and the web inspector) so let's name it appropriately.
Not all WebKit clients have tabs.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::setPageCount):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):
(WTF::MemoryPressureHandler::measurementTimerFired):
(WTF::MemoryPressureHandler::setTabCount): Deleted.

  • wtf/MemoryPressureHandler.h:
6:18 PM Changeset in webkit [218731] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Modern media controls localised strings are out of sync with used strings in code
https://bugs.webkit.org/show_bug.cgi?id=173752

Reviewed by Dean Jackson.

Remove strings we no longer use and add strings we use but failed to add previously.

  • English.lproj/modern-media-controls-localized-strings.js:
6:13 PM Changeset in webkit [218730] by graouts@webkit.org
  • 5 edits in trunk/Source/WebCore

Log when scripted animations get suspended and resumed
https://bugs.webkit.org/show_bug.cgi?id=173751

Reviewed by Dean Jackson.

More work toward understanding why rAF callbacks are not serviced on bots (webkit.org/b/173628).

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::suspend):
(WebCore::ScriptedAnimationController::resume):
(WebCore::ScriptedAnimationController::logSuspendCount): Deleted.

  • dom/ScriptedAnimationController.h:
  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):
(WebCore::Page::setIsVisibleInternal):

5:22 PM Changeset in webkit [218729] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

The lowering of Identity in the DFG backend needs to use ManualOperandSpeculation
https://bugs.webkit.org/show_bug.cgi?id=173743
<rdar://problem/32932536>

Reviewed by Mark Lam.

The code always manually speculates, however, we weren't specifying
ManualOperandSpeculation when creating a JSValueOperand. This would
fire an assertion in JSValueOperand construction for a node like:
Identity(String:@otherNode)

I spent about 45 minutes trying to craft a test and came up
empty. However, this fixes a debug assertion on an internal
Apple website.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

4:34 PM Changeset in webkit [218728] by sbarati@apple.com
  • 3 edits
    1 add in trunk

ValueRep(DoubleRep(@v)) can not simply convert to @v
https://bugs.webkit.org/show_bug.cgi?id=173687
<rdar://problem/32855563>

Reviewed by Mark Lam.

JSTests:

  • stress/dont-strength-reduce-valuerep-of-doublerep.js: Added.

(i.catch):

Source/JavaScriptCore:

Consider this IR:

block#x

p: Phi() int32 and double flows into this phi from various control flow
d: DoubleRep(@p)
some uses of @d here
v: ValueRep(DoubleRepUse:@d)
a: NewArrayWithSize(Int32:@v)
some more nodes here ...


Because the flow of ValueRep(DoubleRep(@p)) will not produce an Int32,
AI proves that the Int32 check will fail. Constant folding phase removes
all nodes after @a and inserts an Unreachable after the NewArrayWithSize node.

The IR then looks like this:
block#x

p: Phi() int32 and double flows into this phi from various control flow
d: DoubleRep(@p)
some uses of @d here
v: ValueRep(DoubleRepUse:@d)
a: NewArrayWithSize(Int32:@v)
Unreachable


However, there was a strength reduction rule that tries eliminate redundant
conversions. It used to convert the program to:
block#x

p: Phi() int32 and double flows into this phi from various control flow
d: DoubleRep(@p)
some uses of @d here
a: NewArrayWithSize(Int32:@p)
Unreachable


However, at runtime, @p will actually be an Int32, so @a will not OSR exit,
and we'll crash. This patch removes this strength reduction rule since it
does not maintain what would have happened if we executed the program before
the rule.

This rule is also wrong for other types of programs (I'm not sure we'd
actually emit this code, but if such IR were generated, we would previously
optimize it incorrectly):
@a: Constant(JSTrue)
@b: DoubleRep(@a)
@c: ValueRep(@b)
@d: use(@c)

However, the strength reduction rule would've transformed this into:
@a: Constant(JSTrue)
@d: use(@a)

And this would be wrong because node @c before the transformation would
have produced the JSValue jsNumber(1.0).

This patch was neutral in the benchmark run I did.

  • dfg/DFGStrengthReductionPhase.cpp:

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

4:32 PM Changeset in webkit [218727] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] Enable in-app dragging from WKWebView on the phone
https://bugs.webkit.org/show_bug.cgi?id=173736
<rdar://problem/32873545>

Reviewed by Tim Horton.

Flip the drag interaction enabled switch on when initializing WKContentView's UIDragInteraction.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupDataInteractionDelegates]):

3:49 PM Changeset in webkit [218726] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test for multi data channel peer connection
https://bugs.webkit.org/show_bug.cgi?id=173735

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-22
Reviewed by Eric Carlson.

  • webrtc/datachannel/multi-channel-expected.txt: Added.
  • webrtc/datachannel/multi-channel.html: Added.
3:47 PM Changeset in webkit [218725] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION: LayoutTest media/modern-media-controls/placard-support/placard-support-pip.html is a flaky timeout on Sierra
https://bugs.webkit.org/show_bug.cgi?id=173725

Patch by Antoine Quint <Antoine Quint> on 2017-06-22
Reviewed by Dean Jackson.

On WK1, this test enters fullscreen rather than PiP (which is unexpected, see webkit.org/b/173729) and thus the button
to exit PiP could not be clicked. But we don't need a button click to exit PiP, so instead we just call a method to
toggle it.

  • media/modern-media-controls/placard-support/placard-support-pip.html:
3:24 PM Changeset in webkit [218724] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

isMainThread() assertions in CallbackMap are incorrectly failing on some iOS apps
https://bugs.webkit.org/show_bug.cgi?id=173738
<rdar://problem/32923933>

Reviewed by Brady Eidson.

The assertions hit on certain iOS apps even though the crash traces clearly
show them on the main thread. We have verified locally that RunLoop::isMain()
propertly return true in this case (while WTF::isMainThread() returns false).
Update the assertions to use RunLoop::isMain() instead.

  • UIProcess/GenericCallback.h:

(WebKit::CallbackMap::put):
(WebKit::CallbackMap::take):
(WebKit::CallbackMap::invalidate):

3:12 PM Changeset in webkit [218723] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ARM64: doubled executable memory limit from 32MiB to 64MiB
https://bugs.webkit.org/show_bug.cgi?id=173734
<rdar://problem/32932407>

Reviewed by Oliver Hunt.

Some WebAssembly programs stress the amount of memory we have
available, especially when we consider tiering (BBQ never dies,
and is bigger that OMG). Tiering to OMG just piles on more memory,
and we're also competing with JavaScript.

  • jit/ExecutableAllocator.h:
3:03 PM Changeset in webkit [218722] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark perf/object-keys.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=171617

Unreviewed test gardening.

  • platform/ios/TestExpectations:
2:55 PM Changeset in webkit [218721] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION(r214712): Infinite recursion in RenderTable::layout in paginated mode
https://bugs.webkit.org/show_bug.cgi?id=173731
<rdar://problem/32237775>

Reviewed by Antti Koivisto.

Source/WebCore:

We should just skip bottom captions to check if section is moved, since they don't affect
the section position (bottom <caption> is preceded by <tfoot>).

Test: fast/table/caption-bottom-with-pagination.html

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

LayoutTests:

  • fast/table/caption-bottom-with-pagination-expected.txt: Added.
  • fast/table/caption-bottom-with-pagination.html: Added.
2:46 PM Changeset in webkit [218720] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/forward-button/forward-button.html as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=168265

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:36 PM Changeset in webkit [218719] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r218419): 7 leaks in PluginLoadClientPolicies.mm
<https://webkit.org/b/173721>

Reviewed by Joseph Pecoraro.

Use RetainPtr<> to create NSMutableDictionary and NSNumber
objects to fix leaks and to avoid the autoreleasepool.

  • TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm:

(TEST):

2:12 PM Changeset in webkit [218718] by Joseph Pecoraro
  • 12 edits
    2 adds in trunk

Web Inspector: Pausing with a deep call stack can be very slow, avoid eagerly generating object previews
https://bugs.webkit.org/show_bug.cgi?id=173698

Reviewed by Matt Baker.

Source/JavaScriptCore:

When pausing in a deep call stack the majority of the time spent in JavaScriptCore
when preparing Inspector pause information is spent generating object previews for
the thisObject of each of the call frames. In some cases, this could be more
than 95% of the time generating pause information. In the common case, only one of
these (the top frame) will ever be seen by users. This change avoids eagerly
generating object previews up front and let the frontend request previews if they
are needed.

This introduces the Runtime.getPreview protocol command. This can be used to:

  • Get a preview for a RemoteObject that did not have a preview but could.
  • Update a preview for a RemoteObject that had a preview.

This patch only uses it for the first case, but the second is valid and may be
something we want to do in the future.

  • inspector/protocol/Runtime.json:

A new command to get an up to date preview for an object.

  • inspector/InjectedScript.h:
  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::getPreview):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getPreview):

  • inspector/agents/InspectorRuntimeAgent.h:

Plumbing for the new command.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.getPreview):
Implementation just uses the existing helper.

(InjectedScript.CallFrameProxy):
Do not generate a preview for the this object as it may not be shown.
Let the frontend request a preview if it wants or needs one.

Source/WebInspectorUI:

Introduce RemoteObject.prototype.updatePreview which can be used to update
the preview of a RemoteObject with a current view for the object. Currently
we only use this to fetch the preview that we did not have for the thisObject
in the scope chain sidebar. However this could be used generically to update
a RemoteObject's preview (ObjectPreview) at any time.

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.canLoadPreview):
(WebInspector.RemoteObject.prototype.updatePreview):
Allow a RemoteObject to update its preview property. Since this only makes
sense on certain Object values include a helper to know when it is appropriate
to fetch a preview.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._loadPreviewLazilyIfNeeded):
If the object being shown in the sidebar does not have a preview but can load a
preview then attempt to load it lazily. This is the case for the thisObject
which is injected into an ObjectTree in the scope chain sidebar.

LayoutTests:

  • inspector/runtime/getPreview-expected.txt: Added.
  • inspector/runtime/getPreview.html: Added.

Test the new protocol command Runtime.getPreview as well as the frontend
model method RemoteObject.prototype.updatePreview which uses it with its
own slightly different semantics about when it should be used.

  • inspector/debugger/tail-deleted-frames-this-value.html:

This test used CallFrame.thisObject.preview so rewrite it to first
load the preview and then check values with it.

2:06 PM Changeset in webkit [218717] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r215809): 50% regression 14E305 -> 15A293a in MotionMark Suits test
https://bugs.webkit.org/show_bug.cgi?id=173728
<rdar://problem/32526744>

Reviewed by Tim Horton.

It turns out that CGGradientCreateWithColors is much slower than
CGGradientCreateWithColorComponents, even without colorspace variations.
Update the gradient creation code to only use this slower path
when it has extended colors.

  • platform/graphics/Color.h: Add a FIXME about renaming some methods.
  • platform/graphics/cg/GradientCG.cpp: Use CGGradientCreateWithColorComponents

if we have stops that are not extended colors.
(WebCore::Gradient::platformGradient):

2:06 PM Changeset in webkit [218716] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip fast/forms/file/input-file-write-files-using-open-panel.html on ios-wk2.
https://bugs.webkit.org/show_bug.cgi?id=173733

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:06 PM Changeset in webkit [218715] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove TestExpectations for test that were removed in r218651.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
12:54 PM Changeset in webkit [218714] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix memory leak in LibWebRTCMediaEndpoint
https://bugs.webkit.org/show_bug.cgi?id=173717

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-22
Reviewed by Eric Carlson.

No chnage of behavior.
Making sure SessionDescription pointer get properly released.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • testing/MockLibWebRTCPeerConnection.cpp: Allocating description.
12:45 PM Changeset in webkit [218713] by dbates@webkit.org
  • 23 edits in trunk/Source

Make FrameLoadRequest a move-only type
https://bugs.webkit.org/show_bug.cgi?id=173682

Reviewed by Alex Christensen and Darin Adler.

A FrameLoadRequest groups together the information to perform a load into a single object
that is more manageable to pass around than its constituent parts. Code that receives a
FrameLoadRequest is expected to extract out the information it needs to complete its task.
And it does not make sense to re-use the same FrameLoadRequest object for more than one
load. Therefore, it is sufficient to make FrameLoadRequest a move-only type.

Source/WebCore:

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::createWindow):

  • loader/FrameLoader.h:
  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • replay/UserInputBridge.cpp:

(WebCore::UserInputBridge::loadRequest):

  • replay/UserInputBridge.h:

Source/WebKit/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • Plugins/WebPluginController.mm:

(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::load):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

  • Plugins/PluginView.h:

(WebCore::PluginRequest::PluginRequest):

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::URLRequest::create):
(WebKit::PluginView::URLRequest::URLRequest):
(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

12:41 PM Changeset in webkit [218712] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Add release assertion in CallbackMap::invalidate()
https://bugs.webkit.org/show_bug.cgi?id=173722

Reviewed by Brady Eidson.

Add release assertion in CallbackMap::invalidate() to make sure it is called on the main thread.

  • UIProcess/GenericCallback.h:

(WebKit::CallbackMap::invalidate):

12:38 PM Changeset in webkit [218711] by clopez@igalia.com
  • 2 edits in trunk/Websites/bugs.webkit.org

pretty patch doesn't show image diffs with newer versions of git
https://bugs.webkit.org/show_bug.cgi?id=173691

A new security check added in git >= 2.3.3 causes it to abort
when the tool runs "git apply" to generate the images.
Detect if git supports the flag --unsafe-paths and pass it.

Reviewed by Darin Adler.

  • PrettyPatch/PrettyPatch.rb:
11:56 AM Changeset in webkit [218710] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r217223): [iOS] Video keeps playing after application is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=173727

Reviewed by Eric Carlson.

Only override media element visibility if it is in picture-in-picture mode (not fullscreen generally).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::visibilityStateChanged):

11:39 AM Changeset in webkit [218709] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Follow-up to r218662. Only log backtraces for DumpRenderTree.

Rubber-stamped by Antoine Quint.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::logSuspendCount):

11:35 AM Changeset in webkit [218708] by Joseph Pecoraro
  • 4 edits in trunk/Source/JavaScriptCore

Web Inspector: Remove stale "rawScopes" concept that was never available in JSC
https://bugs.webkit.org/show_bug.cgi?id=173686

Reviewed by Mark Lam.

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::functionDetails):

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.functionDetails):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::functionDetails):

11:32 AM Changeset in webkit [218707] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-604.1.27/Source/JavaScriptCore

Revert r217530. rdar://problem/32855563

11:05 AM Changeset in webkit [218706] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark webaudio/silent-audio-interrupted-in-background.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=172201

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:34 AM Changeset in webkit [218705] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Add some thread safety guards to GenericCallback.
https://bugs.webkit.org/show_bug.cgi?id=173693

Reviewed by Sam Weinig.

A callback should be created, performed, invalidated, and/or destroyed all on the same thread.
Let's write code to notify us if that doesn't happen.

  • UIProcess/GenericCallback.h:

(WebKit::GenericCallback::~GenericCallback):
(WebKit::GenericCallback::performCallbackWithReturnValue):
(WebKit::GenericCallback::invalidate):

10:16 AM WikiStart edited by Jon Davis
Added 2017 WebKit Contributors Meeting Page (diff)
10:14 AM October 2017 Meeting created by Jon Davis
10:07 AM Changeset in webkit [218704] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit2

v2: REGRESSION (r218419): 3 NSMutableDictionary leaks calling -[WKProcessPool _pluginLoadClientPolicies]
<https://webkit.org/b/173689>

Reviewed by Chris Dumez.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(policiesHashMapToDictionary): Use -dictionaryWithCapacity:
instead of -new since the former returns an autoreleased object
while the latter does not. This has the added benefit of tuning
the size of each NSMutableDictionary.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

(-[WKProcessPool _pluginLoadClientPolicies]): Remove 'copy'
attribute from @property declaration since it is read-only.

9:43 AM Changeset in webkit [218703] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Spreaker live shows won't play
https://bugs.webkit.org/show_bug.cgi?id=173306

Patch by Charlie Turner <cturner@igalia.com> on 2017-06-22
Reviewed by Xabier Rodriguez-Calvar.

This was due to removing the code that negotiated caps for Icecast
streams based on the response headers in r191947. The problem is that
the typefind element can sometimes squint hard enough and see an MP3
stream and attempt to play it, resulting in garbled audio playback. More
commonly typefind fails to recognize the Icecast stream and bails,
resulting in no playback at all.

r191947 also removed the emission of metadata into the pipeline. This
patch also leaves that out since we have no use for it within WebKit.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(StreamingClient::handleResponseReceived):

9:33 AM Changeset in webkit [218702] by Matt Lewis
  • 8 edits
    2 deletes in trunk

Unreviewed, rolling out r218633.

The test is failing frequently on Sierra Debug and Windows

Reverted changeset:

"AX: Cannot call setValue() on contenteditable or ARIA text
controls"
https://bugs.webkit.org/show_bug.cgi?id=173520
http://trac.webkit.org/changeset/218633

9:17 AM Changeset in webkit [218701] by commit-queue@webkit.org
  • 9 edits in trunk

[Readable Streams API] Implement ReadableStreamBYOBReader read()
https://bugs.webkit.org/show_bug.cgi?id=172714

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-06-22
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations.
Some tests are not passing yet due to 2 bugs not directly related to read() implementation
(172716 and 172717) that will be fixed distinctly.

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:

Source/WebCore:

Implemented read() method of ReadableStreamBYOBReader [1]. Also added code related
to BYOB features that were previously described as FIXMEs and that now become reachable.

In addition, WPT tests that involve read() have allowed to identify 2 bugs not directly
related to read() (172716 and 172717). They will be fixed distinctly. Once done, all WPT
tests should pass.

[1] https://streams.spec.whatwg.org/#byob-reader-read

WPT tests (web-platform-tests/streams/readable-byte-streams/general.js) already cover
most cases for read() usage. Corresponding expectations have been updated. In addition,
1 test has been added to WebKit tests (in streams/readable-stream-byob-reader.js) to
check that read() can only be applied to a ReadableStreamBYOBReader.

  • Modules/streams/ReadableByteStreamInternals.js:

(readableByteStreamControllerClearPendingPullIntos): Implemented.
(readableByteStreamControllerEnqueue): Updated with support for BYOBReader.
(readableByteStreamControllerPullInto): Added.
(readableStreamAddReadIntoRequest): Added.

  • Modules/streams/ReadableStreamBYOBReader.js:

(read): Added.

LayoutTests:

Added 1 test to check that read() can only be applied to a ReadableStreamBYOBReader.
Other behaviors are checked by WPT (web-platform-tests/streams/readable-byte-streams/general.js).

  • streams/readable-stream-byob-reader-expected.txt: Updated.
  • streams/readable-stream-byob-reader.js: Added 1 test.
8:32 AM Changeset in webkit [218700] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

Remove testRunner.overridePreference from WPT tests
https://bugs.webkit.org/show_bug.cgi?id=173713

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-22
Reviewed by Youenn Fablet.

We update two W3C tests to remove the setting of the Chromium-specific preference
WebKitAllowDisplayingInsecureContent. This update also fixes the link to the
get-host-info.sub.js resource.

  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html:
8:29 AM Changeset in webkit [218699] by commit-queue@webkit.org
  • 16 edits
    3 adds in trunk

[WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder on Mac
https://bugs.webkit.org/show_bug.cgi?id=172602
<rdar://problem/32407693>

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-22
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Adding a parameter to disable hardware encoder.

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

(webrtc::H264VideoToolboxEncoder::CreateCompressionSession):

Source/WebCore:

Test: platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html

Add internal API to switch on/off hardware H264 encoder.
Add checks for standard size. If using a software encoder and frame size is not standard,
the session is destroyed and no frame is sent at all.

Added tests based on captureStream.
Fixed the case of capturing a canvas which size is changing.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized):

  • platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.h:
  • platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm:

(WebCore::H264VideoToolboxEncoder::setHardwareEncoderForWebRTCAllowed):
(WebCore::H264VideoToolboxEncoder::hardwareEncoderForWebRTCAllowed):
(WebCore::isUsingSoftwareEncoder):
(WebCore::H264VideoToolboxEncoder::CreateCompressionSession):
(isStandardFrameSize): Added.
(isUsingSoftwareEncoder): Added.

  • testing/Internals.cpp:

(WebCore::Internals::setH264HardwareEncoderAllowed):

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

LayoutTests:

  • platform/mac-wk1/TestExpectations: Mark captureCanvas as flaky due to AVDCreateGPUAccelerator: Error loading GPU renderer" appearing on some bots.
  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder-expected.txt: Copied from LayoutTests/webrtc/captureCanvas-webrtc-expected.txt.
  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html: Added.
  • webrtc/captureCanvas-webrtc-expected.txt:
  • webrtc/captureCanvas-webrtc.html:
8:22 AM Changeset in webkit [218698] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/win

[Win] Cleanup: Remove unnecessary include of header FrameLoadRequest.h
https://bugs.webkit.org/show_bug.cgi?id=173683

Patch by Daniel Bates <dabates@apple.com> on 2017-06-22
Reviewed by Alex Christensen.

Neither file PluginViewWin.cpp nor WebContextMenuClient.cpp need to include
header FrameLoadRequest.h. The former includes FrameLoadRequest.h indirectly
by including PluginView.h. The latter does not make use of the functionality
provided by FrameLoadRequest.h.

  • Plugins/PluginViewWin.cpp:
  • WebCoreSupport/WebContextMenuClient.cpp:
8:18 AM Changeset in webkit [218697] by Yusuke Suzuki
  • 4 edits
    3 adds in trunk

[JSC] Object.values should be implemented in C++
https://bugs.webkit.org/show_bug.cgi?id=173703

Reviewed by Sam Weinig.

JSTests:

  • microbenchmarks/object-keys-map-values.js: Added.

(test):

  • microbenchmarks/object-values.js: Added.

(test):

  • stress/object-values-changing-properties.js: Added.

(shouldBe):
(throw.new.Error.let.source.get x):
(throw.new.Error):
(shouldBe.let.handler.get order):
(get let):
(shouldBe.let.handler.get return):
(let.handler.get order):

Source/JavaScriptCore:

As the same to Object.assign, Object.values() is also inherently polymorphic.
And allocating JSString / Symbol for Identifier and JSArray for Object.keys()
result is costly.

In this patch, we implement Object.values() in C++. It can avoid above allocations.
Furthermore, by using slot.isTaintedByOpaqueObject() information, we can skip
non-observable JSObject::get() calls.

This improves performance by 2.49x. And also now Object.values() beats
Object.keys(object).map(key => object[key]) implementation.

baseline patched

object-values 132.1551+-3.7209 53.1254+-1.6139 definitely 2.4876x faster
object-keys-map-values 78.2008+-2.1378 ? 78.9078+-2.2121 ?

  • builtins/ObjectConstructor.js:

(values): Deleted.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorValues):

8:16 AM Changeset in webkit [218696] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTests/inspector/indexeddb/requestDatabaseNames.html: Sort database names to prevent flakiness
https://bugs.webkit.org/show_bug.cgi?id=173699

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-06-22
Reviewed by Alex Christensen.

  • inspector/indexeddb/requestDatabaseNames.html:

Sort database names (when more than one) to ensure a consistent order.

6:36 AM Changeset in webkit [218695] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Skip js geolocation test.

Unreviewed gardening.
Geolocation was disabled since r218553.

  • platform/wpe/TestExpectations:
6:14 AM Changeset in webkit [218694] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

[TestWebKitAPI] Fix misuse of -[NSData dataWithBytesNoCopy:length:] with global variables
<https://webkit.org/b/173690>

Reviewed by Chris Dumez.

Per documentation, -[NSData dataWithBytesNoCopy:length:] takes
ownership of malloc()-ed memory, then frees it when it's
released. These tests were passing global variables into the
method, which is not malloc()-ed memory, which violates the API
contract.

The fix is to switch to use
-[NSData dataWithBytesNoCopy:length:freeWhenDone:] and to pass
NO for the last argument.

Caught by the clang static analyzer.

  • TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm:

(TEST):

6:01 AM Changeset in webkit [218693] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Upgrade Harfbuzz to version 1.4.2
https://bugs.webkit.org/show_bug.cgi?id=173592

Reviewed by Carlos Alberto Lopez Perez.

  • gtk/jhbuild.modules:
5:59 AM Changeset in webkit [218692] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Unskip http cache tests.

Unreviewed gardening.

Currently failing tests are the same as in the GTK+ port.

  • platform/wpe/TestExpectations:
4:55 AM Changeset in webkit [218691] by Carlos Garcia Campos
  • 7 edits
    1 move
    1 delete in trunk/Source/WebKit2

[WPE] Downloads never have a web view associated in WPE
https://bugs.webkit.org/show_bug.cgi?id=173709

Reviewed by Žan Doberšek.

Convert the WPE view client into an API client and add handleDownloadRequest(). WebKitWebView now uses it to
associate itself to the download like the GTK+ port does.

  • PlatformWPE.cmake:
  • UIProcess/API/C/wpe/WKView.cpp:

(WKViewSetViewClient): Add C API client implementation here.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed): Set the view client in WPE.

  • UIProcess/API/wpe/APIViewClient.h: Renamed from Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h.

(API::ViewClient::frameDisplayed):
(API::ViewClient::handleDownloadRequest):

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::handleDownloadRequest): Call WKWPE::View::handleDownloadRequest().

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::View): Initialize the view client.
(WKWPE::View::setClient): Set or reset the client.
(WKWPE::View::handleDownloadRequest): Notify the client.

  • UIProcess/API/wpe/WPEView.h:
  • UIProcess/API/wpe/WPEViewClient.cpp: Removed.
4:53 AM Changeset in webkit [218690] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[WPE] Update WPEBackend-mesa
https://bugs.webkit.org/show_bug.cgi?id=173705

Reviewed by Carlos Alberto Lopez Perez.

A crash has been fixed, needed for unit tests to work.

  • wpe/jhbuild.modules:
4:38 AM Changeset in webkit [218689] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add icon for Canvas.svg
https://bugs.webkit.org/show_bug.cgi?id=173580

Patch by Fujii Hironori <Fujii Hironori> on 2017-06-22
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/Canvas.svg: Added.
4:16 AM Changeset in webkit [218688] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[WPE] Page should be closed on WebKitWebView dispose
https://bugs.webkit.org/show_bug.cgi?id=173707

Reviewed by Žan Doberšek.

In the GTK+ port it's done in the WebKitWebViewBase dispose implementation. It fixes TestMultiprocess.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewDispose): Call WKWPE::View::close().

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::close): Close the WebPageProxy.

  • UIProcess/API/wpe/WPEView.h:
4:15 AM Changeset in webkit [218687] by Carlos Garcia Campos
  • 2 edits
    3 deletes in trunk

Remove unused coordinated graphics C API
https://bugs.webkit.org/show_bug.cgi?id=173706

Reviewed by Žan Doberšek.

Source/WebKit2:

  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp: Removed.
  • UIProcess/API/C/CoordinatedGraphics/WKView.h: Removed.
  • UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp: Removed.
  • UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.h: Removed.

Tools:

  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewIsActiveSetIsActive.cpp: Removed.
  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewIsActiveSetIsActive_Bundle.cpp: Removed.
  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewRestoreZoomAndScrollBackForward.cpp: Removed.
  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewUserViewportToContents.cpp: Removed.
  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward1.html: Removed.
  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward2.html: Removed.
4:12 AM Changeset in webkit [218686] by Carlos Garcia Campos
  • 33 edits
    1 copy
    4 adds in trunk/Tools

[WPE] Build glib API tests
https://bugs.webkit.org/show_bug.cgi?id=173702

Reviewed by Žan Doberšek.

Many of the tests pass without problems, others need to be investigated, and some others are known issues. The
main difference between the GTK+ and WPE WebKitWebView is that in GTK+ it's a GtkWidget, so initially
unowned. The tests assume that webkit_web_view_new methods return a floating reference. This patch adds
Test::adoptView() method that returns a GRefPtr<WebKitWebView> with a different implementation in GTK+ and
WPE. In the case of GTK+, it sinks the floating reference, while in WPE it simply adopts the reference. Another
difference is that in GTK+ the web view is initially hidden and needs to be added to a window to make it
visible. Also, some tests need the web view to be realized to work, and others need that the view is added to a
toplevel window, instead of a popup window. All those things are not needed at all in WPE. I've added several
#ifdefs with FIXME comments for the things that we know don't work in WPE yet, for example, because we haven't
implemented the methods to send events to the web view. Those will be removed eventually when we fix the issues
and implement the missing features.

  • CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:

(testAutomationSessionRequestSession):

  • TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:

(testWebKitWebViewSessionState):
(testWebKitWebViewSessionStateWithFormData):
(testWebKitWebViewNavigationAfterSessionRestore):

  • TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp:

(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerEphemeral):

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(testBlobDownload):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp:

(testProcessPerWebView):

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewCreateNavigationData):
(testWebViewJavaScriptDialogs):
(testWebViewWindowProperties):
(testWebViewMouseTarget):
(testWebViewGeolocationPermissionRequests):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
(testWebViewFileChooserRequest):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:

(testPrivateBrowsing):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp:

(testFindControllerHide):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(testWebViewNewWithUserContentManager):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextEphemeral):
(testWebContextProxySettings):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewWebContext):
(testWebViewWebContextLifetime):
(testWebViewEphemeral):
(testWebViewSettings):
(testWebViewCanShowMIMEType):
(testWebViewPageVisibility):
(testWebViewIsPlayingAudio):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataEphemeral):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(documentLoadedCallback):
(pageCreatedCallback):
(methodCallCallback):

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h:
  • TestWebKitAPI/glib/CMakeLists.txt:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:
  • TestWebKitAPI/glib/WebKitGLib/TestMain.cpp:

(main):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::adoptView):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp:

(WebKitTestBus::run):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::~WebViewTest):
(WebViewTest::initializeWebView):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
  • TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp: Added.

(WebViewTest::platformDestroy):
(WebViewTest::platformInitializeWebView):
(WebViewTest::quitMainLoopAfterProcessingPendingEvents):
(WebViewTest::resizeView):
(WebViewTest::hideView):
(parentWindowMapped):
(WebViewTest::showInWindow):
(WebViewTest::showInWindowAndWaitUntilMapped):
(WebViewTest::mouseMoveTo):
(WebViewTest::clickMouseButton):
(WebViewTest::emitPopupMenuSignal):
(WebViewTest::keyStroke):
(WebViewTest::doMouseButtonEvent):

  • TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp: Copied from Tools/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h.

(WebViewTest::platformDestroy):
(WebViewTest::platformInitializeWebView):
(WebViewTest::quitMainLoopAfterProcessingPendingEvents):
(WebViewTest::resizeView):
(WebViewTest::hideView):
(WebViewTest::mouseMoveTo):
(WebViewTest::clickMouseButton):
(WebViewTest::keyStroke):

12:47 AM Changeset in webkit [218685] by Carlos Garcia Campos
  • 2 edits
    19 copies
    26 moves
    7 adds
    3 deletes in trunk/Tools

[GTK] Move WebKit2 GLib API tests to glib directories
https://bugs.webkit.org/show_bug.cgi?id=173642

Reviewed by Žan Doberšek.

  • CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Removed.
  • TestWebKitAPI/Tests/WebKit2Gtk/resources/webkit2gtk-tests.gresource.xml: Removed.
  • TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAuthentication.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestBackForwardList.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp.

(testWebKitConsoleMessageNetworkError):

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestCookieManager.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp.

(testLoadFromGResource):

  • TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFaviconDatabase.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFindController.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSecurityOrigin.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp.

(testWebViewRunJavaScript):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebsiteData.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp.

(registerGResource):

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h.
  • TestWebKitAPI/Tests/WebKitGLib/resources/blank.ico: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/blank.ico.
  • TestWebKitAPI/Tests/WebKitGLib/resources/boring.html: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/boring.html.
  • TestWebKitAPI/Tests/WebKitGLib/resources/link-title.js: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/link-title.js.
  • TestWebKitAPI/Tests/WebKitGLib/resources/silence.mpg: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/silence.mpg.
  • TestWebKitAPI/Tests/WebKitGLib/resources/simple.json: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/simple.json.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.pem: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test-cert.pem.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-key.pem: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test-key.pem.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test.pdf: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test.pdf.
  • TestWebKitAPI/Tests/WebKitGLib/resources/track.ogg: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/track.ogg.
  • TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml: Added.
  • TestWebKitAPI/glib/CMakeLists.txt: Added.
  • TestWebKitAPI/glib/PlatformGTK.cmake: Added.
  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp.
  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.h.
  • TestWebKitAPI/glib/WebKitGLib/TestMain.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp.

(registerGResource):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h.

(Test::getResourcesDir):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.cpp.
  • TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.h.
  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.cpp.
  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.h.
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp.
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h.
12:40 AM Changeset in webkit [218684] by Carlos Garcia Campos
  • 8 edits
    8 adds in trunk

[WPE] Add initial web extensions API
https://bugs.webkit.org/show_bug.cgi?id=173640

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit2:

Build the glib web extensions API files and the builtin injected bundle library for WPE.

  • PlatformWPE.cmake:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed): Use a different injected bundle filename in WPE and GTK+.

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkit_web_page_class_init): Do not expose DOM bindings in WPE.
(webkitWebPageCreate): Ditto.

  • WebProcess/InjectedBundle/API/wpe/WebKitConsoleMessage.h: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitScriptWorld.h: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebEditor.h: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtension.h: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: Added.
  • WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: Added.

Tools:

Add style checker exceptions for WPE web extensions API files.

  • Scripts/webkitpy/style/checker.py:
12:33 AM Changeset in webkit [218683] by bshafiei@apple.com
  • 13 edits in tags/Safari-604.1.25.3.30

Merged r218620. rdar://problem/32913553

12:25 AM Changeset in webkit [218682] by bshafiei@apple.com
  • 7 edits in tags/Safari-604.1.25.3.30/Source

Versioning.

12:24 AM Changeset in webkit [218681] by bshafiei@apple.com
  • 1 copy in tags/Safari-604.1.25.3.30

New tag.

Jun 21, 2017:

11:43 PM Changeset in webkit [218680] by bshafiei@apple.com
  • 1 copy in tags/Safari-604.1.25.3.3

New tag.

11:17 PM Changeset in webkit [218679] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add NavigationItemCheckers.svg
https://bugs.webkit.org/show_bug.cgi?id=173692

Patch by Fujii Hironori <Fujii Hironori> on 2017-06-21
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/NavigationItemCheckers.svg: Added.
9:46 PM Changeset in webkit [218678] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r218419): 3 NSMutableDiciontary leaks calling -[WKProcessPool _pluginLoadClientPolicies]
<https://webkit.org/b/173689>

Reviewed by Chris Dumez.

Caught by the clang static analyzer.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(policiesHashMapToDictionary): Switch from using
[[NSMutableDictionary alloc] init] which returns a +1 retained
object in MRR to [NSMutableDictionary new] which returns an
autoreleased object under MRR. This bug caused 3 leaks when
calling -[WKProcessPool _pluginLoadClientPolicies], which should
return an autoreleased object based on its signature.

9:31 PM Changeset in webkit [218677] by commit-queue@webkit.org
  • 16 edits
    2 adds in trunk

[Fetch API] TypeError when called with body === {}
https://bugs.webkit.org/show_bug.cgi?id=173295
<rdar://problem/32746733>

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Sam Weinig.

Source/WebCore:

Test: fetch/body-init.html

Handling body of Request and Response using binding generator to correctly handle unions.
The biggest change is that any value that is not a specific type in the union will match a String.
This is matching WebIDL spec and Firefox behavior.

Handling of ReadableStream bodies remains in JS builtin for Response.
This allows easier handling cloning and consumption of body.
Adding setBodyAsReadableStream since this is no longer handled by extractBody.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::extract): Using Variant instead of JSC::JSValue.
(WebCore::FetchBody::readableStreamBody): Introduced to handle the
case of readable stream bodies.

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::extractBody):

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::setBody):

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::setBody): Splitting setBody for ease of readability.
(WebCore::FetchRequest::setBodyFromInputRequest):

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchRequest.js:

(initializeFetchRequest):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::initializeWith):
(WebCore::FetchResponse::setBodyAsReadableStream):

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • fetch/body-init-expected.txt: Added.
  • fetch/body-init.html: Added.
7:44 PM Changeset in webkit [218676] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Add release assertions help diagnose a hang in CallbackMap
https://bugs.webkit.org/show_bug.cgi?id=173680
<rdar://problem/32911286>

Reviewed by Chris Dumez.

Assert that these functions are only called in the main thread and the empty value is never used as a key.

  • UIProcess/GenericCallback.h:

(WebKit::CallbackMap::put):
(WebKit::CallbackMap::take):

7:24 PM Changeset in webkit [218675] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add z-index to compositing logging output
https://bugs.webkit.org/show_bug.cgi?id=173684

Reviewed by Zalan Bujtas.

Show z-index, which is often useful to find negative z-index items.

Log "+foreground" rather than "foreground" to indicate that this layer has an
additional foreground/background layer, and fix spacing.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):

7:22 PM Changeset in webkit [218674] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ArrayPrototype.map builtin declares a var it does not use
https://bugs.webkit.org/show_bug.cgi?id=173685

Reviewed by Keith Miller.

  • builtins/ArrayPrototype.js:

(map):

6:54 PM Changeset in webkit [218673] by sbarati@apple.com
  • 3 edits
    1 add in trunk

eval virtual call is incorrect in the baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=173587
<rdar://problem/32867897>

Reviewed by Michael Saboff.

JSTests:

  • stress/do-eval-virtual-call-correctly.js: Added.

(assert):
(f):
(i.test):
(catch):

Source/JavaScriptCore:

When making a virtual call for call_eval, e.g, when the thing
we're calling isn't actually eval, we end up calling the caller
instead of the callee. This is clearly wrong. The code ends up
issuing a load for the Callee in the callers frame instead of
the callee we're calling. The fix is simple, we just need to
load the real callee. Only the 32-bit baseline JIT had this bug.

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

6:41 PM Changeset in webkit [218672] by Wenson Hsieh
  • 5 edits in trunk

[iOS DnD] [WK2] Cancelling a drag interaction using the ObjC SPI causes subsequent dragging to fail
https://bugs.webkit.org/show_bug.cgi?id=173659
<rdar://problem/32879788>

Reviewed by Tim Horton.

Source/WebKit2:

Currently, a drag session that failed to begin is cleaned up either when the web process responds in
-[WKContentView _didHandleStartDataInteractionRequest:] with started = NO, or if started is YES, in
-dragInteraction:session:didEndWithOperation: instead. However, it is possible that even when the pasteboard has
items and the drag has started in the web process, something in the UI process may then cause the drag to be
cancelled (for instance, an SPI client returning empty arrays for all adjusted item providers, or UIKit not even
calling into -dragInteraction:itemsForBeginningSession: when we invoke their completion block).

In any case, if the drag session is drag-item-less after calling the drag start completion block, clean up and
cancel the drag.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didHandleStartDataInteractionRequest:]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):

Tools:

Adds a new test to verify that a lift cancelled within the UI process does not cause subsequent dragging to fail.

  • TestWebKitAPI/Tests/WebKit2Cocoa/link-and-target-div.html:

Augment this test page to log dragend and dragstart events on the drag source as well.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(checkStringArraysAreEqual):
(TestWebKitAPI::TEST):

6:25 PM Changeset in webkit [218671] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix Window Debug build after r218660.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):

6:22 PM Changeset in webkit [218670] by commit-queue@webkit.org
  • 96 edits
    15 copies
    3 moves
    27 adds
    6 deletes in trunk/Source/ThirdParty/libwebrtc

Update libyuv to 8cab2e31d76246263206318f3568d452e7f3ff3e
https://bugs.webkit.org/show_bug.cgi?id=173675

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Sam Weinig.

  • Source/third_party/libyuv/.clang-format: Added.
  • Source/third_party/libyuv/.gitignore: Added.
  • Source/third_party/libyuv/Android.mk:
  • Source/third_party/libyuv/BUILD.gn:
  • Source/third_party/libyuv/CM_linux_packages.cmake: Added.
  • Source/third_party/libyuv/CMakeLists.txt:
  • Source/third_party/libyuv/DEPS:
  • Source/third_party/libyuv/PRESUBMIT.py:

(_RunPythonTests):
(_RunPythonTests.join):
(_CommonChecks):
(CheckChangeOnUpload):
(CheckChangeOnCommit):

  • Source/third_party/libyuv/README.chromium:
  • Source/third_party/libyuv/build_overrides/build.gni:
  • Source/third_party/libyuv/chromium/.gclient: Removed.
  • Source/third_party/libyuv/chromium/README: Removed.
  • Source/third_party/libyuv/cleanup_links.py: Added.

(WebRTCLinkSetup):
(WebRTCLinkSetup.init):
(WebRTCLinkSetup.CleanupLinks):
(_initialize_database):
(main):

  • Source/third_party/libyuv/codereview.settings:
  • Source/third_party/libyuv/docs/deprecated_builds.md:
  • Source/third_party/libyuv/docs/getting_started.md:
  • Source/third_party/libyuv/gyp_libyuv.py:
  • Source/third_party/libyuv/include/libyuv/basic_types.h:
  • Source/third_party/libyuv/include/libyuv/compare.h:
  • Source/third_party/libyuv/include/libyuv/compare_row.h:
  • Source/third_party/libyuv/include/libyuv/convert.h:
  • Source/third_party/libyuv/include/libyuv/convert_argb.h:
  • Source/third_party/libyuv/include/libyuv/convert_from.h:
  • Source/third_party/libyuv/include/libyuv/convert_from_argb.h:
  • Source/third_party/libyuv/include/libyuv/cpu_id.h:
  • Source/third_party/libyuv/include/libyuv/macros_msa.h:
  • Source/third_party/libyuv/include/libyuv/mjpeg_decoder.h:
  • Source/third_party/libyuv/include/libyuv/planar_functions.h:
  • Source/third_party/libyuv/include/libyuv/rotate.h:
  • Source/third_party/libyuv/include/libyuv/rotate_argb.h:
  • Source/third_party/libyuv/include/libyuv/rotate_row.h:
  • Source/third_party/libyuv/include/libyuv/row.h:
  • Source/third_party/libyuv/include/libyuv/scale.h:
  • Source/third_party/libyuv/include/libyuv/scale_argb.h:
  • Source/third_party/libyuv/include/libyuv/scale_row.h:
  • Source/third_party/libyuv/include/libyuv/version.h:
  • Source/third_party/libyuv/include/libyuv/video_common.h:
  • Source/third_party/libyuv/infra/config/OWNERS: Added.
  • Source/third_party/libyuv/infra/config/README.md: Added.
  • Source/third_party/libyuv/infra/config/cq.cfg: Added.
  • Source/third_party/libyuv/libyuv.gyp:
  • Source/third_party/libyuv/libyuv.gypi:
  • Source/third_party/libyuv/libyuv_test.gyp:
  • Source/third_party/libyuv/linux.mk:
  • Source/third_party/libyuv/pylintrc: Added.
  • Source/third_party/libyuv/setup_links.py: Removed.
  • Source/third_party/libyuv/source/compare.cc:
  • Source/third_party/libyuv/source/compare_common.cc:
  • Source/third_party/libyuv/source/compare_gcc.cc:
  • Source/third_party/libyuv/source/compare_neon.cc:
  • Source/third_party/libyuv/source/compare_neon64.cc:
  • Source/third_party/libyuv/source/compare_win.cc:
  • Source/third_party/libyuv/source/convert.cc:
  • Source/third_party/libyuv/source/convert_argb.cc:
  • Source/third_party/libyuv/source/convert_from.cc:
  • Source/third_party/libyuv/source/convert_from_argb.cc:
  • Source/third_party/libyuv/source/convert_jpeg.cc:
  • Source/third_party/libyuv/source/convert_to_argb.cc:
  • Source/third_party/libyuv/source/convert_to_i420.cc:
  • Source/third_party/libyuv/source/cpu_id.cc:
  • Source/third_party/libyuv/source/mjpeg_decoder.cc:
  • Source/third_party/libyuv/source/mjpeg_validate.cc:
  • Source/third_party/libyuv/source/planar_functions.cc:
  • Source/third_party/libyuv/source/rotate.cc:
  • Source/third_party/libyuv/source/rotate_any.cc:
  • Source/third_party/libyuv/source/rotate_argb.cc:
  • Source/third_party/libyuv/source/rotate_common.cc:
  • Source/third_party/libyuv/source/rotate_dspr2.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/source/rotate_mips.cc.
  • Source/third_party/libyuv/source/rotate_gcc.cc:
  • Source/third_party/libyuv/source/rotate_msa.cc: Added.
  • Source/third_party/libyuv/source/rotate_neon.cc:
  • Source/third_party/libyuv/source/rotate_neon64.cc:
  • Source/third_party/libyuv/source/rotate_win.cc:
  • Source/third_party/libyuv/source/row_any.cc:
  • Source/third_party/libyuv/source/row_common.cc:
  • Source/third_party/libyuv/source/row_dspr2.cc: Added.
  • Source/third_party/libyuv/source/row_gcc.cc:
  • Source/third_party/libyuv/source/row_mips.cc: Removed.
  • Source/third_party/libyuv/source/row_msa.cc:
  • Source/third_party/libyuv/source/row_neon.cc:
  • Source/third_party/libyuv/source/row_neon64.cc:
  • Source/third_party/libyuv/source/row_win.cc:
  • Source/third_party/libyuv/source/scale.cc:
  • Source/third_party/libyuv/source/scale_any.cc:
  • Source/third_party/libyuv/source/scale_argb.cc:
  • Source/third_party/libyuv/source/scale_common.cc:
  • Source/third_party/libyuv/source/scale_dspr2.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/source/scale_mips.cc.
  • Source/third_party/libyuv/source/scale_gcc.cc:
  • Source/third_party/libyuv/source/scale_msa.cc: Added.
  • Source/third_party/libyuv/source/scale_neon.cc:
  • Source/third_party/libyuv/source/scale_neon64.cc:
  • Source/third_party/libyuv/source/scale_win.cc:
  • Source/third_party/libyuv/source/video_common.cc:
  • Source/third_party/libyuv/sync_chromium.py: Removed.
  • Source/third_party/libyuv/third_party/gflags/BUILD.gn: Removed.
  • Source/third_party/libyuv/third_party/gflags/LICENSE: Removed.
  • Source/third_party/libyuv/third_party/gflags/README.libyuv: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_completions.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_declare.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_gflags.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/posix/include/private/config.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_completions.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_declare.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_gflags.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gen/win/include/private/config.h: Removed.
  • Source/third_party/libyuv/third_party/gflags/gflags.gyp: Removed.
  • Source/third_party/libyuv/tools/gritsettings/README: Removed.
  • Source/third_party/libyuv/tools/gritsettings/resource_ids: Removed.
  • Source/third_party/libyuv/tools/valgrind-libyuv/tsan/OWNERS: Removed.
  • Source/third_party/libyuv/tools/valgrind-libyuv/tsan/PRESUBMIT.py: Removed.
  • Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions.txt: Removed.
  • Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions_mac.txt: Removed.
  • Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions_win32.txt: Removed.
  • Source/third_party/libyuv/tools_libyuv/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/OWNERS.
  • Source/third_party/libyuv/tools_libyuv/autoroller/roll_deps.py: Added.

(RollError):
(ParseDepsDict):
(ParseLocalDepsFile):
(ParseRemoteCrDepsFile):
(ParseCommitPosition):
(_RunCommand):
(_GetBranches):
(_ReadGitilesContent):
(ReadRemoteCrFile):
(ReadRemoteCrCommit):
(ReadUrlContent):
(GetMatchingDepsEntries):
(BuildDepsentryDict):
(BuildDepsentryDict.AddDepsEntries):
(CalculateChangedDeps):
(CalculateChangedClang):
(CalculateChangedClang.GetClangRev):
(GenerateCommitMessage):
(UpdateDepsFile):
(_IsTreeClean):
(_EnsureUpdatedMasterBranch):
(_CreateRollBranch):
(_RemovePreviousRollBranch):
(_LocalCommit):
(_UploadCL):
(_SendToCQ):
(main):

  • Source/third_party/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py: Added.

(TestError):
(FakeCmd):
(FakeCmd.init):
(FakeCmd.add_expectation):
(FakeCmd.call):
(TestRollChromiumRevision):
(TestRollChromiumRevision.setUp):
(TestRollChromiumRevision.tearDown):
(TestRollChromiumRevision.testUpdateDepsFile):
(TestRollChromiumRevision.testParseDepsDict):
(TestRollChromiumRevision.testParseDepsDict.assertVar):
(TestRollChromiumRevision.testGetMatchingDepsEntriesReturnsPathInSimpleCase):
(TestRollChromiumRevision.testGetMatchingDepsEntriesHandlesSimilarStartingPaths):
(TestRollChromiumRevision.testGetMatchingDepsEntriesHandlesTwoPathsWithIdenticalFirstParts):
(TestRollChromiumRevision.testCalculateChangedDeps):
(_SetupGitLsRemoteCall):

  • Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS: Added.
  • Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.new: Added.
  • Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old: Added.
  • Source/third_party/libyuv/tools_libyuv/get_landmines.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/get_landmines.py.
  • Source/third_party/libyuv/tools_libyuv/msan/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/msan/OWNERS.
  • Source/third_party/libyuv/tools_libyuv/msan/blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/msan/blacklist.txt.
  • Source/third_party/libyuv/tools_libyuv/ubsan/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/OWNERS.
  • Source/third_party/libyuv/tools_libyuv/ubsan/blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/blacklist.txt.
  • Source/third_party/libyuv/tools_libyuv/ubsan/vptr_blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/vptr_blacklist.txt.
  • Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.bat: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.bat.
  • Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.py.

(LibyuvTest._DefaultCommand):

  • Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.sh.
  • Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/OWNERS.
  • Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/PRESUBMIT.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/PRESUBMIT.py.

(CheckChange):

  • Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions.txt.
  • Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions_mac.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions_mac.txt.
  • Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions_win32.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions_win32.txt.
  • Source/third_party/libyuv/unit_test/color_test.cc:
  • Source/third_party/libyuv/unit_test/compare_test.cc:
  • Source/third_party/libyuv/unit_test/convert_test.cc:
  • Source/third_party/libyuv/unit_test/cpu_test.cc:
  • Source/third_party/libyuv/unit_test/cpu_thread_test.cc: Added.
  • Source/third_party/libyuv/unit_test/math_test.cc:
  • Source/third_party/libyuv/unit_test/planar_test.cc:
  • Source/third_party/libyuv/unit_test/rotate_argb_test.cc:
  • Source/third_party/libyuv/unit_test/rotate_test.cc:
  • Source/third_party/libyuv/unit_test/scale_argb_test.cc:
  • Source/third_party/libyuv/unit_test/scale_test.cc:
  • Source/third_party/libyuv/unit_test/unit_test.cc:
  • Source/third_party/libyuv/unit_test/unit_test.h:

(SizeValid):

  • Source/third_party/libyuv/unit_test/video_common_test.cc:
  • Source/third_party/libyuv/util/compare.cc:
  • Source/third_party/libyuv/util/cpuid.c:

(main):

  • Source/third_party/libyuv/util/psnr.cc:
  • Source/third_party/libyuv/util/psnr_main.cc:
  • Source/third_party/libyuv/util/ssim.cc:
  • Source/third_party/libyuv/util/ssim.h:
  • Source/third_party/libyuv/util/yuvconvert.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/util/convert.cc.
6:09 PM Changeset in webkit [218669] by akling@apple.com
  • 5 edits in trunk/Source

Increase memory kill limits for WebContent processes that manage multiple tabs.
https://bugs.webkit.org/show_bug.cgi?id=173674

Reviewed by Geoffrey Garen.

Source/WebCore:

Plumb the non-utility Page count down to WTF::MemoryPressureHandler.

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):

Source/WTF:

When opening <a target=_blank> links, we currently have to use the same WebContent
process for the new tab, to support scripting the window.opener object.
This means that some WebContent processes end up hosting multiple tabs, making it
more likely that those processes will hit the memory limits.

Address this by adding some additional allowance for multi-tab processes:

For each additional tab, up to 4 tabs, add 1GB to the memory kill limit.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillWithProcessState):
(WTF::MemoryPressureHandler::setTabCount):
(WTF::MemoryPressureHandler::thresholdForMemoryKill):
(WTF::MemoryPressureHandler::measurementTimerFired):

  • wtf/MemoryPressureHandler.h:
5:56 PM Changeset in webkit [218668] by bshafiei@apple.com
  • 2 edits in branches/safari-604.1.25.3-branch/Source/JavaScriptCore

Roll out r217530. rdar://problem/32912916

5:54 PM Changeset in webkit [218667] by bshafiei@apple.com
  • 7 edits in branches/safari-604.1.25.3-branch/Source

Versioning.

5:40 PM Changeset in webkit [218666] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

[WebCrypto] Restore ordering of CryptoAlgorithmIdentifier in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=173678
<rdar://problem/32879314>

Reviewed by Sam Weinig.

r218030 reorders the ordering of CryptoAlgorithmIdentifier in SerializedScriptValue,
which introduces backward compatibility issues with CryptoKey objects stored in the
IndexedDB. Hence, we should restore it back.

No tests.

  • bindings/js/SerializedScriptValue.cpp:
5:27 PM Changeset in webkit [218665] by dbates@webkit.org
  • 7 edits in trunk/Source/WebCore

Change FrameLoadRequest from a struct to a class

FrameLoadRequest is underutilizing the purpose of a struct - default visibility of
members is public, as FrameLoadRequest explicitly groups its members under public:
or private: sections. Maybe in the future we can make FrameLoadRequest a struct
with only public members. For now, we should consider FrameLoadRequest a class.

  • loader/FormSubmission.h:
  • loader/FrameLoadRequest.h:
  • loader/FrameLoader.h:
  • page/Chrome.h:
  • page/ChromeClient.h:
  • replay/UserInputBridge.h:
5:25 PM Changeset in webkit [218664] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Compiler error while building with !HAVE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=173670

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-06-21
Reviewed by Chris Fleizach.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::childrenChanged):

5:24 PM Changeset in webkit [218663] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Build fix.

Reviewed by Tim "Mr. T" Horton.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::logSuspendCount):

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):

4:55 PM Changeset in webkit [218662] by graouts@webkit.org
  • 13 edits in trunk

Ensure DRT always logs rAF suspension debugging code
https://bugs.webkit.org/show_bug.cgi?id=173681

Reviewed by Tim "Mr. T" Horton.

Source/WebCore:

Instead of using a setting to check whether we should log information related to rAF
callbacks being suspended with WK1, we now check whether we're using in DRT to avoid
any potential issue with settings being in the incorrect state when a test is run.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::logSuspendCount):

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):

  • page/Settings.in:
  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::MacApplication::isDumpRenderTree):

Source/WebKit/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences shouldLogScriptedAnimationControllerSuspensionChange]): Deleted.
(-[WebPreferences setShouldLogScriptedAnimationControllerSuspensionChange:]): Deleted.

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

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

3:55 PM Changeset in webkit [218661] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-604.1.27/Source/WebKit2

Cherry-pick r218656. rdar://problem/32905541

3:53 PM Changeset in webkit [218660] by Chris Dumez
  • 12 edits in trunk

Allow constructing a WTF:Function from a function pointer
https://bugs.webkit.org/show_bug.cgi?id=173660

Reviewed by Alex Christensen.

Source/WebCore:

Construct WTF:Function directly from a function pointer when possible
instead of constructing a lambda to do so.

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::InitDataRegistry::InitDataRegistry):

  • page/Page.cpp:
  • page/mac/PageMac.mm:

(WebCore::Page::platformInitialize):

  • platform/cf/MainThreadSharedTimerCF.cpp:

(WebCore::setupPowerObserver):

  • platform/mac/WebCoreNSURLExtras.mm:
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):

  • workers/Worker.cpp:

(WebCore::Worker::Worker):

Source/WTF:

Allow constructing a WTF:Function from a function pointer and
assigning a function pointer to a WTF:Function.

  • wtf/Function.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/Function.cpp:

(TestWebKitAPI::returnThree):
(TestWebKitAPI::returnFour):
(TestWebKitAPI::returnPassedValue):
(TestWebKitAPI::TEST):

3:46 PM Changeset in webkit [218659] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.27

Tag Safari-604.1.27.

3:43 PM Changeset in webkit [218658] by Ryan Haddad
  • 6 edits in branches/safari-604.1.25.3-branch/LayoutTests

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:
  • web-platform-tests/html/dom/self-origin.sub-expected.txt:

LayoutTests:

  • platform/mac/TestExpectations:
3:13 PM Changeset in webkit [218657] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/libwebrtc

Fix build after r218645
https://bugs.webkit.org/show_bug.cgi?id=173668

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21

  • Source/webrtc/base/sigslottester.h: Removing executable right.
  • Source/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h:

(webrtc::TemporalLayersFactory::Create): Inline a default implementation.

  • Source/webrtc/modules/video_processing/util/skin_detection.h: Removing executable right.
3:11 PM Changeset in webkit [218656] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r218606): 3D Touch action menu for links is missing items
https://bugs.webkit.org/show_bug.cgi?id=173669
<rdar://problem/32905541>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
defaultActionsForLinkSheet is used outside the usual action sheet flow,
by 3D Touch code. Therefore, we're not guaranteed to have a _positionInformation.
We don't need one, though -- we can get the URL from the passed-in
_WKActivatedElementInfo, exactly like defaultActionsForImageSheet already did.

(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
Remove the delegate null check, which isn't used after r218606.

2:55 PM Changeset in webkit [218655] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

CSS text properties affect <video> shadow root
https://bugs.webkit.org/show_bug.cgi?id=173664
<rdar://problem/32904328>

Patch by Antoine Quint <Antoine Quint> on 2017-06-21
Reviewed by Dean Jackson.

Source/WebCore:

Ensure that we reset all inheritable styles back to their initial value for media shadow roots.

Test: media/modern-media-controls/time-label/time-label-inherited-text-indent.html

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container):

LayoutTests:

Add a test that ensures that setting an inheritable style on the <video> does not affect
time labels within the shadow root.

  • media/modern-media-controls/time-label/time-label-inherited-text-indent-expected.txt: Added.
  • media/modern-media-controls/time-label/time-label-inherited-text-indent.html: Added.
2:50 PM Changeset in webkit [218654] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

2:35 PM Changeset in webkit [218653] by jmarcell@apple.com
  • 1 copy in tags/Safari-603.3.7

Tag Safari-603.3.7.

2:32 PM Changeset in webkit [218652] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk

Web Inspector: Using "break on all exceptions" when throwing stack overflow hangs inspector
https://bugs.webkit.org/show_bug.cgi?id=172432
<rdar://problem/29870873>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-06-21
Reviewed by Saam Barati.

Source/JavaScriptCore:

Avoid pausing on StackOverflow and OutOfMemory errors to avoid a hang.
We will proceed to improve debugging of these cases in the follow-up bugs.

  • debugger/Debugger.cpp:

(JSC::Debugger::exception):
Ignore pausing on these errors.

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::setStackOverflowError):
(JSC::ErrorInstance::isStackOverflowError):
(JSC::ErrorInstance::setOutOfMemoryError):
(JSC::ErrorInstance::isOutOfMemoryError):

  • runtime/ExceptionHelpers.cpp:

(JSC::createStackOverflowError):

  • runtime/Error.cpp:

(JSC::createOutOfMemoryError):
Mark these kinds of errors.

LayoutTests:

  • inspector/debugger/no-pause-out-of-memory-exception-expected.txt: Added.
  • inspector/debugger/no-pause-out-of-memory-exception.html: Added.
  • inspector/debugger/no-pause-stack-overflow-exception-expected.txt: Added.
  • inspector/debugger/no-pause-stack-overflow-exception.html: Added.
2:29 PM Changeset in webkit [218651] by Simon Fraser
  • 11 edits
    8 deletes in trunk

Remove WILL_REVEAL_EDGE_EVENTS code
https://bugs.webkit.org/show_bug.cgi?id=173632

Reviewed by Sam Weinig, Beth Dakin.

Remove will-reveal-edge events, which never took off.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::clearScriptedAnimationController):
(WebCore::Document::sendWillRevealEdgeEventsIfNeeded): Deleted.

  • dom/Document.h:
  • dom/GlobalEventHandlers.idl:
  • html/HTMLBodyElement.idl:
  • html/HTMLFrameSetElement.idl:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollPositionChanged):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):

Source/WTF:

  • wtf/FeatureDefines.h:

LayoutTests:

  • fast/events/will-reveal-edge-on-div-expected.txt: Removed.
  • fast/events/will-reveal-edge-on-div.html: Removed.
  • fast/events/will-reveal-edges-body-attributes-expected.txt: Removed.
  • fast/events/will-reveal-edges-body-attributes.html: Removed.
  • fast/events/will-reveal-edges-event-listeners-expected.txt: Removed.
  • fast/events/will-reveal-edges-event-listeners.html: Removed.
  • fast/events/will-reveal-edges-window-attributes-expected.txt: Removed.
  • fast/events/will-reveal-edges-window-attributes.html: Removed.
2:20 PM Changeset in webkit [218650] by jmarcell@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebKit/win

rdar://problem/32869380

2:19 PM Changeset in webkit [218649] by dbates@webkit.org
  • 19 edits in trunk/Source

Cleanup FrameLoadRequest
https://bugs.webkit.org/show_bug.cgi?id=173564
<rdar://problem/32903570>

Reviewed by Brent Fulgham.

Source/WebCore:

FrameLoadRequest has too many constructors. Use default values to reduce the number of
constructors. Have FrameLoadRequest hold a Ref<SecurityOrigin> instead of a RefPtr<SecurityOrigin>
as FrameLoadRequest must always hold a valid SecurityOrigin, the security origin of the
document that initiated the request.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab): Explicitly pass the null-string for
the target frame name as we do not have one. Use C++11 brace initialization syntax and ASCIILiteral().
Rename local variable from request to frameLoadRequest to better describe its purpose. Fix up
FIXME comment added in r105600 to better describe the issue we should fix as the code as
changed since the FIXME was added.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate): No need to pass ShouldReplaceDocumentIfJavaScriptURL::ReplaceDocumentIfJavaScriptURL
now that the FrameLoadRequests constructor uses this policy by default. Use C++11 brace
initialization syntax and ASCIILiteral(). Rename local variable from frameRequest to frameLoadRequest
to better describe its purpose.

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest): Use C++11 brace initialization syntax.

  • loader/FrameLoadRequest.h: Remove many constructor overloads. Changed m_requester from

RefPtr<SecurityOrigin> to Ref<SecurityOrigin> as we can never be instantiated with a null
SecurityOrigin. Moved m_shouldCheckNewWindowPolicy to be under ShouldOpenExternalURLsPolicy
to reduce the size of the class by 8 bytes.

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest): Added copy constructor as we must use Ref::copyRef()
to copy the Ref<SecurityOrigin>.
(WebCore::FrameLoadRequest::requester): Return a const SecurityOrigin& instead of a const SecurityOrigin*.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Update now that the order of the ShouldReplaceDocumentIfJavaScriptURL
and ShouldOpenExternalURLsPolicy arguments in the FrameLoadRequest constructor has changed.
(WebCore::FrameLoader::loadURLIntoChildFrame): Ditto. Also use C++11 brace initialization syntax
and ASCIILiteral().
(WebCore::FrameLoader::loadFrameRequest): Update code now that FrameLoadRequest::requester() returns a
SecurityOrigin& instead of a SecurityOrigin*. Use C++11 brace initialization syntax.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange): Use C++11 brace initialization syntax.
Rename local variable from frameRequest to frameLoadRequest to better describe its purpose.

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected): ove FrameLoadRequest instantiation
into a local variable and use C++11 brace initialization syntax to make it easier to identify
the arguments passed to FrameLoader::loadFrameRequest().

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Update now that the order of the ShouldReplaceDocumentIfJavaScriptURL
and ShouldOpenExternalURLsPolicy arguments in the FrameLoadRequest constructor has changed.
Use C++11 brace initialization syntax and ASCIILiteral(). Rename some local variables to better
describe their purpose.

Source/WebKit/ios:

Move FrameLoadRequest instantiation into a local variable and use C++11 brace initialization
syntax to make it easier to identify the arguments passed to FrameLoader::loadFrameRequest().

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]): Move FrameLoadRequest instantiation
into a local variable and use C++11 brace initialization syntax to make it easier to identify
the arguments passed to FrameLoader::loadFrameRequest().

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start): Explicitly pass an empty ResourceRequest (we populate it after
we instantiate the FrameLoadRequest) and pass the null-string for the target frame name as
we do not have one. Use C++11 brace initialization syntax.
(WebCore::PluginView::getURLNotify): Explicitly pass the null-string for the target frame
name as we do not have one. Use C++11 brace initialization syntax.
(WebCore::PluginView::getURL): Ditto.
(WebCore::PluginView::handlePost): Move instantiation of FrameLoadRequest from the top of the
function to closer to where it is actually used. Explicitly pass the null-string for the target
frame name as we do not have one. Use C++11 brace initialization syntax.

Source/WebKit2:

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL): Explicitly pass the null-string for the target frame
name as we do not have one. Use C++11 brace initialization syntax.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage): Ditto.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab): It is no longer necessary to pass ReplaceDocumentIfJavaScriptURL
when instantiating the FrameLoadRequest as it defaults to this policy. Use C++11 brace initialization syntax.

2:13 PM Changeset in webkit [218648] by Simon Fraser
  • 3 edits
    2 adds in trunk

svgPath.getTotalLength() freezes webkit
https://bugs.webkit.org/show_bug.cgi?id=173566
<rdar://problem/32866731>

Reviewed by Dean Jackson.

Source/WebCore:

Ensure that curveLength() progresses by making split() return a bool indicating
whether either of the resulting curves are the same as the original. This can happen
when midPoint() on two close points returns a point that is the same as one of the
arguments because of floating-point precision limitations.

Test: svg/custom/path-getTotalLength-hang.html

  • platform/graphics/PathTraversalState.cpp:

(WebCore::QuadraticBezier::operator ==):
(WebCore::QuadraticBezier::split):
(WebCore::CubicBezier::operator ==):
(WebCore::CubicBezier::split):
(WebCore::curveLength):

LayoutTests:

  • svg/custom/path-getTotalLength-hang.html: Added.
2:06 PM Changeset in webkit [218647] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix AVVideoCaptureSource frameRate setter and getter
https://bugs.webkit.org/show_bug.cgi?id=173637

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Eric Carlson.

Covered by manual testing.

Using activeVideoMaxFrameDuration to get the frame rate.
Setting the frame rate according the given vale if in the allowed range.

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

(WebCore::AVVideoCaptureSource::updateSettings):
(WebCore::AVVideoCaptureSource::applyFrameRate):
(WebCore::AVVideoCaptureSource::applySizeAndFrameRate):
(WebCore::AVVideoCaptureSource::shutdownCaptureSession):
(WebCore::AVVideoCaptureSource::processNewFrame):
(WebCore::AVVideoCaptureSource::updateFramerate): Deleted.

1:52 PM Changeset in webkit [218646] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Remove expat source code from Source/ThirdParty/libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=173656

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Brent Fulgham.

  • Source/third_party/expat/BUILD.gn: Removed.
  • Source/third_party/expat/OWNERS: Removed.
  • Source/third_party/expat/README.chromium: Removed.
  • Source/third_party/expat/files/COPYING: Removed.
  • Source/third_party/expat/files/Changes: Removed.
  • Source/third_party/expat/files/MANIFEST: Removed.
  • Source/third_party/expat/files/README: Removed.
  • Source/third_party/expat/files/lib/amigaconfig.h: Removed.
  • Source/third_party/expat/files/lib/ascii.h: Removed.
  • Source/third_party/expat/files/lib/asciitab.h: Removed.
  • Source/third_party/expat/files/lib/expat.h: Removed.
  • Source/third_party/expat/files/lib/expat_config.h: Removed.
  • Source/third_party/expat/files/lib/expat_external.h: Removed.
  • Source/third_party/expat/files/lib/iasciitab.h: Removed.
  • Source/third_party/expat/files/lib/internal.h: Removed.
  • Source/third_party/expat/files/lib/latin1tab.h: Removed.
  • Source/third_party/expat/files/lib/libexpat.def: Removed.
  • Source/third_party/expat/files/lib/libexpatw.def: Removed.
  • Source/third_party/expat/files/lib/macconfig.h: Removed.
  • Source/third_party/expat/files/lib/nametab.h: Removed.
  • Source/third_party/expat/files/lib/utf8tab.h: Removed.
  • Source/third_party/expat/files/lib/winconfig.h: Removed.
  • Source/third_party/expat/files/lib/winconfig.h.original: Removed.
  • Source/third_party/expat/files/lib/xmlparse.c: Removed.
  • Source/third_party/expat/files/lib/xmlparse.c.original: Removed.
  • Source/third_party/expat/files/lib/xmlrole.c: Removed.
  • Source/third_party/expat/files/lib/xmlrole.h: Removed.
  • Source/third_party/expat/files/lib/xmltok.c: Removed.
  • Source/third_party/expat/files/lib/xmltok.h: Removed.
  • Source/third_party/expat/files/lib/xmltok_impl.c: Removed.
  • Source/third_party/expat/files/lib/xmltok_impl.c.original: Removed.
  • Source/third_party/expat/files/lib/xmltok_impl.h: Removed.
  • Source/third_party/expat/files/lib/xmltok_ns.c: Removed.
  • Source/third_party/expat/fuzz/OWNERS: Removed.
  • Source/third_party/expat/fuzz/expat_xml_parse_fuzzer.cc: Removed.
1:40 PM Changeset in webkit [218645] by commit-queue@webkit.org
  • 1388 edits
    2 copies
    54 moves
    550 adds
    209 deletes in trunk/Source

Refresh libwebrtc code up to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae
https://bugs.webkit.org/show_bug.cgi?id=173602

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Source/WebCore:

No feature change.

Updated according small libwebrtc API changes.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::configurationFromMediaEndpointConfiguration):

  • platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::pixelBufferFromVideoFrame):

  • platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded):
(WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable):

1:05 PM Changeset in webkit [218644] by commit-queue@webkit.org
  • 9 edits in trunk

Add support for structured serialization of CSS Geometry types
https://bugs.webkit.org/show_bug.cgi?id=173631

Patch by Sam Weinig <sam@webkit.org> on 2017-06-21
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/geometry-1/structured-serialization-expected.txt:

Update test results now that they pass.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/geometry-1/structured-serialization.html

Adds support for serializing the new geometry types as specified by:
https://drafts.fxtf.org/geometry-1/#structured-serialization

  • WebCore.xcodeproj/project.pbxproj:

Move a few custom bindings into the "GC / Wrapping Only" since they have no more custom operations or attributes.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpDOMPoint):
(WebCore::CloneSerializer::dumpDOMRect):
(WebCore::CloneSerializer::dumpDOMMatrix):
(WebCore::CloneSerializer::dumpDOMQuad):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::getJSValue):
(WebCore::CloneDeserializer::readDOMPoint):
(WebCore::CloneDeserializer::readDOMMatrix):
(WebCore::CloneDeserializer::readDOMRect):
(WebCore::CloneDeserializer::readDOMPointInit):
(WebCore::CloneDeserializer::readDOMQuad):
(WebCore::CloneDeserializer::readTerminal):
Add serialization/deserialization of the geometry types.

  • css/DOMMatrix.cpp:

(WebCore::DOMMatrix::DOMMatrix):

  • css/DOMMatrix.h:

(WebCore::DOMMatrix::create):

  • css/DOMMatrixReadOnly.cpp:

(WebCore::DOMMatrixReadOnly::DOMMatrixReadOnly):

  • css/DOMMatrixReadOnly.h:

(WebCore::DOMMatrixReadOnly::create):
Add create functions and constructors that take a TransformationMatrix by r-value reference
so they can be moved into the DOM type.

12:49 PM Changeset in webkit [218643] by akling@apple.com
  • 5 edits in trunk

[iOS] Ensure that GraphicsServices is initialized before calling GSFontPurgeFontCache().
https://bugs.webkit.org/show_bug.cgi?id=173616
<rdar://problem/30780050>

Reviewed by Chris Dumez.

Source/WebCore:

Fix for crash in GSFontPurgeFontCache() seen in apps embedding WebKit.
Ensure GSFontInitialize() has been called first, since the former depends on state
set up by this function.

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory):

  • platform/spi/ios/GraphicsServicesSPI.h:

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework/GraphicsServices.tbd:
11:54 AM Changeset in webkit [218642] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] Add drag-and-drop release logging around WKContentView
https://bugs.webkit.org/show_bug.cgi?id=173636

Reviewed by Tim Horton.

Add logging at key points in the drag-and-drop lifecycle in the UI process, so that sysdiagnoses will contain
sufficient information to debug sparse failures.

  • Platform/Logging.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didHandleStartDataInteractionRequest:]):
(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _didPerformDataInteractionControllerOperation:]):
(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView dragInteraction:itemsForBeginningSession:]):
(-[WKContentView dragInteraction:sessionWillBegin:]):
(-[WKContentView _api_dragInteraction:session:didEndWithOperation:]):
(-[WKContentView dropInteraction:canHandleSession:]):
(-[WKContentView _api_dropInteraction:sessionDidEnter:]):
(-[WKContentView dropInteraction:sessionDidExit:]):
(-[WKContentView dropInteraction:performDrop:]):
(-[WKContentView dropInteraction:sessionDidEnd:]):

11:42 AM Changeset in webkit [218641] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Make it clear that regenerating ICs are holding the CodeBlock's lock by passing the locker as a parameter
https://bugs.webkit.org/show_bug.cgi?id=173609

Reviewed by Keith Miller.

This patch makes many of the IC generating functions require a locker as
a parameter. We do this in other places in JSC to indicate that
a particular API is only valid while a particular lock is held.
This is the case when generating ICs. This patch just makes it
explicit in the IC generating interface.

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::commit):
(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::initStub): Deleted.

  • bytecode/StructureStubInfo.h:
  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):

11:37 AM Changeset in webkit [218640] by commit-queue@webkit.org
  • 11 edits in trunk

Add logging to identify when the Page suspends scripted animations
https://bugs.webkit.org/show_bug.cgi?id=173626

Patch by Antoine Quint <Antoine Quint> on 2017-06-21
Reviewed by Tim Horton.

Source/WebCore:

We have a longstanding issue that some media/modern-media-controls tests time out due to
requestAnimationFrame callbacks not being serviced, which is tracked by webkit.org/b/173628.
We added some logging to identify when ScriptedAnimationController would get suspended in
webkit.org/b/173326. This logging points to the fact that the reason rAF callbacks aren't
serviced is because Document::requestAnimationFrame() suspends rAF when the page reports
that scripted animations ought to be suspended, which is true when m_scriptedAnimationsSuspended
is true. This patch adds logging that tracks when this flag is set, provided a new setting
shouldLogScriptedAnimationControllerSuspensionChange is true.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::logSuspendCount):

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):
(WebCore::Page::resumeScriptedAnimations):

  • page/Settings.in:

Source/WebKit/mac:

Add a new preference to control the new shouldLogScriptedAnimationControllerSuspensionChange settings
through WebKit. This is specific to WK1 since the issue we're trying to pinpoint only occurs on WK1 bots.

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

(+[WebPreferences initialize]):
(-[WebPreferences shouldLogScriptedAnimationControllerSuspensionChange]):
(-[WebPreferences setShouldLogScriptedAnimationControllerSuspensionChange:]):

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

(-[WebView _preferencesChanged:]):

Tools:

Turn the new logging on for WK1/DRT since the issue we're trying to pinpoint only occurs on WK1 bots.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

10:08 AM Changeset in webkit [218639] by commit-queue@webkit.org
  • 5 edits
    19 adds in trunk/LayoutTests/imported/w3c

Import W3C tests regarding navigation inside sandboxed iframes
https://bugs.webkit.org/show_bug.cgi?id=173649

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-21
Reviewed by Youenn Fablet.

This import new tests added in https://github.com/w3c/web-platform-tests/pull/6221 to verify
sandboxing of iframes and will help to test the changes in bug 173162.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/content_document_changes_only_after_load_matures-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/content_document_changes_only_after_load_matures.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-2.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-1-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-1.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-2-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_ancestor-2.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_descendants-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_descendants.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_itself-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigate_itself.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-performs-top-navigation-on-popup.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-that-tries-to-navigate-parent-and-sends-result-to-grandparent.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-tried-to-be-navigated-by-its-child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-its-child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-itself.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
10:05 AM Changeset in webkit [218638] by commit-queue@webkit.org
  • 2 edits in trunk

[MSVC] Fix compilation in CP932 (Shift_JIS) environment
https://bugs.webkit.org/show_bug.cgi?id=173638

Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-06-21
Reviewed by Alex Christensen.

Give "/utf-8 /validate-charset" options to the MSVC compiler
to specify the source code encoding.

  • Source/cmake/OptionsMSVC.cmake:
9:48 AM Changeset in webkit [218637] by achristensen@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

[Curl] Extract CurlDownloadManager as shared background task handler
https://bugs.webkit.org/show_bug.cgi?id=173557

Curl resource handling should be shared by other part of Curl
network stack. CurlDownloadManager is extracted as stand alone
CurlManager singleton class to be ready for others
(i.e. ResourceHandle).

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-06-21
Reviewed by Alex Christensen.

  • PlatformWinCairo.cmake:
  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::setCookiesFromDOM):
(WebCore::cookiesForSession):

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::init):
(WebCore::CurlDownload::start):
(WebCore::CurlDownload::cancel):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::handleCurlMsg):
(WebCore::CurlDownloadManager::CurlDownloadManager): Deleted.
(WebCore::CurlDownloadManager::~CurlDownloadManager): Deleted.
(WebCore::CurlDownloadManager::add): Deleted.
(WebCore::CurlDownloadManager::remove): Deleted.
(WebCore::CurlDownloadManager::getActiveDownloadCount): Deleted.
(WebCore::CurlDownloadManager::getPendingDownloadCount): Deleted.
(WebCore::CurlDownloadManager::startThreadIfNeeded): Deleted.
(WebCore::CurlDownloadManager::stopThread): Deleted.
(WebCore::CurlDownloadManager::stopThreadIfIdle): Deleted.
(WebCore::CurlDownloadManager::updateHandleList): Deleted.
(WebCore::CurlDownloadManager::addToCurl): Deleted.
(WebCore::CurlDownloadManager::removeFromCurl): Deleted.
(WebCore::CurlDownloadManager::downloadThread): Deleted.

  • platform/network/curl/CurlDownload.h:

(WebCore::CurlDownloadManager::getMultiHandle): Deleted.
(WebCore::CurlDownloadManager::runThread): Deleted.
(WebCore::CurlDownloadManager::setRunThread): Deleted.

  • platform/network/curl/CurlManager.cpp: Added.

(WebCore::CurlManager::CurlManager):
(WebCore::CurlManager::~CurlManager):
(WebCore::CurlManager::add):
(WebCore::CurlManager::remove):
(WebCore::CurlManager::getActiveCount):
(WebCore::CurlManager::getPendingCount):
(WebCore::CurlManager::startThreadIfNeeded):
(WebCore::CurlManager::stopThread):
(WebCore::CurlManager::stopThreadIfIdle):
(WebCore::CurlManager::updateHandleList):
(WebCore::CurlManager::addToCurl):
(WebCore::CurlManager::removeFromCurl):
(WebCore::CurlManager::workerThread):
(WebCore::CurlUtils::getEffectiveURL):
(WebCore::CurlSharedResources::mutexFor):
(WebCore::CurlSharedResources::lock):
(WebCore::CurlSharedResources::unlock):

  • platform/network/curl/CurlManager.h: Added.

(WebCore::CurlManager::singleton):
(WebCore::CurlManager::getCurlShareHandle):
(WebCore::CurlManager::getMultiHandle):
(WebCore::CurlManager::runThread):
(WebCore::CurlManager::setRunThread):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::~ResourceHandleManager):
(WebCore::handleLocalReceiveResponse):
(WebCore::getProtectionSpace):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::getCurlEffectiveURL): Deleted.
(WebCore::sharedResourceMutex): Deleted.
(WebCore::curl_lock_callback): Deleted.
(WebCore::curl_unlock_callback): Deleted.
(WebCore::ResourceHandleManager::getCurlShareHandle): Deleted.

  • platform/network/curl/ResourceHandleManager.h:
9:25 AM Changeset in webkit [218636] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed gardening

Update expectations to known flaky http/appcache tests and also a
couple of flaky crashing tests.

  • platform/wpe/TestExpectations:
9:19 AM Changeset in webkit [218635] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

LayoutTests/imported/w3c/resources/import-expectations.json is broken after http://trac.webkit.org/changeset/218181
https://bugs.webkit.org/show_bug.cgi?id=173651

Patch by Youenn Fablet <youenn@apple.com> on 2017-06-21
Reviewed by Chris Dumez.

  • resources/import-expectations.json: Fix the merge.
9:04 AM Changeset in webkit [218634] by commit-queue@webkit.org
  • 8 edits in trunk

Include audio/vnd.wave as a valid mime-type for wav files.
https://bugs.webkit.org/show_bug.cgi?id=173635
rdar://problem/32656568

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-21
Reviewed by Eric Carlson.

audio/vnd.wave is a valid mime-type for wav files per https://tools.ietf.org/html/rfc2361

Updated test and test results:
LayoutTests/media/media-can-play-wav-audio.html

  • platform/MIMETypeRegistry.cpp:

(WebCore::initializeSupportedImageMIMETypes):
(WebCore::mimeTypeAssociationMap):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::mimeTypeSet):

8:58 AM Changeset in webkit [218633] by Chris Fleizach
  • 8 edits
    2 adds in trunk

AX: Cannot call setValue() on contenteditable or ARIA text controls
https://bugs.webkit.org/show_bug.cgi?id=173520

Reviewed by Ryosuke Niwa.

Source/WebCore:

Add support for changing the value of a contenteditable and any other aria text control in setValue().

Test: accessibility/set-value-editable-types.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setValue):

Tools:

Add setValue() method to WKTR (already existed in DRT).

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::setValue):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setValue):

LayoutTests:

  • accessibility/set-value-editable-types-expected.txt: Added.
  • accessibility/set-value-editable-types.html: Added.
8:56 AM Changeset in webkit [218632] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

Don't clear audio mute when muting capture.
https://bugs.webkit.org/show_bug.cgi?id=173639
rdar://problem/32749737

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-21
Reviewed by Eric Carlson.

Setting capture mute was clearing audio mute.
Added setMediaStreamCaptureMuted to set just the capture mute bit.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _muteMediaCapture]):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::muteCaptureMediaStreamsExceptIn):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMediaStreamCaptureMuted):

  • UIProcess/WebPageProxy.h:
8:50 AM Changeset in webkit [218631] by magomez@igalia.com
  • 3 edits in trunk

[GTK] Fix the condition to enable/disable GSTREAMER_GL
https://bugs.webkit.org/show_bug.cgi?id=173650

Reviewed by Carlos Garcia Campos.

If GSTREAMER_GL is enabled, check for the GStreamer version. If the version is < 1.10, disable
GSTREAMER_GL and continue. If the version is >= 1.10 but there's no gstreamer-gl package available
then fail.

  • Source/cmake/FindGStreamer.cmake:
  • Source/cmake/OptionsGTK.cmake:
5:33 AM Changeset in webkit [218630] by magomez@igalia.com
  • 2 edits in trunk

[GTK] Enable GStreamer GL by default on production builds
https://bugs.webkit.org/show_bug.cgi?id=173406

Reviewed by Carlos Garcia Campos.

Enable GStreamer GL by default when the GStreamer version >= 1.10.

  • Source/cmake/OptionsGTK.cmake:
5:29 AM Changeset in webkit [218629] by magomez@igalia.com
  • 6 edits
    2 adds in trunk/Source/WebKit2

[GTK][WAYLAND] Create WaylandCompositorDisplay unconditionally when initializing the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=173598

Reviewed by Carlos Garcia Campos.

Move WaylandCompositorDisplay code to its own files so it can be used from other classes. Then, instead of
storing the waylandCompositorDisplayName in the WebProcess, keep a WaylandCompositorDisplay instance that
is created during the initialization. This way the appropriate sharedDisplayForCompositing will be set
since the creation of the WebProcess.

  • PlatformGTK.cmake:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:

(WebKit::AcceleratedSurfaceWayland::create):
(WebKit::AcceleratedSurfaceWayland::AcceleratedSurfaceWayland):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::waylandCompositorDisplay):

  • WebProcess/gtk/WaylandCompositorDisplay.cpp: Added.

(WebKit::WaylandCompositorDisplay::create):
(WebKit::WaylandCompositorDisplay::bindSurfaceToPage):
(WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay):
(WebKit::WaylandCompositorDisplay::registryGlobal):

  • WebProcess/gtk/WaylandCompositorDisplay.h: Added.
  • WebProcess/soup/WebProcessSoup.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):

12:49 AM Changeset in webkit [218628] by Carlos Garcia Campos
  • 4 edits
    3 moves in trunk

[GTK] Move WebGtkExtensionManager and WebGtkInjectedBundleMain to glib API dir
https://bugs.webkit.org/show_bug.cgi?id=173606

Reviewed by Žan Doberšek.

.:

Update public symbols that were renamed.

  • Source/cmake/gtksymbols.filter:

Source/WebKit2:

And rename them to use WebKit prefix instead of WebGtk.

  • PlatformGTK.cmake:
  • WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp: Renamed from Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.cpp.

(WebKit::WebKitExtensionManager::singleton):
(WebKit::WebKitExtensionManager::WebKitExtensionManager):
(WebKit::WebKitExtensionManager::scanModules):
(WebKit::WebKitExtensionManager::initializeWebExtension):
(WebKit::WebKitExtensionManager::initialize):

  • WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h: Renamed from Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.h.
  • WebProcess/InjectedBundle/API/glib/WebKitInjectedBundleMain.cpp: Renamed from Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp.

(WKBundleInitialize):

12:09 AM Changeset in webkit [218627] by zandobersek@gmail.com
  • 3 edits in trunk/Tools

List libtasn1 packages in GTK+ and WPE install-dependencies scripts
as one of the dependencies required to build the product.

Rubber-stamped by Carlos Garcia Campos.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
Note: See TracTimeline for information about the timeline view.