[webkit-changes] [225840] trunk/Source/JavaScriptCore
Title: [225840] trunk/Source/_javascript_Core Revision 225840 Author utatane@gmail.com Date 2017-12-12 23:51:16 -0800 (Tue, 12 Dec 2017) Log Message [JSC] Optimize Object.assign by single transition acceleration https://bugs.webkit.org/show_bug.cgi?id=180644 Reviewed by Saam Barati. Handling single transition is critical. Since this get() function is only used in Structure.cpp's 2 functions and it is quite small, we can annotate `inline` to accelerate it. This improves SixSpeed/object-assign.es6 by 2.8%. baseline patched object-assign.es6 382.3548+-8.0461 371.6496+-5.7439 might be 1.0288x faster * runtime/Structure.cpp: (JSC::StructureTransitionTable::get const): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/Structure.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (225839 => 225840) --- trunk/Source/_javascript_Core/ChangeLog 2017-12-13 06:19:57 UTC (rev 225839) +++ trunk/Source/_javascript_Core/ChangeLog 2017-12-13 07:51:16 UTC (rev 225840) @@ -1,3 +1,23 @@ +2017-12-12 Yusuke Suzuki + +[JSC] Optimize Object.assign by single transition acceleration +https://bugs.webkit.org/show_bug.cgi?id=180644 + +Reviewed by Saam Barati. + +Handling single transition is critical. Since this get() function is only used +in Structure.cpp's 2 functions and it is quite small, we can annotate `inline` +to accelerate it. + +This improves SixSpeed/object-assign.es6 by 2.8%. + +baseline patched + +object-assign.es6 382.3548+-8.0461 371.6496+-5.7439 might be 1.0288x faster + +* runtime/Structure.cpp: +(JSC::StructureTransitionTable::get const): + 2017-12-12 Filip Pizlo Structure, StructureRareData, and PropertyTable should be in IsoSubspaces Modified: trunk/Source/_javascript_Core/runtime/Structure.cpp (225839 => 225840) --- trunk/Source/_javascript_Core/runtime/Structure.cpp 2017-12-13 06:19:57 UTC (rev 225839) +++ trunk/Source/_javascript_Core/runtime/Structure.cpp 2017-12-13 07:51:16 UTC (rev 225840) @@ -99,7 +99,7 @@ return map()->get(std::make_pair(rep, attributes)); } -Structure* StructureTransitionTable::get(UniquedStringImpl* rep, unsigned attributes) const +inline Structure* StructureTransitionTable::get(UniquedStringImpl* rep, unsigned attributes) const { if (isUsingSingleSlot()) { Structure* transition = singleTransition(); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225839] trunk/Source/WebInspectorUI
Title: [225839] trunk/Source/WebInspectorUI Revision 225839 Author nvasil...@apple.com Date 2017-12-12 22:19:57 -0800 (Tue, 12 Dec 2017) Log Message Web Inspector: Styles Redesign: navigating away from empty value should remove CSS property https://bugs.webkit.org/show_bug.cgi?id=180508 Reviewed by Devin Rousso. Remove a property when navigating away from it (e.g. to the next/previous property, or outside of the styles panel entirely) and either its name or value is empty: color: [ ]-> <-[ ]: red <-[color]: Don't remove a property when navigating from an empty value to a non-empty name: color: <-[ ] Always remove a property when both name and value are empty. * UserInterface/Views/SpreadsheetStyleProperty.js: (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit): (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): * UserInterface/Views/SpreadsheetTextField.js: (WI.SpreadsheetTextField.prototype._handleBlur): (WI.SpreadsheetTextField.prototype.get valueBeforeEditing): Deleted. Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (225838 => 225839) --- trunk/Source/WebInspectorUI/ChangeLog 2017-12-13 04:47:23 UTC (rev 225838) +++ trunk/Source/WebInspectorUI/ChangeLog 2017-12-13 06:19:57 UTC (rev 225839) @@ -1,3 +1,30 @@ +2017-12-12 Nikita Vasilyev + +Web Inspector: Styles Redesign: navigating away from empty value should remove CSS property +https://bugs.webkit.org/show_bug.cgi?id=180508 + +Reviewed by Devin Rousso. + +Remove a property when navigating away from it (e.g. to the next/previous property, +or outside of the styles panel entirely) and either its name or value is empty: + +color: [ ]-> +<-[ ]: red +<-[color]: + +Don't remove a property when navigating from an empty value to a non-empty name: + +color: <-[ ] + +Always remove a property when both name and value are empty. + +* UserInterface/Views/SpreadsheetStyleProperty.js: +(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit): +(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): +* UserInterface/Views/SpreadsheetTextField.js: +(WI.SpreadsheetTextField.prototype._handleBlur): +(WI.SpreadsheetTextField.prototype.get valueBeforeEditing): Deleted. + 2017-12-12 Brian Burg Web Inspector: support async setup() and async teardown() in AsyncTestSuite Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js (225838 => 225839) --- trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js 2017-12-13 04:47:23 UTC (rev 225838) +++ trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js 2017-12-13 06:19:57 UTC (rev 225839) @@ -231,16 +231,11 @@ let propertyName = this._nameTextField.value.trim(); let propertyValue = this._valueTextField.value.trim(); let willRemoveProperty = false; -let newlyAdded = this._valueTextField.valueBeforeEditing === ""; +let isEditingName = textField === this._nameTextField; -// Remove a property with an empty name or value. However, a newly added property -// has an empty name and value at first. Don't remove it when moving focus from -// the name to the value for the first time. -if (!propertyName || (!newlyAdded && !propertyValue)) +if (!propertyName || (!propertyValue && !isEditingName && direction === "forward")) willRemoveProperty = true; -let isEditingName = textField === this._nameTextField; - if (!isEditingName && !willRemoveProperty) this._renderValue(propertyValue); @@ -267,11 +262,15 @@ this._remove(); } -spreadsheetTextFieldDidBlur(textField) +spreadsheetTextFieldDidBlur(textField, event) { -if (textField.value.trim() === "") +let focusedOutsideThisProperty = event.relatedTarget !== this._nameElement && event.relatedTarget !== this._valueElement; +if (focusedOutsideThisProperty && (!this._nameTextField.value.trim() || !this._valueTextField.value.trim())) { this._remove(); -else if (textField === this._valueTextField) +return; +} + +if (textField === this._valueTextField) this._renderValue(this._valueElement.textContent); } Modified: trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js (225838 => 225839) --- trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js 2017-12-13 04:47:23 UTC (rev 225838) +++ trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js 2017-12-13 06:19:57 U
[webkit-changes] [225838] trunk/LayoutTests/imported/w3c
Title: [225838] trunk/LayoutTests/imported/w3c Revision 225838 Author cdu...@apple.com Date 2017-12-12 20:47:23 -0800 (Tue, 12 Dec 2017) Log Message Re-sync imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html https://bugs.webkit.org/show_bug.cgi?id=180698 Reviewed by Alex Christensen. Re-sync imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html after https://github.com/w3c/web-platform-tests/pull/8622. * web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt: * web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js: Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (225837 => 225838) --- trunk/LayoutTests/imported/w3c/ChangeLog 2017-12-13 04:05:33 UTC (rev 225837) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2017-12-13 04:47:23 UTC (rev 225838) @@ -1,3 +1,16 @@ +2017-12-12 Chris Dumez + +Re-sync imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html +https://bugs.webkit.org/show_bug.cgi?id=180698 + +Reviewed by Alex Christensen. + +Re-sync imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https.html +after https://github.com/w3c/web-platform-tests/pull/8622. + +* web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt: +* web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js: + 2017-12-12 Youenn Fablet Fetch Event header filtering should apply in CORS mode only Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt (225837 => 225838) --- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt 2017-12-13 04:05:33 UTC (rev 225837) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt 2017-12-13 04:47:23 UTC (rev 225838) @@ -1,7 +1,7 @@ PASS Interfaces and attributes in ServiceWorkerGlobalScope PASS test setup (cache creation) -FAIL Event constructors assert_equals: Default FetchEvent.clientId should be null expected (object) null but got (string) "" +FAIL Event constructors assert_equals: Default FetchEvent.isReload should be false expected (boolean) false but got (undefined) undefined PASS xhr is not exposed PASS ServiceWorkerGlobalScope interface: existence and properties of interface object PASS ServiceWorkerGlobalScope interface object length Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js (225837 => 225838) --- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js 2017-12-13 04:05:33 UTC (rev 225837) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js 2017-12-13 04:47:23 UTC (rev 225838) @@ -55,7 +55,7 @@ false, 'Default FetchEvent.bubbles should be false'); assert_equals( new FetchEvent('FetchEvent', {request: req}).clientId, - null, 'Default FetchEvent.clientId should be null'); + '', 'Default FetchEvent.clientId should be the empty string'); assert_equals( new FetchEvent('FetchEvent', {request: req}).isReload, false, 'Default FetchEvent.isReload should be false'); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225837] trunk/Source/WebCore
Title: [225837] trunk/Source/WebCore Revision 225837 Author za...@apple.com Date 2017-12-12 20:05:33 -0800 (Tue, 12 Dec 2017) Log Message is reports the input type. https://bugs.webkit.org/show_bug.cgi?id=180721 Reviewed by Ryosuke Niwa. This patch ensures that is consistently returns true even when the input type changes from text to non-text (checkbox etc). * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::selectText): * dom/Element.h: (WebCore::Element::isTextFormControlElement const): (WebCore::Element::isTextField const): (WebCore::Element::isTextFormControl const): Deleted. * editing/Editor.cpp: (WebCore::Editor::selectionForCommand): (WebCore::Editor::setBaseWritingDirection): (WebCore::findFirstMarkable): * editing/FrameSelection.cpp: (WebCore::FrameSelection::selectAll): * html/FormController.cpp: (WebCore::FormController::formElementsCharacterCount const): * html/HTMLElement.cpp: (WebCore::HTMLElement::directionality const): * html/HTMLInputElement.h: * html/HTMLTextAreaElement.h: * html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::didEditInnerTextValue): (WebCore::HTMLTextFormControlElement::selectedText const): (WebCore::HTMLTextFormControlElement::setSelectionRange): (WebCore::HTMLTextFormControlElement::selectionStart const): (WebCore::HTMLTextFormControlElement::computeSelectionStart const): (WebCore::HTMLTextFormControlElement::selectionEnd const): (WebCore::HTMLTextFormControlElement::computeSelectionEnd const): (WebCore::HTMLTextFormControlElement::selectionDirection const): (WebCore::HTMLTextFormControlElement::computeSelectionDirection const): (WebCore::HTMLTextFormControlElement::selection const): (WebCore::HTMLTextFormControlElement::selectionChanged): (WebCore::HTMLTextFormControlElement::lastChangeWasUserEdit const): (WebCore::HTMLTextFormControlElement::setInnerTextValue): (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const): (WebCore::enclosingTextFormControl): * html/HTMLTextFormControlElement.h: (isType): * rendering/HitTestResult.cpp: (WebCore::HitTestResult::isOverTextInsideFormControlElement const): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/accessibility/AccessibilityObject.cpp trunk/Source/WebCore/cssjit/SelectorCompiler.cpp trunk/Source/WebCore/dom/Element.h trunk/Source/WebCore/editing/Editor.cpp trunk/Source/WebCore/editing/FrameSelection.cpp trunk/Source/WebCore/html/FormController.cpp trunk/Source/WebCore/html/HTMLElement.cpp trunk/Source/WebCore/html/HTMLInputElement.h trunk/Source/WebCore/html/HTMLTextAreaElement.h trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp trunk/Source/WebCore/html/HTMLTextFormControlElement.h trunk/Source/WebCore/rendering/HitTestResult.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (225836 => 225837) --- trunk/Source/WebCore/ChangeLog 2017-12-13 03:51:48 UTC (rev 225836) +++ trunk/Source/WebCore/ChangeLog 2017-12-13 04:05:33 UTC (rev 225837) @@ -1,3 +1,53 @@ +2017-12-12 Zalan Bujtas + +is reports the input type. +https://bugs.webkit.org/show_bug.cgi?id=180721 + + +Reviewed by Ryosuke Niwa. + +This patch ensures that is consistently returns true even +when the input type changes from text to non-text (checkbox etc). + +* accessibility/AccessibilityObject.cpp: +(WebCore::AccessibilityObject::selectText): +* dom/Element.h: +(WebCore::Element::isTextFormControlElement const): +(WebCore::Element::isTextField const): +(WebCore::Element::isTextFormControl const): Deleted. +* editing/Editor.cpp: +(WebCore::Editor::selectionForCommand): +(WebCore::Editor::setBaseWritingDirection): +(WebCore::findFirstMarkable): +* editing/FrameSelection.cpp: +(WebCore::FrameSelection::selectAll): +* html/FormController.cpp: +(WebCore::FormController::formElementsCharacterCount const): +* html/HTMLElement.cpp: +(WebCore::HTMLElement::directionality const): +* html/HTMLInputElement.h: +* html/HTMLTextAreaElement.h: +* html/HTMLTextFormControlElement.cpp: +(WebCore::HTMLTextFormControlElement::didEditInnerTextValue): +(WebCore::HTMLTextFormControlElement::selectedText const): +(WebCore::HTMLTextFormControlElement::setSelectionRange): +(WebCore::HTMLTextFormControlElement::selectionStart const): +(WebCore::HTMLTextFormControlElement::computeSelectionStart const): +(WebCore::HTMLTextFormControlElement::selectionEnd const): +(WebCore::HTMLTextFormControlElement::computeSelectionEnd const): +(WebCore::HTMLTextFormControlElement::selectionDirection const): +(WebCore::HTMLTextFormControlElement::computeSelectionDirection const): +(WebCore::HTMLTextFormControlElement::selection const): +(WebCore::HTMLTextFormControlElement::selectionChanged): +(WebCore::HTMLTextForm
[webkit-changes] [225836] trunk/Source/WebCore
Title: [225836] trunk/Source/WebCore Revision 225836 Author d...@apple.com Date 2017-12-12 19:51:48 -0800 (Tue, 12 Dec 2017) Log Message Unify some WebGL sources https://bugs.webkit.org/show_bug.cgi?id=180726 Rubber-stamped by Keith, weeks ago. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * html/canvas/WebGLRenderingContextBase.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Sources.txt trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (225835 => 225836) --- trunk/Source/WebCore/ChangeLog 2017-12-13 03:26:39 UTC (rev 225835) +++ trunk/Source/WebCore/ChangeLog 2017-12-13 03:51:48 UTC (rev 225836) @@ -1,3 +1,14 @@ +2017-12-12 Dean Jackson + +Unify some WebGL sources +https://bugs.webkit.org/show_bug.cgi?id=180726 + +Rubber-stamped by Keith, weeks ago. + +* Sources.txt: +* WebCore.xcodeproj/project.pbxproj: +* html/canvas/WebGLRenderingContextBase.cpp: + 2017-12-12 Michael Catanzaro Unreviewed, fix !ENABLE(MEDIA_STREAM) build after r225822 Modified: trunk/Source/WebCore/Sources.txt (225835 => 225836) --- trunk/Source/WebCore/Sources.txt 2017-12-13 03:26:39 UTC (rev 225835) +++ trunk/Source/WebCore/Sources.txt 2017-12-13 03:51:48 UTC (rev 225836) @@ -1054,6 +1054,7 @@ html/ValidationMessage.cpp html/WeekInputType.cpp +html/canvas/ANGLEInstancedArrays.cpp html/canvas/CanvasGradient.cpp html/canvas/CanvasPath.cpp html/canvas/CanvasPattern.cpp @@ -1062,9 +1063,48 @@ html/canvas/CanvasRenderingContext2DBase.cpp html/canvas/CanvasStyle.cpp html/canvas/ImageBitmapRenderingContext.cpp +html/canvas/OESElementIndexUint.cpp +html/canvas/OESStandardDerivatives.cpp +html/canvas/OESTextureFloat.cpp +html/canvas/OESTextureFloatLinear.cpp +html/canvas/OESTextureHalfFloat.cpp +html/canvas/OESTextureHalfFloatLinear.cpp +html/canvas/OESVertexArrayObject.cpp html/canvas/OffscreenCanvasRenderingContext2D.cpp html/canvas/Path2D.cpp html/canvas/PlaceholderRenderingContext.cpp +html/canvas/WebGL2RenderingContext.cpp +html/canvas/WebGLBuffer.cpp +html/canvas/WebGLCompressedTextureATC.cpp +html/canvas/WebGLCompressedTexturePVRTC.cpp +html/canvas/WebGLCompressedTextureS3TC.cpp +html/canvas/WebGLContextEvent.cpp +html/canvas/WebGLContextGroup.cpp +html/canvas/WebGLContextObject.cpp +html/canvas/WebGLDebugRendererInfo.cpp +html/canvas/WebGLDebugShaders.cpp +html/canvas/WebGLDepthTexture.cpp +html/canvas/WebGLDrawBuffers.cpp +html/canvas/WebGLExtension.cpp +html/canvas/WebGLFramebuffer.cpp +html/canvas/WebGLLoseContext.cpp +html/canvas/WebGLObject.cpp +html/canvas/WebGLProgram.cpp +html/canvas/WebGLQuery.cpp +html/canvas/WebGLRenderbuffer.cpp +html/canvas/WebGLRenderingContext.cpp +html/canvas/WebGLRenderingContextBase.cpp +html/canvas/WebGLSampler.cpp +html/canvas/WebGLShader.cpp +html/canvas/WebGLShaderPrecisionFormat.cpp +html/canvas/WebGLSharedObject.cpp +html/canvas/WebGLSync.cpp +html/canvas/WebGLTexture.cpp +html/canvas/WebGLTransformFeedback.cpp +html/canvas/WebGLUniformLocation.cpp +html/canvas/WebGLVertexArrayObject.cpp +html/canvas/WebGLVertexArrayObjectBase.cpp +html/canvas/WebGLVertexArrayObjectOES.cpp html/canvas/WebGPUBuffer.cpp html/canvas/WebGPUCommandBuffer.cpp html/canvas/WebGPUCommandQueue.cpp @@ -1498,6 +1538,7 @@ platform/encryptedmedia/CDMFactory.cpp +platform/graphics/ANGLEWebKitBridge.cpp platform/graphics/BitmapImage.cpp platform/graphics/Color.cpp platform/graphics/ColorUtilities.cpp Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (225835 => 225836) --- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2017-12-13 03:26:39 UTC (rev 225835) +++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2017-12-13 03:51:48 UTC (rev 225836) @@ -52,11 +52,8 @@ 00B9318813BA8DBA0035A948 /* XMLDocumentParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B9318213BA867F0035A948 /* XMLDocumentParser.h */; }; 00B9318C13BA8DCC0035A948 /* XMLDocumentParserScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B9318613BA867F0035A948 /* XMLDocumentParserScope.h */; }; 00C60E3F13D76D7E0092A275 /* MarkupTokenizerInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 00C60E3E13D76D7E0092A275 /* MarkupTokenizerInlines.h */; }; - 01D3CF8214BD0A3000FE9970 /* WebGLContextGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01D3CF7C14BD0A3000FE9970 /* WebGLContextGroup.cpp */; }; 01D3CF8314BD0A3000FE9970 /* WebGLContextGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D3CF7D14BD0A3000FE9970 /* WebGLContextGroup.h */; }; - 01D3CF8414BD0A3000FE9970 /* WebGLContextObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01D3CF7E14BD0A3000FE9970 /* WebGLContextObject.cpp */; }; 01D3CF8514BD0A3000FE9970 /* WebGLContextObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D3CF7F14BD0A3000FE9970 /* WebGLContextObject.h */; }; -
[webkit-changes] [225835] trunk/Source/JavaScriptCore
Title: [225835] trunk/Source/_javascript_Core Revision 225835 Author fpi...@apple.com Date 2017-12-12 19:26:39 -0800 (Tue, 12 Dec 2017) Log Message Structure, StructureRareData, and PropertyTable should be in IsoSubspaces https://bugs.webkit.org/show_bug.cgi?id=180732 Rubber stamped by Mark Lam. We should eventually move all fixed-size cells into IsoSubspaces. I don't know if they are scalable enough to support that, so we should do it carefully. * heap/MarkedSpace.cpp: * runtime/PropertyMapHashTable.h: * runtime/Structure.h: * runtime/StructureRareData.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/heap/MarkedSpace.cpp trunk/Source/_javascript_Core/runtime/PropertyMapHashTable.h trunk/Source/_javascript_Core/runtime/Structure.h trunk/Source/_javascript_Core/runtime/StructureRareData.h trunk/Source/_javascript_Core/runtime/VM.cpp trunk/Source/_javascript_Core/runtime/VM.h Diff Modified: trunk/Source/_javascript_Core/ChangeLog (225834 => 225835) --- trunk/Source/_javascript_Core/ChangeLog 2017-12-13 03:04:22 UTC (rev 225834) +++ trunk/Source/_javascript_Core/ChangeLog 2017-12-13 03:26:39 UTC (rev 225835) @@ -1,3 +1,21 @@ +2017-12-12 Filip Pizlo + +Structure, StructureRareData, and PropertyTable should be in IsoSubspaces +https://bugs.webkit.org/show_bug.cgi?id=180732 + +Rubber stamped by Mark Lam. + +We should eventually move all fixed-size cells into IsoSubspaces. I don't know if they are +scalable enough to support that, so we should do it carefully. + +* heap/MarkedSpace.cpp: +* runtime/PropertyMapHashTable.h: +* runtime/Structure.h: +* runtime/StructureRareData.h: +* runtime/VM.cpp: +(JSC::VM::VM): +* runtime/VM.h: + 2017-12-12 Saam Barati We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize Modified: trunk/Source/_javascript_Core/heap/MarkedSpace.cpp (225834 => 225835) --- trunk/Source/_javascript_Core/heap/MarkedSpace.cpp 2017-12-13 03:04:22 UTC (rev 225834) +++ trunk/Source/_javascript_Core/heap/MarkedSpace.cpp 2017-12-13 03:26:39 UTC (rev 225835) @@ -134,13 +134,10 @@ // Manually inject size classes for objects we know will be allocated in high volume. // FIXME: All of these things should have IsoSubspaces. // https://bugs.webkit.org/show_bug.cgi?id=179876 -add(sizeof(UnlinkedFunctionExecutable)); add(sizeof(UnlinkedFunctionCodeBlock)); add(sizeof(FunctionCodeBlock)); add(sizeof(JSString)); add(sizeof(JSFunction)); -add(sizeof(PropertyTable)); -add(sizeof(Structure)); { // Sort and deduplicate. Modified: trunk/Source/_javascript_Core/runtime/PropertyMapHashTable.h (225834 => 225835) --- trunk/Source/_javascript_Core/runtime/PropertyMapHashTable.h 2017-12-13 03:04:22 UTC (rev 225834) +++ trunk/Source/_javascript_Core/runtime/PropertyMapHashTable.h 2017-12-13 03:26:39 UTC (rev 225835) @@ -121,6 +121,12 @@ typedef JSCell Base; static const unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal; +template +static IsoSubspace* subspaceFor(VM& vm) +{ +return &vm.propertyTableSpace; +} + static const bool needsDestruction = true; static void destroy(JSCell*); Modified: trunk/Source/_javascript_Core/runtime/Structure.h (225834 => 225835) --- trunk/Source/_javascript_Core/runtime/Structure.h 2017-12-13 03:04:22 UTC (rev 225834) +++ trunk/Source/_javascript_Core/runtime/Structure.h 2017-12-13 03:26:39 UTC (rev 225835) @@ -134,6 +134,12 @@ static Structure* create(PolyProtoTag, VM&, JSGlobalObject*, JSObject* prototype, const TypeInfo&, const ClassInfo*, IndexingType = NonArray, unsigned inlineCapacity = 0); ~Structure(); + +template +static IsoSubspace* subspaceFor(VM& vm) +{ +return &vm.structureSpace; +} protected: void finishCreation(VM& vm) Modified: trunk/Source/_javascript_Core/runtime/StructureRareData.h (225834 => 225835) --- trunk/Source/_javascript_Core/runtime/StructureRareData.h 2017-12-13 03:04:22 UTC (rev 225834) +++ trunk/Source/_javascript_Core/runtime/StructureRareData.h 2017-12-13 03:26:39 UTC (rev 225835) @@ -43,6 +43,12 @@ typedef JSCell Base; static const unsigned StructureFlags = Base::StructureFlags | StructureIsImmortal; +template +static IsoSubspace* subspaceFor(VM& vm) +{ +return &vm.structureRareDataSpace; +} + static StructureRareData* create(VM&, Structure*); static const bool needsDestruction = true; Modified: trunk/Source/_javascript_Core/runtime/VM.cpp (225834 => 225835) --- trunk/Source/_javascript_Core/runtime/VM.cpp 2017-12-13 03:04:22 UTC (rev 225834) +++ trunk/Source/_java
[webkit-changes] [225834] trunk
Title: [225834] trunk Revision 225834 Author sbar...@apple.com Date 2017-12-12 19:04:22 -0800 (Tue, 12 Dec 2017) Log Message We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize https://bugs.webkit.org/show_bug.cgi?id=180725 Reviewed by Michael Saboff. JSTests: * stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added. (f1): (f2): (let.o2.valueOf): Source/_javascript_Core: * dfg/DFGClobberize.h: (JSC::DFG::clobberize): * dfg/DFGPreciseLocalClobberize.h: (JSC::DFG::PreciseLocalClobberizeAdaptor::readTop): Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/dfg/DFGClobberize.h trunk/Source/_javascript_Core/dfg/DFGPreciseLocalClobberize.h Added Paths trunk/JSTests/stress/model-effects-properly-of-spread-over-phantom-create-rest.js Diff Modified: trunk/JSTests/ChangeLog (225833 => 225834) --- trunk/JSTests/ChangeLog 2017-12-13 02:52:43 UTC (rev 225833) +++ trunk/JSTests/ChangeLog 2017-12-13 03:04:22 UTC (rev 225834) @@ -1,3 +1,16 @@ +2017-12-12 Saam Barati + +We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize +https://bugs.webkit.org/show_bug.cgi?id=180725 + + +Reviewed by Michael Saboff. + +* stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added. +(f1): +(f2): +(let.o2.valueOf): + 2017-12-12 Yusuke Suzuki [JSC] Implement optimized WeakMap and WeakSet Added: trunk/JSTests/stress/model-effects-properly-of-spread-over-phantom-create-rest.js (0 => 225834) --- trunk/JSTests/stress/model-effects-properly-of-spread-over-phantom-create-rest.js (rev 0) +++ trunk/JSTests/stress/model-effects-properly-of-spread-over-phantom-create-rest.js 2017-12-13 03:04:22 UTC (rev 225834) @@ -0,0 +1,25 @@ +"use strict"; +function f1(o) { +let result = []; +for (let key of Object.getOwnPropertyNames(o)) { +result.push(key) +} +return result; +} +function f2(a1, a2, ...args) { +let r = f1(a1); +let index = r[a2 % r.length]; +a1[index](...args) +} +let theObj = {}; +let o2 = { +valueOf: function (a, b) { +a === 42 +b === theObj +try {} catch (e) {} +} +}; +for (let i = 0; i < 1e5; ++i) { +for (let j = 0; j < 100; j++) {} +f2(o2, 897989, 42, theObj); +} Modified: trunk/Source/_javascript_Core/ChangeLog (225833 => 225834) --- trunk/Source/_javascript_Core/ChangeLog 2017-12-13 02:52:43 UTC (rev 225833) +++ trunk/Source/_javascript_Core/ChangeLog 2017-12-13 03:04:22 UTC (rev 225834) @@ -1,3 +1,16 @@ +2017-12-12 Saam Barati + +We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize +https://bugs.webkit.org/show_bug.cgi?id=180725 + + +Reviewed by Michael Saboff. + +* dfg/DFGClobberize.h: +(JSC::DFG::clobberize): +* dfg/DFGPreciseLocalClobberize.h: +(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop): + 2017-12-12 Yusuke Suzuki [JSC] Implement optimized WeakMap and WeakSet Modified: trunk/Source/_javascript_Core/dfg/DFGClobberize.h (225833 => 225834) --- trunk/Source/_javascript_Core/dfg/DFGClobberize.h 2017-12-13 02:52:43 UTC (rev 225833) +++ trunk/Source/_javascript_Core/dfg/DFGClobberize.h 2017-12-13 03:04:22 UTC (rev 225834) @@ -1312,6 +1312,9 @@ } case Spread: { +if (node->child1()->op() == PhantomCreateRest) +read(Stack); + if (node->child1().useKind() == ArrayUse) { // FIXME: We can probably CSE these together, but we need to construct the right rules // to prove that nobody writes to child1() in between two Spreads: https://bugs.webkit.org/show_bug.cgi?id=164531 Modified: trunk/Source/_javascript_Core/dfg/DFGPreciseLocalClobberize.h (225833 => 225834) --- trunk/Source/_javascript_Core/dfg/DFGPreciseLocalClobberize.h 2017-12-13 02:52:43 UTC (rev 225833) +++ trunk/Source/_javascript_Core/dfg/DFGPreciseLocalClobberize.h 2017-12-13 03:04:22 UTC (rev 225834) @@ -120,8 +120,8 @@ m_read(VirtualRegister(inlineCallFrame->stackOffset + CallFrameSlot::argumentCount)); }; -auto readPhantomSpreadNode = [&] (Node* spread) { -ASSERT(spread->op() == PhantomSpread); +auto readSpreadOfPhantomCreateRest = [&] (Node* spread) { +ASSERT(spread->op() == Spread || spread->op() == PhantomSpread); ASSERT(spread->child1()->op() == PhantomCreateRest); InlineCallFrame* inlineCallFrame = spread->child1()->origin.semantic.inlineCallFrame; unsigned numberOfArgumentsToSkip = spread->child1()->numberOfArgumentsToSkip(); @@ -135,7 +135,7 @@ if (bitVector->get(i)) { Node* child = m_graph.varArgChild(arrayWithSpread, i).node(); if (child-
[webkit-changes] [225833] trunk
Title: [225833] trunk Revision 225833 Author dba...@webkit.org Date 2017-12-12 18:52:43 -0800 (Tue, 12 Dec 2017) Log Message [WK] Add modern WebKit SPI to set auto fill button type and query if the auto fill button is enabled https://bugs.webkit.org/show_bug.cgi?id=180686 Reviewed by Alex Christensen. Source/WebKit: * WebKit.xcodeproj/project.pbxproj: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: (-[WKWebProcessPlugInNodeHandle isHTMLInputElementAutoFillButtonEnabled]): (toAutoFillButtonType): (-[WKWebProcessPlugInNodeHandle setHTMLInputElementAutoFillButtonEnabledWithButtonType:]): * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandleInternal.h: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: Tools: * TestWebKitAPI/Tests/WebKitCocoa/ClickAutoFillButton.mm: (-[ClickAutoFillButton webProcessPlugIn:didCreateBrowserContextController:]): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandleInternal.h trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ClickAutoFillButton.mm Added Paths trunk/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h Diff Modified: trunk/Source/WebKit/ChangeLog (225832 => 225833) --- trunk/Source/WebKit/ChangeLog 2017-12-13 02:49:00 UTC (rev 225832) +++ trunk/Source/WebKit/ChangeLog 2017-12-13 02:52:43 UTC (rev 225833) @@ -1,3 +1,18 @@ +2017-12-12 Daniel Bates + +[WK] Add modern WebKit SPI to set auto fill button type and query if the auto fill button is enabled +https://bugs.webkit.org/show_bug.cgi?id=180686 + +Reviewed by Alex Christensen. + +* WebKit.xcodeproj/project.pbxproj: +* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: +(-[WKWebProcessPlugInNodeHandle isHTMLInputElementAutoFillButtonEnabled]): +(toAutoFillButtonType): +(-[WKWebProcessPlugInNodeHandle setHTMLInputElementAutoFillButtonEnabledWithButtonType:]): +* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandleInternal.h: +* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: + 2017-12-12 John Wilander Storage Access API: Implement frame-specific access in the network storage session layer Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (225832 => 225833) --- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-12-13 02:49:00 UTC (rev 225832) +++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-12-13 02:52:43 UTC (rev 225833) @@ -2025,6 +2025,7 @@ CE1A0BD51A48E6C60054EF74 /* ManagedConfigurationSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1A0BCF1A48E6C60054EF74 /* ManagedConfigurationSPI.h */; }; CE1A0BD61A48E6C60054EF74 /* TCCSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1A0BD01A48E6C60054EF74 /* TCCSPI.h */; }; CE1A0BD71A48E6C60054EF74 /* TextInputSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1A0BD11A48E6C60054EF74 /* TextInputSPI.h */; }; + CEC8F9CB1FDF5870002635E7 /* WKWebProcessPlugInNodeHandlePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC8F9CA1FDF5870002635E7 /* WKWebProcessPlugInNodeHandlePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; CEDA12E2152CD1AE00D9E08D /* WebAlternativeTextClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CEDA12DF152CCAE800D9E08D /* WebAlternativeTextClient.cpp */; }; CEDA12E3152CD1B300D9E08D /* WebAlternativeTextClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CEDA12DE152CCAE800D9E08D /* WebAlternativeTextClient.h */; }; CEE4AE2B1A5DCF430002F49B /* UIKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE4AE2A1A5DCF430002F49B /* UIKitSPI.h */; }; @@ -4487,6 +4488,7 @@ CE1A0BCF1A48E6C60054EF74 /* ManagedConfigurationSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ManagedConfigurationSPI.h; sourceTree = ""; }; CE1A0BD01A48E6C60054EF74 /* TCCSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCCSPI.h; sourceTree = ""; }; CE1A0BD11A48E6C60054EF74 /* TextInputSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextInputSPI.h; sourceTree = ""; }; + CEC8F9CA1FDF5870002635E7 /* WKWebProcessPlugInNodeHandlePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInNodeHandlePrivate.h; sourceTree = ""; }; CEDA12DE152CCAE800D9E08D /* WebAlternativeTextClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAlternativeTextClient.h; sourceTree = ""; }; CEDA12DF152CCAE800D9E08D /* WebAlternativeTextClient.cpp */ = {isa = PBXFileReference;
[webkit-changes] [225831] trunk/Source
Title: [225831] trunk/Source Revision 225831 Author fpi...@apple.com Date 2017-12-12 18:35:54 -0800 (Tue, 12 Dec 2017) Log Message It should be possible to flag a cell for unconditional finalization https://bugs.webkit.org/show_bug.cgi?id=180636 Reviewed by Saam Barati. Source/_javascript_Core: UnconditionalFinalizers were annoying - you had to allocate them and you had to manage a global linked list - but they had some nice properties: - You only did the hardest work (creating the UnconditionalFinalizer) on first GC where you survived and needed it. -> Just needing it wasn't enough. -> Just surviving wasn't enough. The new API based on IsoSubspaces meant that just surviving was enough to cause unconditional finalizer logic to be invoked. I think that's not great. InferredType got around this by making InferredStructure a cell, but this was a gross hack. For one, it meant that InferredStructure would survive during the GC in which its finalizer obviated the need for its existence. It's not really an idiom I want us to repeat because it sounds like the sort of thing that turns out to be subtly broken. We really need to have a way of indicating when you have entered into the state that requires your unconditional finalizer to be invoked. Basically, we want to be able to track the set of objects that need unconditional finalizers. Only the subset of that set that overlaps with the set of marked objects needs to be accurate. The easiest way to do this is a hierarchy of bitvectors: one to say which MarkedBlocks have objects that have unconditional finalizers, and another level to say which atoms within a MarkedBlock have unconditional finalizers. This change introduces IsoCellSet, which couples itself to the MarkedAllocator of some IsoSubspace to allow maintaining a set of objects (well, cells - you could do this with auxiliaries) that belong to that IsoSubspace. It'll have undefined behavior if you try to add/remove/contains an object that isn't in that IsoSubspace. For objects in that subspace, you can add/remove/contains and forEachMarkedCell. The cost of each IsoCellSet is at worst about 0.8% increase in size to every object in the subspace that the set is attached to. So, it makes sense to have a handful per subspace max. This change only needs one per subspace, but you could imagine more if we do this for WeakReferenceHarvester. To absolutely minimize the possibility that this incurs costs, the add/remove/contains functions can be used from any thread so long as forEachMarkedCell isn't running. This means that InferredType only needs to add itself to the set during visitChildren. Thus, it needs to both survive and need it for the hardest work to take place. The work of adding does involve a gnarly load chain that ends in a CAS: load block handle from block, load index, load segment, load bitvector, load bit -> if not set, then CAS. That's five dependent loads! However, it's perfect for running in parallel since the only write operations are to widely dispersed cache lines that contain the bits underlying the set. The best part is how forEachMarkedCell works. That skips blocks that don't have any objects that need unconditional finalizers, and only touches the memory of marked objects that have the unconditional finalizer bit set. It will walk those objects in roughly address order. I previously found that this speeds up walking over a lot of objects when I made similar changes for DOM GC (calling visitAdditionalChildren via forEachMarkedCell rather than by walking a HashSet). This change makes InferredStructure be a malloc object again, but now it's in an IsoHeap. My expectation for this change is that it's perf-neutral. Long-term, it gives us a path forward for eliminating UnconditionalFinalizer and WeakReferenceHarvester while using IsoSubspace in more places. * _javascript_Core.xcodeproj/project.pbxproj: * Sources.txt: * heap/AtomIndices.h: Added. (JSC::AtomIndices::AtomIndices): * heap/Heap.cpp: (JSC::Heap::finalizeUnconditionalFinalizers): * heap/Heap.h: * heap/IsoCellSet.cpp: Added. (JSC::IsoCellSet::IsoCellSet): (JSC::IsoCellSet::~IsoCellSet): (JSC::IsoCellSet::addSlow): (JSC::IsoCellSet::didResizeBits): (JSC::IsoCellSet::didRemoveBlock): (JSC::IsoCellSet::sweepToFreeList): * heap/IsoCellSet.h: Added. * heap/IsoCellSetInlines.h: Added. (JSC::IsoCellSet::add): (JSC::IsoCellSet::remove): (JSC::IsoCellSet::contains const): (JSC::IsoCellSet::forEachMarkedCell): * heap/IsoSubspace.cpp: (JSC::IsoSubspace::didResizeBits): (JSC::IsoSubspace::didRemoveBlock): (JSC::IsoSubspace::didBeginSweepingToFreeList): * heap/IsoSubspace.h: * heap/MarkedAllocator.cpp: (JSC::MarkedAllocator::addBlock): (JSC::MarkedAllocator::removeBlock): * heap/MarkedAllocator.h: * heap/MarkedAllocatorInlines.h: * heap/MarkedBlock.cpp: (JSC::MarkedBlock::Handle::sweep): (JSC::MarkedBlock::Handle::isEmpty): Deleted. * heap/MarkedBlock.
[webkit-changes] [225830] trunk/Source/WebCore
Title: [225830] trunk/Source/WebCore Revision 225830 Author mcatanz...@igalia.com Date 2017-12-12 17:57:45 -0800 (Tue, 12 Dec 2017) Log Message Unreviewed, fix !ENABLE(MEDIA_STREAM) build after r225822 https://bugs.webkit.org/show_bug.cgi?id=180666 * html/HTMLMediaElement.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLMediaElement.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (225829 => 225830) --- trunk/Source/WebCore/ChangeLog 2017-12-13 01:54:26 UTC (rev 225829) +++ trunk/Source/WebCore/ChangeLog 2017-12-13 01:57:45 UTC (rev 225830) @@ -1,3 +1,11 @@ +2017-12-12 Michael Catanzaro + +Unreviewed, fix !ENABLE(MEDIA_STREAM) build after r225822 +https://bugs.webkit.org/show_bug.cgi?id=180666 + + +* html/HTMLMediaElement.cpp: + 2017-12-12 Alex Christensen Fix possible out-of-bounds read in protocolIsInHTTPFamily Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (225829 => 225830) --- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-12-13 01:54:26 UTC (rev 225829) +++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-12-13 01:57:45 UTC (rev 225830) @@ -6613,11 +6613,13 @@ m_player->setShouldDisableSleep(shouldDisableSleep == SleepType::Display); } +#if ENABLE(MEDIA_STREAM) static inline bool isRemoteMediaStreamVideoTrack(RefPtr& item) { auto* track = item.get(); return track->privateTrack().type() == RealtimeMediaSource::Type::Video && !track->isCaptureTrack() && !track->isCanvas(); } +#endif HTMLMediaElement::SleepType HTMLMediaElement::shouldDisableSleep() const { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225829] trunk
Title: [225829] trunk Revision 225829 Author achristen...@apple.com Date 2017-12-12 17:54:26 -0800 (Tue, 12 Dec 2017) Log Message Fix possible out-of-bounds read in protocolIsInHTTPFamily https://bugs.webkit.org/show_bug.cgi?id=180688 Reviewed by Daniel Bates. Source/WebCore: It wouldn't read very far out of bounds, and it would just change a bool return value, but it's still out of bounds. Covered by an API test that ASAN wouldn't like. * platform/URL.cpp: (WebCore::protocolIsInHTTPFamily): Check bounds before reading a string. Tools: * TestWebKitAPI/Tests/WebCore/URL.cpp: (TestWebKitAPI::TEST_F): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/URL.cpp trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebCore/URL.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (225828 => 225829) --- trunk/Source/WebCore/ChangeLog 2017-12-13 01:39:36 UTC (rev 225828) +++ trunk/Source/WebCore/ChangeLog 2017-12-13 01:54:26 UTC (rev 225829) @@ -1,3 +1,17 @@ +2017-12-12 Alex Christensen + +Fix possible out-of-bounds read in protocolIsInHTTPFamily +https://bugs.webkit.org/show_bug.cgi?id=180688 + +Reviewed by Daniel Bates. + +It wouldn't read very far out of bounds, and it would just change a bool return value, +but it's still out of bounds. Covered by an API test that ASAN wouldn't like. + +* platform/URL.cpp: +(WebCore::protocolIsInHTTPFamily): +Check bounds before reading a string. + 2017-12-12 Youenn Fablet getUserMedia is resolving before the document knows it is capturing Modified: trunk/Source/WebCore/platform/URL.cpp (225828 => 225829) --- trunk/Source/WebCore/platform/URL.cpp 2017-12-13 01:39:36 UTC (rev 225828) +++ trunk/Source/WebCore/platform/URL.cpp 2017-12-13 01:54:26 UTC (rev 225829) @@ -873,12 +873,14 @@ bool protocolIsInHTTPFamily(const String& url) { +auto length = url.length(); // Do the comparison without making a new string object. -return isASCIIAlphaCaselessEqual(url[0], 'h') +return length >= 5 +&& isASCIIAlphaCaselessEqual(url[0], 'h') && isASCIIAlphaCaselessEqual(url[1], 't') && isASCIIAlphaCaselessEqual(url[2], 't') && isASCIIAlphaCaselessEqual(url[3], 'p') -&& (url[4] == ':' || (isASCIIAlphaCaselessEqual(url[4], 's') && url[5] == ':')); +&& (url[4] == ':' || (isASCIIAlphaCaselessEqual(url[4], 's') && length >= 6 && url[5] == ':')); } const URL& blankURL() Modified: trunk/Tools/ChangeLog (225828 => 225829) --- trunk/Tools/ChangeLog 2017-12-13 01:39:36 UTC (rev 225828) +++ trunk/Tools/ChangeLog 2017-12-13 01:54:26 UTC (rev 225829) @@ -1,3 +1,13 @@ +2017-12-12 Alex Christensen + +Fix possible out-of-bounds read in protocolIsInHTTPFamily +https://bugs.webkit.org/show_bug.cgi?id=180688 + +Reviewed by Daniel Bates. + +* TestWebKitAPI/Tests/WebCore/URL.cpp: +(TestWebKitAPI::TEST_F): + 2017-12-12 JF Bastien makeString: support more integral types Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/URL.cpp (225828 => 225829) --- trunk/Tools/TestWebKitAPI/Tests/WebCore/URL.cpp 2017-12-13 01:39:36 UTC (rev 225828) +++ trunk/Tools/TestWebKitAPI/Tests/WebCore/URL.cpp 2017-12-13 01:54:26 UTC (rev 225829) @@ -213,4 +213,22 @@ EXPECT_EQ(url.string(), url5.string()); } +TEST_F(URLTest, ProtocolIsInHTTPFamily) +{ +EXPECT_FALSE(protocolIsInHTTPFamily({})); +EXPECT_FALSE(protocolIsInHTTPFamily("")); +EXPECT_FALSE(protocolIsInHTTPFamily("a")); +EXPECT_FALSE(protocolIsInHTTPFamily("ab")); +EXPECT_FALSE(protocolIsInHTTPFamily("abc")); +EXPECT_FALSE(protocolIsInHTTPFamily("abcd")); +EXPECT_FALSE(protocolIsInHTTPFamily("abcde")); +EXPECT_FALSE(protocolIsInHTTPFamily("abcdef")); +EXPECT_FALSE(protocolIsInHTTPFamily("abcdefg")); +EXPECT_TRUE(protocolIsInHTTPFamily("http:")); +EXPECT_FALSE(protocolIsInHTTPFamily("http")); +EXPECT_TRUE(protocolIsInHTTPFamily("https:")); +EXPECT_FALSE(protocolIsInHTTPFamily("https")); +EXPECT_TRUE(protocolIsInHTTPFamily("https://!@#$%^&*()")); +} + } // namespace TestWebKitAPI ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225828] trunk
Title: [225828] trunk Revision 225828 Author commit-qu...@webkit.org Date 2017-12-12 17:39:36 -0800 (Tue, 12 Dec 2017) Log Message getUserMedia is resolving before the document knows it is capturing https://bugs.webkit.org/show_bug.cgi?id=180699 Patch by Youenn Fablet on 2017-12-12 Reviewed by Eric Carlson. Source/WebCore: Covered by updated test. Ensure the document state is capturing when getUserMedia promise is resolved by doing the following: - Promise is resolved when MediaStream is producing data. - MediaStream asks Document to update its state when MediaStream state is updated. Introduce PendingActivationMediaStream for waiting for the MediaStream to produce data. * Modules/mediastream/MediaStream.cpp: (WebCore::MediaStream::statusDidChange): * Modules/mediastream/UserMediaRequest.cpp: (WebCore::UserMediaRequest::allow): (WebCore::UserMediaRequest::contextDestroyed): (WebCore::UserMediaRequest::PendingActivationMediaStream::PendingActivationMediaStream): (WebCore::UserMediaRequest::PendingActivationMediaStream::~PendingActivationMediaStream): (WebCore::UserMediaRequest::PendingActivationMediaStream::characteristicsChanged): (WebCore::UserMediaRequest::mediaStreamIsReady): * Modules/mediastream/UserMediaRequest.h: (WebCore::UserMediaRequest::PendingActivationMediaStream::create): * platform/mediastream/RealtimeMediaSourceCenter.h: * WebCore/WebCore.xcodeproj/project.pbxproj: LayoutTests: * webrtc/video.html: Adding a check that document is capturing within getUserMedia promise resolution callback. Adding this check without the changes to WebCore makes the test flaky, sometimes the promise resolution happens after document state is updated. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/webrtc/video.html trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h Diff Modified: trunk/LayoutTests/ChangeLog (225827 => 225828) --- trunk/LayoutTests/ChangeLog 2017-12-13 01:20:06 UTC (rev 225827) +++ trunk/LayoutTests/ChangeLog 2017-12-13 01:39:36 UTC (rev 225828) @@ -1,3 +1,14 @@ +2017-12-12 Youenn Fablet + +getUserMedia is resolving before the document knows it is capturing +https://bugs.webkit.org/show_bug.cgi?id=180699 + +Reviewed by Eric Carlson. + +* webrtc/video.html: Adding a check that document is capturing within getUserMedia promise resolution callback. +Adding this check without the changes to WebCore makes the test flaky, sometimes the promise resolution happens +after document state is updated. + 2017-12-12 John Wilander Storage Access API: Implement frame-specific access in the network storage session layer Modified: trunk/LayoutTests/webrtc/video.html (225827 => 225828) --- trunk/LayoutTests/webrtc/video.html 2017-12-13 01:20:06 UTC (rev 225827) +++ trunk/LayoutTests/webrtc/video.html 2017-12-13 01:39:36 UTC (rev 225828) @@ -44,6 +44,8 @@ testRunner.setUserMediaPermission(true); return navigator.mediaDevices.getUserMedia({video: {advanced: [{width:{min:1280}}, {height:{min:720} } ]}}).then((stream) => { +if (window.internals) +assert_true(internals.pageMediaState().includes('HasActiveVideoCaptureDevice'), "Unexpected HasActiveVideoCaptureDevice"); return new Promise((resolve, reject) => { createConnections((firstConnection) => { var track = stream.getVideoTracks()[0]; Modified: trunk/Source/WebCore/ChangeLog (225827 => 225828) --- trunk/Source/WebCore/ChangeLog 2017-12-13 01:20:06 UTC (rev 225827) +++ trunk/Source/WebCore/ChangeLog 2017-12-13 01:39:36 UTC (rev 225828) @@ -1,3 +1,32 @@ +2017-12-12 Youenn Fablet + +getUserMedia is resolving before the document knows it is capturing +https://bugs.webkit.org/show_bug.cgi?id=180699 + +Reviewed by Eric Carlson. + +Covered by updated test. + +Ensure the document state is capturing when getUserMedia promise is resolved by doing the following: +- Promise is resolved when MediaStream is producing data. +- MediaStream asks Document to update its state when MediaStream state is updated. + +Introduce PendingActivationMediaStream for waiting for the MediaStream to produce data. + +* Modules/mediastream/MediaStream.cpp: +(WebCore::MediaStream::statusDidChange): +* Modules/mediastream/UserMediaRequest.cpp: +(WebCore::UserMediaRequest::allow): +(WebCore::UserMediaRequest::contextDestroyed): +(WebCore::UserMediaRequest::PendingActivationMediaStream::PendingActivationMediaStream): +(WebCore::UserMediaRequest::PendingActivationMediaStream::~PendingActivationMediaStream): +(WebC
[webkit-changes] [225827] trunk
Title: [225827] trunk Revision 225827 Author wilan...@apple.com Date 2017-12-12 17:20:06 -0800 (Tue, 12 Dec 2017) Log Message Storage Access API: Implement frame-specific access in the network storage session layer https://bugs.webkit.org/show_bug.cgi?id=180679 Reviewed by Alex Christensen. Source/WebCore: Tests: http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame.html This changes adds frameID and pageID to what is communicated for storage access and also stored in the network process' table of partitioning exceptions. * dom/Document.cpp: (WebCore::Document::hasStorageAccess): Now makes use of the new m_hasFrameSpecificStorageAccess to check if access has already been granted to this document's domain and frame. (WebCore::Document::requestStorageAccess): Now submits frameID and pageID in the request call and sets m_hasFrameSpecificStorageAccess upon granted access callback. * dom/Document.h: * page/ChromeClient.h: * platform/network/NetworkStorageSession.h: * platform/network/cf/NetworkStorageSessionCFNet.cpp: (WebCore::NetworkStorageSession::cookieStoragePartition const): (WebCore::NetworkStorageSession::setPrevalentDomainsToPartitionOrBlockCookies): (WebCore::NetworkStorageSession::isStorageAccessGranted const): (WebCore::NetworkStorageSession::setStorageAccessGranted): Now makes use of frameID and pageID for partitioning exceptions. * platform/network/mac/CookieJarMac.mm: (WebCore::cookiesInPartitionForURL): (WebCore::setCookiesFromDOM): Submits std::nullopt for frameID and pageID. Follow-up work tracked in https://bugs.webkit.org/show_bug.cgi?id=180682. * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::applySniffingPoliciesAndStoragePartitionIfNeeded): Submits std::nullopt for frameID and pageID. Follow-up work tracked in https://bugs.webkit.org/show_bug.cgi?id=180682. Source/WebKit: This changes adds frameID and pageID to what is communicated for storage access and also stored in the network process' table of partitioning exceptions. * NetworkProcess/NetworkDataTask.cpp: (WebKit::NetworkDataTask::create): Now stores frameID and pageID for the task for easy retrieval in the HSTS checks. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::updateStorageAccessForPrevalentDomains): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): These two methods now submit frameID and pageID to the partitioning query call. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): These two methods now submit frameID and pageID to the partitioning query call. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::updateStorageAccessForPrevalentDomains): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestStorageAccess): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): * UIProcess/WebResourceLoadStatisticsStore.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::updateStorageAccessForPrevalentDomainsHandler): (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): (WebKit::WebsiteDataStore::requestStorageAccess): * UIProcess/WebsiteData/WebsiteDataStore.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::requestStorageAccess): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::requestStorageAccess): * WebProcess/WebPage/WebPage.h: LayoutTests: Note that the expected results for request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html accepts the missing part where document.cookie is still partitioned after storage access has been granted. Follow-up work tracked in https://bugs.webkit.org/show_bug.cgi?id=180682. * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt: Added. * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxe
[webkit-changes] [225826] trunk/Source/WebKit
Title: [225826] trunk/Source/WebKit Revision 225826 Author achristen...@apple.com Date 2017-12-12 17:18:20 -0800 (Tue, 12 Dec 2017) Log Message Modernize WebsiteDataStoreParameters and SandboxExtension::Handle decoding https://bugs.webkit.org/show_bug.cgi?id=180621 Reviewed by Youenn Fablet. * NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::decode): * NetworkProcess/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::decode): * Shared/LoadParameters.cpp: (WebKit::LoadParameters::decode): * Shared/SandboxExtension.h: (WebKit::decode): (WebKit::SandboxExtension::Handle::decode): Deleted. * Shared/Storage/StorageProcessCreationParameters.cpp: (WebKit::StorageProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::decode): * Shared/WebsiteDataStoreParameters.cpp: (WebKit::WebsiteDataStoreParameters::decode): * Shared/WebsiteDataStoreParameters.h: * Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtension::Handle::decode): (WebKit::SandboxExtension::HandleArray::HandleArray): (WebKit::SandboxExtension::HandleArray::encode const): (WebKit::SandboxExtension::HandleArray::decode): (WebKit::SandboxExtension::SandboxExtension): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp trunk/Source/WebKit/Shared/LoadParameters.cpp trunk/Source/WebKit/Shared/SandboxExtension.h trunk/Source/WebKit/Shared/Storage/StorageProcessCreationParameters.cpp trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm Diff Modified: trunk/Source/WebKit/ChangeLog (225825 => 225826) --- trunk/Source/WebKit/ChangeLog 2017-12-13 01:13:30 UTC (rev 225825) +++ trunk/Source/WebKit/ChangeLog 2017-12-13 01:18:20 UTC (rev 225826) @@ -1,3 +1,33 @@ +2017-12-12 Alex Christensen + +Modernize WebsiteDataStoreParameters and SandboxExtension::Handle decoding +https://bugs.webkit.org/show_bug.cgi?id=180621 + +Reviewed by Youenn Fablet. + +* NetworkProcess/NetworkProcessCreationParameters.cpp: +(WebKit::NetworkProcessCreationParameters::decode): +* NetworkProcess/NetworkResourceLoadParameters.cpp: +(WebKit::NetworkResourceLoadParameters::decode): +* Shared/LoadParameters.cpp: +(WebKit::LoadParameters::decode): +* Shared/SandboxExtension.h: +(WebKit::decode): +(WebKit::SandboxExtension::Handle::decode): Deleted. +* Shared/Storage/StorageProcessCreationParameters.cpp: +(WebKit::StorageProcessCreationParameters::decode): +* Shared/WebProcessCreationParameters.cpp: +(WebKit::WebProcessCreationParameters::decode): +* Shared/WebsiteDataStoreParameters.cpp: +(WebKit::WebsiteDataStoreParameters::decode): +* Shared/WebsiteDataStoreParameters.h: +* Shared/mac/SandboxExtensionMac.mm: +(WebKit::SandboxExtension::Handle::decode): +(WebKit::SandboxExtension::HandleArray::HandleArray): +(WebKit::SandboxExtension::HandleArray::encode const): +(WebKit::SandboxExtension::HandleArray::decode): +(WebKit::SandboxExtension::SandboxExtension): + 2017-12-12 John Wilander Dispatch resource load statistics telemetry on the main thread Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (225825 => 225826) --- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825) +++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826) @@ -124,12 +124,22 @@ return false; if (!decoder.decode(result.cacheStoragePerOriginQuota)) return false; -if (!decoder.decode(result.cacheStorageDirectoryExtensionHandle)) + +std::optional cacheStorageDirectoryExtensionHandle; +decoder >> cacheStorageDirectoryExtensionHandle; +if (!cacheStorageDirectoryExtensionHandle) return false; +result.cacheStorageDirectoryExtensionHandle = WTFMove(*cacheStorageDirectoryExtensionHandle); + if (!decoder.decode(result.diskCacheDirectory)) return false; -if (!decoder.decode(result.diskCacheDirectoryExtensionHandle)) + +std::optional diskCacheDirectoryExtensionHandle; +decoder >> diskCacheDirectoryExtensionHandle; +if (!diskCacheDirectoryExtensionHandle) return false; +result.diskCacheDirectoryExtensionHandle = WTFMove(*diskCacheDirectoryExtensionHandle); + if (!decoder.decode(result.shouldEnableNetworkCache)) return false; if (!decoder.decode(result.shouldEnableNetworkCacheEfficacyLogging)) @@ -143,12 +153
[webkit-changes] [225825] trunk/Source
Title: [225825] trunk/Source Revision 225825 Author jmarc...@apple.com Date 2017-12-12 17:13:30 -0800 (Tue, 12 Dec 2017) Log Message Versioning. Modified Paths trunk/Source/_javascript_Core/Configurations/Version.xcconfig trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig trunk/Source/WebCore/Configurations/Version.xcconfig trunk/Source/WebCore/PAL/Configurations/Version.xcconfig trunk/Source/WebInspectorUI/Configurations/Version.xcconfig trunk/Source/WebKit/Configurations/Version.xcconfig trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: trunk/Source/_javascript_Core/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/_javascript_Core/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/_javascript_Core/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -23,7 +23,7 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -23,7 +23,7 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: trunk/Source/WebCore/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/WebCore/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/WebCore/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -23,7 +23,7 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: trunk/Source/WebCore/PAL/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/WebCore/PAL/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/WebCore/PAL/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -23,7 +23,7 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: trunk/Source/WebInspectorUI/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/WebInspectorUI/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/WebInspectorUI/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -1,6 +1,6 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: trunk/Source/WebKit/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/WebKit/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/WebKit/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -23,7 +23,7 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig (225824 => 225825) --- trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2017-12-13 00:50:34 UTC (rev 225824) +++ trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2017-12-13 01:13:30 UTC (rev 225825) @@ -23,7 +23,7 @@ MAJOR_VERSION = 605; MINOR_VERSION = 1; -TINY_VERSION = 17; +TINY_VERSION = 18; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225824] trunk
Title: [225824] trunk Revision 225824 Author jfbast...@apple.com Date 2017-12-12 16:50:34 -0800 (Tue, 12 Dec 2017) Log Message makeString: support more integral types https://bugs.webkit.org/show_bug.cgi?id=180720 Reviewed by Sam Weinig. Source/WTF: Only some integral types worked. Add more types by using template magic. While we're here, also use the same magic for floating-point types in the theoretical future where short float or long double matter. The core of the magic is a second, defaulted, template parameter. It's declared in Forward.h (as void), and then in classes where we want to enable_if we use it (in C++ speak we create a partial class template specialization), otherwise we leave it as void. Also clean up some constructors which were being way too verbose in stating that they were declarations for this template specialization right here, when really we already knew that. * wtf/Forward.h: * wtf/text/StringConcatenate.h: (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length): Deleted. (WTF::StringTypeAdapter::is8Bit): Deleted. (WTF::StringTypeAdapter::writeTo const): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length const): Deleted. (WTF::StringTypeAdapter::is8Bit const): Deleted. (WTF::StringTypeAdapter::writeTo const): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter>::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter>::length const): Deleted. (WTF::StringTypeAdapter>::is8Bit const): Deleted. (WTF::StringTypeAdapter>::writeTo const): Deleted. (WTF::StringTypeAdapter>::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length const): Deleted. (WTF::StringTypeAdapter::is8Bit const): Deleted. (WTF::StringTypeAdapter::writeTo const): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. * wtf/text/StringConcatenateNumbers.h: (WTF::StringTypeAdapter::StringTypeAdapter): (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length const): Deleted. (WTF::StringTypeAdapter::is8Bit const): Deleted. (WTF::StringTypeAdapter::writeTo const): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length const): Deleted. (WTF::StringTypeAdapter::is8Bit const): Deleted. (WTF::StringTypeAdapter::writeTo const): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length const): Deleted. (WTF::StringTypeAdapter::is8Bit const): Deleted. (WTF::StringTypeAdapter::writeTo const): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. * wtf/text/StringView.h: (WTF::StringTypeAdapter::StringTypeAdapter): Deleted. (WTF::StringTypeAdapter::length): Deleted. (WTF::StringTypeAdapter::is8Bit): Deleted. (WTF::StringTypeAdapter::writeTo): Deleted. (WTF::StringTypeAdapter::toString const): Deleted. Tools: Test a few more types can be made string'd. * TestWebKitAPI/Tests/WTF/StringConcatenate.cpp: (TestWebKitAPI::TEST): Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/Forward.h trunk/Source/WTF/wtf/text/StringConcatenate.h trunk/Source/WTF/wtf/text/StringConcatenateNumbers.h trunk/Source/WTF/wtf/text/StringView.h trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WTF/StringConcatenate.cpp Diff Modified: trunk/Source/WTF/ChangeLog (225823 => 225824) --- trunk/Source/WTF/ChangeLog 2017-12-13 00:43:07 UTC (rev 225823) +++ trunk/Source/WTF/ChangeLog 2017-12-13 00:50:34 UTC (rev 225824) @@ -1,3 +1,76 @@ +2017-12-12 JF Bastien + +makeString: support more integral types +https://bugs.webkit.org/show_bug.cgi?id=180720 + +Reviewed by Sam Weinig. + +Only some integral types worked. Add more types by using template +magic. While we're here, also use the same magic for +floating-point types in the theoretical future where short float +or long double matter. + +The core of the magic is a second, defaulted, template +parameter. It's declared in Forward.h (as void), and then in +classes where we want to enable_if we use it (in C++ speak we +create a partial class template specialization), otherwise we +leave it as void. + +Also clean up some constructors which were being way too verbose +in stating that they were declarations for this template +specialization right here, when really we already knew that. + +* wtf/Forward.h: +* wtf/text/StringConcatenate.h: +(WTF::StringTypeAdapter::StringTypeAdapter): Deleted. +(W
[webkit-changes] [225823] tags/Safari-605.1.17/Source/JavaScriptCore
Title: [225823] tags/Safari-605.1.17/Source/_javascript_Core Revision 225823 Author jmarc...@apple.com Date 2017-12-12 16:43:07 -0800 (Tue, 12 Dec 2017) Log Message Revert r225695. rdar://problem/35914716 Modified Paths tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.cpp tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.h tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExpInlines.h tags/Safari-605.1.17/Source/_javascript_Core/testRegExp.cpp tags/Safari-605.1.17/Source/_javascript_Core/yarr/Yarr.h tags/Safari-605.1.17/Source/_javascript_Core/yarr/YarrInterpreter.cpp tags/Safari-605.1.17/Source/_javascript_Core/yarr/YarrJIT.cpp tags/Safari-605.1.17/Source/_javascript_Core/yarr/YarrJIT.h tags/Safari-605.1.17/Source/_javascript_Core/yarr/YarrPattern.cpp tags/Safari-605.1.17/Source/_javascript_Core/yarr/YarrPattern.h Diff Modified: tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog (225822 => 225823) --- tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog 2017-12-13 00:40:08 UTC (rev 225822) +++ tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog 2017-12-13 00:43:07 UTC (rev 225823) @@ -1,5 +1,9 @@ 2017-12-12 Jason Marcell +Revert r225695. rdar://problem/35914716 + +2017-12-12 Jason Marcell + Cherry-pick r225768. rdar://problem/34657871 2017-12-11 Saam Barati Modified: tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.cpp (225822 => 225823) --- tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.cpp 2017-12-13 00:40:08 UTC (rev 225822) +++ tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.cpp 2017-12-13 00:43:07 UTC (rev 225823) @@ -271,30 +271,6 @@ return vm.regExpCache()->lookupOrCreate(patternString, flags); } - -static std::unique_ptr byteCodeCompilePattern(VM* vm, Yarr::YarrPattern& pattern) -{ -return Yarr::byteCompile(pattern, &vm->m_regExpAllocator, &vm->m_regExpAllocatorLock); -} - -void RegExp::byteCodeCompileIfNecessary(VM* vm) -{ -if (m_regExpBytecode) -return; - -Yarr::YarrPattern pattern(m_patternString, m_flags, &m_constructionError, vm->stackLimit()); -if (m_constructionError) { -RELEASE_ASSERT_NOT_REACHED(); -#if COMPILER_QUIRK(CONSIDERS_UNREACHABLE_CODE) -m_state = ParseError; -return; -#endif -} -ASSERT(m_numSubpatterns == pattern.m_numSubpatterns); - -m_regExpBytecode = byteCodeCompilePattern(vm, pattern); -} - void RegExp::compile(VM* vm, Yarr::YarrCharSize charSize) { ConcurrentJSLocker locker(m_lock); @@ -327,11 +303,8 @@ UNUSED_PARAM(charSize); #endif -if (Options::dumpCompiledRegExpPatterns()) -dataLog("Can't JIT this regular _expression_: \"", m_patternString, "\"\n"); - m_state = ByteCode; -m_regExpBytecode = byteCodeCompilePattern(vm, pattern); +m_regExpBytecode = Yarr::byteCompile(pattern, &vm->m_regExpAllocator, &vm->m_regExpAllocatorLock); } int RegExp::match(VM& vm, const String& s, unsigned startOffset, Vector& ovector) @@ -383,11 +356,8 @@ UNUSED_PARAM(charSize); #endif -if (Options::dumpCompiledRegExpPatterns()) -dataLog("Can't JIT this regular _expression_: \"", m_patternString, "\"\n"); - m_state = ByteCode; -m_regExpBytecode = byteCodeCompilePattern(vm, pattern); +m_regExpBytecode = Yarr::byteCompile(pattern, &vm->m_regExpAllocator, &vm->m_regExpAllocatorLock); } MatchResult RegExp::match(VM& vm, const String& s, unsigned startOffset) Modified: tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.h (225822 => 225823) --- tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.h 2017-12-13 00:40:08 UTC (rev 225822) +++ tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExp.h 2017-12-13 00:43:07 UTC (rev 225823) @@ -140,8 +140,6 @@ RegExpState m_state; -void byteCodeCompileIfNecessary(VM*); - void compile(VM*, Yarr::YarrCharSize); void compileIfNecessary(VM&, Yarr::YarrCharSize); Modified: tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExpInlines.h (225822 => 225823) --- tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExpInlines.h 2017-12-13 00:40:08 UTC (rev 225822) +++ tags/Safari-605.1.17/Source/_javascript_Core/runtime/RegExpInlines.h 2017-12-13 00:43:07 UTC (rev 225823) @@ -110,25 +110,11 @@ int result; #if ENABLE(YARR_JIT) -#ifdef JIT_ALL_PARENS_EXPRESSIONS -char patternContextBuffer[patternContextBufferSize]; -#define EXTRA_JIT_PARAMS , patternContextBuffer, patternContextBufferSize -#else -#define EXTRA_JIT_PARAMS -#endif - if (m_state == JITCode) { if (s.is8Bit()) -result = m_regExpJITCode.execute(s.characters8(), startOffset, s.length(), offsetVector EXTRA_JIT_PARAMS).start; +result = m_regExpJITCode.execute(s.characters8(), startOffset, s.length(), offsetVector).start; else -result = m_regExpJITCode.execute(s
[webkit-changes] [225822] trunk/Source/WebCore
Title: [225822] trunk/Source/WebCore Revision 225822 Author commit-qu...@webkit.org Date 2017-12-12 16:40:08 -0800 (Tue, 12 Dec 2017) Log Message Playing webrtc video tracks should prevent from display to got to sleep https://bugs.webkit.org/show_bug.cgi?id=180666 Patch by Youenn Fablet on 2017-12-12 Reviewed by Darin Adler. Done through manual testing by checking screen assertions taken on webrtc sites. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::shouldDisableSleep const): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLMediaElement.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (225821 => 225822) --- trunk/Source/WebCore/ChangeLog 2017-12-13 00:32:57 UTC (rev 225821) +++ trunk/Source/WebCore/ChangeLog 2017-12-13 00:40:08 UTC (rev 225822) @@ -1,3 +1,15 @@ +2017-12-12 Youenn Fablet + +Playing webrtc video tracks should prevent from display to got to sleep +https://bugs.webkit.org/show_bug.cgi?id=180666 + +Reviewed by Darin Adler. + +Done through manual testing by checking screen assertions taken on webrtc sites. + +* html/HTMLMediaElement.cpp: +(WebCore::HTMLMediaElement::shouldDisableSleep const): + 2017-12-12 Dean Jackson Add CanvasRenderingContext2DBase class and OffscreenCanvasRenderingContext2D Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (225821 => 225822) --- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-12-13 00:32:57 UTC (rev 225821) +++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-12-13 00:40:08 UTC (rev 225822) @@ -6613,6 +6613,12 @@ m_player->setShouldDisableSleep(shouldDisableSleep == SleepType::Display); } +static inline bool isRemoteMediaStreamVideoTrack(RefPtr& item) +{ +auto* track = item.get(); +return track->privateTrack().type() == RealtimeMediaSource::Type::Video && !track->isCaptureTrack() && !track->isCanvas(); +} + HTMLMediaElement::SleepType HTMLMediaElement::shouldDisableSleep() const { // See https://bugs.webkit.org/show_bug.cgi?id=180197 before removing this guard. @@ -6628,15 +6634,14 @@ return SleepType::System; #endif +bool shouldBeAbleToSleep = !hasVideo() || !hasAudio(); #if ENABLE(MEDIA_STREAM) -if (m_mediaStreamSrcObject) { -// Do not block system from sleeping if element is only rendering local (capture) sources. -if (WTF::allOf(m_mediaStreamSrcObject->getTracks(), [] (RefPtr& track) { return track && track->isCaptureTrack(); })) -return SleepType::None; -} +// Remote media stream video tracks may have their corresponding audio tracks being played outside of the media element. Let's ensure to not IDLE the screen in that case. +// FIXME: We should check that audio is being/to be played. Ideally, we would come up with a media stream agnostic heuristisc. +shouldBeAbleToSleep = shouldBeAbleToSleep && !(m_mediaStreamSrcObject && WTF::anyOf(m_mediaStreamSrcObject->getTracks(), isRemoteMediaStreamVideoTrack)); #endif -if (!hasVideo() || !hasAudio()) +if (shouldBeAbleToSleep) return SleepType::None; if (m_elementIsHidden) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225821] trunk
Title: [225821] trunk Revision 225821 Author sbar...@apple.com Date 2017-12-12 16:32:57 -0800 (Tue, 12 Dec 2017) Log Message ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices https://bugs.webkit.org/show_bug.cgi?id=180723 Reviewed by JF Bastien. JSTests: * stress/get-my-argument-by-val-constant-folding.js: Added. (test): (catch): Source/_javascript_Core: * dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants): Modified Paths trunk/JSTests/ChangeLog trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp Added Paths trunk/JSTests/stress/get-my-argument-by-val-constant-folding.js Diff Modified: trunk/JSTests/ChangeLog (225820 => 225821) --- trunk/JSTests/ChangeLog 2017-12-13 00:31:15 UTC (rev 225820) +++ trunk/JSTests/ChangeLog 2017-12-13 00:32:57 UTC (rev 225821) @@ -1,3 +1,15 @@ +2017-12-12 Saam Barati + +ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices +https://bugs.webkit.org/show_bug.cgi?id=180723 + + +Reviewed by JF Bastien. + +* stress/get-my-argument-by-val-constant-folding.js: Added. +(test): +(catch): + 2017-12-12 Caio Lima [ESNext][BigInt] Implement BigInt literals and JSBigInt Added: trunk/JSTests/stress/get-my-argument-by-val-constant-folding.js (0 => 225821) --- trunk/JSTests/stress/get-my-argument-by-val-constant-folding.js (rev 0) +++ trunk/JSTests/stress/get-my-argument-by-val-constant-folding.js 2017-12-13 00:32:57 UTC (rev 225821) @@ -0,0 +1,14 @@ +function test() { + for (var i = 0; i < 100; ++i) { +try { + (function () { +return arguments[-9]; + })(42); +} catch (e) {} + } +} +noInline(test); + +try { + test(42); +} catch (e) {} Modified: trunk/Source/_javascript_Core/ChangeLog (225820 => 225821) --- trunk/Source/_javascript_Core/ChangeLog 2017-12-13 00:31:15 UTC (rev 225820) +++ trunk/Source/_javascript_Core/ChangeLog 2017-12-13 00:32:57 UTC (rev 225821) @@ -1,3 +1,14 @@ +2017-12-12 Saam Barati + +ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices +https://bugs.webkit.org/show_bug.cgi?id=180723 + + +Reviewed by JF Bastien. + +* dfg/DFGConstantFoldingPhase.cpp: +(JSC::DFG::ConstantFoldingPhase::foldConstants): + 2017-12-04 Brian Burg Web Inspector: modernize InjectedScript a bit Modified: trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp (225820 => 225821) --- trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp 2017-12-13 00:31:15 UTC (rev 225820) +++ trunk/Source/_javascript_Core/dfg/DFGConstantFoldingPhase.cpp 2017-12-13 00:32:57 UTC (rev 225821) @@ -342,11 +342,15 @@ case GetMyArgumentByVal: case GetMyArgumentByValOutOfBounds: { JSValue indexValue = m_state.forNode(node->child2()).value(); -if (!indexValue || !indexValue.isInt32()) +if (!indexValue || !indexValue.isUInt32()) break; -unsigned index = indexValue.asUInt32() + node->numberOfArgumentsToSkip(); +Checked checkedIndex = indexValue.asUInt32(); +checkedIndex += node->numberOfArgumentsToSkip(); +if (checkedIndex.hasOverflowed()) +break; +unsigned index = checkedIndex.unsafeGet(); Node* arguments = node->child1().node(); InlineCallFrame* inlineCallFrame = arguments->origin.semantic.inlineCallFrame; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225820] trunk
Title: [225820] trunk Revision 225820 Author bb...@apple.com Date 2017-12-12 16:31:15 -0800 (Tue, 12 Dec 2017) Log Message Web Inspector: support async setup() and async teardown() in AsyncTestSuite https://bugs.webkit.org/show_bug.cgi?id=180626 Reviewed by Timothy Hatcher. Source/WebInspectorUI: This can make some code simpler by removing Promise-related boilerplate. I'm splitting this patch from the new use-site in the interest of making it easier to review. * UserInterface/Test/TestSuite.js: (AsyncTestSuite.prototype.runTestCases): (AsyncTestSuite): LayoutTests: Update tests to cover async setup() and async teardown() in the case of success, runtime failure, and explicit failure. * inspector/unit-tests/async-test-suite-expected.txt: * inspector/unit-tests/async-test-suite.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/unit-tests/async-test-suite-expected.txt trunk/LayoutTests/inspector/unit-tests/async-test-suite.html trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Test/TestSuite.js Diff Modified: trunk/LayoutTests/ChangeLog (225819 => 225820) --- trunk/LayoutTests/ChangeLog 2017-12-13 00:11:45 UTC (rev 225819) +++ trunk/LayoutTests/ChangeLog 2017-12-13 00:31:15 UTC (rev 225820) @@ -1,5 +1,18 @@ 2017-12-12 Brian Burg +Web Inspector: support async setup() and async teardown() in AsyncTestSuite +https://bugs.webkit.org/show_bug.cgi?id=180626 + +Reviewed by Timothy Hatcher. + +Update tests to cover async setup() and async teardown() in the case +of success, runtime failure, and explicit failure. + +* inspector/unit-tests/async-test-suite-expected.txt: +* inspector/unit-tests/async-test-suite.html: + +2017-12-12 Brian Burg + Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown function https://bugs.webkit.org/show_bug.cgi?id=180717 Modified: trunk/LayoutTests/inspector/unit-tests/async-test-suite-expected.txt (225819 => 225820) --- trunk/LayoutTests/inspector/unit-tests/async-test-suite-expected.txt 2017-12-13 00:11:45 UTC (rev 225819) +++ trunk/LayoutTests/inspector/unit-tests/async-test-suite-expected.txt 2017-12-13 00:31:15 UTC (rev 225820) @@ -105,3 +105,48 @@ PASS: Promise did evaluate the async test function. PASS: Rejected value should be a runtime exception. +== Running test suite: AsyncTestSuite.AsyncSetupAndAsyncTeardown +-- Running test setup. +-- Running test case: TestWithSetupAndTeardown +PASS: Test should see side effects of running setup() action. +-- Running test teardown. +PASS: Teardown should see side effects of running setup() action. + +-- Running test case: TestRunningAfterTeardown +PASS: Test should see side effects of previous test's teardown() action. +PASS: Promise from asyncSetupAndAsyncTeardownTestSuite.runTestCases() should resolve. + +== Running test suite: AsyncTestSuite.AsyncSetupExplicitFailure +-- Running test case: AsyncFunctionFailure +!! EXCEPTION: AsyncFunctionFailure Exception Message +Stack Trace: (suppressed) +PASS: Promise from asyncSetupExplicitFailureTestSuite.runTestCases() should reject. +PASS: Promise did evaluate the async setup function. +PASS: Rejected value should be thrown exception. + +== Running test suite: AsyncTestSuite.AsyncSetupRuntimeFailure +-- Running test setup. +!! EXCEPTION: undefined is not an object (evaluating '({}).x.x') +Stack Trace: (suppressed) +PASS: Promise from asyncSetupRuntimeFailureTestSuite.runTestCases() should reject. +PASS: Promise did evaluate the async setup function. +PASS: Rejected value should be a runtime exception. + +== Running test suite: AsyncTestSuite.AsyncTeardownExplicitFailure +-- Running test case: AsyncFunctionFailure +-- Running test teardown. +!! EXCEPTION: AsyncFunctionFailure Exception Message +Stack Trace: (suppressed) +PASS: Promise from asyncTeardownExplicitFailureTestSuite.runTestCases() should reject. +PASS: Promise did evaluate the async teardown function. +PASS: Rejected value should be thrown exception. + +== Running test suite: AsyncTestSuite.AsyncTeardownRuntimeFailure +-- Running test case: AsyncFunctionFailure +-- Running test teardown. +!! EXCEPTION: undefined is not an object (evaluating '({}).x.x') +Stack Trace: (suppressed) +PASS: Promise from asyncTeardownRuntimeFailureTestSuite.runTestCases() should reject. +PASS: Promise did evaluate the async teardown function. +PASS: Rejected value should be a runtime exception. + Modified: trunk/LayoutTests/inspector/unit-tests/async-test-suite.html (225819 => 225820) --- trunk/LayoutTests/inspector/unit-tests/async-test-suite.html 2017-12-13 00:11:45 UTC (rev 225819) +++ trunk/LayoutTests/inspector/unit-tests/async-test-suite.html 2017-12-13 00:31:15 UTC (rev 225820) @@ -290,7 +290,7 @@ }, teardown: (resolve, reject) => { ProtocolTest.assert(false, "Teardown action should not execute if its setup action threw an
[webkit-changes] [225819] trunk/Tools
Title: [225819] trunk/Tools Revision 225819 Author commit-qu...@webkit.org Date 2017-12-12 16:11:45 -0800 (Tue, 12 Dec 2017) Log Message Flakiness dashboard: Make GTK and WPE builds inherit expectations from WK2 https://bugs.webkit.org/show_bug.cgi?id=178782 Patch by Alicia Boya GarcÃa on 2017-12-12 Reviewed by Michael Catanzaro. * TestResultServer/static-dashboards/flakiness_dashboard.js: Modified Paths trunk/Tools/ChangeLog trunk/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js Diff Modified: trunk/Tools/ChangeLog (225818 => 225819) --- trunk/Tools/ChangeLog 2017-12-12 23:54:34 UTC (rev 225818) +++ trunk/Tools/ChangeLog 2017-12-13 00:11:45 UTC (rev 225819) @@ -1,3 +1,12 @@ +2017-12-12 Alicia Boya GarcÃa + +Flakiness dashboard: Make GTK and WPE builds inherit expectations from WK2 +https://bugs.webkit.org/show_bug.cgi?id=178782 + +Reviewed by Michael Catanzaro. + +* TestResultServer/static-dashboards/flakiness_dashboard.js: + 2017-12-12 Jonathan Bedard MobileMiniBrowser using the wrong toolchain Modified: trunk/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js (225818 => 225819) --- trunk/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js 2017-12-12 23:54:34 UTC (rev 225818) +++ trunk/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js 2017-12-13 00:11:45 UTC (rev 225819) @@ -75,12 +75,7 @@ 'GTK': { expectationsDirectory: 'gtk', subPlatforms: { -'LINUX': { -subPlatforms: { -'WK1': { fallbackPlatforms: ['GTK'] }, -'WK2': { fallbackPlatforms: ['GTK', 'WK2'], expectationsDirectory: 'gtk-wk2' } -} -} +'LINUX': { fallbackPlatforms: ['GTK', 'WK2'] } } }, 'WK2': { @@ -90,7 +85,7 @@ 'WPE': { expectationsDirectory: 'wpe', subPlatforms: { -'LINUX': { fallbackPlatforms: ['WPE'] } +'LINUX': { fallbackPlatforms: ['WPE', 'WK2'] } } } }; @@ -350,6 +345,11 @@ if (string.contains(builderNameUpperCase, 'WIN XP')) return 'APPLE_WIN_XP'; +if (string.contains(builderNameUpperCase, 'GTK LINUX')) +return 'GTK_LINUX'; +if (string.contains(builderNameUpperCase, 'WPE LINUX')) +return 'WPE_LINUX'; + if (string.contains(builderNameUpperCase, 'HIGHSIERRA')) return determineWKPlatform(builderNameUpperCase, 'APPLE_MAC_HIGHSIERRA'); if (string.contains(builderNameUpperCase, 'SIERRA')) @@ -362,10 +362,6 @@ return determineWKPlatform(builderNameUpperCase, 'APPLE_MAC_LION'); if (string.contains(builderNameUpperCase, ' IOS ') && string.contains(builderNameUpperCase, 'SIMULATOR')) return determineWKPlatform(builderNameUpperCase, 'APPLE_IOS_SIMULATOR'); -if (string.contains(builderNameUpperCase, 'GTK LINUX')) -return determineWKPlatform(builderNameUpperCase, 'GTK_LINUX'); -if (string.contains(builderNameUpperCase, 'WPE LINUX')) -return determineWKPlatform(builderNameUpperCase, 'WPE_LINUX'); } function platformAndBuildType(builderName) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225818] trunk/Source/WebKit
Title: [225818] trunk/Source/WebKit Revision 225818 Author wilan...@apple.com Date 2017-12-12 15:54:34 -0800 (Tue, 12 Dec 2017) Log Message Dispatch resource load statistics telemetry on the main thread https://bugs.webkit.org/show_bug.cgi?id=180602 Reviewed by Brent Fulgham. * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: (WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit): Now switches to the main thread for the telemetry submission through a webpage proxy. The reason is that the webpage we use may go away while we're still using it. This kind of telemetry isn't associated with a specific webpage but the infrastructure requires a webpage proxy. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsTelemetry.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (225817 => 225818) --- trunk/Source/WebKit/ChangeLog 2017-12-12 23:41:26 UTC (rev 225817) +++ trunk/Source/WebKit/ChangeLog 2017-12-12 23:54:34 UTC (rev 225818) @@ -1,3 +1,19 @@ +2017-12-12 John Wilander + +Dispatch resource load statistics telemetry on the main thread +https://bugs.webkit.org/show_bug.cgi?id=180602 + + +Reviewed by Brent Fulgham. + +* UIProcess/WebResourceLoadStatisticsTelemetry.cpp: +(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit): +Now switches to the main thread for the telemetry submission +through a webpage proxy. The reason is that the webpage we +use may go away while we're still using it. This kind of +telemetry isn't associated with a specific webpage but the +infrastructure requires a webpage proxy. + 2017-12-12 Myles C. Maxfield IPC code doesn't understand NSDictionaries with non-NSString keys Modified: trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsTelemetry.cpp (225817 => 225818) --- trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsTelemetry.cpp 2017-12-12 23:41:26 UTC (rev 225817) +++ trunk/Source/WebKit/UIProcess/WebResourceLoadStatisticsTelemetry.cpp 2017-12-12 23:54:34 UTC (rev 225818) @@ -246,28 +246,31 @@ sortedPrevalentResourcesWithoutUserInteraction.uncheckedAppend(prevalentResource); } -auto webPageProxy = nonEphemeralWebPageProxy(); -if (!webPageProxy) { -if (notifyPagesWhenTelemetryWasCaptured) -notifyPages(0, 0, 0); -return; -} - -if (notifyPagesWhenTelemetryWasCaptured) { -notifyPages(sortedPrevalentResources, sortedPrevalentResourcesWithoutUserInteraction, prevalentResourcesDaysSinceUserInteraction.size()); -// The notify pages function is for testing so we don't need to do an actual submission. -return; -} - -webPageProxy->logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey(), ASCIILiteral("totalNumberOfPrevalentResources"), sortedPrevalentResources.size(), significantFiguresForLoggedValues, ShouldSample::No); -webPageProxy->logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey(), ASCIILiteral("totalNumberOfPrevalentResourcesWithUserInteraction"), prevalentResourcesDaysSinceUserInteraction.size(), significantFiguresForLoggedValues, ShouldSample::No); - -if (prevalentResourcesDaysSinceUserInteraction.size() > 0) -webPageProxy->logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey(), ASCIILiteral("topPrevalentResourceWithUserInteractionDaysSinceUserInteraction"), prevalentResourcesDaysSinceUserInteraction[0], significantFiguresForLoggedValues, ShouldSample::No); -if (prevalentResourcesDaysSinceUserInteraction.size() > 1) -webPageProxy->logDiagnosticMessageWithValue(DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey(), ASCIILiteral("medianPrevalentResourcesWithUserInteractionDaysSinceUserInteraction"), median(prevalentResourcesDaysSinceUserInteraction), significantFiguresForLoggedValues, ShouldSample::No); - -submitTopLists(sortedPrevalentResources, sortedPrevalentResourcesWithoutUserInteraction, *webPageProxy); +// Dispatch on the main thread to make sure the WebPageProxy we're using doesn't go away. +RunLoop::main().dispatch([sortedPrevalentResources = WTFMove(sortedPrevalentResources), sortedPrevalentResourcesWithoutUserInteraction = WTFMove(sortedPrevalentResourcesWithoutUserInteraction), prevalentResourcesDaysSinceUserInteraction = WTFMove(prevalentResourcesDaysSinceUserInteraction)] () { +auto webPageProxy = nonEphemeralWebPageProxy(); +if (!webPageProxy) { +if (notifyPagesWhenTelemetryWasCaptured) +notifyPages(0, 0, 0); +return; +} + +if (notifyPagesWhenTelemetryWasCaptured) { +notifyPages(sortedPrevalentResources, sortedPrevalentResourcesWithoutUserInteraction, prevalentResourcesDaysSinceUser
[webkit-changes] [225815] trunk/Tools
Title: [225815] trunk/Tools Revision 225815 Author jbed...@apple.com Date 2017-12-12 15:13:37 -0800 (Tue, 12 Dec 2017) Log Message MobileMiniBrowser using the wrong toolchain https://bugs.webkit.org/show_bug.cgi?id=180716 Reviewed by Tim Horton. Move Debug/Release configurations from xcodeproj into Base.xcconfig. * MobileMiniBrowser/Configurations/Base.xcconfig: * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: Modified Paths trunk/Tools/ChangeLog trunk/Tools/MobileMiniBrowser/Configurations/Base.xcconfig trunk/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj Diff Modified: trunk/Tools/ChangeLog (225814 => 225815) --- trunk/Tools/ChangeLog 2017-12-12 23:13:04 UTC (rev 225814) +++ trunk/Tools/ChangeLog 2017-12-12 23:13:37 UTC (rev 225815) @@ -1,3 +1,16 @@ +2017-12-12 Jonathan Bedard + +MobileMiniBrowser using the wrong toolchain +https://bugs.webkit.org/show_bug.cgi?id=180716 + + +Reviewed by Tim Horton. + +Move Debug/Release configurations from xcodeproj into Base.xcconfig. + +* MobileMiniBrowser/Configurations/Base.xcconfig: +* MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: + 2017-12-12 Youenn Fablet Update ContentFiltering.LazilyLoadPlatformFrameworks test to account for libwebrtc using VideoProcessing framework Modified: trunk/Tools/MobileMiniBrowser/Configurations/Base.xcconfig (225814 => 225815) --- trunk/Tools/MobileMiniBrowser/Configurations/Base.xcconfig 2017-12-12 23:13:04 UTC (rev 225814) +++ trunk/Tools/MobileMiniBrowser/Configurations/Base.xcconfig 2017-12-12 23:13:37 UTC (rev 225815) @@ -28,13 +28,33 @@ USE_INTERNAL_SDK_Debug = $(HAVE_INTERNAL_SDK); USE_INTERNAL_SDK_Release = $(HAVE_INTERNAL_SDK); +ALWAYS_SEARCH_USER_PATHS = NO; +CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = gnu++14; CLANG_CXX_LIBRARY = libc++; +CLANG_ENABLE_MODULES = YES; +CLANG_ENABLE_OBJC_ARC = YES; +CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; +CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CXX0X_EXTENSIONS = NO; +CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; +CLANG_WARN_DOCUMENTATION_COMMENTS = YES; +CLANG_WARN_EMPTY_BODY = YES; +CLANG_WARN_ENUM_CONVERSION = YES; +CLANG_WARN_INFINITE_RECURSION = YES; +CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; +CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; +CLANG_WARN_SUSPICIOUS_MOVES = YES; +CLANG_WARN_UNREACHABLE_CODE = YES; +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; +COPY_PHASE_STRIP = NO; +DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; +ENABLE_NS_ASSERTIONS = NO; +ENABLE_STRICT_OBJC_MSGSEND = YES; HEADER_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR)/usr/local/include; DEBUG_INFORMATION_FORMAT = dwarf-with-dsym; PREBINDING = NO @@ -41,18 +61,23 @@ GCC_C_LANGUAGE_STANDARD = gnu99 GCC_ENABLE_CPP_EXCEPTIONS = NO; GCC_ENABLE_CPP_RTTI = NO; +GCC_NO_COMMON_BLOCKS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES GCC_TREAT_WARNINGS_AS_ERRORS = YES -GCC_VERSION = com.apple.compilers.llvm.clang.1_0; -GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO +GCC_VERSION = com.apple.compilers.llvm.clang.1_0 +GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; +GCC_WARN_UNDECLARED_SELECTOR = YES; +GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES GCC_WARN_UNUSED_VARIABLE = YES GCC_WARN_64_TO_32_BIT_CONVERSION[arch=arm64*] = NO; GCC_WARN_64_TO_32_BIT_CONVERSION[arch=x86_64] = NO; +MTL_ENABLE_DEBUG_INFO = NO; +VALIDATE_PRODUCT = YES; WARNING_CFLAGS = -Wall -W -Wno-unused-parameter -Wundef SUPPORTED_PLATFORMS = iphoneos iphonesimulator; -SDKROOT = iphonesimulator; +SDKROOT = macosx.internal; OTHER_CFLAGS = $(ASAN_OTHER_CFLAGS); OTHER_CPLUSPLUSFLAGS = $(ASAN_OTHER_CPLUSPLUSFLAGS); Modified: trunk/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj (225814 => 225815) --- trunk/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj 2017-12-12 23:13:04 UTC (rev 225814) +++ trunk/Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj 2017-12-12 23:13:37 UTC (rev 225815) @@ -125,11 +125,11 @@ isa = PBXGroup; children = ( CD4DEEE11D78C6F400625986 /* Configurations */, +CD1DAFC01D70E12D00017CF0 /* Frameworks */, CD1DAF941D709E3600017CF0 /* MobileMiniBrowser App */, CD498B3C1D76348000681FA7 /* MobileMiniBrowser Framework */, CD1DAFAE1D709E3600017CF0 /* MobileMiniBrowserUITests */, CD1DAF931D709E3600017CF0 /* Products */, -CD1DAFC01D70E12D00017CF0 /* Frameworks */, ); sourceTree = ""; }; @@ -137,8 +137,8 @@ isa = PBXGroup; children = ( CD1DAF921D709E3600017CF0 /* MobileMiniBrowser.app */, +CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */, CD1DAFAB1D709E3600017CF0 /* MobileMiniBrowserUITests.xctest */, -CD498B3B1D76348000681FA7 /* MobileMiniBrowser.framework */,
[webkit-changes] [225814] trunk
Title: [225814] trunk Revision 225814 Author bb...@apple.com Date 2017-12-12 15:13:04 -0800 (Tue, 12 Dec 2017) Log Message Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown function https://bugs.webkit.org/show_bug.cgi?id=180717 Reviewed by Devin Rousso. Source/WebInspectorUI: * UserInterface/Test/TestSuite.js: (SyncTestSuite.prototype.addTestCase): Raise an exception if test/setup/teardown is an async function. It won't work. LayoutTests: Add new test cases for more strict requirements for test case arguments. * inspector/unit-tests/sync-test-suite-expected.txt: * inspector/unit-tests/sync-test-suite.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/unit-tests/sync-test-suite-expected.txt trunk/LayoutTests/inspector/unit-tests/sync-test-suite.html trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Test/TestSuite.js Diff Modified: trunk/LayoutTests/ChangeLog (225813 => 225814) --- trunk/LayoutTests/ChangeLog 2017-12-12 23:12:20 UTC (rev 225813) +++ trunk/LayoutTests/ChangeLog 2017-12-12 23:13:04 UTC (rev 225814) @@ -1,3 +1,15 @@ +2017-12-12 Brian Burg + +Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown function +https://bugs.webkit.org/show_bug.cgi?id=180717 + +Reviewed by Devin Rousso. + +Add new test cases for more strict requirements for test case arguments. + +* inspector/unit-tests/sync-test-suite-expected.txt: +* inspector/unit-tests/sync-test-suite.html: + 2017-12-12 Antoine Quint [Web Animations] Expose promises on Animation interface Modified: trunk/LayoutTests/inspector/unit-tests/sync-test-suite-expected.txt (225813 => 225814) --- trunk/LayoutTests/inspector/unit-tests/sync-test-suite-expected.txt 2017-12-12 23:12:20 UTC (rev 225813) +++ trunk/LayoutTests/inspector/unit-tests/sync-test-suite-expected.txt 2017-12-12 23:13:04 UTC (rev 225814) @@ -13,6 +13,9 @@ PASS: should not be able to specify non-Function `teardown` parameter. PASS: should not be able to specify non-Function `teardown` parameter. PASS: should not be able to specify non-Function `teardown` parameter. +PASS: should not be able to specify async `test` parameter. +PASS: should not be able to specify async `setup` parameter. +PASS: should not be able to specify async `teardown` parameter. PASS: should not be able to run empty test suite. == Running test suite: SyncTestSuite.RunTwiceSuite Modified: trunk/LayoutTests/inspector/unit-tests/sync-test-suite.html (225813 => 225814) --- trunk/LayoutTests/inspector/unit-tests/sync-test-suite.html 2017-12-12 23:12:20 UTC (rev 225813) +++ trunk/LayoutTests/inspector/unit-tests/sync-test-suite.html 2017-12-12 23:13:04 UTC (rev 225814) @@ -135,6 +135,36 @@ } catch (e) { ProtocolTest.log("PASS: should not be able to specify non-Function `teardown` parameter."); } +try { +badArgsSuite.addTestCase({ +name: "foo", +async test() {}, +}); +ProtocolTest.log("FAIL: should not be able to specify async `test` parameter."); +} catch (e) { +ProtocolTest.log("PASS: should not be able to specify async `test` parameter."); +} +try { +badArgsSuite.addTestCase({ +name: "foo", +async setup() {}, +test() {}, +}); +ProtocolTest.log("FAIL: should not be able to specify async `setup` parameter."); +} catch (e) { +ProtocolTest.log("PASS: should not be able to specify async `setup` parameter."); +} +try { +badArgsSuite.addTestCase({ +name: "foo", +test() {}, +async teardown() {}, +}); +ProtocolTest.log("FAIL: should not be able to specify async `teardown` parameter."); +} catch (e) { +ProtocolTest.log("PASS: should not be able to specify async `teardown` parameter."); +} + let runEmptySuite = ProtocolTest.createSyncSuite("SyncTestSuite.RunEmptySuite"); try { runEmptySuite.runTestCases(); Modified: trunk/Source/WebInspectorUI/ChangeLog (225813 => 225814) --- trunk/Source/WebInspectorUI/ChangeLog 2017-12-12 23:12:20 UTC (rev 225813) +++ trunk/Source/WebInspectorUI/ChangeLog 2017-12-12 23:13:04 UTC (rev 225814) @@ -1,5 +1,16 @@ 2017-12-12 Brian Burg +Web Inspector: SyncTestSuite should complain if passed an async setup/test/teardown function +https://bugs.webkit.org/show_bug.cgi?id=180717 + +Reviewed by Devin Rousso. + +* UserInterface/Test/TestSuite.js: +(SyncTestSuite.prototype.addTestCase): +Raise an exception if test/setup/teardown is an async function. It won't work. + +2017-12-12 Brian Burg + Web Inspector: add InspectorTest.expectException() and use it https://bugs.webkit.org/show_bug.cgi?id=180719 Modified: trunk/Source/WebInspectorUI/UserInterface/
[webkit-changes] [225813] trunk/Source/WebCore
Title: [225813] trunk/Source/WebCore Revision 225813 Author jer.no...@apple.com Date 2017-12-12 15:12:20 -0800 (Tue, 12 Dec 2017) Log Message [EME] Support FPS-over-HLS in the Modern EME API https://bugs.webkit.org/show_bug.cgi?id=180707 Reviewed by Eric Carlson. Add support for the "skd" initDataType, where the initData is the URI provided in the EXT-X-KEY tag in a HLS manifest: * platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: (WebCore::CDMPrivateFairPlayStreaming::sinfName): (WebCore::CDMPrivateFairPlayStreaming::skdName): (WebCore::extractSinfData): (WebCore::CDMPrivateFairPlayStreaming::sanitizeSkd): (WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSkd): (WebCore::validInitDataTypes): (WebCore::CDMFactory::platformRegisterFactories): (WebCore::CDMPrivateFairPlayStreaming::supportsInitDataType const): (WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const): (WebCore::CDMPrivateFairPlayStreaming::supportsInitData const): (WebCore::sinfName): Deleted. Add support for creating a AVContentKeyRequest from a skd key URI rather than from initialization data, and for extracting keyIDs from the AVContentKeyRequest identifier. * platform/graphics/avfoundation/CDMFairPlayStreaming.h: * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceFairPlayStreamingAVFObjC::keyIDs): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestLicense): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest): Add support for AVContentKeySession to MediaPlayerPrivateAVFoundationObjC, and for emitting initializationData messages when encountering a loading request for a "skd" URI. * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): (WebCore::MediaPlayerPrivateAVFoundationObjC::cdmInstanceAttached): (WebCore::MediaPlayerPrivateAVFoundationObjC::cdmInstanceDetached): (WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp trunk/Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.h trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm Diff Modified: trunk/Source/WebCore/ChangeLog (225812 => 225813) --- trunk/Source/WebCore/ChangeLog 2017-12-12 23:12:02 UTC (rev 225812) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 23:12:20 UTC (rev 225813) @@ -1,3 +1,47 @@ +2017-12-12 Jer Noble + +[EME] Support FPS-over-HLS in the Modern EME API +https://bugs.webkit.org/show_bug.cgi?id=180707 + +Reviewed by Eric Carlson. + +Add support for the "skd" initDataType, where the initData is the URI provided in the +EXT-X-KEY tag in a HLS manifest: + +* platform/graphics/avfoundation/CDMFairPlayStreaming.cpp: +(WebCore::CDMPrivateFairPlayStreaming::sinfName): +(WebCore::CDMPrivateFairPlayStreaming::skdName): +(WebCore::extractSinfData): +(WebCore::CDMPrivateFairPlayStreaming::sanitizeSkd): +(WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsSkd): +(WebCore::validInitDataTypes): +(WebCore::CDMFactory::platformRegisterFactories): +(WebCore::CDMPrivateFairPlayStreaming::supportsInitDataType const): +(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const): +(WebCore::CDMPrivateFairPlayStreaming::supportsInitData const): +(WebCore::sinfName): Deleted. + +Add support for creating a AVContentKeyRequest from a skd key URI rather than from +initialization data, and for extracting keyIDs from the AVContentKeyRequest identifier. + +* platform/graphics/avfoundation/CDMFairPlayStreaming.h: +* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: +* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::keyIDs): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestLicense): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest): + +Add support for AVContentKeySession to MediaPlayerPrivateAVFoundationObjC, and for emitting +initializationData messages when encountering a loading requ
[webkit-changes] [225812] trunk
Title: [225812] trunk Revision 225812 Author grao...@webkit.org Date 2017-12-12 15:12:02 -0800 (Tue, 12 Dec 2017) Log Message [Web Animations] Expose promises on Animation interface https://bugs.webkit.org/show_bug.cgi?id=180710 Reviewed by Dean Jackson. Source/WebCore: Expose the "ready" and "finished" promises on Animation. A future patch will fulfil or reject them. * animation/WebAnimation.cpp: (WebCore::WebAnimation::WebAnimation): (WebCore::WebAnimation::readyPromiseResolve): (WebCore::WebAnimation::finishedPromiseResolve): * animation/WebAnimation.h: * animation/WebAnimation.idl: LayoutTests: Rebase some WPT expectations with progressions due to exposing the "ready" and "finished" promises. * http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt: * http/wpt/web-animations/timing-model/animations/current-time-expected.txt: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt trunk/LayoutTests/http/wpt/web-animations/timing-model/animations/current-time-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/animation/WebAnimation.cpp trunk/Source/WebCore/animation/WebAnimation.h trunk/Source/WebCore/animation/WebAnimation.idl Diff Modified: trunk/LayoutTests/ChangeLog (225811 => 225812) --- trunk/LayoutTests/ChangeLog 2017-12-12 23:11:19 UTC (rev 225811) +++ trunk/LayoutTests/ChangeLog 2017-12-12 23:12:02 UTC (rev 225812) @@ -1,3 +1,16 @@ +2017-12-12 Antoine Quint + +[Web Animations] Expose promises on Animation interface +https://bugs.webkit.org/show_bug.cgi?id=180710 + + +Reviewed by Dean Jackson. + +Rebase some WPT expectations with progressions due to exposing the "ready" and "finished" promises. + +* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt: +* http/wpt/web-animations/timing-model/animations/current-time-expected.txt: + 2017-12-12 Myles C. Maxfield IPC code doesn't understand NSDictionaries with non-NSString keys Modified: trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt (225811 => 225812) --- trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt 2017-12-12 23:11:19 UTC (rev 225811) +++ trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt 2017-12-12 23:12:02 UTC (rev 225812) @@ -12,8 +12,8 @@ PASS Animation interface: attribute currentTime PASS Animation interface: attribute playbackRate PASS Animation interface: attribute playState -FAIL Animation interface: attribute ready assert_true: The prototype object must have a property "ready" expected true got false -FAIL Animation interface: attribute finished assert_true: The prototype object must have a property "finished" expected true got false +PASS Animation interface: attribute ready +PASS Animation interface: attribute finished FAIL Animation interface: attribute onfinish assert_true: The prototype object must have a property "onfinish" expected true got false FAIL Animation interface: attribute oncancel assert_true: The prototype object must have a property "oncancel" expected true got false FAIL Animation interface: operation cancel() assert_own_property: interface prototype object missing non-static operation expected property "cancel" missing @@ -30,8 +30,8 @@ PASS Animation interface: new Animation() must inherit property "currentTime" with the proper type PASS Animation interface: new Animation() must inherit property "playbackRate" with the proper type PASS Animation interface: new Animation() must inherit property "playState" with the proper type -FAIL Animation interface: new Animation() must inherit property "ready" with the proper type assert_inherits: property "ready" not found in prototype chain -FAIL Animation interface: new Animation() must inherit property "finished" with the proper type assert_inherits: property "finished" not found in prototype chain +PASS Animation interface: new Animation() must inherit property "ready" with the proper type +PASS Animation interface: new Animation() must inherit property "finished" with the proper type FAIL Animation interface: new Animation() must inherit property "onfinish" with the proper type assert_inherits: property "onfinish" not found in prototype chain FAIL Animation interface: new Animation() must inherit property "oncancel" with the proper type assert_inherits: property "oncancel" not found in prototype chain FAIL Animation interface: new Animation() must inherit property "cancel()" with the proper type assert_inherits: property "cancel" not found in prototype chain Modified: trunk/LayoutTests/http/wpt/web-animations/timing-model/animations/current-time-expected.txt (225811 => 225812) --- trunk/LayoutTests/http/wpt/web-animations/timing-model/animations/current-time-expected.txt 2017-12-12 23:11:19 UTC (rev 225811) +++ trunk
[webkit-changes] [225811] trunk
Title: [225811] trunk Revision 225811 Author mmaxfi...@apple.com Date 2017-12-12 15:11:19 -0800 (Tue, 12 Dec 2017) Log Message IPC code doesn't understand NSDictionaries with non-NSString keys https://bugs.webkit.org/show_bug.cgi?id=180307 Reviewed by Alex Christensen. Source/WebKit: Variable fonts have a dictionary inside its descriptor which represents the values of all the axes of the variable font. Our IPC code wasn't expecting this. * Shared/mac/ArgumentCodersMac.mm: (IPC::encode): (IPC::decode): LayoutTests: * fast/text/variations/ipc-expected.txt: Added. * fast/text/variations/ipc.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/mac/ArgumentCodersMac.mm Added Paths trunk/LayoutTests/fast/text/variations/ipc-expected.txt trunk/LayoutTests/fast/text/variations/ipc.html Diff Modified: trunk/LayoutTests/ChangeLog (225810 => 225811) --- trunk/LayoutTests/ChangeLog 2017-12-12 23:10:00 UTC (rev 225810) +++ trunk/LayoutTests/ChangeLog 2017-12-12 23:11:19 UTC (rev 225811) @@ -1,3 +1,14 @@ +2017-12-12 Myles C. Maxfield + +IPC code doesn't understand NSDictionaries with non-NSString keys +https://bugs.webkit.org/show_bug.cgi?id=180307 + + +Reviewed by Alex Christensen. + +* fast/text/variations/ipc-expected.txt: Added. +* fast/text/variations/ipc.html: Added. + 2017-12-12 Brian Burg Web Inspector: add InspectorTest.expectException() and use it Added: trunk/LayoutTests/fast/text/variations/ipc-expected.txt (0 => 225811) --- trunk/LayoutTests/fast/text/variations/ipc-expected.txt (rev 0) +++ trunk/LayoutTests/fast/text/variations/ipc-expected.txt 2017-12-12 23:11:19 UTC (rev 225811) @@ -0,0 +1,2 @@ +This makes sure that variable fonts can be sent across IPC. The test passes if there is no crash. +Hello Added: trunk/LayoutTests/fast/text/variations/ipc.html (0 => 225811) --- trunk/LayoutTests/fast/text/variations/ipc.html (rev 0) +++ trunk/LayoutTests/fast/text/variations/ipc.html 2017-12-12 23:11:19 UTC (rev 225811) @@ -0,0 +1,36 @@ + + + + +@font-face { +font-family: "Boxis"; +src: url("resources/Boxis-VF.ttf") format("truetype"); +} + + +function test() { +let target = document.getElementById("target"); +let x = target.offsetLeft + target.offsetWidth / 2; +let y = target.offsetTop + target.offsetHeight / 2; +if (window.eventSender) { +eventSender.mouseMoveTo(x, y); +eventSender.mouseDown(); +eventSender.mouseUp(); +} +if (window.testRunner) +testRunner.notifyDone(); +} + + + +This makes sure that variable fonts can be sent across IPC. The test passes if there is no crash. +Hello + +if (window.testRunner) { +testRunner.dumpAsText(); +testRunner.waitUntilDone(); +} +window.addEventListener("load", test); + + + Modified: trunk/Source/WebKit/ChangeLog (225810 => 225811) --- trunk/Source/WebKit/ChangeLog 2017-12-12 23:10:00 UTC (rev 225810) +++ trunk/Source/WebKit/ChangeLog 2017-12-12 23:11:19 UTC (rev 225811) @@ -1,3 +1,18 @@ +2017-12-12 Myles C. Maxfield + +IPC code doesn't understand NSDictionaries with non-NSString keys +https://bugs.webkit.org/show_bug.cgi?id=180307 + + +Reviewed by Alex Christensen. + +Variable fonts have a dictionary inside its descriptor which represents the values +of all the axes of the variable font. Our IPC code wasn't expecting this. + +* Shared/mac/ArgumentCodersMac.mm: +(IPC::encode): +(IPC::decode): + 2017-12-12 Brent Fulgham Unreviewed build fix after r225763. Modified: trunk/Source/WebKit/Shared/mac/ArgumentCodersMac.mm (225810 => 225811) --- trunk/Source/WebKit/Shared/mac/ArgumentCodersMac.mm 2017-12-12 23:10:00 UTC (rev 225810) +++ trunk/Source/WebKit/Shared/mac/ArgumentCodersMac.mm 2017-12-12 23:11:19 UTC (rev 225811) @@ -367,7 +367,6 @@ id key = [keys objectAtIndex:i]; id value = [values objectAtIndex:i]; ASSERT(key); -ASSERT([key isKindOfClass:[NSString class]]); ASSERT(value); ASSERT(isSerializableValue(value)); @@ -375,7 +374,7 @@ if (typeFromObject(value) == NSType::Unknown) continue; -encode(encoder, (NSString *)key); +encode(encoder, key); encode(encoder, value); } } @@ -389,7 +388,7 @@ RetainPtr dictionary = adoptNS([[NSMutableDictionary alloc] initWithCapacity:size]); for (uint64_t i = 0; i < size; ++i) { // Try to decode the key name. -RetainPtr key; +RetainPtr key; if (!decode(decoder, key)) return false; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225810] trunk
Title: [225810] trunk Revision 225810 Author bb...@apple.com Date 2017-12-12 15:10:00 -0800 (Tue, 12 Dec 2017) Log Message Web Inspector: add InspectorTest.expectException() and use it https://bugs.webkit.org/show_bug.cgi?id=180719 Reviewed by Matt Baker. Source/WebInspectorUI: This helps straighten out async test() functions that need to test exceptional cases. Without this, every such method needs try/catch boilerplate to leak the error outside the scope of the catch-block and then assert that it exists. * UserInterface/Test/TestHarness.js: (TestHarness.prototype.expectException): Added. This method takes a callback which is expected to raise an exception either by throwing an Error instance or returning a Promise that rejects with an Error instance. The method returns a Promise that is either resolved with the expected exception from one of the above sources, or is rejected with the non-exception result that was returned or resolved by the callback. LayoutTests: * inspector/dom/highlightNode-expected.txt: * inspector/dom/highlightNode.html: Adopt the new helper method. * inspector/unit-tests/test-harness-expect-functions-async-expected.txt: Added. * inspector/unit-tests/test-harness-expect-functions-async.html: Added. Add a separate async test suite for async expect* functions. * inspector/unit-tests/test-harness-expect-functions-expected.txt: * inspector/unit-tests/test-harness-expect-functions.html: Standardize the naming for these two suites. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/dom/highlightNode-expected.txt trunk/LayoutTests/inspector/dom/highlightNode.html trunk/LayoutTests/inspector/unit-tests/test-harness-expect-functions-expected.txt trunk/LayoutTests/inspector/unit-tests/test-harness-expect-functions.html trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Test/TestHarness.js Added Paths trunk/LayoutTests/inspector/unit-tests/test-harness-expect-functions-async-expected.txt trunk/LayoutTests/inspector/unit-tests/test-harness-expect-functions-async.html Diff Modified: trunk/LayoutTests/ChangeLog (225809 => 225810) --- trunk/LayoutTests/ChangeLog 2017-12-12 23:01:52 UTC (rev 225809) +++ trunk/LayoutTests/ChangeLog 2017-12-12 23:10:00 UTC (rev 225810) @@ -1,3 +1,22 @@ +2017-12-12 Brian Burg + +Web Inspector: add InspectorTest.expectException() and use it +https://bugs.webkit.org/show_bug.cgi?id=180719 + +Reviewed by Matt Baker. + +* inspector/dom/highlightNode-expected.txt: +* inspector/dom/highlightNode.html: +Adopt the new helper method. + +* inspector/unit-tests/test-harness-expect-functions-async-expected.txt: Added. +* inspector/unit-tests/test-harness-expect-functions-async.html: Added. +Add a separate async test suite for async expect* functions. + +* inspector/unit-tests/test-harness-expect-functions-expected.txt: +* inspector/unit-tests/test-harness-expect-functions.html: +Standardize the naming for these two suites. + 2017-12-12 Myles C. Maxfield REGRESSION (Safari 11): custom tag crashes a page Modified: trunk/LayoutTests/inspector/dom/highlightNode-expected.txt (225809 => 225810) --- trunk/LayoutTests/inspector/dom/highlightNode-expected.txt 2017-12-12 23:01:52 UTC (rev 225809) +++ trunk/LayoutTests/inspector/dom/highlightNode-expected.txt 2017-12-12 23:10:00 UTC (rev 225810) @@ -24,14 +24,14 @@ Highlighted Element Data: {"tagName":"div","idValue":"id-one","size":{"width":150,"height":250},"role":""} -- Running test case: MissingNodeAndObjectIdShouldError -PASS: Should produce an error. +PASS: Should produce an exception. Error: Either nodeId or objectId must be specified -- Running test case: BadNodeId -PASS: Should produce an error. +PASS: Should produce an exception. Error: Could not find node with given id -- Running test case: BadObjectId -PASS: Should produce an error. +PASS: Should produce an exception. Error: Node for given objectId not found Modified: trunk/LayoutTests/inspector/dom/highlightNode.html (225809 => 225810) --- trunk/LayoutTests/inspector/dom/highlightNode.html 2017-12-12 23:01:52 UTC (rev 225809) +++ trunk/LayoutTests/inspector/dom/highlightNode.html 2017-12-12 23:10:00 UTC (rev 225810) @@ -111,11 +111,9 @@ suite.addTestCase({ name: "MissingNodeAndObjectIdShouldError", description: "Missing identifiers should cause an error.", -test(resolve, reject) { -DOMAgent.highlightNode(highlightConfig, undefined, undefined, (error) => { -InspectorTest.expectThat(error, "Should produce an error."); -InspectorTest.log("Error: " + error); -resolve(); +async test() { +await InspectorTest.expectException(async () => { +await DOMAgent.highlightNode(highlightConfig, undefined, undefined); }); } }); @@ -123
[webkit-changes] [225809] trunk
Title: [225809] trunk Revision 225809 Author commit-qu...@webkit.org Date 2017-12-12 15:01:52 -0800 (Tue, 12 Dec 2017) Log Message Fetch Event header filtering should apply in CORS mode only https://bugs.webkit.org/show_bug.cgi?id=180708 Patch by Youenn Fablet on 2017-12-12 Reviewed by Alex Christensen. LayoutTests/imported/w3c: * web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt: Source/WebCore: Covered by no-longer failing test. * workers/service/context/ServiceWorkerFetch.cpp: cleaning headers only in case of CORS mode. Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (225808 => 225809) --- trunk/LayoutTests/imported/w3c/ChangeLog 2017-12-12 22:51:02 UTC (rev 225808) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2017-12-12 23:01:52 UTC (rev 225809) @@ -1,3 +1,12 @@ +2017-12-12 Youenn Fablet + +Fetch Event header filtering should apply in CORS mode only +https://bugs.webkit.org/show_bug.cgi?id=180708 + +Reviewed by Alex Christensen. + +* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt: + 2017-12-12 Javier Fernandez [css-grid] Implement alignment for absolute positioned grid items Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt (225808 => 225809) --- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt 2017-12-12 22:51:02 UTC (rev 225808) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt 2017-12-12 23:01:52 UTC (rev 225809) @@ -8,7 +8,7 @@ PASS Service Worker does not respond to fetch event PASS Service Worker responds to fetch event with null response body PASS Service Worker fetches other file in fetch event -FAIL Service Worker responds to fetch event with POST form assert_unreached: unexpected rejection: assert_equals: expected "POST:application/x-www-form-urlencoded:testName1=testValue1&testName2=testValue2" but got "POST:null:testName1=testValue1&testName2=testValue2" Reached unreachable code +PASS Service Worker responds to fetch event with POST form PASS Multiple calls of respondWith must throw InvalidStateErrors PASS Service Worker event.respondWith must set the used flag PASS Service Worker should expose FetchEvent URL fragments. Modified: trunk/Source/WebCore/ChangeLog (225808 => 225809) --- trunk/Source/WebCore/ChangeLog 2017-12-12 22:51:02 UTC (rev 225808) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 23:01:52 UTC (rev 225809) @@ -1,3 +1,14 @@ +2017-12-12 Youenn Fablet + +Fetch Event header filtering should apply in CORS mode only +https://bugs.webkit.org/show_bug.cgi?id=180708 + +Reviewed by Alex Christensen. + +Covered by no-longer failing test. + +* workers/service/context/ServiceWorkerFetch.cpp: cleaning headers only in case of CORS mode. + 2017-12-12 Myles C. Maxfield REGRESSION (Safari 11): custom tag crashes a page Modified: trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp (225808 => 225809) --- trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp 2017-12-12 22:51:02 UTC (rev 225808) +++ trunk/Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp 2017-12-12 23:01:52 UTC (rev 225809) @@ -98,7 +98,8 @@ auto httpReferrer = request.httpReferrer(); // We are intercepting fetch calls after going through the HTTP layer, which adds some specific headers. // Let's clean them so that cross origin checks do not fail. -cleanRedirectedRequestForAccessControl(request); +if (options.mode == FetchOptions::Mode::Cors) +cleanRedirectedRequestForAccessControl(request); auto requestHeaders = FetchHeaders::create(FetchHeaders::Guard::Immutable, HTTPHeaderMap { request.httpHeaderFields() }); auto fetchRequest = FetchRequest::create(globalScope, FetchBody::fromFormData(request.httpBody()), WTFMove(requestHeaders), WTFMove(request), WTFMove(options), WTFMove(httpReferrer)); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225808] trunk
Title: [225808] trunk Revision 225808 Author mmaxfi...@apple.com Date 2017-12-12 14:51:02 -0800 (Tue, 12 Dec 2017) Log Message REGRESSION (Safari 11): custom tag crashes a page https://bugs.webkit.org/show_bug.cgi?id=177848 Reviewed by Darin Adler. Source/WebCore: We currently use the CSS property parsers to parse SVG's element attributes. Instead, we should be using the CSS descriptor parsers to parse these attributes. However, this is a fairly involved task, so until I can finish that, this patch fixes the crash. The crash is simple; the descriptors shouldn't accept the universal keywords ("initial", "inherit", etc.) and our font-face machinery assumes this. So the fix is just detect these keywords and explicitly disallow them. Test: svg/text/font-style-keyword.html * svg/SVGFontFaceElement.cpp: (WebCore::SVGFontFaceElement::parseAttribute): LayoutTests: * svg/text/font-style-keyword-expected.txt: Added. * svg/text/font-style-keyword.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/CSSValue.h trunk/Source/WebCore/svg/SVGFontFaceElement.cpp Added Paths trunk/LayoutTests/svg/text/font-style-keyword-expected.txt trunk/LayoutTests/svg/text/font-style-keyword.html Diff Modified: trunk/LayoutTests/ChangeLog (225807 => 225808) --- trunk/LayoutTests/ChangeLog 2017-12-12 22:24:37 UTC (rev 225807) +++ trunk/LayoutTests/ChangeLog 2017-12-12 22:51:02 UTC (rev 225808) @@ -1,3 +1,13 @@ +2017-12-12 Myles C. Maxfield + +REGRESSION (Safari 11): custom tag crashes a page +https://bugs.webkit.org/show_bug.cgi?id=177848 + +Reviewed by Darin Adler. + +* svg/text/font-style-keyword-expected.txt: Added. +* svg/text/font-style-keyword.html: Added. + 2017-12-12 Antoine Quint [Web Animations] Implement the playState property on Animation Added: trunk/LayoutTests/svg/text/font-style-keyword-expected.txt (0 => 225808) --- trunk/LayoutTests/svg/text/font-style-keyword-expected.txt (rev 0) +++ trunk/LayoutTests/svg/text/font-style-keyword-expected.txt 2017-12-12 22:51:02 UTC (rev 225808) @@ -0,0 +1 @@ + Property changes on: trunk/LayoutTests/svg/text/font-style-keyword-expected.txt ___ Added: svn:eol-style +native \ No newline at end of property Added: svn:keywords +Author Date Id Rev URL \ No newline at end of property Added: trunk/LayoutTests/svg/text/font-style-keyword.html (0 => 225808) --- trunk/LayoutTests/svg/text/font-style-keyword.html (rev 0) +++ trunk/LayoutTests/svg/text/font-style-keyword.html 2017-12-12 22:51:02 UTC (rev 225808) @@ -0,0 +1,34 @@ + + + + + + +if (window.testRunner) +testRunner.dumpAsText(); + + + + + + + + + + + + + + + + + + + + + + + + + + Modified: trunk/Source/WebCore/ChangeLog (225807 => 225808) --- trunk/Source/WebCore/ChangeLog 2017-12-12 22:24:37 UTC (rev 225807) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 22:51:02 UTC (rev 225808) @@ -1,3 +1,22 @@ +2017-12-12 Myles C. Maxfield + +REGRESSION (Safari 11): custom tag crashes a page +https://bugs.webkit.org/show_bug.cgi?id=177848 + +Reviewed by Darin Adler. + +We currently use the CSS property parsers to parse SVG's element attributes. Instead, +we should be using the CSS descriptor parsers to parse these attributes. However, this is a +fairly involved task, so until I can finish that, this patch fixes the crash. The crash is simple; +the descriptors shouldn't accept the universal keywords ("initial", "inherit", etc.) and our +font-face machinery assumes this. So the fix is just detect these keywords and explicitly disallow +them. + +Test: svg/text/font-style-keyword.html + +* svg/SVGFontFaceElement.cpp: +(WebCore::SVGFontFaceElement::parseAttribute): + 2017-12-12 Antoine Quint [Web Animations] Implement the playState property on Animation Modified: trunk/Source/WebCore/css/CSSValue.h (225807 => 225808) --- trunk/Source/WebCore/css/CSSValue.h 2017-12-12 22:24:37 UTC (rev 225807) +++ trunk/Source/WebCore/css/CSSValue.h 2017-12-12 22:51:02 UTC (rev 225808) @@ -91,6 +91,7 @@ bool isInitialValue() const { return m_classType == InitialClass; } bool isUnsetValue() const { return m_classType == UnsetClass; } bool isRevertValue() const { return m_classType == RevertClass; } +bool isGlobalKeyword() const { return isInheritedValue() || isInitialValue() || isUnsetValue() || isRevertValue(); } bool treatAsInitialValue(CSSPropertyID) const; bool treatAsInheritedValue(CSSPropertyID) const; bool isLinearGradientValue() const { return m_classType == LinearGradientClass; } Modified: trunk/Source/WebCore/svg/SVGFontFaceElemen
[webkit-changes] [225806] trunk/Source/WebInspectorUI
Title: [225806] trunk/Source/WebInspectorUI Revision 225806 Author mcatanz...@igalia.com Date 2017-12-12 14:23:17 -0800 (Tue, 12 Dec 2017) Log Message Don't require perl(File::Copy::Recursive) https://bugs.webkit.org/show_bug.cgi?id=180479 Reviewed by Daniel Bates. Fix the error handling. I added this at the last moment and failed to test. The logic is inverted, causing an error to always be reported on success. Add a missing 'mkdir -p' using File::Path::make_path. This has its own built-in error reporting, so no need to add our own. * Scripts/copy-user-interface-resources.pl: (ditto): Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (225805 => 225806) --- trunk/Source/WebInspectorUI/ChangeLog 2017-12-12 22:19:20 UTC (rev 225805) +++ trunk/Source/WebInspectorUI/ChangeLog 2017-12-12 22:23:17 UTC (rev 225806) @@ -1,5 +1,22 @@ 2017-12-12 Michael Catanzaro +Don't require perl(File::Copy::Recursive) +https://bugs.webkit.org/show_bug.cgi?id=180479 + + +Reviewed by Daniel Bates. + +Fix the error handling. I added this at the last moment and failed to test. The logic is +inverted, causing an error to always be reported on success. + +Add a missing 'mkdir -p' using File::Path::make_path. This has its own built-in error +reporting, so no need to add our own. + +* Scripts/copy-user-interface-resources.pl: +(ditto): + +2017-12-12 Michael Catanzaro + Unreviewed, don't print empty error message when copying resource fails Unsurprisingly, when system() fails, there is not any useful error to be printed, so don't. Modified: trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl (225805 => 225806) --- trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl 2017-12-12 22:19:20 UTC (rev 225805) +++ trunk/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl 2017-12-12 22:23:17 UTC (rev 225806) @@ -49,9 +49,10 @@ } elsif ($^O ne 'MSWin32') { # Ditto copies the *contents* of the source directory, not the directory itself. opendir(my $dh, $source) or die "Can't open $source: $!"; +make_path($destination); while (readdir $dh) { if ($_ ne '..' and $_ ne '.') { -system('cp', '-R', "${source}/$_", $destination) or die "Failed to copy ${source}/$_ to $destination"; +system('cp', '-R', "${source}/$_", $destination) == 0 or die "Failed to copy ${source}/$_ to $destination"; } } closedir $dh; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225807] trunk
Title: [225807] trunk Revision 225807 Author commit-qu...@webkit.org Date 2017-12-12 14:24:37 -0800 (Tue, 12 Dec 2017) Log Message [Web Animations] Implement the playState property on Animation https://bugs.webkit.org/show_bug.cgi?id=180711 Patch by Antoine Quint on 2017-12-12 Reviewed by Dean Jackson. Source/WebCore: Expose the playState and pending properties. The playState property has a complete implementation but has some test failures due to Animation lacking correct behavior while running animations which will be fixed in a followup patch. The pending property is a placeholder until we implement pending play and pause tasks in followup patches. * animation/WebAnimation.cpp: (WebCore::WebAnimation::playState const): (WebCore::WebAnimation::effectEndTime const): * animation/WebAnimation.h: * animation/WebAnimation.idl: LayoutTests: Rebase some WPT expectations with progressions due to exposing the "playState" and "pending" properties. * http/wpt/web-animations/interfaces/Animation/constructor-expected.txt: * http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt: * http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/constructor-expected.txt trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt trunk/LayoutTests/http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/animation/WebAnimation.cpp trunk/Source/WebCore/animation/WebAnimation.h trunk/Source/WebCore/animation/WebAnimation.idl Diff Modified: trunk/LayoutTests/ChangeLog (225806 => 225807) --- trunk/LayoutTests/ChangeLog 2017-12-12 22:23:17 UTC (rev 225806) +++ trunk/LayoutTests/ChangeLog 2017-12-12 22:24:37 UTC (rev 225807) @@ -1,3 +1,17 @@ +2017-12-12 Antoine Quint + +[Web Animations] Implement the playState property on Animation +https://bugs.webkit.org/show_bug.cgi?id=180711 + + +Reviewed by Dean Jackson. + +Rebase some WPT expectations with progressions due to exposing the "playState" and "pending" properties. + +* http/wpt/web-animations/interfaces/Animation/constructor-expected.txt: +* http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt: +* http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt: + 2017-12-12 Youenn Fablet Navigation requests should use navigate fetch mode Modified: trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/constructor-expected.txt (225806 => 225807) --- trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/constructor-expected.txt 2017-12-12 22:23:17 UTC (rev 225806) +++ trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/constructor-expected.txt 2017-12-12 22:24:37 UTC (rev 225807) @@ -1,7 +1,7 @@ FAIL Animation can be constructed with null effect and null timeline assert_equals: Animation timeline should be null expected null but got object "[object DocumentTimeline]" -FAIL Animation can be constructed with null effect and non-null timeline assert_equals: Animation.playState should be initially 'idle' expected (string) "idle" but got (undefined) undefined -FAIL Animation can be constructed with null effect and no timeline parameter assert_equals: Animation.playState should be initially 'idle' expected (string) "idle" but got (undefined) undefined +PASS Animation can be constructed with null effect and non-null timeline +PASS Animation can be constructed with null effect and no timeline parameter FAIL Animation can be constructed with non-null effect and null timeline Can't find variable: KeyframeEffectReadOnly FAIL Animation can be constructed with non-null effect and non-null timeline Can't find variable: KeyframeEffectReadOnly FAIL Animation can be constructed with non-null effect and no timeline parameter Can't find variable: KeyframeEffectReadOnly Modified: trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt (225806 => 225807) --- trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt 2017-12-12 22:23:17 UTC (rev 225806) +++ trunk/LayoutTests/http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt 2017-12-12 22:24:37 UTC (rev 225807) @@ -11,7 +11,7 @@ PASS Animation interface: attribute startTime PASS Animation interface: attribute currentTime PASS Animation interface: attribute playbackRate -FAIL Animation interface: attribute playState assert_true: The prototype object must have a property "playState" expected true got false +PASS Animation interface: attribute playState FAIL Animation interface: attribute ready assert_true: The prototype object must have a property "ready" expected true got false FAIL Animation interface: attribu
[webkit-changes] [225804] trunk/Source/JavaScriptCore
Title: [225804] trunk/Source/_javascript_Core Revision 225804 Author bb...@apple.com Date 2017-12-12 13:49:13 -0800 (Tue, 12 Dec 2017) Log Message Web Inspector: modernize InjectedScript a bit https://bugs.webkit.org/show_bug.cgi?id=180367 Reviewed by Timothy Hatcher. Stop using out parameters passed by pointer, use references instead. Stop using OptOutput in favor of std::optional where possible. If there is only one out-parameter and a void return type, then return the value. * inspector/InjectedScript.h: * inspector/InjectedScript.cpp: (Inspector::InjectedScript::evaluate): (Inspector::InjectedScript::callFunctionOn): (Inspector::InjectedScript::evaluateOnCallFrame): (Inspector::InjectedScript::getFunctionDetails): (Inspector::InjectedScript::functionDetails): (Inspector::InjectedScript::getPreview): (Inspector::InjectedScript::getProperties): (Inspector::InjectedScript::getDisplayableProperties): (Inspector::InjectedScript::getInternalProperties): (Inspector::InjectedScript::getCollectionEntries): (Inspector::InjectedScript::saveResult): (Inspector::InjectedScript::setExceptionValue): (Inspector::InjectedScript::clearExceptionValue): (Inspector::InjectedScript::inspectObject): (Inspector::InjectedScript::releaseObject): * inspector/InjectedScriptBase.h: * inspector/InjectedScriptBase.cpp: (Inspector::InjectedScriptBase::InjectedScriptBase): Declare m_environment with a default initializer. (Inspector::InjectedScriptBase::makeCall): (Inspector::InjectedScriptBase::makeEvalCall): Just return the result, no need for an out-parameter. Rearrange some code paths now that we can just return a result. Return a Ref since it is either a result value or error value. Use out_ prefixes in a few places to improve readability. * inspector/agents/InspectorDebuggerAgent.cpp: (Inspector::InspectorDebuggerAgent::getFunctionDetails): (Inspector::InspectorDebuggerAgent::evaluateOnCallFrame): * inspector/agents/InspectorHeapAgent.cpp: (Inspector::InspectorHeapAgent::getPreview): * inspector/agents/InspectorRuntimeAgent.cpp: (Inspector::InspectorRuntimeAgent::evaluate): (Inspector::InspectorRuntimeAgent::callFunctionOn): (Inspector::InspectorRuntimeAgent::getPreview): (Inspector::InspectorRuntimeAgent::getProperties): (Inspector::InspectorRuntimeAgent::getDisplayableProperties): (Inspector::InspectorRuntimeAgent::getCollectionEntries): (Inspector::InspectorRuntimeAgent::saveResult): Adapt to InjectedScript changes. In some cases we need to bridge OptOutput and std::optional until the former is removed from generated method signatures. Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/inspector/InjectedScript.cpp trunk/Source/_javascript_Core/inspector/InjectedScript.h trunk/Source/_javascript_Core/inspector/InjectedScriptBase.cpp trunk/Source/_javascript_Core/inspector/InjectedScriptBase.h trunk/Source/_javascript_Core/inspector/agents/InspectorDebuggerAgent.cpp trunk/Source/_javascript_Core/inspector/agents/InspectorHeapAgent.cpp trunk/Source/_javascript_Core/inspector/agents/InspectorRuntimeAgent.cpp Diff Modified: trunk/Source/_javascript_Core/ChangeLog (225803 => 225804) --- trunk/Source/_javascript_Core/ChangeLog 2017-12-12 21:36:48 UTC (rev 225803) +++ trunk/Source/_javascript_Core/ChangeLog 2017-12-12 21:49:13 UTC (rev 225804) @@ -1,3 +1,60 @@ +2017-12-04 Brian Burg + +Web Inspector: modernize InjectedScript a bit +https://bugs.webkit.org/show_bug.cgi?id=180367 + +Reviewed by Timothy Hatcher. + +Stop using out parameters passed by pointer, use references instead. +Stop using OptOutput in favor of std::optional where possible. +If there is only one out-parameter and a void return type, then return the value. + +* inspector/InjectedScript.h: +* inspector/InjectedScript.cpp: +(Inspector::InjectedScript::evaluate): +(Inspector::InjectedScript::callFunctionOn): +(Inspector::InjectedScript::evaluateOnCallFrame): +(Inspector::InjectedScript::getFunctionDetails): +(Inspector::InjectedScript::functionDetails): +(Inspector::InjectedScript::getPreview): +(Inspector::InjectedScript::getProperties): +(Inspector::InjectedScript::getDisplayableProperties): +(Inspector::InjectedScript::getInternalProperties): +(Inspector::InjectedScript::getCollectionEntries): +(Inspector::InjectedScript::saveResult): +(Inspector::InjectedScript::setExceptionValue): +(Inspector::InjectedScript::clearExceptionValue): +(Inspector::InjectedScript::inspectObject): +(Inspector::InjectedScript::releaseObject): + +* inspector/InjectedScriptBase.h: +* inspector/InjectedScriptBase.cpp: +(Inspector::InjectedScriptBase::InjectedScriptBase): +Declare m_environment with a default initializer. + +(Inspector::InjectedScriptBase::makeCall): +(Inspector::InjectedScriptBase::make
[webkit-changes] [225803] trunk/Tools
Title: [225803] trunk/Tools Revision 225803 Author commit-qu...@webkit.org Date 2017-12-12 13:36:48 -0800 (Tue, 12 Dec 2017) Log Message Update ContentFiltering.LazilyLoadPlatformFrameworks test to account for libwebrtc using VideoProcessing framework https://bugs.webkit.org/show_bug.cgi?id=180713 Patch by Youenn Fablet on 2017-12-12 Reviewed by Andy Estes. Temporarily disabling a subcheck until we make the test more robust and/or libwebrtc weak linking VideoProcessing framework. * TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm: (-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]): Modified Paths trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm Diff Modified: trunk/Tools/ChangeLog (225802 => 225803) --- trunk/Tools/ChangeLog 2017-12-12 21:35:58 UTC (rev 225802) +++ trunk/Tools/ChangeLog 2017-12-12 21:36:48 UTC (rev 225803) @@ -1,3 +1,15 @@ +2017-12-12 Youenn Fablet + +Update ContentFiltering.LazilyLoadPlatformFrameworks test to account for libwebrtc using VideoProcessing framework +https://bugs.webkit.org/show_bug.cgi?id=180713 + +Reviewed by Andy Estes. + +Temporarily disabling a subcheck until we make the test more robust and/or libwebrtc weak linking VideoProcessing framework. + +* TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm: +(-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]): + 2017-12-12 Caio Lima [ESNext][BigInt] Implement BigInt literals and JSBigInt Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm (225802 => 225803) --- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm 2017-12-12 21:35:58 UTC (rev 225802) +++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm 2017-12-12 21:36:48 UTC (rev 225803) @@ -363,7 +363,10 @@ EXPECT_EQ(static_cast(parentalControlsShouldBeLoaded), static_cast(parentalControlsLoaded)); #endif #if HAVE(NETWORK_EXTENSION) -EXPECT_EQ(static_cast(networkExtensionShouldBeLoaded), static_cast(networkExtensionLoaded)); +// FIXME: Libwebrtc is linking on some configurations to VideoProcessing framework which brings up NetworkExtension framework. +// https://bugs.webkit.org/show_bug.cgi?id=180713 +// Disable this test until we find a more robust test or libwebrtc weak link VideoProcessing framework. +// EXPECT_EQ(static_cast(networkExtensionShouldBeLoaded), static_cast(networkExtensionLoaded)); #endif isDone = true; }]; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225802] trunk/Source/WebCore
Title: [225802] trunk/Source/WebCore Revision 225802 Author jer.no...@apple.com Date 2017-12-12 13:35:58 -0800 (Tue, 12 Dec 2017) Log Message [EME] Support reporting and restoring persistent usage data. https://bugs.webkit.org/show_bug.cgi?id=180684 Reviewed by Eric Carlson. Add support for reading and acknowledging persistent usage data from the MediaKeys storage directory. Add a mechanism for passing the storage location down to CDMPrivate and CDMInstance objects inside of the CDM class itself: * Modules/encryptedmedia/CDM.cpp: (WebCore::CDM::createInstance): (WebCore::CDM::storageDirectory const): * Modules/encryptedmedia/CDM.h: Support loading expired session data, acknowledging expired session data, closing sessions and removing usable key data. * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: * platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::isEqual): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::loadSession): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::closeSession): (WebCore::CDMInstanceFairPlayStreamingAVFObjC::removeSessionData): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp trunk/Source/WebCore/Modules/encryptedmedia/CDM.h trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm Diff Modified: trunk/Source/WebCore/ChangeLog (225801 => 225802) --- trunk/Source/WebCore/ChangeLog 2017-12-12 21:16:36 UTC (rev 225801) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 21:35:58 UTC (rev 225802) @@ -1,3 +1,32 @@ +2017-12-12 Jer Noble + +[EME] Support reporting and restoring persistent usage data. +https://bugs.webkit.org/show_bug.cgi?id=180684 + +Reviewed by Eric Carlson. + +Add support for reading and acknowledging persistent usage data from the MediaKeys storage +directory. + +Add a mechanism for passing the storage location down to CDMPrivate and CDMInstance objects +inside of the CDM class itself: + +* Modules/encryptedmedia/CDM.cpp: +(WebCore::CDM::createInstance): +(WebCore::CDM::storageDirectory const): +* Modules/encryptedmedia/CDM.h: + +Support loading expired session data, acknowledging expired session data, closing sessions +and removing usable key data. + +* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h: +* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: +(WebCore::isEqual): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::loadSession): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::closeSession): +(WebCore::CDMInstanceFairPlayStreamingAVFObjC::removeSessionData): + 2017-12-12 Christopher Reid WebGL TextureMapperShaderProgram shaders don't compile in MSVC Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp (225801 => 225802) --- trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2017-12-12 21:16:36 UTC (rev 225801) +++ trunk/Source/WebCore/Modules/encryptedmedia/CDM.cpp 2017-12-12 21:35:58 UTC (rev 225802) @@ -31,13 +31,17 @@ #include "CDMFactory.h" #include "CDMPrivate.h" #include "Document.h" +#include "FileSystem.h" #include "InitDataRegistry.h" #include "MediaKeysRequirement.h" #include "MediaPlayer.h" #include "NotImplemented.h" +#include "Page.h" #include "ParsedContentType.h" #include "ScriptExecutionContext.h" #include "SecurityOrigin.h" +#include "SecurityOriginData.h" +#include "Settings.h" #include namespace WebCore { @@ -590,7 +594,9 @@ { if (!m_private) return nullptr; -return m_private->createInstance(); +auto instance = m_private->createInstance(); +instance->setStorageDirectory(storageDirectory()); +return instance; } bool CDM::supportsServerCertificates() const @@ -632,6 +638,23 @@ return m_private->sanitizeSessionId(sessionId); } +String CDM::storageDirectory() const +{ +auto* document = downcast(scriptExecutionContext()); +if (!document) +return emptyString(); + +auto* page = document->page(); +if (!page || page->usesEphemeralSession()) +return emptyString(); + +auto storageDirectory = document->settings().mediaKeysStorageDirectory(); +if (storageDirectory.isEmpty()) +return emptyString(); + +return FileSystem::pathByAppendingComponent(storageDirectory, SecurityOriginData::fromSecurityOrigin(document->securityOrigin()).databaseIdentifier()); } +} + #endif Modified: trunk/Source/WebCore/Modules/encryptedmedia/CDM.h (225801 => 225802) --- trunk/Source/WebCore/Modules/encryptedmedia/CDM.h 2017-12-12 21:16:36 UTC (rev 22580
[webkit-changes] [225801] trunk/Source/WebKit
Title: [225801] trunk/Source/WebKit Revision 225801 Author bfulg...@apple.com Date 2017-12-12 13:16:36 -0800 (Tue, 12 Dec 2017) Log Message Unreviewed build fix after r225763. Remove dangling close-parentheses character. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb Diff Modified: trunk/Source/WebKit/ChangeLog (225800 => 225801) --- trunk/Source/WebKit/ChangeLog 2017-12-12 21:11:11 UTC (rev 225800) +++ trunk/Source/WebKit/ChangeLog 2017-12-12 21:16:36 UTC (rev 225801) @@ -1,3 +1,11 @@ +2017-12-12 Brent Fulgham + +Unreviewed build fix after r225763. + +Remove dangling close-parentheses character. + +* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: + 2017-12-12 Zach Li [WK2] Expose image via WKBundleHitTestResult API. Modified: trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb (225800 => 225801) --- trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb 2017-12-12 21:11:11 UTC (rev 225800) +++ trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb 2017-12-12 21:16:36 UTC (rev 225801) @@ -318,7 +318,7 @@ (allow-create-directory (home-literal "/Library/Caches/com.apple.DictionaryServices")) -(allow-network-common)) +(allow-network-common) ; Sub-TLF: Sandbox change for apps for read-only access to the dictionary directory/data (allow file-read* ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225800] trunk/Source/WebCore
Title: [225800] trunk/Source/WebCore Revision 225800 Author commit-qu...@webkit.org Date 2017-12-12 13:11:11 -0800 (Tue, 12 Dec 2017) Log Message WebGL TextureMapperShaderProgram shaders don't compile in MSVC https://bugs.webkit.org/show_bug.cgi?id=180709 Patch by Christopher Reid on 2017-12-12 Reviewed by Myles C. Maxfield. No new tests, no change in behavior. Vertex and Fragment shaders were not compiling because TextureMapperShaderProgram.cpp was stringifying "#if USE(OPENGL_ES_2) ... #endif" into the shaders rather than evaluating these preprocessor directives before the STRINGIFY expansion. Moved these #if conditions outside of STRINGIFY to remove compiler ambiguity. * platform/graphics/texmap/TextureMapperShaderProgram.cpp: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (225799 => 225800) --- trunk/Source/WebCore/ChangeLog 2017-12-12 21:01:57 UTC (rev 225799) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 21:11:11 UTC (rev 225800) @@ -1,3 +1,20 @@ +2017-12-12 Christopher Reid + +WebGL TextureMapperShaderProgram shaders don't compile in MSVC +https://bugs.webkit.org/show_bug.cgi?id=180709 + +Reviewed by Myles C. Maxfield. + +No new tests, no change in behavior. + +Vertex and Fragment shaders were not compiling because TextureMapperShaderProgram.cpp was +stringifying "#if USE(OPENGL_ES_2) ... #endif" into the shaders rather than evaluating these +preprocessor directives before the STRINGIFY expansion. + +Moved these #if conditions outside of STRINGIFY to remove compiler ambiguity. + +* platform/graphics/texmap/TextureMapperShaderProgram.cpp: + 2017-12-12 Zach Li [WK2] Expose image via WKBundleHitTestResult API. https://bugs.webkit.org/show_bug.cgi?id=180552. Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp (225799 => 225800) --- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp 2017-12-12 21:01:57 UTC (rev 225799) +++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp 2017-12-12 21:11:11 UTC (rev 225800) @@ -58,10 +58,12 @@ #if USE(OPENGL_ES_2) TEXTURE_SPACE_MATRIX_PRECISION_DIRECTIVE #endif +#if USE(OPENGL_ES_2) STRINGIFY( -#if USE(OPENGL_ES_2) precision TextureSpaceMatrixPrecision float; +) #endif +STRINGIFY( attribute vec4 a_vertex; varying vec2 v_texCoord; varying vec2 v_transformedTexCoord; @@ -168,16 +170,21 @@ #if USE(OPENGL_ES_2) TEXTURE_SPACE_MATRIX_PRECISION_DIRECTIVE #endif +#if USE(OPENGL_ES_2) STRINGIFY( -#if USE(OPENGL_ES_2) precision TextureSpaceMatrixPrecision float; +) #endif +STRINGIFY( uniform mat4 u_textureSpaceMatrix; uniform mat4 u_textureColorSpaceMatrix; +) #if USE(OPENGL_ES_2) +STRINGIFY( precision mediump float; +) #endif -); +; // Input/output variables definition for both GLES and OpenGL < 3.2. static const char* fragmentTemplateLT320Vars = ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225798] trunk/Source
Title: [225798] trunk/Source Revision 225798 Author commit-qu...@webkit.org Date 2017-12-12 13:01:26 -0800 (Tue, 12 Dec 2017) Log Message [WK2] Expose image via WKBundleHitTestResult API. https://bugs.webkit.org/show_bug.cgi?id=180552. rdar://problem/23951521 Patch by Zach Li on 2017-12-12 Reviewed by Simon Fraser. Source/WebCore: * platform/graphics/ImageSource.h: This method will be used by clients outside WebCore, so add WEBCORE_EXPORT. Source/WebKit: * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp: (WKBundleHitTestResultGetImage): * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h: * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: (WebKit::InjectedBundleHitTestResult::image const): Convert from WebCore::Image to WebImage by creating a WebImage and paint the WebCore::Image into its graphics context. For now, only handle bitmap images. * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/ImageSource.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h Diff Modified: trunk/Source/WebCore/ChangeLog (225797 => 225798) --- trunk/Source/WebCore/ChangeLog 2017-12-12 21:00:37 UTC (rev 225797) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 21:01:26 UTC (rev 225798) @@ -1,3 +1,14 @@ +2017-12-12 Zach Li +[WK2] Expose image via WKBundleHitTestResult API. +https://bugs.webkit.org/show_bug.cgi?id=180552. +rdar://problem/23951521 + +Reviewed by Simon Fraser. + +* platform/graphics/ImageSource.h: +This method will be used by clients outside WebCore, so +add WEBCORE_EXPORT. + 2017-12-12 Simon Fraser Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace Modified: trunk/Source/WebCore/platform/graphics/ImageSource.h (225797 => 225798) --- trunk/Source/WebCore/platform/graphics/ImageSource.h 2017-12-12 21:00:37 UTC (rev 225797) +++ trunk/Source/WebCore/platform/graphics/ImageSource.h 2017-12-12 21:01:26 UTC (rev 225798) @@ -95,7 +95,7 @@ std::optional hotSpot(); // Image metadata which is calculated from the first ImageFrame. -IntSize size(); +WEBCORE_EXPORT IntSize size(); IntSize sizeRespectingOrientation(); Color singlePixelSolidColor(); SubsamplingLevel maximumSubsamplingLevel(); Modified: trunk/Source/WebKit/ChangeLog (225797 => 225798) --- trunk/Source/WebKit/ChangeLog 2017-12-12 21:00:37 UTC (rev 225797) +++ trunk/Source/WebKit/ChangeLog 2017-12-12 21:01:26 UTC (rev 225798) @@ -1,3 +1,22 @@ +2017-12-12 Zach Li + +[WK2] Expose image via WKBundleHitTestResult API. +https://bugs.webkit.org/show_bug.cgi?id=180552. +rdar://problem/23951521 + +Reviewed by Simon Fraser. + +* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp: +(WKBundleHitTestResultGetImage): +* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h: + +* WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: +(WebKit::InjectedBundleHitTestResult::image const): +Convert from WebCore::Image to WebImage by creating a WebImage +and paint the WebCore::Image into its graphics context. For now, +only handle bitmap images. +* WebProcess/InjectedBundle/InjectedBundleHitTestResult.h: + 2017-12-12 Simon Fraser Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp (225797 => 225798) --- trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp 2017-12-12 21:00:37 UTC (rev 225797) +++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp 2017-12-12 21:01:26 UTC (rev 225798) @@ -31,6 +31,7 @@ #include "WKAPICast.h" #include "WKBundleAPICast.h" #include "WebFrame.h" +#include "WebImage.h" using namespace WebKit; @@ -106,6 +107,12 @@ return toAPI(toImpl(hitTestResultRef)->imageRect()); } +WKImageRef WKBundleHitTestResultCopyImage(WKBundleHitTestResultRef hitTestResultRef) +{ +RefPtr webImage = toImpl(hitTestResultRef)->image(); +return toAPI(webImage.leakRef()); +} + bool WKBundleHitTestResultGetIsSelected(WKBundleHitTestResultRef hitTestResultRef) { return toImpl(hitTestResultRef)->isSelected(); Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h (225797 => 225798) --- trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h 2017-12-12 21:00:37 UTC (rev 225797) +++ trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResu
[webkit-changes] [225797] trunk/Source
Title: [225797] trunk/Source Revision 225797 Author simon.fra...@apple.com Date 2017-12-12 13:00:37 -0800 (Tue, 12 Dec 2017) Log Message Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace https://bugs.webkit.org/show_bug.cgi?id=180689 Reviewed by Tim Horton. Source/WebCore: Remove the ColorSpaceDeviceRGB enum and users. ImageBuffer now uses sRGB instead of deviceRGB in the few cases that used the latter. Switch Windows CG code to use sRGBColorSpaceRef() instead of deviceRGBColorSpaceRef(). Have linearRGBColorSpaceRef() use kCGColorSpaceLinearSRGB, which is present in iOS 9 and 10.11 and later. * page/win/FrameCGWin.cpp: (WebCore::imageFromRect): * platform/graphics/Color.cpp: (WebCore::operator<<): * platform/graphics/ColorSpace.h: * platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::transformColorSpace): * platform/graphics/cg/ColorCG.cpp: (WebCore::Color::Color): (WebCore::leakCGColor): (WebCore::createCGColorWithDeviceRGBA): Deleted. * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::sRGBColorSpaceRef): (WebCore::linearRGBColorSpaceRef): (WebCore::extendedSRGBColorSpaceRef): (WebCore::displayP3ColorSpaceRef): (WebCore::deviceRGBColorSpaceRef): Deleted. * platform/graphics/cg/GraphicsContextCG.h: (WebCore::cachedCGColorSpace): * platform/graphics/cocoa/GraphicsContextCocoa.mm: * platform/graphics/win/GraphicsContextCGWin.cpp: (WebCore::CGContextWithHDC): (WebCore::GraphicsContext::releaseWindowsContext): (WebCore::GraphicsContext::drawWindowsBitmap): * platform/graphics/win/ImageCGWin.cpp: (WebCore::BitmapImage::create): (WebCore::BitmapImage::getHBITMAPOfSize): * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::pixelBufferFromCGImage const): * platform/win/DragImageCGWin.cpp: (WebCore::allocImage): (WebCore::createCgContextFromBitmap): * rendering/svg/RenderSVGResourceFilter.cpp: (WebCore::RenderSVGResourceFilter::postApplyResource): * rendering/svg/RenderSVGResourceMasker.cpp: (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage): Source/WebKit: Remove encoding of ColorSpaceDeviceRGB. * Shared/WebCoreArgumentCoders.h: Source/WebKitLegacy/mac: Use sRGBColorSpaceRef() from WebCore. * WebView/WebHTMLView.mm: (imageFromRect): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/page/win/FrameCGWin.cpp trunk/Source/WebCore/platform/graphics/Color.cpp trunk/Source/WebCore/platform/graphics/ColorSpace.h trunk/Source/WebCore/platform/graphics/ImageBuffer.cpp trunk/Source/WebCore/platform/graphics/cg/ColorCG.cpp trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.h trunk/Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm trunk/Source/WebCore/platform/graphics/win/GraphicsContextCGWin.cpp trunk/Source/WebCore/platform/graphics/win/ImageCGWin.cpp trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm trunk/Source/WebCore/platform/win/DragImageCGWin.cpp trunk/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h trunk/Source/WebKitLegacy/mac/ChangeLog trunk/Source/WebKitLegacy/mac/WebView/WebHTMLView.mm Diff Modified: trunk/Source/WebCore/ChangeLog (225796 => 225797) --- trunk/Source/WebCore/ChangeLog 2017-12-12 20:43:32 UTC (rev 225796) +++ trunk/Source/WebCore/ChangeLog 2017-12-12 21:00:37 UTC (rev 225797) @@ -1,3 +1,55 @@ +2017-12-12 Simon Fraser + +Remove ColorSpaceDeviceRGB and most users of the obsolete deviceRGB colorspace +https://bugs.webkit.org/show_bug.cgi?id=180689 + +Reviewed by Tim Horton. + +Remove the ColorSpaceDeviceRGB enum and users. + +ImageBuffer now uses sRGB instead of deviceRGB in the few cases that used the latter. + +Switch Windows CG code to use sRGBColorSpaceRef() instead of deviceRGBColorSpaceRef(). + +Have linearRGBColorSpaceRef() use kCGColorSpaceLinearSRGB, which is present in iOS 9 and 10.11 and later. + +* page/win/FrameCGWin.cpp: +(WebCore::imageFromRect): +* platform/graphics/Color.cpp: +(WebCore::operator<<): +* platform/graphics/ColorSpace.h: +* platform/graphics/ImageBuffer.cpp: +(WebCore::ImageBuffer::transformColorSpace): +* platform/graphics/cg/ColorCG.cpp: +(WebCore::Color::Color): +(WebCore::leakCGColor): +(WebCore::createCGColorWithDeviceRGBA): Deleted. +* platform/graphics/cg/GraphicsContextCG.cpp: +(WebCore::sRGBColorSpaceRef): +(WebCore::linearRGBColorSpaceRef): +(WebCore::extendedSRGBColorSpaceRef): +(WebCore::displayP3ColorSpaceRef): +(WebCore::deviceRGBColorSpaceRef): Deleted. +* platform/graphics/cg/GraphicsContextCG.h: +(WebCore::cachedCGColorSpace): +* platform/gra
[webkit-changes] [225796] trunk
Title: [225796] trunk Revision 225796 Author commit-qu...@webkit.org Date 2017-12-12 12:43:32 -0800 (Tue, 12 Dec 2017) Log Message Navigation requests should use navigate fetch mode https://bugs.webkit.org/show_bug.cgi?id=179808 Patch by Youenn Fablet on 2017-12-12 Reviewed by Chris Dumez. LayoutTests/imported/w3c: * web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt: * web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt: * web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt: * web-platform-tests/service-workers/service-worker/request-end-to-end.https-expected.txt: This is a progression since test is failing at a later point. Test might need being updated to match latest fetch spec. * web-platform-tests/service-workers/service-worker/resources/clients-get-worker.js: (self.onfetch): Change upstreamed at https://github.com/w3c/web-platform-tests/pull/8289. Source/WebCore: Covered by existing tests. * Modules/fetch/FetchRequest.cpp: (WebCore::buildOptions): Update to throw only if init.mode is Navigate. * Modules/fetch/FetchRequestInit.h: (WebCore::FetchRequestInit::hasMembers const): If init is present, set default values as per spec. * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::loadMainResource): Set fetch mode to navigate. * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Bypass preflight in case fetch mode is navigate. LayoutTests: * http/tests/workers/service/basic-fetch.https-expected.txt: * http/tests/workers/service/resources/basic-fetch-worker.js: * http/tests/workers/service/resources/basic-fetch.js: (async.test): Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch-worker.js trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch.js trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/request-end-to-end.https-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/fetch/FetchRequest.cpp trunk/Source/WebCore/Modules/fetch/FetchRequestInit.h trunk/Source/WebCore/loader/DocumentLoader.cpp trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp Diff Modified: trunk/LayoutTests/ChangeLog (225795 => 225796) --- trunk/LayoutTests/ChangeLog 2017-12-12 19:52:41 UTC (rev 225795) +++ trunk/LayoutTests/ChangeLog 2017-12-12 20:43:32 UTC (rev 225796) @@ -1,5 +1,17 @@ 2017-12-12 Youenn Fablet +Navigation requests should use navigate fetch mode +https://bugs.webkit.org/show_bug.cgi?id=179808 + +Reviewed by Chris Dumez. + +* http/tests/workers/service/basic-fetch.https-expected.txt: +* http/tests/workers/service/resources/basic-fetch-worker.js: +* http/tests/workers/service/resources/basic-fetch.js: +(async.test): + +2017-12-12 Youenn Fablet + Rebasing/unskipping some WPT service worker tests https://bugs.webkit.org/show_bug.cgi?id=180705 Modified: trunk/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt (225795 => 225796) --- trunk/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt 2017-12-12 19:52:41 UTC (rev 225795) +++ trunk/LayoutTests/http/tests/workers/service/basic-fetch.https-expected.txt 2017-12-12 20:43:32 UTC (rev 225796) @@ -9,4 +9,5 @@ PASS: test3 fetch failed as expected test4 status code: 404 PASS: test5 fetch failed as expected +PASS: / fetch failed as expected Modified: trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch-worker.js (225795 => 225796) --- trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch-worker.js 2017-12-12 19:52:41 UTC (rev 225795) +++ trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch-worker.js 2017-12-12 20:43:32 UTC (rev 225796) @@ -19,5 +19,9 @@ return; } +if (event.request.mode !== "navigate") { +event.respondWith(Response.error()); +return; +} event.respondWith(fetch(event.request.url)); }); Modified: trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch.js (225795 => 225796) --- trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch.js 2017-12-12 19:52:41 UTC (rev 225795) +++ trunk/LayoutTests/http/tests/workers/service/resources/basic-fetch.js 2017-12-12 20:43:32 UTC (rev 225796) @@ -40,6 +40,13 @@ log("PASS: test5 fetch failed as expected"); } +try { +response = await fetch("/"); +log("FAIL: / fetch succeeded unexpectedly"); +log("/ status code: " + response.status); +} catch (e) { +log("PASS: / fetch failed as expected"); +} } catch(e) { log("Got exception: " + e);
[webkit-changes] [225795] trunk/Source/WebKit
Title: [225795] trunk/Source/WebKit Revision 225795 Author bfulg...@apple.com Date 2017-12-12 11:52:41 -0800 (Tue, 12 Dec 2017) Log Message REGRESSION(r216941): Plugin Process can't access AppStore Plugin Service https://bugs.webkit.org/show_bug.cgi?id=180701 Reviewed by Daniel Bates. The PluginProcess needs access to the AppStore Plugin XPC service. * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in Diff Modified: trunk/Source/WebKit/ChangeLog (225794 => 225795) --- trunk/Source/WebKit/ChangeLog 2017-12-12 19:40:40 UTC (rev 225794) +++ trunk/Source/WebKit/ChangeLog 2017-12-12 19:52:41 UTC (rev 225795) @@ -1,3 +1,15 @@ +2017-12-12 Brent Fulgham + +REGRESSION(r216941): Plugin Process can't access AppStore Plugin Service +https://bugs.webkit.org/show_bug.cgi?id=180701 + + +Reviewed by Daniel Bates. + +The PluginProcess needs access to the AppStore Plugin XPC service. + +* PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: + 2017-12-12 Brady Eidson Make ServiceWorkers follow the DEFAULT_EXPERIMENTAL_FEATURES_ENABLED flag on Mac. Modified: trunk/Source/WebKit/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in (225794 => 225795) --- trunk/Source/WebKit/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in 2017-12-12 19:40:40 UTC (rev 225794) +++ trunk/Source/WebKit/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in 2017-12-12 19:52:41 UTC (rev 225795) @@ -128,6 +128,7 @@ (xpc-service-name "com.apple.ViewBridgeAuxiliary") (xpc-service-name "com.apple.accessibility.mediaaccessibilityd") (xpc-service-name "com.apple.appkit.xpc.openAndSavePanelService") +(xpc-service-name "com.apple.appstore.PluginXPCService") ; (xpc-service-name "com.apple.audio.SandboxHelper") (xpc-service-name "com.apple.coremedia.videodecoder") (xpc-service-name "com.apple.coremedia.videoencoder") ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225794] trunk/LayoutTests
Title: [225794] trunk/LayoutTests Revision 225794 Author commit-qu...@webkit.org Date 2017-12-12 11:40:40 -0800 (Tue, 12 Dec 2017) Log Message Rebasing/unskipping some WPT service worker tests https://bugs.webkit.org/show_bug.cgi?id=180705 Unreviewed. Patch by Youenn Fablet on 2017-12-12 LayoutTests/imported/w3c: * web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt: * web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt: * web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt: LayoutTests: * TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/TestExpectations trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt Diff Modified: trunk/LayoutTests/ChangeLog (225793 => 225794) --- trunk/LayoutTests/ChangeLog 2017-12-12 19:20:41 UTC (rev 225793) +++ trunk/LayoutTests/ChangeLog 2017-12-12 19:40:40 UTC (rev 225794) @@ -1,3 +1,12 @@ +2017-12-12 Youenn Fablet + +Rebasing/unskipping some WPT service worker tests +https://bugs.webkit.org/show_bug.cgi?id=180705 + +Unreviewed. + +* TestExpectations: + 2017-12-12 Simon Fraser HTML-page with Modified: trunk/LayoutTests/TestExpectations (225793 => 225794) --- trunk/LayoutTests/TestExpectations 2017-12-12 19:20:41 UTC (rev 225793) +++ trunk/LayoutTests/TestExpectations 2017-12-12 19:40:40 UTC (rev 225794) @@ -167,7 +167,6 @@ http/tests/workers/service/service-worker-cache-api.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html [ Pass Failure ] webkit.org/b/179137 imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https.html [ Pass Failure ] -imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https.html [ Pass Failure ] webkit.org/b/179248 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html [ Pass Failure Timeout ] @@ -174,12 +173,9 @@ imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/multiple-update.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/performance-timeline.https.html [ Pass Failure ] -webkit.org/b/179194 imported/w3c/web-platform-tests/service-workers/service-worker/registration-mime-types.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https.html [ Pass Failure ] webkit.org/b/179138 imported/w3c/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https.html [ Pass Failure ] -imported/w3c/web-platform-tests/service-workers/service-worker/service-worker-csp-default.https.html [ Pass Failure ] -imported/w3c/web-platform-tests/service-workers/service-worker/service-worker-csp-script.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/uncontrolled-page.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/update-bytecheck.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/unregister-controller.https.html [ Pass Failure ] @@ -189,7 +185,7 @@ imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https.html [ DumpJSConsoleLogInStdErr Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https.html [ DumpJSConsoleLogInStdErr Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html [ DumpJSConsoleLogInStdErr Pass Failure ] -imported/w3c/web-platform-tests/service-workers/service-worker/update.https.html [ Pass Failure Timeout ] +imported/w3c/web-platform-tests/service-workers/service-worker/update.https.html [ Pass Failure ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-response-taint.https.html [ DumpJSConsoleLogInStdErr ] Modified: trunk/LayoutTests/imported/w3c/ChangeLog (225793 => 225794) --- trunk/La
[webkit-changes] [225793] tags/Safari-605.1.17
Title: [225793] tags/Safari-605.1.17 Revision 225793 Author jmarc...@apple.com Date 2017-12-12 11:20:41 -0800 (Tue, 12 Dec 2017) Log Message Cherry-pick r225768. rdar://problem/34657871 Modified Paths tags/Safari-605.1.17/JSTests/ChangeLog tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog tags/Safari-605.1.17/Source/_javascript_Core/jit/Repatch.cpp tags/Safari-605.1.17/Source/_javascript_Core/runtime/ErrorInstance.cpp tags/Safari-605.1.17/Source/_javascript_Core/runtime/ErrorInstance.h tags/Safari-605.1.17/Source/_javascript_Core/runtime/Structure.cpp Added Paths tags/Safari-605.1.17/JSTests/stress/disable-caching-when-lazy-materializing-error-property-on-put.js Diff Modified: tags/Safari-605.1.17/JSTests/ChangeLog (225792 => 225793) --- tags/Safari-605.1.17/JSTests/ChangeLog 2017-12-12 19:19:11 UTC (rev 225792) +++ tags/Safari-605.1.17/JSTests/ChangeLog 2017-12-12 19:20:41 UTC (rev 225793) @@ -1,3 +1,21 @@ +2017-12-12 Jason Marcell + +Cherry-pick r225768. rdar://problem/34657871 + +2017-12-11 Saam Barati + +We need to disableCaching() in ErrorInstance when we materialize properties +https://bugs.webkit.org/show_bug.cgi?id=180343 + + +Reviewed by Mark Lam. + +* stress/disable-caching-when-lazy-materializing-error-property-on-put.js: Added. +(assert): +(makeError): +(storeToStack): +(storeToStackAlreadyMaterialized): + 2017-12-05 JF Bastien WebAssembly: don't eagerly checksum Added: tags/Safari-605.1.17/JSTests/stress/disable-caching-when-lazy-materializing-error-property-on-put.js (0 => 225793) --- tags/Safari-605.1.17/JSTests/stress/disable-caching-when-lazy-materializing-error-property-on-put.js (rev 0) +++ tags/Safari-605.1.17/JSTests/stress/disable-caching-when-lazy-materializing-error-property-on-put.js 2017-12-12 19:20:41 UTC (rev 225793) @@ -0,0 +1,27 @@ +function assert(b) { +if (!b) +throw new Error; +} + +function makeError() { return new Error; } +noInline(makeError); + +function storeToStack(e) { +e.stack = "foo"; +} +noInline(storeToStack); + +function storeToStackAlreadyMaterialized(e) { +e.stack = "bar"; +} +noInline(storeToStackAlreadyMaterialized); + +for (let i = 0; i < 1; ++i) { +let e = makeError(); +storeToStack(e); +assert(e.stack === "foo"); +if (!!(i % 2)) +e.fooBar = 25; +storeToStackAlreadyMaterialized(e); +assert(e.stack === "bar"); +} Modified: tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog (225792 => 225793) --- tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog 2017-12-12 19:19:11 UTC (rev 225792) +++ tags/Safari-605.1.17/Source/_javascript_Core/ChangeLog 2017-12-12 19:20:41 UTC (rev 225793) @@ -1,3 +1,31 @@ +2017-12-12 Jason Marcell + +Cherry-pick r225768. rdar://problem/34657871 + +2017-12-11 Saam Barati + +We need to disableCaching() in ErrorInstance when we materialize properties +https://bugs.webkit.org/show_bug.cgi?id=180343 + + +Reviewed by Mark Lam. + +This patch fixes a bug in ErrorInstance where we forgot to call PutPropertySlot::disableCaching +on puts() to a property that we lazily materialized. Forgetting to do this goes against the +PutPropertySlot's caching API. This lazy materialization caused the ErrorInstance to transition +from a Structure A to a Structure B. However, we were telling the IC that we were caching an +existing property only found on Structure B. This is obviously wrong as it would lead to an +OOB store if we didn't already crash when generating the IC. + +* jit/Repatch.cpp: +(JSC::tryCachePutByID): +* runtime/ErrorInstance.cpp: +(JSC::ErrorInstance::materializeErrorInfoIfNeeded): +(JSC::ErrorInstance::put): +* runtime/ErrorInstance.h: +* runtime/Structure.cpp: +(JSC::Structure::didCachePropertyReplacement): + 2017-12-10 Filip Pizlo Harden a few assertions in GC sweep Modified: tags/Safari-605.1.17/Source/_javascript_Core/jit/Repatch.cpp (225792 => 225793) --- tags/Safari-605.1.17/Source/_javascript_Core/jit/Repatch.cpp 2017-12-12 19:19:11 UTC (rev 225792) +++ tags/Safari-605.1.17/Source/_javascript_Core/jit/Repatch.cpp 2017-12-12 19:20:41 UTC (rev 225793) @@ -422,6 +422,14 @@ if (slot.base() == baseValue && slot.isCacheablePut()) { if (slot.type() == PutPropertySlot::ExistingProperty) { +// This assert helps catch bugs if we accidentally forget to disable caching +// when we transition then store to an existing property. This is common among +// paths that reify lazy properties. If we reify a lazy property and forget +// to disable caching, we may com
[webkit-changes] [225792] trunk/Source/WTF
Title: [225792] trunk/Source/WTF Revision 225792 Author joep...@webkit.org Date 2017-12-12 11:19:11 -0800 (Tue, 12 Dec 2017) Log Message Symbol not found: __ZN3WTF8LockBase10unlockSlowEv https://bugs.webkit.org/show_bug.cgi?id=180691 Reviewed by Yusuke Suzuki. * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: (WTF::LockBase::lockSlow): (WTF::LockBase::unlockSlow): Add back LockBase Symbols used by System Safari on 10.13. Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/mac/DeprecatedSymbolsUsedBySafari.mm Diff Modified: trunk/Source/WTF/ChangeLog (225791 => 225792) --- trunk/Source/WTF/ChangeLog 2017-12-12 19:15:50 UTC (rev 225791) +++ trunk/Source/WTF/ChangeLog 2017-12-12 19:19:11 UTC (rev 225792) @@ -1,3 +1,15 @@ +2017-12-12 Joseph Pecoraro + +Symbol not found: __ZN3WTF8LockBase10unlockSlowEv +https://bugs.webkit.org/show_bug.cgi?id=180691 + +Reviewed by Yusuke Suzuki. + +* wtf/mac/DeprecatedSymbolsUsedBySafari.mm: +(WTF::LockBase::lockSlow): +(WTF::LockBase::unlockSlow): +Add back LockBase Symbols used by System Safari on 10.13. + 2017-12-12 Yusuke Suzuki [WTF] Thread::create should have Thread::tryCreate Modified: trunk/Source/WTF/wtf/mac/DeprecatedSymbolsUsedBySafari.mm (225791 => 225792) --- trunk/Source/WTF/wtf/mac/DeprecatedSymbolsUsedBySafari.mm 2017-12-12 19:15:50 UTC (rev 225791) +++ trunk/Source/WTF/wtf/mac/DeprecatedSymbolsUsedBySafari.mm 2017-12-12 19:19:11 UTC (rev 225792) @@ -129,4 +129,23 @@ } #endif +#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101400 +struct LockBase { +private: +WTF_EXPORT_PRIVATE void lockSlow(); +WTF_EXPORT_PRIVATE void unlockSlow(); +Atomic m_byte; +}; + +void LockBase::lockSlow() +{ +DefaultLockAlgorithm::lockSlow(m_byte); +} + +void LockBase::unlockSlow() +{ +DefaultLockAlgorithm::unlockSlow(m_byte, DefaultLockAlgorithm::Unfair); +} +#endif + } // namespace WTF ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [225791] trunk
Title: [225791] trunk Revision 225791 Author simon.fra...@apple.com Date 2017-12-12 11:15:50 -0800 (Tue, 12 Dec 2017) Log Message HTML-page with Reviewed by Antti Koivisto. Source/WebCore: The test case has script that conditionalizes behavior on whether window.innerWidth/Height are zero during the load event. We didn't force layout in innerWidth/Height, so whether they would zero depended on whether the parent frame had laid out, which was timing-sensitive. Fix by triggering enough layout in the parent document so that the FrameView is resized before fetching its dimensions in innerWidth/Height. This causes our behavior to match Chrome and Firefox. Test: fast/dom/iframe-innerWidth.html * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): Add some logging that helped me diagnose this. * page/DOMWindow.cpp: (WebCore::DOMWindow::innerHeight const): (WebCore::DOMWindow::innerWidth const): LayoutTests: Adjust a test where the new layout is triggering scrollbar creation. * fast/dom/iframe-inner-size-scaling-expected.txt: * fast/dom/iframe-inner-size-scaling.html: * fast/dom/iframe-innerWidth-expected.txt: Added. * fast/dom/iframe-innerWidth.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/fast/dom/iframe-inner-size-scaling-expected.txt trunk/LayoutTests/fast/dom/iframe-inner-size-scaling.html trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/dom/EventDispatcher.cpp trunk/Source/WebCore/page/DOMWindow.cpp Added Paths trunk/LayoutTests/fast/dom/iframe-innerWidth-expected.txt trunk/LayoutTests/fast/dom/iframe-innerWidth.html Diff Modified: trunk/LayoutTests/ChangeLog (225790 => 225791) --- trunk/LayoutTests/ChangeLog 2017-12-12 19:01:18 UTC (rev 225790) +++ trunk/LayoutTests/ChangeLog 2017-12-12 19:15:50 UTC (rev 225791) @@ -1,3 +1,18 @@ +2017-12-12 Simon Fraser + +HTML-page with + +Reviewed by Antti Koivisto. + +Adjust a test where the new layout is triggering scrollbar creation. + +* fast/dom/iframe-inner-size-scaling-expected.txt: +* fast/dom/iframe-inner-size-scaling.html: +* fast/dom/iframe-innerWidth-expected.txt: Added. +* fast/dom/iframe-innerWidth.html: Added. + 2017-12-11 Antoine Quint [Web Animations] Enqueue and dispatch animation events Modified: trunk/LayoutTests/fast/dom/iframe-inner-size-scaling-expected.txt (225790 => 225791) --- trunk/LayoutTests/fast/dom/iframe-inner-size-scaling-expected.txt 2017-12-12 19:01:18 UTC (rev 225790) +++ trunk/LayoutTests/fast/dom/iframe-inner-size-scaling-expected.txt 2017-12-12 19:15:50 UTC (rev 225791) @@ -6,7 +6,7 @@ PASS frame.contentWindow.innerWidth is non-zero. PASS frame.contentWindow.innerHeight is non-zero. PASS frame.contentWindow.innerWidth is originalWidth -PASS frame.contentWindow.innerHeight is originalHeight +PASS frame.contentWindow.innerHeight is originalHeight - scrollbarWidth PASS successfullyParsed is true TEST COMPLETE Modified: trunk/LayoutTests/fast/dom/iframe-inner-size-scaling.html (225790 => 225791) --- trunk/LayoutTests/fast/dom/iframe-inner-size-scaling.html 2017-12-12 19:01:18 UTC (rev 225790) +++ trunk/LayoutTests/fast/dom/iframe-inner-size-scaling.html 2017-12-12 19:15:50 UTC (rev 225791) @@ -1,5 +1,6 @@ +