Timeline
Jan 8, 2020:
- 11:52 PM Changeset in webkit [254253] by
-
- 2 edits in trunk/LayoutTests
Fix test transferToImageBitmap-empty.html after r253099
https://bugs.webkit.org/show_bug.cgi?id=205924
Reviewed by Žan Doberšek.
- http/wpt/offscreen-canvas/transferToImageBitmap-empty.html:
- 10:07 PM Changeset in webkit [254252] by
-
- 71 edits7 adds in trunk
[JSC] Introduce JSArrayIterator
https://bugs.webkit.org/show_bug.cgi?id=204043
Reviewed by Yusuke Suzuki.
JSTests:
- stress/array-iterator-materialize-at-osr-exit.js: Added.
(shouldBe):
(test):
- stress/array-iterator-materialize-one-path.js: Added.
(shouldBe):
(test):
- stress/array-iterator-materialize.js: Added.
(shouldBe):
(test):
- stress/array-iterator-sinking.js: Added.
(shouldBe):
(test):
- stress/array-iterators-next-error-messages.js:
(catch):
- stress/array-iterators-next-with-call.js:
- stress/for-of-iteration.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
- stress/typedarray-functions-with-neutered.js:
(checkProtoFunc):
Source/JavaScriptCore:
This patch introduces JSArrayIterator that changes the iterator object
from a JSFinalObject to an InternalFieldsObject. This makes accessing it
much easier from C++ code and makes the iterator object smaller. It also
means that the JS code for the next function is much simpler and can *almost*
be inlined without shenanigans.
As part of this patch the keys/values/entries functions have been converted to
C++ with intrinsics since that's slightly more efficient in the LLInt/Baseline.
Lastly, this patch also add a custom ISOSubspace for JSArrayIterator objects.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- builtins/ArrayIteratorPrototype.js:
(next):
(globalPrivate.arrayIteratorNextHelper):
(globalPrivate.arrayIteratorValueNext): Deleted.
(globalPrivate.arrayIteratorKeyNext): Deleted.
(globalPrivate.arrayIteratorKeyValueNext): Deleted.
- builtins/ArrayPrototype.js:
(globalPrivate.ArrayIterator): Deleted.
(values): Deleted.
(keys): Deleted.
(entries): Deleted.
- builtins/TypedArrayPrototype.js:
(values): Deleted.
(keys): Deleted.
(entries): Deleted.
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitIsArrayIterator):
- bytecompiler/NodesCodegen.cpp:
(JSC::arrayIteratorInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getArrayIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putArrayIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isGenerator): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isAsyncGenerator): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isJSArray): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isPromise): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isProxyObject): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isRegExpObject): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isObject): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isDerivedArray): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isMap): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isSet): Deleted.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isUndefinedOrNull): Deleted.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGMayExit.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomNewObject):
(JSC::DFG::Node::convertToPhantomNewArrayIterator):
(JSC::DFG::Node::convertToPhantomCreateActivation):
(JSC::DFG::Node::hasStructure):
(JSC::DFG::Node::hasObjectMaterializationData):
(JSC::DFG::Node::isPhantomAllocation):
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGPromotedHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGPromotedHeapLocation.h:
(JSC::DFG::PromotedLocationDescriptor::neededForMaterialization const):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckNeutered):
(JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor):
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject):
(JSC::DFG::SpeculativeJIT::compileNewArrayIterator):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStoreBarrierInsertionPhase.cpp:
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToObjectOrCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckArray):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckNeutered):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayIterator):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewInternalFieldObjectImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewInternalFieldObject):
- ftl/FTLOperations.cpp:
(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::cloneArrayIteratorObject):
(Inspector::JSInjectedScriptHost::iteratorEntries):
- runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
(JSC::createArrayIteratorObject):
(JSC::arrayProtoFuncValues):
(JSC::arrayProtoFuncEntries):
(JSC::arrayProtoFuncKeys):
- runtime/CommonIdentifiers.h:
- runtime/Intrinsic.cpp:
(JSC::intrinsicName):
- runtime/Intrinsic.h:
- runtime/IterationKind.h:
(): Deleted.
- runtime/JSArrayIterator.cpp: Added.
(JSC::JSArrayIterator::create):
(JSC::JSArrayIterator::createWithInitialValues):
(JSC::JSArrayIterator::createStructure):
(JSC::JSArrayIterator::JSArrayIterator):
(JSC::JSArrayIterator::finishCreation):
(JSC::JSArrayIterator::visitChildren):
- runtime/JSArrayIterator.h: Added.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::arrayIteratorPrototype const):
(JSC::JSGlobalObject::arrayIteratorStructure const):
- runtime/JSMapIterator.h:
- runtime/JSSetIterator.h:
- runtime/JSType.cpp:
(WTF::printInternal):
- runtime/JSType.h:
- runtime/JSTypedArrayViewPrototype.cpp:
(JSC::createTypedArrayIteratorObject):
(JSC::typedArrayViewProtoFuncValues):
(JSC::typedArrayProtoViewFuncEntries):
(JSC::typedArrayViewProtoFuncKeys):
(JSC::JSTypedArrayViewPrototype::finishCreation):
- runtime/VM.cpp:
- runtime/VM.h:
Source/WebCore:
JSDOMIterator should just use the JSC IterationKind enum. Also,
update other files for the enum member name changes.
- bindings/js/JSDOMIterator.h:
(WebCore::IteratorTraits>::asJS):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateIterableDefinition):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
(WebCore::jsTestInterfacePrototypeFunctionKeysCaller):
(WebCore::jsTestInterfacePrototypeFunctionValuesCaller):
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
(WebCore::jsTestIterablePrototypeFunctionKeysCaller):
(WebCore::jsTestIterablePrototypeFunctionValuesCaller):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
(WebCore::jsTestNodePrototypeFunctionKeysCaller):
(WebCore::jsTestNodePrototypeFunctionValuesCaller):
LayoutTests:
Change the labels of iteration kinds to match what JS refers to them as.
- inspector/model/remote-object/iterator-expected.txt:
- inspector/model/remote-object/iterator-large-expected.txt:
- inspector/model/remote-object/iterators-mutated-expected.txt:
- 10:02 PM Changeset in webkit [254251] by
-
- 2 edits in trunk/Tools
build-jsc should work with "testing" and "release+assert" targets
https://bugs.webkit.org/show_bug.cgi?id=205978
Reviewed by Mark Lam.
- Scripts/webkitdirs.pm:
(determineConfiguration):
(determinePassedConfiguration):
- 9:31 PM Changeset in webkit [254250] by
-
- 2 edits14 deletes in trunk/LayoutTests/imported/w3c
Clean up web-platform-tests/resources
https://bugs.webkit.org/show_bug.cgi?id=204652
Reviewed by Dean Jackson.
This patch removes web-platform-tests/resources subdirectories that are
missing in upstream 73d748fca7e8 (import-w3c-tests tool seems to keep them).
Also it removes and marks as "skip" in import-expectations.json two subdirectories:
- web-platform-tests/resources/chromium as it contains Chromium-specific harness we don't use;
- web-platform-tests/resources/test as it contains harness tests we don't run.
In total, this patch removes ~2 MB of unneeded files.
- resources/import-expectations.json:
- web-platform-tests/resources/*: Updated.
- 6:45 PM Changeset in webkit [254249] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Remove some #ifdefs related to iOS port of ANGLE
https://bugs.webkit.org/show_bug.cgi?id=205781
Since the port to the iOS Simulator in
https://bugs.webkit.org/show_bug.cgi?id=205618 , these #ifdefs
should no longer be needed.
Patch by Kenneth Russell <kbr@chromium.org> on 2020-01-08
Reviewed by Dean Jackson.
- src/common/PackedEnums.cpp:
(egl_gl::EGLTextureTargetToTextureType):
- src/libANGLE/validationES2.cpp:
(gl::ValidateFramebufferTexture2D):
- 6:33 PM Changeset in webkit [254248] by
-
- 4 edits in trunk
build-jsc should invoke make instead of calling xcodebuild directly
https://bugs.webkit.org/show_bug.cgi?id=205960
Reviewed by Keith Miller.
.:
- Makefile.shared:
Tools:
This makes build-jsc invoke make instead of directly invoking xcodebuild.
There are some benefits here:
- 'make' is a more standard way to build than build-jsc, so as we make
improvements to the make build (e.g r254234), we'll get the same improvements
in build-jsc.
- There has been a longstanding bug where if you did if you did
build-jsc --release && cd Source/JavaScriptCore && make release
then themake releasecall would rebuild all of JavaScriptCore.
If build-jsc directly invokes make, this issue goes away and allows
the two to interoperate as expected.
- Scripts/build-jsc:
(buildMyProject):
- 6:30 PM Changeset in webkit [254247] by
-
- 2 edits in trunk/JSTests
Unreviewed follow up on r254188. I accidentally included the same test
twice instead of including the two different variants.
- stress/ai-value-mod-should-result-in-constant-int-where-possible.js:
- 6:24 PM Changeset in webkit [254246] by
-
- 3 edits in trunk/Tools
Unreviewed, rolling out r254235.
https://bugs.webkit.org/show_bug.cgi?id=205981
Broke layout tests (Requested by aakashja_ on #webkit).
Reverted changeset:
"run-webkit-tests: clobber-old-results should remove the
entire results folder"
https://bugs.webkit.org/show_bug.cgi?id=205875
https://trac.webkit.org/changeset/254235
Patch by Commit Queue <commit-queue@webkit.org> on 2020-01-08
- 6:15 PM Changeset in webkit [254245] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Sources: not all injected scripts and style sheets are from extensions
https://bugs.webkit.org/show_bug.cgi?id=205955
Reviewed by Brian Burg.
- UserInterface/Base/Utilities.js:
(isWebKitExtensionScheme): Added.
- UserInterface/Models/CSSStyleSheet.js:
(WI.CSSStyleSheet.prototype.get injected):
- .eslintrc:
Move the logic for detecting an extension injected resource to its own function.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject):
(WI.SourcesNavigationSidebarPanel.prototype._addStyleSheet):
(WI.SourcesNavigationSidebarPanel.prototype._addScript):
Only show the Anonymous Style Sheets folder once the user tries to show a style sheet that
would be in it.
- UserInterface/Views/OpenResourceDialog.js:
(WI.OpenResourceDialog.prototype.didPresentDialog):
(WI.OpenResourceDialog.prototype._addScriptsForTarget):
(WI.OpenResourceDialog.prototype._handleStyleSheetAdded):
(WI.OpenResourceDialog.prototype._handleStyleSheetRemoved):
Ignore anonymous scripts, and allow injected style sheets to be added after presenting.
- 6:04 PM Changeset in webkit [254244] by
-
- 2 edits in trunk/Source/JavaScriptCore
Instruction.h: Multiplication result converted to larger type
https://bugs.webkit.org/show_bug.cgi?id=205945
Reviewed by Mark Lam.
- bytecode/Instruction.h:
(JSC::BaseInstruction::size const):
Changed the types to size_t so that the computation is computed accordingly.
- 6:00 PM Changeset in webkit [254243] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Show RGBA input fields for p3 color picker
https://bugs.webkit.org/show_bug.cgi?id=203928
<rdar://problem/56963805>
Reviewed by Brian Burg.
Display numeric input fields for colors defined via
color(...)CSS syntax.
- UserInterface/Controllers/CodeMirrorColorEditingController.js:
(WI.CodeMirrorColorEditingController.prototype.popoverWillPresent):
Remove unnecessary WI.ColorPicker.Event.FormatChanged event.
- UserInterface/Views/ColorPicker.css:
(.color-picker > .color-inputs > div + div):
- UserInterface/Views/ColorPicker.js:
(WI.ColorPicker):
Don't append inputs of all possible color formats to DOM on instantiation.
(WI.ColorPicker.prototype.set color):
(WI.ColorPicker.prototype.set enableColorComponentInputs):
(WI.ColorPicker.prototype._updateColor):
(WI.ColorPicker.prototype._updateColorGamut):
(WI.ColorPicker.prototype._createColorInputsIfNeeded):
(WI.ColorPicker.prototype._showColorComponentInputs):
(WI.ColorPicker.prototype._handleColorInputsContainerInput):
- UserInterface/Views/InlineSwatch.js:
Remove unnecessary WI.ColorPicker.Event.FormatChanged event.
- 5:42 PM Changeset in webkit [254242] by
-
- 2 edits in trunk/Tools
[ews] Perform validation of patch before retrying CompileWebKit on ToT
https://bugs.webkit.org/show_bug.cgi?id=205953
<rdar://problem/58064430>
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(CompileWebKit.evaluateCommand):
- 5:42 PM Changeset in webkit [254241] by
-
- 71 edits1 add in trunk/Source
Reduce binary size by purging C++ type information in Objective-C fields and parameters
https://bugs.webkit.org/show_bug.cgi?id=205905
Reviewed by Saam Barati.
Source/JavaScriptCore:
- API/JSWrapperMap.mm:
(-[JSObjCClassInfo dealloc]):
Source/WebCore:
No behavior change.
- page/mac/WebCoreFrameView.h:
- platform/graphics/cocoa/WebGLLayer.h:
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContextGL:]):
- platform/ios/WebVideoFullscreenControllerAVKit.h:
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController videoElement]):
(-[WebVideoFullscreenController setVideoElement:]):
- platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollAnimationHelperDelegate initWithScrollAnimator:]):
(-[WebScrollAnimationHelperDelegate invalidate]):
(-[WebScrollerImpDelegate scrollAnimator]):
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate initWithNetworkSession:wrapper:withCredentials:]):
- Shared/API/Cocoa/WKBrowsingContextHandle.mm:
(-[WKBrowsingContextHandle _initWithPageProxy:]):
(-[WKBrowsingContextHandle _initWithPage:]):
- Shared/API/Cocoa/WKBrowsingContextHandleInternal.h:
- Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _initWithWebPage:]):
(-[_WKRemoteObjectRegistry _initWithWebPageProxy:]):
- Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _page]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):
- UIProcess/API/Cocoa/_WKThumbnailView.mm:
- UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processPool:configuration:]):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::setLayoutMode):
(WebKit::WebViewImpl::fullScreenWindowController):
(WebKit::WebViewImpl::remoteObjectRegistry):
- UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView willMoveToWindow:]):
(-[WKApplicationStateTrackingView didMoveToWindow]):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _manager]):
(-[WKFullScreenViewController _togglePiPAction:]):
(-[WKFullScreenViewController _showPhishingAlert]):
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(WebKit::WKWebViewState::applyTo):
(WebKit::WKWebViewState::store):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
(-[WKFullScreenWindowController _exitFullscreenImmediately]):
(-[WKFullScreenWindowController _manager]):
- UIProcess/mac/WKFullScreenWindowController.h:
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
- UIProcess/mac/WKImmediateActionController.h:
- UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
- UIProcess/mac/WKInspectorViewController.h:
- UIProcess/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController initWithInspectedPage:]):
- UIProcess/mac/WKTextFinderClient.h:
- UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient initWithPage:view:usePlatformFindUI:]):
- UIProcess/mac/WKViewLayoutStrategy.h:
- UIProcess/mac/WKViewLayoutStrategy.mm:
(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):
(-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
- WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
(-[WKDOMDocumentParserYieldToken initWithDocument:]):
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h:
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
(-[WKAccessibilityWebPageObjectBase axObjectCache]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):
Source/WebKitLegacy/mac:
- Plugins/WebBaseNetscapePluginView.h:
- Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView element]):
- WebCoreSupport/WebEditorClient.mm:
(_WebCreateFragment):
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::transitionToCommittedForNewPage):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:]):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:appLinkURL:]):
- WebCoreSupport/WebGeolocationClient.mm:
(-[WebGeolocationPolicyListener initWithGeolocation:]):
(-[WebGeolocationPolicyListener initWithGeolocation:forWebView:]):
(-[WebGeolocationProviderInitializationListener initWithGeolocation:]):
- WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::resetState):
(-[WebInspectorWindowController setFrontendClient:]):
(-[WebInspectorWindowController setInspectorClient:]):
(-[WebInspectorWindowController inspectorClient]):
- WebInspector/WebInspectorFrontend.h:
- WebInspector/WebInspectorFrontend.mm:
- WebInspector/WebNodeHighlight.h:
- WebInspector/WebNodeHighlight.mm:
(-[WebNodeHighlight initWithTargetView:inspectorController:]):
- WebView/WebArchive.mm:
(-[WebArchive initWithMainResource:subresources:subframeArchives:]):
- WebView/WebDataSource.mm:
(-[WebDataSource _documentLoader]):
(-[WebDataSource addSubresource:]):
- WebView/WebDataSourceInternal.h:
- WebView/WebFrame.mm:
(getWebView):
(-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]):
(-[WebFrame _unmarkAllBadGrammar]):
(-[WebFrame _unmarkAllMisspellings]):
(-[WebFrame _hasSelection]):
(-[WebFrame _atMostOneFrameHasSelection]):
(-[WebFrame _findFrameWithSelection]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):
(-[WebFrame _documentFragmentWithMarkupString:baseURLString:]):
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):
(-[WebFrame _canProvideDocumentSource]):
(-[WebFrame _isDescendantOfFrame:]):
(-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]):
(-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]):
(-[WebFrame setTimeoutsPaused:]):
(-[WebFrame prepareForPause]):
(-[WebFrame resumeFromPause]):
(-[WebFrame resetTextAutosizingBeforeLayout]):
(-[WebFrame _globalContextForScriptWorld:]):
(-[WebFrame _layerTreeAsText]):
(-[WebFrame _clearOpener]):
(-[WebFrame focusedNodeHasContent]):
(-[WebFrame _dispatchDidReceiveTitle:]):
(-[WebFrame jsWrapperForNode:inScriptWorld:]):
(-[WebFrame elementAtPoint:]):
(-[WebFrame name]):
(-[WebFrame DOMDocument]):
(-[WebFrame frameElement]):
(-[WebFrame provisionalDataSource]):
(-[WebFrame dataSource]):
(-[WebFrame loadRequest:]):
(-[WebFrame findFrameNamed:]):
(-[WebFrame parentFrame]):
(-[WebFrame childFrames]):
(-[WebFrame windowObject]):
(-[WebFrame globalContext]):
(-[WebFrame javaScriptContext]):
- WebView/WebFrameInternal.h:
- WebView/WebFrameView.mm:
(-[WebFrameView _web_frame]):
(-[WebFrameView _frameSizeChanged]):
(-[WebFrameView _isVerticalDocument]):
(-[WebFrameView _isFlippedDocument]):
(-[WebFrameView keyDown:keyDown:]):
- WebView/WebFullScreenController.mm:
(-[WebFullScreenController _document]):
- WebView/WebHTMLView.mm:
(-[WebMenuTarget menuController]):
(-[WebMenuTarget setMenuController:]):
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
(-[WebHTMLView _interpretKeyEvent:savingCommands:]):
(-[WebHTMLView setPromisedDragTIFFDataSource:]):
- WebView/WebHTMLViewInternal.h:
- WebView/WebNotification.mm:
(-[WebNotification initWithCoreNotification:notificationID:]):
- WebView/WebNotificationInternal.h:
- WebView/WebResource.mm:
(-[WebResource _coreResource]):
- WebView/WebResourceInternal.h:
- WebView/WebVideoFullscreenController.h:
- WebView/WebVideoFullscreenController.mm:
(-[WebVideoFullscreenController videoElement]):
(-[WebVideoFullscreenController setVideoElement:]):
- WebView/WebVideoFullscreenHUDWindowController.h:
- WebView/WebView.mm:
(-[WebView page]):
(-[WebView _enterVideoFullscreenForVideoElement:mode:]):
(-[WebView _setUpPlaybackControlsManagerForMediaElement:]):
(-[WebView _supportsFullScreenForElement:withKeyboard:]):
(-[WebView _enterFullScreenForElement:]):
(-[WebView _exitFullScreenForElement:]):
- WebView/WebViewInternal.h:
Source/WTF:
Objective-C has reflection mechanisms. This means that fields, methods, and their types
need to hold its string representations in binary even if we are using release build.
While typical Objective-C class does not have large size of type names, C++ struct / class
has very large one, and putting them in Objective-C method names, parameter types, or fields
makes binary size very large.
Interesting thing is that type information is gathered when parameter is a C++ pointer, reference,
or value. And it gathers one-level deep information from this pointer etc. This means that, if
we use RefPtr<T>, collected type information is the one of RefPtr, not one of T. So it becomes significantly
smaller.
This patch introduces NakedRef<T>. This is similar to Ref while it does not have any ownership. So it
is just a wrapper around T&. We already have NakedPtr<T>. And use NakedRef<T> / NakedPtr<T> instead
of T& and T* if,
- T is C++ class.
- T* / T& is in Objective-C fields or parameter types (including a return type).
Then, these type information is one of NakedRef<T> / NakedPtr<T> instead of T, and we can reduce binary size.
This patch saves 600~KB in binary size.
Note the following things.
- If we use
__attribute__((objc_direct)),__attribute__((objc_direct_members)), possibly, we can completely remove these metadata without using NakedRef / NakedPtr[1]. However, this is not available for our supporting platforms now (including pre-Catalina OSes). This NakedRef / NakedPtr technique can reduce binary without waiting for it. - Reverting NakedRef / NakedPtr to usual reference / pointer is fairly easy since it is well typed. Once
__attribute__((objc_direct))becomes available in our platforms, we can consider it. But using NakedRef / NakedPtr is harmless.
[1]: https://github.com/llvm/llvm-project/commit/d4e1ba3fa9dfec2613bdcc7db0b58dea490c56b1
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/NakedRef.h: Added.
(WTF::NakedRef::NakedRef):
(WTF::NakedRef::operator-> const):
(WTF::NakedRef::get const):
(WTF::NakedRef::operator T& const):
(WTF::NakedRef::operator! const):
(WTF::=):
(WTF::NakedRef<T>::swap):
(WTF::swap):
- 5:32 PM Changeset in webkit [254240] by
-
- 2 edits in trunk/PerformanceTests
REGRESSION (r242911?): High Sierra Release WK2 Perf bot timing out while running IndexedDB/large-number-of-inserts.html
https://bugs.webkit.org/show_bug.cgi?id=195952
<rdar://problem/49137688>
Re-enable the test after recent IDB performance improvement.
Reviewed by Alexey Proskuryakov.
- Skipped:
- 5:21 PM Changeset in webkit [254239] by
-
- 9 edits in trunk/Source
Resource Load Statistics: Flip experimental cookie blocking setting from an enable to a disable
https://bugs.webkit.org/show_bug.cgi?id=205963
<rdar://problem/58424136>
Reviewed by Brent Fulgham.
To get default on behavior, experimental features in the network process need to be
turned from enable flags to disable flags. This patch does that for the experimental
cookie blocking flag.
Source/WebCore:
No new tests. This change just reverses the interpretation of a flag.
- page/Settings.yaml:
Source/WebKit:
This change also aligns the init values of the setting to match the default.
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkSession.h:
- NetworkProcess/NetworkSessionCreationParameters.h:
- Shared/WebPreferences.yaml:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- 5:18 PM Changeset in webkit [254238] by
-
- 1 edit in trunk/Source/WebCore/platform/LocalizedStrings.cpp
Unreviewed, fix builds with WEB_CRYPTO enabled, following r217686
- 4:59 PM Changeset in webkit [254237] by
-
- 5 edits in trunk/Source/WebKit
Allow some sysctl-read calls needed by WebRTC
https://bugs.webkit.org/show_bug.cgi?id=205946
<rdar://problem/58416475>
Reviewed by Per Arne Vollan.
This patch allows some sysctl-read calls that are needed when running WebRTC tests.
It also removes telemetry and logging from a UIKit class that was confirmed to be
needed by Performance and PowerLogging code.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 4:39 PM Changeset in webkit [254236] by
-
- 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json
- 4:30 PM Changeset in webkit [254235] by
-
- 3 edits in trunk/Tools
run-webkit-tests: clobber-old-results should remove the entire results folder
https://bugs.webkit.org/show_bug.cgi?id=205875
<rdar://problem/58236117>
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._clobber_old_results): Remove entire results folder.
- Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.test_retrying_and_flaky_tests): clobber-old-results now removes the
entire results directory.
- 4:13 PM Changeset in webkit [254234] by
-
- 5 edits in trunk
build-jsc should invoke make instead of calling xcodebuild directly
https://bugs.webkit.org/show_bug.cgi?id=205960
Reviewed by Keith Miller.
.:
- Makefile.shared:
Source/JavaScriptCore:
The various jsc, and test* binaries can all be compiled in parallel.
This patch makes that happen when building with make via the CLI
that these are built in parallel. To make this work, in Xcode, I needed
to mark these binaries as depending on JavaScriptCore.framework.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Makefile:
- 4:05 PM Changeset in webkit [254233] by
-
- 1 copy in tags/Safari-608.5.9
Tag Safari-608.5.9.
- 3:59 PM Changeset in webkit [254232] by
-
- 3 edits in trunk/Source/WebCore
Move logic for parsing image-orientation to CSSParserFastPaths
https://bugs.webkit.org/show_bug.cgi?id=205962
Reviewed by Simon Fraser.
Covered by exiting tests. No change in functionality.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeImageOrientation): Deleted.
- 3:45 PM Changeset in webkit [254231] by
-
- 1 edit7 adds in trunk/LayoutTests
few web-platform-tests are failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=205927
Unreviewed test gardening.
- platform/ios-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/xhr/event-timeout-order.any-expected.txt: Added.
- 3:41 PM Changeset in webkit [254230] by
-
- 5 edits6 adds in trunk/Source/JavaScriptCore
Add FuzzerAgents that narrow and widen number predictions
https://bugs.webkit.org/show_bug.cgi?id=203993
Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2020-01-08
Reviewed by Yusuke Suzuki.
Add two FuzzerAgents such that for any predictions that are originally subsets of SpecFullNumber:
- one adds more number types to the prediction
- the other removes some of the number types from the prediction
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/NarrowingNumberPredictionFuzzerAgent.cpp: Added.
- runtime/NarrowingNumberPredictionFuzzerAgent.h: Added.
- runtime/NumberPredictionFuzzerAgent.cpp: Added.
- runtime/NumberPredictionFuzzerAgent.h: Added.
- runtime/OptionsList.h:
- runtime/VM.cpp:
- runtime/WideningNumberPredictionFuzzerAgent.cpp: Added.
- runtime/WideningNumberPredictionFuzzerAgent.h: Added.
- 3:38 PM Changeset in webkit [254229] by
-
- 8 edits in trunk
<img>.naturalWidth should return the density-corrected intrinsic width
https://bugs.webkit.org/show_bug.cgi?id=150443
Patch by Noam Rosenthal <Noam Rosenthal> on 2020-01-08
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Updated expected results.
- web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic-expected.txt:
All tests now pass.
- web-platform-tests/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative-expected.txt:
Still fails but failure values are different.
Source/WebCore:
Take image's density into account when requesting naturalWidth/naturalHeight, not in SVG.
This now complies with the standard (https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth)
It also matches the behavior on Chrome and on Firefox.
Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html
Updaded expected results
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::effectiveImageDevicePixelRatio const):
(WebCore::HTMLImageElement::naturalWidth const):
(WebCore::HTMLImageElement::naturalHeight const):
- html/HTMLImageElement.h:
Use effective image devicePixelRatio for naturalWidth/height calculation
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::unclampedImageSizeForRenderer const):
(WebCore::CachedImage::imageSizeForRenderer const):
- loader/cache/CachedImage.h:
Don't clamp to 1 when calculating naturalWidth/naturalHeight, as this has
nothing to do with zoomed images. Zoomed images behavior remains the same.
- 2:22 PM Changeset in webkit [254228] by
-
- 4 edits in trunk/Source
REGRESSION: (r254186) [ Mac ] inspector/css/add-rule.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205938
<rdar://problem/58413597>
Reviewed by Brian Burg.
Source/WebCore:
Covered by existing tests.
- inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::originalStyleSheetText const):
(WebCore::InspectorStyleSheet::resourceStyleSheetText const):
(WebCore::InspectorStyleSheet::inlineStyleSheetText const):
(WebCore::InspectorStyleSheet::extensionStyleSheetText const):
The Inspector Style Sheet is an inline style sheet, so it goes throughinlineStyleSheetText
instead ofresourceStyleSheetText. Style sheets are only be sourced from one place anyways
so there's no reason to gate each function based on theorigin.
Source/WebInspectorUI:
- UserInterface/Models/CSSStyleSheet.js:
(WI.CSSStyleSheet.prototype.get injected):
schemecan benull, so check that it exists before callingString.prototypefunctions.
- 2:20 PM Changeset in webkit [254227] by
-
- 11 edits in trunk
Rename testing build configuration to release+assert, and add new testing build configuration.
https://bugs.webkit.org/show_bug.cgi?id=205954
Reviewed by Yusuke Suzuki.
.:
"make release-assert" builds a release build with ASSERT_ENABLED=1.
"make testing" builds a debug build with clang optimization level forced to -O3.
- Makefile:
- Makefile.shared:
- Source/Makefile:
Source/ThirdParty:
- Makefile:
Tools:
Added a --force-opt shortcut for the --force-optimization-level option of
set-webkit-configuration. This makes it less painful to type this on the command
line for those of us who would like to use this option often in our local builds.
- Makefile:
- Scripts/set-webkit-configuration:
WebKitLibraries:
- Makefile:
- 2:10 PM Changeset in webkit [254226] by
-
- 2 edits in trunk/Source/WebCore
Suppress "unused parameter" when including libWebRTC headers in LibWebRTCProviderCocoa.cpp
https://bugs.webkit.org/show_bug.cgi?id=205951
Reviewed by Eric Carlson.
Suppress the "unused parameter" warning that results from including
video_encoder.h, which contains the
following line of code (wherereasonis unused):
`
virtual void OnDroppedFrame(DropReason reason) {}
`
This matches other places in WebCore where we attempt to
#include <webrtc/sdk/WebKit/WebKitUtilities.h>.
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
- 2:09 PM Changeset in webkit [254225] by
-
- 2 edits in trunk/Tools
Move EWS from macOS High Sierra to macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=205948
Reviewed by Aakash Jain.
- BuildSlaveSupport/ews-build/config.json:
- 2:04 PM Changeset in webkit [254224] by
-
- 2 edits in trunk/Source/JavaScriptCore
TypeProfiler.h: Multiplication result converted to larger type
https://bugs.webkit.org/show_bug.cgi?id=205947
Reviewed by Mark Lam.
Added cast to keep the hash() calculation unsigned.
- runtime/TypeProfiler.h:
(JSC::QueryKey::hash const):
- 2:00 PM Changeset in webkit [254223] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix some IOS_FAMILY builds after r254210.
- Shared/AuxiliaryProcess.h:
- 1:47 PM Changeset in webkit [254222] by
-
- 4 edits in trunk
Make _callAsyncFunction:withArguments: work with promises.
https://bugs.webkit.org/show_bug.cgi?id=205654
Reviewed by Saam Barati.
Source/WebCore:
Covered by API tests.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):
Tools:
Test that:
- Resolve results in success handler being called
- Reject results in error handler being called
- Both resolve and reject becoming unreachable results in the error handler being called
- Both native Promise objects and arbitrary thenables work
- Any object where "then" is callable - even if not a function - works
- TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:
(TestWebKitAPI::tryGCPromise):
(TestWebKitAPI::TEST):
- 1:30 PM Changeset in webkit [254221] by
-
- 4 edits in trunk/Tools
Regression r254160: 6 API test failures
https://bugs.webkit.org/show_bug.cgi?id=205935
<rdar://problem/58411559>
Revert API test changes in r254160. I mistakenly thought this were legitimate changes,
but they were actually the result of a bug I have since corrected in r254167.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
(TEST):
- 1:26 PM Changeset in webkit [254220] by
-
- 3 edits2 adds in trunk
Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>
Reviewed by Brent Fulgham.
Source/WebCore:
Our Font Loading API does not comply with the spec:
If the parsed value is a CSS-wide keyword, return a syntax error.
Rather than crashing, we should return a syntax error.
Test: fast/text/font-loading-global-keyword.html
- css/CSSFontFaceSet.cpp:
(WebCore::computeFontSelectionRequest):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
LayoutTests:
Test all the entry points to the CSS Font Loading API that accept CSS keywords.
- fast/text/font-loading-global-keyword-expected.txt: Added.
- fast/text/font-loading-global-keyword.html: Added.
- 1:18 PM Changeset in webkit [254219] by
-
- 4 edits in trunk
Fix testing Makefile to inherit preprocessor definitions
https://bugs.webkit.org/show_bug.cgi?id=205940
Reviewed by Mark Lam.
.:
- Makefile.shared:
Tools:
- Makefile:
- 12:54 PM Changeset in webkit [254218] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSArrayBufferView.h: Multiplication result converted to larger type
https://bugs.webkit.org/show_bug.cgi?id=205943
Reviewed by Saam Barati.
Added cast to size_t to make the whole calculation size_t.
- runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::sizeOf):
- 12:50 PM Changeset in webkit [254217] by
-
- 3 edits2 adds in branches/safari-608-branch
Cherry-pick r252847. rdar://problem/58414545
REGRESSION (Safari 13): WebSocket payload is truncated when x-webkit-deflate-frame is used
https://bugs.webkit.org/show_bug.cgi?id=202401
<rdar://problem/55922632>
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/websocket/tests/hybi/deflate-extension.html
- Modules/websockets/WebSocketDeflater.cpp: (WebCore::WebSocketDeflater::finish): Make sure to continue calling deflate until all output data is flushed.
LayoutTests:
- http/tests/websocket/tests/hybi/deflate-extension-expected.txt: Added.
- http/tests/websocket/tests/hybi/deflate-extension.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:45 PM Changeset in webkit [254216] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 12:41 PM Changeset in webkit [254215] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=205931
- platform/gtk/TestExpectations:
- 12:27 PM Changeset in webkit [254214] by
-
- 93 edits1 move in trunk/Source
[WebGL] More GraphicsContext3D to GraphicsContextGL renaming
https://bugs.webkit.org/show_bug.cgi?id=205949
<rdar://problem/58416989>
Reviewed by Antoine Quint.
Source/WebCore:
Rename the GC3D-prefixed types.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLVideoElement.cpp:
- html/HTMLVideoElement.h:
- html/OffscreenCanvas.cpp:
- html/canvas/ANGLEInstancedArrays.cpp:
- html/canvas/ANGLEInstancedArrays.h:
- html/canvas/OESVertexArrayObject.cpp:
- html/canvas/OESVertexArrayObject.h:
- html/canvas/WebGL2RenderingContext.cpp:
- html/canvas/WebGL2RenderingContext.h:
- html/canvas/WebGLActiveInfo.h:
- html/canvas/WebGLBuffer.cpp:
- html/canvas/WebGLBuffer.h:
- html/canvas/WebGLDrawBuffers.cpp:
- html/canvas/WebGLDrawBuffers.h:
- html/canvas/WebGLFramebuffer.cpp:
- html/canvas/WebGLFramebuffer.h:
- html/canvas/WebGLObject.cpp:
- html/canvas/WebGLObject.h:
- html/canvas/WebGLProgram.cpp:
- html/canvas/WebGLProgram.h:
- html/canvas/WebGLQuery.cpp:
- html/canvas/WebGLQuery.h:
- html/canvas/WebGLRenderbuffer.cpp:
- html/canvas/WebGLRenderbuffer.h:
- html/canvas/WebGLRenderingContext.cpp:
- html/canvas/WebGLRenderingContext.h:
- html/canvas/WebGLRenderingContextBase.cpp:
- html/canvas/WebGLRenderingContextBase.h:
- html/canvas/WebGLSampler.cpp:
- html/canvas/WebGLSampler.h:
- html/canvas/WebGLShader.cpp:
- html/canvas/WebGLShader.h:
- html/canvas/WebGLShaderPrecisionFormat.cpp:
- html/canvas/WebGLShaderPrecisionFormat.h:
- html/canvas/WebGLSync.cpp:
- html/canvas/WebGLSync.h:
- html/canvas/WebGLTexture.cpp:
- html/canvas/WebGLTexture.h:
- html/canvas/WebGLTransformFeedback.cpp:
- html/canvas/WebGLTransformFeedback.h:
- html/canvas/WebGLUniformLocation.cpp:
- html/canvas/WebGLUniformLocation.h:
- html/canvas/WebGLVertexArrayObject.cpp:
- html/canvas/WebGLVertexArrayObject.h:
- html/canvas/WebGLVertexArrayObjectBase.cpp:
- html/canvas/WebGLVertexArrayObjectBase.h:
- html/canvas/WebGLVertexArrayObjectOES.cpp:
- html/canvas/WebGLVertexArrayObjectOES.h:
- platform/graphics/ExtensionsGL.h:
- platform/graphics/GraphicsContextGL.cpp:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsTypesGL.h: Renamed from Source/WebCore/platform/graphics/GraphicsTypes3D.h.
- platform/graphics/ImageBuffer.cpp:
- platform/graphics/ImageBuffer.h:
- platform/graphics/MediaPlayer.cpp:
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
- platform/graphics/angle/ExtensionsGLANGLE.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
- platform/graphics/angle/TemporaryANGLESetting.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- platform/graphics/cairo/ImageBufferCairo.cpp:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
- platform/graphics/cocoa/WebGLLayer.mm:
- platform/graphics/cv/TextureCacheCV.h:
- platform/graphics/cv/TextureCacheCV.mm:
- platform/graphics/cv/VideoTextureCopierCV.cpp:
- platform/graphics/cv/VideoTextureCopierCV.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/opengl/ExtensionsGLOpenGL.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGL.h:
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
- platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGLES.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:
- platform/graphics/opengl/TemporaryOpenGLSetting.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
- platform/graphics/texmap/TextureMapperGL.cpp:
Source/WebKit:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- 11:58 AM Changeset in webkit [254213] by
-
- 3 edits in trunk/Source/WebKit
Remove NATIVE_MOUSE_EVENT_HANDLER macros
https://bugs.webkit.org/show_bug.cgi?id=205897
Reviewed by Tim Horton.
Remove the NATIVE_MOUSE_EVENT_HANDLER and NATIVE_MOUSE_EVENT_HANDLER_INTERNAL which are almost identical,
calling a couple of shared functions instead. The only reason the eventName was used was for logging, so just
log the -[NSEvent type] instead.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::operator<<):
(WebKit::WebViewImpl::nativeMouseEventHandler):
(WebKit::WebViewImpl::nativeMouseEventHandlerInternal):
(WebKit::WebViewImpl::mouseEntered):
(WebKit::WebViewImpl::mouseExited):
(WebKit::WebViewImpl::otherMouseDown):
(WebKit::WebViewImpl::otherMouseDragged):
(WebKit::WebViewImpl::otherMouseUp):
(WebKit::WebViewImpl::rightMouseDown):
(WebKit::WebViewImpl::rightMouseDragged):
(WebKit::WebViewImpl::rightMouseUp):
(WebKit::WebViewImpl::mouseMovedInternal):
(WebKit::WebViewImpl::mouseDownInternal):
(WebKit::WebViewImpl::mouseUpInternal):
(WebKit::WebViewImpl::mouseDraggedInternal):
- 11:56 AM Changeset in webkit [254212] by
-
- 3 edits in trunk/Source/WebCore
After playing a video and making it full screen, the video exits full screen and stops but the audio continues to play
https://bugs.webkit.org/show_bug.cgi?id=205896
Patch by Peng Liu <Peng Liu> on 2020-01-08
Reviewed by Jer Noble.
AVKit calls playerViewController:shouldExitFullScreenWithReason in the scenario that the exit fullscreen request
is from the web process (e.g., through Javascript API videoElement.webkitExitFullscreen()).
We have to ignore the callback in that case.
No new tests, covered by existing tests.
- platform/ios/VideoFullscreenInterfaceAVKit.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
- 11:50 AM Changeset in webkit [254211] by
-
- 2 edits in trunk/Source/WebKit
Remove an unused variable in WebCoreArgumentCodersCocoa.mm after r254202
https://bugs.webkit.org/show_bug.cgi?id=205939
Reviewed by Tim Horton.
Remove an unused temporary variable that was only used for debugging.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):
- 11:38 AM Changeset in webkit [254210] by
-
- 5 edits in trunk/Source/WebKit
Move UIProcess DependencyProcessAssertion from WebContent to AuxiliaryProcess
https://bugs.webkit.org/show_bug.cgi?id=205836
Reviewed by Alex Christensen.
Move UIProcess DependencyProcessAssertion from WebContent to AuxiliaryProcess, so that other auxiliary
processes (Network Process, GPU Process) also benefit from it.
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::initializeConnection):
- Shared/AuxiliaryProcess.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
- WebProcess/WebProcess.h:
- 11:36 AM Changeset in webkit [254209] by
-
- 3 edits in trunk/Source/WebKit
Network process sandboxes should not include 'common.sb' or 'system.sb'
https://bugs.webkit.org/show_bug.cgi?id=205521
<rdar://problem/58095870>
Reviewed by Per Arne Vollan.
This patch replaces the 'include' with a copy/paste of the contents of the relevant
sandbox include file. I removed definitions that were not referenced in the existing
Network sandbox, but did not otherwise edit the contents. There are duplicates and
redundancies after this patch, which I will remove as a follow-up step once we confirm
that this has no regressions.
I also updated the sandbox to generate telemetry for some mach connections that we think
are unneeded, or that should be targeted for removal.
No new tests. There should be no change in behavior.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 11:26 AM Changeset in webkit [254208] by
-
- 2 edits in trunk/Source/WebKit
IPC::Connection::sendMessage() should use CRASH_WITH_INFO()
<https://webkit.org/b/205419>
<rdar://problem/58058661>
Reviewed by Mark Lam.
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::Connection::sendMessage):
- Switch from CRASH() to CRASH_WITH_INFO().
- 11:15 AM Changeset in webkit [254207] by
-
- 2 edits in trunk/Source/WebCore
Fix for parameterized attribute TextMarkerRangeForUIElement which should run ion main thread.
https://bugs.webkit.org/show_bug.cgi?id=205920
Reviewed by Chris Fleizach.
Parameterized attribute TextMarkerRangeForUIElement must run on main
thread since it invokes DOM Range methods.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
- 11:02 AM Changeset in webkit [254206] by
-
- 2 edits in trunk/Source/WebCore
Add encoding/decoding support for data structures in TextFlags.h
https://bugs.webkit.org/show_bug.cgi?id=205903
Reviewed by Tim Horton.
Adds encoders and decoders for the enum classes and structs in TextFlags.h, with the eventual goal of being able
to send font creation parameters when sending font data to the GPU process. No change in behavior.
- platform/text/TextFlags.h:
(WebCore::FontVariantSettings::encode const):
(WebCore::FontVariantSettings::decode):
(WebCore::FontVariantLigaturesValues::encode const):
(WebCore::FontVariantLigaturesValues::decode):
(WebCore::FontVariantNumericValues::encode const):
(WebCore::FontVariantNumericValues::decode):
(WebCore::FontVariantEastAsianValues::encode const):
(WebCore::FontVariantEastAsianValues::decode):
- 10:58 AM Changeset in webkit [254205] by
-
- 4 edits in trunk
Proxy's OwnPropertyKeys is correct only in PropertyNameMode::StringsAndSymbols
https://bugs.webkit.org/show_bug.cgi?id=205772
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml: Mark 12 test cases as passing.
Source/JavaScriptCore:
This change fixes two spec compatibility issues:
(steps 8-11 of https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys)
- If Object.getOwnPropertyNames is called on Proxy with "ownKeys" trap,
symbol keys of Proxy's target are ignored during invariants validation.
- If Object.getOwnPropertySymbols is called on Proxy with "ownKeys" trap,
string keys of Proxy's target are ignored during invariants validation.
Given that per spec
uncheckedResultKeyscontains both strings and symbols,
seenKeysand explanation comment about it is removed.
Specifying PrivateSymbolMode::Exclude eliminates any chance of false TypeErrors
during invariants validation, since user code can't possibly return a private symbol
from "ownKeys" trap, yet an object with private symbols can be Proxy's target.
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::performGetOwnPropertyNames):
- 9:13 AM Changeset in webkit [254204] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, rolling out r254174.
Broke 80 tests on Catalina
Reverted changeset:
"Network process sandboxes should not include 'common.sb' or
'system.sb'"
https://bugs.webkit.org/show_bug.cgi?id=205521
https://trac.webkit.org/changeset/254174
- 9:02 AM Changeset in webkit [254203] by
-
- 4 edits in trunk/LayoutTests
[GTK][WPE] Unreviewed gardening for unexpected passes
https://bugs.webkit.org/show_bug.cgi?id=205854
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 8:33 AM Changeset in webkit [254202] by
-
- 13 edits in trunk/Source
Add support for encoding WebCore::Font over IPC for DisplayList::DrawGlyphs
https://bugs.webkit.org/show_bug.cgi?id=205830
<rdar://problem/57347719>
Reviewed by Dean Jackson.
Source/WebCore:
Add support for encoding Fonts. In the case where the Font is installed, we use platform encoders to send across
the font descriptor, and reconstruct the font using this descriptor on the receiving end (see the existing
implementations of encodeFontInternal and decodeFontInternal). In the case where the Font is not installed, we
instead send the font face data over (plumbed across from the CachedFont), and reconstruct the platform font
data from the raw font data on the receiving end.
This allows us to render web fonts in the GPU process through the
DrawGlyphsdisplay list item.
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
- css/CSSFontFaceSource.h:
- platform/graphics/Font.cpp:
(WebCore::Font::setFontFaceData):
Add a way to set font face data used to create the Font. This data comes from a CachedFont's data buffer, and is
used to serialize FontHandles when building display list items.
(WebCore::FontHandle::FontHandle):
Add a serializable wrapper class that contains a nullable Font. The encoder/decoders for FontHandle are
implemented in WebKit2.
- platform/graphics/Font.h:
(WebCore::Font::fontFaceData const):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawGlyphs::DrawGlyphs):
Finish implementing the encode/decode methods for DrawGlyphs, by sending the Font data over via FontHandle.
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawGlyphs::create):
(WebCore::DisplayList::DrawGlyphs::encode const):
(WebCore::DisplayList::DrawGlyphs::decode):
When decoding
DrawGlyphs, avoid having to rebuild the glyph Vector by adding (and using) new DrawGlyphs
constructors that takeVector&&s.
Source/WebKit:
Add basic support for encoding and decoding a FontHandle.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<FontHandle>::encodePlatformData):
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FontHandle>::encode):
(IPC::ArgumentCoder<FontHandle>::decode):
When encoding a Font on Cocoa platforms, send across the font face data (if present); otherwise, fall back to
sending the font descriptor for the UIFont or NSFont (as is the case for installed fonts).
- Shared/WebCoreArgumentCoders.h:
- Shared/curl/WebCoreArgumentCodersCurl.cpp:
(IPC::ArgumentCoder<FontHandle>::encodePlatformData):
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):
- Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<FontHandle>::encodePlatformData):
(IPC::ArgumentCoder<FontHandle>::decodePlatformData):
- 8:30 AM Changeset in webkit [254201] by
-
- 7 edits2 adds in trunk
[Web Animations] Stop creating CSS Animations for <noscript> elements
https://bugs.webkit.org/show_bug.cgi?id=205925
<rdar://problem/58158479>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/no-css-animation-on-noscript.html
It makes no sense to create CSS Animations for a <noscript> element and it has the side effect of potential crashes.
Indeed, AnimationTimeline::updateCSSAnimationsForElement() may be called without a currentStyle and so we never have
a list of previously-applied animations to compare to the list of animations in afterChangeStyle. So on each call we
end up creating a new CSSAnimation and the previous animation for the same name is never explicitly removed from the
effect stack and is eventually destroyed and the WeakPtr for it in the stack ends up being null, which would cause a
crash under KeyframeEffectStack::ensureEffectsAreSorted().
We now prevent elements such as <noscript> from being considered for CSS Animations in TreeResolver::resolveElement().
- dom/Element.cpp:
(WebCore::Element::rendererIsNeeded):
- dom/Element.h:
(WebCore::Element::rendererIsEverNeeded):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::rendererIsEverNeeded):
(WebCore::HTMLElement::rendererIsNeeded): Deleted.
- html/HTMLElement.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
LayoutTests:
Add a new test that checks that setting the
animationproperty on a <noscript> element does not yield the creation of a CSSAnimation object.
- webanimations/no-css-animation-on-noscript-expected.txt: Added.
- webanimations/no-css-animation-on-noscript.html: Added.
- 7:57 AM Changeset in webkit [254200] by
-
- 6 edits in trunk/Source
[WTF] Allow MediaTime static constants
https://bugs.webkit.org/show_bug.cgi?id=205723
Reviewed by Darin Adler.
Source/WebCore:
Since MediaTime no longer has a non-trivial destructor, declaring
MediaTime variables no longer has potential side effects as far as the
compiler is concerned and it can therefore print "unused variable"
errors where that is the case.
This patch marks one of such variable as intentionally unused, since
it's only used in Debug and would otherwise break the Release build.
Actually unused variables are also removed.
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::imageForTime):
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime):
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames):
Source/WTF:
Despite all its convenience methods, at its core MediaTime is a rather
trivial class with only integral members. Despite this, since it had a
destructor declared, this made the class non-trivially destructible
even if the implementation was empty, and therefore clang did not
allow to use it for static variables unless done in form of a pointer.
By removing the destructor this restriction is lifted and we don't
need heap allocations for static MediaTime objects.
Previous usages of heap allocation for static MediaTime objects have
been rewritten to take advantage of this. Test coverage is provided by
successful compilation without [-Werror,-Wexit-time-destructors]
errors and existing tests.
- wtf/MediaTime.cpp:
(WTF::MediaTime::zeroTime):
(WTF::MediaTime::invalidTime):
(WTF::MediaTime::positiveInfiniteTime):
(WTF::MediaTime::negativeInfiniteTime):
(WTF::MediaTime::indefiniteTime):
(WTF::MediaTime::~MediaTime): Deleted.
- wtf/MediaTime.h:
- 7:13 AM Changeset in webkit [254199] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Editing: Allow line breaks in lists
https://bugs.webkit.org/show_bug.cgi?id=205913
Patch by Milan Crha <mcrha@redhat.com> on 2020-01-08
Reviewed by Carlos Garcia Campos.
- UIProcess/gtk/KeyBindingTranslator.cpp:
Treat Shift+Enter as "InsertLineBreak", instead of "InsertNewLine".
- 6:10 AM Changeset in webkit [254198] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r253939): [GTK] Broke build with !USE(WPE_RENDERER)
https://bugs.webkit.org/show_bug.cgi?id=205648
Reviewed by Carlos Alberto Lopez Perez.
- platform/graphics/GraphicsContextGL.h: Rename enum None to
DOMSourceNone to avoid name collission.
- 6:09 AM Changeset in webkit [254197] by
-
- 2 edits in trunk/WebDriverTests
Unreviewed gardening. Add expectations for several tests failing
- TestExpectations.json:
- 6:07 AM Changeset in webkit [254196] by
-
- 3 edits in trunk/Tools
Allow multiple cmakeargs inside inside envvar
https://bugs.webkit.org/show_bug.cgi?id=205722
Patch by Paulo Matos <Paulo Matos> on 2020-01-08
Reviewed by Carlos Alberto Lopez Perez.
Allow sub-argument lists to be passed in a build environment variable.
- Scripts/build-jsc:
- Scripts/build-webkit:
- 5:48 AM Changeset in webkit [254195] by
-
- 4 edits in trunk
RegExp.prototype[Symbol.replace] does not support named capture groups
https://bugs.webkit.org/show_bug.cgi?id=205783
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml: Mark 6 test cases as passing.
Source/JavaScriptCore:
This patch adds named capture groups support to RegExp.prototype[Symbol.replace],
for both functional and string pattern replacement.
(steps 14.j-l of https://tc39.es/ecma262/#sec-regexp.prototype-@@replace)
This method is used in slow path of String.prototype.replace (RegExp subclass handling),
yet it also can be invoked directly in user code.
- builtins/RegExpPrototype.js:
(getSubstitution):
(Symbol.replace):
- 4:45 AM Changeset in webkit [254194] by
-
- 39 edits13 adds in trunk
Implement MediaRecorder backend in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205802
Reviewed by Eric Carlson.
Source/WebCore:
Add a page provider to create MediaRecorderPrivate implementations.
This is used by WebKit layer to implement this in GPUProcess.
Update MediaRecorderPrivate by adding an error callback that is used to surface errors as MediaRecorder error events.
Covered by existing tests as MediaRecorder implementation in WebKitTestRunner will use GPUProcess.
- Headers.cmake:
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::createMediaRecorderPrivate):
- Modules/mediarecorder/MediaRecorder.h:
- Modules/mediarecorder/MediaRecorderProvider.cpp: Added.
(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
- Modules/mediarecorder/MediaRecorderProvider.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::mediaRecorderProvider):
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::create):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/MediaStreamTrackPrivate.h:
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUseGPUProcessForWebRTC):
Source/WebKit:
Add support for sending audio/video tracks to record from WebProcess to GPUProcess.
Add a MediaRecorderPrivate implementation that supports sending one audio track and/or one video track to GPUProcess
and stopping/fetching data from the remote recorder in GPUProcess.
In GPUProcess, implement the remote recorder using the existing WebCore recorder writer.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::userMediaCaptureManagerProxy):
(WebKit::GPUConnectionToWebProcess::mediaRecorderManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp: Added.
(WebKit::RemoteMediaRecorder::create):
(WebKit::RemoteMediaRecorder::RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::~RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::storage):
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
(WebKit::RemoteMediaRecorder::audioSamplesAvailable):
(WebKit::RemoteMediaRecorder::videoSampleAvailable):
(WebKit::RemoteMediaRecorder::fetchData):
(WebKit::RemoteMediaRecorder::stopRecording):
- GPUProcess/webrtc/RemoteMediaRecorder.h: Added.
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in: Added.
- GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: Added.
(WebKit::RemoteMediaRecorderManager::RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::~RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::didReceiveRemoteMediaRecorderMessage):
(WebKit::RemoteMediaRecorderManager::createRecorder):
(WebKit::RemoteMediaRecorderManager::releaseRecorder):
- GPUProcess/webrtc/RemoteMediaRecorderManager.h: Added.
(WebKit::RemoteMediaRecorderManager::didReceiveMessageFromWebProcess):
- GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in: Added.
- Scripts/webkit/messages.py:
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaRecorderProvider.cpp: Added.
(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
- WebProcess/GPU/media/MediaRecorderProvider.h: Added.
- WebProcess/GPU/webrtc/MediaRecorderIdentifier.h: Added.
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Added.
(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::~MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::sampleBufferUpdated):
(WebKit::MediaRecorderPrivate::audioSamplesAvailable):
(WebKit::MediaRecorderPrivate::storageChanged):
(WebKit::MediaRecorderPrivate::fetchData):
(WebKit::MediaRecorderPrivate::stopRecording):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Added.
- WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: Added.
(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):
- WebProcess/GPU/webrtc/MediaRecorderProvider.h: Added.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_overriddenMediaType):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::initWithFrame):
LayoutTests:
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
Do not use GPUProcess for this test until canvas buffers are IOSurfaces.
- 4:12 AM Changeset in webkit [254193] by
-
- 5 edits18 adds in trunk/LayoutTests
[CSS Font Loading] Import css-font-loading WPT tests
https://bugs.webkit.org/show_bug.cgi?id=205863
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-font-loading/META.yml: Added.
- web-platform-tests/css/css-font-loading/empty-family-load-expected.txt: Added.
- web-platform-tests/css/css-font-loading/empty-family-load.html: Added.
- web-platform-tests/css/css-font-loading/font-face-reject-expected.txt: Added.
- web-platform-tests/css/css-font-loading/font-face-reject.html: Added.
- web-platform-tests/css/css-font-loading/fontface-descriptor-updates-expected.html: Added.
- web-platform-tests/css/css-font-loading/fontface-descriptor-updates.html: Added.
- web-platform-tests/css/css-font-loading/fontfaceset-no-root-element.html: Added.
- web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor-expected.txt: Added.
- web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor.html: Added.
- web-platform-tests/css/css-font-loading/idlharness.https-expected.txt: Added.
- web-platform-tests/css/css-font-loading/idlharness.https.html: Added.
- web-platform-tests/css/css-font-loading/resources/GenI102.woff2: Added.
- web-platform-tests/css/css-font-loading/resources/GenR102.woff2: Added.
- web-platform-tests/css/css-font-loading/resources/w3c-import.log: Added.
- web-platform-tests/css/css-font-loading/w3c-import.log: Added.
LayoutTests:
Tests failing:
- https://webkit.org/b/184138 imported/w3c/web-platform-tests/css/css-font-loading/fontfacesetloadevent-constructor.html
- https://webkit.org/b/184138 imported/w3c/web-platform-tests/css/css-font-loading/idlharness.https.html
- https://webkit.org/b/205864 imported/w3c/web-platform-tests/css/css-font-loading/font-face-reject.html
- 3:53 AM Changeset in webkit [254192] by
-
- 36 edits2 adds1 delete in trunk/WebDriverTests
Unreviewed. Update W3C WebDriver imported tests.
- TestExpectations.json:
- imported/w3c/importer.json:
- imported/w3c/tools/webdriver/webdriver/init.py:
- imported/w3c/tools/webdriver/webdriver/client.py:
- imported/w3c/tools/webdriver/webdriver/error.py:
- imported/w3c/tools/webdriver/webdriver/transport.py:
- imported/w3c/tools/wptrunner/docs/expectation.rst:
- imported/w3c/tools/wptrunner/requirements.txt:
- imported/w3c/tools/wptrunner/requirements_firefox.txt:
- imported/w3c/tools/wptrunner/tox.ini:
- imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/android_weblayer.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
- imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorservodriver.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/executorwebdriver.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
- imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js: Removed.
- imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_webdriver.js:
- imported/w3c/tools/wptrunner/wptrunner/testdriver-extra.js:
- imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/init.py:
- imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_webkitgtk.py: Added.
- imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py:
- imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
- imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
- imported/w3c/webdriver/tests/find_element_from_element/find.py:
- imported/w3c/webdriver/tests/new_session/default_values.py:
- imported/w3c/webdriver/tests/perform_actions/support/keys.py:
- imported/w3c/webdriver/tests/perform_actions/validity.py:
- imported/w3c/webdriver/tests/send_alert_text/send.py:
- imported/w3c/webdriver/tests/set_window_rect/set.py:
- 2:29 AM Changeset in webkit [254191] by
-
- 2 edits in trunk/Source/WebKit
Improve logging of creating a service worker
https://bugs.webkit.org/show_bug.cgi?id=205849
Reviewed by Chris Dumez.
Add some release logging to identify which service worker is created in which process.
No change of observable behavior.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- 1:00 AM Changeset in webkit [254190] by
-
- 7 edits in trunk
[HarfBuzz][GTK] fast/text/complex-first-glyph-with-initial-advance.html is failing
https://bugs.webkit.org/show_bug.cgi?id=118221
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Arabic diacritics made glyphs vertically unaligned if the first
glyph had a vertical offset.
The initial advance should be same with the first glyph origin for
HarfBuzz. See the diagram in ComplexTextController.h for details.
<https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ComplexTextController.h?rev=224007#L109>
drawGlyphs of Cairo port was assuming upward y-axis for glyph
advances even though those of Mac and AppleWin port are assuming
downward y-axis. This is a problem for Windows ports because
AppleWin and WinCairo port are sharing the code calculating
advances.
Covered by existing tests.
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::drawGlyphs):
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::drawGlyphs):
Sum up the height of advances into yOffset instead of subtraction.
- platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
Don't negate offsetY. Set m_initialAdvance as the first item of
m_glyphOrigins.
LayoutTests:
- platform/gtk/TestExpectations: Unmarked
fast/text/complex-first-glyph-with-initial-advance.html and
fast/text/initial-advance-in-intermediate-run-complex.html.
- platform/wincairo/TestExpectations: Unmarked
fast/text/complex-first-glyph-with-initial-advance.html and
fast/text/complex-initial-advance.html.
Jan 7, 2020:
- 11:59 PM Changeset in webkit [254189] by
-
- 2 edits in trunk/Tools
run-jsc should not print "... I should not be here ..." when it doesn't get killed when sending a signal to itself
https://bugs.webkit.org/show_bug.cgi?id=205907
Reviewed by Ross Kirsling.
In r253024, I added code that would try to make run-jsc exit with the same
signal that the actual jsc binary exitted with. This made it so crashes and
in thejscprocess would look like equivalent crashes inrun-jscprocess.
Not thinking of non terminating signals, I added code like this:
`
system("kill -" . $signal . " " . $PID);
print STDERR "\n... I should not be here ...\n";
`
However, this print will happen for totally legitimate reasons, like when
you Ctrl+C from the REPL when usingrun-jsc. This patch removes this print.
- Scripts/run-jsc:
- 11:23 PM Changeset in webkit [254188] by
-
- 3 edits2 adds in trunk
AI rule for ValueMod/ValueDiv produce constants with the wrong format when the result can be an int32
https://bugs.webkit.org/show_bug.cgi?id=205906
<rdar://problem/56108519>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/ai-value-div-should-result-in-constant-int-where-possible.js: Added.
(foo.bar.f):
(foo.):
(foo):
- stress/ai-value-mod-should-result-in-constant-int-where-possible.js: Added.
(foo.bar.f):
(foo.):
(foo):
Source/JavaScriptCore:
The runtime code for ValueMod and ValueDiv produces an int32 when the result
is of int32 value. However, the AI was saying the result is in double format.
This patch fixes AI to produce a JSValue in the right format.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::handleConstantDivOp):
- 10:40 PM Changeset in webkit [254187] by
-
- 32 edits6 adds in trunk
Implement css3-images image-orientation
https://bugs.webkit.org/show_bug.cgi?id=89052
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-images/inheritance-expected.txt:
- web-platform-tests/css/css-images/inheritance.html:
This test is re-synced from upstream
- web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt:
- web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt:
Source/JavaScriptCore:
Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Implement the CSS image-orientation property for content images. The valid
values are "from-image" or "none". The default value is "from-image".
Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation
GitHub issue: https://github.com/w3c/csswg-drafts/issues/4164
Tests: fast/images/image-orientation-dynamic-from-image.html
fast/images/image-orientation-dynamic-none.html
fast/images/image-orientation-none.html
- Configurations/FeatureDefines.xcconfig:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted.
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeImageOrientation):
(WebCore::CSSPropertyParser::parseSingleValue):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::imageOrientation const):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::styleDidChange):
- rendering/style/RenderStyle.cpp:
(WebCore::rareInheritedDataChangeRequiresLayout):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setImageOrientation):
(WebCore::RenderStyle::initialImageOrientation):
(WebCore::RenderStyle::imageOrientation const):
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
- rendering/style/StyleRareInheritedData.h:
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertImageOrientation):
Source/WebCore/PAL:
Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
- Configurations/FeatureDefines.xcconfig:
Source/WebKitLegacy/mac:
Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
- wtf/FeatureDefines.h:
Tools:
Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
Test the css image-orientation property.
- fast/images/image-orientation-dynamic-from-image-expected.html: Added.
- fast/images/image-orientation-dynamic-from-image.html: Added.
- fast/images/image-orientation-dynamic-none-expected.html: Added.
- fast/images/image-orientation-dynamic-none.html: Added.
- fast/images/image-orientation-none-expected.html: Added.
- fast/images/image-orientation-none.html: Added.
- 9:02 PM Changeset in webkit [254186] by
-
- 17 edits in trunk/Source
Web Inspector: unable to edit or view the source of style sheets injected by safari app extensions
https://bugs.webkit.org/show_bug.cgi?id=205900
<rdar://problem/57898773>
Reviewed by Timothy Hatcher.
Remove the restrictions around
CSS.StyleSheetOrigin.Userstyle sheets, thereby allowing
Web Inspector to get the source information that is necessary to show the "resource" in the
Sources Tab.
Source/WebCore:
- dom/ExtensionStyleSheets.h:
- dom/ExtensionStyleSheets.cpp:
(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):
(WebCore::ExtensionStyleSheets::contentForInjectedStyleSheet const): Added.
Save a copy of the string source of any injected style sheet and provide a way to get it for
any givenCSSStyleSheet.
- style/StyleScope.cpp:
(WebCore::Style::Scope::activeStyleSheetsForInspector):
- style/InspectorCSSOMWrappers.cpp:
(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):
Include all types of extension style sheets when collecting active rules and style sheets
for Web Inspector to instrument.
- inspector/InspectorStyleSheet.cpp:
- inspector/InspectorStyleSheet.h:
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::originalStyleSheetText const):
(WebCore::InspectorStyleSheet::resourceStyleSheetText const):
(WebCore::InspectorStyleSheet::inlineStyleSheetText const):
(WebCore::InspectorStyleSheet::extensionStyleSheetText const): Added.
Source/WebInspectorUI:
- UserInterface/Models/CSSStyleSheet.js:
(WI.CSSStyleSheet.prototype.get displayName):
(WI.CSSStyleSheet.prototype.get injected): Added.
(WI.CSSStyleSheet.prototype.get anonymous): Added.
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype._parseRulePayload):
- UserInterface/Models/CSSRule.js:
(WI.CSSRule):
(WI.CSSRule.prototype.get editable):
(WI.CSSRule.prototype._selectorResolved):
Attempt to create a source code location for any style sheet with a source range, not just
for the Inspector Style Sheet.
- UserInterface/Views/CSSStyleSheetTreeElement.js:
(WI.CSSStyleSheetTreeElement):
Instead of hardcoding "Inspector Style Sheet", use the associatedWI.CSSStyleSheet's info.
- UserInterface/Views/FrameTreeElement.js:
(WI.FrameTreeElement):
(WI.FrameTreeElement.prototype.onattach):
(WI.FrameTreeElement.prototype.ondetach):
(WI.FrameTreeElement.prototype._styleSheetAdded):
(WI.FrameTreeElement.prototype._styleSheetRemoved): Added.
Ensure that only non-injected non-anonymous style sheets are shown under frames.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
(WI.SourcesNavigationSidebarPanel.prototype._addResource):
(WI.SourcesNavigationSidebarPanel.prototype._addStyleSheet): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged):
(WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetAdded): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetRemoved): Added.
Add "Extension Style Sheets", "Extra Style Sheets", and "Anonymous Style Sheets" folders,
just like for scripts, with a similar logic as to when style sheets are added to each.
- UserInterface/Views/OpenResourceDialog.js:
(WI.OpenResourceDialog):
(WI.OpenResourceDialog.prototype.representedObjectIsValid): Added.
(WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
(WI.OpenResourceDialog.prototype._populateResourceTreeOutline.createTreeElement):
(WI.OpenResourceDialog.prototype.didDismissDialog):
(WI.OpenResourceDialog.prototype.didPresentDialog):
(WI.OpenResourceDialog.prototype._removeResource): Added.
(WI.OpenResourceDialog.prototype._resourceWasRemoved): Added.
(WI.OpenResourceDialog.prototype._scriptAdded):
(WI.OpenResourceDialog.prototype._scriptRemoved): Added.
(WI.OpenResourceDialog.prototype._handleStyleSheetAdded): Added.
(WI.OpenResourceDialog.prototype._handleStyleSheetRemoved): Added.
Add any non-injected non-anonymous style sheets when populating the list of resources.
Drive-by: remove listings for any resources that are removed from the inspected page.
- UserInterface/Views/ResourceTreeElement.js:
(WI.ResourceTreeElement.compareResourceTreeElements):
(WI.ResourceTreeElement.compareResourceTreeElements.resolvedType): Added.
Support comparisons against non-resource tree elements.
- Localizations/en.lproj/localizedStrings.js:
- 8:03 PM Changeset in webkit [254185] by
-
- 3 edits in trunk/LayoutTests
[GTK] fast/text/atsui-rtl-override-selection.html is failing since r254114
https://bugs.webkit.org/show_bug.cgi?id=205898
Unreviewed test gardening.
Patch by Fujii Hironori <fujii.hironori@gmail.com> on 2020-01-07
- platform/gtk/fast/text/atsui-rtl-override-selection-expected.png:
- platform/gtk/fast/text/atsui-rtl-override-selection-expected.txt:
- 6:34 PM Changeset in webkit [254184] by
-
- 26 edits in trunk/LayoutTests
Unreviewed test gardening for GTK port after r252598.
- platform/gtk/compositing/images/direct-image-background-color-expected.txt:
- platform/gtk/compositing/webgl/webgl-background-color-expected.txt:
- platform/gtk/fast/backgrounds/background-leakage-expected.txt:
- platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
- platform/gtk/fast/block/float/intruding-painted-twice-expected.txt:
- platform/gtk/fast/borders/mixed-border-styles-expected.txt:
- platform/gtk/fast/borders/mixed-border-styles-radius-expected.txt:
- platform/gtk/fast/borders/mixed-border-styles-radius2-expected.txt:
- platform/gtk/fast/box-shadow/inset-box-shadow-radius-expected.txt:
- platform/gtk/fast/css/percentage-non-integer-expected.txt:
- platform/gtk/fast/css/shadow-multiple-expected.txt:
- platform/gtk/fast/css/viewport-units-dynamic-expected.txt:
- platform/gtk/fast/multicol/client-rects-expected.txt:
- platform/gtk/fast/multicol/client-rects-spanners-complex-expected.txt:
- platform/gtk/fast/multicol/client-rects-spanners-expected.txt:
- platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
- platform/gtk/fast/overflow/float-in-relpositioned-expected.txt:
- platform/gtk/fast/ruby/select-ruby-expected.txt:
- platform/gtk/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
- platform/gtk/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
- platform/gtk/fast/text/shadow-no-blur-expected.txt:
- platform/gtk/fast/text/shadow-translucent-fill-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
- platform/gtk/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
- 6:20 PM Changeset in webkit [254183] by
-
- 24 edits5 adds in trunk
Introduce _WKResourceLoadDelegate
https://bugs.webkit.org/show_bug.cgi?id=205887
Reviewed by Dean Jackson.
Source/WebCore:
- page/Page.h:
(WebCore::Page::setHasResourceLoadClient):
(WebCore::Page::hasResourceLoadClient const):
Source/WebKit:
Add a new delegate that will be informed about main and subresource requests.
This is distinct from the WKNavigationDelegate, which primarily receives callbacks about main resource requests.
Because the IPC churn can be a significant performance reduction, only send the IPC messages if the page has such a client.
This client will need to be expanded to implement <rdar://problem/57132290> but this is a minimal testable start.
The simple case is covered by an API test.
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- SourcesCocoa.txt:
- UIProcess/API/APIResourceLoadClient.h: Added.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _resourceLoadDelegate]):
(-[WKWebView _setResourceLoadDelegate:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/_WKResourceLoadDelegate.h: Added.
- UIProcess/Cocoa/ResourceLoadDelegate.h: Added.
- UIProcess/Cocoa/ResourceLoadDelegate.mm: Added.
(WebKit::ResourceLoadDelegate::ResourceLoadDelegate):
(WebKit::ResourceLoadDelegate::createResourceLoadClient):
(WebKit::ResourceLoadDelegate::delegate):
(WebKit::ResourceLoadDelegate::setDelegate):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::ResourceLoadClient):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::pageWillSendRequest):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setResourceLoadClient):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_overriddenMediaType):
(WebKit::WebPage::setHasResourceLoadClient):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm: Added.
(-[TestResourceLoadDelegate webView:willSendRequest:]):
(TEST):
- 6:08 PM Changeset in webkit [254182] by
-
- 37 edits in trunk
Remove document.origin
https://bugs.webkit.org/show_bug.cgi?id=205681
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Merge upstream changes from:
- web-platform-tests/dom/historical-expected.txt:
- web-platform-tests/dom/historical.html:
- web-platform-tests/dom/nodes/Document-constructor-svg.svg:
- web-platform-tests/dom/nodes/Document-constructor-xml.xml:
- web-platform-tests/dom/nodes/Document-constructor.html:
- web-platform-tests/dom/nodes/Node-cloneNode.html:
- web-platform-tests/html/browsers/windows/browsing-context.html:
- web-platform-tests/html/dom/usvstring-reflection.https.html:
Source/WebCore:
Remove document.origin, which was replaced by self.origin as per:
Gecko has never supported this and Blink has already dropped support for it.
No new tests, updated existing tests.
- dom/Document.cpp:
(WebCore::Document::origin const): Deleted.
- dom/Document.h:
- dom/Document.idl:
- dom/ScriptExecutionContext.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::printAccessDeniedMessage const):
- workers/WorkerGlobalScope.h:
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::origin const): Deleted.
- worklets/WorkletGlobalScope.h:
Source/WebKitLegacy/mac:
- DOM/DOMDocument.mm:
(-[DOMDocument origin]):
LayoutTests:
- fast/dom/Document/document-constructor-expected.txt:
- fast/dom/Document/document-constructor.html:
- fast/dom/domparser-parsefromstring-origin-expected.txt:
- fast/dom/domparser-parsefromstring-origin.html:
- 5:55 PM Changeset in webkit [254181] by
-
- 10 edits in trunk
Add a testing target to make that is release + assertions
https://bugs.webkit.org/show_bug.cgi?id=205895
Reviewed by Mark Lam.
- Makefile:
.:
- Makefile.shared:
- Source/Makefile:
- 5:44 PM Changeset in webkit [254180] by
-
- 8 edits1 add in trunk
Create a mechanism for 'safe by default' web views
https://bugs.webkit.org/show_bug.cgi?id=205407
<rdar://problem/58053071>
Reviewed by Alex Christensen.
Source/WebKit:
Adds common cases to be used as the basis for 'safe by default' web views.
The cases are in the form of an NS_ENUM _WKWebViewCategory and
its equivalent C++ enum WebViewCategory. The conversion between
these happens in WKWebViewConfiguration.mm.
- Shared/WebViewCategory.h: Added.
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::webViewCategory const):
(API::PageConfiguration::setWebViewCategory):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(convertToAPIWebViewCategory):
(convertFromAPIWebViewCategory):
(-[WKWebViewConfiguration _webViewCategory]):
(-[WKWebViewConfiguration _setWebViewCategory:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- WebKit.xcodeproj/project.pbxproj:
Tools:
Test the default WebView category is correct and that the setter works
properly.
- TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm:
(TEST):
- 5:31 PM Changeset in webkit [254179] by
-
- 2 edits in trunk/Source/WebCore
Reformat FrameLoader logging
https://bugs.webkit.org/show_bug.cgi?id=205884
<rdar://problem/58387123>
Reviewed by Brent Fulgham.
Update the format used by FrameLoader in its RELEASE_LOG logging. Use
the format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:
<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>
So, for example:
0x4aa2df000 - FrameLoader::allAllLoaders: Clearing provisional document loader (frame = 0x4a8ad3550, main = 0 m_provisionalDocumentLoader=0x0)
becomes:
0x465fb61a0 - [frame=0x465c98a20, main=0] FrameLoader::stopAllLoaders: Clearing provisional document loader (m_provisionalDocumentLoader=0x0)
No new tests -- no new or changed functionality.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::finishedParsing):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::stopForBackForwardCache):
(WebCore::FrameLoader::setProvisionalDocumentLoader):
(WebCore::FrameLoader::setState):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
- 5:07 PM Changeset in webkit [254178] by
-
- 10 edits4 adds in trunk
Using Web Share API preceded by an AJAX call
https://bugs.webkit.org/show_bug.cgi?id=197779
<rdar://problem/50708309>
Reviewed by Dean Jackson.
Source/WebCore:
As per the Web Share specification, navigator.share() is supposed to reject the promise with a
"NotAllowedError" DOMException if the relevant global object of this does not have transient
activation [1]. However, our implementation was stricter and would reject the promise if we
are not currently processing a user-gesture. This behavior did not match Chrome and does not
appear to be Web compatible.
To address the issue, this patch introduces the concept of transient activation [2] in WebKit
and uses it in navigator.share() to match the specification more closely. Note that we are
still a bit stricter than the specification because calling navigator.share() will currently
"consume the activation" [3] to prevent the JS from presenting the share sheet more than once
based on a single activation. However, our new behavior is still more permissive and more aligned
with Chrome.
[1] https://w3c.github.io/web-share/#dom-navigator-share
[2] https://html.spec.whatwg.org/multipage/interaction.html#transient-activation
[3] https://html.spec.whatwg.org/multipage/interaction.html#consume-user-activation
Tests: fast/web-share/share-transient-activation-expired.html
fast/web-share/share-transient-activation.html
- dom/UserGestureIndicator.cpp:
- dom/UserGestureIndicator.h:
(WebCore::UserGestureToken::startTime const):
- page/DOMWindow.cpp:
(WebCore::transientActivationDurationOverrideForTesting):
(WebCore::transientActivationDuration):
(WebCore::DOMWindow::origin const):
(WebCore::DOMWindow::securityOrigin const):
(WebCore::DOMWindow::overrideTransientActivationDurationForTesting):
(WebCore::DOMWindow::hasTransientActivation const):
(WebCore::DOMWindow::consumeTransientActivation):
(WebCore::DOMWindow::notifyActivated):
- page/DOMWindow.h:
- page/Navigator.cpp:
(WebCore::Navigator::share):
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setTransientActivationDuration):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Add layout test coverage.
- fast/web-share/share-transient-activation-expected.txt: Added.
- fast/web-share/share-transient-activation-expired-expected.txt: Added.
- fast/web-share/share-transient-activation-expired.html: Added.
- fast/web-share/share-transient-activation.html: Added.
- 4:54 PM Changeset in webkit [254177] by
-
- 8 edits in trunk/Source
Add some more Animations logging
https://bugs.webkit.org/show_bug.cgi?id=205890
Reviewed by Dean Jackson.
Source/WebCore:
Add Animations logging to various WebAnimations entry points.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getAnimatedStyle):
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::silentlySetCurrentTime):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::cancel):
(WebCore::WebAnimation::finish):
(WebCore::WebAnimation::play):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::pause):
(WebCore::WebAnimation::reverse):
(WebCore::WebAnimation::runPendingPauseTask):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::seekAnimation):
Source/WTF:
Make Seconds TextStream-loggable, and make Markable<> loggable.
- wtf/Seconds.cpp:
(WTF::operator<<):
- wtf/Seconds.h:
- wtf/text/TextStream.h:
(WTF::operator<<):
- 4:41 PM Changeset in webkit [254176] by
-
- 3 edits in trunk/Tools
Unreviewed, rolling out r254165.
Caused 500+ missing results on Mac
Reverted changeset:
"run-webkit-tests: clobber-old-results should remove the
entire results folder"
https://bugs.webkit.org/show_bug.cgi?id=205875
https://trac.webkit.org/changeset/254165
- 4:40 PM Changeset in webkit [254175] by
-
- 1 copy in tags/Safari-609.1.13.2.1
Tag Safari-609.1.13.2.1.
- 4:38 PM Changeset in webkit [254174] by
-
- 3 edits in trunk/Source/WebKit
Network process sandboxes should not include 'common.sb' or 'system.sb'
https://bugs.webkit.org/show_bug.cgi?id=205521
<rdar://problem/58095870>
Reviewed by Per Arne Vollan.
This patch replaces the 'include' with a copy/paste of the contents of the relevant
sandbox include file. I removed definitions that were not referenced in the existing
Network sandbox, but did not otherwise edit the contents. There are duplicates and
redundancies after this patch, which I will remove as a follow-up step once we confirm
that this has no regressions.
I also updated the sandbox to generate telemetry for some mach connections that we think
are unneeded, or that should be targeted for removal.
No new tests. There should be no change in behavior.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 4:29 PM Changeset in webkit [254173] by
-
- 2 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r254143. rdar://problem/58310178
Unreviewed non-arm64e build fix.
- dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::reifyInlinedCallFrames):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:29 PM Changeset in webkit [254172] by
-
- 5 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r254142. rdar://problem/58310178
Bytecode checkpoint fixes for arm64(e)
https://bugs.webkit.org/show_bug.cgi?id=205871
Reviewed by Michael Saboff.
The original bytecode checkpoint patch had a couple of bugs on
arm64(e). For arm64 generally, when osr exiting to an inline
varargs frame we didn't set the return value of callee before
moving the call frame register into a0 for the slow path
call. This meant we clobber the return value on arm64 as a0 == r0.
On arm64e the osr exit compiler set the tag for the return pc for
an inline frame to JSEntryTag but the code expected
NoTag. Additionally, in the stack unwinder, we were using the
JSEntryTag but we should have been stripping the tag from the
stack value.
- dfg/DFGOSRExitCompilerCommon.cpp: (JSC::DFG::callerReturnPC): (JSC::DFG::reifyInlinedCallFrames):
- dfg/DFGOSRExitCompilerCommon.h:
- interpreter/Interpreter.cpp: (JSC::UnwindFunctor::operator() const):
- llint/LowLevelInterpreter.asm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:29 PM Changeset in webkit [254171] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r254111. rdar://problem/58093690
REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205473
<rdar://problem/58093690>
Source/WebInspectorUI:
The failure was due to attempts to add output to the test page which could be not fully
loaded after navigation. To make it deterministic it is now possible to keep provisional
navigation paused and to defer output until the test page is ready.
Reviewed by Brian Burg.
- UserInterface/Protocol/Target.js: (WI.Target.prototype.initialize): (WI.Target.prototype._resumeIfPaused): extracted resume logic in a method that can be overridden in the tests.
- UserInterface/Test/FrontendTestHarness.js: (FrontendTestHarness.prototype.deferOutputUntilTestPageIsReloaded): allow to pause output when navigation is started via protocol commands rather than the test harness.
LayoutTests:
Reviewed by Brian Burg.
Keep provisional page paused until second navigation replaces it and also
defer output until test page is fully initialized after navigation.
- http/tests/inspector/target/provisional-load-cancels-previous-load.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:24 PM Changeset in webkit [254170] by
-
- 8 edits in branches/safari-609.1.13.2-branch/Source
Versioning.
- 4:17 PM Changeset in webkit [254169] by
-
- 2 edits in trunk/Source/WebKitLegacy
REGRESSION (r248734): different threads write m_storageMap of StorageAreaImpl at the same time
https://bugs.webkit.org/show_bug.cgi?id=205764
<rdar://problem/58179425>
Reviewed by Maciej Stachowiak.
In StorageAreaImpl, we avoid modifying m_storageMap from different threads at the same time by blocking main
thread access to it until the writes(importing items) of storage thread is done.
In r248734 we introduced a new case where the main thread could modify m_storageMap for session change, but we
didn't add the wait there.
- Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::importItems):
(WebKit::StorageAreaImpl::sessionChanged):
- 4:14 PM Changeset in webkit [254168] by
-
- 1 copy in branches/safari-609.1.13.2-branch
New branch.
- 4:08 PM Changeset in webkit [254167] by
-
- 4 edits in trunk/LayoutTests
Fix up layout tests results following r254160
<rdar://problem/58383099>
Revert some results back to pre-r254091. These results were changed because I made
an accident (corrected in r254160) that made me mistakenly think the new results
were legitimate. They weren't.
- fast/dom/Range/getClientRects-expected.txt:
- fast/dom/Range/getClientRects.html:
- fast/repaint/text-selection-overflow-hidden-expected.txt:
- 4:01 PM Changeset in webkit [254166] by
-
- 17 edits in trunk/Source
Unreviewed restabilization of non-unified build.
Source/JavaScriptCore:
- bytecode/MethodOfGettingAValueProfile.h:
- dfg/DFGVariableEvent.h:
- dfg/DFGVariableEventStream.cpp:
- interpreter/CheckpointOSRExitSideState.h:
Source/WebCore:
- html/HTMLDialogElement.cpp:
- platform/graphics/cairo/ImageBufferCairo.cpp:
- style/StyleAdjuster.h:
- style/UserAgentStyle.cpp:
- workers/service/SWClientConnection.cpp:
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
Source/WebKit:
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::suspend):
(WebKit::WebIDBServer::didFireVersionChangeEvent):
- UIProcess/WebContextClient.h:
- 3:54 PM Changeset in webkit [254165] by
-
- 3 edits in trunk/Tools
run-webkit-tests: clobber-old-results should remove the entire results folder
https://bugs.webkit.org/show_bug.cgi?id=205875
<rdar://problem/58236117>
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._clobber_old_results): Remove entire results folder.
- Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.test_retrying_and_flaky_tests): clobber-old-results now removes the
entire results directory.
- 3:17 PM Changeset in webkit [254164] by
-
- 3 edits2 adds in trunk
WebKit rejects changes between similar unprefixed & prefixed gradient syntax
https://bugs.webkit.org/show_bug.cgi?id=171015
Reviewed by Dean Jackson.
Source/WebCore:
equals() needs to test m_gradientType.
Test: fast/css/gradient-prefixed-unprefixed-toggle.html
- css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::equals const):
(WebCore::CSSRadialGradientValue::equals const):
LayoutTests:
- fast/css/gradient-prefixed-unprefixed-toggle-expected.html: Added.
- fast/css/gradient-prefixed-unprefixed-toggle.html: Added.
- 3:14 PM Changeset in webkit [254163] by
-
- 1 copy in tags/Safari-608.5.8
Tag Safari-608.5.8.
- 2:58 PM Changeset in webkit [254162] by
-
- 1 copy in tags/Safari-609.1.13.4
Tag Safari-609.1.13.4.
- 2:53 PM Changeset in webkit [254161] by
-
- 8 edits in branches/safari-609.1.13-branch/Source
Versioning.
- 2:39 PM Changeset in webkit [254160] by
-
- 2 edits in trunk/Source/WebCore
Fix failing tests following r254091
<rdar://problem/58383099>
Use LayoutUnit for the logical width instead of "auto" as the original code did before r254091
to fix layout test failures, e.g. editing/selection/ios/fixed-selection-after-scroll.html
This avoids accidental integer truncation that can occur if "snappedSelectionRect.maxX() > logicalRight"
evaluates to true.
- rendering/InlineTextBox.cpp:
(WebCore::snappedSelectionRect):
- 2:33 PM Changeset in webkit [254159] by
-
- 7 edits in trunk/Source/WebCore
Rename start/endPosition to start/endOffset in SelectionRangeData for clarity
https://bugs.webkit.org/show_bug.cgi?id=205838
Reviewed by Megan Gardner.
Offset is a more correct term for this variable, as it is just an unsigned.
No behavior change.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::verifySelectionState const):
(WebCore::InlineTextBox::selectionStartEnd const):
(WebCore::InlineTextBox::highlightStartEnd const):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::isSelected const):
- rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionRectsForLineBoxes):
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::setSelectionState):
- rendering/SelectionRangeData.cpp:
(WebCore::rendererAfterOffset):
(WebCore::collect):
(WebCore::SelectionRangeData::selectionStateForRenderer):
(WebCore::SelectionRangeData::repaint const):
(WebCore::SelectionRangeData::collectBounds const):
(WebCore::SelectionRangeData::apply):
(WebCore::rendererAfterPosition): Deleted.
- rendering/SelectionRangeData.h:
(WebCore::SelectionRangeData::Context::Context):
(WebCore::SelectionRangeData::Context::startOffset const):
(WebCore::SelectionRangeData::Context::endOffset const):
(WebCore::SelectionRangeData::Context::operator== const):
(WebCore::SelectionRangeData::startOffset const):
(WebCore::SelectionRangeData::endOffset const):
(WebCore::SelectionRangeData::Context::startPosition const): Deleted.
(WebCore::SelectionRangeData::Context::endPosition const): Deleted.
(WebCore::SelectionRangeData::startPosition const): Deleted.
(WebCore::SelectionRangeData::endPosition const): Deleted.
- 2:28 PM Changeset in webkit [254158] by
-
- 8 edits in trunk/Source/WebCore
AXIsolatedObject support for lists (l, ul, ol, dl).
https://bugs.webkit.org/show_bug.cgi?id=205874
Reviewed by Chris Fleizach.
- AXIsolatedObject implementation of isUnordered/Ordered/descriptionList.
- Client code doesn't downcast to AccessibilityList any longer,
but instead uses these methods that are exposed through AXCoreObject.
- accessibility/AccessibilityList.h:
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
- accessibility/isolatedtree/AXIsolatedTreeNode.h:
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::rolePlatformDescription const):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
- 2:27 PM Changeset in webkit [254157] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mac wk2 ] http/wpt/service-workers/persistent-importScripts.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205886
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:14 PM Changeset in webkit [254156] by
-
- 2 edits in trunk/Tools
[EWS] Limit pre-existing JSC tests failures to display in buildbot summary
https://bugs.webkit.org/show_bug.cgi?id=205878
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(AnalyzeJSCTestsResults.start): Limit the number of failures to display.
- 2:07 PM Changeset in webkit [254155] by
-
- 2 edits in trunk/Source/WebCore
Add a move constructor to IDBResultData
https://bugs.webkit.org/show_bug.cgi?id=205833
<rdar://problem/58146233>
Reviewed by Youenn Fablet.
- Modules/indexeddb/shared/IDBResultData.h:
- 1:58 PM Changeset in webkit [254154] by
-
- 42 edits1 copy24 moves205 adds24 deletes in trunk/LayoutTests
Re-sync web-platform-tests/xhr from upstream
https://bugs.webkit.org/show_bug.cgi?id=205641
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/xhr/FormData-append-expected.txt:
- web-platform-tests/xhr/FormData-append.html:
- web-platform-tests/xhr/META.yml:
- web-platform-tests/xhr/abort-after-receive.htm: Removed.
- web-platform-tests/xhr/abort-after-send.htm: Removed.
- web-platform-tests/xhr/abort-after-stop.htm: Removed.
- web-platform-tests/xhr/abort-after-timeout.htm: Removed.
- web-platform-tests/xhr/abort-during-done.htm: Removed.
- web-platform-tests/xhr/abort-during-headers-received.htm: Removed.
- web-platform-tests/xhr/abort-during-loading.htm: Removed.
- web-platform-tests/xhr/abort-during-unsent.htm: Removed.
- web-platform-tests/xhr/abort-during-upload.htm: Removed.
- web-platform-tests/xhr/abort-event-abort.htm: Removed.
- web-platform-tests/xhr/abort-event-listeners.htm: Removed.
- web-platform-tests/xhr/abort-event-loadend.htm: Removed.
- web-platform-tests/xhr/abort-upload-event-abort.htm: Removed.
- web-platform-tests/xhr/abort-upload-event-loadend.htm: Removed.
- web-platform-tests/xhr/access-control-and-redirects-async-same-origin.htm: Removed.
- web-platform-tests/xhr/access-control-and-redirects-async.htm: Removed.
- web-platform-tests/xhr/access-control-and-redirects.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-access-control-origin-header.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-async.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-non-cors-safelisted-method-async.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-non-cors-safelisted-method.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-preflight-cache-invalidation-by-header.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-preflight-cache-invalidation-by-method.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-preflight-cache-timeout.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-preflight-cache.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow-star.htm: Removed.
- web-platform-tests/xhr/access-control-basic-allow.htm: Removed.
- web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers-expected.txt:
- web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers.htm:
- web-platform-tests/xhr/event-abort.htm: Removed.
- web-platform-tests/xhr/event-error.sub.html: Removed.
- web-platform-tests/xhr/event-load.htm: Removed.
- web-platform-tests/xhr/event-loadend.htm: Removed.
- web-platform-tests/xhr/event-loadstart-upload.htm: Removed.
- web-platform-tests/xhr/event-loadstart.htm: Removed.
- web-platform-tests/xhr/event-progress.htm: Removed.
- web-platform-tests/xhr/event-readystate-sync-open.htm: Removed.
- web-platform-tests/xhr/event-readystatechange-loaded.htm: Removed.
- web-platform-tests/xhr/event-timeout-order.htm: Removed.
- web-platform-tests/xhr/event-timeout.htm: Removed.
- web-platform-tests/xhr/event-upload-progress-crossorigin.htm: Removed.
- web-platform-tests/xhr/event-upload-progress.htm: Removed.
- web-platform-tests/xhr/formdata-expected.txt:
- web-platform-tests/xhr/formdata-set-expected.txt:
- web-platform-tests/xhr/formdata-set.htm:
- web-platform-tests/xhr/formdata.htm:
- web-platform-tests/xhr/getallresponseheaders-expected.txt:
- web-platform-tests/xhr/getallresponseheaders.htm:
- web-platform-tests/xhr/idlharness.any.js:
- web-platform-tests/xhr/open-during-abort-processing-expected.txt:
- web-platform-tests/xhr/open-during-abort-processing.htm:
- web-platform-tests/xhr/overridemimetype-blob.html:
- web-platform-tests/xhr/overridemimetype-unsent-state-force-shiftjis.htm: Removed.
- web-platform-tests/xhr/resources/access-control-basic-options-not-supported.py:
(main):
- web-platform-tests/xhr/resources/authentication.py:
(main):
- web-platform-tests/xhr/resources/echo-method.py:
(main):
- web-platform-tests/xhr/resources/headers.asis:
- web-platform-tests/xhr/response-data-progress.htm:
- web-platform-tests/xhr/responsexml-document-properties-expected.txt:
- web-platform-tests/xhr/responsexml-document-properties.htm:
- web-platform-tests/xhr/send-authentication-basic-cors-not-enabled-expected.txt:
- web-platform-tests/xhr/send-authentication-basic-cors-not-enabled.htm:
- web-platform-tests/xhr/send-authentication-basic-repeat-no-args.htm:
- web-platform-tests/xhr/send-content-type-charset.htm:
- web-platform-tests/xhr/send-data-arraybuffer.htm: Removed.
- web-platform-tests/xhr/send-data-arraybufferview.htm: Removed.
- web-platform-tests/xhr/send-data-es-object.htm: Removed.
- web-platform-tests/xhr/send-data-formdata.htm: Removed.
- web-platform-tests/xhr/send-redirect-bogus-sync-expected.txt:
- web-platform-tests/xhr/send-redirect-bogus-sync.htm:
- web-platform-tests/xhr/send-redirect-bogus.htm:
- web-platform-tests/xhr/send-redirect-post-upload.htm:
- web-platform-tests/xhr/setrequestheader-content-type.htm:
- web-platform-tests/xhr/sync-no-progress.any.js:
- web-platform-tests/xhr/timeout-cors-async.htm:
- web-platform-tests/xhr/w3c-import.log:
LayoutTests:
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
- platform/mac-wk1/TestExpectations:
- tests-options.json:
- 1:26 PM Changeset in webkit [254153] by
-
- 13 edits in trunk
First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines
https://bugs.webkit.org/show_bug.cgi?id=205842
<rdar://problem/56884325>
Reviewed by Zalan Bujtas.
Source/WebCore:
Adds a new BoundingRectBehavior enumarator, IgnoreEmptyTextSelections, to ignore line boxes
that are not selected by the specified range when computing the bounding box for it via Range::absoluteBoundingBox().
A line box is said to be selected if there is at least one character in the specified character
range. So, a range whose start position coincides with the edge of a line box does not select the
box. However such ranges are considered to select such boxes when passed to web-exposed APIs
{Element, Range}.getClientRects() and {Element, Range}.getBoundingClientRect(). These ranges
produce empty client rectangles and these empty rectangles effect the computation of the bounding
client rect. This is all speced behavior.
When computing the glpyh bounding box for a document context request, these empty rectangles are
not meaningful and cause weird results: the empty rect is unioned with the rect for the next selected
character producing a rectangle that overlaps two lines. Ignoring them makes things behave more like
NSLayoutManager.
- dom/Range.cpp:
(WebCore::Range::absoluteBoundingBox const):
(WebCore::Range::absoluteRectsForRangeInText const):
(WebCore::Range::absoluteTextQuads const):
- dom/Range.h:
- rendering/RenderText.cpp:
(WebCore::RenderText::absoluteQuadsForRange const):
- rendering/RenderText.h:
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const):
Pass an option to ignore empty text selections through. By default Range::absoluteBoundingBox() takes
an empty set of BoundingRectBehavior enumerators to keep its current behavior.
(WebCore::RenderTextLineBoxes::absoluteRectsForRange const): Added a boolean as to whether to
ignore empty selections. If enabled, skip all boxes that are not selected by the specified
character range.
- rendering/RenderTextLineBoxes.h:
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange): Ditto.
- rendering/SimpleLineLayoutFunctions.h:
Source/WebKit:
Pass BoundingRectBehavior::IgnoreEmptyTextSelections to Range::absoluteBoundingBox() to compute
the glyph bounding box ignoring empty text selections that would typically occur if the start of
the range coincide with the edge of a line box. This makes the behavior more consistent with
the behavior of NSLayoutManager.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDocumentEditingContext):
Tools:
Add a new test.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- 1:13 PM Changeset in webkit [254152] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Remove vm accessor in JSVirtualMachine to reduce binary size
https://bugs.webkit.org/show_bug.cgi?id=205880
Reviewed by Mark Lam.
Objective-C has reflection mechanism. This means that fields, methods, and their types
need to hold its string representations in binary even if we are using release build.
While typical Objective-C class does not have large size of type names, C++ struct / class
has very large one, and putting them in Objective-C method names, parameter types, or fields
makes binary size very large.
By analyzing JavaScriptCore binary, I found that Objective-C method type symbols are taking 200~KB
binary size. (Section objc_methtype: 235081 (addr 0x105e9a3 offset 17164707)). And it is due to
JSC::VM type included in[JSVirtualMachine vm]accessor.
This patch removes this accessor and gets 200KB binary size reduction.
- API/JSScript.mm:
(-[JSScript readCache]):
(-[JSScript sourceCode]):
(-[JSScript jsSourceCode]):
(-[JSScript writeCache:]):
- API/JSVirtualMachine.mm:
(-[JSVirtualMachine JSContextGroupRef]):
(-[JSVirtualMachine isWebThreadAware]):
(-[JSVirtualMachine vm]): Deleted.
- API/JSVirtualMachineInternal.h:
- 1:10 PM Changeset in webkit [254151] by
-
- 13 edits in trunk
Unreviewed, rolling out r254144.
Broke the iOS build.
Reverted changeset:
"First character in each word-wrapped line has incorrect
character rect when requested range spans multiple lines"
https://bugs.webkit.org/show_bug.cgi?id=205842
https://trac.webkit.org/changeset/254144
- 12:58 PM Changeset in webkit [254150] by
-
- 2 edits in trunk/LayoutTests
Mark webexposed/css-properties-behind-flags.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=197204
- platform/mac/TestExpectations:
- 12:54 PM Changeset in webkit [254149] by
-
- 2 edits in trunk/Tools
results.webkit.org: Handle case where processing data is undefined
https://bugs.webkit.org/show_bug.cgi?id=205870
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/model/upload_context.py:
(UploadContext._do_job_for_key): If the job content is undefined, mark the job as
finished.
- 12:47 PM Changeset in webkit [254148] by
-
- 11 edits in trunk
[WebGL] Fill in missing WebGL2 entry points
https://bugs.webkit.org/show_bug.cgi?id=205689
<rdar://problem/58280920>
Reviewed by Simon Fraser.
Fill in the bits of the WebGL2 API that were missing.
The specification splits into Base and Implementation
interfaces, but I put everything in one place since
we already have to check that we don't have function
signature clashes.
I also fixed some situations where we were not
allowing for an Exception to be returned.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::compressedTexImage2D):
(WebCore::WebGL2RenderingContext::compressedTexSubImage2D):
(WebCore::WebGL2RenderingContext::uniform1fv):
(WebCore::WebGL2RenderingContext::uniform2fv):
(WebCore::WebGL2RenderingContext::uniform3fv):
(WebCore::WebGL2RenderingContext::uniform4fv):
(WebCore::WebGL2RenderingContext::uniform1iv):
(WebCore::WebGL2RenderingContext::uniform2iv):
(WebCore::WebGL2RenderingContext::uniform3iv):
(WebCore::WebGL2RenderingContext::uniform4iv):
(WebCore::WebGL2RenderingContext::uniformMatrix2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4fv):
(WebCore::WebGL2RenderingContext::readPixels):
- html/canvas/WebGL2RenderingContext.h:
- html/canvas/WebGL2RenderingContext.idl:
- html/canvas/WebGLRenderingContext.idl:
- html/canvas/WebGLRenderingContextBase.idl:
- 12:38 PM Changeset in webkit [254147] by
-
- 2 edits in trunk/Source/WebKit
Reformat WebFrameLoaderClient logging
https://bugs.webkit.org/show_bug.cgi?id=205869
<rdar://problem/58379240>
Reviewed by Brent Fulgham.
Update the format used by WebFrameLoaderClient in its RELEASE_LOG
logging. Use the format used by WebPageProxy and
NetworkResourceLoader, which is generally of the form:
<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>
So, for example:
0x4a1d7c310 - WebFrameLoaderClient::dispatchDidReachLayoutMilestone: dispatching didCompletePageTransition, page = 0x7f83ba009208
becomes:
0x4a1d7c310 - [webFrame=0x7ff703f03b68, webFrameID=3, webPage=0x7ff704831808, webPageID=15] WebFrameLoaderClient::dispatchDidReachLayoutMilestone: dispatching didCompletePageTransition
No new tests - no added or changed functionality.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
- 12:38 PM Changeset in webkit [254146] by
-
- 3 edits in trunk/LayoutTests
transitions/default-timing-function.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205804
<rdar://problem/58343509>
Patch by Antoine Quint <Antoine Quint> on 2020-01-07
Reviewed by Simon Fraser.
To pause a Web Animation at a given time, we need to call
pause()first and setcurrentTimeafter. Otherwise, the animation's hold
time will not be set to the provided value and the time may progress between the moment pause() was called and the moment the pending
pause task it creates is performed.
The reason the behavior changed for this test is because in r254042 we added a call to updateRendering() which updates the timeline time
which otherwise wouldn't have been updated.
- animations/resources/animation-test-helpers.js:
- transitions/resources/transition-test-helpers.js:
- 12:17 PM Changeset in webkit [254145] by
-
- 5 edits in trunk
REGRESSION: [ Mac Debug ] inspector/page/setBootstrapScript-main-frame.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205807
<rdar://problem/58344669>
Reviewed by Dean Jackson.
Source/WebInspectorUI:
- UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager.prototype.async createBootstrapScript):
(WI.NetworkManager.prototype._handleBootstrapScriptContentDidChange):
Ensure thatPage.setBootstrapScriptis called when restoring the bootstrap script from the
IndexedDB storage. Otherwise, in situations like when Web Inspector is first opened, we will
show the Inspector Bootstrap Script in the UI, but not actually set it on the inspected page.
LayoutTests:
- inspector/page/setBootstrapScript-main-frame.html:
In addition to waiting for
Page.reload, we should also wait for the page to actually load.
Set the content of the bootstrap script during its creation instead of as a two step process.
Avoid an assertion by setting the enabled state after the bootstrap script is initalized.
- platform/mac/TestExpectations:
Remove expectation added in r254059.
- 12:03 PM Changeset in webkit [254144] by
-
- 13 edits in trunk
First character in each word-wrapped line has incorrect character rect when requested range spans multiple lines
https://bugs.webkit.org/show_bug.cgi?id=205842
<rdar://problem/56884325>
Reviewed by Zalan Bujtas.
Source/WebCore:
Adds a new BoundingRectBehavior enumarator, IgnoreEmptyTextSelections, to ignore line boxes
that are not selected by the specified range when computing the bounding box for it via Range::absoluteBoundingBox().
A line box is said to be selected if there is at least one character in the specified character
range. So, a range whose start position coincides with the edge of a line box does not select the
box. However such ranges are considered to select such boxes when passed to web-exposed APIs
{Element, Range}.getClientRects() and {Element, Range}.getBoundingClientRect(). These ranges
produce empty client rectangles and these empty rectangles effect the computation of the bounding
client rect. This is all speced behavior.
When computing the glpyh bounding box for a document context request, these empty rectangles are
not meaningful and cause weird results: the empty rect is unioned with the rect for the next selected
character producing a rectangle that overlaps two lines. Ignoring them makes things behave more like
NSLayoutManager.
- dom/Range.cpp:
(WebCore::Range::absoluteBoundingBox const):
(WebCore::Range::absoluteRectsForRangeInText const):
(WebCore::Range::absoluteTextQuads const):
- dom/Range.h:
- rendering/RenderText.cpp:
(WebCore::RenderText::absoluteQuadsForRange const):
- rendering/RenderText.h:
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const):
Pass an option to ignore empty text selections through. By default Range::absoluteBoundingBox() takes
an empty set of BoundingRectBehavior enumerators to keep its current behavior.
(WebCore::RenderTextLineBoxes::absoluteRectsForRange const): Added a boolean as to whether to
ignore empty selections. If enabled, skip all boxes that are not selected by the specified
character range.
- rendering/RenderTextLineBoxes.h:
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange): Ditto.
- rendering/SimpleLineLayoutFunctions.h:
Source/WebKit:
Pass BoundingRectBehavior::IgnoreEmptyTextSelections to Range::absoluteBoundingBox() to compute
the glyph bounding box ignoring empty text selections that would typically occur if the start of
the range coincide with the edge of a line box. This makes the behavior more consistent with
the behavior of NSLayoutManager.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDocumentEditingContext):
Tools:
Add a new test.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- 11:58 AM Changeset in webkit [254143] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed non-arm64e build fix.
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::reifyInlinedCallFrames):
- 11:43 AM Changeset in webkit [254142] by
-
- 5 edits in trunk/Source/JavaScriptCore
Bytecode checkpoint fixes for arm64(e)
https://bugs.webkit.org/show_bug.cgi?id=205871
Reviewed by Michael Saboff.
The original bytecode checkpoint patch had a couple of bugs on
arm64(e). For arm64 generally, when osr exiting to an inline
varargs frame we didn't set the return value of callee before
moving the call frame register into a0 for the slow path
call. This meant we clobber the return value on arm64 as a0 == r0.
On arm64e the osr exit compiler set the tag for the return pc for
an inline frame to JSEntryTag but the code expected
NoTag. Additionally, in the stack unwinder, we were using the
JSEntryTag but we should have been stripping the tag from the
stack value.
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::callerReturnPC):
(JSC::DFG::reifyInlinedCallFrames):
- dfg/DFGOSRExitCompilerCommon.h:
- interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::operator() const):
- llint/LowLevelInterpreter.asm:
- 11:27 AM Changeset in webkit [254141] by
-
- 2 edits in trunk/Source/WebCore/PAL
Flaky API Test: TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS
https://bugs.webkit.org/show_bug.cgi?id=194340
<rdar://problem/50507254>
Reviewed by Eric Carlson.
Workaround for AVFoundation crash for OS versions prior to platform fix. This crash occurrs infrequently
while triggering KVO due to an internal @property change. Work around the crash by disabling KVO for that
property at runtime, by injecting a new class method +automaticallyNotifiesObserversOfSuppressesVideoLayers
immediately after soft linking the AVFoundation library.
- pal/cocoa/AVFoundationSoftLink.mm:
(PAL::justReturnsNO):
(PAL::AVFoundationLibrary):
- 11:04 AM Changeset in webkit [254140] by
-
- 3 edits in trunk/Tools
check-webkit-style: bmalloc doesn't use config.h
https://bugs.webkit.org/show_bug.cgi?id=205840
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/style/checkers/cpp.py:
(_IncludeState.check_next_include_order):
(check_include_line):
(check_has_config_header):
- 10:55 AM Changeset in webkit [254139] by
-
- 2 edits in trunk/LayoutTests
Correct some conflicting expectations for fast/text/emoji-gender- tests
https://bugs.webkit.org/show_bug.cgi?id=204820
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:39 AM Changeset in webkit [254138] by
-
- 2 edits in trunk/LayoutTests
Correct expectations made in r254134, r254135, and r254136
https://bugs.webkit.org/show_bug.cgi?id=205862
https://bugs.webkit.org/show_bug.cgi?id=205865
https://bugs.webkit.org/show_bug.cgi?id=205867
Unreviewed test gardneing.
- platform/mac/TestExpectations:
- 10:35 AM Changeset in webkit [254137] by
-
- 39 edits15 deletes in trunk
Unreviewed, rolling out r254132.
https://bugs.webkit.org/show_bug.cgi?id=205868
It is breaking WinCairo build and internal builds. (Requested
by youenn on #webkit).
Reverted changeset:
"Implement MediaRecorder backend in GPUProcess"
https://bugs.webkit.org/show_bug.cgi?id=205802
https://trac.webkit.org/changeset/254132
- 9:59 AM Changeset in webkit [254136] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mojave+ wk2 ] webgpu/draw-indexed-triangles.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205867
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:57 AM Changeset in webkit [254135] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mojave+ wk2 ] webgpu/whlsl/ensure-proper-variable-lifetime-2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205865
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:55 AM Changeset in webkit [254134] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mojave+ wk2 ] webgpu/whlsl/while-loop-break.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205862
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:23 AM Changeset in webkit [254133] by
-
- 69 edits1 copy1 move42 adds in trunk/LayoutTests
Re-sync web-platform-tests/content-security-policy from upstream
https://bugs.webkit.org/show_bug.cgi?id=205639
Reviewed by Carlos Alberto Lopez Perez.
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/content-security-policy/README.html:
- web-platform-tests/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html:
- web-platform-tests/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html:
- web-platform-tests/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html:
- web-platform-tests/content-security-policy/embedded-enforcement/support/echo-required-csp.py:
(main):
- web-platform-tests/content-security-policy/font-src/font-none-blocked.sub.html:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html: Added.
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block.html:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-none-block-expected.txt:
- web-platform-tests/content-security-policy/frame-ancestors/report-blocked-frame.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/frame-ancestors/report-blocked-frame.sub.html: Added.
- web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/frame-ancestors/report-only-frame.sub.html: Added.
- web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy-report-only.sub.html: Added.
- web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy-report-only.sub.html.sub.headers: Added.
- web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy.sub.html: Added.
- web-platform-tests/content-security-policy/frame-ancestors/support/content-security-policy.sub.html.sub.headers: Added.
- web-platform-tests/content-security-policy/frame-ancestors/support/frame-ancestors-test.sub.js:
(iframeLoaded):
- web-platform-tests/content-security-policy/frame-ancestors/support/service-worker.js: Added.
(self.onfetch.e.e.respondWith):
- web-platform-tests/content-security-policy/frame-ancestors/support/w3c-import.log:
- web-platform-tests/content-security-policy/frame-ancestors/w3c-import.log:
- web-platform-tests/content-security-policy/frame-src/frame-src-same-document-expected.txt: Added.
- web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
- web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta.html: Added.
- web-platform-tests/content-security-policy/frame-src/frame-src-same-document.html: Added.
- web-platform-tests/content-security-policy/frame-src/frame-src-same-document.html.headers: Added.
- web-platform-tests/content-security-policy/frame-src/w3c-import.log:
- web-platform-tests/content-security-policy/generic/generic-0_1-script-src.html:
- web-platform-tests/content-security-policy/generic/generic-0_10.sub-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/content-security-policy/generic/generic-0_9.sub-expected.txt.
- web-platform-tests/content-security-policy/generic/generic-0_10.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/content-security-policy/generic/generic-0_10.html.
- web-platform-tests/content-security-policy/generic/generic-0_2-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_2.html:
- web-platform-tests/content-security-policy/generic/generic-0_8.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_8.sub.html:
- web-platform-tests/content-security-policy/generic/generic-0_8_1.sub.html:
- web-platform-tests/content-security-policy/generic/generic-0_9.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_9.sub.html:
- web-platform-tests/content-security-policy/generic/no-default-src.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/no-default-src.sub.html:
- web-platform-tests/content-security-policy/generic/positiveTest.js:
(onload): Deleted.
- web-platform-tests/content-security-policy/generic/w3c-import.log:
- web-platform-tests/content-security-policy/img-src/img-src-4_1.sub-expected.txt:
- web-platform-tests/content-security-policy/img-src/img-src-4_1.sub.html:
- web-platform-tests/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub-expected.txt:
- web-platform-tests/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub.html:
- web-platform-tests/content-security-policy/img-src/img-src-port-wildcard-allowed.sub-expected.txt:
- web-platform-tests/content-security-policy/img-src/img-src-port-wildcard-allowed.sub.html:
- web-platform-tests/content-security-policy/inside-worker/support/connect-src-allow.sub.js:
- web-platform-tests/content-security-policy/inside-worker/support/connect-src-self.sub.js:
(promise_test.t.return.new.Promise):
(async_test.t.Promise.all.new.Promise): Deleted.
- web-platform-tests/content-security-policy/inside-worker/support/script-src-allow.sub.js:
- web-platform-tests/content-security-policy/inside-worker/support/script-src-self.sub.js:
- web-platform-tests/content-security-policy/media-src/media-src-7_3.sub.html:
- web-platform-tests/content-security-policy/media-src/media-src-7_3_2.sub.html:
- web-platform-tests/content-security-policy/meta/sandbox-iframe-expected.txt: Added.
- web-platform-tests/content-security-policy/meta/sandbox-iframe.html: Added.
- web-platform-tests/content-security-policy/meta/w3c-import.log:
- web-platform-tests/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html:
- web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub.html:
- web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval-expected.txt: Added.
- web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval.html: Added.
- web-platform-tests/content-security-policy/reporting/report-only-unsafe-eval.html.sub.headers: Added.
- web-platform-tests/content-security-policy/reporting/report-uri-from-child-frame-expected.txt:
- web-platform-tests/content-security-policy/reporting/report-uri-from-child-frame.html:
- web-platform-tests/content-security-policy/reporting/w3c-import.log:
- web-platform-tests/content-security-policy/script-src/script-src-sri_hash.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-sri_hash.sub.html:
- web-platform-tests/content-security-policy/script-src/scripthash-basic-blocked-error-event-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/scripthash-basic-blocked-error-event.html: Added.
- web-platform-tests/content-security-policy/script-src/scripthash-changed-1-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/scripthash-changed-1.html: Added.
- web-platform-tests/content-security-policy/script-src/scripthash-changed-2-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/scripthash-changed-2.html: Added.
- web-platform-tests/content-security-policy/script-src/scripthash-unicode-normalization.sub.html:
- web-platform-tests/content-security-policy/script-src/scriptnonce-changed-1-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/scriptnonce-changed-1.html: Added.
- web-platform-tests/content-security-policy/script-src/scriptnonce-changed-2-expected.txt: Added.
- web-platform-tests/content-security-policy/script-src/scriptnonce-changed-2.html: Added.
- web-platform-tests/content-security-policy/script-src/support/change-scripthash-before-execute.js: Added.
(document.getElementById):
- web-platform-tests/content-security-policy/script-src/support/change-scriptnonce-before-execute.js: Added.
(document.getElementById):
- web-platform-tests/content-security-policy/script-src/support/empty.css: Added.
- web-platform-tests/content-security-policy/script-src/support/inline-script-should-be-blocked.js: Added.
(async_test.t.s.onerror.t.step_func):
(async_test.t.s.onload.t.step_func):
- web-platform-tests/content-security-policy/script-src/support/w3c-import.log:
- web-platform-tests/content-security-policy/script-src/support/worker-importscripts.js:
- web-platform-tests/content-security-policy/script-src/w3c-import.log:
- web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html:
- web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html:
- web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html:
- web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html:
- web-platform-tests/content-security-policy/securitypolicyviolation/support/inside-worker.sub.js:
- web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html:
- web-platform-tests/content-security-policy/style-src/style-src-stylesheet-nonce-allowed.html:
- web-platform-tests/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html:
- web-platform-tests/content-security-policy/support/inject-image.sub.js:
- web-platform-tests/content-security-policy/svg/object-in-svg-foreignobject.sub.html:
LayoutTests:
- platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/frame-src/frame-src-same-document-meta-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
- tests-options.json:
- 9:08 AM Changeset in webkit [254132] by
-
- 39 edits15 adds in trunk
Implement MediaRecorder backend in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205802
Reviewed by Eric Carlson.
Source/WebCore:
Add a page provider to create MediaRecorderPrivate implementations.
This is used by WebKit layer to implement this in GPUProcess.
Update MediaRecorderPrivate by adding an error callback that is used to surface errors as MediaRecorder error events.
Covered by existing tests as MediaRecorder implementation in WebKitTestRunner will use GPUProcess.
- Headers.cmake:
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::createMediaRecorderPrivate):
- Modules/mediarecorder/MediaRecorder.h:
- Modules/mediarecorder/MediaRecorderProvider.cpp: Added.
(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
- Modules/mediarecorder/MediaRecorderProvider.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::mediaRecorderProvider):
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
(WebCore::MediaRecorderPrivateWriter::create):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/MediaStreamTrackPrivate.h:
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUseGPUProcessForWebRTC):
Source/WebKit:
Add support for sending audio/video tracks to record from WebProcess to GPUProcess.
Add a MediaRecorderPrivate implementation that supports sending one audio track and/or one video track to GPUProcess
and stopping/fetching data from the remote recorder in GPUProcess.
In GPUProcess, implement the remote recorder using the existing WebCore recorder writer.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::userMediaCaptureManagerProxy):
(WebKit::GPUConnectionToWebProcess::mediaRecorderManager):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp: Added.
(WebKit::RemoteMediaRecorder::create):
(WebKit::RemoteMediaRecorder::RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::~RemoteMediaRecorder):
(WebKit::RemoteMediaRecorder::storage):
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
(WebKit::RemoteMediaRecorder::audioSamplesAvailable):
(WebKit::RemoteMediaRecorder::videoSampleAvailable):
(WebKit::RemoteMediaRecorder::fetchData):
(WebKit::RemoteMediaRecorder::stopRecording):
- GPUProcess/webrtc/RemoteMediaRecorder.h: Added.
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in: Added.
- GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: Added.
(WebKit::RemoteMediaRecorderManager::RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::~RemoteMediaRecorderManager):
(WebKit::RemoteMediaRecorderManager::didReceiveRemoteMediaRecorderMessage):
(WebKit::RemoteMediaRecorderManager::createRecorder):
(WebKit::RemoteMediaRecorderManager::releaseRecorder):
- GPUProcess/webrtc/RemoteMediaRecorderManager.h: Added.
(WebKit::RemoteMediaRecorderManager::didReceiveMessageFromWebProcess):
- GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in: Added.
- Scripts/webkit/messages.py:
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaRecorderProvider.cpp: Added.
(WebCore::MediaRecorderProvider::createMediaRecorderPrivate):
- WebProcess/GPU/media/MediaRecorderProvider.h: Added.
- WebProcess/GPU/webrtc/MediaRecorderIdentifier.h: Added.
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Added.
(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::~MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::sampleBufferUpdated):
(WebKit::MediaRecorderPrivate::audioSamplesAvailable):
(WebKit::MediaRecorderPrivate::storageChanged):
(WebKit::MediaRecorderPrivate::fetchData):
(WebKit::MediaRecorderPrivate::stopRecording):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Added.
- WebProcess/GPU/webrtc/MediaRecorderProvider.cpp: Added.
(WebKit::MediaRecorderProvider::createMediaRecorderPrivate):
- WebProcess/GPU/webrtc/MediaRecorderProvider.h: Added.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_overriddenMediaType):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::initWithFrame):
LayoutTests:
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
Do not use GPUProcess for this test until canvas buffers are IOSurfaces.
- 9:06 AM Changeset in webkit [254131] by
-
- 2 edits in trunk/LayoutTests
[GTK][EME] ClearKey encrypted media gardening
https://bugs.webkit.org/show_bug.cgi?id=205857
Unreviewed gardening.
Patch by Charlie Turner <mail@charles.plus> on 2020-01-07
- platform/gtk/TestExpectations: Skip
mock-MediaKeySession-{generateRequest,remove}.html and update some
no longer timing out test-cases.
- 8:49 AM Changeset in webkit [254130] by
-
- 21 edits2 moves in trunk
Add an option to make video capture in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205853
Reviewed by Eric Carlson.
Source/WebKit:
Add an option to make video capture in GPU process.
Pass this option at creation of the web page so that the process can be updated after launch time.
Apply the same principle to other audio/video capture parameters.
Add SPI to update this preference.
Fix bug in the passing of preference to process pool for the video capture in UIProcess parameter, which is now an experimental flag and not an internal one.
Test: fast/mediastream/captureInGPUProcess.html
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- Shared/WebPreferences.yaml:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCaptureVideoInGPUProcessEnabled):
(WKPreferencesGetCaptureVideoInGPUProcessEnabled):
- UIProcess/API/C/WKPreferencesRef.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_overriddenMediaType):
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::setupCaptureProcesses):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
- WebProcess/cocoa/UserMediaCaptureManager.h:
(WebKit::UserMediaCaptureManager::VideoFactory::setShouldCaptureInGPUProcess):
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
LayoutTests:
- fast/mediastream/captureInGPUProcess-expected.txt: Renamed from LayoutTests/fast/mediastream/captureAudioInGPUProcess-expected.txt.
- fast/mediastream/captureInGPUProcess.html: Renamed from LayoutTests/fast/mediastream/captureAudioInGPUProcess.html.
- 8:43 AM Changeset in webkit [254129] by
-
- 109 edits5 copies2 moves43 adds7 deletes in trunk/LayoutTests
Re-sync web-platform-tests/css/cssom-view from upstream
https://bugs.webkit.org/show_bug.cgi?id=204649
Reviewed by Chris Dumez.
Re-sync web-platform-tests/css/cssom-view from upstream 106e0bdf02a1.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom-view/*: Updated.
LayoutTests:
- TestExpectations:
- tests-options.json:
- 8:31 AM Changeset in webkit [254128] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Re-sync web-platform-tests/domparsing from upstream
https://bugs.webkit.org/show_bug.cgi?id=205638
Reviewed by Chris Dumez.
- resources/import-expectations.json:
Remove not longer needed domparsing skip instructions in the
import-expectations.json file
- 7:34 AM Changeset in webkit [254127] by
-
- 2 edits in trunk/LayoutTests
Layout Test storage/indexeddb/IDBTransaction-page-cache.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=205856
Unreviewed test gardening.
- platform/win/TestExpectations:
- 7:29 AM Changeset in webkit [254126] by
-
- 2 edits in trunk/LayoutTests
Layout Test http/wpt/css/css-highlight-api/highlight-text-across-elements.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205855
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:49 AM Changeset in webkit [254125] by
-
- 2 edits in trunk/Source/WebKit
Fix non GPUProcess build issue in UserMediaCaptureManager
https://bugs.webkit.org/show_bug.cgi?id=205851
Reviewed by Eric Carlson.
Build fix, no change of behavior.
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::connection):
- 6:12 AM Changeset in webkit [254124] by
-
- 1 edit1 delete in trunk/Source/WebCore
Remove loader/win
https://bugs.webkit.org/show_bug.cgi?id=205852
Patch by Rob Buis <rbuis@igalia.com> on 2020-01-07
Reviewed by Youenn Fablet.
Remove loader/win since it is not used anymore.
- loader/win/DocumentLoaderWin.cpp: Removed.
- loader/win/FrameLoaderWin.cpp: Removed.
- 5:15 AM Changeset in webkit [254123] by
-
- 6 edits in trunk/Source/WebCore
Implementation of containsText for AXIsolatedObjects.
https://bugs.webkit.org/show_bug.cgi?id=205847
Reviewed by Chris Fleizach.
No new tests, no new functionality.
- Moved implementation of containsText from AccessibilityObject to
AXCoreObject to be re-used by AXIsolatedObject.
- Implemented AXIsolatedObject::stringValue.
- AXIsolatedObject::isTable must return false because it is used in the
SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY macro.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::containsText const): Moved to AXCoreObject.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::containsText const):
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::containsText const): Implementation in base class AXCoreObject.
(WebCore::AXIsolatedObject::stringValue const): Deleted.
- accessibility/isolatedtree/AXIsolatedTreeNode.h:
- 2:59 AM Changeset in webkit [254122] by
-
- 25 edits in trunk
[GTK][WPE] Add API to retrieve and delete surrounding text for input methods
https://bugs.webkit.org/show_bug.cgi?id=205716
Reviewed by Žan Doberšek.
Source/WebKit:
Extend WebKitInputMethodContext to be able to retrieve and delete surrounding text.
- Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode const): Encode paragraphContext and paragraphContextCursorPosition.
(WebKit::EditorState::PostLayoutData::decode): Decode paragraphContext and paragraphContextCursorPosition.
- Shared/EditorState.h: Add paragraphContext and paragraphContextCursorPosition.
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::deleteSurroundingCallback): Callback to handle
WebKitInputMethodContext::delete-surrounding signal.
(WebKit::InputMethodFilter::setContext): Connect to WebKitInputMethodContext::delete-surrounding signal.
(WebKit::InputMethodFilter::notifySurrounding): Save the new surrounding text and position and call
webkit_input_method_context_notify_surrounding().
(WebKit::InputMethodFilter::deleteSurrounding): Ask WebKitWebView to delete the surrounding text.
- UIProcess/API/glib/InputMethodFilter.h:
- UIProcess/API/glib/WebKitInputMethodContext.cpp:
(webkit_input_method_context_class_init): Add delete-surrounding signal.
(webkit_input_method_context_notify_surrounding): Call the virtual method notify_surrounding if implemented.
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewDeleteSurrounding): Call WebPageProxy::deleteSurrounding().
- UIProcess/API/glib/WebKitWebViewPrivate.h:
- UIProcess/API/gtk/WebKitInputMethodContext.h:
- UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(contextRetrieveSurrounding): Call gtk_im_context_set_surrounding() with the current surrounding text and position.
(webkitInputMethodContextImplGtkConstructed): Connect to GtkIMContext::retrieve-surrounding signal.
(webkitInputMethodContextImplGtkNotifySurrounding): Save the new surrounding text and position.
(webkit_input_method_context_impl_gtk_class_init): Add implementation for notify_surrounding vfunc.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseUpdateTextInputState): Also notify the context about surrounding text and position.
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::selectionDidChange): Ditto.
- UIProcess/API/wpe/WebKitInputMethodContext.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::deleteSurrounding): Send DeleteSurrounding message to web process.
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::deleteSurrounding): Delete the given range.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in: Add DeleteSurrounding message.
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformEditorState const): Moved from GTK and WPE here and also added paragraphContext and
paragraphContextCursorPosition initialization.
- WebProcess/WebPage/gtk/WebPageGtk.cpp: Remove platformEditorState().
- WebProcess/WebPage/wpe/WebPageWPE.cpp: Ditto.
Tools:
Add new test case for the new API.
- TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
(webkitInputMethodContextMockFinalize):
(webkitInputMethodContextMockNotifySurrounding):
(webkitInputMethodContextMockReset):
(webkit_input_method_context_mock_class_init):
(testWebKitInputMethodContextSurrounding):
(beforeAll):
- 2:48 AM Changeset in webkit [254121] by
-
- 58 edits1 copy1 add in trunk
[GTK][WPE] Add API to set purpose and hints of active editable element to input methods
https://bugs.webkit.org/show_bug.cgi?id=205605
Reviewed by Žan Doberšek.
.:
Add ENABLE_AUTOCAPITALIZE build flag. It's private and disabled by default, enabled in GTK and WPE ports.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/WebKitFeatures.cmake:
PerformanceTests:
Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.
- StitchMarker/wtf/FeatureDefines.h:
Source/WebCore:
Use ENABLE(AUTOCAPITALIZE) and ENABLE(AUTOCORRECT) instead of ENABLE(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
- Sources.txt: Add Autocapitalize.cpp to the build.
- html/Autocapitalize.cpp: Add ENABLE(AUTOCAPITALIZE) guards.
- html/Autocapitalize.h: Ditto.
- html/HTMLElement.cpp:
- html/HTMLElement.h:
- html/HTMLElement.idl:
- html/HTMLFormControlElement.cpp:
- html/HTMLFormControlElement.h:
- html/HTMLFormElement.cpp:
- html/HTMLFormElement.h:
- loader/EmptyClients.cpp: Update to new API of EditorClient::setInputMethodState
- page/EditorClient.h: The focused element or nullptr is now received by setInputMethodState() instead of enabled/disabled boolean.
- page/FocusController.cpp:
(WebCore::FocusController::setFocusedElement): Pass the focused element or nullptr to setInputMethodState().
Source/WebKit:
Add input-purpose and input-hints properties to WebKitInputMethodContext. The message SetInputMethodState now
receives an optional InputMethodState struct with information about the purpose and hints of the active editable
element.
- Scripts/webkit/messages.py: Only include InputMethodState.h for GTK and WPE.
- Shared/glib/InputMethodState.cpp: Added.
(WebKit::InputMethodState::setPurposeOrHintForInputMode):
(WebKit::inputElementHasDigitsPattern):
(WebKit::InputMethodState::setPurposeForInputElement):
(WebKit::InputMethodState::addHintsForAutocapitalizeType):
(WebKit::InputMethodState::encode const):
(WebKit::InputMethodState::decode):
- Shared/glib/InputMethodState.h: Added.
(WebKit::operator==):
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::setContext): Use isEnabled() instead of m_enabled.
(WebKit::InputMethodFilter::setState): Now receives an optional InputMethodState struct.
(WebKit::InputMethodFilter::filterKeyEvent): Use isEnabled() instead of m_enabled.
(WebKit::InputMethodFilter::isViewFocused const): Ditto.
(WebKit::toWebKitPurpose): Helper to convert InputMethodState::Purpose to WebKitInputPurpose.
(WebKit::toWebKitHints): Helper to convert InputMethodState::Hint to WebKitInputHints.
(WebKit::InputMethodFilter::notifyFocusedIn): Set the purpose and hints to the context.
(WebKit::InputMethodFilter::notifyFocusedOut): Use isEnabled() instead of m_enabled.
(WebKit::InputMethodFilter::notifyCursorRect): Ditto.
(WebKit::InputMethodFilter::preeditStarted): Ditto.
(WebKit::InputMethodFilter::preeditChanged): Ditto.
(WebKit::InputMethodFilter::preeditFinished): Ditto.
(WebKit::InputMethodFilter::committed): Ditto.
- UIProcess/API/glib/InputMethodFilter.h:
(WebKit::InputMethodFilter::isEnabled const): Return true if we have a state.
- UIProcess/API/glib/WebKitInputMethodContext.cpp:
(webkitInputMethodContextSetProperty): Properties setter.
(webkitInputMethodContextGetProperty): Properties getter.
(webkit_input_method_context_class_init): Add implementation for properties getter and setter.
(webkit_input_method_context_get_input_purpose):
(webkit_input_method_context_set_input_purpose):
(webkit_input_method_context_get_input_hints):
(webkit_input_method_context_set_input_hints):
- UIProcess/API/gtk/WebKitInputMethodContext.h:
- UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(toGtkInputPurpose): Helper to convert WebKitInputPurpose to GtkInputPurpose.
(toGtkInputHints): Helper to convert WebKitInputHints to GtkInputHints.
(inputPurposeChangedCallback): Set the purpose on GtkIMContext.
(inputHintsChangedCallback): Set the hints on GtkIMContext.
(webkitInputMethodContextImplGtkConstructed): Connect to notify signal for input-purpose and input-hints
properties of the context.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSetInputMethodState):
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::setInputMethodState):
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::setInputMethodState):
- UIProcess/API/wpe/WPEView.h:
- UIProcess/API/wpe/WebKitInputMethodContext.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::setInputMethodState):
- UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::setInputMethodState):
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::setInputMethodState):
- WebProcess/WebCoreSupport/WebEditorClient.h:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::inputMethodSateForElement): Build an InputMethodState for the given element.
(WebKit::WebPage::setInputMethodState):
Source/WebKitLegacy/mac:
- DOM/DOMHTMLElement.mm: Use ENABLE(AUTOCORRECT) and ENABLE(AUTOCAPITALIZE).
- WebCoreSupport/WebEditorClient.h: Update tom the new API to WebEditorClient::setInputMethodState.
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::setInputMethodState): Ditto.
Source/WebKitLegacy/win:
Update to the new API of WebEditorClient::setInputMethodState.
- WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::setInputMethodState):
- WebCoreSupport/WebEditorClient.h:
Source/WTF:
Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.
- wtf/FeatureDefines.h:
Tools:
Add new test case to check the purpose and hints API.
- TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
(testWebKitInputMethodContextContentType):
(beforeAll):
- 2:45 AM Changeset in webkit [254120] by
-
- 4 edits in trunk
WebDriver: several w3c collections tests added in r230953 are failing
https://bugs.webkit.org/show_bug.cgi?id=184966
Reviewed by Brian Burg.
Source/WebKit:
This is because JSON.stringify() is not enough, we need to first clone the value using the internal JSON clone
algorithm explained in the spec. See https://w3c.github.io/webdriver/#dfn-internal-json-clone-algorithm.
Fixes: imported/w3c/webdriver/tests/execute_script/collections.py::test_arguments
imported/w3c/webdriver/tests/execute_script/collections.py::test_file_list
imported/w3c/webdriver/tests/execute_script/collections.py::test_html_all_collection
imported/w3c/webdriver/tests/execute_async_script/collections.py::test_arguments
imported/w3c/webdriver/tests/execute_async_script/collections.py::test_file_list
imported/w3c/webdriver/tests/execute_async_script/collections.py::test_html_all_collection
- WebProcess/Automation/WebAutomationSessionProxy.js:
(WebKitAutomation.AutomationSessionProxy.prototype._jsonStringify): Call JSON.stringify(), but without the
replacer and passing the result of _jsonClone().
(WebKitAutomation.AutomationSessionProxy.prototype._isCollection): Helper to check if the value is a collection.
(WebKitAutomation.AutomationSessionProxy.prototype._checkCyclic): Throw an error if the value is a cyclic structure.
(WebKitAutomation.AutomationSessionProxy.prototype._jsonClone): Implement the internal JSON clone algorithm.
(WebKitAutomation.AutomationSessionProxy.prototype._createNodeHandle): Trhow an error if the node is stale.
WebDriverTests:
Remove expectations for tests that are now passing.
- TestExpectations.json:
- 1:58 AM Changeset in webkit [254119] by
-
- 2 edits in trunk/Source/WebKit
[SOUP] HSTS Support causes page loading to fail with "Operation was cancelled"
https://bugs.webkit.org/show_bug.cgi?id=203620
Reviewed by Michael Catanzaro.
The problem is that we are assuming that request cancellation happens synchronously, but it can happen that the
async ready callback for the previous request is called after the new one has started.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::sendRequestCallback): Return early if this is a previous request already cancelled.
- 1:55 AM Changeset in webkit [254118] by
-
- 6 edits in trunk/Source
WebDriver: handle no such element errors
https://bugs.webkit.org/show_bug.cgi?id=204684
Reviewed by Brian Burg.
Source/WebDriver:
Handle InvalidNodeIdentifier errors.
Fixes: imported/w3c/webdriver/tests/get_element_tag_name/get.py::test_element_not_found
imported/w3c/webdriver/tests/get_element_property/get.py::test_element_not_found
imported/w3c/webdriver/tests/get_element_attribute/get.py::test_element_not_found
- CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
Source/WebKit:
Add InvalidNodeIdentifier to be generated when the elementID provided by WebDriver is not a valid node identifier.
- UIProcess/Automation/Automation.json: Add InvalidNodeIdentifier error.
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::isValidNodeHandle): Helper function to check the given node handle is valid.
(WebKit::isValidNodeIdentifier): JavaScript callback function to check the node identifier is valid.
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Add isValidNodeIdentifier function.
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidNodeIdentifier errors.
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle): Call isValidNodeHandle() and generate
InvalidNodeIdentifier error if it fails.
(WebKit::WebAutomationSessionProxy::computeElementLayout): Ditto.
(WebKit::WebAutomationSessionProxy::selectOptionElement): Ditto.
(WebKit::WebAutomationSessionProxy::takeScreenshot): Ditto.
- WebProcess/Automation/WebAutomationSessionProxy.js:
(let.AutomationSessionProxy.prototype._nodeForIdentifier): Call isValidNodeIdentifier() and throw
InvalidNodeIdentifier if it fails.
- 1:52 AM Changeset in webkit [254117] by
-
- 4 edits in trunk
WebDriver: several tests in imported/w3c/webdriver/tests/state/get_element_attribute.py are failing
https://bugs.webkit.org/show_bug.cgi?id=180415
Reviewed by Brian Burg.
Source/WebKit:
Update the ElementAttribute atom to properly handle boolean attributes, following what the selenium original
atom does.
- UIProcess/Automation/atoms/ElementAttribute.js:
(getAttribute):
(tagName.string_appeared_here.lowercaseAttributeName.string_appeared_here):
(isBooleanAttribute):
WebDriverTests:
Remove expectations for tests that are now passing.
- TestExpectations.json:
- 1:43 AM Changeset in webkit [254116] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] mediastreamsrc ref sinked triggers critical warning in gst 1.17
https://bugs.webkit.org/show_bug.cgi?id=205777
Reviewed by Carlos Garcia Campos.
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
Use a raw pointer to keep track of the src element in the track
observer, similarily to the other observer implementation. Using
GRefPtr here would have the side effect of removing the floating
reference on the element and trigger a critical warning in GStreamer.
- 12:14 AM Changeset in webkit [254115] by
-
- 17 edits in trunk
AX: Enable ACCESSIBILITY_ISOLATED_TREE
https://bugs.webkit.org/show_bug.cgi?id=205535
<rdar://problem/58131075>
Reviewed by Zalan Bujtas.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Enable compilation of the accessibility isolated tree and make it a runtime feature.
- Configurations/FeatureDefines.xcconfig:
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::clientSupportsIsolatedTree):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setIsAccessibilityIsolatedTreeEnabled):
(WebCore::RuntimeEnabledFeatures::isAccessibilityIsolatedTreeEnabled const):
- page/Settings.yaml:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetIsAccessibilityIsolatedTreeEnabled):
(WKPreferencesGetIsAccessibilityIsolatedTreeEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig: