Timeline



Nov 17, 2019:

10:27 PM Changeset in webkit [252537] by rniwa@webkit.org
  • 5 edits in trunk

Focusing a shadow host which delegates focus should skip inner shadow hosts which delegate focus
https://bugs.webkit.org/show_bug.cgi?id=203869

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported the latest test from https://github.com/web-platform-tests/wpt/pull/20079.

  • web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus-expected.txt:
  • web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html:

Source/WebCore:

Fixed the bug that WebKit doesn't skip a shadow host with delegatesFocus set when looking for
the first programatically focusable element.

Test: imported/w3c/web-platform-tests/shadow-dom/focus/focus-method-delegatesFocus.html

  • dom/Element.cpp:

(WebCore::shadowRootWithDelegatesFocus): Added.
(WebCore::isProgramaticallyFocusable): Updated to return false on a shadow host with delegatesFocus.
(WebCore::Element::focus): Don't move the focus if the shadow host only contains a focused element
per https://github.com/w3c/webcomponents/issues/840.

5:12 PM Changeset in webkit [252536] by ap@apple.com
  • 3 edits in trunk/Source/WebKit

Better build fix attempt after r252434.

We do need this variant, it was a mistake to claim that it's "old".

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:

(WebKit::decidePolicyForGeolocationRequestFromOrigin):

5:06 PM Changeset in webkit [252535] by ap@apple.com
  • 3 edits in trunk/Source/WebKit

Build fix attempt after r252434.

This variant of decidePolicyForGeolocationRequestFromOrigin doesn't exist in UIKit.
Removing dead code, but someone needs to take a look at what the original intent here was.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:

(WebKit::decidePolicyForGeolocationRequestFromOrigin):

2:30 PM Changeset in webkit [252534] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] Move layout state initialization out of LayoutContext
https://bugs.webkit.org/show_bug.cgi?id=204285
<rdar://problem/57262858>

Reviewed by Antti Koivisto.

Move layout initialization to FrameViewLayoutContext::layoutUsingFormattingContext. This is now pretty close to
what the final initialization will look like.

  • layout/LayoutContext.cpp:

(WebCore::Layout::initializeLayoutState): Deleted.
(WebCore::Layout::LayoutContext::runLayout): Deleted.
(WebCore::Layout::LayoutContext::runLayoutAndVerify): Deleted.
(WebCore::Layout::LayoutContext::createLayoutState): Deleted.

  • layout/LayoutContext.h:

(WebCore::Layout::LayoutContext::layoutState):

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::LayoutState):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::root const):
(WebCore::Layout::LayoutState::rootRenderer const):
(WebCore::Layout::LayoutState::setQuirksMode):
(WebCore::Layout::LayoutState::layoutBoxForRenderer const): Deleted.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::LayoutTreeContent::LayoutTreeContent):
(WebCore::Layout::TreeBuilder::buildLayoutTree):
(WebCore::Layout::TreeBuilder::buildTree):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::printLayoutTreeForLiveDocuments):

  • layout/layouttree/LayoutTreeBuilder.h:

(WebCore::Layout::LayoutTreeContent::rootLayoutBox const):
(WebCore::Layout::LayoutTreeContent::rootLayoutBox):
(WebCore::Layout::LayoutTreeContent::rootRenderer const):
(WebCore::Layout::LayoutTreeContent::layoutBoxForRenderer):
(WebCore::Layout::LayoutTreeContent::addLayoutBoxForRenderer):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):
(WebCore::FrameViewLayoutContext::invalidateLayoutTreeContent):

  • page/FrameViewLayoutContext.h:

(WebCore::FrameViewLayoutContext::layoutTreeContent const):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle):

1:02 PM Changeset in webkit [252533] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Pass in the content area to LayoutContext::layout
https://bugs.webkit.org/show_bug.cgi?id=204284
<rdar://problem/57262690>

Reviewed by Antti Koivisto.

Note that we never layout the root box. It has to have an already computed geometry (in case of ICB, it's the view geometry).

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):
(WebCore::Layout::LayoutContext::runLayout):
(WebCore::Layout::LayoutContext::runLayoutAndVerify):

  • layout/LayoutContext.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::printLayoutTreeForLiveDocuments):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):

12:59 PM Changeset in webkit [252532] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Out-of-flow] Collect out-of-flow boxes lazily
https://bugs.webkit.org/show_bug.cgi?id=204282
<rdar://problem/57259302>

Reviewed by Antti Koivisto.

Eventually we need to turn it into a register-self as boxes are being inserted.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::collectOutOfFlowDescendantsIfNeeded):

  • layout/FormattingContext.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::initializeLayoutState):

12:54 PM Changeset in webkit [252531] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Invalidation] Add support for simple inline invalidation
https://bugs.webkit.org/show_bug.cgi?id=204268
<rdar://problem/57248995>

Reviewed by Antti Koivisto.

Eventually invalidateFormattingState() will take care of cleaning up the state based on the current InvalidationState.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::invalidateFormattingState):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::resetInlineRuns):

12:01 PM Changeset in webkit [252530] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Optimize Line::isVisuallyEmpty for the most common inline content.
https://bugs.webkit.org/show_bug.cgi?id=204259
<rdar://problem/57243610>

Reviewed by Antti Koivisto.

Move the check on text content to the front.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::isVisuallyEmpty const):

Nov 16, 2019:

8:04 PM Changeset in webkit [252529] by Wenson Hsieh
  • 5 edits in trunk

REGRESSION (r243606): Interacting with date and time pickers hangs the UI process on watchOS
https://bugs.webkit.org/show_bug.cgi?id=204280
<rdar://problem/49718359>

Reviewed by Chris Dumez.

Source/WebKit:

After r243606, interacting with date and time inputs on watchOS hangs the UI process indefinitely while
attempting to create an input peripheral (WKFormInputControl) for the date or time picker. This is because, in
the process of setting up a new WKDateTimePicker, we call into +[UIKeyboard defaultSizeForInterfaceOrientation:]
which hangs when attempting to fetch the current UIKit keyboard layout type.

To address this, we simply avoid setting _inputPeripheral on watchOS, as we did prior to r243606. Covered by the
existing layout test fast/forms/watchos/time-picker-value-change.html, which currently times out.

  • UIProcess/ios/WKContentViewInteraction.mm:

(createInputPeripheralWithView):

LayoutTests:

Clean up a few details in the layout test.

  • fast/forms/watchos/time-picker-value-change-expected.txt:
  • fast/forms/watchos/time-picker-value-change.html:

Tweak the test description, and simplify logic for completing the layout test.

4:09 PM Changeset in webkit [252528] by Wenson Hsieh
  • 10 edits in trunk

[iOS] [UIWKDocumentContext] Add the ability to request all marked text rects
https://bugs.webkit.org/show_bug.cgi?id=204278
<rdar://problem/56527803>

Reviewed by Tim Horton.

Source/WebCore:

Mark a constructor as WEBCORE_EXPORT. See WebKit ChangeLog for more details.

  • editing/TextIterator.h:

Source/WebKit:

Add support for a new UIWKDocumentRequest option to request character rects for each character in the marked
text range. Unless UIWKDocumentRequestRects is additionally specified (in which case we'll return rects for
every single character in the editable root anyways), this option will ensure that all characters in the
composition range (which should match -[UIWKDocumentContext markedTextRange]) will have known character rects
that can be retrieved using -[UIWKDocumentContext enumerateLayoutRects:] (or one of the other helper methods
that utilize -enumerateLayoutRects:).

Test: WebKit.DocumentEditingContextWithMarkedText

  • Platform/spi/ios/UIKitSPI.h:

Add a staging declaration for the new option.

  • Shared/DocumentEditingContext.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(toWebDocumentRequestOptions):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Refactor logic that uses CharacterIterator to find rects for each character range into a lambda function, and
use this lambda function to handle UIWKDocumentRequestRects and the new UIWKDocumentRequestMarkedTextRects. The
marked text range is relative to the start of the context before the selection.

Tools:

Add an API test to exercise the new request option.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(-[UIWKDocumentContext markedTextRects]):

  • TestWebKitAPI/ios/UIKitSPI.h:
9:58 AM WebKitGTK/2.26.x edited by Philippe Normand
(diff)
9:57 AM WebKitGTK/2.26.x edited by Philippe Normand
(diff)
9:11 AM Changeset in webkit [252527] by Philippe Normand
  • 9 edits
    5 adds in trunk

Unreviewed, rolling out r252526.

broke iOS and mac builds

Reverted changeset:

"Unreviewed, rolling out r252455."
https://bugs.webkit.org/show_bug.cgi?id=204272
https://trac.webkit.org/changeset/252526

6:28 AM Changeset in webkit [252526] by commit-queue@webkit.org
  • 9 edits
    3 deletes in trunk

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

Broke a layout-test on iOS (Requested by aakashja_ on
#webkit).

Reverted changeset:

"[Web Animations] Retargeted transitions targeting accelerated
properties do not stop the original transition"
https://bugs.webkit.org/show_bug.cgi?id=204116
https://trac.webkit.org/changeset/252455

Nov 15, 2019:

11:54 PM Changeset in webkit [252525] by ysuzuki@apple.com
  • 16 edits in trunk/Source

[JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204269

Reviewed by Saam Barati.

Source/JavaScriptCore:

We should remove index-masking for ScopedArguments. This patch reverts it.
We still use AuxiliaryBuffer, and avoid using variable sized cell. Then,
this patch also puts ScopedArguments in IsoSubspace.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::preciseIndexMask64): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::preciseIndexMask32): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitPreparePreciseIndexMask32): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JIT.cpp:

(JSC::JIT::JIT):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

  • runtime/ScopedArguments.cpp:

(JSC::ScopedArguments::ScopedArguments):
(JSC::ScopedArguments::createUninitialized):
(JSC::ScopedArguments::create):
(JSC::ScopedArguments::createByCopyingFrom):
(JSC::ScopedArguments::visitChildren):
(JSC::ScopedArguments::overrideThings):
(JSC::ScopedArguments::overrideThingsIfNecessary):
(JSC::ScopedArguments::unmapArgument):

  • runtime/ScopedArguments.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WTF:

  • wtf/MathExtras.h:

(WTF::computeIndexingMask): Deleted.
(WTF::preciseIndexMaskShiftForSize): Deleted.
(WTF::preciseIndexMaskShift): Deleted.
(WTF::opaque): Deleted.
(WTF::preciseIndexMaskPtr): Deleted.

9:45 PM Changeset in webkit [252524] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r252497): Multiple mediacapturefromelement tests are crashing on mac debug
https://bugs.webkit.org/show_bug.cgi?id=204267
<rdar://problem/57248130>

Reviewed by Alexey Proskuryakov.

Make sure the CanvasCaptureMediaStreamTrack factory function calls suspendIfNeeded()
since the class inhehits ActiveDOMObject.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::create):

8:31 PM Changeset in webkit [252523] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: support multiline CSS property values
https://bugs.webkit.org/show_bug.cgi?id=203754
<rdar://problem/56819044>

Reviewed by Brian Burg.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.update):
(WI.CSSProperty.prototype._updateStyleText):
When the property is updated from the backend, find the first newline inside the value and
preserve the indent string so it can be re-added when updating the backend.

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype._handleKeyDown):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
(.spreadsheet-style-declaration-editor .property:not(.disabled).has-newline .value): Added.
(.spreadsheet-style-declaration-editor .property:not(.disabled).has-newline .semicolon): Added.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.updateStatus):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldAllowsNewlines): Added.
(WI.SpreadsheetStyleProperty.prototype._handleValueChange):
Support shift-enter when editing a CSS property's value to insert a newline.

8:21 PM Changeset in webkit [252522] by eric.carlson@apple.com
  • 10 edits in trunk/Source

Don't use AVCapture on watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=204254
<rdar://problem/45508044>

Reviewed by Youenn Fablet.

  • Configurations/FeatureDefines.xcconfig:
8:13 PM Changeset in webkit [252521] by eric.carlson@apple.com
  • 4 edits in trunk

[iOS] Audio capture fails when a track is unmuted
https://bugs.webkit.org/show_bug.cgi?id=204202
<rdar://problem/57005820>

Reviewed by Jer Noble.
Source/WebCore:

No new tests, this fixes an API test broken by r252470.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setMuted):

Tools:

Make WebKit2.CaptureMute failures easier to diagnose.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::wkMediaCaptureStateString):
(TestWebKitAPI::waitUntilCaptureState):
(TestWebKitAPI::TEST):

7:44 PM Changeset in webkit [252520] by Ross Kirsling
  • 59 edits in trunk

[JSC] Anonymous built-in functions should have empty string for a name
https://bugs.webkit.org/show_bug.cgi?id=204214

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark 20 test cases as passing.

  • stress/builtin-function-name.js:

(shouldThrow):

  • stress/private-name-as-anonymous-builtin.js:

Fix tests which are no longer accurate.

Source/JavaScriptCore:

Ensure that Function.prototype.name (exists and) is an empty string for various anonymous built-in functions,
following https://github.com/tc39/ecma262/pull/1490.

Specifically:

  1. for promises, resolve / reject / executor elements are lacking a name property
  2. for proxies, the revocation function is lacking a name property
  3. for certain Intl objects, function getters return a bound function named "bound <name>" instead of ""

This change also means that we no longer need the NameVisibility enum or isAnonymousBuiltinFunction logic.

  • builtins/PromiseConstructor.js:
  • builtins/PromiseOperations.js:

Ensure resolve / reject / executor elements have a name property.
(They were @-named, which resulted in no name property at all.)

  • runtime/ProxyRevoke.cpp:

(JSC::ProxyRevoke::create):
(JSC::ProxyRevoke::finishCreation):

  • runtime/ProxyRevoke.h:

Ensure revocation functions have a name property.
(NameVisibility existed solely to ensure this *wasn't* the case.)

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototypeGetterCompare):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototypeGetterFormat):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototypeGetterFormat):
Give these bound functions an empty name.

  • bytecode/UnlinkedFunctionExecutable.h:
  • runtime/FunctionExecutable.h:
  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::create):
(JSC::FunctionRareData::FunctionRareData):

  • runtime/FunctionRareData.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::allocateRareData):
(JSC::JSFunction::allocateAndInitializeRareData):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):

  • runtime/JSFunction.h:
  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::hasReifiedName const): Ensure bound anonymous built-in functions can have an empty name.
(JSC::JSFunction::isAnonymousBuiltinFunction const): Deleted.
Get rid of isAnonymousBuiltinFunction logic.

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):

  • runtime/AsyncFunctionConstructor.cpp:

(JSC::AsyncFunctionConstructor::finishCreation):

  • runtime/AsyncGeneratorFunctionConstructor.cpp:

(JSC::AsyncGeneratorFunctionConstructor::finishCreation):

  • runtime/BigIntConstructor.cpp:

(JSC::BigIntConstructor::finishCreation):

  • runtime/BooleanConstructor.cpp:

(JSC::BooleanConstructor::finishCreation):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::finishCreation):

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::finishCreation):

  • runtime/FunctionConstructor.cpp:

(JSC::FunctionConstructor::finishCreation):

  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::finishCreation):

  • runtime/GeneratorFunctionConstructor.cpp:

(JSC::GeneratorFunctionConstructor::finishCreation):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):

  • runtime/InternalFunction.h:
  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructor::finishCreation):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructor::finishCreation):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructor::finishCreation):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::IntlPluralRulesConstructor::finishCreation):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSGenericArrayBufferConstructor<sharingMode>::finishCreation):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::finishCreation):

  • runtime/MapConstructor.cpp:

(JSC::MapConstructor::finishCreation):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructorBase::finishCreation):

  • runtime/NullGetterFunction.h:
  • runtime/NullSetterFunction.h:
  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::finishCreation):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::finishCreation):

  • runtime/SetConstructor.cpp:

(JSC::SetConstructor::finishCreation):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::finishCreation):

  • runtime/SymbolConstructor.cpp:

(JSC::SymbolConstructor::finishCreation):

  • runtime/WeakMapConstructor.cpp:

(JSC::WeakMapConstructor::finishCreation):

  • runtime/WeakObjectRefConstructor.cpp:

(JSC::WeakObjectRefConstructor::finishCreation):

  • runtime/WeakSetConstructor.cpp:

(JSC::WeakSetConstructor::finishCreation):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::finishCreation):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::finishCreation):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::finishCreation):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::finishCreation):
Get rid of NameVisibility enum.

6:34 PM Changeset in webkit [252519] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/bmalloc

[bmalloc] The tracking of freeableMemory of Heap doesn't count Chunk's metadata size.
https://bugs.webkit.org/show_bug.cgi?id=204135

Reviewed by Yusuke Suzuki.

When chunk is allocated in allocateSmallChunk(), all chunk size is added to freeableMemory.
This is wrong. Only free pages should be added to it.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallChunk):

6:32 PM Changeset in webkit [252518] by basuke.suzuki@sony.com
  • 13 edits in trunk/Source/bmalloc

[Mac] Use better describing name for Mac's scavenger compiler flag.
https://bugs.webkit.org/show_bug.cgi?id=203922

Reviewed by Yusuke Suzuki.

Changing BPLATFORM(MAC) to BUSE(PARTIAL_SCAVENGE).

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):

  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h:

(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::scavenge):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:
  • bmalloc/LargeMap.cpp:

(bmalloc::LargeMap::add):

  • bmalloc/LargeRange.h:

(bmalloc::LargeRange::LargeRange):
(bmalloc::merge):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::threadRunLoop):

  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:
5:58 PM Changeset in webkit [252517] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: move the "Local Override..." creation context menu item from the Breakpoints section options menu to the Create Resource menu
https://bugs.webkit.org/show_bug.cgi?id=204178

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._willDismissLocalOverridePopover):
(WI.SourcesNavigationSidebarPanel.prototype._addLocalOverride):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):
If the Local Overrides section isn't already visible, show it. Use the Local Overrides title
as the anchor for the configuration popover. If there are no existing Local Overrides, show
placeholder "No Overrides" text temporarily.

  • UserInterface/Views/EventBreakpointPopover.js:

(WI.EventBreakpointPopover.prototype._showSuggestionsView):

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype._presentOverTargetElement):

  • UserInterface/Views/URLBreakpointPopover.js:

(WI.URLBreakpointPopover.prototype._presentOverTargetElement):
Add some padding around the popover's anchor so the arrow doesn't overlap it.

  • Localizations/en.lproj/localizedStrings.js:
5:48 PM Changeset in webkit [252516] by mmaxfield@apple.com
  • 12 edits in trunk

[Apple] Enable variation fonts on all Apple platforms
https://bugs.webkit.org/show_bug.cgi?id=198100

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:42 PM Changeset in webkit [252515] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Update style of lambda in isolated tree
https://bugs.webkit.org/show_bug.cgi?id=204233
<rdar://problem/57232085>

Reviewed by Darin Adler.

Remove unnecessary & capture and Optional<AXID>.

  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::objectAttributeValue const):
(WebCore::AXIsolatedObject::rectAttributeValue const):
(WebCore::AXIsolatedObject::doubleAttributeValue const):
(WebCore::AXIsolatedObject::unsignedAttributeValue const):
(WebCore::AXIsolatedObject::boolAttributeValue const):
(WebCore::AXIsolatedObject::stringAttributeValue const):
(WebCore::AXIsolatedObject::intAttributeValue const):

5:25 PM Changeset in webkit [252514] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] DFG strength reduction should define "groups" for RegExp constant-folded result
https://bugs.webkit.org/show_bug.cgi?id=204264

Reviewed by Michael Saboff.

JSTests:

  • stress/dfg-strength-reduction-for-regexp-should-include-groups-property.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

We always define "groups" property in the result of RegExp matching.
But we do not define it when DFG performs strength-reduction for the RegExp matching node.
This patch adds "groups" field correctly.

  • dfg/DFGStrengthReductionPhase.cpp:

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

  • runtime/RegExpMatchesArray.cpp:

(JSC::createEmptyRegExpMatchesArray):

4:44 PM Changeset in webkit [252513] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

Wasm error message should be cross-thread-copied
https://bugs.webkit.org/show_bug.cgi?id=204143

Reviewed by Mark Lam.

JSTests:

  • stress/wasm-error-message-cross-threads.js: Added.

(f):

Source/JavaScriptCore:

It is shared by multiple threads, so we should copy it via crossThreadCopy.

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::errorMessage):

  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::parseAndValidateModule):

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::errorMessage const):
(JSC::Wasm::Plan::failed const):

  • wasm/WasmStreamingParser.h:

(JSC::Wasm::StreamingParser::errorMessage const):

4:42 PM Changeset in webkit [252512] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

4:05 PM Changeset in webkit [252511] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CRASH in SourceBuffer::removeCodedFrames()
https://bugs.webkit.org/show_bug.cgi?id=204248

Reviewed by Eric Carlson.

Speculative fix for rare crash. It's possible that the startTime and endTime inputs to
removeCodedFrames() are out-of-order, which could lead to iterating off the end of the
SampleMap. Verify that startTime < endTime and bail out early if not true.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeCodedFrames):

3:54 PM Changeset in webkit [252510] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Add more release logging for network load restarts
https://bugs.webkit.org/show_bug.cgi?id=204234

Reviewed by Youenn Fablet.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::restartNetworkLoad):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):

3:43 PM Changeset in webkit [252509] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.0.5

Tag Safari-608.4.9.0.5.

3:38 PM Changeset in webkit [252508] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix sysctl-read sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=204238
<rdar://problem/57198954>

Reviewed by Brent Fulgham.

There is missing a rule for reading a specific sysctl property in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:22 PM Changeset in webkit [252507] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout test animations/no-style-recalc-during-accelerated-animation.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204253

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:19 PM Changeset in webkit [252506] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] Update windows bots in config.json
https://bugs.webkit.org/show_bug.cgi?id=204245

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json:
3:15 PM Changeset in webkit [252505] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Windows EWS should not upload archives
https://bugs.webkit.org/show_bug.cgi?id=204229

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
3:05 PM Changeset in webkit [252504] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

JS wrappers of scroll event targets can get prematurely collected by GC
https://bugs.webkit.org/show_bug.cgi?id=204219

Reviewed by Keith Miller.

Source/WebCore:

This patch addresses the bug that the JS wrappers of the pending scroll event targets can be
collected by GC before scroll events are fired. This bug has always existed but it's worse after
r252205 because there is more of a time delay between an element is scrolled in RenderLayer sense
and when the corresponding scroll event is fired on the element.

Fixed the bug by using GCReachableRef to store the pending scroll event targets introduced in r252205
to keep the JS wrappers of those elements & document alive.

Test: fast/scrolling/scrolling-event-target-gc.html

  • dom/Document.cpp:

(WebCore::Document::PendingScrollEventTargetList): Added. Wraps Vector<GCReachableRef<ContainerNode>>
to avoid including GCReachableRef.h in Document.h.
(WebCore::Document::commonTeardown): Clear m_pendingScrollEventTargetList to avoid document leaks.
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::runScrollSteps):

  • dom/Document.h:

LayoutTests:

Added a regression test for adding elements as pending scroll event targets,
and removing them from the document before scroll events are fired.

  • fast/scrolling/scrolling-event-target-gc-expected.txt: Added.
  • fast/scrolling/scrolling-event-target-gc.html: Added.
3:00 PM Changeset in webkit [252503] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed Mojave build fix after r252501; wrap calls to AVContentKeyRequest.options in
ALLOW_NEW_API_WITHOUT_GUARDS_BEGIN / ALLOW_NEW_API_WITHOUT_GUARDS_END.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::initTypeForRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):

2:10 PM Changeset in webkit [252502] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Rename InPlaceAbstractState's m_foundConstant to m_shouldTryConstantFolding.
https://bugs.webkit.org/show_bug.cgi?id=204244

Reviewed by Saam Barati.

m_shouldTryConstantFolding is a more accurate description of what this flag really
means i.e. that the AbstractInterpreter thinks that we may benefit from constant
folding, and therefore, should attempt it. It doesn't always mean that it found
constants to be folded. It also doesn't guarantee that the constant folding phase
will succeed in folding any constants.

  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::setConstant):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAtTailAbstractState.h:

(JSC::DFG::AtTailAbstractState::setShouldTryConstantFolding):
(JSC::DFG::AtTailAbstractState::setFoundConstants): Deleted.

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::BasicBlock):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::InPlaceAbstractState::initialize):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::setShouldTryConstantFolding):
(JSC::DFG::InPlaceAbstractState::setFoundConstants): Deleted.

1:57 PM Changeset in webkit [252501] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r251895) - 'sinf' init data flow generates 'cenc' style encrypted messages
https://bugs.webkit.org/show_bug.cgi?id=204239
<rdar://problem/57166445>

Reviewed by Eric Carlson.

Track what kind of initialization data was used for a given AVContentKeyRequest, and
generate that initialiazation data type of MediaKeySession message.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::keyIDsForRequest):
(WebCore::initTypeForRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::nextRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::lastKeyRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const):

1:51 PM Changeset in webkit [252500] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add SPI to clear web process cache
https://bugs.webkit.org/show_bug.cgi?id=204210

Patch by Benjamin Nham <Ben Nham> on 2019-11-15
Reviewed by Chris Dumez.

This adds an SPI to clear cached web processes. The intended use case is to add a lukewarm mode to
Mac PLT5 in which web pages load in a new WebProcess and load resources from the disk cache.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _clearWebProcessCache]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

(-[WKProcessPool _clearWebProcessCache]):

1:35 PM Changeset in webkit [252499] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix sandbox violation in the WebContent process related to WebRTC audio captures
https://bugs.webkit.org/show_bug.cgi?id=204240
<rdar://problem/57170333>

Reviewed by Brent Fulgham.

The WebContent process needs access to read a new audio related preference domain.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:13 PM Changeset in webkit [252498] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r252487
https://bugs.webkit.org/show_bug.cgi?id=204235

Unreviewed WPE and GTK+ gardening after r252487.

  • platform/gtk/TestExpectations:
12:08 PM Changeset in webkit [252497] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Regression: http/tests/navigation/page-cache-getUserMedia-pending-promise.html is crashing in Debug
https://bugs.webkit.org/show_bug.cgi?id=204232

Reviewed by Eric Carlson.

No new tests, covered by http/tests/navigation/page-cache-getUserMedia-pending-promise.html.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::create):
(WebCore::MediaStreamTrack::MediaStreamTrack):
Call suspendIfNeeded() in the factory and not in the constructor. It is never safe to call
suspendIfNeeded() from inside the constructor because it may call the suspend() method, which
may ref |this|.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):
Queue a task on the HTML event loop when the user media request is approved. This way, if the
page is suspended when this happens, we delay constructing the media stream (among other things)
until the page actually resumes.

11:56 AM Changeset in webkit [252496] by Wenson Hsieh
  • 6 edits in trunk/LayoutTests

[iOS] Two layout tests in editing/selection/ios time out when waiting for selection views to appear
https://bugs.webkit.org/show_bug.cgi?id=204231
<rdar://problem/56096961>

Reviewed by Megan Gardner.

Adjust these layout tests to select text by long pressing, instead of selecting text by tapping a button that
programmatically selects a range of text. The latter only results in platform selection views if the user (or,
in this case, a previous test in the same web view) has already manually selected text. This isn't guaranteed,
given that the previous test may have timed out, or may have different test options which require a new
WKWebView to have been created.

  • editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html:
  • editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text-expected.txt:
  • editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html:
  • resources/ui-helper.js:

(window.UIHelper.async.longPressElement):
(window.UIHelper.async.longPressAtPoint.return.new.Promise.):
(window.UIHelper.async.longPressAtPoint.return.new.Promise):
(window.UIHelper.async.longPressAtPoint):

Also add helper methods in ui-helper.js to trigger long press gestures, so that we can start moving away from
the helper methods in basic-gestures.js.

(window.UIHelper):

11:50 AM Changeset in webkit [252495] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Local Overrides: add context menu item to reveal the local override when a resource is loaded from it
https://bugs.webkit.org/show_bug.cgi?id=204206

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Localizations/en.lproj/localizedStrings.js:
11:39 AM Changeset in webkit [252494] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.2/Source

Versioning.

11:38 AM Changeset in webkit [252493] by Alan Coon
  • 1 copy in tags/Safari-609.1.10.2

New tag.

11:36 AM Changeset in webkit [252492] by commit-queue@webkit.org
  • 28 edits in trunk/Source/WebKit

Reduce structure copies when creating an API::FrameInfo
https://bugs.webkit.org/show_bug.cgi?id=204199

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-15
Reviewed by Brady Eidson.

Use WTFMove and references where possible. This is cleanup needed for a future patch.

  • Shared/FrameInfoData.cpp:

(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):
(API::FrameInfo::~FrameInfo): Deleted.
(API::FrameInfo::clearPage): Deleted.

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):
(API::UIClient::runBeforeUnloadConfirmPanel):
(API::UIClient::runOpenPanel):
(API::UIClient::runWebAuthenticationPanel):

  • UIProcess/API/C/WKFrame.cpp:

(WKFrameCreateFrameInfo):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo webView]):

  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):
(WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel):
(WebKit::UIDelegate::UIClient::runOpenPanel):
(WebKit::UIDelegate::UIClient::runWebAuthenticationPanel):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/UserContent/WebScriptMessageHandler.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::runPanel):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::runOpenPanel):

  • UIProcess/WebPageProxy.h:
11:34 AM Changeset in webkit [252491] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: "Style Sheet" appears twice in the resource type scope bar
https://bugs.webkit.org/show_bug.cgi?id=204172

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/Resource.js:

(WI.Resource):
(WI.Resource.prototype.updateForResponse):
Remove compatibility WI.Resource.Type.Stylesheet (which previously existed since the
protocol values for Page.ResourceType match the keys) and instead add compatibility cases
at the necessary callsites.

11:18 AM Changeset in webkit [252490] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Report JSC tests to the results database
https://bugs.webkit.org/show_bug.cgi?id=204091
<rdar://problem/49778900>

Reviewed by Aakash Jain.

Upload results to the specified results database.

DEMONSTRATION OF FAILURE IN EWS BEHAVIOR, DO NOT LAND!

  • Scripts/run-javascriptcore-tests:

(runTest): Parse binary output to mark individual tests as passing
or failing.
(uploadConfiguration): Return a hash map representing the configuration
For this specific test run.
(uploadResults): If a report URL is defined, upload test results to that URL.

  • Scripts/webkitdirs.pm:

(splitVersionString): splitVersionString is supposed to be a generally used
function, so should not set a global variable.
(determineOSXVersion): Remove newline from version number.

10:00 AM Changeset in webkit [252489] by Jonathan Bedard
  • 3 edits in trunk/Tools

run-webkit-tests loads committers.py 4 times, taking about 40ms
https://bugs.webkit.org/show_bug.cgi?id=204211

Reviewed by Aakash Jain.

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLogEntry): Don't create CommitterList on import.

  • Scripts/webkitpy/common/checkout/commitinfo.py:

(CommitInfo.init): Ditto.

9:14 AM Changeset in webkit [252488] by Alan Coon
  • 7 edits in branches/safari-608.4.9.0-branch/Source

Versioning.

9:00 AM Changeset in webkit [252487] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC][Invalidation] Reuse FrameViewLayoutContext::m_layoutState for incremental layout
https://bugs.webkit.org/show_bug.cgi?id=204225
<rdar://problem/57227259>

Reviewed by Antti Koivisto.

Let's rely on the invalidation logic instead of reconstructing the layout state on each layout frame.

  • layout/LayoutContext.cpp:

(WebCore::Layout::initializeLayoutState):
(WebCore::Layout::LayoutContext::runLayoutAndVerify):
(WebCore::Layout::LayoutContext::createLayoutState):

  • layout/LayoutContext.h:
  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::rootRenderer const):

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):

  • page/FrameViewLayoutContext.h:

(WebCore::FrameViewLayoutContext::layoutFormattingState const):
(WebCore::FrameViewLayoutContext::initialLayoutState const): Deleted.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle):

8:58 AM Changeset in webkit [252486] by Simon Fraser
  • 4 edits
    2 adds in trunk

The image is flashing if falls out and has an animation transform: rotate
https://bugs.webkit.org/show_bug.cgi?id=203613

Reviewed by Antti Koivisto.
Source/WebCore:

Code added in r218735 that maps the animation extent through the current animating transform
worked for translations, but not rotation where anchor point matters. This matrix
needs to take anchor point into account.

Shared some code that applies anchor point to a matrix.

Test: compositing/backing/backing-store-attachment-with-rotation.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::layerTransform const):
(WebCore::GraphicsLayerCA::transformByApplyingAnchorPoint const):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

  • platform/graphics/ca/GraphicsLayerCA.h:

LayoutTests:

  • compositing/backing/backing-store-attachment-with-rotation-expected.txt: Added.
  • compositing/backing/backing-store-attachment-with-rotation.html: Added.
8:39 AM Changeset in webkit [252485] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Perform validation of patch before retrying JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204222

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunJavaScriptCoreTests.evaluateCommand): Add a ValidatePatch step before retrying.
(ReRunJavaScriptCoreTests.evaluateCommand): Ditto.

8:36 AM Changeset in webkit [252484] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r244361) iOS: Layout test http/tests/quicklook/rtf-document-domain-is-empty-string.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=204205
<rdar://problem/51864314>

Reviewed by Alex Christensen.

In this test, NSHTMLWriter ends up creating a WebArchive providing file:///index.html as URL. The page's script
then calls document.open(), which triggers a DidExplicitOpenForFrame() IPC to the UIProcess with this URL.
This trips our MESSAGE_CHECK_URL() check in the UIProcess when this path is not within the WebContent process'
sandbox, and we kill the WebContent process. To address the issue, this patch replaces the MESSAGE_CHECK_URL()
with an if check and an early return so that we ignore the IPC if the URL does not make sense, without actually
terminating the WebContent process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didExplicitOpenForFrame):

7:41 AM Changeset in webkit [252483] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Invalidation] Introduce LayoutBox::updateStyle
https://bugs.webkit.org/show_bug.cgi?id=204224
<rdar://problem/57226354>

Reviewed by Antti Koivisto.

This is in preparation for being able to do incremental layouts on partial style change (currently we re-build the tree on each layout frame).

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::layoutBoxForRenderer const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::updateStyle):

  • layout/layouttree/LayoutBox.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle):

6:26 AM Changeset in webkit [252482] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Invalidation] Add a temporary RenderObject to Layout::Box map
https://bugs.webkit.org/show_bug.cgi?id=204218
<rdar://problem/57215201>

Reviewed by Antti Koivisto.

LayoutTreeContent::renderObjectToLayoutBox map enables us to find the associated Layout::Box when style changes on a renderer.
This is temporary until after we implement fully integrate LFC with the style system.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::runLayoutAndVerify):

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::LayoutState):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::root const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildLayoutTree):
(WebCore::Layout::LayoutTreeContent::LayoutTreeContent):
(WebCore::Layout::TreeBuilder::TreeBuilder):
(WebCore::Layout::TreeBuilder::buildTree):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::buildTableStructure):
(WebCore::Layout::TreeBuilder::buildSubTree):
(WebCore::Layout::printLayoutTreeForLiveDocuments):
(WebCore::Layout::TreeBuilder::createLayoutTree): Deleted.
(WebCore::Layout::TreeBuilder::createTableStructure): Deleted.
(WebCore::Layout::TreeBuilder::createSubTree): Deleted.

  • layout/layouttree/LayoutTreeBuilder.h:
1:28 AM Changeset in webkit [252481] by Philippe Normand
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed, GTK/WPE Debug build fix after r252472.

  • CMakeLists.txt:
12:29 AM Changeset in webkit [252480] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

IDL: remove [PrimaryGlobal]
https://bugs.webkit.org/show_bug.cgi?id=180469

Patch by Rob Buis <rbuis@igalia.com> on 2019-11-15
Reviewed by Sam Weinig.

Remove support for [PrimaryGlobal] from the code
generator and the existing IDL.

  • bindings/scripts/CodeGeneratorJS.pm:

(IsGlobalOrPrimaryGlobalInterface):

  • page/DOMWindow.idl:
  • page/RemoteDOMWindow.idl:

Nov 14, 2019:

10:50 PM Changeset in webkit [252479] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make gcSafeMemcpy/gcSafeMemmove/gcSafeZeroMemory work properly on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=204217

Reviewed by Mark Lam.

We need to be explicit in the code about using 64-bit types and pointer types.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):
(JSC::gcSafeMemmove):
(JSC::gcSafeZeroMemory):

7:26 PM Changeset in webkit [252478] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

Crash when setting HTMLInputElement.checked for a disconnected radio button in a shadow root
https://bugs.webkit.org/show_bug.cgi?id=204208
<rdar://problem/57045830>

Reviewed by Tim Horton.

Source/WebCore:

r251110 refactored logic in RadioButtonGroup::updateCheckedState, such that it assumes that m_nameToGroupMap
always contains an entry for the given input element's name. Prior to r251110, it would bail if m_nameToGroupMap
didn't exist. In this particular case, a named input element is added to a shadow root that is disconnected from
the document. This means that in HTMLInputElement::didFinishInsertingNode(), we will avoid adding the element to
the radio button group, even though it has a tree scope due to the isConnected() check.

Later, when we try to set the checked attribute, we invoke updateCheckedState which sees that we have a tree
scope and assumes that we must have previously added the input element to the radio button map; this leads to a
nullptr deref, as the map is empty. Thus, to fix this, we change the isConnected() check to isInTreeScope().

Test: fast/forms/radio-input-in-shadow-root-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didFinishInsertingNode):

LayoutTests:

Adds a new layout test to verify that we don't crash in this scenario.

  • fast/forms/radio-input-in-shadow-root-crash-expected.txt: Added.
  • fast/forms/radio-input-in-shadow-root-crash.html: Added.

2019-11-07 Youenn Fablet <youenn@apple.com>

Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897

Reviewed by Eric Carlson.

  • webrtc/simulcast-h264.html:

Update test to remove rid information from answer.

7:14 PM Changeset in webkit [252477] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.layout_package
https://bugs.webkit.org/show_bug.cgi?id=204212

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.layout_package.
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(convert_trie_to_flat_paths): Use compatible iteritems.
(JSONResultsGenerator._insert_failure_summaries): Use compatible iterkeys.
(JSONResultsGenerator._convert_json_to_current_version): Use compatible iteritems.
(JSONResultsGenerator._convert_tests_to_trie): Use compatible iterkeys.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:

(JSONGeneratorTest._verify_json_results): Use items instead of iteritems.
(JSONGeneratorTest.test_test_timings_trie): Python 3's json decoder is sensitive to ordering.

6:57 PM Changeset in webkit [252476] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Tools

Flaky API Test TestWebKitAPI.ServiceWorkers.ThrottleCrash
https://bugs.webkit.org/show_bug.cgi?id=203734

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-14
Reviewed by Youenn Fablet.

Some API tests using TCPServer have multiple concurrent HTTP requests in flight at the same time.
When this happens, sometimes NSURLSession will make multiple TCP connections to the same server.
TCPServer is not the right tool for this because it handles all its connections manually.
To make the test server agnostic to how many connections are initiated, I introduce HTTPServer,
which uses the Network framework to handle as many responses and as many connections as happen.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h: Added.

(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):

  • TestWebKitAPI/cocoa/HTTPServer.mm: Added.

(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::HTTPServer::port const):
(TestWebKitAPI::HTTPServer::request const):

  • TestWebKitAPI/config.h:
6:56 PM Changeset in webkit [252475] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.servers
https://bugs.webkit.org/show_bug.cgi?id=204209

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.servers.
  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Use compatible iteritems.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd._prepare_config): Ditto.

6:55 PM Changeset in webkit [252474] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, update the feature status of WebAuthn

  • features.json:
6:12 PM Changeset in webkit [252473] by youenn@apple.com
  • 1248 adds in trunk/Source/ThirdParty/libwebrtc

Add missing file from https://trac.webkit.org/changeset/252472
https://bugs.webkit.org/show_bug.cgi?id=203897

Unreviewed, fixing the build

5:03 PM Changeset in webkit [252472] by youenn@apple.com
  • 2540 edits in trunk

Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897

Patch by Youenn Fablet <youenn@apple.com> on 2019-11-07

LayoutTest/ChangeLog

  • webrtc/simulcast-h264.html: Update test to remove rid information from answer.

LayoutTests/imported/w3c/ChangeLog

  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-getStats.https-expected.txt:

Source/ThirdParty/libwebrtc/ChangeLog

  • webrtc: Updated

Source/WebCore/ChangeLog

Update include paths and binding code.
Covered by existing tests.

  • Modules/mediastream/RTCStatsReport.idl: Removed no longer standard codec stat.
  • Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::setConfiguration):
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCObservers.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: (WebCore::fillInboundRTPStreamStats): (WebCore::fillOutboundRTPStreamStats): (WebCore::fillRTCCodecStats):
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
  • platform/mediastream/RealtimeIncomingAudioSource.h:
  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::BasicPacketSocketFactory::CreateClientTcpSocket):
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
  • testing/MockLibWebRTCPeerConnection.cpp:
  • testing/MockLibWebRTCPeerConnection.h:

Source/WebKit/ChangeLog

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::createClientTCPSocket):
  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.mm:
  • NetworkProcess/webrtc/NetworkRTCSocket.h:
  • Shared/RTCPacketOptions.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp: (WebKit::RTCSocketFactory::CreateClientTcpSocket):
  • WebProcess/Network/webrtc/LibWebRTCResolver.h:
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: (WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:
  • WebProcess/Network/webrtc/WebRTCMonitor.h:
5:02 PM Changeset in webkit [252471] by Megan Gardner
  • 2 edits in trunk/Tools

Fix another build error from r252449
https://bugs.webkit.org/show_bug.cgi?id=204173

Unreviewed Build Fix for r252449

  • TestWebKitAPI/ios/UIKitSPI.h:
4:34 PM Changeset in webkit [252470] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

[iOS] Audio capture fails when a track is unmuted
https://bugs.webkit.org/show_bug.cgi?id=204202
<rdar://problem/57005820>

Reviewed by Youenn Fablet.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::canProduceAudioChanged): Remove unused "client" parameter.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(MediaSessionManagerCocoa::sessionCanProduceAudioChanged): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setMuted): Change m_muted before calling start/stop so the
muted method will return the correct value.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::startInternal): Call sessionCanProduceAudioChanged before
starting the audio unit so the audio session category is set correctly. ASSERT if the
audio session category is incorrect.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::startProducingData): Ditto.

4:31 PM Changeset in webkit [252469] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Make NetworkResourceLoader::didReceiveResponse more straightforward after r244700
https://bugs.webkit.org/show_bug.cgi?id=204134

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-14
Reviewed by Youenn Fablet.

If m_isKeptAlive is true, we do not want to receive any HTTP body.
Rather than storing the CompletionHandler and relying on the destructor to call it, just call it.

No change in behavior.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

4:16 PM Changeset in webkit [252468] by Jonathan Bedard
  • 13 edits in trunk/Tools

Python 3: Add support in webkitpy.style
https://bugs.webkit.org/show_bug.cgi?id=203762

Reviewed by Stephanie Lewis.

  • Scripts/check-webkit-style: Remove Python 2 version check.
  • Scripts/test-webkitpy-python3: Add webkitpy.style.
  • Scripts/webkitpy/style/checker.py: Use explicit imports.
  • Scripts/webkitpy/style/checker_unittest.py:

(GlobalVariablesTest.test_max_reports_per_category): Use keys() over iterkeys.

  • Scripts/webkitpy/style/checkers/contributors.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/test_expectations.py:

(TestExpectationsChecker._should_log_linter_warning): Use compatible iteritems.

  • Scripts/webkitpy/style/error_handlers_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/filter.py:

(FilterConfiguration._get_path_specific_lower): Return list instead of iterator.
(FilterConfiguration._filter_from_path): Avoid confusion with filter builtin.

  • Scripts/webkitpy/style/filter_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/main.py:

(CheckWebKitStyle._engage_awesome_stderr_hacks): No reason to apply encoding to stderr
in Python 3.

  • Scripts/webkitpy/style/main_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/patchreader.py:

(PatchReader.check): Ensure that the provided patch is a string, use items over iteritems.

2:45 PM Changeset in webkit [252467] by commit-queue@webkit.org
  • 13 edits in trunk

The CSSParser should not consume negative or unit-less lengths for the SVG properties 'r', 'rx' and 'ry'
https://bugs.webkit.org/show_bug.cgi?id=204200

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-11-14
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/geometry/parsing/r-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/r-invalid-expected.txt:
  • web-platform-tests/svg/geometry/parsing/rx-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/rx-invalid-expected.txt:
  • web-platform-tests/svg/geometry/parsing/ry-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/ry-invalid-expected.txt:

Source/WebCore:

Both the CSSParser and SVGElement::parseAttribute() should be consistent
when parsing these properties.

The type of these properties is <length-percentage>, which requires specifying
the unit for the length: https://www.w3.org/TR/css-values/#length-value.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::isSimpleLengthPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRxOrRy):
(WebCore::CSSPropertyParser::parseSingleValue):

LayoutTests:

  • svg/css/parse-length-expected.txt:
  • svg/css/parse-length.html:
2:18 PM Changeset in webkit [252466] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Crash under WebProcess::processTaskStateDidChange(WebKit::ProcessTaskStateObserver::TaskState)
https://bugs.webkit.org/show_bug.cgi?id=204177

Reviewed by Jer Noble.

Delay creating the ProcessTaskStateObserver until the WebProcess's connection to its parent had been
initialized. This is necessary because ProcessTaskStateObserver may call WebProcess::processTaskStateDidChange()
on a background thread, which will deference the IPC connection.

  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::~WebProcess):
(WebKit::WebProcess::initializeConnection):
(WebKit::m_taskStateObserver): Deleted.

  • WebProcess/WebProcess.h:
2:01 PM Changeset in webkit [252465] by Megan Gardner
  • 2 edits in trunk/Tools

Fix build error from r252449
https://bugs.webkit.org/show_bug.cgi?id=204173

Reviewed by Wenson Hsieh.

Include needed header for all platforms, not just iPhone.

  • TestWebKitAPI/ios/UIKitSPI.h:
1:59 PM Changeset in webkit [252464] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Use toLength() and getIndexQuickly() in JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=204122

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-14
Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/json-stringify-array-replacer.js: Added.
  • microbenchmarks/json-stringify-empty-array.js: Added.

Source/JavaScriptCore:

Using toLength() is semantically equivalent and performance-neutral, while adding
JSObject::getIndexQuickly() advances microbenchmarks/json-stringify-array-replacer.js
by 34%.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):

12:51 PM Changeset in webkit [252463] by Caio Lima
  • 5 edits in trunk

Support or16(TrustedImm32, AbsoluteAddress) in the MIPS MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=204126

Reviewed by Mark Lam.

JSTests:

Decreasing the number of iterations of test to avoid timeout into slow
ports.

  • stress/regress-57020338.js:

Source/JavaScriptCore:

This is adjusting the implementation of or16 for MIPS. This required
the addition of load16 and store16 for this macro assembler as
well. This is also fixing build issue on ARMv7 or16 implementation.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or16):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or16):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::store16):

12:32 PM Changeset in webkit [252462] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Invalidation] Skip non-dirty out-of-flow boxes.
https://bugs.webkit.org/show_bug.cgi?id=204196

Reviewed by Antti Koivisto.

Use the InvalidationState to decide whether the current out-of-flow box needs layout.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

12:16 PM Changeset in webkit [252461] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

[Web Animations] Accelerated transitions do not always remove their backing accelerated animation
https://bugs.webkit.org/show_bug.cgi?id=204198
<rdar://problem/45847205>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark some WPT progressions.

  • web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt:

Source/WebCore:

Test: webanimations/accelerated-animation-removal-upon-transition-completion.html

There could be several calls to KeyframeEffect::updateAcceleratedAnimationState() made after an animation had completed but
before any pending accelerated actions would be processed during the next animation frame. In the first call, we would correctly
set add Accelerated::Stop to the list of pending accelerated actions, but on a further call, wrongly assuming that the fact that
we'd already recorded an Accelerated::Stop action meant that it had been committed, we would clear that action and the animation
would never be explicitly removed.

Additionally, we would schedule animation resolution on the DocumentTimeline in the wrong function, we now do that in the function
where animations with an effect pending accelerated actions is added rather than in the function where we track which elements have
accelerated animations.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateAcceleratedAnimationState):

LayoutTests:

Add a new test that checks that a CSS Transition targeting the transform property which requires a layer correctly clears the
accelerated animation upon completion.

  • webanimations/accelerated-animation-removal-upon-transition-completion-expected.txt: Added.
  • webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
11:42 AM Changeset in webkit [252460] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

[LFC][Invalidation] Use InvalidationState to populate LayoutQueue
https://bugs.webkit.org/show_bug.cgi?id=204191
<rdar://problem/57179614>

Reviewed by Antti Koivisto.

Start using the InvalidationState in BlockFormattingContext::layoutInFlowContent() to filter out
non-dirty boxes (currently InvalidationState returns true for every box).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h: InvalidationState should not be const as we keep adding additional dirty boxes during layout.
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/invalidation/InvalidationState.cpp:

(WebCore::Layout::InvalidationState::needsLayout const):

  • layout/invalidation/InvalidationState.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
10:09 AM Changeset in webkit [252459] by beidson@apple.com
  • 14 edits
    1 add in trunk

Summary: WKWebView is missing an equivalent to WebKit 1's API to set the media style.
<rdar://problem/49862107> and https://bugs.webkit.org/show_bug.cgi?id=203974

Reviewed by Alex Christensen.

Source/WebKit:

Covered by new API test.

This is basically:

  • Expose a read/write property on WKWebView.
  • Pipe the new media type to the WebProcess.
  • Force a style recalc.
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setMediaType:]):
(-[WKWebView mediaType]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setOverriddenMediaType):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::overriddenMediaType const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::overrideMediaType const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setOverriddenMediaType):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::overriddenMediaType const):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaType.mm: Added.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:07 AM Changeset in webkit [252458] by beidson@apple.com
  • 6 edits
    1 add in trunk

pageZoom/setPageZoom: should not be in a Mac-only part of WKWebView.mm
https://bugs.webkit.org/show_bug.cgi?id=204128

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/PageZoom.mm: Added.

(TestWebKitAPI::getClientWidth):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView waitUntilClientWidthIs:]):

7:28 AM Changeset in webkit [252457] by Chris Fleizach
  • 3 edits in trunk/Source/WebCore

AX: Implement isolated tree support for math objects
https://bugs.webkit.org/show_bug.cgi?id=204056
<rdar://problem/57054644>

Reviewed by Zalan Bujtas.

Implement isolated tree support for math objects.
Add a method for setting and getting objects.

  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::setObjectProperty):
(WebCore::AXIsolatedObject::objectAttributeValue const):

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
6:58 AM Changeset in webkit [252456] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Clarify webkitpy/style/optparser_unittest.py by removing parse variables
https://bugs.webkit.org/show_bug.cgi?id=204183

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/style/optparser_unittest.py:

(ArgumentParserTest.test_parse_documentation): Remove parse variable.
(ArgumentParserTest.test_parse_bad_values): Ditto.
(ArgumentParserTest.test_parse_default_arguments): Ditto.
(ArgumentParserTest.test_parse_explicit_arguments): Ditto.
(ArgumentParserTest.test_parse_files): Ditto.

6:25 AM Changeset in webkit [252455] by graouts@webkit.org
  • 9 edits
    5 adds in trunk

[Web Animations] Retargeted transitions targeting accelerated properties do not stop the original transition
https://bugs.webkit.org/show_bug.cgi?id=204116
<rdar://problem/57116961>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/css-transition-in-flight-reversal-accelerated.html

There were two problems with the reversal of in-flight transitions targeting accelerated properties. The first issue
was that the animated value for the accelerated property would be missing from the before-change style since animating
acceelerated properties do not update RenderStyle while running. As such, we would not detect the need to reverse a
transition, but rather simply cancel the initial transition with no new transition to reverse its effect, since the
value in the before-change and after-change styles were the same. We now fix this by figuring out whether the running
transition for that property is accelerated in AnimationTimeline::updateCSSTransitionsForElementAndProperty() and
applying the animated value to the before-change style.

The second issue was that canceling an accelerated transition had no visible effect since the accelerated animation
was not stopped. We now have a new AnimationEffect::animationWasCanceled() virtual method which KeyframeEffect overrides
to add AcceleratedAction::Stop to the list of pending acceleration actions for this effect. We also ensure that the document
timeline knows to run DocumentTimeline::updateAnimationsAndSendEvents() if there are pending accelerated actions, even if
there aren't any animations waiting to be resolved, since a single canceled transition would prevent this method from
completing.

  • animation/AnimationEffect.h:
  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animationWasCanceled):

  • animation/KeyframeEffect.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::cancel):

LayoutTests:

Add a new test that checks that reversing an in-flight transition for "opacity" and "transform" correctly reverses the transition.

  • platform/mac-wk1/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.
  • webanimations/css-transition-in-flight-reversal-accelerated-expected.txt: Added.
  • webanimations/css-transition-in-flight-reversal-accelerated.html: Added.
3:44 AM Changeset in webkit [252454] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Add support for remotes file for EWS builders (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=203899

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-build/factories.py:

(JSCTestsFactory.init): Passed remotes parameter to JSCTestsFactory as well.

  • BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-test.
3:29 AM Changeset in webkit [252453] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Enable JSC queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=204179

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json: Enabled the scheduler for JSC queue.
  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Enabled JSC queue bubble on new EWS.
  • QueueStatusServer/config/queues.py: Removed JSC queue from old EWS.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer): Removed JSC queue from bot-watcher's dashboard.

1:37 AM Changeset in webkit [252452] by ysuzuki@apple.com
  • 29 edits
    1 add in trunk/Source

[JSC] BlockDirectory's bits should be compact
https://bugs.webkit.org/show_bug.cgi?id=204149

Reviewed by Robin Morisset.

Source/JavaScriptCore:

We start applying IsoSubspace to all JSCells. This means that IsoSubspace should be small enough,
so that we can hold many IsoSubspaces without considering about memory regression.

In this patch, we introduce several things to shrink sizeof(IsoSubspace) from 528 to 384.

  1. Adjusting members to remove some paddings.
  2. Remove m_heap field since this can be got from the caller easily.
  3. Make MarkedSpace::heap() efficient: just doing pointer arithmetic.
  4. Remove m_size field from IsoSubspace since BlockDirectory knows cellSize.
  5. Introduce BlockDirectoryBits, which repalces 9 FastBitVector in BlockDirectory to this one class. Since all FastBitVector has the same size, we should not have a size field for each FastBitVector. We reuse FastBitVector's View mechanism to keep the same ergonomics while making BlockDirectoryBits much smaller. We put 9 uint32_t as Segment, and manage Vector<Segment> in this data structure. Since we touch several bits at the same time for the same block-index, this data structure is compact and efficient.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/AlignedMemoryAllocator.cpp:

(JSC::AlignedMemoryAllocator::registerDirectory):

  • heap/AlignedMemoryAllocator.h:
  • heap/Allocator.h:
  • heap/AllocatorInlines.h:

(JSC::Allocator::allocate const):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::BlockDirectory):
(JSC::BlockDirectory::findEmptyBlockToSteal):
(JSC::BlockDirectory::findBlockForAllocation):
(JSC::BlockDirectory::tryAllocateBlock):
(JSC::BlockDirectory::addBlock):
(JSC::BlockDirectory::removeBlock):
(JSC::BlockDirectory::prepareForAllocation):
(JSC::BlockDirectory::beginMarkingForFullCollection):
(JSC::BlockDirectory::endMarking):
(JSC::BlockDirectory::snapshotUnsweptForEdenCollection):
(JSC::BlockDirectory::snapshotUnsweptForFullCollection):
(JSC::BlockDirectory::findBlockToSweep):
(JSC::BlockDirectory::sweep):
(JSC::BlockDirectory::shrink):
(JSC::BlockDirectory::assertNoUnswept):
(JSC::BlockDirectory::parallelNotEmptyBlockSource):
(JSC::BlockDirectory::dumpBits):

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::cellKind const):
(JSC::BlockDirectory::forEachBitVector):
(JSC::BlockDirectory::forEachBitVectorWithName):
(JSC::BlockDirectory::heap): Deleted.

  • heap/BlockDirectoryBits.h: Added.

(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::BlockDirectoryBitVectorWordView):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::numBits const):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::word const):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::word):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::clearAll):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::view const):
(JSC::BlockDirectoryBits::numBits const):
(JSC::BlockDirectoryBits::resize):
(JSC::BlockDirectoryBits::forEachSegment):

  • heap/BlockDirectoryInlines.h:

(JSC::BlockDirectory::forEachBlock):
(JSC::BlockDirectory::forEachNotEmptyBlock):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::allocatorForSlow):
(JSC::CompleteSubspace::tryAllocateSlow):

  • heap/CompleteSubspaceInlines.h:

(JSC::CompleteSubspace::allocateNonVirtual):

  • heap/IsoCellSet.cpp:

(JSC::IsoCellSet::parallelNotEmptyMarkedBlockSource):

  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::forEachMarkedCell):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):

  • heap/IsoSubspace.h:

(JSC::IsoSubspace::cellSize):
(JSC::IsoSubspace::allocatorForNonVirtual):
(JSC::IsoSubspace::size const): Deleted.
(): Deleted.

  • heap/IsoSubspaceInlines.h:

(JSC::IsoSubspace::allocateNonVirtual):

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::AutoremovingIsoSubspace::~AutoremovingIsoSubspace):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::doTestCollectionsIfNeeded):

  • heap/LocalAllocator.h:
  • heap/LocalAllocatorInlines.h:

(JSC::LocalAllocator::allocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::dumpState):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::sweepBlocks):
(JSC::MarkedSpace::prepareForAllocation):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):
(JSC::MarkedSpace::prepareForMarking):
(JSC::MarkedSpace::beginMarking):
(JSC::MarkedSpace::snapshotUnswept):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::heap const): Deleted.

  • heap/MarkedSpaceInlines.h:

(JSC::MarkedSpace::heap const):

  • heap/Subspace.cpp:

(JSC::Subspace::initialize):

  • heap/Subspace.h:

Source/WTF:

  • wtf/FastBitVector.h:

(WTF::fastBitVectorArrayLength):
(WTF::FastBitVectorImpl::unsafeWords):
(WTF::FastBitVectorImpl::unsafeWords const):
(WTF::FastBitReference::FastBitReference):
(WTF::FastBitReference::operator bool const):
(WTF::FastBitReference::operator=):
(WTF::FastBitVector::at):
(WTF::FastBitVector::operator[]):
(WTF::FastBitVector::BitReference::BitReference): Deleted.
(WTF::FastBitVector::BitReference::operator bool const): Deleted.
(WTF::FastBitVector::BitReference::operator=): Deleted.

Nov 13, 2019:

10:58 PM Changeset in webkit [252451] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix GTK/WPE builds after enabling POINTER_EVENTS support
https://bugs.webkit.org/show_bug.cgi?id=204164

Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2019-11-13
Reviewed by Žan Doberšek.

Our g++ 8.3.0 yields "error: call to non-constexpr function
WTFReportAssertionFailure" when compiling rendering/EventRegion.cpp
since r252366.

Turn both toTouchAction() / toIndex() into static inline instead of
constexpr functions to appease g++ 8.3.0.

  • rendering/EventRegion.cpp:

(WebCore::toIndex):
(WebCore::toTouchAction):

10:39 PM Changeset in webkit [252450] by Wenson Hsieh
  • 11 edits
    6 adds in trunk

[Clipboard API] Add support for Clipboard.write()
https://bugs.webkit.org/show_bug.cgi?id=204078
<rdar://problem/57087756>

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch adds support for the write() method on Clipboard, forgoing sanitization for now (this will be added
in the next patch). See below for more details.

Tests: editing/async-clipboard/clipboard-change-data-while-writing.html

editing/async-clipboard/clipboard-write-basic.html
editing/async-clipboard/clipboard-write-items-twice.html

  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::~Clipboard):
(WebCore::shouldProceedWithClipboardWrite):
(WebCore::Clipboard::write):

Implement this method by creating a new ItemWriter and loading data from all the ClipboardItems that are being
written. If the previous writer is still in progress, make sure that we invalidate it first (rejecting the
promise) before proceeding.

(WebCore::Clipboard::didResolveOrReject):
(WebCore::Clipboard::ItemWriter::ItemWriter):
(WebCore::Clipboard::ItemWriter::write):
(WebCore::Clipboard::ItemWriter::invalidate):
(WebCore::Clipboard::ItemWriter::setData):
(WebCore::Clipboard::ItemWriter::didSetAllData):
(WebCore::Clipboard::ItemWriter::reject):

Introduce a private helper class to collect clipboard data for writing from a list of ClipboardItems, and
resolve or reject the given promise when finished.

  • Modules/async-clipboard/Clipboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::createItemProviderRegistrationList):

Fix a stray bug where the empty string could not be read back as plain text or URLs from the platform pasteboard
on iOS. This is exercised by the new layout test clipboard-write-basic.html.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write):

Address another issue where we would sometimes try and declare the empty string as a pasteboard type when
writing to the platform pasteboard. While benign in a real NSPasteboard, there's no reason to include it in this
list of declared pasteboard types.

Tools:

Make the LocalPasteboard in WebKitTestRunner compatible with calls to -writeObjects: with a list of pasteboard
items. Currently, attempts to -writeObjects: result in a crash, since NSPasteboard code will attempt to
communicate with pasted and fail. We fix this by implementing -writeObjects: and storing the array of
NSPasteboardItems in LocalPasteboard, the same way we do in DumpRenderTree's LocalPasteboard implementation.

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard _clearContentsWithoutUpdatingChangeCount]):

Factor out logic to clear the pasteboard's content into a separate helper, and clear out the list of saved
pasteboard items here as well.

(-[LocalPasteboard clearContents]):

Implement -clearContents in DumpRenderTree's LocalPasteboard, so that we can test Clipboard.write() in WebKit1.

(-[LocalPasteboard writeObjects:]):

Also make it so that we save any NSPasteboardItems we write to the local pasteboard, so that we can return them
later in -pasteboardItems.

(-[LocalPasteboard pasteboardItems]):

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(-[LocalPasteboard initWithName:]):

Clean up this code a bit by replacing manual reference counting for typesArray and its neighboring data
structures with RetainPtr. Additionally, underscore-prefix the instance variables on LocalPasteboard to match
most of the other Objective-C objects in WebKit.

(-[LocalPasteboard name]):
(-[LocalPasteboard _clearContentsWithoutUpdatingChangeCount]):

Clear out the NSPasteboardItem list here too.

(-[LocalPasteboard clearContents]):
(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard _addTypesWithoutUpdatingChangeCount:owner:]):
(-[LocalPasteboard changeCount]):
(-[LocalPasteboard types]):
(-[LocalPasteboard availableTypeFromArray:]):
(-[LocalPasteboard setData:forType:]):
(-[LocalPasteboard dataForType:]):
(-[LocalPasteboard pasteboardItems]):
(-[LocalPasteboard writeObjects:]):

Implement this by porting over the implementation that currently exists in DumpRenderTree. Like in
DumpRenderTree, we want to also save the NSPasteboardItem array we're given here, so that we can return it in
-pasteboardItems.

(-[LocalPasteboard dealloc]): Deleted.

LayoutTests:

Adds several new layout tests to exercise the write method on Clipboard.

  • editing/async-clipboard/clipboard-change-data-while-writing-expected.txt: Added.
  • editing/async-clipboard/clipboard-change-data-while-writing.html: Added.

Verify that if the platform pasteboard contents change while the page attempts to write to the clipboard, we
will reject the promise for writing.

  • editing/async-clipboard/clipboard-write-basic-expected.txt: Added.
  • editing/async-clipboard/clipboard-write-basic.html: Added.

Verify that writing multiple ClipboardItems to the clipboard using write() works. Among these items, one of them
contains no types, and another only contains types that resolve to empty strings. The page should be able to
read all four items back using Clipboard.read().

  • editing/async-clipboard/clipboard-write-items-twice-expected.txt: Added.
  • editing/async-clipboard/clipboard-write-items-twice.html: Added.

Verify that attempting to write a clipboard item that resolves on a long delay, and then attempting to write
another item that resolves on a short delay before the previous clipboard item has finished writing does not
cause the latter call to Clipboard.write() to fail. Additionally, the clipboard should contain the contents of
the second set of clipboard items, rather than the first.

  • editing/async-clipboard/resources/async-clipboard-helpers.js:

(async.checkClipboardItemString):

Add a helper method to read a string for the given type, out of the given clipboard item, and compare it against
an expected result.

8:40 PM Changeset in webkit [252449] by Megan Gardner
  • 5 edits in trunk/Tools

Cleanup UIKitSPI for Testing
https://bugs.webkit.org/show_bug.cgi?id=204173

Reviewed by Simon Fraser.

Remove old staging for UIKit APIs that should not be needed now.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator _concludeDropAndPerformOperationIfNecessary]):

  • TestWebKitAPI/ios/UIKitSPI.h:
8:04 PM Changeset in webkit [252448] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "aqua" and "fuchsia" aren't detected as colors
https://bugs.webkit.org/show_bug.cgi?id=204085

Reviewed by Devin Rousso.

  • UserInterface/Models/Color.js:
7:36 PM Changeset in webkit [252447] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Invalid type of argument 'eventName' for command 'DOMDebugger.setEventBreakpoint' call. It must be 'string' but it is 'object'.
https://bugs.webkit.org/show_bug.cgi?id=204176

Reviewed by Timothy Hatcher.

  • UserInterface/Views/EventBreakpointPopover.js:

(WI.EventBreakpointPopover.prototype.dismiss):
Only create the WI.EventBreakpoint if the <input> has a value.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.addURLBreakpoint):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._willDismissEventBreakpointPopover):
(WI.SourcesNavigationSidebarPanel.prototype._willDismissURLBreakpointPopover):
Drive-by: if the configuration isn't valid (e.g. no breakpoint) or the breakpoint already

exists, beep.

7:07 PM Changeset in webkit [252446] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Add build step to Analyze JSC Tests Results
https://bugs.webkit.org/show_bug.cgi?id=204174

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunJavaScriptCoreTests.evaluateCommand): invoke AnalyzeJSCTestsResults step.
(AnalyzeJSCTestsResults): Build step to analyze layout-test results.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeJSCTestsResults):
(TestAnalyzeJSCTestsResults.test_single_new_stress_failure): Added unit-test.
(TestAnalyzeJSCTestsResults.test_single_new_binary_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_multiple_new_stress_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_multiple_new_binary_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_new_stress_and_binary_failure): Ditto.
(TestAnalyzeJSCTestsResults.test_stress_failure_on_clean_tree): Ditto.
(TestAnalyzeJSCTestsResults.test_binary_failure_on_clean_tree): Ditto.
(TestAnalyzeJSCTestsResults.test_stress_and_binary_failure_on_clean_tree): Ditto.
(TestAnalyzeJSCTestsResults.test_flaky_stress_and_binary_failures): Ditto.
(TestAnalyzeJSCTestsResults.test_flaky_and_consistent_stress_failures): Ditto.
(TestAnalyzeJSCTestsResults.test_flaky_and_consistent_failures_with_clean_tree_failures): Ditto.

6:26 PM Changeset in webkit [252445] by mmaxfield@apple.com
  • 4 edits
    1 add
    1 delete in trunk/Websites/webkit.org

[WebGPU] Update Babylon WebGPU demos to work on ToT
https://bugs.webkit.org/show_bug.cgi?id=204182

Reviewed by Dean Jackson.

3 things were wrong:

  • demos/webgpu/babylon/babylonjs.loaders.min.js: Added.

(return):
(return.n.d):
(return.get n.r):
(return.n.t):
(return.):
(return.n.n):
(return.n.o):

  • demos/webgpu/babylon/oneHelmetWebGPU.html:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/babylon/oneSphereWebGPUWSLShaders.js:

(sampler.reflectionSamplerSampler.register):
(float3.normal.attribute): Deleted.

  • demos/webgpu/babylon/vertexShaderGLSL1.glsl: Removed. Unnecessary.
6:21 PM Changeset in webkit [252444] by commit-queue@webkit.org
  • 19 edits in trunk

[SVG2] Add the 'orient' property of the interface SVGMarkerElement
https://bugs.webkit.org/show_bug.cgi?id=203646

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-11-13
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/idlharness.window-expected.txt:
  • web-platform-tests/svg/types/scripted/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:

Source/WebCore:

This patch does the following:

  1. Adding the 'orient' property of the interface SVGMarkerElement: The specs link is: https://www.w3.org/TR/SVG2/painting.html#InterfaceSVGMarkerElement
  1. Keeping the pair properties <orientAngle, orientType> in sync when when one of them changes to keep them in consistent state.
  1. Setting the value of SVGMarkerOrientAutoStartReverse: The specs https://www.w3.org/TR/SVG2/painting.html#__svg__SVGMarkerElement__orient says that when setting the 'orient' attribute to "auto-start-reverse", the value of orientType should be SVG_MARKER_ORIENT_UNKNOWN. Therefore SVGMarkerOrientAutoStartReverse has to be equal to SVGMarkerOrientUnknown.
  • svg/SVGAngle.h:

(WebCore::SVGAngle::unitType const):
(WebCore::SVGAngle::valueForBindings const):
(WebCore::SVGAngle::valueInSpecifiedUnits const):
(WebCore::SVGAngle::unitType): Deleted.
(WebCore::SVGAngle::valueForBindings): Deleted.
(WebCore::SVGAngle::valueInSpecifiedUnits): Deleted.
Make these functions const.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):
Calling SVGPropertyRegistry::setAnimatedPropertDirty() to set the dirty
flag of the animated property through its accessor.

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::orient const):
(WebCore::SVGMarkerElement::setOrient):
Add the new property handlers.

(WebCore::SVGMarkerElement::setOrientToAuto):
(WebCore::SVGMarkerElement::setOrientToAngle):
Fix the bug of not setting the unitType of the SVGAngle in orientAngle.

  • svg/SVGMarkerElement.h:

Delete unused enum value SVG_MARKER_ORIENT_AUTOSTARTREVERSE.

  • svg/SVGMarkerElement.idl:
  • svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::highestEnumValue):
(WebCore::SVGIDLEnumLimits<SVGMarkerOrientType>::highestExposedEnumValue): Deleted.
Fix the value of SVGMarkerOrientAutoStartReverse. No need for
highestExposedEnumValue() since all the enum values are now exposed.

  • svg/properties/SVGAnimatedPropertyPairAccessorImpl.h:

Keep the pair properties <orientAngle, orientType> in sync.

  • svg/properties/SVGMemberAccessor.h:

(WebCore::SVGMemberAccessor::setDirty const):
This is what SVGElement::commitPropertyChange() used to do for all properties.

  • svg/properties/SVGPropertyOwnerRegistry.h:
  • svg/properties/SVGPropertyRegistry.h:

LayoutTests:

The pair properties <orientAngle, orientType> are now in sync. Fix the
tests which were assuming that these properties can change independently.

  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html:
  • svg/dynamic-updates/SVGMarkerElement-dom-orient-attr-expected.txt:
  • svg/dynamic-updates/SVGMarkerElement-dom-orient-attr.html:
6:08 PM Changeset in webkit [252443] by Jonathan Bedard
  • 11 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.controllers
https://bugs.webkit.org/show_bug.cgi?id=204180

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.controllers.
  • Scripts/webkitpy/common/message_pool.py:

(_MessagePool.init): Use Python 3 queue syntax.
(_MessagePool._can_pickle): Use Python 3 pickle syntax.
(_MessagePool._loop): Use Python 3 queue syntax.
(_Worker.run): Use Python 3 queue syntax.
(_Worker._raise): Python 2 and Python 3 have different semantics for raising an exception
With a stack trace. However, 'raise' will raise the exception we are in the process of capturing,
Which is exactly what we want in this case.

  • Scripts/webkitpy/common/read_checksum_from_png.py:

(read_checksum): Standardize checksum as a string.

  • Scripts/webkitpy/common/system/filesystem.py:

(FileSystem.write_binary_file): Binary files should be written with bytes, not strings.

  • Scripts/webkitpy/common/system/filesystem_mock.py:

(MockFileSystem.write_binary_file): Binary files should be written with bytes, not strings.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder_unittest.py: assertItemsEqual is not

Defined in Python 3.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:

(Worker._do_post_tests_work): Use compatible iteritems.
(Sharder._shard_by_directory): Ditto.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.run): Use compatible itervalues.
(Manager._look_for_new_crash_logs): Use Python 3 item iteration.
(Manager._results_to_upload_json_trie): Use compatible itervalues.
(Manager._stats_trie): Use compatible iteritems.

  • Scripts/webkitpy/port/base.py:

(Port.expected_text): Be explicit about decoding text expectations.

  • Scripts/webkitpy/port/mock_drt.py:

(MockDRT.write_test_output):

5:59 PM Changeset in webkit [252442] by pvollan@apple.com
  • 9 edits in trunk

REGRESSION: WKWebView navigation fails when navigating from about:blank
https://bugs.webkit.org/show_bug.cgi?id=203852
Source/WebKit:

<rdar://problem/56973112>

Reviewed by Brent Fulgham.

Previously, WebPageProxy::loadFile would unconditionally create a sandbox extension for the resource directory URL. Currently,
this method is calling WebPageProxy::maybeInitializeSandboxExtension to create a sandbox extension if needed. The sandbox
extension for the resource URL is not created if the WebContent process already has assumed access to the resource URL, which
is the case when loading the same file for the second time. The sandbox extension still needs to be issued in this case, since
the WebContent process is revoking its extension when the load is done. This patch restore the original behaviour by adding a
flag to WebPageProxy::maybeInitializeSandboxExtension to indicate whether the method should check if the process already has
assumed access.

API test: WKWebView.LoadRelativeFileURL

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):

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

(WebKit::WebProcessProxy::shouldSendPendingMessage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequestWaitingForProcessLaunch):
(WebKit::WebPage::loadRequestWaitingForPID): Deleted.

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

Tools:

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm:

(TEST):

5:54 PM Changeset in webkit [252441] by Fujii Hironori
  • 6 edits in trunk

[Win][DumpRenderTree][WebKitTestRunner] eventSender.keyDown should support function keys
https://bugs.webkit.org/show_bug.cgi?id=204146

Reviewed by Ross Kirsling.

Tools:

Changed eventSender.keyDown of DRT and WTR to support sending
function keys.

In addition to that, this change set correct scan code to LPARAM
for all key events. Unfortunately, there is no API to get a
correct extended scan code from a virtual key because
MapVirtualKey and MapVirtualKeyEx doesn't work as expected.
makeKeyDataForScanCode turns on KF_EXTENDED flag for some keys
explicitly for the workaround.
<http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/>

  • DumpRenderTree/win/EventSender.cpp:

(makeKeyDataForScanCode):
(keyDownCallback):

  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::makeKeyDataForScanCode):
(WTR::EventSenderProxy::keyDown):

LayoutTests:

  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Unskipped fast/events/keydown-function-keys.html and fast/events/keydown-leftright-keys.html.

5:04 PM Changeset in webkit [252440] by Jonathan Bedard
  • 32 edits in trunk/Tools

Python 3: Add support in webkitpy.style.checkers
https://bugs.webkit.org/show_bug.cgi?id=203761

Rubber-stamped by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.style.checkers.
  • Scripts/webkitpy/port/builders.py:

(all_port_names): Convert map to a list before concatenating.

  • Scripts/webkitpy/style/checkers/changelog.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/changelog_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/cmake.py: Ditto.
  • Scripts/webkitpy/style/checkers/cmake_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/common_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/contributors.py: Ditto.
  • Scripts/webkitpy/style/checkers/cpp.py:

(Position): Add rich comparison functions.
(check_for_copyright): Use range instead of xrange.
(detect_functions): Ditto.
(check_language): Use r-string.
(check_for_include_what_you_use): Use range instead of xrange.
(_process_lines): Convert iterator to list, use range instead of xrange.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest): Be explicit about bytes vs strings.

  • Scripts/webkitpy/style/checkers/js.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/js_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/jsonchecker.py: Ditto.

(JSONFeaturesChecker.check):

  • Scripts/webkitpy/style/checkers/jsonchecker_unittest.py: Ditto.

(JSONCheckerTest.test_conflict_marker): Differentiate between Python 2 and 3
json parsers.

  • Scripts/webkitpy/style/checkers/jstest_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/messagesin.py: Ditto.
  • Scripts/webkitpy/style/checkers/messagesin_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/png_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/python.py:

(PythonChecker.check): Only run pylint in Python 2.
(PythonChecker._check_pylint): Use r string.
(Pylinter.run): Surpress logging from Pylint.

  • Scripts/webkitpy/style/checkers/python_unittest.py: Use explicit imports.

(PythonCheckerTest.test_check): Add FIXME for running pylint in Python 3.

  • Scripts/webkitpy/style/checkers/python_unittest_falsepositives.py:
  • Scripts/webkitpy/style/checkers/python_unittest_input.py:
  • Scripts/webkitpy/style/checkers/test_expectations.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/test_expectations_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/text.py: Ditto.
  • Scripts/webkitpy/style/checkers/text_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/watchlist_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/xcodeproj_unittest.py: Ditto.
  • Scripts/webkitpy/style/checkers/xml_unittest.py: Ditto.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pep8): Update pep8 version.

4:35 PM Changeset in webkit [252439] by Simon Fraser
  • 5 edits
    2 adds in trunk

REGRESSION (r249434): flashy menus on wellsfargo.com
https://bugs.webkit.org/show_bug.cgi?id=204175
<rdar://problem/56654512>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: compositing/backing/backing-for-clipping.html

r249434 made overflow an "indirect compositing reason" (i.e. we composite for overflow:hidden
when necessary to clip a composited descendant). However this made a clause in RenderLayerCompositor::requiresOwnBackingStore()
return early when this reason is set, skipping the bounds check, so we need to do the bound check first.
This is similar to the fix in r252070.

The change to the perspective test relates to the "FIXME"; we don't use the correct ancestor for the
bounds check, so sometimes layers can have backing store when they don't need it until that's fixed.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):

LayoutTests:

  • compositing/backing/backing-for-clipping-expected.html: Added.
  • compositing/backing/backing-for-clipping.html: Added.
  • compositing/backing/no-backing-for-perspective-expected.txt:
  • platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt:
4:25 PM Changeset in webkit [252438] by jer.noble@apple.com
  • 7 edits
    1 add in trunk

Link mediaDataLoadsAutomatically setting to AutoplayPolicy
https://bugs.webkit.org/show_bug.cgi?id=201738
<rdar://problem/55315194>

Reviewed by Eric Carlson.

Source/WebCore:

This change has two effects: on Mac, when the embedding app sets an AutoplayPolicy to
deny autoplay, this will also deny the ability to load media data beyond "preload"; on iOS
when the embedding app sets an AutoplayPolicy to allow autoplay, this will also allow media
data to load beyond "preload".

  • dom/Document.cpp:

(WebCore::Document::mediaDataLoadsAutomatically const):

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::finishInitialization):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/media-loading.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

4:17 PM Changeset in webkit [252437] by clopez@igalia.com
  • 2 edits in trunk/Tools

test262-runner: use NUMBER_OF_PROCESSORS and stop multiplying the number of cores.
https://bugs.webkit.org/show_bug.cgi?id=204154

Reviewed by Ross Kirsling.

We have enabled running test262 on GTK and WPE test bots on r252362
But it seems this test262 runner is not respecting the environment
variable NUMBER_OF_PROCESSORS. We set that on the bot environments
to tell each worker how much parallelism it should use.

Instead this runner was using all the system cores (which on some
cases is 256) and that was causing issues on other containers/workloads
running on the same system at the same time.

This environment variable is understood by all webkit-related test scripts.
It should be accepted also by this test262 runner script.

On top of that, this patch removes the multiplication that is done
when the number of parallel jobs is not specified and its calculated
from the available cores of the system. On one hand there is no
written motivation for this multiplication behaviour, and on the other
hand there is evidence that it doesn't improve performance.

  • Scripts/test262/Runner.pm:

(getProcesses):

3:56 PM Changeset in webkit [252436] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

Web Inspector: DOM.highlightSelector should work for "a:visited"
https://bugs.webkit.org/show_bug.cgi?id=146161
<rdar://problem/21467303>

Reviewed by Antti Koivisto.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):
Rather than use document.querySelectorAll, which doesn't match pseudo-selectors, attempt
to mimic how CSS actually matches nodes.

  • rendering/style/RenderStyleConstants.h:

(WebCore::PseudoIdSet::remove): Added.

3:13 PM Changeset in webkit [252435] by mmaxfield@apple.com
  • 22 edits in trunk

[Mac] Fix build
https://bugs.webkit.org/show_bug.cgi?id=204136

Reviewed by Alex Christensen.

Remove deprecation warnings.

Source/WebCore:

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformCanBlitOnScroll const):

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformCanBlitOnScroll const):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::paint):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::systemColor const):
(WebCore::paintAttachmentTitleBackground):

Source/WebKit:

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error):
(WebKit::initializeCocoaOverrides):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView changeFont:]):
(-[WKWebView changeColor:]):
(-[WKWebView view:stringForToolTip:point:userData:]):
(-[WKWebView pasteboardChangedOwner:]):
(-[WKWebView pasteboard:provideDataForType:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView changeFont:]):
(-[WKView view:stringForToolTip:point:userData:]):
(-[WKView pasteboardChangedOwner:]):
(-[WKView pasteboard:provideDataForType:]):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::launchApplicationAtURL):
(WebKit::PluginProcessProxy::openFile):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionView setBackgroundStyle:]):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
(WebKit::WebPageProxy::openPDFFromTemporaryFolderWithNativeApplication):

Source/WebKitLegacy/mac:

  • Plugins/WebPluginController.mm:

(-[WebPluginController webPlugInContainerSelectionColor]):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::setCopiesOnScroll):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView view:stringForToolTip:point:userData:]):
(-[WebHTMLView pasteboardChangedOwner:]):
(-[WebHTMLView pasteboard:provideDataForType:]):
(-[WebHTMLView changeFont:]):
(-[WebHTMLView changeColor:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView _openWithFinder:]):

Tools:

  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController validateMenuItem:]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):

  • TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm:

(-[DragInfo ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[DragInfo draggedImage]): Deleted.

3:05 PM Changeset in webkit [252434] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Cleanup old UIKit Staging
https://bugs.webkit.org/show_bug.cgi?id=204130

Reviewed by Wenson Hsieh.

Not new tests - linking only.

  • Platform/spi/ios/UIKitSPI.h:

Removing old staging code that should be unnecessary now.

2:56 PM Changeset in webkit [252433] by Megan Gardner
  • 3 edits in trunk/Tools

check-webkit-style: fix false errors for obj-c method calls in range-based for statements using colon syntax
https://bugs.webkit.org/show_bug.cgi?id=204142

Reviewed by Jonathan Bedard.

Allow for the existance of an obj-c method call in a range-based for statement that also uses colons.
Do not allow colons between square brackets to trigger the error.
Also add a test for this specific case.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_spacing):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_spacing):

2:47 PM Changeset in webkit [252432] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Cannot open camera from websites
https://bugs.webkit.org/show_bug.cgi?id=204168
<rdar://problem/57138788>

Reviewed by Jer Noble.

The sandbox is blocking a required service.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:41 PM Changeset in webkit [252431] by commit-queue@webkit.org
  • 5 edits in trunk/Source

VeryHigh priority loads are actually loading at VeryLow priority
https://bugs.webkit.org/show_bug.cgi?id=203423
<rdar://problem/56621789>

Patch by Benjamin Nham <Ben Nham> on 2019-11-13
Reviewed by Antti Koivisto.

There are two issues with the way we translate ResourceLoadPriority to
CFURLRequestPriority:

  1. We call _CFNetworkHTTPConnectionCacheSetLimit and set 1 too few

priority levels. This means VeryHigh priority loads are actually out
of bounds, which causes CFNetwork to set the priority level back to 0
in HTTPConnectionCacheEntry::_prepareNewRequest. After this patch we'll
call _CFNetworkHTTPConnectionCacheSetLimit with the correct number of
levels.

  1. _CFNetworkHTTPConnectionCacheSetLimit doesn't work for NSURLSession

right now (<rdar://problem/56621205>), so we have to map to the default
number of CFURLRequestPriority levels, which is 4. Right now we have 5
ResourceLoadPriority levels, so there will be some aliasing involved.
After this patch VeryLow gets a priority of -1 and Low gets a priority
of 0, but due to the aforementioned clamping behavior both VeryLow and
Low will effectively both have a CFURLRequestPriority of 0.

Source/WebCore:

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::initializeMaximumHTTPConnectionCountPerHost):
(WebCore::initializeHTTPConnectionSettingsOnStartup):

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):
(WebCore::toPlatformRequestPriority):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::initializeNetworkSettings):

1:51 PM Changeset in webkit [252430] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] Parse jsc_results.json for JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204090

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunJavaScriptCoreTests):
(RunJavaScriptCoreTests.start): Initialize log_observer for json.
(RunJavaScriptCoreTests.commandComplete): Parse jsc_results.json and set properties accordingly.
(RunJavaScriptCoreTests.getResultSummary): Update the build-step summary string.
(ReRunJavaScriptCoreTests):
(RunJSCTestsWithoutPatch):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestRunJavaScriptCoreTests.setUp): Added sample json files for testing.
(TestRunJavaScriptCoreTests.configureStep):
(TestRunJavaScriptCoreTests.test_single_stress_test_failure): Added unit-tests.
(TestRunJavaScriptCoreTests.test_lot_of_stress_test_failure): Ditto.
(TestRunJavaScriptCoreTests.test_masm_failure): Ditto.
(TestRunJavaScriptCoreTests.test_b3_and_stress_test_failure): Ditto.
(TestRunJavaScriptCoreTests.test_dfg_air_and_stress_test_failure): Ditto.

1:47 PM Changeset in webkit [252429] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

Layout Tests in imported/w3c/web-platform-tests/websockets/ are flakey failures after r246406
https://bugs.webkit.org/show_bug.cgi?id=199013
<rdar://problem/51902173>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/websockets/Close-undefined.any-expected.txt:

LayoutTests:

Mark more tests as DumpJSConsoleLogInStdErr

1:33 PM Changeset in webkit [252428] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Remove timer to stop service worker process
https://bugs.webkit.org/show_bug.cgi?id=204118

Reviewed by Alex Christensen.

Removal of a timer that is never get activated.
No change of behavior.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):

  • UIProcess/WebProcessPool.h:
1:31 PM Changeset in webkit [252427] by youenn@apple.com
  • 13 edits in trunk/LayoutTests

Several XHR and CORS tests are flaky due to inconsistent order of console messages
https://bugs.webkit.org/show_bug.cgi?id=179607

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/access-control-and-redirects-async-expected.txt:
  • web-platform-tests/xhr/access-control-and-redirects-async-same-origin-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-header-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-method-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-async-not-supported-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-header-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-method-denied-expected.txt:
  • web-platform-tests/xhr/access-control-preflight-sync-not-supported-expected.txt:
  • web-platform-tests/xhr/event-error.sub-expected.txt:
  • web-platform-tests/xhr/send-conditional-cors-expected.txt:

LayoutTests:

Use DumpJSConsoleLogInStdErr to remove console lines.

1:11 PM Changeset in webkit [252426] by Alan Coon
  • 5 edits in tags/Safari-609.1.9.5

Cherry-pick r252116. rdar://problem/57162237

Temporarily turn off NSURLSession isolation
https://bugs.webkit.org/show_bug.cgi?id=201822

Reviewed by Chris Dumez.

Source/WebKit:

Existing tests skipped.

Re-enabling it is tracked in rdar://problem/56921584.

  • NetworkProcess/cache/NetworkCacheStorage.h:

Bumps the version to force a clean cache.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

Skips setting needsIsolatedSession.

LayoutTests:

Re-enabling it is tracked in rdar://problem/56921584.

  • platform/wk2/TestExpectations:

Skipped the associated tests.

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

1:07 PM Changeset in webkit [252425] by Alan Coon
  • 7 edits in tags/Safari-609.1.9.5/Source

Versioning.

1:05 PM Changeset in webkit [252424] by Alan Coon
  • 1 copy in tags/Safari-609.1.9.5

New tag.

12:16 PM Changeset in webkit [252423] by dino@apple.com
  • 10 edits in trunk

Fix some WebGPU demos
https://bugs.webkit.org/show_bug.cgi?id=204167
Source/WebCore:

<rdar://problem/57160316>

Reviewed by Myles C. Maxfield.

Add a note referencing a bug I detected while fixing this demo.
And a drive-by typo.

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):

  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::copyBufferToTexture):

Websites/webkit.org:

Reviewed by Myles C. Maxfield.

Use COPY_ rather than TRANSFER_.

  • demos/webgpu/babylon/babylonWebGpu.max.js:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/hello-cube.html:
  • demos/webgpu/scripts/compute-boids-compile.js:
  • demos/webgpu/scripts/compute-boids-utils.js:

(async.createTextureFromImage):

  • demos/webgpu/textured-cube.html:
12:07 PM Changeset in webkit [252422] by rmorisset@apple.com
  • 53 edits
    1 add in trunk

Split ArithProfile into a Unary and a Binary version
https://bugs.webkit.org/show_bug.cgi?id=202832
<rdar://problem/56266847>

Reviewed by Keith Miller.

JSTests:

The new test (kindly provided by Mark Lam) catches the metadata corruption that used to happen in the previous version of this patch.

  • stress/regress-57020338.js: Added.

Source/JavaScriptCore:

ArithProfile was for a long time only used for add/sub/mul/div, but recently it started being used for negate. And it will soon also have to be used for inc and dec due to BigInt.
So in this patch I make a separate version that only has the data for a single argument, and thus takes half as much memory.

After discussing this change with Phil I realized that the ResultType(s) that were taking space in ArithProfile are not needed: they never change and a copy is already in the bytecode instruction itself.
Removing them allowed shrinking both kinds of ArithProfile to fit in 16 bits (9 and 13 respectively).
I kept the two kinds separate because they may shrink or grow independently in the future.

This also required adding the "orh" instruction to the offline assembler, to set bits in the ArithProfile.
This in turn motivated the addition of "storeh", as on RISC platforms "orh" on a memory location is actually loadh -> orh -> storeh.

Finally it required adding support for or16(TrustedImm32, AbsoluteAddress) in the MacroAssembler for the ICs.
Instead of directly calling it (like we used to do with or32), I introduced ArithProfile::emitUnconditionalSet, so that if either ArithProfile ever changes in size again we'll have fewer places to change.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::or16):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or16):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or16):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::or16):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::or16):

  • assembler/testmasm.cpp:

(JSC::testOrImmMem):
(JSC::run):

  • bytecode/ArithProfile.cpp:

(JSC::ArithProfile<BitfieldType>::emitObserveResult):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetDouble const):
(JSC::ArithProfile<BitfieldType>::emitSetDouble const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::emitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitUnconditionalSet const):
(WTF::printInternal):

  • bytecode/ArithProfile.h:

(JSC::ArithProfile::didObserveNonInt32 const):
(JSC::ArithProfile::didObserveDouble const):
(JSC::ArithProfile::didObserveNonNegZeroDouble const):
(JSC::ArithProfile::didObserveNegZeroDouble const):
(JSC::ArithProfile::didObserveNonNumeric const):
(JSC::ArithProfile::didObserveBigInt const):
(JSC::ArithProfile::didObserveInt32Overflow const):
(JSC::ArithProfile::didObserveInt52Overflow const):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumeric):
(JSC::ArithProfile::setObservedBigInt):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::observeResult):
(JSC::ArithProfile::addressOfBits const):
(JSC::ArithProfile::bits const):
(JSC::ArithProfile::ArithProfile):
(JSC::ArithProfile::hasBits const):
(JSC::ArithProfile::setBit):
(JSC::UnaryArithProfile::UnaryArithProfile):
(JSC::UnaryArithProfile::observedIntBits):
(JSC::UnaryArithProfile::observedNumberBits):
(JSC::UnaryArithProfile::argObservedType const):
(JSC::UnaryArithProfile::setArgObservedType):
(JSC::UnaryArithProfile::argSawInt32):
(JSC::UnaryArithProfile::argSawNumber):
(JSC::UnaryArithProfile::argSawNonNumber):
(JSC::UnaryArithProfile::observeArg):
(JSC::UnaryArithProfile::isObservedTypeEmpty):
(JSC::BinaryArithProfile::BinaryArithProfile):
(JSC::BinaryArithProfile::observedIntIntBits):
(JSC::BinaryArithProfile::observedNumberIntBits):
(JSC::BinaryArithProfile::observedIntNumberBits):
(JSC::BinaryArithProfile::observedNumberNumberBits):
(JSC::BinaryArithProfile::setLhsObservedType):
(JSC::BinaryArithProfile::setRhsObservedType):
(JSC::BinaryArithProfile::observeLHS):
(JSC::BinaryArithProfile::observeLHSAndRHS):
(JSC::BinaryArithProfile::isObservedTypeEmpty):

  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::addJITNegIC):
(JSC::CodeBlock::binaryArithProfileForBytecodeIndex):
(JSC::CodeBlock::unaryArithProfileForBytecodeIndex):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialArithFastCase):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addMathIC):

  • bytecode/Fits.h:
  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue const):
(JSC::MethodOfGettingAValueProfile::reportValue):

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::UnaryOpNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueNegate):

  • jit/JIT.h:
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_negate):
(JSC::JIT::emit_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emit_op_sub):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::copiedArithProfile):

  • jit/JITMathIC.h:

(JSC::JITMathIC::JITMathIC):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::arithProfile const):
(JSC::JITBinaryMathIC::JITBinaryMathIC):
(JSC::JITUnaryMathIC::JITUnaryMathIC):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:
  • jit/JITNegGenerator.cpp:

(JSC::JITNegGenerator::generateInline):
(JSC::JITNegGenerator::generateFastPath):

  • jit/JITNegGenerator.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntOffsetsExtractor.cpp:

(JSC::LLIntOffsetsExtractor::dummy):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm.rb:
  • offlineasm/arm64.rb:
  • offlineasm/cloop.rb:
  • offlineasm/instructions.rb:
  • offlineasm/mips.rb:
  • offlineasm/risc.rb:
  • offlineasm/x86.rb:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):

  • runtime/CommonSlowPaths.cpp:

(JSC::updateArithProfileForUnaryArithOp):
(JSC::updateArithProfileForBinaryArithOp):
(JSC::SLOW_PATH_DECL):

11:40 AM Changeset in webkit [252421] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Put more into IsoSubspace part 2
https://bugs.webkit.org/show_bug.cgi?id=204144

Reviewed by Mark Lam.

We are doing this step by step to carefully watch the bot status.
This patch puts following things into IsoSubspace.

  1. FunctionRareData
  2. ProxyObject
  3. SparseArrayValueMap
  • runtime/FunctionRareData.h:
  • runtime/ProxyObject.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
11:36 AM Changeset in webkit [252420] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/model/remote-object-weak-collection.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202932

Reviewed by Brian Burg.

  • inspector/model/remote-object-weak-collection.html:

Don't generatePreview when evaluating each expression, as that can create additional
references to the object. Use HeapAgent.gc() as that's guaranteed to be synchronous.

11:22 AM Changeset in webkit [252419] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Google Docs spreadsheet tiles render very slowly (because of event region painting)
https://bugs.webkit.org/show_bug.cgi?id=204160
<rdar://problem/57073401>

Reviewed by Simon Fraser.

Source/WebCore:

Content of a overflow:scroll area on this page doesn't cover the entire scrollable area and we end
up generating a complex shape for the event region. This is unnecessary as touches within scrollers
always scroll the content.

Test: fast/scrolling/ios/event-region-scrolled-contents-layer.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

Initialize event region for scrolled contents layer with layer-sized event region. This optimizes away
event region mutations. We still need to to do the event region paint to capture touch-action regions.

In future we should also improve Region type to not have pathological worst-case performance with complex
shapes.

LayoutTests:

  • fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt: Added.
  • fast/scrolling/ios/event-region-scrolled-contents-layer.html: Added.
11:15 AM Changeset in webkit [252418] by youenn@apple.com
  • 15 edits in trunk

Take service worker assertions based on client processes assertion states
https://bugs.webkit.org/show_bug.cgi?id=204119

Reviewed by Chris Dumez.

Source/WebKit:

Compute in network process which processes contain clients for service workers of a given process.
WebSWServerConnection implements it and sends update to UIProcess/WebProcessProxy.
WebProcessProxy keeps for each service worker process a set of client web processes.
WebProcessProxy now computes the service worker process assertion based on this set.

Add some private APIs to set process assertions/get service worker process assertion states.
Covered by new API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
(WebKit::WebSWServerConnection::contextConnectionCreated):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::webProcessIdentifier const):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setAssertionStateForTesting:]):
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]):
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::registerWebProcessToServiceWorkerProcess):
(WebKit::NetworkProcessProxy::unregisterWebProcessToServiceWorkerProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::hasServiceWorkerForegroundActivityForTesting const):
(WebKit::WebProcessPool::hasServiceWorkerBackgroundActivityForTesting const):

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

(WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion):
(WebKit::WebProcessProxy::registerWebProcessToServiceWorkerProcess):
(WebKit::WebProcessProxy::unregisterWebProcessToServiceWorkerProcess):
(WebKit::WebProcessProxy::hasServiceWorkerForegroundActivityForTesting const):
(WebKit::WebProcessProxy::hasServiceWorkerBackgroundActivityForTesting const):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::setAssertionStateForTesting):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

Add tests checking service worker process assertion state.

11:00 AM Changeset in webkit [252417] by Andres Gonzalez
  • 9 edits in trunk/Source

AXObjectCache::rootObject should generate the isolated tree.
https://bugs.webkit.org/show_bug.cgi?id=204131

Reviewed by Chris Fleizach.

Source/WebCore:

No new tests, no change in functionality.

AXObjectCache::rootObject now returns an AccessibilityObject or an
IsolatedObject. This makes it possible for client code to use the
isolated tree seamlessly, as long as the client call happens on a
secondary thread. This allows WKTR AccessibilityController to use the
isolated tree in LayoutTests.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::createIsolatedTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::rootWebArea):
(WebCore::AXObjectCache::createIsolatedAccessibilityTreeHierarchy): Renamed.
(WebCore::AXObjectCache::generateIsolatedAccessibilityTree): renamed.

  • accessibility/AXObjectCache.h:

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]):
(-[WKAccessibilityWebPageObjectBase clientSupportsIsolatedTree]): Became a member of AXObjectCache.
(-[WKAccessibilityWebPageObjectBase isolatedTreeRootObject]): Deleted.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

10:45 AM Changeset in webkit [252416] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] AI should convert IsCellWithType to constant when Structure set is finite
https://bugs.webkit.org/show_bug.cgi?id=204141

Reviewed by Saam Barati.

JSTests:

  • stress/generator-cell-with-type.js: Added.

(shouldBe):
(shouldThrow):
(test):
(i.shouldThrow):

Source/JavaScriptCore:

We should fold IsCellWithType if Structure set is finite since we have a chance to know what JSType is.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

10:39 AM Changeset in webkit [252415] by Alan Bujtas
  • 6 edits
    4 moves
    1 add
    3 deletes in trunk/Source/WebCore

[LFC][Invalidation] Introduce InvalidationState and Context
https://bugs.webkit.org/show_bug.cgi?id=204140
<rdar://problem/57142106>

Reviewed by Antti Koivisto.

InvalidationContext take style/content changes and turn them into "dirty layout boxes" (stored in InvalidationState).
InvalidationState is the input to the (partial)subsequent layout.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/Invalidation.h: Removed.
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutContext::runLayout):
(WebCore::Layout::LayoutContext::styleChanged): Deleted.
(WebCore::Layout::LayoutContext::markNeedsUpdate): Deleted.

  • layout/LayoutContext.h:

(WebCore::Layout::LayoutContext::updateAll): Deleted.

  • layout/blockformatting/BlockInvalidation.cpp: Removed.
  • layout/blockformatting/BlockInvalidation.h: Removed.
  • layout/invalidation/InvalidationContext.cpp: Renamed from Source/WebCore/layout/inlineformatting/InlineInvalidation.cpp.

(WebCore::Layout::InvalidationContext::InvalidationContext):
(WebCore::Layout::InvalidationContext::styleChanged):
(WebCore::Layout::InvalidationContext::contentChanged):
(WebCore::Layout::InvalidationContext::subtreeChanged):

  • layout/invalidation/InvalidationContext.h: Renamed from Source/WebCore/layout/inlineformatting/InlineInvalidation.h.
  • layout/invalidation/InvalidationState.cpp: Renamed from Source/WebCore/layout/tableformatting/TableInvalidation.cpp.

(WebCore::Layout::InvalidationState::InvalidationState):
(WebCore::Layout::InvalidationState::markNeedsUpdate):

  • layout/invalidation/InvalidationState.h: Renamed from Source/WebCore/layout/tableformatting/TableInvalidation.h.

(WebCore::Layout::InvalidationState::formattingContextRoots const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::printLayoutTreeForLiveDocuments):

10:39 AM Changeset in webkit [252414] by Alan Coon
  • 4 edits
    1 delete in tags/Safari-609.1.10.1/Source/WebKit

Cherry-pick r252410. rdar://problem/57120002

Rollout(r251358) Causes load hangs
https://bugs.webkit.org/show_bug.cgi?id=204158
<rdar://problem/57120002>

Unreviewed, revert r251358 because it causes load hangs.

  • Platform/spi/Cocoa/SecItemSPI.h: Removed.
  • Shared/mac/SecItemRequestData.cpp: (WebKit::SecItemRequestData::decode):
  • Shared/mac/SecItemRequestData.h:
  • WebKit.xcodeproj/project.pbxproj:

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

10:25 AM Changeset in webkit [252413] by Alan Coon
  • 4 edits
    1 delete in tags/Safari-609.1.10.0.2/Source/WebKit

Cherry-pick r252410. rdar://problem/57120002

Rollout(r251358) Causes load hangs
https://bugs.webkit.org/show_bug.cgi?id=204158
<rdar://problem/57120002>

Unreviewed, revert r251358 because it causes load hangs.

  • Platform/spi/Cocoa/SecItemSPI.h: Removed.
  • Shared/mac/SecItemRequestData.cpp: (WebKit::SecItemRequestData::decode):
  • Shared/mac/SecItemRequestData.h:
  • WebKit.xcodeproj/project.pbxproj:

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

9:31 AM Changeset in webkit [252412] by youenn@apple.com
  • 6 edits in trunk

[ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=203275
<rdar://problem/56516249>

Reviewed by Alex Christensen.

Source/WebKit:

Fix flakiness by clearing the storage of each cache when the cache is being cleared.
This ensures that the storage salt gets recreated if needed.

To further improve repeatability, make sure that initialize based tasks happen after clear tasks are complete.
For that purpose, add a clear task counter and append initialize callbacks to a Vector if counter is not zero.
Increment counter at clear task creation and decrement counter at completion time.
If counter is back to 0, we can safely process the pending clear tasks.

Covered by unflaked test.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::~Engine):
(WebKit::CacheStorage::Engine::initialize):
(WebKit::CacheStorage::CompletionHandler<void):
(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):

  • NetworkProcess/cache/CacheStorageEngine.h:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::clearMemoryRepresentation):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
8:21 AM Changeset in webkit [252411] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Make webkitperl EWS robust against flakiness in webkitperl tests
https://bugs.webkit.org/show_bug.cgi?id=204155

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitPerlTests): Set haltOnFailure and flunkOnFailure to false.
(RunWebKitPerlTests.evaluateCommand): Add re-run step in case of failure.
(ReRunWebKitPerlTests):
(ReRunWebKitPerlTests.evaluateCommand): Overrided this to avoid running this step again.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestReRunJavaScriptCoreTests): Added unit-tests.

8:16 AM Changeset in webkit [252410] by Chris Dumez
  • 4 edits
    1 delete in trunk/Source/WebKit

Rollout(r251358) Causes load hangs
https://bugs.webkit.org/show_bug.cgi?id=204158
<rdar://problem/57120002>

Unreviewed, revert r251358 because it causes load hangs.

  • Platform/spi/Cocoa/SecItemSPI.h: Removed.
  • Shared/mac/SecItemRequestData.cpp:

(WebKit::SecItemRequestData::decode):

  • Shared/mac/SecItemRequestData.h:
  • WebKit.xcodeproj/project.pbxproj:
7:22 AM Changeset in webkit [252409] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebCore

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

This change broke the iOS and macOS build (Requested by
aakashja_ on #webkit).

Reverted changeset:

"Unreviewed, fix GTK/WPE builds after enabling POINTER_EVENTS
support."
https://trac.webkit.org/changeset/252402

Patch by Commit Queue <commit-queue@webkit.org> on 2019-11-13

6:40 AM Changeset in webkit [252408] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebDriver

WebDriver: duration can be undefined in pause actions
https://bugs.webkit.org/show_bug.cgi?id=204152

Reviewed by Carlos Alberto Lopez Perez.

Make duration optional in pause actions.

Fixes: imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[none]

imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[key]
imported/w3c/webdriver/tests/perform_actions/validity.py::test_pause_without_duration[pointer]

  • Session.cpp:

(WebDriver::Session::performActions):

  • WebDriverService.cpp:

(WebDriver::processPauseAction):

6:38 AM Changeset in webkit [252407] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebDriver

WebDriver: check the frameID parameter before running switch to frame command
https://bugs.webkit.org/show_bug.cgi?id=204150

Reviewed by Carlos Alberto Lopez Perez.

We should check it's either null, a number (unsigned sort) or an object referencing a web element.

Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[foo]

imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[True]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[value2]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_invalid_types[value3]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_out_of_bounds[-1]
imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_out_of_bounds[65536]

  • Session.cpp:

(WebDriver::Session::switchToFrame): Remove the validation here. Also remove the case of being a frame name,
since that's not in the spec.

  • WebDriverService.cpp:

(WebDriver::WebDriverService::switchToFrame): Check frameID type before calling Session::switchToFrame().

6:27 AM Changeset in webkit [252406] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: some layout test are failing on Win EWS
https://bugs.webkit.org/show_bug.cgi?id=204153

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:27 AM Changeset in webkit [252405] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Flaky API Test TestWebKitAPI.ServiceWorkers.ThrottleCrash
https://bugs.webkit.org/show_bug.cgi?id=203734
<rdar://problem/56814638>

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Disabled the flaky test for now.
5:45 AM Changeset in webkit [252404] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Flaky API Test TestWebKitAPI.WebKit.ApplicationCacheDirectories
https://bugs.webkit.org/show_bug.cgi?id=203732
<rdar://problem/56814641>

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: Disabled the flaky test for now.
5:00 AM Changeset in webkit [252403] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Skip imported/w3c/webdriver/tests/send_alert_text/send.py::test_alert_unsupported_operation.

The test looks specific to firefox.

4:31 AM Changeset in webkit [252402] by Nikolas Zimmermann
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK/WPE builds after enabling POINTER_EVENTS support.

Our g++ 8.3.0 yields "error: call to non-constexpr function
WTFReportAssertionFailure" when compiling rendering/EventRegion.cpp
since r252366.

Simply remove the ASSERT_NOT_REACHED() from toIndex(): a missing value
in the switch statement will be caught by compiler warnings. Remove the
constexpr flag from toTouchAction(): in this case, the
ASSERT_NOT_REACHED() is useful and should stay.

Rubber-stamped by Philippe Normand.

  • rendering/EventRegion.cpp:

(WebCore::toIndex): Remove call to ASSERT_NOT_REACHED().
(WebCore::toTouchAction): Keep ASSERT_NOT_REACHED(), removed constexpr.

4:15 AM Changeset in webkit [252401] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Add expectations for execute script tests.

The ones checking the use of promises are failing.

3:31 AM Changeset in webkit [252400] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix build for ServiceWorkers disabled

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::enableServiceWorkers):

3:08 AM Changeset in webkit [252399] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix build for accessibility disabled.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::characterOffsetForIndex):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::children):
(WebCore::AccessibilityObject::updateBackingStore):

2:43 AM Changeset in webkit [252398] by calvaris@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Several issues while trying to play a video on NextCloud
https://bugs.webkit.org/show_bug.cgi?id=203194

Reviewed by Philippe Normand.

First problem was the loader not being restarted in PAUSED, so
sometimes playback never started since buffering never reached
100%.

Then, after investigating blocksizes and not being a viable
solution, reducing the 200_ms to 100_ms wait for new data was the
trick to avoid choppyness.

During investigation several issues were fixed like turning
GstQuery* into GRefPtr for MediaPlayerPrivateGStreamer::buffered,
making blocksize unsigned instead of uint64_t as it is in
GStreamer and creating and using WEBKIT_WEB_SRC_CAST since many
uses of WEBKIT_WEB_SRC cast were already protected by
WEBKIT_IS_WEB_SRC.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered const): GRefPtr<GstQuery>.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck const):
Use WEBKIT_WEB_SRC_CAST.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate): Reduce wait for data down to 100_ms and
request download restart also in PAUSED.
(CachedResourceStreamingClient::checkUpdateBlocksize): Turn
blocksize to unsigned.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Add

WEBKIT_WEB_SRC_CAST.

2:22 AM Changeset in webkit [252397] by commit-queue@webkit.org
  • 29 edits
    20 adds in trunk

Support stale-while-revalidate cache strategy
https://bugs.webkit.org/show_bug.cgi?id=201461

Patch by Rob Buis <rbuis@igalia.com> on 2019-11-13
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Import stale-while-revalidate WPT tests.

  • resources/import-expectations.json:
  • web-platform-tests/fetch/stale-while-revalidate/fetch-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/fetch-sw.https-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/fetch-sw.https.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/fetch.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-css.py: Added.

(main):

  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-image.py: Added.

(main):

  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-script.py: Added.

(id_token):
(main):

  • web-platform-tests/fetch/stale-while-revalidate/resources/w3c-import.log: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-css-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-css.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-image-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-image.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-script-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/stale-script.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/sw-intercept.js: Added.

(async.broadcast):

  • web-platform-tests/fetch/stale-while-revalidate/w3c-import.log: Added.

Source/WebCore:

Start parsing the stale-while-revalidate Cache-Control directive
and expose it on ResourceResponse.

Tests: imported/w3c/web-platform-tests/fetch/stale-while-revalidate/fetch-sw.https.html

imported/w3c/web-platform-tests/fetch/stale-while-revalidate/fetch.html
imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-css.html
imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-image.html
imported/w3c/web-platform-tests/fetch/stale-while-revalidate/stale-script.html

  • platform/network/CacheValidation.cpp:

(WebCore::parseCacheControlDirectives):

  • platform/network/CacheValidation.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::cacheControlStaleWhileRevalidate const):

  • platform/network/ResourceResponseBase.h:

Source/WebKit:

Add a new UseDecision value AsyncRevalidate for async revalidation. This is used
when the retrieved cache entry is a stale-while-revalidate response [1].
In case of AsyncRevalidate, a check is made to see if there is a
current async revalidation ongoing for the entry, if not one is
started. Regardless, the stale entry is returned, until either the
async revalidation ends successfully or at the moment when the
response expires for real.

[1] https://fetch.spec.whatwg.org/#concept-stale-while-revalidate-response

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::isStaleWhileRevalidateEnabled const):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cache/AsyncRevalidation.cpp: Added.

(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::AsyncRevalidation::staleWhileRevalidateEnding):
(WebKit::NetworkCache::AsyncRevalidation::AsyncRevalidation):

  • NetworkProcess/cache/AsyncRevalidation.h: Added.

(WebKit::NetworkCache::AsyncRevalidation::load const):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::makeUseDecision):
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::responseHasExpired): Deleted.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::dumpHTTPHeadersDiff):
(WebKit::NetworkCache::requestsHeadersMatch):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::dumpHTTPHeadersDiff): Deleted.
(WebKit::NetworkCache::requestsHeadersMatch): Deleted.

  • Sources.txt:
  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationGetStaleWhileRevalidateEnabled):
(WKWebsiteDataStoreConfigurationSetStaleWhileRevalidateEnabled):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::staleWhileRevalidateEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setStaleWhileRevalidateEnabled):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Enable stale-while-revalidate for the test runner.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):

LayoutTests:

Skip newly imported tests for WK1.

  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
1:26 AM Changeset in webkit [252396] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Add expectations for tests using strictFileInteractability

File upload is not yet supported.

1:25 AM Changeset in webkit [252395] by rniwa@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Add punctuation rules for C++ lambdas
https://bugs.webkit.org/show_bug.cgi?id=204021

Reviewed by Zalan Bujtas.

Added rules for not putting spaces between [] and () and omitting () whenever possible for C++ lambdas.

  • code-style.md:
12:45 AM Changeset in webkit [252394] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Update expectations of fullscreen tests.

They are failing in the bots, but passing locally and with wpt.

Note: See TracTimeline for information about the timeline view.