Timeline



Nov 4, 2019:

11:48 PM Changeset in webkit [252043] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Skip fast/forms/ios/inputmode-change-update-keyboard.html on iPads as this test relies on iPhone's keyboard behavior.

  • platform/ipad/TestExpectations:
9:16 PM Changeset in webkit [252042] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] LayoutTest fast/events/touch/ios/double-tap-for-double-click3.html is failing
https://bugs.webkit.org/show_bug.cgi?id=203835
<rdar://problem/56123067>

Unable to reproduce. Inserting a double-tap-delay between the events usually fixes these problems.

Reviewed by Wenson Hsieh.

  • fast/events/touch/ios/double-tap-for-double-click3.html:
9:13 PM Changeset in webkit [252041] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html is failing
https://bugs.webkit.org/show_bug.cgi?id=203838
<rdar://problem/55664976>

Reviewed by Wenson Hsieh.

Unable to reproduce. Replace the magic 50ms timeouts with the more robust UIHelper.waitForDoubleTapDelay().

  • fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html:
8:48 PM Changeset in webkit [252040] by Alan Coon
  • 5 edits in branches/safari-608-branch/Source

Cherry-pick r252000. rdar://problem/56887517

REGRESSION(r243947) Epson software updater fails to install new version
https://bugs.webkit.org/show_bug.cgi?id=203809
<rdar://problem/56002179>

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

Source/WebCore:

I manually verified this fixes the issue. See the radar.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::MacApplication::isEpsonSoftwareUpdater):

Source/WebKitLegacy/mac:

  • Misc/WebDownload.mm: (shouldCallOnNetworkThread): (callOnDelegateThread): (isDelegateThread): (-[WebDownloadInternal downloadDidBegin:]): (-[WebDownloadInternal download:willSendRequest:redirectResponse:]): (-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): (-[WebDownloadInternal download:didReceiveResponse:]): (-[WebDownloadInternal download:didReceiveDataOfLength:]): (-[WebDownloadInternal download:shouldDecodeSourceDataOfMIMEType:]): (-[WebDownloadInternal download:decideDestinationWithSuggestedFilename:]): (-[WebDownloadInternal download:didCreateDestination:]): (-[WebDownloadInternal downloadDidFinish:]): (-[WebDownloadInternal download:didFailWithError:]):

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

8:48 PM Changeset in webkit [252039] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r251957. rdar://problem/56887511

SVG pair properties must be detached from their owner before it's deleted
https://bugs.webkit.org/show_bug.cgi?id=203545

Reviewed by Simon Fraser.

Source/WebCore:

SVGAnimatedPropertyPairAccessor needs to override its detach() method so
each of its pair properties detaches itself from the owner.
SVGPointerMemberAccessor does the same thing but for a single property
which covers all the list properties as well.

Test: svg/custom/pair-properties-detach.html

  • svg/properties/SVGAnimatedPropertyPairAccessor.h:

LayoutTests:

  • svg/custom/pair-properties-detach-expected.txt: Added.
  • svg/custom/pair-properties-detach.html: Added.

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

8:44 PM Changeset in webkit [252038] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Removed the flaky failure expectation from focusing-element-with-tabindex-by-tap-or-click.html
since it appears to be always passing now.

  • platform/ios/TestExpectations:
8:24 PM Changeset in webkit [252037] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Perform validation of patch before retrying API and layout tests
https://bugs.webkit.org/show_bug.cgi?id=203756

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ValidatePatch.init): Added parameters to optionally skip certain validations.
(ValidatePatch.start): Skip certain validations based on the parameters.
(RunWebKitTests.evaluateCommand): Add a ValidatePatch step before retrying.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunAPITests.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.

8:23 PM Changeset in webkit [252036] by Chris Dumez
  • 5 edits
    2 deletes in trunk/Source/WebCore

Drop SuspendableTaskQueue now that it is unused
https://bugs.webkit.org/show_bug.cgi?id=203827

Reviewed by Ryosuke Niwa.

All users have been ported to the HTML5 event loop.

  • PlatformWin.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/SuspendableTaskQueue.cpp: Removed.
  • platform/SuspendableTaskQueue.h: Removed.
  • workers/service/ServiceWorkerContainer.h:
8:05 PM Changeset in webkit [252035] by jiewen_tan@apple.com
  • 5 edits in trunk

[WebAuthn] Guard against unexpected -[_WKWebAuthenticationPanel cancel]
https://bugs.webkit.org/show_bug.cgi?id=203830
<rdar://problem/56797134>

Reviewed by Brent Fulgham .

Source/WebKit:

-[_WKWebAuthenticationPanel cancel] was only expected to be called on behalf of an
explicit user cancel from the UI. However, clients may call it in different other
unexpected scenarios as well. We should guard against that.

To do so, two counter ways are implemented:
1) AuthenticatorManager::cancelRequest is changed to invoke the pending request if there
is no GlobalFrameID. This case can only be reached via calling -[_WKWebAuthenticationPanel cancel]
before AuthenticatorManager::cancelRequest.
2) WebAuthenticationPanelClient::updatePanel and WebAuthenticationPanelClient::dismissPanel
will call delegate methods in the next run loop to prevent -[_WKWebAuthenticationPanel cancel]
being called in the delegates.

Covered by new API tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::cancelRequest):
(WebKit::AuthenticatorManager::createService const):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::updatePanel const):
(WebKit::WebAuthenticationPanelClient::dismissPanel const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:]):
(-[TestWebAuthenticationPanelDelegate panel:dismissWebAuthenticationPanelWithResult:]):
(TestWebKitAPI::TEST):

7:16 PM Changeset in webkit [252034] by mmaxfield@apple.com
  • 16 edits in trunk

Rename ui-monospaced to ui-monospace to match the monospace generic font family
https://bugs.webkit.org/show_bug.cgi?id=203602

Reviewed by Simon Fraser.

Source/WebCore:

As per https://github.com/w3c/csswg-drafts/issues/4469

Updated existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamilySpecialCase):

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::matchSystemFontUse):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createDesignSystemUIFont):
(WebCore::SystemFontDatabaseCoreText::cascadeList):
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:

LayoutTests:

Updated existing tests.

  • fast/text/design-system-ui-12.html:
  • fast/text/design-system-ui-15.html:
  • fast/text/design-system-ui-2-expected.html:
  • fast/text/design-system-ui-2.html:
  • fast/text/design-system-ui-4-expected-mismatch.html:
  • fast/text/design-system-ui-4.html:
  • fast/text/design-system-ui-7-expected.html:
  • fast/text/design-system-ui-7.html:
  • fast/text/design-system-ui-9-expected-mismatch.html:
  • fast/text/design-system-ui-9.html:
7:03 PM Changeset in webkit [252033] by Chris Dumez
  • 9 edits
    2 adds in trunk

MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203089

Reviewed by Youenn Fablet.

Source/WebCore:

Port MediaKeySession / WebKitMediaKeySession to the HTML5 event loop instead of using its
own GenericEventQueue / GenericTaskQueue. Because the HTML5 event loop plays nicely with
the back/forward cache, we can now let pages using MediaKeySession / WebKitMediaKeySession
into the back/forward cache.

Test: http/tests/navigation/page-cache-mediakeysession.html

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::enqueueMessage):
(WebCore::MediaKeySession::updateKeyStatuses):
(WebCore::MediaKeySession::hasPendingActivity const):
(WebCore::MediaKeySession::activeDOMObjectName const):
(WebCore::MediaKeySession::enqueueTask):
(WebCore::MediaKeySession::enqueueEvent):
(WebCore::MediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
(WebCore::MediaKeySession::stop): Deleted.

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::addKeyTimerFired):
(WebCore::WebKitMediaKeySession::sendMessage):
(WebCore::WebKitMediaKeySession::sendError):
(WebCore::WebKitMediaKeySession::hasPendingActivity const):
(WebCore::WebKitMediaKeySession::enqueueEvent):
(WebCore::WebKitMediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:

LayoutTests:

Add layout test coverage.

  • http/tests/navigation/page-cache-mediakeysession-expected.txt: Added.
  • http/tests/navigation/page-cache-mediakeysession.html: Added.
6:52 PM Changeset in webkit [252032] by ysuzuki@apple.com
  • 34 edits
    1 move
    1 add
    1 delete in trunk

[JSC] Introduce LinkTimeConstant mechanism
https://bugs.webkit.org/show_bug.cgi?id=153792

Reviewed by Saam Barati.

Source/JavaScriptCore:

We are using private-name-variables of JSGlobalObject as a way to access to constants that are materialized per JSGlobalObject.
And we also have special-pointers and old link-time-constants to access to per JSGlobalObject constants.
We have bytecode intrinsic constants, but it is only available for per VM values.

However, these ones have multiple problems.

  1. private-name-variables is too costly. We need to have an entry in JSGlobalObject's variable, this makes SymbolTable of JSGlobalObject large. It also requires WatchpointSet to make it constant-fold in DFG. And accessing these variables from builtin JS takes op_resolve_scope and op_get_from_scope, enlarging bytecode and slow in interpreter and baseline compared to just getting them as a constant register.
  2. special-pointers are tailored to op_jne_ptr opcode, and not usable in the other bytecode since this is completely separate from VirtualRegister.
  3. Old link-time-constants implementation is putting array of all link-time-constants on each UnlinkedCodeBlock, even if it is not used. If you increase # of link-time-constant, it increases sizeof(UnlinkedCodeBlock).

In this patch, we introduce a new link-time-constant mechanism and remove the above old ones mostly. (private-name-variables still exists for WebCore and @assert).
We manage link-time-constants in BytecodeIntrinsicRegistry, and emit Int32:LinkTimeConstantID constant when generating an UnlinkedCodeBlock. Later, this constant
is alternated to an actual value when we link UnlinkedCodeBlock to CodeBlock with specific JSGlobalObject. private-name-variables accesses are now converted to
constant register so that it is very efficiently accessed and it reduces memory used for SymbolTable and WatchpointSet. op_jne_ptr takes link-time-constant
VirtualRegisters instead of special-pointers, so that we can remove special-pointers mechanism. We also replace old link-time-constants with new one, which reduces
sizeof(UnlinkedCodeBlock).

Furthermore, new link-time-constant supports lazy initialization by using LazyProperty in JSGlobalObject. This allows us to lazily generate many internal functions
that are previously initialized eagerly. This reduces # of allocated JSFunction significantly when initializing JSGlobalObject.

This patch also manually adds 256 to MarkedSpace's size-class. We empirically know that adding 256 here makes sequence of size-class better for memory consumption.
But this was achieved by adding sizeof(UnlinkedFunctionCodeBlock). Now sizeof(UnlinkedFunctionCodeBlock) is changed by this patch, and this patch unintentionally
breaks that sequence. We should explicitly add 256 instead of adding sizeof(UnlinkedFunctionCodeBlock) adhocly.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/wkbuiltins/builtins_generate_combined_header.py:

(generate_section_for_global_private_code_name_macro):

  • Sources.txt:
  • builtins/BuiltinNames.h:
  • builtins/PromiseConstructor.js:

(nakedConstructor.Promise):
(nakedConstructor.InternalPromise):
(nakedConstructor.Promise.reject): Deleted.
(nakedConstructor.InternalPromise.reject): Deleted.

  • bytecode/BytecodeDumper.cpp:

(JSC::CodeBlockBytecodeDumper<Block>::dumpConstants):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
(JSC::BytecodeIntrinsicRegistry::lookup const):

  • bytecode/BytecodeIntrinsicRegistry.h:

(JSC::BytecodeIntrinsicRegistry::Entry::Entry):
(JSC::BytecodeIntrinsicRegistry::Entry::type const):
(JSC::BytecodeIntrinsicRegistry::Entry::linkTimeConstant const):
(JSC::BytecodeIntrinsicRegistry::Entry::emitter const):

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

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):

  • bytecode/Fits.h:
  • bytecode/LinkTimeConstant.cpp: Renamed from Source/JavaScriptCore/bytecode/SpecialPointer.h.

(WTF::printInternal):

  • bytecode/LinkTimeConstant.h: Added.
  • bytecode/SpecialPointer.cpp: Removed.
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addConstant):
(JSC::UnlinkedCodeBlock::registerIndexForLinkTimeConstant): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
(JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
(JSC::BytecodeGenerator::emitExpectedFunctionSnippet):
(JSC::BytecodeGenerator::emitCallDefineProperty):
(JSC::BytecodeGenerator::emitGetAsyncIterator):

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

(JSC::ImportNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emitBytecode):
(JSC::promiseInternalFieldIndex):
(JSC::generatorInternalFieldIndex):
(JSC::asyncGeneratorInternalFieldIndex):
(JSC::FunctionNode::emitBytecode):
(JSC::ObjectPatternNode::bindValue const):
(JSC::ObjectSpreadExpressionNode::emitBytecode):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • heap/MarkedSpace.cpp:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jneq_ptr):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_jneq_ptr):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createResolve):
(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/NodeConstructors.h:

(JSC::BytecodeIntrinsicNode::BytecodeIntrinsicNode):

  • parser/Nodes.h:
  • runtime/CachedTypes.cpp:

(JSC::CachedCodeBlock<CodeBlockType>::decode const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):

  • runtime/JSCJSValue.h:
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::linkTimeConstant const):
(JSC::JSGlobalObject::callFunction const): Deleted.
(JSC::JSGlobalObject::applyFunction const): Deleted.
(JSC::JSGlobalObject::throwTypeErrorFunction const): Deleted.
(JSC::JSGlobalObject::newPromiseCapabilityFunction const): Deleted.
(JSC::JSGlobalObject::resolvePromiseFunction const): Deleted.
(JSC::JSGlobalObject::rejectPromiseFunction const): Deleted.
(JSC::JSGlobalObject::promiseProtoThenFunction const): Deleted.
(JSC::JSGlobalObject::regExpProtoExecFunction const): Deleted.
(JSC::JSGlobalObject::regExpProtoGlobalGetter const): Deleted.
(JSC::JSGlobalObject::regExpProtoUnicodeGetter const): Deleted.
(JSC::JSGlobalObject::actualPointerFor): Deleted.
(JSC::JSGlobalObject::jsCellForLinkTimeConstant): Deleted.

  • runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::throwTypeErrorFunction const):
(JSC::JSGlobalObject::newPromiseCapabilityFunction const):
(JSC::JSGlobalObject::resolvePromiseFunction const):
(JSC::JSGlobalObject::rejectPromiseFunction const):
(JSC::JSGlobalObject::promiseProtoThenFunction const):
(JSC::JSGlobalObject::regExpProtoExecFunction const):
(JSC::JSGlobalObject::regExpProtoGlobalGetter const):
(JSC::JSGlobalObject::regExpProtoUnicodeGetter const):

LayoutTests:

  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt:
6:44 PM Changeset in webkit [252031] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Build ImageDiff if it is missing
https://bugs.webkit.org/show_bug.cgi?id=183422

Reviewed by Alexey Proskuryakov.

ImageDiff is built with a different SDK than the rest of the WebKit
stack, and this frequently causes infrastructure failures where ImageDiff
is missing on testers. To address this, we should automatically build
ImageDiff if it is missing.

  • Scripts/webkitpy/port/base.py:

(Port.check_build): Unconditionally build ImageDiff if it is missing.
(Port.check_image_diff): Use _build_path since _path_to_image_diff will
attempt to use a back-up location.
(Port._path_to_image_diff): If the provided path to ImageDiff does not
exist, use the path of the one we built.

4:54 PM Changeset in webkit [252030] by Ross Kirsling
  • 19 edits in trunk/Source

Unreviewed fix for non-unified build.

Source/JavaScriptCore:

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

Add missing includes.

Source/WebCore:

  • style/PropertyCascade.cpp:

(WebCore::Style::isValidVisitedLinkProperty): Deleted.

  • style/PropertyCascade.h:

(WebCore::Style::isValidVisitedLinkProperty): Added.
This is being used from StyleBuilder.cpp; it can't just be static inline in a .cpp file.

  • Modules/cache/DOMCacheStorage.cpp:
  • css/DOMCSSRegisterCustomProperty.cpp:
  • inspector/InspectorInstrumentation.cpp:
  • style/StyleBuilder.cpp:
  • style/StyleBuilderState.cpp:
  • workers/service/ServiceWorkerProvider.cpp:
  • worklets/WorkletGlobalScope.h:

Add missing includes.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • Shared/ServiceWorkerInitializationData.cpp:
  • UIProcess/API/APIAttachment.cpp:
  • WebProcess/Storage/WebServiceWorkerProvider.h:

Add missing includes.

4:33 PM Changeset in webkit [252029] by Alan Coon
  • 11 edits in branches/safari-608-branch

Apply patch. rdar://problem/56864381

4:30 PM Changeset in webkit [252028] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix wincairo build after r252016.

  • css/FontFaceSet.h:
4:26 PM Changeset in webkit [252027] by yurys@chromium.org
  • 3 edits in trunk/LayoutTests

[GTK] Inspector protocol tests timing out on the bots
https://bugs.webkit.org/show_bug.cgi?id=122571

Reviewed by Devin Rousso.

Mark more inspector tests as passing on GTK.

  • inspector/dom/focus.html: Remove 'focus' event listener before closing dummy inspector

window. Otherwise it triggers a WebPage::setActivityState which in turn triggers focus
event on the page and on the focused element which results in two extra 'focus' lines printed.
To be clear this only avoids the extra text output that could be added to the output. Timeout
and crash problems must have been fixed before (likely by the recent changes in local inspector
client).

  • platform/gtk/TestExpectations:
4:18 PM Changeset in webkit [252026] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "Toggle Visibility" does not work for element inside Shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=202218
<rdar://problem/55713078>

Reviewed by Brian Burg.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.toggleElementVisibility.inspectedPage_node_injectStyleAndToggleClass):
If the node is inside a shadow tree, store the <style> inside the shadow root instead of
always using document.head.

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

Versioning.

3:57 PM Changeset in webkit [252024] by sbarati@apple.com
  • 13 edits
    2 adds in trunk

Don't use memmove/memcpy/memset for memory that can be scanned concurrently
https://bugs.webkit.org/show_bug.cgi?id=203228
<rdar://problem/56401852>

Reviewed by Robin Morisset.

JSTests:

  • stress/torn-js-value-concurrent-collector.js: Added.

(foo):

Source/JavaScriptCore:

We had code inside various places of the runtime which would call into system
memcpy/memmove/memset when updating a live butterfly. This means that the
concurrent collector could be scanning such butterflies while a memcpy/memmove/memset
was running. Those functions don't guarantee anything about the minimum
alignment of the stores they do. And implementations for them frequently have
byte copy loops for low byte copy counts. This lead to us seeing torn JSValues
inside the concurrent collector during Array.prototype.splice. This patch
introduces new functions for doing memcpy/memmove/memset for data structures
which may be concurrently scanned. The loops are written using inline assembly
for gcc compatible compilers on 64 bit platforms. The inline assembly
ensures we never write to memory using instructions that store fewer
than 8 bytes. On other platforms, we just use a volatile pointer to
ensure the compiler doesn't turn the loop into a function call or a
series of stores which may be smaller than 8 bytes.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCMemoryOperations.h: Added.

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

  • heap/Heap.h:
  • runtime/ArrayConventions.cpp:

(JSC::clearArrayMemset):

  • runtime/ArrayPrototype.cpp:

(JSC::copyElements):

  • runtime/ButterflyInlines.h:

(JSC::Butterfly::tryCreate):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
(JSC::Butterfly::resizeArray):
(JSC::Butterfly::unshift):
(JSC::Butterfly::shift):

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):

  • runtime/JSObject.cpp:

(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:
  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

3:55 PM Changeset in webkit [252023] by dbates@webkit.org
  • 5 edits
    2 adds in trunk/Tools

Add Googletest assertion support for CGRect and NSRect
https://bugs.webkit.org/show_bug.cgi?id=203817

Reviewed by Myles C. Maxfield.

Add operator== and operator<< overloads for CGRect and NSRect so that these types can be
passed to EXPECT_EQ() and other Googletest assertions.

To make use of these overloads Cocoa tests should include #import "TestCocoa.h" instead of
"Test.h". TestCocoa.h imports Test.h. With these overloads an assertion like this:

EXPECT_EQ(CGRectMake(0, 0, 23, 24), rects[0].CGRectValue);

will produce output like this when it fails:

Expected equality of these values:

CGRectMake(138, 0, 23, 24)

Which is: (origin = (x = 138, y = 0), size = (width = 23, height = 24))

rects.firstObject.CGRectValue

Which is: (origin = (x = 96, y = 0), size = (width = 16, height = 17))

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add source files.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

Write in terms of EXPECT_EQ() now that it just works when passed CGRects.

  • TestWebKitAPI/cocoa/TestCocoa.h: Added.
  • TestWebKitAPI/cocoa/TestCocoa.mm: Added.

(ostreamRectCommon):
(operator<<):
(operator==):

3:48 PM Changeset in webkit [252022] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

REGRESSION (r248750): Drop-down menu for Walgreens 2FA unresponsive to touch
https://bugs.webkit.org/show_bug.cgi?id=203821
<rdar://problem/56550488>

Reviewed by Zalan Bujtas.

The dropdown in question in the Walgreens app uses UIWebView. In this report, tapping the dropdown menu (which
installs DOMTimers upon touchstart) no longer dispatches a click event. This reproduces in WebKit1, but not in
WebKit2.

After r248750, we no longer transition from IndeterminateChange to NoChange before calling out to the client
layer to report a deferred content observation change (in legacy WebKit, this is a call to the delegate method
-webView:didObserveDeferredContentChange:forFrame:).

In WebKit2, logic in WebPage::handleSyntheticClick handles indeterminate content changes after dispatching
mousemove by starting a fixed 32ms content observation timer, after the end of which we transition from
indeterminate to either NoChange or VisibilityChange, and call out to the client. This logic is absent in
WebKitLegacy, where we directly report the current content observation state to the client.

As such, the content change is still indeterminate when we finally call out to the client layer in the runloop
after dispatching the mousemove event in EventHandler::mouseMoved(). Client code in UIKit does not expect this,
and assumes that the given WKContentChange must either be NoChange or VisibilityChange; thus, it handles
indeterminate change as VisibilityChange and does not dispatch a click.

This legacy-WebKit-specific call to didFinishContentChangeObserving is intended to act as a failsafe to stop
content observation after mousemove, if any active timers scheduled during touchstart have already finished
executing. To fix this bug, instead of calling out to WebChromeClient::didFinishContentChangeObserving directly,
add a new method to ContentChangeObserver to inform it that a mousemove event has been handled; here, we call
notifyClientIfNeeded, which will transition the content change state from indeterminate to NoChange if needed
before calling out to the client.

No new test, because we don't have any mechanism for simulating user interaction in UIWebView (and inventing one
at this stage would have diminishing returns at best).

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::willNotProceedWithFixedObservationTimeWindow):
(WebCore::ContentChangeObserver::adjustObservedState):

  • page/ios/ContentChangeObserver.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::mouseMoved):

Replace the call to WebChromeClient::didFinishContentChangeObserving with a ContentChangeObserver method that
turns around and calls into notifyClientIfNeeded, via ContentChangeObserver::adjustObservedState.

3:47 PM Changeset in webkit [252021] by Truitt Savell
  • 46 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r252015.

Broke the Windows build

Reverted changeset:

"Split ArithProfile into a Unary and a Binary version"
https://bugs.webkit.org/show_bug.cgi?id=202832
https://trac.webkit.org/changeset/252015

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

Fix crash caused by syscall sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=203826
<rdar://problem/56332491>

Reviewed by Brent Fulgham.

A new syscall needs to be allowed in the WebContent process' sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:
3:29 PM Changeset in webkit [252019] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Set? isn't correct with respect to the spec and Proxy
https://bugs.webkit.org/show_bug.cgi?id=155012

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-04
Reviewed by Saam Barati.

This patch merely removes a FIXME comment, as JavaScriptCore has already correct
implementation of ordinary Set?. In step 2.b of https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor,
if parent is a Proxy, the algorithm returns result of Proxy's Set? method call.
It is up to the author of "set" trap (if any) to consult the prototype chain.

All browsers pass https://test262.report/browse/built-ins/Proxy/set/call-parameters-prototype.js,
which asserts that no traps besides "set" are invoked on Proxies in prototype chain during Set?.

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

3:25 PM Changeset in webkit [252018] by Alan Coon
  • 1 copy in tags/Safari-608.4.8

Tag Safari-608.4.8.

3:06 PM Changeset in webkit [252017] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Status bubble should be white for CANCELLED builds
https://bugs.webkit.org/show_bug.cgi?id=201204

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
2:57 PM Changeset in webkit [252016] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Port FontFaceSet to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203769

Reviewed by Ryosuke Niwa.

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::didFirstLayout):
(WebCore::FontFaceSet::completedLoading):
(WebCore::FontFaceSet::faceFinished):
(WebCore::FontFaceSet::enqueueTask):

  • css/FontFaceSet.h:
  • dom/AbstractEventLoop.h:
2:20 PM Changeset in webkit [252015] by rmorisset@apple.com
  • 46 edits in trunk/Source/JavaScriptCore

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.

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.

  • 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>::shouldEmitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::emitSetBigInt 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::binaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::unaryArithProfileForBytecodeOffset):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialFastCase):

  • 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::isBinaryProfileEmpty):
(JSC::JITBinaryMathIC::JITBinaryMathIC):
(JSC::isUnaryProfileEmpty):
(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:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):

  • runtime/CommonSlowPaths.cpp:

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

2:13 PM Changeset in webkit [252014] by wilander@apple.com
  • 20 edits in trunk

Resource Load Statistics: Flush the shared ResourceLoadObserver when the webpage is closed by JavaScript
https://bugs.webkit.org/show_bug.cgi?id=203623
<rdar://problem/56756427>

Reviewed by Alex Christensen.

Source/WebCore:

New API test added.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::shared):

Now returns its own empty observer if no shared one has been set.

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::logSubresourceLoadingForTesting):

Test function to seed the web process' observer.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::close):

Now flushes the shared observer.

Source/WebKit:

This patch adds flushing of pending statistics when a window is closed by JavaScript,
when a webpage is removed from the web process, and when the web process prepares to
suspend.

New API test added.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):

Now calls logTestingEvent() so that the test infrastructure can wait for updates.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _seedResourceLoadStatisticsForTestingWithFirstParty:thirdParty:shouldScheduleNotification:completionHandler:]):

Test infrastructure to seed every web process' WebCore::ResourceLoadObserver with test data.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _clearResourceLoadStatistics:]):
(-[WKWebsiteDataStore _isRegisteredAsSubresourceUnderFirstParty:thirdParty:completionHandler:]):

Test infrastructure.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::seedResourceLoadStatisticsForTesting):

Test infrastructure.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):

Made sure the completion handler is called even if there is no network process.

(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):

Now tells all web processes to turn ITP on or off.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::~WebResourceLoadObserver):
(WebKit::WebResourceLoadObserver::logSubresourceLoadingForTesting):

Test infrastructure to seed the observer with test data.

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

Now checks whether a shared observer already exists before setting one.

(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::prepareToSuspend):

These two functions now call WebProcess::flushResourceLoadStatistics().

(WebKit::WebProcess::setResourceLoadStatisticsEnabled):

This function now sets the process' shared WebCore::ResourceLoadObserver if none exists.

(WebKit::WebProcess::flushResourceLoadStatistics):

This function tells the shared WebCore::ResourceLoadObserver to send any pending
statistics to the central ITP store.

(WebKit::WebProcess::seedResourceLoadStatisticsForTesting):

Test infrastructure to seed the shared observer with test data.

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

1:55 PM Changeset in webkit [252013] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Collect all documents before iterating in Page::forEachDocument
https://bugs.webkit.org/show_bug.cgi?id=203811
<rdar://problem/56832747>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-04
Reviewed by Ryosuke Niwa.

Some calls to forEachDocument, notably those introduced in r251930, can mutate the frames and documents as they are being iterated.
This causes problems that can be avoided by iterating, keeping all Documents referenced, then iterating the referenced Documents.

  • page/Page.cpp:

(WebCore::Page::forEachDocument):

1:49 PM Changeset in webkit [252012] by Wenson Hsieh
  • 4 edits
    2 adds in trunk/Tools

Consolidate forEachViewInHierarchy and findAllViewsInHierarchyOfType into common helper file
https://bugs.webkit.org/show_bug.cgi?id=203777

Reviewed by Tim Horton.

  • TestRunnerShared/cocoa/PlatformViewHelpers.h: Added.
  • TestRunnerShared/cocoa/PlatformViewHelpers.mm: Added.

Add a new Cocoa helper file, PlatformViewHelpers, to make it easier to traverse platform view hierarchies
(NSView and UIView) for testing purposes. This is minor refactoring, before I try to create some new testing
primitives to make webkit.org/b/203116 testable.

(forEachViewInHierarchy):

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::findEditableImageCanvas const):
(WTR::forEachViewInHierarchy): Deleted.
(WTR::findEditableImageCanvas): Deleted.

1:36 PM Changeset in webkit [252011] by Chris Dumez
  • 16 edits in trunk/Source/WebKit

[iOS][WK2] Simplify process assertion handling for the network process and service worker processes
https://bugs.webkit.org/show_bug.cgi?id=203633

Reviewed by Alex Christensen.

Simplify process assertion handling for the network process and service worker processes.
In particular, the following changes were made:

  1. Put the NetworkProcessProxy in charge of keeping the network process runnable instead of relying on the WebProcessPool to do it.
  2. Put the WebProcessProxy in charge of keeping the web process runnable due to service worker activity, instead of relying on the WebProcessPool to do it.
  3. Introduce a new Variant data type which can store a foreground activity, a background activity or no activity. This avoid having 2 separate and mutually-exclusive data members for foreground and background activities.
  4. The new code is a bit more correct because it makes sure the the activity we're holding is valid, instead of simply checking that it has an activity. This means that if the process assertion was previously invalidated, we will now properly take a new activity, which will re-take a process assertion.

This patch also reduces the #ifdefing for IOS_FAMILY, since ProcessThrottler and
ProcessAssertion exist on all platforms.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::updateProcessAssertion):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::isValidBackgroundActivity):
(WebKit::ProcessThrottler::isValidForegroundActivity):

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

(WebKit::m_backgroundWebProcessCounter):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::networkProcessCrashed):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::terminateNetworkProcess):
(WebKit::WebProcessPool::updateProcessAssertions):

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

(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion):
(WebKit::WebProcessProxy::enableServiceWorkers):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isStandaloneServiceWorkerProcess const):

1:21 PM Changeset in webkit [252010] by Alan Coon
  • 28 edits in branches/safari-608-branch

Cherry-pick r248552. rdar://problem/56868427

Replace multiparameter overloads of append() in StringBuilder as a first step toward standardizinging on the flexibleAppend() implementation
https://bugs.webkit.org/show_bug.cgi?id=200614

Reviewed by Darin Adler.

Renames StringBuilder::append(const LChar*, unsigned), StringBuilder::append(const UChar*, unsigned) and
StringBuilder::append(const char*, unsigned) to StringBuilder::appendCharacters(...).

Renames StringBuilder::append(const String& string, unsigned offset, unsigned length) to
StringBuilder::appendSubstring(...).

Source/JavaScriptCore:

  • dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode):
  • runtime/ConfigFile.cpp: (JSC::ConfigFile::parse):
  • runtime/LiteralParser.cpp: (JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
  • tools/FunctionOverrides.cpp: (JSC::parseClause): Update for renames.

Source/WebCore:

  • dom/Range.cpp: (WebCore::Range::toString const):
  • editing/Editing.cpp: (WebCore::stringWithRebalancedWhitespace):
  • editing/MarkupAccumulator.cpp: (WebCore::appendCharactersReplacingEntitiesInternal):
  • editing/TextIterator.cpp: (WebCore::TextIteratorCopyableText::appendToStringBuilder const):
  • html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
  • html/parser/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::bufferedCharacters const):
  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: (WebCore::InbandTextTrackPrivateAVF::processNativeSamples):
  • platform/text/SegmentedString.cpp: (WebCore::SegmentedString::Substring::appendTo const):
  • platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::decode):
  • xml/XSLTProcessorLibxslt.cpp: (WebCore::writeToStringBuilder): Update for renames.

Source/WebKit:

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::setAndSerializeSandboxParameters):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::didReceiveInvalidMessage): Update for renames.

Source/WTF:

  • wtf/HexNumber.h: (WTF::appendUnsignedAsHexFixedSize): Add overload that explicitly takes a StringBuilder to work around rename from append to appendCharacters.
  • wtf/text/StringBuilder.cpp: (WTF::StringBuilder::appendCharacters): (WTF::StringBuilder::append):
  • wtf/text/StringBuilder.h: (WTF::StringBuilder::appendCharacters): (WTF::StringBuilder::append): (WTF::StringBuilder::appendSubstring): (WTF::StringBuilder::appendLiteral): (WTF::IntegerToStringConversionTrait<StringBuilder>::flush): Update for renames.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp: (TestWebKitAPI::TEST): Update for renames.

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

12:59 PM Changeset in webkit [252009] by Oriol Brufau
  • 2 edits
    6 adds in trunk/LayoutTests/imported/w3c

[css-lists] Import parsing tests for list-style-type: <string>
https://bugs.webkit.org/show_bug.cgi?id=203807

Reviewed by Manuel Rego Casasnovas.

Import WPT tests.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-lists/parsing/list-style-type-computed-expected.txt: Added.
  • web-platform-tests/css/css-lists/parsing/list-style-type-computed.html: Added.
  • web-platform-tests/css/css-lists/parsing/list-style-type-valid-expected.txt: Added.
  • web-platform-tests/css/css-lists/parsing/list-style-type-valid.html: Added.
  • web-platform-tests/css/css-lists/parsing/w3c-import.log: Added.
12:58 PM Changeset in webkit [252008] by Truitt Savell
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r251993.

Broke platform/mac/media/encrypted-media/fps-
generateRequest.html on Mojave+

Reverted changeset:

"MediaKeySession / WebKitMediaKeySession should not prevent
entering the back/forward cache"
https://bugs.webkit.org/show_bug.cgi?id=203089
https://trac.webkit.org/changeset/251993

12:36 PM Changeset in webkit [252007] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Port WebAnimation to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203797

Reviewed by Ryosuke Niwa.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
(WebCore::WebAnimation::stop):
(WebCore::WebAnimation::hasPendingActivity const):

  • animation/WebAnimation.h:
11:23 AM Changeset in webkit [252006] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Surpress ASAN in SamplingProfiler's FrameWalker::resetAtMachineFrame().
https://bugs.webkit.org/show_bug.cgi?id=203819
<rdar://problem/56840002>

Reviewed by Saam Barati.

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::resetAtMachineFrame):

11:19 AM Changeset in webkit [252005] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r251979. rdar://problem/56864383

[WebAuthn] CtapAuthenticator::tryDowngrade should distinguish requestData().options
https://bugs.webkit.org/show_bug.cgi?id=203771
<rdar://problem/56832618>

Reviewed by Brent Fulgham.

CtapAuthenticator::tryDowngrade assumes the request is a getAssertion request. This is true
for most cases but not for Google's registration. For Google's registration, a quirk is
implemented to use U2F commands for registration if GoogleLegacyAppIdSupportExtension asks
us to do so.

No tests given there is no way to simulate google.com in our test infrastructures.

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: (WebKit::CtapAuthenticator::tryDowngrade):

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

11:19 AM Changeset in webkit [252004] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r251827. rdar://problem/56868427

Add fullscreen style quirk for reddit.com
https://bugs.webkit.org/show_bug.cgi?id=203635
<rdar://problem/55813774>

Reviewed by Eric Carlson.

Reddit.com expects the UA stylesheet to give the fullscreen element
a "width:100%; height:100%;" style.

  • css/CSSDefaultStyleSheets.cpp: (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
  • page/Quirks.cpp: (WebCore::Quirks::needsFullWidthHeightFullscreenStyleQuirk const):
  • page/Quirks.h:

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

10:56 AM Changeset in webkit [252003] by Chris Dumez
  • 5 edits
    2 adds in trunk

MediaRecorder should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203093
<rdar://problem/56748870>

Reviewed by Eric Carlson.

Source/WebCore:

Let pages using MediaRecorder enter the back/forward cache. On suspension, we
stop recording and we queue an error event which will get dispatched upon
resuming.

Test: fast/history/page-cache-media-recorder.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::document const):
(WebCore::MediaRecorder::suspend):
(WebCore::MediaRecorder::activeDOMObjectName const):
(WebCore::MediaRecorder::scheduleDeferredTask):
(WebCore::MediaRecorder::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/mediarecorder/MediaRecorder.h:

LayoutTests:

Add layout test coverage.

  • fast/history/page-cache-media-recorder-expected.txt: Added.
  • fast/history/page-cache-media-recorder.html: Added.
10:46 AM Changeset in webkit [252002] by Alan Coon
  • 5 edits in tags/Safari-609.1.9

Cherry-pick r251991. rdar://problem/56795440

REGRESSION (r251623): When downloading a QuickLook file, the web view navigates to a "The URL can't be shown" error page instead of staying on the current page
https://bugs.webkit.org/show_bug.cgi?id=203790
<rdar://problem/56795440>

Reviewed by Alex Christensen.

Source/WebCore:

When a PreviewConverter fails updating due to a call to PreviewConverter::failedUpdating(),
we should not dispatch previewConverterDidFailUpdating. LegacyPreviewLoader handles that
callback by calling ResourceLoader::didFail() with a WebKitErrorCannotShowURL error code,
but when downloading or cancelling we must fail with a
WebKitErrorFrameLoadInterruptedByPolicyChange error code instead.

This patch teaches PreviewConverter to distinguish between internal updating errors and
external calls to failedUpdating(), only dispatching previewConverterDidFailUpdating in the
former case.

Updated QuickLook API tests.

  • platform/PreviewConverter.cpp: (WebCore::PreviewConverter::updateMainResource): (WebCore::PreviewConverter::failedUpdating): (WebCore::PreviewConverter::didFailUpdating):
  • platform/PreviewConverter.h:

Tools:

Tested that "download" and "cancel" policy decisions for QuickLook files result in a
provisional navigation failure with error code WebKitErrorFrameLoadInterruptedByPolicyChange.

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm: (-[QuickLookDelegate navigationError]): (-[QuickLookDelegate _webView:didFailNavigation:withError:userInfo:]): (-[QuickLookDelegate webView:didFailProvisionalNavigation:withError:]): (TEST):

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

10:45 AM Changeset in webkit [252001] by Alan Coon
  • 5 edits in tags/Safari-609.1.10

Cherry-pick r251991. rdar://problem/56795440

REGRESSION (r251623): When downloading a QuickLook file, the web view navigates to a "The URL can't be shown" error page instead of staying on the current page
https://bugs.webkit.org/show_bug.cgi?id=203790
<rdar://problem/56795440>

Reviewed by Alex Christensen.

Source/WebCore:

When a PreviewConverter fails updating due to a call to PreviewConverter::failedUpdating(),
we should not dispatch previewConverterDidFailUpdating. LegacyPreviewLoader handles that
callback by calling ResourceLoader::didFail() with a WebKitErrorCannotShowURL error code,
but when downloading or cancelling we must fail with a
WebKitErrorFrameLoadInterruptedByPolicyChange error code instead.

This patch teaches PreviewConverter to distinguish between internal updating errors and
external calls to failedUpdating(), only dispatching previewConverterDidFailUpdating in the
former case.

Updated QuickLook API tests.

  • platform/PreviewConverter.cpp: (WebCore::PreviewConverter::updateMainResource): (WebCore::PreviewConverter::failedUpdating): (WebCore::PreviewConverter::didFailUpdating):
  • platform/PreviewConverter.h:

Tools:

Tested that "download" and "cancel" policy decisions for QuickLook files result in a
provisional navigation failure with error code WebKitErrorFrameLoadInterruptedByPolicyChange.

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm: (-[QuickLookDelegate navigationError]): (-[QuickLookDelegate _webView:didFailNavigation:withError:userInfo:]): (-[QuickLookDelegate webView:didFailProvisionalNavigation:withError:]): (TEST):

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

10:20 AM Changeset in webkit [252000] by commit-queue@webkit.org
  • 5 edits in trunk/Source

REGRESSION(r243947) Epson software updater fails to install new version
https://bugs.webkit.org/show_bug.cgi?id=203809
<rdar://problem/56002179>

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

Source/WebCore:

I manually verified this fixes the issue. See the radar.

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

(WebCore::MacApplication::isEpsonSoftwareUpdater):

Source/WebKitLegacy/mac:

  • Misc/WebDownload.mm:

(shouldCallOnNetworkThread):
(callOnDelegateThread):
(isDelegateThread):
(-[WebDownloadInternal downloadDidBegin:]):
(-[WebDownloadInternal download:willSendRequest:redirectResponse:]):
(-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]):
(-[WebDownloadInternal download:didReceiveResponse:]):
(-[WebDownloadInternal download:didReceiveDataOfLength:]):
(-[WebDownloadInternal download:shouldDecodeSourceDataOfMIMEType:]):
(-[WebDownloadInternal download:decideDestinationWithSuggestedFilename:]):
(-[WebDownloadInternal download:didCreateDestination:]):
(-[WebDownloadInternal downloadDidFinish:]):
(-[WebDownloadInternal download:didFailWithError:]):

10:18 AM Changeset in webkit [251999] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Unreviewed WinCairo build fix for r251934.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

10:12 AM Changeset in webkit [251998] by yurys@chromium.org
  • 2 edits in trunk/LayoutTests

[GTK] inspector/runtime/getPreview.html timing out
https://bugs.webkit.org/show_bug.cgi?id=180096

Unreviewed. Mark the test as always passing on GTK (1k iterations passed with
no issues locally).

  • platform/gtk/TestExpectations:
9:58 AM Changeset in webkit [251997] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test failure after r251959

Reviewed by NOBODY (OOPS!).

  • inspector/timeline/timeline-recording.html:

WI.TimelineRecording.import was made async, so add an await.

9:50 AM Changeset in webkit [251996] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Flaky API Test TestWebKitAPI.WebKit.UploadDirectory
https://bugs.webkit.org/show_bug.cgi?id=203652

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-04
Reviewed by Alexey Proskuryakov.

It is not important that the directory to upload does not exist before the test starts.
Make the test more robust to state left behind by previous iterations of this test by removing the check.
The important check in this test is the uploaded body size.

  • TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:

(TEST):

9:34 AM Changeset in webkit [251995] by Kate Cheney
  • 2 edits in trunk/Tools

updated email in contributors.json to match bugzilla.

  • Scripts/webkitpy/common/config/contributors.json:
9:23 AM Changeset in webkit [251994] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Flaky Test: imported/w3c/web-platform-tests/svg/text/visualtests/text-inline-size-003-visual.svg
https://bugs.webkit.org/show_bug.cgi?id=203172

Unreviewed Test Gardening.

Mark the test as flaky.

8:51 AM Changeset in webkit [251993] by Chris Dumez
  • 6 edits
    2 adds in trunk

MediaKeySession / WebKitMediaKeySession should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203089

Reviewed by Youenn Fablet.

Source/WebCore:

Port MediaKeySession / WebKitMediaKeySession to the HTML5 event loop instead of using its
own GenericEventQueue / GenericTaskQueue. Because the HTML5 event loop plays nicely with
the back/forward cache, we can now let pages using MediaKeySession / WebKitMediaKeySession
into the back/forward cache.

Test: http/tests/navigation/page-cache-mediakeysession.html

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::enqueueMessage):
(WebCore::MediaKeySession::updateKeyStatuses):
(WebCore::MediaKeySession::hasPendingActivity const):
(WebCore::MediaKeySession::activeDOMObjectName const):
(WebCore::MediaKeySession::enqueueTask):
(WebCore::MediaKeySession::enqueueEvent):
(WebCore::MediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
(WebCore::MediaKeySession::stop): Deleted.

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::addKeyTimerFired):
(WebCore::WebKitMediaKeySession::sendMessage):
(WebCore::WebKitMediaKeySession::sendError):
(WebCore::WebKitMediaKeySession::hasPendingActivity const):
(WebCore::WebKitMediaKeySession::enqueueEvent):
(WebCore::WebKitMediaKeySession::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:

LayoutTests:

Add layout test coverage.

  • http/tests/navigation/page-cache-mediakeysession-expected.txt: Added.
  • http/tests/navigation/page-cache-mediakeysession.html: Added.
8:42 AM Changeset in webkit [251992] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

enumerateDevices() doesn't return correct list of devices after device was changed by user in a system preferences
https://bugs.webkit.org/show_bug.cgi?id=203407
<rdar://problem/56648063>

Reviewed by Youenn Fablet.

Tested manually as this doesn't reproduce with mock capture devices.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

(WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices): Refresh the list of capture
devices when the default input device changes.
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices): Assert if not called
on the main thread.

8:32 AM Changeset in webkit [251991] by aestes@apple.com
  • 5 edits in trunk

REGRESSION (r251623): When downloading a QuickLook file, the web view navigates to a "The URL can't be shown" error page instead of staying on the current page
https://bugs.webkit.org/show_bug.cgi?id=203790
<rdar://problem/56795440>

Reviewed by Alex Christensen.

Source/WebCore:

When a PreviewConverter fails updating due to a call to PreviewConverter::failedUpdating(),
we should not dispatch previewConverterDidFailUpdating. LegacyPreviewLoader handles that
callback by calling ResourceLoader::didFail() with a WebKitErrorCannotShowURL error code,
but when downloading or cancelling we must fail with a
WebKitErrorFrameLoadInterruptedByPolicyChange error code instead.

This patch teaches PreviewConverter to distinguish between internal updating errors and
external calls to failedUpdating(), only dispatching previewConverterDidFailUpdating in the
former case.

Updated QuickLook API tests.

  • platform/PreviewConverter.cpp:

(WebCore::PreviewConverter::updateMainResource):
(WebCore::PreviewConverter::failedUpdating):
(WebCore::PreviewConverter::didFailUpdating):

  • platform/PreviewConverter.h:

Tools:

Tested that "download" and "cancel" policy decisions for QuickLook files result in a
provisional navigation failure with error code WebKitErrorFrameLoadInterruptedByPolicyChange.

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(-[QuickLookDelegate navigationError]):
(-[QuickLookDelegate _webView:didFailNavigation:withError:userInfo:]):
(-[QuickLookDelegate webView:didFailProvisionalNavigation:withError:]):
(TEST):

8:22 AM Changeset in webkit [251990] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Cannot run WebKit layout tests on iOS devices
https://bugs.webkit.org/show_bug.cgi?id=203796

Patch by Peng Liu <Peng Liu> on 2019-11-04
Reviewed by Jonathan Bedard.

Fix the error to parse iOS version numbers like "xx.yy".

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

(PlatformInfo.init):

7:46 AM Changeset in webkit [251989] by youenn@apple.com
  • 6 edits in trunk/Source/WebCore

RealtimeOutgoingAudioSource/RealtimeOutgoingVideoSource should unobserve before destruction time
https://bugs.webkit.org/show_bug.cgi?id=203802

Reviewed by Eric Carlson.

These classes are used by LibWebRTCRtpSenderBackend.
When the backend is destroyed, notify the sources to unobserve before unrefing them.
Add debug assertions to ensure this is done correctly.
Covered by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::~LibWebRTCRtpSenderBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:

Fixed Variant Move issue.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::hasObserver const):

  • platform/mediastream/RealtimeOutgoingAudioSource.cpp:

(WebCore::RealtimeOutgoingAudioSource::~RealtimeOutgoingAudioSource):

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::~RealtimeOutgoingVideoSource):

7:38 AM Changeset in webkit [251988] by cathiechen
  • 2 edits in trunk/Source/WebCore

Build error: redefinition of TransferFunction
https://bugs.webkit.org/show_bug.cgi?id=203742

Reviewed by Jer Noble.

TransferFunction defined in both VideoTextureCopierCV.cpp and TransferFunction.h.
Renamed TransferFunction in VideoTextureCopierCV.cpp to TransferFunctionCV.

  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::transferFunctionFromString):
(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):

7:27 AM November 2019 Meeting edited by Jon Davis
(diff)
7:26 AM Simons5YearPlanRetrospective created by Jon Davis
5:51 AM Changeset in webkit [251987] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test webrtc/filtering-ice-candidate-after-reload.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=174471

Unreviewed.

  • platform/wk2/TestExpectations:

Test is no longer flaky.

5:33 AM Changeset in webkit [251986] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test http/wpt/webrtc/third-party-frame-ice-candidate-filtering.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=183801

Unreviewed.

  • platform/wk2/TestExpectations:

Test is no longer a flaky failure.

5:31 AM Changeset in webkit [251985] by youenn@apple.com
  • 5 edits
    3 adds in trunk

Order of postMessage and fetch events should be preserved when going from client to service worker
https://bugs.webkit.org/show_bug.cgi?id=203236

Reviewed by Chris Dumez.

Source/WebCore:

Now that post message is going through network process, we can make the order predictable.
Remove unnecessary task posting when firing events in service worker context and when posting message from a client.
Test: http/wpt/service-workers/service-worker/postMessage-fetch-order.https.html

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::swConnection):
(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorker.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::postFetchTask):
(WebCore::ServiceWorkerThread::fireInstallEvent):
(WebCore::ServiceWorkerThread::fireActivateEvent):

LayoutTests:

  • http/wpt/service-workers/service-worker/postMessage-fetch-order-worker.js: Added.
  • http/wpt/service-workers/service-worker/postMessage-fetch-order.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker/postMessage-fetch-order.https.html: Added.
4:12 AM Changeset in webkit [251984] by Oriol Brufau
  • 5 edits
    18 adds in trunk/LayoutTests

[css-lists] Import tests for list-style-type: <string>
https://bugs.webkit.org/show_bug.cgi?id=203759

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import WPT tests.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-lists/list-style-type-string-001a-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-001a.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-001b-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-001b.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-002-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-002.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-003-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-003.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-004-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-004.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-005a-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-005a.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-005b-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-005b.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-006-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-006.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-007-expected.html: Added.
  • web-platform-tests/css/css-lists/list-style-type-string-007.html: Added.
  • web-platform-tests/css/css-lists/w3c-import.log:

LayoutTests:

Most tests fail because the feature hasn't been implemented yet
(https://bugs.webkit.org/show_bug.cgi?id=167729).

3:36 AM Changeset in webkit [251983] by youenn@apple.com
  • 401 edits
    23 copies
    129 adds
    10 deletes in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc third-party boringssl to M78
https://bugs.webkit.org/show_bug.cgi?id=202731

Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • Source/third_party/boringssl: Updated.
  • libwebrtc.xcodeproj/project.pbxproj:
3:35 AM Changeset in webkit [251982] by youenn@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test verifying video plays well when switching from MediaStreams to regular videos
https://bugs.webkit.org/show_bug.cgi?id=203421

Reviewed by Geoffrey Garen.

  • fast/mediastream/stream-switch-expected.txt: Added.
  • fast/mediastream/stream-switch.html: Added.
3:01 AM Changeset in webkit [251981] by youenn@apple.com
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Unreviewed.
Revert https://trac.webkit.org/changeset/251980 since commit queue actually succeeded to land it previously.

  • Source/third_party/yasm-1.3.0: removed.
2:51 AM Changeset in webkit [251980] by youenn@apple.com
  • 1 edit
    117 adds in trunk/Source/ThirdParty/libwebrtc

Rename yasm-1.3.0 folder to yasm
https://bugs.webkit.org/show_bug.cgi?id=202725

Reviewed by Eric Carlson.

To align with upstream repository.

  • Configurations/yasm.xcconfig:
  • Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
  • libwebrtc.xcodeproj/project.pbxproj:

Nov 3, 2019:

11:33 PM Changeset in webkit [251979] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] CtapAuthenticator::tryDowngrade should distinguish requestData().options
https://bugs.webkit.org/show_bug.cgi?id=203771
<rdar://problem/56832618>

Reviewed by Brent Fulgham.

CtapAuthenticator::tryDowngrade assumes the request is a getAssertion request. This is true
for most cases but not for Google's registration. For Google's registration, a quirk is
implemented to use U2F commands for registration if GoogleLegacyAppIdSupportExtension asks
us to do so.

No tests given there is no way to simulate google.com in our test infrastructures.

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::tryDowngrade):

8:11 PM Changeset in webkit [251978] by Tadeu Zagallo
  • 7 edits
    1 add in trunk

LLIntGenerator should not allocate temporaries in between variables
https://bugs.webkit.org/show_bug.cgi?id=203787

Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/stress/local-ref.js: Added.

Source/JavaScriptCore:

The BytecodeGenerator requires that all variables must be allocated contiguously, before any
temporaries are allocated. Currently, we might end up allocating a temporary to materialize
the null constant to initialize locals of type Anyref/Funcref. Fix it by keeping track of the
locals that need to be initialized and adding a new callback to notify when we have finished
parsing locals. Only then we perform the delayed initialization of local refs.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::didFinishParsingLocals):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::didFinishParsingLocals):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parse):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addLocal):
(JSC::Wasm::LLIntGenerator::didFinishParsingLocals):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::didFinishParsingLocals):

3:39 PM Changeset in webkit [251977] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Verification] Forced line break display runs don't have TextContext
https://bugs.webkit.org/show_bug.cgi?id=203779
<rdar://problem/56839710>

Reviewed by Antti Koivisto.

Display::Run's optional TextContext is not available for forced line breaks (since they are not text runs).

  • layout/Verification.cpp:

(WebCore::Layout::checkForMatchingTextRuns):

12:34 PM Changeset in webkit [251976] by timothy_horton@apple.com
  • 9 edits
    1 add
    2 deletes in trunk

WKWebView can get stuck blank (Web Content process thinks the app is backgrounded)
https://bugs.webkit.org/show_bug.cgi?id=203774
<rdar://problem/53399054>

Reviewed by Chris Dumez.

Source/WebKit:

With careful timing, if a WKWebView swaps out its content view in the
background, the incoming view can fail to inform the Web Content process
when the app comes to the foreground, leaving the layer tree frozen.

This occurs because the last-sent state is stored per-WKApplicationStateTrackingView,
and the content view is the WKApplicationStateTrackingView, so it is possible
for e.g. a WKPDFView to be in the hierarchy, keeping the correct state,
with an initialized-but-never-parented WKContentView hanging off the WKWebView.

If it is never parented, WKContentView will think that the current application
state is foreground (_lastObservedStateWasBackground is initialized to NO).

If you go into the background with a WKPDFView as the current content view,
it will inform the Web Content process that the application has backgrounded.

If, still in the background, WKWebView swaps from the WKPDFView to
the WKContentView, and then comes into the foreground, when we get the
notification that the app came to the foreground, we will not forward it
to the Web Content process, because WKContentView's _lastObservedStateWasBackground
remains NO.

To fix this, move _lastObservedStateWasBackground to WebPageProxy, so that
it always tracks the most recently sent state, regardless of which content view
is active.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::lastObservedStateWasBackground const):

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView willMoveToWindow:]):
(-[WKApplicationStateTrackingView didMoveToWindow]):
(-[WKApplicationStateTrackingView _applicationDidEnterBackground]):
(-[WKApplicationStateTrackingView _applicationWillEnterForeground]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):
(WebKit::WebPageProxy::applicationWillEnterForeground):

Tools:

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

(TEST):
(isBackground):
(createHostViewForExtensionIdentifier):

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFViewResizeCrash.mm: Removed.
  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFViewStablePresentationUpdateCallback.mm: Removed.
  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[WKWebView _test_waitForDidFinishNavigationWithoutPresentationUpdate]):
Merge existing WKPDFView tests into one file, and add one for this bug.

12:01 PM Changeset in webkit [251975] by rniwa@webkit.org
  • 8 edits
    1 copy in trunk/Source/WebCore

Add a helper function to schedule a task to dispatch an event to ActiveDOMObject
https://bugs.webkit.org/show_bug.cgi?id=203714

Reviewed by Chris Dumez.

Added two helper static member functions queueTaskKeepingObjectAlive and queueTaskToDispatchEvent
to ActiveDOMObject and deployed them in ServiceWorkerContainer.

No new tests since there should be no behavioral changes.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/AbstractEventLoop.h:
  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::queueTaskInEventLoop): Added.

  • dom/ActiveDOMObject.h:

(WebCore::ActiveDOMObject::queueTaskKeepingObjectAlive): Added.
(WebCore::ActiveDOMObject::queueTaskToDispatchEvent): Added.

  • dom/TaskSource.h: Added.
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
(WebCore::ServiceWorkerContainer::fireControllerChangeEvent):
(WebCore::ServiceWorkerContainer::enqueueTask): Deleted.

  • workers/service/ServiceWorkerContainer.h:
10:28 AM Changeset in webkit [251974] by Andres Gonzalez
  • 15 edits in trunk/Source/WebCore

Make AXIsolatedTreeNode a subclass of AXCoreObject.
https://bugs.webkit.org/show_bug.cgi?id=203717

Reviewed by Chris Fleizach.

No new tests needed, no new functionality.

  • AXIsolatedTreeNOde derives from AXCoreObject.
  • AccessibilityObjectWrapper can now have a single pointer to a AXCoreObject instead of one for the live object and one for the isolated object.
  • Simplified wrapper code by making it agnostic of the nature of the underlying AXCoreObject.
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::characterOffsetForPoint):
(WebCore::AXObjectCache::characterOffsetForIndex):
(WebCore::AXObjectCache::createIsolatedAccessibilityTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedAccessibilityTree):

  • accessibility/AXObjectCache.h:
  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::attachWrapper):

  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::attachWrapper):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(AccessibilityUnignoredAncestor):
(-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
(-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
(-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityFrameAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
(-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):
(-[WebAccessibilityObjectWrapper detailParentForSummaryObject:]):
(-[WebAccessibilityObjectWrapper detailParentForObject:]):
(-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
(AXAttributeStringSetStyle):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
(-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):
(-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::setRoot):
(WebCore::AXIsolatedTree::applyPendingChanges):
(WebCore::AXIsolatedTree::setRootNodeID): Deleted.

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedTreeNode::AXIsolatedTreeNode):
(WebCore::AXIsolatedTreeNode::create):
(WebCore::AXIsolatedTreeNode::initializeAttributeData):
(WebCore::AXIsolatedTreeNode::appendChild):
(WebCore::AXIsolatedTreeNode::children):
(WebCore::AXIsolatedTreeNode::parentObjectUnignored const):
(WebCore::AXIsolatedTreeNode::accessibilityHitTest const):
(WebCore::AXIsolatedTreeNode::updateBackingStore):
(WebCore::AXIsolatedTreeNode::parentObjectInterfaceUnignored const): Deleted.

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::associateIsolatedTreeNode): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertToNSArray):
(-[WebAccessibilityObjectWrapperBase initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
(-[WebAccessibilityObjectWrapperBase accessibilityObject]):
(-[WebAccessibilityObjectWrapperBase axBackingObject]):
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
(-[WebAccessibilityObjectWrapperBase isolatedTreeNode]): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
(convertToVector):
(-[WebAccessibilityObjectWrapper childrenVectorSize]):
(-[WebAccessibilityObjectWrapper childrenVectorArray]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • accessibility/win/AXObjectCacheWin.cpp:

(WebCore::AXObjectCache::attachWrapper):

7:10 AM Changeset in webkit [251973] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Runs collapsed to zero advanced width are not always whitespace collapsed
https://bugs.webkit.org/show_bug.cgi?id=203778
<rdar://problem/56839642>

Reviewed by Antti Koivisto.

Just because a run collapses to zero advanced width, it does not necessarily mean it is a collapsed run (in whitespace collapsing sense)
e.g. trimmed trailing whitespace (m_collapsedToZeroAdvanceWidth should probably be renamed to something other than "collapsed" to avoid confusion).

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::close):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):

7:08 AM Changeset in webkit [251972] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Pre-wrap: Overflown whitespace should stay on the current line
https://bugs.webkit.org/show_bug.cgi?id=203780
<rdar://problem/56839822>

Reviewed by Antti Koivisto.

white-space: pre-wrap needs clarification. According to CSS Text Module Level 3, content wrapping is as 'normal'
but apparently we need to keep the overlapping whitespace on the line (and hang it I'd assume).

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::isTrailingWhitespaceWithPreWrap):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):

Nov 2, 2019:

9:58 PM Changeset in webkit [251971] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

9:55 PM Changeset in webkit [251970] by Alan Coon
  • 13 edits
    2 deletes in tags/Safari-609.1.10

Cherry-pick r251967. rdar://problem/56836147

Revert http://trac.webkit.org/r251875
Don't use memmove/memcpy/memset for memory that can be scanned concurrently

This is suspected to have broken performance tests on iOS.

JSTests:

  • stress/torn-js-value-concurrent-collector.js: Removed.

Source/JavaScriptCore:

Also reverted http://trac.webkit.org/r251909, because that was necessary for clean revert.
gcSafeMemmove references undefined slowPathBackwardsMemmove on non-gcc compatible compilers

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCMemoryOperations.h: Removed.
  • heap/Heap.h:
  • runtime/ArrayConventions.cpp: (JSC::clearArrayMemset):
  • runtime/ArrayPrototype.cpp: (JSC::copyElements):
  • runtime/ButterflyInlines.h: (JSC::Butterfly::tryCreate): (JSC::Butterfly::createOrGrowPropertyStorage): (JSC::Butterfly::growArrayRight): (JSC::Butterfly::reallocArrayRightIfPossible): (JSC::Butterfly::resizeArray): (JSC::Butterfly::unshift): (JSC::Butterfly::shift):
  • runtime/JSArray.cpp: (JSC::JSArray::unshiftCountSlowCase): (JSC::JSArray::appendMemcpy): (JSC::JSArray::fastSlice): (JSC::JSArray::shiftCountWithArrayStorage): (JSC::JSArray::shiftCountWithAnyIndexingType): (JSC::JSArray::unshiftCountWithArrayStorage):
  • runtime/JSObject.cpp: (JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements): (JSC::JSObject::convertFromCopyOnWrite): (JSC::JSObject::shiftButterflyAfterFlattening):
  • runtime/JSObject.h:
  • runtime/RegExpMatchesArray.h: (JSC::createRegExpMatchesArray):
  • runtime/Structure.cpp: (JSC::Structure::flattenDictionaryStructure):

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

9:53 PM Changeset in webkit [251969] by Alan Coon
  • 1 copy in tags/Safari-609.1.10

Tag Safari-609.1.10.

8:44 PM Changeset in webkit [251968] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Port DOMCache / DOMCacheStorage to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203772

Reviewed by Sam Weinig.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::DOMCache):
(WebCore::DOMCache::match):
(WebCore::DOMCache::matchAll):
(WebCore::DOMCache::addAll):
(WebCore::DOMCache::putWithResponseData):
(WebCore::DOMCache::put):
(WebCore::DOMCache::remove):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::enqueueTask):
(WebCore::DOMCache::hasPendingActivity const): Deleted.

  • Modules/cache/DOMCache.h:
  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::DOMCacheStorage):
(WebCore::DOMCacheStorage::doSequentialMatch):
(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::open):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::remove):
(WebCore::DOMCacheStorage::doRemove):
(WebCore::DOMCacheStorage::keys):
(WebCore::DOMCacheStorage::enqueueTask):
(WebCore::DOMCacheStorage::hasPendingActivity const): Deleted.

  • Modules/cache/DOMCacheStorage.h:
5:49 PM Changeset in webkit [251967] by ap@apple.com
  • 13 edits
    2 deletes in trunk

Revert http://trac.webkit.org/r251875
Don't use memmove/memcpy/memset for memory that can be scanned concurrently

This is suspected to have broken performance tests on iOS.

JSTests:

  • stress/torn-js-value-concurrent-collector.js: Removed.

Source/JavaScriptCore:

Also reverted http://trac.webkit.org/r251909, because that was necessary for clean revert.
gcSafeMemmove references undefined slowPathBackwardsMemmove on non-gcc compatible compilers

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCMemoryOperations.h: Removed.
  • heap/Heap.h:
  • runtime/ArrayConventions.cpp:

(JSC::clearArrayMemset):

  • runtime/ArrayPrototype.cpp:

(JSC::copyElements):

  • runtime/ButterflyInlines.h:

(JSC::Butterfly::tryCreate):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
(JSC::Butterfly::resizeArray):
(JSC::Butterfly::unshift):
(JSC::Butterfly::shift):

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):

  • runtime/JSObject.cpp:

(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:
  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

1:12 PM Changeset in webkit [251966] by rmorisset@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

The offline assembler is wrong about which immediates are supported by and/or/xor on ARM64
https://bugs.webkit.org/show_bug.cgi?id=203752

Reviewed by Tadeu Zagallo.

See https://dinfuehr.github.io/blog/encoding-of-immediate-values-on-aarch64/ for the details of which immediates are supported.
This patch is a minimal fix, ideally we should refactor all of the code dealing with immediates in risc.rb, but considering that I don't know ruby and this code is poorly/not tested, I went for the simplest possible fix.

  • offlineasm/arm64.rb:
  • offlineasm/mips.rb:
  • offlineasm/risc.rb:
11:48 AM Changeset in webkit [251965] by Oriol Brufau
  • 12 edits
    4 adds in trunk

[css-grid] Fix line name positions after auto repeat with no line names
https://bugs.webkit.org/show_bug.cgi?id=203670

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import WPT tests.
There are some test failures because integer repeat() is still expanded
at computed-value time (https://webkit.org/b/202259).

  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid.html:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent-expected.txt: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent.html: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed.html:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid.html:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent-expected.txt: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent.html: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed.html:
  • web-platform-tests/css/css-grid/parsing/w3c-import.log:

Source/WebCore:

When serializing grid-template-rows/columns of a grid container, we need
to handle auto repeat() specially in order to insert the line names at
the correct places.

Before this patch, this was skipped for indices before the insertion
point of the auto repeat, and in case the auto repeat had no line name.
The latter logic was wrong, if there is an auto repeat we still need the
special code after the insertion point, even if it has no line names.
The proper condition to check is whether there is no auto repeat.

The patch also avoids a 2nd call to gridAutoRepeatRows/Columns since we
already have the value in a variable.

Tests: imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed.html

imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollectorInGridLayout::OrderedNamedLinesCollectorInGridLayout):
(WebCore::OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex const):
(WebCore::valueForGridTrackList):

9:54 AM Changeset in webkit [251964] by yurys@chromium.org
  • 2 edits
    1 copy
    1 add in trunk/LayoutTests

REGRESSION: [ Mac ] inspector/dom/getAccessibilityPropertiesForNode.html is failing
https://bugs.webkit.org/show_bug.cgi?id=203746

Unreviewed. Move custom test expectation under platform/gtk and revert generic
one to the previous state (it was wrongly updated in r251818).

  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt: Copied from LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt.
12:36 AM Changeset in webkit [251963] by Devin Rousso
  • 31 edits
    1 add in trunk

Web Inspector: Add diagnostic logging for frontend feature usage
https://bugs.webkit.org/show_bug.cgi?id=203579
<rdar://problem/56717410>

Reviewed by Brian Burg.

.:

Original patch by Matt Baker <Matt Baker>.

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/JavaScriptCore:

Original patch by Matt Baker <Matt Baker>.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebCore:

Add InspectorFrontendHost API for logging diagnostic events from the
Web Inspector UI. An event consists of a message string, such as "TabActivity"
or "SettingChanged", and a dictionary payload encoded as a JSON string.

Original patch by Matt Baker.

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::supportsDiagnosticLogging): Added.
(WebCore::valuePayloadFromJSONValue): Added.
(WebCore::InspectorFrontendHost::logDiagnosticEvent): Added.

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::supportsDiagnosticLogging): Added.
(WebCore::InspectorFrontendClient::logDiagnosticEvent): Added.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebCore/PAL:

Original patch by Matt Baker <Matt Baker>.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebInspectorUI:

Add a DiagnosticController class for reporting Web Inspector telemetry.
The controller initially measures a single "TabActivity" data point,
which logs the active tab during the specified time interval (one minute).
If the UI is not active during the time interval, no logging takes place.

The UI is considered to be active if mouse/keyboard interaction occurs
during the time interval, or the selected TabContentView changes.

Original patch by Matt Baker <Matt Baker>.

  • UserInterface/Controllers/DiagnosticController.js: Added.

(WI.DiagnosticController):
(WI.DiagnosticController.supportsDiagnosticLogging):
(WI.DiagnosticController.prototype.logDiagnosticMessage):
(WI.DiagnosticController.prototype._didInteractWithTabContent):
(WI.DiagnosticController.prototype._clearTabActivityTimeout):
(WI.DiagnosticController.prototype._beginTabActivityTimeout):
(WI.DiagnosticController.prototype._stopTrackingTabActivity):
(WI.DiagnosticController.prototype._handleWindowFocus):
(WI.DiagnosticController.prototype._handleWindowBlur):
(WI.DiagnosticController.prototype._handleWindowKeyDown):
(WI.DiagnosticController.prototype._handleWindowMouseDown):
(WI.DiagnosticController.prototype._handleTabBrowserSelectedTabContentViewDidChange):

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.contentLoaded):

Source/WebKit:

This patch enables diagnostic logging for the Web Inspector web process
and adds the necessary InspectorFrontendClient plumbing to WebInspectorUI.

Original patch by Matt Baker <Matt Baker>.

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::supportsDiagnosticLogging): Added.
(WebKit::WebInspectorUI::logDagnosticEvent): Added.

  • WebProcess/WebPage/RemoteWebInspectorUI.h:
  • WebProcess/WebPage/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::supportsDiagnosticLogging): Added.
(WebKit::RemoteWebInspectorUI::logDiagnosticEvent): Added.

  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController configuration]):
Default to enabling diagnostic logging for the Web Inspector frontend window.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebKitLegacy/mac:

Original patch by Matt Baker <Matt Baker>.

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::supportsDiagnosticLogging): Added.
(WebInspectorFrontendClient::logDiagnosticEvent): Added.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WTF:

Original patch by Matt Baker <Matt Baker>.

  • wtf/FeatureDefines.h:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Tools:

Original patch by Matt Baker <Matt Baker>.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Nov 1, 2019:

6:27 PM Changeset in webkit [251962] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: switching tabs should re-focus the previously focused element
https://bugs.webkit.org/show_bug.cgi?id=203744

Reviewed by Brian Burg.

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser.prototype._tabBarItemSelected):
(WI.TabBrowser.prototype._saveFocusedNodeForTabContentView): Added.
(WI.TabBrowser.prototype._restoreFocusedNodeForTabContentView): Added.
Store the document.activeElement on the WI.TabContentView and .focus() it after we're
done showing the newly selected tab, but only if there isn't already something focused.

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype.set selectedTabBarItem):

  • UserInterface/Views/LegacyTabBar.js:

(WI.LegacyTabBar.prototype.set selectedTabBarItem):
Include the previously selected tab bar item when dispatching selection change events.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
Don't omit focus when revealing represented objects.

6:17 PM Changeset in webkit [251961] by Jonathan Bedard
  • 5 edits
    1 add in trunk/Tools

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

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.model.
  • Scripts/webkitpy/layout_tests/models/test_configuration.py:

(SpecifierSorter.sort_specifiers): Convert iterator to list.
(TestConfigurationConverter.to_config_set): Use reduce from functors.
(TestConfigurationConverter.intersect_combination): Ditto.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationsModel.get_test_set_for_keyword): Use iterators in both Python 2
and Python 3.
(TestExpectationsModel._remove_from_sets): Ditto.
(TestExpectations.parse_generic_expectations): Covert iterators to lists for indexing.
(TestExpectations.parse_default_port_expectations): Ditto.
(TestExpectations.parse_override_expectations): Ditto.
(TestExpectations.remove_configuration_from_test): Use any instead of just checking the
first element in the set.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(summarize_results): Use items instead of iteritems.

5:54 PM Changeset in webkit [251960] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Restrict WebSpeech voices to built-in voices only
https://bugs.webkit.org/show_bug.cgi?id=203689

Reviewed by Per Arne Vollan.

Only show built-in voices when requesting through WebKit to reduce fingerprinting surface area.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

5:45 PM Changeset in webkit [251959] by Devin Rousso
  • 59 edits
    3 copies
    2 moves
    9 adds
    2 deletes in trunk

Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
https://bugs.webkit.org/show_bug.cgi?id=203651
<rdar://problem/56128726>

Reviewed by Brian Burg.

Source/JavaScriptCore:

Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
are created, started, delayed, iterated, canceled, or finished.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • inspector/protocol/Animation.json: Added.
  • inspector/protocol/Timeline.json:

Add an Animation domain for handling the tracking of CSS Web Animations.

Source/WebCore:

Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
are created, started, delayed, iterated, canceled, or finished.

Test: inspector/animation/tracking.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):

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

(WebCore::WebAnimation::~WebAnimation):
(WebCore::WebAnimation::contextDestroyed): Added.
(WebCore::WebAnimation::setEffectInternal):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffect): Added.
(WebCore::InspectorInstrumentation::didChangeWebAnimationEffect): Added.
(WebCore::InspectorInstrumentation::willDestroyWebAnimation): Added.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl): Added.
(WebCore::InspectorInstrumentation::didChangeWebAnimationEffectImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebAnimationImpl): Added.
Add instrumentation points for CSS animations/transitions.

  • inspector/agents/InspectorAnimationAgent.h: Added.
  • inspector/agents/InspectorAnimationAgent.cpp: Added.

(WebCore::InspectorAnimationAgent::InspectorAnimationAgent):
(WebCore::InspectorAnimationAgent::didCreateFrontendAndBackend):
(WebCore::InspectorAnimationAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorAnimationAgent::startTracking):
(WebCore::InspectorAnimationAgent::stopTracking):
(WebCore::isDelayed):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):
(WebCore::InspectorAnimationAgent::didChangeWebAnimationEffect):
(WebCore::InspectorAnimationAgent::willDestroyWebAnimation):
(WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::persistentInspectorAnimationAgent const): Added.
(WebCore::InstrumentingAgents::setPersistentInspectorAnimationAgent): Added.
(WebCore::InstrumentingAgents::trackingInspectorAnimationAgent const): Added.
(WebCore::InstrumentingAgents::setTrackingInspectorAnimationAgent): Added.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::createLazyAgents):
Add an Animation domain for handling the tracking of CSS Web Animations.

  • inspector/agents/InspectorTimelineAgent.h:
  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::toggleAnimationInstrument): Added.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
are created, started, delayed, iterated, canceled, or finished.

  • UserInterface/Protocol/AnimationObserver.js: Added.

(WI.AnimationObserver.prototype.trackingStart):
(WI.AnimationObserver.prototype.trackingUpdate):
(WI.AnimationObserver.prototype.trackingComplete):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.get AnimationAgent): Added.

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:

(WI.loaded):
Add an Animation domain for handling the tracking of CSS Web Animations.

  • UserInterface/Models/MediaInstrument.js:

(WI.MediaInstrument.prototype.startInstrumentation):
(WI.MediaInstrument.prototype.stopInstrumentation):
(WI.MediaInstrument):

  • UserInterface/Models/MediaTimeline.js: Added.

(WI.MediaTimeline.prototype.recordForTrackingAnimationId):
(WI.MediaTimeline.prototype.recordForMediaElementEvents):
(WI.MediaTimeline.prototype.reset):
(WI.MediaTimeline.prototype.addRecord):

  • UserInterface/Models/MediaTimelineRecord.js:

(WI.MediaTimelineRecord):
(WI.MediaTimelineRecord.async fromJSON):
(WI.MediaTimelineRecord.prototype.toJSON):
(WI.MediaTimelineRecord.prototype.get trackingAnimationId): Added.
(WI.MediaTimelineRecord.prototype.get timestamps): Added.
(WI.MediaTimelineRecord.prototype.get activeStartTime): Added.
(WI.MediaTimelineRecord.prototype.get updatesDynamically): Added.
(WI.MediaTimelineRecord.prototype.get usesActiveStartTime): Added.
(WI.MediaTimelineRecord.prototype.get displayName):
(WI.MediaTimelineRecord.prototype.get subtitle): Added.
(WI.MediaTimelineRecord.prototype.saveIdentityToCookie):
(WI.MediaTimelineRecord.prototype.updateProgress): Added.
(WI.MediaTimelineRecord.prototype.addDOMEvent): Added.
(WI.MediaTimelineRecord.prototype.powerEfficientPlaybackStateChanged): Added.
(WI.MediaTimelineRecord.prototype._updateTimes): Added.
(WI.MediaTimelineRecord.fromJSON): Deleted.
(WI.MediaTimelineRecord.prototype.get domEvent): Deleted.
(WI.MediaTimelineRecord.prototype.get isPowerEfficient): Deleted.

  • UserInterface/Models/Timeline.js:

(WI.Timeline.create):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager):
(WI.TimelineManager.prototype.async processJSON):
(WI.TimelineManager.prototype.animationTrackingStarted): Added.
(WI.TimelineManager.prototype.animationTrackingUpdated): Added.
(WI.TimelineManager.prototype.animationTrackingCompleted): Added.
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):
(WI.TimelineManager.prototype._handleDOMNodeDidFireEvent):
(WI.TimelineManager.prototype._handleDOMNodePowerEfficientPlaybackStateChanged):
Start/Stop tracking animations based on whether the Media & Animations timeline is enabled.

  • UserInterface/Views/MediaTimelineOverviewGraph.js:

(WI.MediaTimelineOverviewGraph):
(WI.MediaTimelineOverviewGraph.get maximumRowCount): Added.
(WI.MediaTimelineOverviewGraph.prototype.reset):
(WI.MediaTimelineOverviewGraph.prototype.layout):
(WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.MediaTimelineOverviewGraph.prototype._processRecord): Added.
(WI.MediaTimelineOverviewGraph.prototype._processRecord.compareByStartTime): Added.
(WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded):
(WI.MediaTimelineOverviewGraph.prototype._handleTimesUpdated): Added.
(WI.MediaTimelineOverviewGraph.prototype.shown): Deleted.
(WI.MediaTimelineOverviewGraph.prototype.hidden): Deleted.

  • UserInterface/Views/MediaTimelineOverviewGraph.css:

(.timeline-overview-graph.media): Added.
(.timeline-overview-graph.media > .graph-row): Added.
(.timeline-overview-graph.media > .graph-row > .timeline-record-bar): Added.
(.timeline-overview-graph.media > .graph-row > .timeline-record-bar:not(.unfinished) > .segment:not(.inactive)): Added.
(.timeline-overview-graph.media:nth-child(even) > .graph-row > .timeline-record-bar:not(.unfinished) > .segment:not(.inactive)): Added.
(.timeline-overview-graph.media > .timeline-record-bar): Deleted.
(.timeline-overview-graph.media > .timeline-record-bar > .segment): Deleted.

  • UserInterface/Views/MediaTimelineView.js:

(WI.MediaTimelineView):
(WI.MediaTimelineView.prototype.shown): Added.
(WI.MediaTimelineView.prototype.hidden): Added.
(WI.MediaTimelineView.prototype.closed):
(WI.MediaTimelineView.prototype.reset):
(WI.MediaTimelineView.prototype.dataGridSortComparator):
(WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes):
(WI.MediaTimelineView.prototype._processPendingRecords):

  • UserInterface/Views/MediaTimelineDataGridNode.js:

(WI.MediaTimelineDataGridNode):
(WI.MediaTimelineDataGridNode.prototype.get data):
(WI.MediaTimelineDataGridNode.prototype.createCellContent):
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren): Added.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addReadySegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addDelaySegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addActiveSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addFullScreenSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPowerEfficientPlaybackSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPausedSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPlayingSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn):
(WI.MediaTimelineDataGridNode.prototype._createNameCellDocumentFragment): Added.
(WI.MediaTimelineDataGridNode.prototype.iconClassNames): Deleted.

  • UserInterface/Views/TimelineRecordBar.js:

(WI.TimelineRecordBar):
(WI.TimelineRecordBar.prototype.refresh):
(WI.TimelineRecordBar.prototype._handleClick):

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar):
(.timeline-record-bar > :matches(img, .segment)):
(.timeline-record-bar > img):
(.timeline-record-bar > .segment):
(body[dir=ltr] .timeline-record-bar > .segment):
(body[dir=ltr] .timeline-record-bar > .segment:first-of-type):
(body[dir=ltr] .timeline-record-bar > .segment:last-of-type):
(body[dir=rtl] .timeline-record-bar > .segment):
(body[dir=rtl] .timeline-record-bar > .segment:first-of-type):
(body[dir=rtl] .timeline-record-bar > .segment:last-of-type):
(.timeline-record-bar > .segment:not(:last-of-type)):
(.timeline-record-bar.selected > .segment):
(.timeline-record-bar > .segment.inactive,):
(.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(:focus .selected .timeline-record-bar:not(.has-custom-children) > .segment):
(:focus .selected .timeline-record-bar:not(.has-custom-children) > .segment.inactive):
(:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-record-bar.timeline-record-type-network > .segment):
(.timeline-record-bar.timeline-record-type-network > .segment.inactive):
(.timeline-record-bar.timeline-record-type-layout > .segment):
(.timeline-record-bar.timeline-record-type-layout.paint > .segment,):
(.timeline-record-bar.timeline-record-type-script > .segment):
(.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment,):
(.timeline-record-bar.timeline-record-type-media > .segment):
(.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment):
(.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment.css-animation-ready):
(.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment:matches(.css-animation-delay, .media-element-paused)):
(.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment):
(.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment.media-element-full-screen):
(.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment.media-element-power-efficient-playback):
(body[dir=ltr] .timeline-record-bar > .segment.inactive,): Deleted.
(body[dir=ltr] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive),): Deleted.
(:focus .selected .timeline-record-bar > .segment): Deleted.
(:focus .selected .timeline-record-bar > .segment.inactive): Deleted.
(body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
(body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
Allow timeline record bars to be customized through a delegate callback. If provided, it
will be used instead of any default content. It is expected to return an array of objects,
each having a startTime number, classNames array, and title string. It can also have a
endTime number and an image string. If endTime is NaN, the record is unfinished. If
image is provided, an <img> will be used instead of a segment, allowing for markers.

  • UserInterface/Views/TimelineDataGridNode.js:

(WI.TimelineDataGridNode.prototype.createCellContent):
Add a default fallback for WI.DOMNode values.

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.displayNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForRecord):
(WI.TimelineTabContentView.displayNameForRecord):

  • UserInterface/Views/TimelineRecordTreeElement.js:
  • UserInterface/Views/TimelineIcons.css:

(.animation-frame-record .icon):
(.css-animation-record .icon): Added.
(.css-transition-record .icon): Added.
(.media-element-record .icon): Added.
(.animation-record .icon): Deleted.
(.dom-event-record .icon): Deleted.
(.dom-event-record.fullscreen .icon): Deleted.
(.power-efficient-playback-state-changed-record .icon): Deleted.

  • UserInterface/Images/DOMEventFullscreen.svg: Removed.
  • UserInterface/Images/EventCancel.svg: Added.
  • UserInterface/Images/EventIteration.svg: Added.
  • UserInterface/Images/EventPause.svg:
  • UserInterface/Images/EventPlay.svg:
  • UserInterface/Images/EventProcessing.svg:
  • UserInterface/Images/EventStop.svg:
  • UserInterface/Images/PowerEfficientPlaybackStateChanged.svg: Removed.
  • UserInterface/Images/TimelineRecordAnimationFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/TimelineRecordAnimation.svg.
  • UserInterface/Images/TimelineRecordCSSAnimation.svg: Added.
  • UserInterface/Images/TimelineRecordCSSTransition.svg: Added.
  • UserInterface/Images/TimelineRecordMediaElement.svg: Added.

Add new media icons.

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.async import): Added.
(WI.TimelineRecording.import): Deleted.

  • UserInterface/Models/TimelineRecord.js:
  • UserInterface/Models/CPUTimelineRecord.js:
  • UserInterface/Models/HeapAllocationsTimelineRecord.js:

(WI.HeapAllocationsTimelineRecord.async fromJSON): Added.
(WI.HeapAllocationsTimelineRecord.fromJSON): Deleted.

  • UserInterface/Models/LayoutTimelineRecord.js:
  • UserInterface/Models/MemoryTimelineRecord.js:
  • UserInterface/Models/RenderingFrameTimelineRecord.js:
  • UserInterface/Models/ResourceTimelineRecord.js:
  • UserInterface/Models/ScriptTimelineRecord.js:

Make the importing of timeline records async so we can attempt to rehydrate the DOM nodes
of any media records (as well as wait for heap snapshots).

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.isMediaElement): Added.
(WI.DOMNode.prototype._shouldListenForEventListeners): Deleted.

  • Localizations/en.lproj/localizedStrings.js:

Source/WTF:

  • wtf/Markable.h:

(WTF::operator==):
(WTF::operator!=):
Add extra utility operators.

Tools:

  • TestWebKitAPI/Tests/WTF/Markable.cpp:

(TestWebKitAPI::TEST):
Add tests for extra utility operators.

LayoutTests:

  • inspector/animation/tracking.html: Added.
  • inspector/animation/tracking-expected.txt: Added.
5:19 PM Changeset in webkit [251958] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: default to focusing the console prompt if no other content is focused after opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=203743

Reviewed by Eric Carlson and Brian Burg.

  • UserInterface/Base/Main.js:

(WI.isContentAreaFocused): Added.
(WI.isConsoleFocused):
(WI._focusChanged):
(WI._restoreCookieForOpenTabs):

5:14 PM Changeset in webkit [251957] by Said Abou-Hallawa
  • 3 edits
    2 adds in trunk

SVG pair properties must be detached from their owner before it's deleted
https://bugs.webkit.org/show_bug.cgi?id=203545

Reviewed by Simon Fraser.

Source/WebCore:

SVGAnimatedPropertyPairAccessor needs to override its detach() method so
each of its pair properties detaches itself from the owner.
SVGPointerMemberAccessor does the same thing but for a single property
which covers all the list properties as well.

Test: svg/custom/pair-properties-detach.html

  • svg/properties/SVGAnimatedPropertyPairAccessor.h:

LayoutTests:

  • svg/custom/pair-properties-detach-expected.txt: Added.
  • svg/custom/pair-properties-detach.html: Added.
5:13 PM PrivacyFeaturesinWebKit created by Jon Davis
5:13 PM Changeset in webkit [251956] by beidson@apple.com
  • 9 edits in trunk

Promote "_getWebArchive" to API.
<rdar://problem/17317547> and https://bugs.webkit.org/show_bug.cgi?id=203767

Reviewed by Andy Estes.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):

Tools:

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController saveAsPDF:]):
(-[BrowserWindowController saveAsWebArchive:]):

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController saveAsWebArchive:]):

5:05 PM ImprovingInteropwithWPT edited by Jon Davis
(diff)
4:59 PM WebKitWindowsPort created by Jon Davis
4:59 PM Changeset in webkit [251955] by Jonathan Bedard
  • 7 edits in trunk/Tools

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

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.common.
  • Scripts/webkitpy/common/find_files_unittest.py: Use full import path.
  • Scripts/webkitpy/common/lru_cache_unittest.py:

(LRUCacheTest.test_size_one_pop): Convert iterator to list

  • Scripts/webkitpy/common/prettypatch_unittest.py: Check for byte array explicitly.
  • Scripts/webkitpy/common/read_checksum_from_png_unittest.py: Use unicode compatible

StringIO.
(ReadChecksumFromPngTest.test_read_checksum):

  • Scripts/webkitpy/common/timeout_context.py:

(Timeout.enter): Use range instead of xrange.

4:55 PM Changeset in webkit [251954] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Mark VeryLow priority requests using a request dictionary key
https://bugs.webkit.org/show_bug.cgi?id=203594

Patch by Benjamin Nham <Ben Nham> on 2019-11-01
Reviewed by Alex Christensen.

Mark very-low-pri beacon/ping loads using a request dictionary key. PLT currently ignores
these loads by checking if a request's CFURLRequestPriority is 0, but that won't work
anymore once I make VeryLow and Low pri requests both have a priority of 0 for
https://bugs.webkit.org/show_bug.cgi?id=203423.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

4:53 PM November 2019 Meeting edited by Jon Davis
(diff)
4:51 PM UndoAPI created by Jon Davis
4:46 PM Changeset in webkit [251953] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Port FileReader to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203749

Reviewed by Ryosuke Niwa.

  • dom/AbstractEventLoop.h:
  • fileapi/FileReader.cpp:

(WebCore::FileReader::FileReader):
(WebCore::FileReader::stop):
(WebCore::FileReader::hasPendingActivity const):
(WebCore::FileReader::abort):
(WebCore::FileReader::didStartLoading):
(WebCore::FileReader::didReceiveData):
(WebCore::FileReader::didFinishLoading):
(WebCore::FileReader::didFail):
(WebCore::FileReader::enqueueTask):

  • fileapi/FileReader.h:
4:39 PM zliboptimizationsforARM edited by Jon Davis
(diff)
4:38 PM zliboptimizationsforARM created by Jon Davis
4:34 PM Changeset in webkit [251952] by beidson@apple.com
  • 3 edits
    1 copy
    2 moves in trunk/Source/WebKit

Rejigger WKWebArchive headers.
https://bugs.webkit.org/show_bug.cgi?id=203648

Reviewed by Andy Estes.

  • Shared/API/c/mac/WKWebArchiveRef.cpp: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.cpp.

(WKWebArchiveGetTypeID):
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):
(WKWebArchiveCopyData):

  • Shared/API/c/mac/WKWebArchiveRef.h: Copied from Source/WebKit/Shared/API/c/mac/WKWebArchive.h.
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebArchive.h: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.h.
  • WebKit.xcodeproj/project.pbxproj:
4:32 PM Python3 created by Jon Davis
4:27 PM HandlingTestExpectations created by Jon Davis
4:13 PM WKWebViewAnEmbeddersPerspective created by Jon Davis
4:07 PM Changeset in webkit [251951] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Refactor uses of StructureStubInfo 'thisGPR' to a union for thisGPR and prototypeGPR
https://bugs.webkit.org/show_bug.cgi?id=203693

Reviewed by Mark Lam and Yusuke Suzuki.

I'm going to be adding a third overload for this field when making
GetByVal inline caching part of StructureStubInfo. It's nicer for
each use case of this field to use it by the proper name.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):

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

(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):

4:02 PM TheStateofJSC2019 edited by Ross Kirsling
(diff)
4:00 PM November 2019 Meeting edited by Jon Davis
(diff)
3:59 PM TheStateofJSC2019 created by Ross Kirsling
3:49 PM Changeset in webkit [251950] by eric.carlson@apple.com
  • 39 edits
    7 adds in trunk

Add experimental TextTrackCue API
https://bugs.webkit.org/show_bug.cgi?id=203649
<rdar://problem/55675172>

Reviewed by Jer Noble.

Source/WebCore:

Tests: media/track/texttrackcue/texttrackcue-addcue.html

media/track/texttrackcue/texttrackcue-constructor.html
media/track/texttrackcue/texttrackcue-displaycue.html

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::updateCaptionDisplaySizes):

  • Modules/mediacontrols/MediaControlsHost.h:
  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • dom/DocumentFragment.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateRenderer):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::textTrackRemoveCue):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::captionPreferencesChanged):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue):
(WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
(WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):

  • html/shadow/MediaControlElements.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::setMode):

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::cueBoxShadowPseudoId):
(WebCore::TextTrackCue::cueBackdropShadowPseudoId):
(WebCore::cueAttributName):
(WebCore::cueBackgroundAttributName):
(WebCore::TextTrackCueBox::TextTrackCueBox):
(WebCore::TextTrackCueBox::getCue const):
(WebCore::isLegalNode):
(WebCore::invalidNodeException):
(WebCore::checkForInvalidNodeTypes):
(WebCore::tagPseudoObjects):
(WebCore::removePseudoAttributes):
(WebCore::TextTrackCue::create):
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::didChange):
(WebCore::TextTrackCue::setIsActive):
(WebCore::TextTrackCue::toJSON const):
(WebCore::TextTrackCue::debugString const):
(WebCore::TextTrackCue::getCueAsHTML):
(WebCore::TextTrackCue::isRenderable const):
(WebCore::TextTrackCue::getDisplayTree):
(WebCore::TextTrackCue::removeDisplayTree):
(WebCore::TextTrackCue::setFontSize):
(WebCore::TextTrackCue::rebuildDisplayTree):

  • html/track/TextTrackCue.h:

(WebCore::TextTrackCueBox::create):
(WebCore::TextTrackCueBox::applyCSSProperties):
(WebCore::TextTrackCueBox::~TextTrackCueBox):
(WebCore::TextTrackCue::cueType const):
(WebCore::TextTrackCue::recalculateStyles):
(WebCore::TextTrackCue::updateDisplayTree):
(WebCore::TextTrackCue::isRenderable const): Deleted.

  • html/track/TextTrackCue.idl:
  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::isEqual const):
(WebCore::TextTrackCueGeneric::isOrderedBefore const):
(WebCore::TextTrackCueGeneric::isPositionedAbove const):

  • html/track/TextTrackCueGeneric.h:

(isType):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::VTTCueBox):
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
(WebCore::VTTCue::setFontSize):
(WebCore::toVTTCue):
(WebCore::VTTCueBox::create): Deleted.
(WebCore::VTTCueBox::getCue const): Deleted.
(WebCore::VTTCueBox::vttCueBoxShadowPseudoId): Deleted.
(WebCore::VTTCue::cueBackdropShadowPseudoId): Deleted.

  • html/track/VTTCue.h:

(WebCore::VTTCueBox::create):
(isType):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::appendTextTrackCueBox):
(WebCore::VTTRegion::getDisplayTree):
(WebCore::VTTRegion::prepareRegionDisplayTree):

  • html/track/VTTRegion.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride const):

  • page/Settings.yaml:
  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::RenderVTTCue):

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • media/track/texttrackcue/texttrackcue-addcue-expected.txt: Added.
  • media/track/texttrackcue/texttrackcue-addcue.html: Added.
  • media/track/texttrackcue/texttrackcue-constructor-expected.txt: Added.
  • media/track/texttrackcue/texttrackcue-constructor.html: Added.
  • media/track/texttrackcue/texttrackcue-displaycue-expected.txt: Added.
  • media/track/texttrackcue/texttrackcue-displaycue.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
3:49 PM ImprovingInteropwithWPT edited by Jon Davis
(diff)
3:49 PM ImprovingInteropwithWPT edited by Jon Davis
Added second presenter credit and link to API reference (diff)
3:48 PM Changeset in webkit [251949] by ddkilzer@apple.com
  • 3 edits in trunk/LayoutTests

http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=176240
<rdar://problem/51445000>

Patch by Kate Cheney <Kate Cheney> on 2019-11-01
Reviewed by Alexey Proskuryakov.

Flakiness no longer reproducible.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:42 PM November 2019 Meeting edited by Jon Davis
Added placeholder links to transcripts for lightning talks (diff)
3:42 PM Back-Forward-Cache.pdf attached to DOMBindingsEventLoopNotes by rniwa@webkit.org
Back forward cache slides
3:41 PM Better-DOM-Code.pdf attached to DOMBindingsEventLoopNotes by rniwa@webkit.org
Better DOM code slides
3:21 PM November 2019 Meeting edited by Jon Davis
(diff)
3:18 PM ImprovingInteropwithWPT created by Jon Davis
3:16 PM Changeset in webkit [251948] by BJ Burg
  • 2 edits in trunk/Source/WebKit

REGRESSION(r248696): Element Click on Mac is adding an extra page topContentInsets to y-coordinate
https://bugs.webkit.org/show_bug.cgi?id=203765
<rdar://problem/56014369>

Reviewed by Devin Rousso.

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
The topContentInsets is accounted for by rootViewToWindow(), so don't add it in manually.

2:59 PM Changeset in webkit [251947] by Alan Coon
  • 3 edits
    1 move
    2 deletes in tags/Safari-609.1.8.1/Source/WebKit

Cherry-pick r251889. rdar://problem/56787012

REGRESSION (r251215): Mail failed to build
https://bugs.webkit.org/show_bug.cgi?id=203700
<rdar://problem/56787012>

Reviewed by Antoine Quint.

Revert the private modulemap. It didn't include enough things
and caused some internal builds to fail.

We'll put it back with everything included sometime soon.

  • Configurations/WebKit.xcconfig:
  • Modules/OSX.modulemap: Renamed from Source/WebKit/Modules/macOS.modulemap.
  • Modules/iOS.private.modulemap: Removed.
  • Modules/macOS.private.modulemap: Removed.
  • Shared/API/Cocoa/WebKitPrivate.h:

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

2:57 PM Changeset in webkit [251946] by Alan Coon
  • 7 edits in tags/Safari-609.1.8.1/Source

Versioning.

2:55 PM Changeset in webkit [251945] by Alan Coon
  • 1 copy in tags/Safari-609.1.8.1

New tag.

2:39 PM Changeset in webkit [251944] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

macOS WK1: requestidlecallback/requestidlecallback-document-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203758

Reviewed by Wenson Hsieh.

Fix the test by delaying the check until the next run loop via setTimeout.
This is needed to make GC work reliably in WK1.

  • requestidlecallback/requestidlecallback-document-gc.html:
2:38 PM Changeset in webkit [251943] by Alan Coon
  • 21 edits in tags/Safari-608.4.4.1

Apply patch. rdar://problem/56280706

2:31 PM Changeset in webkit [251942] by Alan Coon
  • 7 edits in tags/Safari-608.4.4.1/Source

Versioning.

2:29 PM Changeset in webkit [251941] by timothy_horton@apple.com
  • 18 edits
    1 add in trunk

macCatalyst: Get TestWebKitAPI building
https://bugs.webkit.org/show_bug.cgi?id=203728

Reviewed by Alexey Proskuryakov.

.:

  • Makefile:

Descend into Tools/.

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:
  • gtest/xcode/Config/SDKVariant.xcconfig: Added.

Add SDKVariant.xcconfig to gtest so that it builds into the correct directory.

Tools:

  • Makefile:

Only build gtest and TestWebKitAPI for macCatalyst.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:

Make use of WK_COCOA_TOUCH instead of SDK conditionals.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

Fix some #ifdefs for macCatalyst.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollToRevealSelection.mm:

(-[LegacyLoadingDelegate webViewDidFinishLoad:]):

  • TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:

(-[AsyncPolicyDelegateForInsetTest webView:didFinishNavigation:]):
(TestWebKitAPI::TEST):
Util::runUntil wants a bool, not a BOOL.

  • TestWebKitAPI/config.h:

Import WebKitLegacy.h after WebKit.h. Traditionally WebKit.h includes
WebKitLegacy.h, except in macCatalyst. Many tests depend on being able
to get WebKitLegacy.h this way.

  • Scripts/webkitpy/style/checkers/sdkvariant.py:
  • Scripts/webkitpy/port/factory.py:
  • Scripts/webkitpy/port/mac.py:

Add a MacCatalyst port behind --maccatalyst, and do the bare minimum
required to get it working and finding the right binaries.
It inherits from Mac instead of iOS because for the purposes of
finding and running binaries, dealing with I/O, etc., these are
100% bona fide macOS products.

2:23 PM Changeset in webkit [251940] by commit-queue@webkit.org
  • 5 edits in trunk

HasProperty? result of Proxy in prototype chain is ignored
https://bugs.webkit.org/show_bug.cgi?id=203560

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-01
Reviewed by Ross Kirsling.

JSTests:

  • stress/proxy-get-prototype-of.js: Correct Proxy "has" trap test.
  • test262/expectations.yaml: Mark 6 test cases as passing.

Source/JavaScriptCore:

Before this change, when HasProperty? was called on ordinary object with Proxy in prototype chain,
falsy result of Proxy's "has" trap was ignored and prototype chain was inspected further.

According to spec, OrdinaryHasProperty unconditionally returns result of parent's HasProperty? call.
(step 5.a of https://tc39.es/ecma262/#sec-ordinaryhasproperty)

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

2:10 PM Changeset in webkit [251939] by Alan Coon
  • 1 copy in tags/Safari-608.4.4.1

New tag.

1:55 PM Changeset in webkit [251938] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Improve summary string when there are flaky failures in API tests
https://bugs.webkit.org/show_bug.cgi?id=203747

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeAPITestsResults.analyzeResults): Display pre-existing failure string string only
if there are pre-existing API test failures.

1:49 PM BackForwardCacheNotes created by Jon Davis
1:43 PM DOMBindingsEventLoopNotes created by Jon Davis
1:42 PM November 2019 Meeting edited by Jon Davis
(diff)
1:36 PM Changeset in webkit [251937] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

1:25 PM Changeset in webkit [251936] by Alan Coon
  • 1 copy in tags/Safari-608.4.7

Tag Safari-608.4.7.

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

Investigate if mach lookup access to *.apple-extension-service, *.viewservice, and com.apple.uikit.viewservice.* can be denied
https://bugs.webkit.org/show_bug.cgi?id=203626

Reviewed by Alexey Proskuryakov.

Modify the allow rule for these services to include the telemetry option.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:05 PM PlayStationWebKitPortUpdate2019 edited by stephan.szabo@sony.com
(diff)
12:57 PM November 2019 Meeting edited by cavalcantii@gmail.com
(diff)
12:34 PM Changeset in webkit [251934] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Port ServiceWorkerContainer to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203680

Reviewed by Ryosuke Niwa.

  • dom/AbstractEventLoop.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
(WebCore::ServiceWorkerContainer::enqueueTask):

  • workers/service/ServiceWorkerContainer.h:
12:34 PM Changeset in webkit [251933] by Nikita Vasilyev
  • 5 edits in trunk

Web Inspector: Display color swatches for p3 colors
https://bugs.webkit.org/show_bug.cgi?id=203439
<rdar://problem/56637250>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Detect color(display-p3 0 1 0) as a color in the style editor.

  • UserInterface/Models/Color.js:

(WI.Color):
(WI.Color.fromString):
(WI.Color.prototype.copy):
(WI.Color.prototype.toString):
(WI.Color.prototype.isKeyword):
(WI.Color.prototype._toFunctionString):

LayoutTests:

  • inspector/model/color-expected.txt:
  • inspector/model/color.html:
12:21 PM November 2019 Meeting edited by Jonathan Bedard
(diff)
12:17 PM Changeset in webkit [251932] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r249831): content view is empty if a breakpoint is hit in the main resource
https://bugs.webkit.org/show_bug.cgi?id=203722
<rdar://problem/56802409>

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype.get currentRevision):
(WI.SourceCode.prototype.revisionContentDidChange):
(WI.SourceCode.prototype._initializeCurrentRevisionIfNeeded):
(WI.SourceCode.prototype._processContent):
Don't wait to lazily clone the originalRevision and use it as the currentRevision. Some
listeners expect the currentRevision to already be set by the time this happens, so as
soon as the original revision's content is changed, clone it into the currentRevision.

11:54 AM November 2019 Meeting edited by Jon Davis
(diff)
11:37 AM PlayStationWebKitPortUpdate2019 edited by Jon Davis
(diff)
11:36 AM PlayStationWebKitPortUpdate2019 created by Jon Davis
11:36 AM November 2019 Meeting edited by Jon Davis
(diff)
11:35 AM November 2019 Meeting edited by Jon Davis
(diff)
11:27 AM Changeset in webkit [251931] by Wenson Hsieh
  • 2 edits in trunk/Tools

TestWebKitAPI.EditorStateTests.TypingAttributesTextAlignmentStartEnd is flaky in iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=203733
<rdar://problem/56814640>

Reviewed by Tim Horton.

Try to fix the flaky test by making EditingTestHarness more robust. Instead of checking for expected editor
state entries after the next presentation update, wait for the latest editor state entry to contain the expected
values.

  • TestWebKitAPI/EditingTestHarness.mm:

(-[EditingTestHarness _execCommand:argument:expectEntries:]):

Preserve the existing log statement by printing it out once after a few seconds, if the entry is still not found
in the last known editor state.

11:22 AM November 2019 Meeting edited by Jon Davis
Added links to transcripts, talk title update for JSC (diff)
11:20 AM IgaliaFocusandGoals2020 edited by alex
(diff)
11:16 AM Changeset in webkit [251930] by rniwa@webkit.org
  • 11 edits
    4 adds in trunk

Integrate media query evaluation into HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203134
<rdar://problem/56396316>

Reviewed by Antti Koivisto.

Source/WebCore:

Moved the code to call media query listeners to HTML5 event loop's step to update the rendering:
https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering

Tests: fast/media/mq-inverted-colors-live-update-for-listener.html

fast/media/mq-prefers-reduced-motion-live-update-for-listener.html

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::evaluateAll): Renamed from styleResolverChanged.

  • css/MediaQueryMatcher.h:
  • dom/Document.cpp:

(WebCore::Document::updateElementsAffectedByMediaQueries): Split from evaluateMediaQueryList.
This function is still called right after each layout update so that picture element may start
requesting newly selected image resources without having to wait for a rendering update.
But this function will no longer execute arbitrary scripts.
(WebCore::Document::evaluateMediaQueriesAndReportChanges): Split from evaluateMediaQueryList.
Evaluates media query listeners.

  • dom/Document.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setEmulatedMedia): Force the evaluation of media queries for now
but this code should really be scheduling a rendering update instead so added a FIXME.

  • page/Frame.cpp:

(WebCore::Frame::setPrinting): Evaluate media queries. We should consider invoking the full
algorithm to update the rendering here. e.g. intersection observer may add more contents.

  • page/Page.cpp:

(WebCore::Page::updateStyleAfterChangeInEnvironment): Schedule a rendering update after
accessibility settings have changed.
(WebCore::Page::updateRendering): Call evaluateMediaQueriesAndReportChanges.
(WebCore::Page::accessibilitySettingsDidChange): Schedule a rendering update after accessibility
settings have changed.
(WebCore::Page::appearanceDidChange): Ditto.

LayoutTests:

Added tests for listening to accessiblity related media queries without having any style rules
get affected by those media queries so that we can catch any future regressions. For now,
changing accessiblity settings seem to always schedule a rendering update so there is nothing to do
when these accessibility settings do change.

  • fast/media/media-query-list-07.html: Fixed the test to be compatible with new behavior.
  • fast/media/mq-inverted-colors-live-update-for-listener-expected.txt: Added.
  • fast/media/mq-inverted-colors-live-update-for-listener.html: Added.
  • fast/media/mq-prefers-reduced-motion-live-update-for-listener-expected.txt: Added.
  • fast/media/mq-prefers-reduced-motion-live-update-for-listener.html: Added.
11:01 AM WebKitGoalsfor2020 created by Jon Davis
10:59 AM Igalia -- WebKit Contributors Meeting 2019.pdf attached to IgaliaFocusandGoals2020 by alex
Igalia Focus and Goals 2020
10:57 AM Changeset in webkit [251929] by Alan Coon
  • 2 edits in tags/Safari-609.1.9/Source/WebKit

Cherry-pick r251897. rdar://problem/56765698

[iOS] Fix mach lookup sandbox violations in the Mail app
https://bugs.webkit.org/show_bug.cgi?id=203697

Reviewed by Alexey Proskuryakov.

Allow mach lookup to the services "com.apple.logd.events" and "com.apple.distributed_notifications@1v3",
which are seen when running the Mail application. Also allow "com.apple.aggregated", which was previously
allowed, and is showing up in reports.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

10:57 AM Changeset in webkit [251928] by Alan Coon
  • 3 edits
    1 move
    2 deletes in tags/Safari-609.1.9/Source/WebKit

Cherry-pick r251889. rdar://problem/56787012

REGRESSION (r251215): Mail failed to build
https://bugs.webkit.org/show_bug.cgi?id=203700
<rdar://problem/56787012>

Reviewed by Antoine Quint.

Revert the private modulemap. It didn't include enough things
and caused some internal builds to fail.

We'll put it back with everything included sometime soon.

  • Configurations/WebKit.xcconfig:
  • Modules/OSX.modulemap: Renamed from Source/WebKit/Modules/macOS.modulemap.
  • Modules/iOS.private.modulemap: Removed.
  • Modules/macOS.private.modulemap: Removed.
  • Shared/API/Cocoa/WebKitPrivate.h:

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

10:56 AM IgaliaFocusandGoals2020 edited by alex
(diff)
10:35 AM IgaliaFocusandGoals2020 edited by Jon Davis
Fixed link formatting (diff)
10:31 AM IgaliaFocusandGoals2020 created by Jon Davis
Created page and added a link to the presentation.
10:29 AM November 2019 Meeting edited by Jon Davis
Adding placeholder links for presentations (diff)
10:27 AM Changeset in webkit [251927] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Pass clobber-old-results parameter to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=203736

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests): Added --clobber-old-results paramter to run-webkit-tests. Also re-ordered
--no-new-test-results and --no-show-results to match with build.webkit.org configuration.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
10:18 AM Changeset in webkit [251926] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the watchOS build after r251896

  • Configurations/WebCore.xcconfig:

Whoops.

10:16 AM Changeset in webkit [251925] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Turn on the Picture-in-Picture API feature by default
https://bugs.webkit.org/show_bug.cgi?id=203725

Patch by Peng Liu <Peng Liu> on 2019-11-01
Reviewed by Jer Noble.

Source/WebCore:

No new tests are required.

  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:
10:09 AM November 2019 Meeting edited by alex
(diff)
10:07 AM November 2019 Meeting edited by alex
(diff)
10:04 AM Changeset in webkit [251924] by rniwa@webkit.org
  • 7 edits
    2 adds in trunk

Don't leak documents with a pending requestIdleCallback
https://bugs.webkit.org/show_bug.cgi?id=203708

Reviewed by Simon Fraser.

Source/WebCore:

Remove all tasks associated with a stopped document right away instead of waiting for
WindowEventLoop::run to execute so that even when author scripts synchronously add and remove
multiple documents, we don't end up leaking all of them until we yield to the run loop.

Also moved the code to suspend & resume event loops from CachedFrame to Document's
ActiveDOMObjects related functions for consistency.

Test: requestidlecallback/requestidlecallback-document-gc.html

  • dom/Document.cpp:

(WebCore::Document::suspendActiveDOMObjects): Moved the code from CachedFrameBase::restore.
(WebCore::Document::resumeActiveDOMObjects): Ditto from CachedFrame.
(WebCore::Document::stopActiveDOMObjects): Remove all tasks associated with this document.

  • dom/Document.h:

(WebCore::Document::eventLoopIfExists): Deleted.

  • dom/WindowEventLoop.cpp:

(WebCore::WindowEventLoop::stop):
(WebCore::WindowEventLoop::run):

  • dom/WindowEventLoop.h:
  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::CachedFrame):

LayoutTests:

Added a test for removing iframes with a pending idle callback and test that
the current documents of those iframes are collected immediately by GCController.collect.

  • requestidlecallback/requestidlecallback-document-gc-expected.txt: Added.
  • requestidlecallback/requestidlecallback-document-gc.html: Added.
9:28 AM Changeset in webkit [251923] by Caio Lima
  • 4 edits in trunk/JSTests

[JSC][MIPS] Skip tests failing in RELEASE_ASSERT_NOT_REACHED() at CallFrame.cpp:81
https://bugs.webkit.org/show_bug.cgi?id=203738

Unreviewed gardening.

  • stress/allocation-sinking-hints-are-valid-ssa.js:
  • stress/has-instance-exception-check.js:
  • stress/regress-176485.js:
9:19 AM Changeset in webkit [251922] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: tab isn't visible after removal of Debugger Tab and Resources Tab
https://bugs.webkit.org/show_bug.cgi?id=203719
<rdar://problem/56802389>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WI.loaded):
If the Debugger Tab identifier or Resources Tab identifier still exists in the list of open
tabs, remove both and replace the first one with the Sources Tab identifier.

9:08 AM Changeset in webkit [251921] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: make the default content of the Inspector Bootstrap Script a comment that explains how it works
https://bugs.webkit.org/show_bug.cgi?id=203704

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.async createBootstrapScript):

  • Localizations/en.lproj/localizedStrings.js:
8:57 AM Changeset in webkit [251920] by commit-queue@webkit.org
  • 24 edits in trunk

Picture-in-Picture layout test cases interfere with each other
https://bugs.webkit.org/show_bug.cgi?id=203614

Patch by Peng Liu <Peng Liu> on 2019-11-01
Reviewed by Eric Carlson.

Source/WebCore:

Fix test running issues, no new test is needed.

Add a member variable m_pictureInPictureAPITestEnabled to the HTMLVideoElement class.
When this variable is true, HTMLVideoElement::setFullscreenMode() will mock the
behavior of the Picture-in-Picture mode changing without the AVKit/CoreMedia involvement.
So we can run multiple layout test cases for Picture-in-Picture API simultaneously.
Note: this solution only tests the code for the Picture-in-Picture API implementation!
We still need to use the API tests to test the Picture-in-Picture implementation end-to-end.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::setFullscreenMode):
(WebCore::HTMLVideoElement::setPictureInPictureAPITestEnabled):

  • html/HTMLVideoElement.h:
  • html/HTMLVideoElement.idl:
  • testing/Internals.cpp:

(WebCore::Internals::setPictureInPictureAPITestEnabled):

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

LayoutTests:

Use "internals.setPictureInPictureAPITestEnabled(video, true)" to test
the picture-in-picture API implementation without AVKit/CoreMedia stuffs.

  • media/picture-in-picture-api-enter-pip-1-expected.txt:
  • media/picture-in-picture-api-enter-pip-1.html:
  • media/picture-in-picture-api-enter-pip-2-expected.txt:
  • media/picture-in-picture-api-enter-pip-2.html:
  • media/picture-in-picture-api-enter-pip-3-expected.txt:
  • media/picture-in-picture-api-enter-pip-3.html:
  • media/picture-in-picture-api-enter-pip-4-expected.txt:
  • media/picture-in-picture-api-enter-pip-4.html:
  • media/picture-in-picture-api-exit-pip-1-expected.txt:
  • media/picture-in-picture-api-exit-pip-1.html:
  • media/picture-in-picture-api-exit-pip-2-expected.txt:
  • media/picture-in-picture-api-exit-pip-2.html:
  • media/picture-in-picture-api-pip-events-expected.txt:
  • media/picture-in-picture-api-pip-events.html:
  • media/picture-in-picture-api-pip-window-expected.txt:
  • media/picture-in-picture-api-pip-window.html:
8:53 AM Changeset in webkit [251919] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Settings: Blackbox: hide icon is missing
https://bugs.webkit.org/show_bug.cgi?id=203727

Reviewed by Timothy Hatcher.

  • UserInterface/Images/Hide.svg:

WI.ImageUtilities.useSVGSymbol links directly to a specific part of the SVG resource based
on an id attribute (default to #root if not otherwise given). As a result, any <style>
that are not a child of that specific part won't be included, meaning that any CSS variables
used for controlling colors won't exist. Adding a fallback value to the var() for these
cases allows a specific part to be used without needing any surrounding styles.

  • UserInterface/Views/BlackboxSettingsView.css:

(.settings-view.blackbox > p > .toggle-script-blackbox):
Slightly adjust the size and vertical alignment to better match the surrounding text.

8:37 AM Changeset in webkit [251918] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: enable line wrapping by default
https://bugs.webkit.org/show_bug.cgi?id=203726

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Setting.js:
8:35 AM Changeset in webkit [251917] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Add support for text-align: justify
https://bugs.webkit.org/show_bug.cgi?id=203715
<rdar://problem/56804607>

Reviewed by Antti Koivisto.

Add basic support for text-align: justify. Register expansion opportunities as the text content is being
appended to the line (Line::appendTextContent) and distribute the extra space when the line is being closed (Line::close).
Now LFC rendering of OpenSource/PerformanceTests/Layout/line-layout-simple.html visually matches trunk rendering.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::resetExpansion):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::justifyRuns):
(WebCore::Layout::Line::alignContentHorizontally):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::isTextAlignJustify const):
(WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):
(WebCore::Layout::Line::Run::adjustExpansionBehavior):
(WebCore::Layout::Line::Run::expand): Deleted.

  • layout/inlineformatting/InlineLineLayout.cpp:

(WebCore::Layout::LineLayout::close):

8:20 AM Changeset in webkit [251916] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

Style::Builder should not depend on StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=203729

Reviewed by Zalan Bujtas.

With all style building state in builder, we can remove the back-reference to style resolver.

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::createFilterOperations):

  • css/CSSFilterImageValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::gradientWithStylesResolved):
(WebCore::CSSGradientValue::resolveRGBColors):

Add helper for resolving basic colors without style builder.

  • css/CSSGradientValue.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::applyMatchedProperties):

Register content attributes encountered during style building.

(WebCore::StyleResolver::State::updateConversionData): Deleted.

This is now created by BuilderState constructor.

(WebCore::StyleResolver::styleImage): Deleted.
(WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted.
(WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted.
(WebCore::filterOperationForType): Deleted.
(WebCore::StyleResolver::createFilterOperations): Deleted.

Move image mapping functions to BuilderState.

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted.

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage):
(WebCore::HTMLInputElement::createInnerTextStyle):

Create mask image without requiring style resolver.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::Builder):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueZoom):
(WebCore::Style::BuilderCustom::applyValueContent):
(WebCore::Style::BuilderCustom::applyValueFontSize):
(WebCore::Style::BuilderCustom::applyValueAlt):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::BuilderState):

No more m_styleResolver.

(WebCore::Style::BuilderState::createStyleImage):
(WebCore::Style::filterOperationForType):
(WebCore::Style::BuilderState::createFilterOperations):
(WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement):
(WebCore::Style::BuilderState::colorFromPrimitiveValue const):
(WebCore::Style::BuilderState::registerContentAttribute):

Collect content attributes so they can be applied later by StyleResolver.

  • style/StyleBuilderState.h:

(WebCore::Style::BuilderState::builder):
(WebCore::Style::BuilderState::rootElementStyle const):

Restore this to be nullable for simplicity.

(WebCore::Style::BuilderState::registeredContentAttributes const):
(WebCore::Style::BuilderState::styleResolver): Deleted.

7:41 AM November 2019 Meeting edited by Jon Davis
Updated Igalia talk name (diff)
7:40 AM November 2019 Meeting edited by Jon Davis
Changed the afternoon schedule (diff)
7:26 AM Changeset in webkit [251915] by Fujii Hironori
  • 2 edits in trunk/Tools

[CMake] TestWebCore shouldn't link with WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=203672

Reviewed by Don Olmstead.

TestWebCore doesn't need to link with WebCoreTestSupport. And, it
causes a problem for Windows because WebCoreTestSupport imports
WebCore symbols by using dllimport, however, WebCore is not a DLL.
(Bug 203663 Comment 4)

  • TestWebKitAPI/CMakeLists.txt: Changed TestWebCore not to link

with WebCoreTestSupport. Changed TestWebCore to link with
WebCoreHeaderInterface instead.

5:55 AM Changeset in webkit [251914] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

CanvasRenderingContext2DBase: use CanvasBase more extensively
https://bugs.webkit.org/show_bug.cgi?id=182685

Patch by Zan Dobersek <zdobersek@igalia.com> and Chris Lord <Chris Lord> on 2019-11-01
Reviewed by Adrian Perez de Castro.

In CanvasRenderingContext2DBase, stop downcasting the CanvasBase object
to HTMLCanvasElement where not necessary, and where necessary, do so
after testing that the CanvasBase object is indeed a HTMLCanvasElement.

All the functionality that previously required downcasting has now moved
into the CanvasBase class. Combined with these changes, this will allow
OffscreenCanvas to leverage CanvasRenderingContext2DBase for 2D
rasterization.

CanvasStyle is similarly modified to work on CanvasBase objects, only
retrieving current color value from the inline style only in case of
an HTMLCanvasElement derivative.

No new tests -- no change in behavior.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::setStrokeStyle):
(WebCore::CanvasRenderingContext2DBase::setFillStyle):
(WebCore::CanvasRenderingContext2DBase::setShadowColor):
(WebCore::CanvasRenderingContext2DBase::setShadow):
(WebCore::CanvasRenderingContext2DBase::didDraw):
(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
(WebCore::CanvasRenderingContext2DBase::platformLayer const):

  • html/canvas/CanvasStyle.cpp:

(WebCore::currentColor):
(WebCore::parseColorOrCurrentColor):

  • html/canvas/CanvasStyle.h:
1:44 AM Changeset in webkit [251913] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Turn on IOSurface support in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=203026
<rdar://problem/56320993>

  • platform/ios/TestExpectations:

Adjust some more test expectations after turning on accelerated drawing.
This is starting to get concerning.

Oct 31, 2019:

11:34 PM Changeset in webkit [251912] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative GTK build fix r251886
https://bugs.webkit.org/show_bug.cgi?id=203703

  • wasm/WasmSlowPaths.h:
10:53 PM Changeset in webkit [251911] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Fix GTK build after r251886
https://bugs.webkit.org/show_bug.cgi?id=203703

Reviewed by Yusuke Suzuki.

slow_path_wasm_throw_exception was missing extern "C" in the implementation file.

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::slow_path_wasm_throw_exception):

10:03 PM Changeset in webkit [251910] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Turn on IOSurface support in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=203026
<rdar://problem/56320993>

  • platform/ios/TestExpectations:

Adjust some more test expectations after turning on accelerated drawing.

10:01 PM Changeset in webkit [251909] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

gcSafeMemmove references undefined slowPathBackwardsMemmove on non-gcc compatible compilers
https://bugs.webkit.org/show_bug.cgi?id=203721

Reviewed by Fujii Hironori.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemmove):

9:41 PM Changeset in webkit [251908] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo][Clang] Unreviewed build fix
https://bugs.webkit.org/show_bug.cgi?id=203663

ServiceWorkerThreadProxy::notifyNetworkStateChange was not
exported from WebKit.dll even though it's marked with
WEBCORE_TESTSUPPORT_EXPORT because any symbols in the object file of
ServiceWorkerThreadProxy.cpp is not referred by WebKit.dll.

WebCoreTestSupport.lib(ServiceWorkerInternals.cpp.obj) : error LNK2019: unresolved external symbol

"declspec(dllimport) public: void cdecl WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange(bool)"
(imp_?notifyNetworkStateChange@ServiceWorkerThreadProxy@WebCore@@QEAAX_N@Z) referenced in function
"public: <auto>
cdecl public: void __cdecl WebCore::ServiceWorkerInternals::setOnline(bool)'::1'::<lambda_0>::operator()(void)const "
(??R<lambda_0>@?0??setOnline@ServiceWorkerInternals@WebCore@@QEAAX_N@Z@QEBA?A?<auto>@@XZ)

Uninline ServiceWorkerThreadProxy::identifier temporarily.
I will revert this change after fixing this issue properly in Bug 203663.

No behavioral changes.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::identifier const):

  • workers/service/context/ServiceWorkerThreadProxy.h:
9:07 PM Changeset in webkit [251907] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Take down the gesture snapshot early when the back/forward cache is not leveraged
https://bugs.webkit.org/show_bug.cgi?id=203713
<rdar://problem/56803910>

Reviewed by Tim Horton.

Take down the gesture snapshot as soon as the gesture is done when the back/forward cache
is not leveraged. Otherwise, the snapshot may stay up for a long time (while we load, parse
and restore scroll position) and it would look to the user as if the view was unresponsive.
Showing the page slowly loading in such cases is less confusing as the user knows what's
going on and is even able to interact with the partially loaded page.

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::hasCachedWebPage const):

  • Shared/WebBackForwardListItem.h:
  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/ViewGestureController.h:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::makeSnapshotBlank):
(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::makeSnapshotBlank):

9:00 PM Changeset in webkit [251906] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Fix build when WTF_CPU_NEEDS_ALIGNED_ACCESS=1 after r251886
https://bugs.webkit.org/show_bug.cgi?id=203718

Reviewed by Yusuke Suzuki.

  • bytecompiler/BytecodeGeneratorBaseInlines.h:

(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode16):
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32):

8:58 PM Changeset in webkit [251905] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

offlineasm should emit the suffixes for floating point instructions on Windows x86
https://bugs.webkit.org/show_bug.cgi?id=203720

Reviewed by Yusuke Suzuki.

  • offlineasm/x86.rb:
8:23 PM Changeset in webkit [251904] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Disable Wasm interpreter on WinCairo
https://bugs.webkit.org/show_bug.cgi?id=203705

Reviewed by Yusuke Suzuki.

The interpreter does not build on WinCairo.

  • llint/LowLevelInterpreter.asm:
8:22 PM Changeset in webkit [251903] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Remove metadata(CallFrame*) accessor
https://bugs.webkit.org/show_bug.cgi?id=203712

Reviewed by Tadeu Zagallo.

We should pass CodeBlock* explicitly to remove unnecessary use of CallFrame*, which is very error-prone.

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareCatchOSREntry):

  • dfg/DFGOSREntry.h:
  • generator/Metadata.rb:
  • jit/JITOperations.cpp:
7:11 PM Changeset in webkit [251902] by Caio Lima
  • 13 edits in trunk

Temporary skip broken tests on MIPS that is broken due to OSR exit to LLInt
https://bugs.webkit.org/show_bug.cgi?id=203710

Unreviewed gardening.

JSTests:

  • microbenchmarks/call-spread-call.js:
  • microbenchmarks/throw.js:
  • stress/allocation-sinking-hints-are-valid-ssa-2.js:
  • stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js:
  • stress/arrowfunction-lexical-bind-supercall-4.js:
  • stress/arrowfunction-tdz-3.js:
  • stress/function-constructor-semantics.js:
  • stress/stress-cleared-calllinkinfo.js:
  • stress/typedarray-configure-index.js:
  • stress/v8-deltablue-strict.js:

PerformanceTests/SunSpider:

  • tests/v8-v6/v8-deltablue.js:
6:39 PM Changeset in webkit [251901] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION (r251808): run-webkit-test cannot show results.html
https://bugs.webkit.org/show_bug.cgi?id=203709
<rdar://problem/56798620>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort.show_results_html_file): os.devnull is a string, not a file.

5:53 PM Changeset in webkit [251900] by Brent Fulgham
  • 15 edits in trunk/Source/WebCore

[FTW] Adopt DirectWrite in place of Uniscribe
https://bugs.webkit.org/show_bug.cgi?id=203548
<rdar://problem/56695130>

Reviewed by Fujii Hironori.

This patch switches from the Uniscribe text controller to a
DirectWrite based ComplexTextController.

  • PlatformFTW.cmake:
  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextController): Treat Windows
like any other ComplexTextController platform.

  • platform/graphics/Font.cpp:

(WebCore::Font::platformGlyphInit): Add hack for DirectWrite
zero-width space handling.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const): Don't use Uniscribe.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::dwFontCollection const):
(WebCore::FontPlatformData::faceName const):

  • platform/graphics/win/ComplexTextControllerDirectWrite.cpp:

(WebCore::shape): Added,
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
Added.

  • platform/graphics/win/DirectWriteUtilities.cpp:

(WebCore::DirectWrite::createWithPlatformFont): Modify to return a
pair of font and font collection.
(WebCore::DirectWrite::fontWeight): Added stub.
(WebCore::DirectWrite::fontStyle): Ditto.
(WebCore::DirectWrite::fontStretch): Ditto.

  • platform/graphics/win/DirectWriteUtilities.h:
  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData): Add more
information to help DirectWrite handle font styles.

  • platform/graphics/win/FontPlatformDataDirect2D.cpp:

(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::createFallbackFont): Deleted.

  • platform/graphics/win/FontWin.cpp:
  • platform/graphics/win/GlyphPageTreeNodeDirect2D.cpp:

(WebCore::GlyphPage::fill): Update to handle multiple runs in a
given string.

  • platform/graphics/win/TextAnalyzerHelper.cpp:

(WebCore::TextAnalyzerHelper::TextAnalyzerHelper): Update to handle
analysis of strings with multiple runs.
(WebCore::TextAnalyzerHelper::SetScriptAnalysis): Ditto.

  • platform/graphics/win/TextAnalyzerHelper.h:
5:39 PM Changeset in webkit [251899] by Alan Coon
  • 21 edits in branches/safari-608-branch

Revert "Revert everything related to rdar://problem/56280706".

This reverts commit r251890.

5:39 PM Changeset in webkit [251898] by Matt Baker
  • 2 edits in trunk/Tools

Changed my emails list.

  • Scripts/webkitpy/common/config/contributors.json:
5:31 PM Changeset in webkit [251897] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix mach lookup sandbox violations in the Mail app
https://bugs.webkit.org/show_bug.cgi?id=203697

Reviewed by Alexey Proskuryakov.

Allow mach lookup to the services "com.apple.logd.events" and "com.apple.distributed_notifications@1v3",
which are seen when running the Mail application. Also allow "com.apple.aggregated", which was previously
allowed, and is showing up in reports.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
5:08 PM Changeset in webkit [251896] by timothy_horton@apple.com
  • 19 edits
    4 adds
    1 delete in trunk

Turn on IOSurface support in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=203026
<rdar://problem/56320993>

Reviewed by Simon Fraser.

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Always link IOSurface now that we always have it. We continue to only link
IOSurfaceAccelerator on iOS hardware, since it's only available there.

  • platform/graphics/cocoa/IOSurface.h:

Turn off RGB10 in the Simulator.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSystemPreviewBadge):
Disable CoreImage rendering via IOSurface for the system preview badge,
since it does not seem to work in the simulator.

Source/WebKit:

  • Configurations/WebKit.xcconfig:

Always link IOSurface now that we always have it.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:

Turn on Accelerated Drawing and Accelerated Drawing for Canvas by default.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):
Don't use RGB10 if we don't have it.

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
Don't use render server snapshotting in hidden windows, because it
(correctly, but unhelpfully) cannot capture contents in that case.

Source/WTF:

  • wtf/Platform.h:

Turn on HAVE(IOSURFACE) and USE(IOSURFACE_CANVAS_BACKING_STORE) in the simulator.
Add HAVE(IOSURFACE_COREIMAGE_SUPPORT).

Tools:

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView):
Don't use RGB10 if we don't have it.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:

(TEST):
Don't allocate many megabytes on the stack.
This isn't currently a problem, but if you accidentally run the tests on
a 3x simulator it starts crashing.

LayoutTests:

  • compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt:
  • platform/ios-device/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/compositing/canvas/accelerated-canvas-compositing-expected.txt: Added.
  • platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed.
  • platform/ios/fast/canvas/canvas-render-layer-expected.txt: Added.
  • platform/ios/fast/canvas/canvas-scale-shadowBlur-expected.txt: Added.
  • platform/ios/fast/canvas/canvas-scale-strokePath-shadow-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_html_image-expected.txt: Removed.

Move and expand the scope of some TestExpectations for canvas tests
that fail due to noise introduced in the hardware accelerated drawing path.
We will separately investigate how to mitigate this, but it already affects
iOS on-device testing (as well as macOS in most cases). The tiny reduction
in coverage here is well worth the massive improvement in coverage of
accelerated drawing code paths.

  • fast/images/exif-orientation-canvas-expected.html:

Due to rdar://problem/56755864, <canvas> and <img> render slightly differently.
Use <canvas> for the reference as well, but use transforms to translate it
instead of depending on EXIF orientation support, to continue testing
the intended behavior.

4:54 PM Changeset in webkit [251895] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk

[EME] Batch multiple key requests into one request and response
https://bugs.webkit.org/show_bug.cgi?id=203580
<rdar://problem/54853345>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/encrypted-media/fps-multiple-pssh.html

Add a path for -didProvideRequests: giving an NSArray of AVContentKeyRequests to result in
an EME message containing a JSON object containing keyIDs and licence request payloads.

  • CDMInstanceSessionFairPlayStreamingAVFObjC now defines a "Request" as a Vector of AVContentKeyRequests.
  • When we receive an NSArray of AVContentKeyRequests, we store that as a single "Request" in m_currentRequest and m_requests, or in m_pendingRequests.
  • Generating a key request message from such a vector will result in a JSON object in the format of [{ keyID: ..., payload: ...}, ...].
  • Clients can update these all at once with a matching JSON object in the same format, or alternatively of the format [{ keyID: ..., error: ...}, ...] to indicate to the CDN that there was an error encountered while completing the key request.
  • There are a couple of helper classes that facilitate collecting delegate callbacks and completion handlers into a single final callback: UpdateResponseCollector and CallbackAggregator.
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(-[WebCoreFPSContentKeySessionDelegate contentKeySession:didProvideContentKeyRequests:forInitializationData:]):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::UpdateResponseCollector):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::addSuccessfulResponse):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::addErrorResponse):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::UpdateResponseCollector::fail):
(WebCore::parseJSONValue):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForKeyIDs const):
(WebCore::keyIDsForRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyIDs):
(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):

Source/WTF:

Support appending an r-value reference Vector to another.

  • wtf/Vector.h:

(WTF::minCapacity>::appendVector):

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac/media/encrypted-media/fps-multiple-pssh-expected.txt: Added.
  • platform/mac/media/encrypted-media/fps-multiple-pssh.html: Added.
4:37 PM Changeset in webkit [251894] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix LowLevelInterpreter32_64.asm after r251886
https://bugs.webkit.org/show_bug.cgi?id=194257

ci2d was renamed to ci2ds and I also missed LowLevelInterpreter32_64.asm

  • llint/LowLevelInterpreter32_64.asm:
4:28 PM Changeset in webkit [251893] by Tadeu Zagallo
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop builds after r251886
https://bugs.webkit.org/show_bug.cgi?id=194257

ci2d was renamed to ci2ds, but I missed cloop.rb, arm.rb and mips.rb

  • offlineasm/arm.rb:
  • offlineasm/cloop.rb:
  • offlineasm/mips.rb:
4:27 PM Changeset in webkit [251892] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

4:18 PM Changeset in webkit [251891] by Kocsen Chung
  • 1 copy in tags/Safari-608.4.6

Tag Safari-608.4.6.

4:11 PM Changeset in webkit [251890] by Kocsen Chung
  • 21 edits in branches/safari-608-branch

Revert everything related to rdar://problem/56280706

This reverts commit r251884, r251873, r251803.

3:48 PM Changeset in webkit [251889] by dino@apple.com
  • 3 edits
    1 move
    2 deletes in trunk/Source/WebKit

REGRESSION (r251215): Mail failed to build
https://bugs.webkit.org/show_bug.cgi?id=203700
<rdar://problem/56787012>

Reviewed by Antoine Quint.

Revert the private modulemap. It didn't include enough things
and caused some internal builds to fail.

We'll put it back with everything included sometime soon.

  • Configurations/WebKit.xcconfig:
  • Modules/OSX.modulemap: Renamed from Source/WebKit/Modules/macOS.modulemap.
  • Modules/iOS.private.modulemap: Removed.
  • Modules/macOS.private.modulemap: Removed.
  • Shared/API/Cocoa/WebKitPrivate.h:
3:45 PM Changeset in webkit [251888] by achristensen@apple.com
  • 16 edits in trunk

Enable more features in Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=203699

Patch by Alex Christensen <achristensen@apple.com> on 2019-10-31
Rubber-stamped by Tim Horton.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

  • Modules/pictureinpicture/PictureInPictureWindow.h:
  • PlatformMac.cmake:
  • layout/inlineformatting/InlineFormattingContext.cpp:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

Source/WebCore/PAL:

  • pal/CMakeLists.txt:
  • pal/PlatformMac.cmake:

Source/WebKit:

  • PlatformMac.cmake:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::createCaptureSource):

Source/WebKitLegacy:

  • PlatformMac.cmake:
3:40 PM Changeset in webkit [251887] by Russell Epstein
  • 13 edits in trunk/Source

Unreviewed, rolling out r251861.

Caused 50+ Layout Test Crashes

Reverted changeset:

"Use SecurityOriginData in NetworkProcess where possible
without other changes"
https://bugs.webkit.org/show_bug.cgi?id=203615
https://trac.webkit.org/changeset/251861

3:32 PM Changeset in webkit [251886] by Tadeu Zagallo
  • 87 edits
    5 copies
    11 adds
    1 delete in trunk

[WebAssembly] Create a Wasm interpreter
https://bugs.webkit.org/show_bug.cgi?id=194257
<rdar://problem/44186794>

Reviewed by Saam Barati.

Source/JavaScriptCore:

Add an interpreter tier to WebAssembly which reuses the LLInt infrastructure. The interpreter
currently tiers up straight to OMG and can OSR enter at the prologue and from loops. The initial
implementation of the interpreter is very naive, but despite the lack of optimizations it still
shows a 2x improvement on the WebAssembly subtests in JetStream2 and 2x improvement on the
PSPDFKit benchmark. It reduces "compilation" times by ~3x and it's neutral on throughput.

The interpreter follows the same calling conventions as the BBQ/OMG, this means that:

  • We have to allocate locals for all argument registers and write all arguments registers to the stack in the prologue.
  • Calls have to allocate space for at least as many arguments as the number of argument registers. Before each call, all argument registers must be loaded from the stack, and after we return from the call, all registers must be stored back to the stack, in case they contain return values. We carefully layout the stack so that the arguments that would already have to be passed in the stack end up in the right place. The stack layout for calls is:

[ gprs ][ fprs ][ optional stack arguments ][ callee frame ]

sp

  • The return opcode has to load all registers from the stack, since they might need to contain results of the function.
  • The calling convention requires that the callee should store itself in the callee slot of the call frame, which is impossible in the interpreter, since the code we execute is the same for all callees. In order to work around that, we generate an entry thunk to the wasm interpreter for each function. All this thunk does is store the callee in the call frame and tail call the interpreter.
  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::constantName const):
(JSC::BytecodeDumper<Block>::dumpValue):
(JSC::BytecodeDumper<Block>::dumpBytecode):
(JSC::CodeBlockBytecodeDumper<Block>::vm const):
(JSC::CodeBlockBytecodeDumper<Block>::identifier const):
(JSC::CodeBlockBytecodeDumper<Block>::dumpIdentifiers):
(JSC::CodeBlockBytecodeDumper<Block>::dumpConstants):
(JSC::CodeBlockBytecodeDumper<Block>::dumpExceptionHandlers):
(JSC::CodeBlockBytecodeDumper<Block>::dumpSwitchJumpTables):
(JSC::CodeBlockBytecodeDumper<Block>::dumpStringSwitchJumpTables):
(JSC::CodeBlockBytecodeDumper<Block>::dumpBlock):

  • bytecode/BytecodeDumper.h:

(JSC::BytecodeDumper::dumpValue):
(JSC::BytecodeDumper::BytecodeDumper):

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::performGeneratorification):

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

(JSC::CodeBlock::dumpBytecode):

  • bytecode/Fits.h:
  • bytecode/Instruction.h:

(JSC::BaseInstruction::BaseInstruction):
(JSC::BaseInstruction::Impl::opcodeID const):
(JSC::BaseInstruction::opcodeID const):
(JSC::BaseInstruction::name const):
(JSC::BaseInstruction::isWide16 const):
(JSC::BaseInstruction::isWide32 const):
(JSC::BaseInstruction::hasMetadata const):
(JSC::BaseInstruction::sizeShiftAmount const):
(JSC::BaseInstruction::size const):
(JSC::BaseInstruction::is const):
(JSC::BaseInstruction::as const):
(JSC::BaseInstruction::cast):
(JSC::BaseInstruction::cast const):
(JSC::BaseInstruction::wide16 const):
(JSC::BaseInstruction::wide32 const):

  • bytecode/InstructionStream.h:

(JSC::InstructionStream::iterator::operator+=):
(JSC::InstructionStream::iterator::operator++):
(JSC::InstructionStreamWriter::iterator::operator+=):
(JSC::InstructionStreamWriter::iterator::operator++):

  • bytecode/Opcode.cpp:
  • bytecode/Opcode.h:
  • bytecode/PreciseJumpTargetsInlines.h:
  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/VirtualRegister.cpp:

(JSC::VirtualRegister::VirtualRegister):

  • bytecode/VirtualRegister.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::GenericLabel<JSGeneratorTraits>::setLocation):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/BytecodeGeneratorBase.h: Added.
  • bytecompiler/BytecodeGeneratorBaseInlines.h: Added.

(JSC::shrinkToFit):
(JSC::BytecodeGeneratorBase<Traits>::BytecodeGeneratorBase):
(JSC::BytecodeGeneratorBase<Traits>::newLabel):
(JSC::BytecodeGeneratorBase<Traits>::newEmittedLabel):
(JSC::BytecodeGeneratorBase<Traits>::reclaimFreeRegisters):
(JSC::BytecodeGeneratorBase<Traits>::emitLabel):
(JSC::BytecodeGeneratorBase<Traits>::recordOpcode):
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode16):
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32):
(JSC::BytecodeGeneratorBase<Traits>::write):
(JSC::BytecodeGeneratorBase<Traits>::newRegister):
(JSC::BytecodeGeneratorBase<Traits>::newTemporary):
(JSC::BytecodeGeneratorBase<Traits>::addVar):
(JSC::BytecodeGeneratorBase<Traits>::allocateCalleeSaveSpace):

  • bytecompiler/Label.h:

(JSC::GenericBoundLabel::GenericBoundLabel):
(JSC::GenericBoundLabel::target):
(JSC::GenericBoundLabel::saveTarget):
(JSC::GenericBoundLabel::commitTarget):

  • dfg/DFGByteCodeParser.cpp:
  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGOperations.cpp:
  • generator/Argument.rb:
  • generator/DSL.rb:
  • generator/GeneratedFile.rb:
  • generator/Opcode.rb:
  • generator/Options.rb:
  • generator/Section.rb:
  • generator/Wasm.rb: Added.
  • interpreter/Register.h:
  • interpreter/RegisterInlines.h:

(JSC::Register::operator=):

  • jit/JITArithmetic.cpp:
  • jit/JITOpcodes.cpp:
  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:

(JSC::LLInt::wasmExceptionInstructions):

  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:
  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::wasmFunctionEntryThunk):

  • llint/LLIntThunks.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • llint/WebAssembly.asm: Added.
  • offlineasm/arm64.rb:
  • offlineasm/instructions.rb:
  • offlineasm/parser.rb:
  • offlineasm/registers.rb:
  • offlineasm/transform.rb:
  • offlineasm/x86.rb:
  • parser/Nodes.h:
  • runtime/Error.cpp:

(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator() const):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finishCreation):

  • runtime/Options.cpp:

(JSC::overrideDefaults):

  • runtime/OptionsList.h:
  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::recordJITFrame):
(JSC::FrameWalker::resetAtMachineFrame):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::isControlTypeIf):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::isControlTypeIf):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::prepareImpl):
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):
(JSC::Wasm::BBQPlan::initializeCallees):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmBBQPlanInlines.h: Removed.
  • wasm/WasmCallee.cpp:

(JSC::Wasm::Callee::Callee):
(JSC::Wasm::Callee::dump const):
(JSC::Wasm::JITCallee::JITCallee):
(JSC::Wasm::LLIntCallee::setEntrypoint):
(JSC::Wasm::LLIntCallee::entrypoint const):
(JSC::Wasm::LLIntCallee::calleeSaveRegisters):
(JSC::Wasm:: const):

  • wasm/WasmCallee.h:

(JSC::Wasm::Callee::setOSREntryCallee):
(JSC::Wasm::JITCallee::wasmToWasmCallsites):
(JSC::Wasm::JITCallee:: const):

  • wasm/WasmCallingConvention.h:
  • wasm/WasmCodeBlock.cpp:

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

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::wasmEntrypointCalleeFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::wasmBBQCalleeFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::wasmToWasmExitStub):

  • wasm/WasmCompilationMode.cpp:

(JSC::Wasm::makeString):

  • wasm/WasmCompilationMode.h:
  • wasm/WasmEmbedder.h:
  • wasm/WasmEntryPlan.cpp: Added.

(JSC::Wasm::EntryPlan::EntryPlan):
(JSC::Wasm::EntryPlan::stateString):
(JSC::Wasm::EntryPlan::moveToState):
(JSC::Wasm::EntryPlan::didReceiveFunctionData):
(JSC::Wasm::EntryPlan::parseAndValidateModule):
(JSC::Wasm::EntryPlan::prepare):
(JSC::Wasm::EntryPlan::ThreadCountHolder::ThreadCountHolder):
(JSC::Wasm::EntryPlan::ThreadCountHolder::~ThreadCountHolder):
(JSC::Wasm::EntryPlan::complete):
(JSC::Wasm::EntryPlan::compileFunctions):
(JSC::Wasm::EntryPlan::work):

  • wasm/WasmEntryPlan.h: Copied from Source/JavaScriptCore/wasm/WasmBBQPlan.h.

(JSC::Wasm::EntryPlan::parseAndValidateModule):
(JSC::Wasm::EntryPlan::exports const):
(JSC::Wasm::EntryPlan::internalFunctionCount const):
(JSC::Wasm::EntryPlan::takeModuleInformation):
(JSC::Wasm::EntryPlan::takeWasmToWasmExitStubs):
(JSC::Wasm::EntryPlan::takeWasmToWasmCallsites):
(JSC::Wasm::EntryPlan::hasBeenPrepared const):
(JSC::Wasm::EntryPlan::tryReserveCapacity):

  • wasm/WasmFunctionCodeBlock.cpp: Added.

(JSC::Wasm::FunctionCodeBlock::setInstructions):
(JSC::Wasm::FunctionCodeBlock::dumpBytecode):
(JSC::Wasm::FunctionCodeBlock::addOutOfLineJumpTarget):
(JSC::Wasm::FunctionCodeBlock::outOfLineJumpOffset):
(JSC::Wasm::FunctionCodeBlock::outOfLineJumpTarget):
(JSC::Wasm::FunctionCodeBlock::addSignature):
(JSC::Wasm::FunctionCodeBlock::signature const):
(JSC::Wasm::FunctionCodeBlock::addJumpTable):
(JSC::Wasm::FunctionCodeBlock::jumpTable const const):
(JSC::Wasm::FunctionCodeBlock::numberOfJumpTables const):

  • wasm/WasmFunctionCodeBlock.h: Added.

(JSC::Wasm::FunctionCodeBlock::FunctionCodeBlock):
(JSC::Wasm::FunctionCodeBlock::getConstant const):
(JSC::Wasm::FunctionCodeBlock::functionIndex const):
(JSC::Wasm::FunctionCodeBlock::addJumpTarget):
(JSC::Wasm::FunctionCodeBlock::numberOfJumpTargets):
(JSC::Wasm::FunctionCodeBlock::lastJumpTarget):
(JSC::Wasm::FunctionCodeBlock::outOfLineJumpOffset):
(JSC::Wasm::FunctionCodeBlock::bytecodeOffset):
(JSC::Wasm::FunctionCodeBlock::tierUpCounter):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmInstance.h:
  • wasm/WasmLLIntGenerator.cpp: Added.

(JSC::Wasm::LLIntGenerator::ControlType::ControlType):
(JSC::Wasm::LLIntGenerator::ControlType::loop):
(JSC::Wasm::LLIntGenerator::ControlType::topLevel):
(JSC::Wasm::LLIntGenerator::ControlType::block):
(JSC::Wasm::LLIntGenerator::ControlType::if_):
(JSC::Wasm::LLIntGenerator::ControlType::targetLabelForBranch const):
(JSC::Wasm::LLIntGenerator::fail const):
(JSC::Wasm::LLIntGenerator::unifyValuesWithBlock):
(JSC::Wasm::LLIntGenerator::emptyExpression):
(JSC::Wasm::LLIntGenerator::createStack):
(JSC::Wasm::LLIntGenerator::isControlTypeIf):
(JSC::Wasm::LLIntGenerator::addEndToUnreachable):
(JSC::Wasm::LLIntGenerator::setParser):
(JSC::Wasm::LLIntGenerator::dump):
(JSC::Wasm::LLIntGenerator::virtualRegisterForLocal):
(JSC::Wasm::LLIntGenerator::tmpsForSignature):
(JSC::Wasm::LLIntGenerator::jsNullConstant):
(JSC::Wasm::LLIntGenerator::isConstant):
(JSC::Wasm::parseAndCompileBytecode):
(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::LLIntGenerator::finalize):
(JSC::Wasm::LLIntGenerator::callInformationFor):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):
(JSC::Wasm::LLIntGenerator::addConstant):
(JSC::Wasm::LLIntGenerator::getLocal):
(JSC::Wasm::LLIntGenerator::setLocal):
(JSC::Wasm::LLIntGenerator::getGlobal):
(JSC::Wasm::LLIntGenerator::setGlobal):
(JSC::Wasm::LLIntGenerator::addLoop):
(JSC::Wasm::LLIntGenerator::addTopLevel):
(JSC::Wasm::LLIntGenerator::addBlock):
(JSC::Wasm::LLIntGenerator::addIf):
(JSC::Wasm::LLIntGenerator::addElse):
(JSC::Wasm::LLIntGenerator::addElseToUnreachable):
(JSC::Wasm::LLIntGenerator::addReturn):
(JSC::Wasm::LLIntGenerator::addBranch):
(JSC::Wasm::LLIntGenerator::addSwitch):
(JSC::Wasm::LLIntGenerator::endBlock):
(JSC::Wasm::LLIntGenerator::addCall):
(JSC::Wasm::LLIntGenerator::addCallIndirect):
(JSC::Wasm::LLIntGenerator::addRefIsNull):
(JSC::Wasm::LLIntGenerator::addRefFunc):
(JSC::Wasm::LLIntGenerator::addTableGet):
(JSC::Wasm::LLIntGenerator::addTableSet):
(JSC::Wasm::LLIntGenerator::addTableSize):
(JSC::Wasm::LLIntGenerator::addTableGrow):
(JSC::Wasm::LLIntGenerator::addTableFill):
(JSC::Wasm::LLIntGenerator::addUnreachable):
(JSC::Wasm::LLIntGenerator::addCurrentMemory):
(JSC::Wasm::LLIntGenerator::addGrowMemory):
(JSC::Wasm::LLIntGenerator::addSelect):
(JSC::Wasm::LLIntGenerator::load):
(JSC::Wasm::LLIntGenerator::store):
(JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation):

  • wasm/WasmLLIntGenerator.h: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.h.
  • wasm/WasmLLIntPlan.cpp: Added.

(JSC::Wasm::LLIntPlan::prepareImpl):
(JSC::Wasm::LLIntPlan::compileFunction):
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
(JSC::Wasm::LLIntPlan::initializeCallees):

  • wasm/WasmLLIntPlan.h: Copied from Source/JavaScriptCore/wasm/WasmOMGForOSREntryPlan.h.
  • wasm/WasmLLIntTierUpCounter.cpp: Copied from Source/JavaScriptCore/wasm/WasmCompilationMode.cpp.

(JSC::Wasm::LLIntTierUpCounter::addOSREntryDataForLoop):
(JSC::Wasm::LLIntTierUpCounter::osrEntryDataForLoop const const):

  • wasm/WasmLLIntTierUpCounter.h: Copied from Source/JavaScriptCore/wasm/WasmOMGForOSREntryPlan.h.

(JSC::Wasm::LLIntTierUpCounter::LLIntTierUpCounter):
(JSC::Wasm::LLIntTierUpCounter::optimizeAfterWarmUp):
(JSC::Wasm::LLIntTierUpCounter::checkIfOptimizationThresholdReached):
(JSC::Wasm::LLIntTierUpCounter::optimizeSoon):

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):

  • wasm/WasmModule.cpp:

(JSC::Wasm::makeValidationResult):
(JSC::Wasm::makeValidationCallback):
(JSC::Wasm::Module::validateSync):
(JSC::Wasm::Module::validateAsync):

  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::OMGForOSREntryPlan):
(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGForOSREntryPlan.h:
  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmSlowPaths.cpp: Added.

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
(JSC::LLInt::doWasmCall):
(JSC::LLInt::doWasmCallIndirect):
(JSC::LLInt::slow_path_wasm_throw_exception):
(JSC::LLInt::slow_path_wasm_popcount):
(JSC::LLInt::slow_path_wasm_popcountll):

  • wasm/WasmSlowPaths.h: Added.
  • wasm/WasmTable.cpp:

(JSC::Wasm::FuncRefTable::function const):
(JSC::Wasm::FuncRefTable::instance const):

  • wasm/WasmTable.h:
  • wasm/WasmTierUpCount.h:
  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::isControlTypeIf):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSToWasm.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::calleeSaves const):

Tools:

Add a mode that runs WebAssembly tests without the LLInt (i.e. only Air)
and update the no-air mode to also disable the LLInt tier.

  • Scripts/run-jsc-stress-tests:
3:26 PM Changeset in webkit [251885] by Nikita Vasilyev
  • 6 edits in trunk

Web Inspector: Color picker: incorrect saturation when selecting color on color square
https://bugs.webkit.org/show_bug.cgi?id=203695
<rdar://problem/56793697>

Reviewed by Matt Baker.

Source/WebInspectorUI:

The saturation component in HSV does NOT equal the saturation component in HSL.
Use the proper HSV to HSL conversion.

  • UserInterface/Models/Color.js:

(WI.Color.hsv2hsl): Added.

  • UserInterface/Views/ColorSquare.js:

(WI.ColorSquare.prototype.get tintedColor):
(WI.ColorSquare.prototype.get _lightness): Deleted.

LayoutTests:

  • inspector/model/color-expected.txt:
  • inspector/model/color.html:
3:16 PM Changeset in webkit [251884] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit/UIProcess/API/C

Unreviewed build fix. rdar://problem/56280706

3:01 PM November 2019 Meeting edited by Jon Davis
(diff)
3:01 PM November 2019 Meeting edited by Jon Davis
Updated registration message. (diff)
3:01 PM November 2019 Meeting edited by Jon Davis
Updated title for Sony's presentation. (diff)
3:00 PM Changeset in webkit [251883] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r251038): Elements: Computed: variables are shown in the Properties section instead of in the Variables section
https://bugs.webkit.org/show_bug.cgi?id=203668

Reviewed by Matt Baker.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.initialLayout):

  • UserInterface/Views/ComputedStyleSection.js:

(WI.ComputedStyleSection):
(WI.ComputedStyleSection.prototype.set propertyVisibilityMode): Added.
(WI.ComputedStyleSection.prototype.get propertiesToRender):
Reintroduce the propertyVisibilityMode concept to WI.ComputedStyleSection so that the
Computed details panel can prevent CSS variables from being shown in the Properites section.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.get propertiesToRender):
Replace variable getter with isVariable to match r251038.

2:53 PM Changeset in webkit [251882] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Make String#localeCompare faster by inlining JSGlobalObject::defaultCollator
https://bugs.webkit.org/show_bug.cgi?id=203696

Reviewed by Mark Lam.

We found that JSGlobalObject::defaultCollator is not inlined and it takes some time in JetStream2/cdjs.
We use LazyProperty mechanism here and make JSGlobalObject::defaultCollator function inlinable simple one.
This patch improves JetStream2/cdjs by 2%.

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • runtime/IntlObject.cpp:

(JSC::intlBooleanOption):
(JSC::intlStringOption):
(JSC::intlNumberOption):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::defaultCollator): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::defaultCollator const):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncLocaleCompare):

2:49 PM Changeset in webkit [251881] by Alan Coon
  • 1 copy in tags/Safari-608.3.10.0.4

Tag Safari-608.3.10.0.4.

2:32 PM Changeset in webkit [251880] by Alan Coon
  • 3 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Cherry-pick r251370. rdar://problem/56763315

Add more release logging for "Unexpectedly resumed" assertion
https://bugs.webkit.org/show_bug.cgi?id=203196

Reviewed by Geoffrey Garen.

  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::processDidResume):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::processTaskStateDidChange):

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

2:32 PM Changeset in webkit [251879] by Alan Coon
  • 5 edits in branches/safari-608.3.10.0-branch/Source/WebKit

Cherry-pick r251304. rdar://problem/56763315

[iOS] "Unexpectedly Resumed" process assertion may cause us to get terminated
https://bugs.webkit.org/show_bug.cgi?id=203046
<rdar://problem/56179592>

Reviewed by Geoffrey Garen.

This patch implements the following to avoid getting terminated:

  1. Schedule the task to release the assertion on a background thread instead of the main thread so that we end up releasing the task even if the main thread is somehow hung.
  2. Add an invalidation handler to the process assertion which releases the assertion upon expiration.
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::processDidResume):
  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::processTaskStateDidChange):

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

2:29 PM Changeset in webkit [251878] by Alan Coon
  • 7 edits in branches/safari-608.3.10.0-branch/Source

Versioning.

2:08 PM Changeset in webkit [251877] by commit-queue@webkit.org
  • 12 edits in trunk

SVGGeometryElement.getPointAtLength should clamp its argument to [0, length]
https://bugs.webkit.org/show_bug.cgi?id=203687

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

LayoutTests/imported/w3c:

  • web-platform-tests/svg/types/scripted/SVGGeometryElement.getPointAtLength-01-expected.txt:

Source/WebCore:

The spec link is:

https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength

-- Fix the SVGGeometryElement.idl to match the specs.
-- Fix the path utility functions to return zeros in case of an error.

The callers never used the return values.

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::getPointAtLength const):

  • rendering/svg/RenderSVGShape.h:
  • svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::getPointAtLength const):

  • svg/SVGGeometryElement.h:
  • svg/SVGGeometryElement.idl:
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::getTotalLength const):
(WebCore::SVGPathElement::getPointAtLength const):
(WebCore::SVGPathElement::getPathSegAtLength const):

  • svg/SVGPathElement.h:
  • svg/SVGPathUtilities.cpp:

(WebCore::getSVGPathSegAtLengthFromSVGPathByteStream):
(WebCore::getTotalLengthOfSVGPathByteStream):
(WebCore::getPointAtLengthOfSVGPathByteStream):

  • svg/SVGPathUtilities.h:
2:06 PM Changeset in webkit [251876] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

1:50 PM Changeset in webkit [251875] by sbarati@apple.com
  • 13 edits
    2 adds in trunk

Don't use memmove/memcpy/memset for memory that can be scanned concurrently
https://bugs.webkit.org/show_bug.cgi?id=203228
<rdar://problem/56401852>

Reviewed by Robin Morisset.

JSTests:

  • stress/torn-js-value-concurrent-collector.js: Added.

(foo):

Source/JavaScriptCore:

We had code inside various places of the runtime which would call into system
memcpy/memmove/memset when updating a live butterfly. This means that the
concurrent collector could be scanning such butterflies while a memcpy/memmove/memset
was running. Those functions don't guarantee anything about the minimum
alignment of the stores they do. And implementations for them frequently have
byte copy loops for low byte copy counts. This lead to us seeing torn JSValues
inside the concurrent collector during Array.prototype.splice. This patch
introduces new functions for doing memcpy/memmove/memset for data structures
which may be concurrently scanned. The loops are written using inline assembly
for gcc compatible compilers on 64 bit platforms. The inline assembly
ensures we never write to memory using instructions that store fewer
than 8 bytes. On other platforms, we just use a volatile pointer to
ensure the compiler doesn't turn the loop into a function call or a
series of stores which may be smaller than 8 bytes.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCMemoryOperations.h: Added.

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

  • heap/Heap.h:
  • runtime/ArrayConventions.cpp:

(JSC::clearArrayMemset):

  • runtime/ArrayPrototype.cpp:

(JSC::copyElements):

  • runtime/ButterflyInlines.h:

(JSC::Butterfly::tryCreate):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
(JSC::Butterfly::resizeArray):
(JSC::Butterfly::unshift):
(JSC::Butterfly::shift):

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):

  • runtime/JSObject.cpp:

(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:
  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

1:41 PM Changeset in webkit [251874] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Move ImageBuffer-related functionality from HTMLCanvasElement to CanvasBase
https://bugs.webkit.org/show_bug.cgi?id=182503

Patch by Zan Dobersek <zdobersek@igalia.com> and Chris Lord <Chris Lord> on 2019-10-31
Reviewed by Ryosuke Niwa.

Move the ImageBuffer member variable, other related member variables and
majority of methods that operate on these from the HTMLCanvasElement
class up to the CanvasBase class. This will make it possible for the
OffscreenCanvas implementation to leverage the same code when using 2D
contexts for painting.

Most of the moved methods are public, while the setImageBuffer() method
is made protected so that it's still accessible from the inheriting
class.

Along with setImageBuffer(), the active pixel memory counter is moved
into the CanvasBase class. It's still using static storage, but is now
a member of the class with protected access. The storage has been made
atomic so as to allow its consistency to be maintained when accessed
from multiple threads (which may happen in the future).

The m_size member variable is also moved up into the CanvasBase class.
Constructor is changed so that the passed-in IntSize argument is used
to initialize it. Canvas implementations are still the owners of their
respective canvas contexts and are responsible for the destruction of
both the context and the ImageBuffer, in that order.

HTMLCanvasElement destructor still has to invoke
CanvasBase::notifyObserversCanvasDestroyed() since some CanvasObserver
derivatives perform virtual method calls on the CanvasBase object for
typecasting purposes in their canvasDestroyed() implementation.
Calling virtual methods on an object that's being destroyed is normally
discouraged and should be fixed separately, but it works as long as
invocations are done before the HTMLCanvasElement object is destroyed
completely (as has been the case so far).

CanvasRenderingContext2DBase is already changed in unwindStateStack()
to call CanvasBase::existingDrawingContext() and not downcast the
CanvasBase object to HTMLCanvasElement. This is done now due to
unwindStateStack() being called from the destructor, which is now
invoked from the CanvasBase destructor and not the HTMLCanvasElement
destructor, avoiding virtual method calls on the CanvasBase object as
it's being destroyed.

This patch doesn't address various methods using const qualifier and
then working around that by requiring member variables to be mutable.
This should be amended as much as possible in a separate patch.

No new tests -- no change in functionality, only refactoring.

  • html/CanvasBase.cpp:

(WebCore::CanvasBase::CanvasBase):
(WebCore::CanvasBase::~CanvasBase):
(WebCore::CanvasBase::drawingContext const):
(WebCore::CanvasBase::existingDrawingContext const):
(WebCore::CanvasBase::buffer const):
(WebCore::CanvasBase::baseTransform const):
(WebCore::CanvasBase::makeRenderingResultsAvailable):
(WebCore::CanvasBase::memoryCost const):
(WebCore::CanvasBase::externalMemoryCost const):
(WebCore::CanvasBase::callTracingActive const):
(WebCore::CanvasBase::setImageBuffer const):
(WebCore::CanvasBase::activePixelMemory):
(WebCore::CanvasBase::resetGraphicsContextState const):

  • html/CanvasBase.h:

(WebCore::CanvasBase::width const):
(WebCore::CanvasBase::height const):
(WebCore::CanvasBase::size const):
(WebCore::CanvasBase::setSize):
(WebCore::CanvasBase::hasCreatedImageBuffer const):
(WebCore::CanvasBase::createImageBuffer const):

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::CustomPaintCanvas):
(WebCore::CustomPaintCanvas::~CustomPaintCanvas):

  • html/CustomPaintCanvas.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::~HTMLCanvasElement):
(WebCore::HTMLCanvasElement::setSize):
(WebCore::HTMLCanvasElement::createContext2d):
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::setSurfaceSize):
(WebCore::HTMLCanvasElement::toDataURL):
(WebCore::HTMLCanvasElement::toBlob):
(WebCore::HTMLCanvasElement::createImageBuffer const):
(WebCore::HTMLCanvasElement::setImageBufferAndMarkDirty):

  • html/HTMLCanvasElement.h:
  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::OffscreenCanvas):
(WebCore::OffscreenCanvas::~OffscreenCanvas):
(WebCore::OffscreenCanvas::setWidth):
(WebCore::OffscreenCanvas::setHeight):
(WebCore::OffscreenCanvas::transferToImageBitmap):
(WebCore::OffscreenCanvas::createImageBuffer const):

  • html/OffscreenCanvas.h:
1:36 PM Changeset in webkit [251873] by Alan Coon
  • 1 edit in branches/safari-608-branch/Source/WebKit/UIProcess/API/C/WKContext.h

Unreviewed build fix. rdar://problem/56280706

1:22 PM Changeset in webkit [251872] by Devin Rousso
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Debugger: make sure the blackbox config is removed before iterating all existing scripts
https://bugs.webkit.org/show_bug.cgi?id=203666

Reviewed by Matt Baker.

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::setShouldBlackboxURL):

1:20 PM Changeset in webkit [251871] by Devin Rousso
  • 11 edits in trunk

Web Inspector: DOMDebugger: Node Removed breakpoints should fire whenever the node is removed from the main DOM tree, not just when it's removed from it's parent
https://bugs.webkit.org/show_bug.cgi?id=203349

Reviewed by Matt Baker.

Source/WebCore:

Test: inspector/dom-debugger/dom-breakpoints.html

Replace targetNode (which was a Runtime.RemoteObject) with a targetNodeId (which is a
DOM.NodeId) when dispatching DOMDebugger pauses. Additionally, include the ancestor's
DOM.NodeId as the targetNodeId whenever an ancestor is removed that has a descendant
with a node removed DOM breakpoint.

  • inspector/agents/page/PageDOMDebuggerAgent.h:
  • inspector/agents/page/PageDOMDebuggerAgent.cpp:

(WebCore::PageDOMDebuggerAgent::willRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::descriptionForDOMEvent):

  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushNodeToFrontend): Added.

Source/WebInspectorUI:

Replace targetNode (which was a Runtime.RemoteObject) with a targetNodeId (which is a
DOM.NodeId) when dispatching DOMDebugger pauses. Additionally, include the ancestor's
DOM.NodeId as the targetNodeId whenever an ancestor is removed that has a descendant
with a node removed DOM breakpoint.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/dom-debugger/dom-breakpoints.html:
  • inspector/dom-debugger/dom-breakpoints-expected.txt:
12:59 PM Changeset in webkit [251870] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

Rename AccessibilityObject::matchedParent as Accessibility::findAncestor and re-implement in a generic way so that can be used with both AccessibilityObjects and AXIsolatedTreeNodes.
https://bugs.webkit.org/show_bug.cgi?id=203654

Reviewed by Chris Fleizach.

No new tests necessary since this does not change functionality.

  • Deleted AccessibilityObject::matchedParent and replaced with Accessibility::findAncestor.
  • Accessibility::findAncestor is a template function that can be used with both AccessibilityObjects and AXIsolatedTreeNodes.
  • Created the namespace Accessibility for implementation details that need not to be exposed to client code.
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::helpText const):
(WebCore::AccessibilityNodeObject::textUnderElement const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::parentObjectUnignored const):
(WebCore::AccessibilityObject::isDescendantOfRole const):
(WebCore::AccessibilityObject::ancestorAccessibilityScrollView const):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::isDescendantOfObject const):
(WebCore::AccessibilityObject::liveRegionAncestor const):
(WebCore::AccessibilityObject::isExpanded const):
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::focusableAncestor):
(WebCore::AccessibilityObject::editableAncestor):
(WebCore::AccessibilityObject::radioGroupAncestor const):
(WebCore::AccessibilityObject::matchedParent): Deleted.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::Accessibility::findAncestor):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::hasPopup const):

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
(-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityFrameAncestor]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):
(-[WebAccessibilityObjectWrapper detailParentForSummaryObject:]):
(-[WebAccessibilityObjectWrapper detailParentForObject:]):
(-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
(AXAttributeStringSetStyle):

12:56 PM Changeset in webkit [251869] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Display pre-existing API test names in the build summary
https://bugs.webkit.org/show_bug.cgi?id=199525

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeAPITestsResults.analyzeResults): Include the names of pre-existing test failures in summary string and
limit the number of failures to display to NUM_API_FAILURES_TO_DISPLAY.

12:29 PM Changeset in webkit [251868] by Truitt Savell
  • 3 edits
    2 moves
    1 delete in trunk/Source/WebKit

Unreviewed, rolling out r251854.

Broke iOS build

Reverted changeset:

"Rejigger WKWebArchive headers."
https://bugs.webkit.org/show_bug.cgi?id=203648
https://trac.webkit.org/changeset/251854

12:26 PM Changeset in webkit [251867] by rniwa@webkit.org
  • 8 edits
    2 adds in trunk

Integrate resize event with HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=202964

Reviewed by Geoffrey Garen and Simon Fraser.

Source/WebCore:

Dispatch resize events in "run the resize steps" during the "update the rendering":
https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering

Existing code in WebCore which was dispatching or scheduling dispatching of resize events now simply sets
a flag on document and schedules a rendering update. In Page::updateRendering, we fire resize events on
any documents with this flag set.

Test: fast/events/resize-subframe-in-rendering-update.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::beginLoadTimerFired): Fixed the flakiness in SVG animation tests observed
after this patch was landed previously. The issue was that this code was calling FrameLoader's
checkLoadComplete before checkCompleted. checkCompleted starts SVG animations in Document::implicitClose
whereas checkLoadComplete can cause DumpRenderTree to end the test. As a result, depending on when this
function was called relative to other work being done in the main thread, DumpRenderTree could prematurely
end and dump the test result even though SVG animation would have immediately started in either scenario.
Unfortunately I couldn't come up with a new deterministic test for this issue since the exact condition
under which this problem comes up seems quite racy (which makes sense given this only manifested as flaky
failures in existing tests).

  • dom/Document.cpp:

(WebCore::Document::setNeedsDOMWindowResizeEvent): Added.
(WebCore::Document::setNeedsVisualViewportResize): Added.
(WebCore::Document::runResizeSteps): Added. https://drafts.csswg.org/cssom-view/#run-the-resize-steps

  • dom/Document.h:
  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded): Now sets m_needsDOMWindowResizeEvent on Document instead of
enqueuing a resize event.

  • page/Page.cpp:

(WebCore::Page::updateRendering): Call runResizeSteps on each document.
(WebCore::Page::collectDocuments): Added.

  • page/Page.h:
  • page/VisualViewport.cpp:

(WebCore::VisualViewport::enqueueResizeEvent):

LayoutTests:

Added a regression test and fixed an existing test to work with the new behavior.

  • fast/events/resize-subframe-in-rendering-update-expected.txt: Added.
  • fast/events/resize-subframe-in-rendering-update.html: Added.
  • fast/shadow-dom/trusted-event-scoped-flags.html:
12:23 PM Changeset in webkit [251866] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix; move PictureInPictureSupport.h include outside HAVE(AVKIT) check.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:
12:19 PM Changeset in webkit [251865] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Update results for fast/css/hsl-color.html on win
https://bugs.webkit.org/show_bug.cgi?id=203592

Unreviewed test gardening

  • platform/win/fast/css/hsl-color-expected.txt:
11:55 AM Changeset in webkit [251864] by Antti Koivisto
  • 15 edits
    2 adds in trunk/Source/WebCore

Introduce Style::Builder
https://bugs.webkit.org/show_bug.cgi?id=203682

Reviewed by Zalan Bujtas.

Encapsulate the style building step into a new Builder class. It owns the cascade and the style building state.

Move tha applying code from StyleResolver and PropertyCascade there.
Move a bunch of font related state from StyleResolver::State to BuilderState.

  • DerivedSources-output.xcfilelist:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSVariableReferenceValue.cpp:

(WebCore::resolveVariableReference):

  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
(WebCore::StyleResolver::initializeFontStyle):
(WebCore::StyleResolver::adjustStyleForInterCharacterRuby): Deleted.
(WebCore::checkForOrientationChange): Deleted.
(WebCore::StyleResolver::updateFont): Deleted.
(WebCore::StyleResolver::useSVGZoomRules const): Deleted.
(WebCore::StyleResolver::useSVGZoomRulesForLength const): Deleted.
(WebCore::StyleResolver::checkForTextSizeAdjust): Deleted.
(WebCore::StyleResolver::checkForZoomChange): Deleted.
(WebCore::StyleResolver::checkForGenericFamilyChange): Deleted.
(WebCore::StyleResolver::setFontSize): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Deleted.
(WebCore::StyleResolver::State::fontSizeHasViewportUnits const): Deleted.
(WebCore::StyleResolver::State::useSVGZoomRules const): Deleted.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences):

  • css/parser/CSSPropertyParser.cpp:
  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::PropertyCascade):
(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::propertyCascadeForRollback const):
(WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const):
(WebCore::Style::PropertyCascade::applyDeferredProperties): Deleted.
(WebCore::Style::PropertyCascade::applyProperties): Deleted.
(WebCore::Style::PropertyCascade::applyPropertiesImpl): Deleted.
(WebCore::Style::PropertyCascade::applyCustomProperties): Deleted.
(WebCore::Style::PropertyCascade::applyCustomProperty): Deleted.
(WebCore::Style::PropertyCascade::propertyCascadeForRollback): Deleted.
(WebCore::Style::PropertyCascade::applyProperty): Deleted.
(WebCore::Style::PropertyCascade::resolveValue): Deleted.
(WebCore::Style::PropertyCascade::resolvedVariableValue): Deleted.
(WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode): Deleted.

  • style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::deferredProperties const):
(WebCore::Style::PropertyCascade::customProperties const):
(WebCore::Style::PropertyCascade::direction const):
(WebCore::Style::PropertyCascade::builderState): Deleted.

  • style/StyleBuilder.cpp: Added.

(WebCore::Style::directionFromStyle):
(WebCore::Style::Builder::Builder):
(WebCore::Style::Builder::applyAllProperties):
(WebCore::Style::Builder::applyHighPriorityProperties):
(WebCore::Style::Builder::applyLowPriorityProperties):
(WebCore::Style::Builder::applyPropertyValue):
(WebCore::Style::Builder::applyDeferredProperties):
(WebCore::Style::Builder::applyProperties):
(WebCore::Style::Builder::applyPropertiesImpl):
(WebCore::Style::Builder::applyCustomProperties):
(WebCore::Style::Builder::applyCustomProperty):
(WebCore::Style::Builder::applyCascadeProperty):
(WebCore::Style::Builder::applyProperty):
(WebCore::Style::Builder::resolveValue):
(WebCore::Style::Builder::resolvedVariableValue):

  • style/StyleBuilder.h: Added.

(WebCore::Style::Builder::applyProperty):
(WebCore::Style::Builder::state):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueFontSize):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::BuilderState):
(WebCore::Style::BuilderState::useSVGZoomRules const):
(WebCore::Style::BuilderState::useSVGZoomRulesForLength const):
(WebCore::Style::BuilderState::adjustStyleForInterCharacterRuby):
(WebCore::Style::BuilderState::updateFont):
(WebCore::Style::BuilderState::updateFontForTextSizeAdjust):
(WebCore::Style::BuilderState::updateFontForZoomChange):
(WebCore::Style::BuilderState::updateFontForGenericFamilyChange):
(WebCore::Style::BuilderState::updateFontForOrientationChange):
(WebCore::Style::BuilderState::setFontSize):

  • style/StyleBuilderState.h:

(WebCore::Style::BuilderState::builder):
(WebCore::Style::BuilderState::setFontDirty):
(WebCore::Style::BuilderState::cascade): Deleted.
(WebCore::Style::BuilderState::clearFontDirty): Deleted.

11:02 AM Changeset in webkit [251863] by Alan Coon
  • 2 edits in tags/Safari-609.1.9/Source/WebKit

Cherry-pick r251823. rdar://problem/56762071

REGRESSION(r251568) If we didn't start a Service Worker, don't try talking to it
https://bugs.webkit.org/show_bug.cgi?id=203639
<rdar://problem/56762071>

Reviewed by Chris Dumez.

Similar to the fix that introduced this regression, if the UI process does
not have the entitlement to start a service worker, we should not try
to load with one.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): If the parent process doesn't have a service worker, use the regular load path.

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

10:54 AM Changeset in webkit [251862] by achristensen@apple.com
  • 8 edits in trunk/Source

Remove unneeded HAVE_TIMINGDATAOPTIONS
https://bugs.webkit.org/show_bug.cgi?id=202990

Reviewed by Brady Eidson.

Source/WebCore:

This macro allowed us to adopt CFNetwork SPI, but now that the SPI is available everywhere we support, we don't need it.

  • platform/network/NetworkLoadMetrics.h:
  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::copyTimingData):
(WebCore::setCollectsTimingData): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Source/WTF:

  • wtf/Platform.h:
10:52 AM Changeset in webkit [251861] by achristensen@apple.com
  • 13 edits in trunk/Source

Use SecurityOriginData in NetworkProcess where possible without other changes
https://bugs.webkit.org/show_bug.cgi?id=203615

Reviewed by Brady Eidson.

Source/WebCore:

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::isolatedCopy const):

  • page/SecurityOrigin.h:
  • page/SecurityOriginData.h:

(WebCore::SecurityOriginData::encode const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowFrameAncestors const):

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::urlFromOrigin):
(WebCore::checkFrameAncestors):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrameAncestorOrigins const):

  • page/csp/ContentSecurityPolicyDirectiveList.h:

Source/WebKit:

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::shouldInterruptLoadForXFrameOptions):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

10:52 AM Changeset in webkit [251860] by Alan Coon
  • 3 edits in tags/Safari-609.1.9/Source/WebKit

Cherry-pick r251732. rdar://problem/56696055

REGRESSION (r251413): Nightly build crashes on launch due to -[WKPreferences _setShouldAllowDesignSystemUIFonts:]: unrecognized selector
https://bugs.webkit.org/show_bug.cgi?id=203549

Reviewed by Simon Fraser.

r251413 deleted an SPI that new Safari stopped calling. However,
old Safari continues to call it. The solution is just to add stub
implementations so old Safari doesn't fail to link at runtime.

  • UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _shouldAllowDesignSystemUIFonts]): (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]):
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

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

10:49 AM Changeset in webkit [251859] by achristensen@apple.com
  • 5 edits in trunk

Expose more WKPreferences SPI
https://bugs.webkit.org/show_bug.cgi?id=203631
<rdar://problem/56717160>

Reviewed by Brady Eidson.

Source/WebKit:

I added a unit test for the one that can be easily tested.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setWebAudioEnabled:]):
(-[WKPreferences _webAudioEnabled]):
(-[WKPreferences _setAcceleratedCompositingEnabled:]):
(-[WKPreferences _acceleratedCompositingEnabled]):
(-[WKPreferences _setRequestAnimationFrameEnabled:]):
(-[WKPreferences _requestAnimationFrameEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:

(TEST):

10:39 AM Changeset in webkit [251858] by Wenson Hsieh
  • 2 edits in trunk/Tools

[iOS] imported/mozilla/svg/text/textpath-selection.svg is still flaky
https://bugs.webkit.org/show_bug.cgi?id=203659
<rdar://problem/52124292>

Reviewed by Tim Horton.

This test still fails in some internal test runner configurations, because the iOS text selection grabber dots
sometimes show up in the actual result and not in the expectation. This still happens even after suppressing
UITextSelectionView during ref test snapshotting in r251526, since the selection grabber dots are embedded as
subviews of the text interaction container view, rather than UITextSelectionView itself, so hiding
UITextSelectionView does not affect the visibility of these grabber views (UITextRangeView's -startGrabber and
-endGrabber).

To address this, we augment the change made in r251526 to apply to the start and end grabber views as well.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage):

10:37 AM Changeset in webkit [251857] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add expansion context to Line::Run
https://bugs.webkit.org/show_bug.cgi?id=203683
<rdar://problem/56785012>

Reviewed by Antti Koivisto.

This is in preparation for adding text-align: justify support.
The temporary Line::Run holds the number of expansion opportunities, while Display::Run holds both the expansion behavior and
the final expansion width.
The number of opportunities is used to compute the final expansion width for each run.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::TextContext):
(WebCore::Display::Run::TextContext::setExpansion):
(WebCore::Display::Run::TextContext::expansion const):
(WebCore::Display::Run::TextContext::expansionBehavior const): Deleted.

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::hasExpansionOpportunity const):
(WebCore::Layout::Line::Run::expansionOpportunityCount const):
(WebCore::Layout::Line::Run::expansionBehavior const):
(WebCore::Layout::Line::Run::setHasExpansionOpportunity):
(WebCore::Layout::Line::Run::setComputedHorizontalExpansion):

10:35 AM Changeset in webkit [251856] by yurys@chromium.org
  • 3 edits in trunk/LayoutTests

[GTK] Web Inspector: inspector/timeline/timeline-event-*.html are failing
https://bugs.webkit.org/show_bug.cgi?id=203625

Reviewed by Devin Rousso.

Unflake inspector/timeline/timeline-event-*.html tests on GTK.

  • inspector/timeline/resources/timeline-event-utilities.js: There is a race between CapturingState.Inactive

and SavePageData events, so the test has to wait for both.
Drive-by: wrap promis.reject in a lambda, otherwise reject would be called on an undefined 'this' object.
arrive before resolving the promise.
(TestPage.registerInitializer):

  • platform/gtk/TestExpectations:
10:33 AM Changeset in webkit [251855] by achristensen@apple.com
  • 10 edits in trunk

CMake build should make WebKit framework able to be used by Safari
https://bugs.webkit.org/show_bug.cgi?id=203685

Rubber-stamped by Tim Horton.

.:

  • Source/cmake/OptionsMac.cmake:

Source/JavaScriptCore:

  • PlatformMac.cmake:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKitLegacy:

  • PlatformMac.cmake:

Tools:

  • DumpRenderTree/PlatformMac.cmake:
10:22 AM Changeset in webkit [251854] by beidson@apple.com
  • 3 edits
    1 copy
    2 moves in trunk/Source/WebKit

Rejigger WKWebArchive headers.
https://bugs.webkit.org/show_bug.cgi?id=203648

Reviewed by Andy Estes.

  • Shared/API/c/mac/WKWebArchiveRef.cpp: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.cpp.

(WKWebArchiveGetTypeID):
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):
(WKWebArchiveCopyData):

  • Shared/API/c/mac/WKWebArchiveRef.h: Copied from Source/WebKit/Shared/API/c/mac/WKWebArchive.h.
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebArchive.h: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.h.
  • WebKit.xcodeproj/project.pbxproj:
10:18 AM Changeset in webkit [251853] by yurys@chromium.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CONSOLE ERROR Shown panel style-rules must be visible
https://bugs.webkit.org/show_bug.cgi?id=203377

Reviewed by Devin Rousso.

Fix assertion failure when opening elements panel with hidden details sidebar.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):

  • UserInterface/Views/Sidebar.js:

(WI.Sidebar.prototype.set selectedSidebarPanel): Only call shown() if the Sidebar
is not collapsed. It will anyway be called when the Sidebar is expanded.

9:14 AM Changeset in webkit [251852] by ysuzuki@apple.com
  • 11 edits in trunk/Source

[JSC] DateMath should have TimeClipped version
https://bugs.webkit.org/show_bug.cgi?id=203550

Reviewed by Saam Barati.

Source/JavaScriptCore:

Removing using namespace WTF; in Date related files in JSC.

  • runtime/DateConstructor.cpp:
  • runtime/DateConversion.cpp:

(JSC::formatDateTime):

  • runtime/DateInstance.cpp:
  • runtime/DatePrototype.cpp:
  • runtime/JSDateMath.cpp:

(JSC::localTimeOffset):
(JSC::timeToMS):
(JSC::gregorianDateTimeToMS):
(JSC::msToGregorianDateTime):
(JSC::parseDate):
(JSC::msToSeconds): Deleted.
(JSC::msToWeekDay): Deleted.

Source/WTF:

We found that our Date constructor is slow because GregorianDateTime calculation takes so long.
We are doing many fmod, floating division, floor etc. These operations, in particular fmod, takes
very long time. As a result, 30% of JetStream2/date-format-xparb is taken by fmod function.

But since we are performance timeClip operation, double value in DateInstance is always Int52. We should
have integer version of GregorianDateTime calculation which avoids many unnecessary fmod etc.

While integer division is truncate-to-zero, many Date calculation requires floor(value / xxx). For now,
we use integer fast path only when the value is Int52 and positive.

We see 10~ % improvement in JetStream2/date-format-xparb-SP (from 201 to 239).

  • wtf/DateMath.cpp:

(WTF::isLeapYear): Deleted.
(WTF::daysInYear): Deleted.
(WTF::daysFrom1970ToYear): Deleted.
(WTF::msToDays): Deleted.
(WTF::msToYear): Deleted.
(WTF::dayInYear): Deleted.
(WTF::msToMinutes): Deleted.
(WTF::msToHours): Deleted.
(WTF::monthFromDayInYear): Deleted.
(WTF::checkMonth): Deleted.
(WTF::dayInMonthFromDayInYear): Deleted.
(WTF::dateToDaysFrom1970): Deleted.
(WTF::timeClip): Deleted.

  • wtf/DateMath.h:

(WTF::TimeClippedPositiveMilliseconds::TimeClippedPositiveMilliseconds):
(WTF::TimeClippedPositiveMilliseconds::value const):
(WTF::TimeClippedPositiveMilliseconds::asDouble const):
(WTF::timeClip):
(WTF::daysFrom1970ToYear):
(WTF::daysFrom1970ToYearTimeClippedPositive):
(WTF::isLeapYear):
(WTF::daysInYear):
(WTF::msToDays):
(WTF::dayInYear):
(WTF::dateToDaysFrom1970):
(WTF::msToYear):
(WTF::msToMinutes):
(WTF::msToHours):
(WTF::msToSeconds):
(WTF::msToWeekDay):
(WTF::monthFromDayInYear):
(WTF::dayInMonthFromDayInYear):

  • wtf/GregorianDateTime.cpp:

(WTF::GregorianDateTime::GregorianDateTime):

  • wtf/GregorianDateTime.h:
9:01 AM Changeset in webkit [251851] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Line::Run should not hold a reference to InlineItem
https://bugs.webkit.org/show_bug.cgi?id=203660
<rdar://problem/56770286>

Reviewed by Antti Koivisto.

When Line::Runs are merged ([content][ ] -> [content ]) they end up with multiple InlineItems. Let's cache some values from
the InlineItems instead.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::close):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::layoutBox const):
(WebCore::Layout::Line::Run::isText const):
(WebCore::Layout::Line::Run::isBox const):
(WebCore::Layout::Line::Run::isForcedLineBreak const):
(WebCore::Layout::Line::Run::isContainerStart const):
(WebCore::Layout::Line::Run::isContainerEnd const):
(WebCore::Layout::Line::Run::isCollapsible const):
(WebCore::Layout::Line::Run::isWhitespace const):
(WebCore::Layout::Line::Run::expand):

8:50 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
8:48 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
8:44 AM Changeset in webkit [251850] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, update DerivedSources-output.xcfilelist after r251841

  • DerivedSources-output.xcfilelist: Replace StyleBuilder.cpp with StyleBuilderGenerated.cpp.
8:42 AM Changeset in webkit [251849] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] Limit API tests failures to display in the status-bubble tooltip and buildbot summary
https://bugs.webkit.org/show_bug.cgi?id=203678

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeAPITestsResults): Define NUM_API_FAILURES_TO_DISPLAY as 10.
(AnalyzeAPITestsResults.analyzeResults): Truncate the failure string to contain 10 test failures.

8:40 AM Changeset in webkit [251848] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Do not merge completely collapsed run with the previous run
https://bugs.webkit.org/show_bug.cgi?id=203658
<rdar://problem/56769334>

Reviewed by Antti Koivisto.

When a whitespace run is completely collapsed (and visually empty), we should not try to merge it with previous text runs.
E.g. [before \nafter] -> [before][ ][\n][after] -> [before ][][after] -> [before ][after]

content inline items line runs display runs

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::close):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::hasTrailingCollapsedContent const):
(WebCore::Layout::Line::Run::canBeExtended const): Deleted.

8:24 AM November 2019 Meeting edited by Jon Davis
(diff)
8:23 AM Changeset in webkit [251847] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Add telemetry to test a potential cause of crashes under -[WKContentView _interpretKeyEvent:isCharEvent:]
https://bugs.webkit.org/show_bug.cgi?id=203630
<rdar://problem/56769229>

Reviewed by Simon Fraser.

This iOS-specific crash occurs under -_interpretKeyEvent:isCharEvent:, when we first try to access WebEvent's
properties with event.keyboardFlags. This suggests that between storing the WebEvent in WebPageProxy's
m_keyEventQueue, and later receiving an InterpretKeyEvent sync IPC message in the UI process, something ends up
overreleasing (or otherwise writing over or corrupting) the WebEvent.

However, from code inspection, nothing appears to overrelease the WebEvent; an alternate possibility is that the
API is somehow being invoked from a background thread, which would explain why the WebEvent may sometimes get
destroyed too early.

To try and detect this scenario (and avoid keeping any strong references to WebEvent at all), add an
os_log_fault in case the API is being called on a background thread, and bail immediately.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView handleKeyWebEvent:withCompletionHandler:]):

8:16 AM Changeset in webkit [251846] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Set setIsCollapsed on the line item when its content is actually collapsed
https://bugs.webkit.org/show_bug.cgi?id=203655
<rdar://problem/56767543>

Reviewed by Antti Koivisto.

Do not set the isCollapsed flag on the line run unless we actually collapsed it (changed its length from greated than 1 to 1).

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

8:07 AM Changeset in webkit [251845] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Line::appendTextContent::willCollapseCompletely should check for isCollapsible()
https://bugs.webkit.org/show_bug.cgi?id=203653
<rdar://problem/56766949>

Reviewed by Antti Koivisto.

When deciding whether the current collapsible whitespace run collapses completely, we need to check whether the previous
run is collapsible and not whether it is collapsed (it addresses the cases when the previous whitespace length is 1, so it is collapsible but not
collapsed -> " " followed by '\n' <- no preserved segment break.)

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

7:52 AM Changeset in webkit [251844] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add justify expansion information to Display::Runs
https://bugs.webkit.org/show_bug.cgi?id=203535
<rdar://problem/56689268>

Reviewed by Antti Koivisto.

This is in preparation for supporting text-align: justify.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::TextContext):
(WebCore::Display::Run::TextContext::expansionBehavior const):
(WebCore::Display::Run::TextContext::expansion const):

7:51 AM Changeset in webkit [251843] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Preserved segment breaks should produce ForcedLineBreak type of InlineItems
https://bugs.webkit.org/show_bug.cgi?id=203645
<rdar://problem/56763606>

Reviewed by Antti Koivisto.

This patch turns preserved segment breaks (e.g. \n) into a ForcedLineBreak. Non-preserved segments breaks are treated as whitespace characters.
It fixes a small type mismatch of having an InlineTextItem representing a non-text content (line break).

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectInlineContent):

  • layout/inlineformatting/InlineItem.cpp:

(WebCore::Layout::InlineItem::InlineItem):
(WebCore::Layout::InlineItem::isForcedLineBreak const): Deleted.
(WebCore::Layout::InlineItem::isText const): Deleted.

  • layout/inlineformatting/InlineItem.h:

(WebCore::Layout::InlineItem::isText const):
(WebCore::Layout::InlineItem::isForcedLineBreak const):
(WebCore::Layout::InlineItem::InlineItem): Deleted.

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
(WebCore::Layout::InlineTextItem::isWhitespace const): Deleted.

  • layout/inlineformatting/InlineTextItem.h:

(WebCore::Layout::InlineTextItem::isWhitespace const):

7:39 AM Changeset in webkit [251842] by magomez@igalia.com
  • 6 edits
    5 adds in trunk/LayoutTests

Unreviewed GTK and WPE gardening after r251837.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/svg/geometry/parsing/height-computed-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/geometry/parsing/width-computed-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt: Added.
  • platform/wpe/webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt:
  • platform/wpe/webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt:
  • platform/wpe/webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
7:28 AM Changeset in webkit [251841] by Antti Koivisto
  • 11 edits
    2 moves
    1 add
    1 delete in trunk/Source/WebCore

Rename StyleBuilder to Style::BuilderGenerated
https://bugs.webkit.org/show_bug.cgi?id=203673

Reviewed by Antoine Quint.

Also rename the related StykeBuilderCustom and StyleBuilderConverter classes
and move them to the Style namespace and directory.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFontFace.cpp:

(WebCore::calculateWeightRange):
(WebCore::calculateStretchRange):
(WebCore::calculateItalicRange):

  • css/CSSFontFaceSet.cpp:

(WebCore::computeFontSelectionRequest):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):

  • css/StyleBuilder.h: Removed.
  • css/makeprop.pl:

(getScopeForFunction):
(generateInitialValueSetter):
(generateInheritValueSetter):
(generateValueSetter):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::applyProperty):

  • style/StyleBuilderConverter.h: Renamed from Source/WebCore/css/StyleBuilderConverter.h.

(WebCore::Style::BuilderConverter::convertLength):
(WebCore::Style::BuilderConverter::convertLengthOrAuto):
(WebCore::Style::BuilderConverter::convertLengthSizing):
(WebCore::Style::BuilderConverter::convertLengthMaxSizing):
(WebCore::Style::BuilderConverter::convertTabSize):
(WebCore::Style::BuilderConverter::convertComputedLength):
(WebCore::Style::BuilderConverter::convertLineWidth):
(WebCore::Style::BuilderConverter::convertSpacing):
(WebCore::Style::BuilderConverter::convertToRadiusLength):
(WebCore::Style::BuilderConverter::convertRadius):
(WebCore::Style::BuilderConverter::convertTo100PercentMinusLength):
(WebCore::Style::BuilderConverter::convertPositionComponentX):
(WebCore::Style::BuilderConverter::convertPositionComponentY):
(WebCore::Style::BuilderConverter::convertPositionComponent):
(WebCore::Style::BuilderConverter::convertObjectPosition):
(WebCore::Style::BuilderConverter::convertTextDecoration):
(WebCore::Style::BuilderConverter::convertNumber):
(WebCore::Style::BuilderConverter::convertNumberOrAuto):
(WebCore::Style::BuilderConverter::convertWebkitHyphenateLimitLines):
(WebCore::Style::BuilderConverter::convertBorderImage):
(WebCore::Style::BuilderConverter::convertBorderMask):
(WebCore::Style::BuilderConverter::convertStyleImage):
(WebCore::Style::BuilderConverter::convertTransform):
(WebCore::Style::BuilderConverter::updateColorScheme):
(WebCore::Style::BuilderConverter::convertColorScheme):
(WebCore::Style::BuilderConverter::convertString):
(WebCore::Style::BuilderConverter::convertStringOrAuto):
(WebCore::Style::BuilderConverter::convertStringOrNone):
(WebCore::Style::BuilderConverter::valueToEmphasisPosition):
(WebCore::Style::BuilderConverter::convertTextEmphasisPosition):
(WebCore::Style::BuilderConverter::convertTextAlign):
(WebCore::Style::BuilderConverter::convertClipPath):
(WebCore::Style::BuilderConverter::convertResize):
(WebCore::Style::BuilderConverter::convertMarqueeRepetition):
(WebCore::Style::BuilderConverter::convertMarqueeSpeed):
(WebCore::Style::BuilderConverter::convertQuotes):
(WebCore::Style::BuilderConverter::convertTextUnderlinePosition):
(WebCore::Style::BuilderConverter::convertTextUnderlineOffset):
(WebCore::Style::BuilderConverter::convertTextDecorationThickness):
(WebCore::Style::BuilderConverter::convertReflection):
(WebCore::Style::BuilderConverter::convertInitialLetter):
(WebCore::Style::BuilderConverter::convertTextStrokeWidth):
(WebCore::Style::BuilderConverter::convertLineBoxContain):
(WebCore::Style::BuilderConverter::valueToDecorationSkip):
(WebCore::Style::BuilderConverter::convertTextDecorationSkip):
(WebCore::Style::BuilderConverter::convertShapeValue):
(WebCore::Style::BuilderConverter::convertScrollSnapType):
(WebCore::Style::BuilderConverter::convertScrollSnapAlign):
(WebCore::Style::BuilderConverter::createGridTrackBreadth):
(WebCore::Style::BuilderConverter::createGridTrackSize):
(WebCore::Style::BuilderConverter::createGridTrackList):
(WebCore::Style::BuilderConverter::createGridPosition):
(WebCore::Style::BuilderConverter::createImplicitNamedGridLinesFromGridArea):
(WebCore::Style::BuilderConverter::convertGridTrackSizeList):
(WebCore::Style::BuilderConverter::convertGridTrackSize):
(WebCore::Style::BuilderConverter::convertGridPosition):
(WebCore::Style::BuilderConverter::convertGridAutoFlow):
(WebCore::Style::BuilderConverter::csstoLengthConversionDataWithTextZoomFactor):
(WebCore::Style::BuilderConverter::convertWordSpacing):
(WebCore::Style::BuilderConverter::convertPerspective):
(WebCore::Style::BuilderConverter::convertMarqueeIncrement):
(WebCore::Style::BuilderConverter::convertFilterOperations):
(WebCore::Style::BuilderConverter::convertFontFeatureSettings):
(WebCore::Style::BuilderConverter::convertFontWeightFromValue):
(WebCore::Style::BuilderConverter::convertFontStretchFromValue):
(WebCore::Style::BuilderConverter::convertFontStyleFromValue):
(WebCore::Style::BuilderConverter::convertFontWeight):
(WebCore::Style::BuilderConverter::convertFontStretch):
(WebCore::Style::BuilderConverter::convertFontVariationSettings):
(WebCore::Style::BuilderConverter::convertTouchCallout):
(WebCore::Style::BuilderConverter::convertTapHighlightColor):
(WebCore::Style::BuilderConverter::convertTouchAction):
(WebCore::Style::BuilderConverter::convertOverflowScrolling):
(WebCore::Style::BuilderConverter::convertSVGLengthValue):
(WebCore::Style::BuilderConverter::convertSVGLengthVector):
(WebCore::Style::BuilderConverter::convertStrokeDashArray):
(WebCore::Style::BuilderConverter::convertPaintOrder):
(WebCore::Style::BuilderConverter::convertOpacity):
(WebCore::Style::BuilderConverter::convertSVGURIReference):
(WebCore::Style::BuilderConverter::convertSVGColor):
(WebCore::Style::BuilderConverter::convertSelfOrDefaultAlignmentData):
(WebCore::Style::BuilderConverter::convertContentAlignmentData):
(WebCore::Style::BuilderConverter::convertGlyphOrientation):
(WebCore::Style::BuilderConverter::convertGlyphOrientationOrAuto):
(WebCore::Style::BuilderConverter::convertLineHeight):
(WebCore::Style::BuilderConverter::convertFontSynthesis):
(WebCore::Style::BuilderConverter::convertSpeakAs):
(WebCore::Style::BuilderConverter::convertHangingPunctuation):
(WebCore::Style::BuilderConverter::convertGapLength):

  • style/StyleBuilderCustom.h: Renamed from Source/WebCore/css/StyleBuilderCustom.h.

(WebCore::Style::BuilderCustom::applyInitialWebkitMaskImage):
(WebCore::Style::BuilderCustom::applyInheritWebkitMaskImage):
(WebCore::Style::BuilderCustom::applyInitialFontFeatureSettings):
(WebCore::Style::BuilderCustom::applyInheritFontFeatureSettings):
(WebCore::Style::BuilderCustom::applyInitialFontVariationSettings):
(WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):
(WebCore::Style::BuilderCustom::applyValueDirection):
(WebCore::Style::BuilderCustom::applyInitialTextAlign):
(WebCore::Style::BuilderCustom::applyValueTextAlign):
(WebCore::Style::BuilderCustom::resetEffectiveZoom):
(WebCore::Style::BuilderCustom::applyInitialZoom):
(WebCore::Style::BuilderCustom::applyInheritZoom):
(WebCore::Style::BuilderCustom::applyValueZoom):
(WebCore::Style::BuilderCustom::mmLength):
(WebCore::Style::BuilderCustom::inchLength):
(WebCore::Style::BuilderCustom::getPageSizeFromName):
(WebCore::Style::BuilderCustom::applyValueVerticalAlign):
(WebCore::Style::BuilderCustom::applyInheritImageResolution):
(WebCore::Style::BuilderCustom::applyInitialImageResolution):
(WebCore::Style::BuilderCustom::applyValueImageResolution):
(WebCore::Style::BuilderCustom::applyInheritSize):
(WebCore::Style::BuilderCustom::applyInitialSize):
(WebCore::Style::BuilderCustom::applyValueSize):
(WebCore::Style::BuilderCustom::applyInheritTextIndent):
(WebCore::Style::BuilderCustom::applyInitialTextIndent):
(WebCore::Style::BuilderCustom::applyValueTextIndent):
(WebCore::Style::ApplyPropertyBorderImageModifier::applyInheritValue):
(WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):
(WebCore::Style::ApplyPropertyBorderImageModifier::applyValue):
(WebCore::Style::BuilderCustom::applyInheritLineHeight):
(WebCore::Style::BuilderCustom::applyInitialLineHeight):
(WebCore::Style::BuilderCustom::applyValueLineHeight):
(WebCore::Style::BuilderCustom::applyInheritOutlineStyle):
(WebCore::Style::BuilderCustom::applyInitialOutlineStyle):
(WebCore::Style::BuilderCustom::applyValueOutlineStyle):
(WebCore::Style::BuilderCustom::applyInitialClip):
(WebCore::Style::BuilderCustom::applyInheritClip):
(WebCore::Style::BuilderCustom::applyValueClip):
(WebCore::Style::BuilderCustom::applyValueWebkitLocale):
(WebCore::Style::BuilderCustom::applyValueWritingMode):
(WebCore::Style::BuilderCustom::applyValueWebkitTextOrientation):
(WebCore::Style::BuilderCustom::applyValueWebkitTextSizeAdjust):
(WebCore::Style::BuilderCustom::applyValueWebkitTextZoom):
(WebCore::Style::BuilderCustom::applyValueColorScheme):
(WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):
(WebCore::Style::BuilderCustom::applyInitialTextShadow):
(WebCore::Style::BuilderCustom::applyInheritTextShadow):
(WebCore::Style::BuilderCustom::applyValueTextShadow):
(WebCore::Style::BuilderCustom::applyInitialBoxShadow):
(WebCore::Style::BuilderCustom::applyInheritBoxShadow):
(WebCore::Style::BuilderCustom::applyValueBoxShadow):
(WebCore::Style::BuilderCustom::applyInitialWebkitBoxShadow):
(WebCore::Style::BuilderCustom::applyInheritWebkitBoxShadow):
(WebCore::Style::BuilderCustom::applyValueWebkitBoxShadow):
(WebCore::Style::BuilderCustom::applyInitialFontFamily):
(WebCore::Style::BuilderCustom::applyInheritFontFamily):
(WebCore::Style::BuilderCustom::applyValueFontFamily):
(WebCore::Style::BuilderCustom::isValidDisplayValue):
(WebCore::Style::BuilderCustom::applyInheritDisplay):
(WebCore::Style::BuilderCustom::applyValueDisplay):
(WebCore::Style::BuilderCustom::applyValueBaselineShift):
(WebCore::Style::BuilderCustom::applyInitialWebkitAspectRatio):
(WebCore::Style::BuilderCustom::applyInheritWebkitAspectRatio):
(WebCore::Style::BuilderCustom::applyValueWebkitAspectRatio):
(WebCore::Style::BuilderCustom::applyInitialWebkitTextEmphasisStyle):
(WebCore::Style::BuilderCustom::applyInheritWebkitTextEmphasisStyle):
(WebCore::Style::BuilderCustom::applyValueWebkitTextEmphasisStyle):
(WebCore::Style::BuilderCustom::applyInheritCounter):
(WebCore::Style::BuilderCustom::applyValueCounter):
(WebCore::Style::BuilderCustom::applyInitialCounterIncrement):
(WebCore::Style::BuilderCustom::applyInheritCounterIncrement):
(WebCore::Style::BuilderCustom::applyValueCounterIncrement):
(WebCore::Style::BuilderCustom::applyInitialCounterReset):
(WebCore::Style::BuilderCustom::applyInheritCounterReset):
(WebCore::Style::BuilderCustom::applyValueCounterReset):
(WebCore::Style::BuilderCustom::applyInitialCursor):
(WebCore::Style::BuilderCustom::applyInheritCursor):
(WebCore::Style::BuilderCustom::applyValueCursor):
(WebCore::Style::BuilderCustom::applyInitialFill):
(WebCore::Style::BuilderCustom::applyInheritFill):
(WebCore::Style::BuilderCustom::applyValueFill):
(WebCore::Style::BuilderCustom::applyInitialStroke):
(WebCore::Style::BuilderCustom::applyInheritStroke):
(WebCore::Style::BuilderCustom::applyValueStroke):
(WebCore::Style::BuilderCustom::applyInitialContent):
(WebCore::Style::BuilderCustom::applyInheritContent):
(WebCore::Style::BuilderCustom::applyValueContent):
(WebCore::Style::BuilderCustom::applyInheritFontVariantLigatures):
(WebCore::Style::BuilderCustom::applyInitialFontVariantLigatures):
(WebCore::Style::BuilderCustom::applyValueFontVariantLigatures):
(WebCore::Style::BuilderCustom::applyInheritFontVariantNumeric):
(WebCore::Style::BuilderCustom::applyInitialFontVariantNumeric):
(WebCore::Style::BuilderCustom::applyValueFontVariantNumeric):
(WebCore::Style::BuilderCustom::applyInheritFontVariantEastAsian):
(WebCore::Style::BuilderCustom::applyInitialFontVariantEastAsian):
(WebCore::Style::BuilderCustom::applyValueFontVariantEastAsian):
(WebCore::Style::BuilderCustom::applyInitialFontSize):
(WebCore::Style::BuilderCustom::applyInheritFontSize):
(WebCore::Style::BuilderCustom::largerFontSize):
(WebCore::Style::BuilderCustom::smallerFontSize):
(WebCore::Style::BuilderCustom::determineRubyTextSizeMultiplier):
(WebCore::Style::BuilderCustom::applyInitialFontStyle):
(WebCore::Style::BuilderCustom::applyInheritFontStyle):
(WebCore::Style::BuilderCustom::applyValueFontStyle):
(WebCore::Style::BuilderCustom::applyValueFontSize):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyValueGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyValueGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):
(WebCore::Style::BuilderCustom::applyValueGridTemplateRows):
(WebCore::Style::BuilderCustom::applyValueAlt):
(WebCore::Style::BuilderCustom::applyValueWillChange):
(WebCore::Style::BuilderCustom::applyValueStrokeWidth):
(WebCore::Style::BuilderCustom::applyValueStrokeColor):
(WebCore::Style::BuilderCustom::applyInitialCustomProperty):
(WebCore::Style::BuilderCustom::applyInheritCustomProperty):
(WebCore::Style::BuilderCustom::applyValueCustomProperty):

  • style/StyleBuilderGenerated.h: Added.
5:43 AM Changeset in webkit [251840] by commit-queue@webkit.org
  • 14 edits in trunk

[Web Animations] Add support for AnimationEvent.pseudoElement
https://bugs.webkit.org/show_bug.cgi?id=203671

Patch by Antoine Quint <Antoine Quint> on 2019-10-31
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-animations/animationevent-interface-expected.txt:
  • web-platform-tests/css/css-animations/animationevent-pseudoelement-expected.txt:
  • web-platform-tests/css/css-animations/animationevent-types-expected.txt:
  • web-platform-tests/css/css-animations/idlharness-expected.txt:

Source/WebCore:

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):
(WebCore::AnimationEvent::pseudoElement const):

  • dom/AnimationEvent.h:
  • dom/AnimationEvent.idl:
  • dom/WebKitAnimationEvent.cpp:

(WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
(WebCore::WebKitAnimationEvent::pseudoElement const):

  • dom/WebKitAnimationEvent.h:
  • dom/WebKitAnimationEvent.idl:
  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):

5:42 AM Changeset in webkit [251839] by commit-queue@webkit.org
  • 4 edits in trunk

[Web Animations] transform property is always "none" for getKeyframes() output of a CSS Animation
https://bugs.webkit.org/show_bug.cgi?id=203669

Patch by Antoine Quint <Antoine Quint> on 2019-10-31
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark a progression, although the test still fails overall, it fails in a better way.

  • web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:

Source/WebCore:

Calling valueForPropertyInStyle() with CSSPropertyTransform will eventually call into computedTransform()
which requires a renderer. Note that right now we're returning the computed style instead of the parsed
style, this will be addressed in a separate patch.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::getKeyframes):

5:01 AM Changeset in webkit [251838] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r251772.

Caused lots of media related tests to timeout

Reverted changeset:

"REGRESSION(r249428): [GStreamer] VP9 video rendered green"
https://bugs.webkit.org/show_bug.cgi?id=201422
https://trac.webkit.org/changeset/251772

2:31 AM Changeset in webkit [251837] by magomez@igalia.com
  • 4 edits in trunk/Source

[CoordGraphics] Avoid painting backing stores for zero-opacity layers
https://bugs.webkit.org/show_bug.cgi?id=184143

Reviewed by Žan Doberšek.

Source/WebCore:

Skip generating backing stores for layers that have zero opacity and do
not animate the opacity value. In the current CoordinatedGraphics system
this can end up saving loads of memory on Web content that deploys a
large number of such elements.

Based on a previous patch from Žan Doberšek.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):

Source/WebKit:

Do not check whether a backingStore is required by a layer inside CoordinatedGraphicsScene. This
decision is made by the appropriate CoordinatedGraphicsLayer and propagated to the scene by
sending a valid or null Nicosia::BackingStore instance through the state.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::updateBackingStore):
(WebKit::layerShouldHaveBackingStore): Deleted.

2:01 AM Changeset in webkit [251836] by Carlos Garcia Campos
  • 13 edits in trunk/Source/WebCore

[GTK][WPE] ImageDecoders: use SharedBuffer::DataSegment instead of SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=202807

Reviewed by Adrian Perez de Castro.

Because SharedBuffer::DataSegment is ThreadSafeRefCounted.

  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::setData):
(WebCore::BMPImageDecoder::decodeHelper):

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/bmp/BMPImageReader.h:

(WebCore::BMPImageReader::readUint16):
(WebCore::BMPImageReader::readUint32):
(WebCore::BMPImageReader::setData):
(WebCore::BMPImageReader::readUint16 const):
(WebCore::BMPImageReader::readUint32 const):

  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::setData):
(WebCore::GIFImageDecoder::decode):

  • platform/image-decoders/gif/GIFImageReader.h:

(GIFImageReader::setData):

  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::setData):
(WebCore::ICOImageDecoder::decodeAtIndex):

  • platform/image-decoders/ico/ICOImageDecoder.h:
  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::JPEGImageReader::decode):

  • platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:

(WebCore::JPEG2000ImageDecoder::decode):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageReader::decode):

  • platform/image-decoders/webp/WEBPImageDecoder.cpp:

(WebCore::WEBPImageDecoder::decode):

1:00 AM Changeset in webkit [251835] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy/win

Windows build fix attempt after r251798.

  • AccessibleBase.cpp:

(AccessibleBase::get_accParent):
(AccessibleBase::getAccessibilityObjectForChild const):

Note: See TracTimeline for information about the timeline view.