Timeline



Dec 21, 2019:

8:19 PM Changeset in webkit [253868] by BJ Burg
  • 44 edits
    4 copies
    5 adds in trunk/Source

Web Inspector: add InspectedTargetTypes diagnostic event and related hooks
https://bugs.webkit.org/show_bug.cgi?id=205174
<rdar://problem/57887953>

Reviewed by Devin Rousso.

Source/WebCore:

Expose debuggable information via InspectorFrontendHost.

  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • inspector/InspectorFrontendClient.h: Add new methods.
  • testing/Internals.cpp: Implement new methods.
  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::debuggableTypeToString):
(WebCore::InspectorFrontendHost::debuggableInfo const):
(WebCore::InspectorFrontendHost::debuggableType): Deleted.
Expose a DebuggableInfo dictionary via the .debuggableInfo getter.

Source/WebInspectorUI:

This change adds a new diagnostic recorder that reports information about
inspected targets and their type / version information.

  • UserInterface/Base/DebuggableType.js:

(WI.DebuggableType.fromString):
Move the static parsing factory method to DebuggableType class.

  • UserInterface/Main.html: Add new files.
  • UserInterface/Base/Main.js:

(WI.contentLoaded): Add new diagnostic recorder.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype.activateDomain):
Adapt to InspectorFrontendHost changes.

  • UserInterface/Test/TestAppController.js:

(WI.TestAppController):

  • UserInterface/Controllers/AppController.js:

(WI.AppController):
Adapt to InspectorFrontendHost changes.

Source/WebKit:

This change supplies Web Inspector with information about the debuggable that
it is connected to. This is used for diagnostics and to customize the UI based
on the target type being inspected.

For remote Web Inspector, WebKit clients can populate an instance of
_WKInspectorDebuggableInfo and use it when calling into
-[_WKRemoteWebInspectorViewController loadForDebuggable:backendCommandsURL:].

For local Web Inspector, WebInspectorProxy fills in information for the local
debuggable by consulting SystemVersion.plist (on Mac port).

The new enum _WKInspectorDebuggableType replaces _WKRemoteWebInspectorDebuggableType.
Its WebCore equivalent is Inspector::DebuggableType. The type and other information
are carried around in a _WKInspectorDebuggableInfo class. The equivalents for this
class are API::DebuggableInfo and DebuggableInfoData (for sending over IPC).

The DebuggableInfoData is sent as part of the initial message from UIProcess
to an Inspector WebProcess, similar to how a debuggableType string was sent before.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Add new files.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Add new object type.

  • Shared/WebCoreArgumentCoders.h: Add EnumTraits for Inspector::DebuggableType.
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(legacyDebuggableTypeToModernDebuggableType):
(-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]):
(-[_WKRemoteWebInspectorViewController loadForDebuggable:backendCommandsURL:]):
(debuggableTypeString): Deleted.
Use the new enum in a new method that clients can switch over to. The old method
can be removed when it is no longer being used.

  • UIProcess/RemoteWebInspectorProxy.h:
  • UIProcess/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::RemoteWebInspectorProxy):
(WebKit::RemoteWebInspectorProxy::load):
(WebKit::RemoteWebInspectorProxy::reopen):
Send DebuggableInfoData struct to RemoteWebInspectorUI.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorProxy::infoForLocalDebuggable):
Send DebuggableInfoData struct to WebInspectorUI.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::systemVersionPlist):
(WebKit::WebInspectorProxy::infoForLocalDebuggable):
Add Mac implementation for local debuggables.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::infoForLocalDebuggable):

  • UIProcess/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::infoForLocalDebuggable):

  • UIProcess/wpe/WebInspectorProxyWPE.cpp:

(WebKit::WebInspectorProxy::infoForLocalDebuggable):
Add stubs for other platforms.

  • UIProcess/glib/RemoteInspectorClient.cpp:
  • UIProcess/socket/RemoteInspectorClient.h:
  • UIProcess/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::inspect):
(WebKit::debuggableTypeToString):
(WebKit::RemoteInspectorClient::setTargetList):
Use Inspector::DebuggableType instead of String for debuggable type.

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

(WebKit::RemoteWebInspectorUI::initialize):
(WebKit::RemoteWebInspectorUI::debuggableType const):
(WebKit::RemoteWebInspectorUI::targetPlatformName const):
(WebKit::RemoteWebInspectorUI::targetBuildVersion const):
(WebKit::RemoteWebInspectorUI::targetProductVersion const):
(WebKit::RemoteWebInspectorUI::targetIsSimulator const):
Implement new methods needed by InspectorFrontendClient / InspectorFrontendHost.

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

(WebKit::WebInspectorUI::establishConnection):
(WebKit::WebInspectorUI::targetPlatformName const):
(WebKit::WebInspectorUI::targetBuildVersion const):
(WebKit::WebInspectorUI::targetProductVersion const):
Implement new methods needed by InspectorFrontendClient / InspectorFrontendHost.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebInspectorClient.h:
7:12 PM Changeset in webkit [253867] by ysuzuki@apple.com
  • 93 edits
    2 adds in trunk

[JSC] Improve our bound function implementation
https://bugs.webkit.org/show_bug.cgi?id=205327

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/function-bind-no-inlining-repeat-call.js: Added.

(assert):
(test):
(test2):
(foo):
(let.start.Date.now):

  • stress/bind-args.js: Added.

(shouldBe):
(test):
(test2):

Source/JavaScriptCore:

This patch improves Function#bind, and calling bound function with bound arguments.

  1. Rename CallFrameSlot::argumentCount to CallFrameSlot::argumentCountIncludingThis.
  2. Do not include name in NativeExecutable for JSBoundFunction. Putting name in NativeExecutable is assuming that function + name pair is almost identical. This is true in host functions except for JSBoundFunction. JSBoundFunction should hold its name in JSBoundFunction.
  3. Cache NativeExecutable for JSBoundFunction in the VM. We use a hash-map in JITThunk for NativeExecutables because we assume that host-function creation cannot be done by the user program: each executable is pre-defined to exactly one object by the environment, and there is no way to create host-functions repeatedly from the user-program. The only exception to this is JSBoundFunction so caching it on the VM avoids the hash-map lookup. This is not true for JSBoundFunction.
  4. ThunkGenerator should support JSBoundFunction call with bound arguments. It turns out that Speedometer2/React-Redux-TodoMVC is using bound function with bound arguments. Additionally, it is used. This is really bad: when dispatching an event, we first call this function from C++, entering JS world, going back to C++ world again, and entering JS world to call bound function again. By using ThunkGenerator, we can eliminate this back and forth by directly calling the bound JS Executable from the thunk. Previously, bound arguments are stored in JSArray. But it is difficult to access them from thunk since we need to consider have-a-bad-time case. Instead, we use JSImmutableButterfly to save bound arguments so that JIT thunk can quickly access arguments. To capture arguments as JSImmutableButterfly in JS world, we introduce op_create_arguments_butterfly, and handle it in all tiers.
  5. It turns out that eager materialization of "length" in JSBoundFunction takes long time while it is rarely used. This patch makes length lazily reified for JSBoundFunction.
  6. To make Function.prototype.bind faster, we track whether "name" and "length" properties of JSFunction is modified or not. This skips has-own-length-property check, which makes Function.prototype.bind 11~% faster.

Combining things above, creation of JSBoundFunction is 80~% faster. And calling bound function with bound arguments is 3~x faster.
This improves Speedometer2/React-TodoMVC by ~3%.

  • builtins/FunctionPrototype.js:

(bind):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/AccessCaseSnippetParams.cpp:

(JSC::SlowPathCallGeneratorWithArguments::generateImpl):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/VirtualRegister.cpp:

(JSC::VirtualRegister::dump const):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCreateArgumentsButterfly):

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

(JSC::BytecodeIntrinsicNode::emit_intrinsic_createArgumentsButterfly):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::argumentsInvolveStackSlot):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::flushImpl):
(JSC::DFG::ByteCodeParser::handleVarargsInlining):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::emitStoreCallSiteIndex):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::emitRestoreArguments):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::OSRExit::emitRestoreArguments):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateArgumentsButterfly):
(JSC::DFG::SpeculativeJIT::compileGetArgumentCountIncludingThis):
(JSC::DFG::SpeculativeJIT::compileSetArgumentCountIncludingThis):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateArgumentsButterfly):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArgumentCountIncludingThis):
(JSC::FTL::DFG::LowerDFGToB3::compileSetArgumentCountIncludingThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsLength):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::callSiteAsRawBits const):
(JSC::CallFrame::unsafeCallSiteAsRawBits const):
(JSC::CallFrame::setCurrentVPC):

  • interpreter/CallFrame.h:

(JSC::CallFrame::argumentCountIncludingThis const):
(JSC::CallFrame::setArgumentCountIncludingThis):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertArgumentCountSane):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::argumentCount):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::dump const):
(JSC::CallFrameShuffler::prepareForTailCall):
(JSC::CallFrameShuffler::prepareAny):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::compileWithoutLinking):

  • jit/JITCall.cpp:

(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::updateTopCallFrame):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_argument_count):
(JSC::JIT::emit_op_get_rest_length):
(JSC::JIT::emit_op_get_argument):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):

  • jit/ThunkGenerators.cpp:

(JSC::arityFixupGenerator):
(JSC::boundFunctionCallGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator): Deleted.

  • jit/ThunkGenerators.h:
  • jsc.cpp:
  • llint/LLIntData.cpp:

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

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • llint/WebAssembly.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/ExecutableBase.h:
  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::FunctionRareData):

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

(JSC::IntlCollatorPrototypeGetterCompare):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototypeGetterFormat):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototypeGetterFormat):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/JSBoundFunction.cpp:

(JSC::boundThisNoArgsFunctionCall):
(JSC::boundFunctionCall):
(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::JSBoundFunction):
(JSC::JSBoundFunction::boundArgsCopy):
(JSC::JSBoundFunction::visitChildren):

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

(JSC::JSFunction::finishCreation):
(JSC::JSFunction::name):
(JSC::JSFunction::getOwnPropertySlot):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::deleteProperty):
(JSC::JSFunction::defineOwnProperty):
(JSC::JSFunction::reifyLength):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyLazyPropertyForHostOrBuiltinIfNeeded):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):

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

(JSC::JSFunction::areNameAndLengthOriginal):

  • runtime/JSGlobalObject.cpp:

(JSC::makeBoundFunction):
(JSC::hasOwnLengthProperty):

  • runtime/JSObject.h:

(JSC::getJSFunction):
(JSC::getCallData): Deleted.
(JSC::getConstructData): Deleted.

  • runtime/JSObjectInlines.h:

(JSC::getCallData):
(JSC::getConstructData):

  • runtime/VM.cpp:

(JSC::thunkGeneratorForIntrinsic):
(JSC::VM::getBoundFunction):

  • runtime/VM.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

Tools:

Support running slow-microbenchmarks.

  • Scripts/run-jsc-benchmarks:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • inspector/runtime/getDisplayableProperties-expected.txt:
  • inspector/runtime/getProperties-expected.txt:
7:09 PM Changeset in webkit [253866] by eric.carlson@apple.com
  • 8 edits
    1 add in trunk/Source/WebKit

[Media in GPU process] Add remote media player configuration
https://bugs.webkit.org/show_bug.cgi?id=205541
<rdar://problem/58137418>

Reviewed by Simon Fraser.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReferrer const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerUserAgent const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const):
(WebKit::RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideo const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerLogIdentifier):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

4:43 PM Changeset in webkit [253865] by Darin Adler
  • 31 edits in trunk/Source/JavaScriptCore

Make JSString values from literals in a single consistent style
https://bugs.webkit.org/show_bug.cgi?id=205517

Reviewed by Saam Barati.

Some call sites did it like this:

jsNontrivialString(vm, "literal"_s)

Others did it one of these:

jsString(vm, "literal")
jsNontrivialString(vm, "literal")

Changed all the call sites to do it the first, *slightly* more efficient, way.

  • runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):

  • runtime/AsyncFunctionPrototype.cpp:

(JSC::AsyncFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorFunctionPrototype.cpp:

(JSC::AsyncGeneratorFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorPrototype.cpp:

(JSC::AsyncGeneratorPrototype::finishCreation):

  • runtime/BigIntPrototype.cpp:

(JSC::BigIntPrototype::finishCreation):

  • runtime/GeneratorFunctionPrototype.cpp:

(JSC::GeneratorFunctionPrototype::finishCreation):

  • runtime/GeneratorPrototype.cpp:

(JSC::GeneratorPrototype::finishCreation):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototype::finishCreation):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::formatToParts):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::formatToParts):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::finishCreation):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::finishCreation):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::finishCreation):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::finishCreation):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewProtoGetterFuncToStringTag):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoGetterSource):

  • runtime/RegExpStringIteratorPrototype.cpp:

(JSC::RegExpStringIteratorPrototype::finishCreation):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

  • runtime/StringIteratorPrototype.cpp:

(JSC::StringIteratorPrototype::finishCreation):

  • runtime/SymbolPrototype.cpp:

(JSC::SymbolPrototype::finishCreation):

  • runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation):

  • runtime/WeakObjectRefPrototype.cpp:

(JSC::WeakObjectRefPrototype::finishCreation):

  • runtime/WeakSetPrototype.cpp:

(JSC::WeakSetPrototype::finishCreation):
Call jsNontrivialString instead of jsString and use the _s suffix.

9:18 AM Changeset in webkit [253864] by Antti Koivisto
  • 5 edits in trunk/Source

Move Vector HashTraits to HashTraits.h to fix GCC build
https://bugs.webkit.org/show_bug.cgi?id=205540

Reviewed by Zalan Bujtas.

Source/WebCore:

  • contentextensions/DFAMinimizer.cpp:

ActionKey HashTrait claims that emptyValueIsZero. Now with Vector HashTrait having emptyValueIsZero too
HashMap<ActionKey, Vector<>> started taking the optimized path.

However ActionKey empty value wasn't actually zero because Empty enum value wasn't 0.

Source/WTF:

GCC is stricter than LLVM with partial specializations

Error: partial specialization of struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >
after instantiation of struct WTF::HashTraits<WTF::Vector<WTF::String> >

  • wtf/HashTraits.h:
  • wtf/VectorHash.h:
6:58 AM Changeset in webkit [253863] by Kate Cheney
  • 19 edits in trunk

Add timeStamp to ITP database
https://bugs.webkit.org/show_bug.cgi?id=205121
<rdar://problem/57633021>

Reviewed by John Wilander.

Source/WebCore:

  • loader/ResourceLoadStatistics.h:

Source/WebKit:

This patch adds support for collecting most-recently-updated
timestamps for third-party/first-party domain pairs in the ITP database.
It updates the timestamp when new statistics are merged into the
database. It then exposes the timestamp via the
_getResourceLoadStatisticsDataSummary API.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
Changed INSERT OR IGNORE queries to be INSERT OR REPLACE so the timestamp
will be replaced upon a new attempted insert into one of the
third-party/first-party relationship tables.
ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList now
checks for the keyword "REPLACE" to know if another bind is needed
to update the timestamp.

(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentlyUpdatedTimestamp):
Queries the most recent time that the third party has appeared as a
subframe or subresource under the first party or redirected to the first party.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::ThirdPartyDataForSpecificFirstParty::toString const):
Updated the toString to check if the timestamp occured in the last
24 hours for testing purposes. It doesn't print the specific time
because it would change for every run and could not be tested.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _setUseITPDatabase:completionHandler:]):
Added new function that enables the ITP Database backend so the
timestamp parameter can be tested in in TestWebKitAPI.

  • UIProcess/API/APIResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm:

(-[_WKResourceLoadStatisticsFirstParty timeLastUpdated]):
Added the new timestamp parameter to the _WKResourceLoadStatisticsFirstParty.mm
class and its wrapper to be sent via API call.

Tools:

Added checks to test that the timestamp is properly exposed via API
in the ITP database backend. This also adds an API test case using the
ITP database store. It was previously only testing the ITP memory store.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

LayoutTests:

This patch updates test expectations which call
dumpResourceLoadStatistics to reflect the new timestamp parameter that
is now printed with the ITP data summary.

  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-database-expected.txt:
  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
1:49 AM Changeset in webkit [253862] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Remove m_globalObject field from JSFunction
https://bugs.webkit.org/show_bug.cgi?id=205533

Reviewed by Mark Lam.

JSFunction::m_globalObject is used only when it is using NativeExecutable.
And when using NativeExecutable, JSCallee::m_scope is always pointing JSGlobalObject.
This patch removes JSFunction::m_globalObject field.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):

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

(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::JSFunction):

  • runtime/JSFunction.h:

(JSC::JSFunction::offsetOfGlobalObject): Deleted.
(JSC::JSFunction::globalObject const): Deleted.

  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::JSFunction):

Dec 20, 2019:

11:35 PM Changeset in webkit [253861] by eric.carlson@apple.com
  • 20 edits
    1 add in trunk/Source

[Media in GPU process] Get audio playing
https://bugs.webkit.org/show_bug.cgi?id=205511
<rdar://problem/58120354>

Reviewed by Jer Noble.

Source/WebCore:

Tested manually with a modified sandbox because it isn't possible to load media
in the GPU process yet.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::bufferedTimeRangesChanged):
(WebCore::MediaPlayer::seekableTimeRangesChanged):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/PlatformTimeRanges.cpp:

(WebCore::PlatformTimeRanges::PlatformTimeRanges):
(WebCore::PlatformTimeRanges::clear):

  • platform/graphics/PlatformTimeRanges.h:

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::maximumDurationToCacheMediaTime const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
6:09 PM Changeset in webkit [253860] by rniwa@webkit.org
  • 4 edits in trunk

TextManipulationController should respect new token orders
https://bugs.webkit.org/show_bug.cgi?id=205378

Reviewed by Wenson Hsieh.

Source/WebCore:

Updated TextManipulationController::replace to remove all existing content and insert new tokens in the order they appear.

To do this, we first find the common ancestor of all nodes in the paragraph and then remove all nodes in between.

Then we'd insert the node identified by the token identifier and all its ancestors at where they appear. In the case
the same token is used for the second time, we clone its node. For each leaf node, we find the closest ancestor which
had already been inserted by the previous token, and append the leaf node along with its ancestors to it.

I'm expecting to make a lot of refinements & followups to this algorithm in the future but this seems to get basics done.

Tests: TextManipulation.CompleteTextManipulationReplaceSimpleSingleParagraph

TextManipulation.CompleteTextManipulationDisgardsTokens
TextManipulation.CompleteTextManipulationReordersContent
TextManipulation.CompleteTextManipulationCanSplitContent
TextManipulation.CompleteTextManipulationCanMergeContent
TextManipulation.CompleteTextManipulationFailWhenContentIsRemoved
TextManipulation.CompleteTextManipulationFailWhenExcludedContentAppearsMoreThanOnce
TextManipulation.CompleteTextManipulationPreservesExcludedContent

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::didCreateRendererForElement):
(WebCore::TextManipulationController::completeManipulation):
(WebCore::TextManipulationController::replace):

Tools:

Added a bunch of tests for WKTextManipulation.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TextManipulation.CompleteTextManipulationReplaceSimpleSingleParagraph):
(TextManipulation.CompleteTextManipulationDisgardsTokens):
(TextManipulation.CompleteTextManipulationReordersContent):
(TextManipulation.CompleteTextManipulationCanSplitContent):
(TextManipulation.CompleteTextManipulationCanMergeContent):
(TextManipulation.CompleteTextManipulationFailWhenContentIsRemoved):
(TextManipulation.CompleteTextManipulationFailWhenExcludedContentAppearsMoreThanOnce):
(TextManipulation.CompleteTextManipulationPreservesExcludedContent):

5:52 PM Changeset in webkit [253859] by Nikita Vasilyev
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Gradient editor: opacity slider is too close to the right edge of the popover
https://bugs.webkit.org/show_bug.cgi?id=203643
<rdar://problem/56762879>

Reviewed by Devin Rousso.

Replace absolute positioning in the color picker with static layout.

  • UserInterface/Views/ColorPicker.css:

(.color-picker .wrapper):
(.color-picker :matches(.color-square, .slider)):
(.color-picker .slider):
(.color-picker .hue):
(@media (color-gamut: p3) .color-picker.gamut-p3 > .hue):
(.color-picker > .color-inputs):
(.color-picker > .color-inputs > div):
(.color-picker > .color-inputs > div:not([hidden]) + div):
The 1st visible div should have no left margin even if it's preceded by a hidden div.

  • UserInterface/Views/ColorPicker.js:

(WI.ColorPicker):
(WI.ColorPicker.prototype._updateOpacitySlider):

  • UserInterface/Views/GradientEditor.css:

(.gradient-editor.editing-color):
(.gradient-editor > .color-picker .slider):

  • UserInterface/Views/GradientEditor.js:

(WI.GradientEditor):

  • UserInterface/Views/Slider.css:

(.slider):
(.slider > img):
(body[dir=ltr] .slider > img):
(body[dir=rtl] .slider > img):

  • UserInterface/Views/Slider.js:

(WI.Slider):
(WI.Slider.prototype.set value):
(WI.Slider.prototype.set knobY):
(WI.Slider.prototype.get maxY):
(WI.Slider.prototype.recalculateKnobY):
(WI.Slider.prototype._handleMousedown):
(WI.Slider.prototype._handleMousemove):

  • UserInterface/Views/Variables.css:

(:root):
Convert WI.Slider to be vertical by default. WI.Slider used to define a hozirontal slider.
It is only used by the color picker, where it's vertical. The slider was rotated with CSS
transformation. This made it problematic to use in the static layout.

5:49 PM Changeset in webkit [253858] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r253807): crash in storage/indexeddb/modern/opendatabase-request-private.html
https://bugs.webkit.org/show_bug.cgi?id=205515

Reviewed by Alex Christensen.

When m_openRequests of IDBTransaction is empty, we expect all requests associated with the transactions should
be completed, but in IDBOpenDBRequest, we removed the request from m_openRequests before
m_currentlyCompletingRequest finished. This is because the order of calling ActiveDOMObject::stop() is random.

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::cancelForStop):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBTransaction::connectionClosedFromServer):

5:33 PM Changeset in webkit [253857] by Megan Gardner
  • 12 edits
    13 adds in trunk

Paint highlights specified in CSS Highlight API
https://bugs.webkit.org/show_bug.cgi?id=205318

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-highlight-api/highlight-text-across-elements-expected.html: Added.
  • web-platform-tests/css/css-highlight-api/highlight-text-across-elements.html: Added.
  • web-platform-tests/css/css-highlight-api/highlight-text-expected.html: Added.
  • web-platform-tests/css/css-highlight-api/highlight-text.html: Added.

Source/WebCore:

Render highlights when present, similar to the way we render selection.

Tests: imported/w3c/web-platform-tests/css/css-highlight-api/highlight-text-across-elements.html

imported/w3c/web-platform-tests/css/css-highlight-api/highlight-text.html

  • Modules/highlight/HighlightMap.h:

(WebCore::HighlightMap::map const):

Add a getter for the internal HashMap.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::selectionState):
(WebCore::InlineTextBox::verifySelectionState const):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::clampedStartEndForState const):
(WebCore::InlineTextBox::selectionStartEnd const):
(WebCore::InlineTextBox::highlightStartEnd const):
(WebCore::InlineTextBox::resolveStyleForMarkedText):

Use the highlight name from the HighlightRangeGroup to obtain the style from the renderer.

(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):

Render the highlights when painting text. Determine if a highlight is present in the current RenderObject, and
add additional MarkedText to be rendered when painting

  • rendering/InlineTextBox.h:
  • rendering/MarkedText.cpp:

(WebCore::subdivide):

  • rendering/MarkedText.h:

(WebCore::MarkedText::operator== const):

Expand MarkedText to take a style name.

  • rendering/SelectionRangeData.cpp:

(WebCore::SelectionRangeData::setContext):
(WebCore::SelectionRangeData::selectionStateForRenderer):
(WebCore::SelectionRangeData::set):

  • rendering/SelectionRangeData.h:

Leverage SelectionRangeData for highlights.

Tools:

Expand MarkedText to take a style name.

  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp:

(WebCore::operator<<):

5:13 PM Changeset in webkit [253856] by Chris Dumez
  • 4 edits
    1 delete in trunk

[iOS Debug] imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=205506
<rdar://problem/58118091>

Reviewed by Darin Adler.

Source/WebCore:

Drop iOS specific hack in FrameLoader::checkCompleted() that was causing this crash in iOS Debug.
This hack was added a long time ago to fix back/forward navigation after clicking an intra PDF
document hyperlink. I have verified on iOS 13 that the behavior is unchanged without this code:

  • Back/forward navigation within a PDF work in UIWebView and do not work in WKWebView

No new tests, unskipped existing test.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkCompleted):

LayoutTests:

  • platform/ios-wk2/TestExpectations:

Remove Crash expectation for this test in iOS Debug.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt: Removed.

Drop iOS-specific baseline now that the behavior is consistent across platforms.

5:04 PM Changeset in webkit [253855] by Chris Dumez
  • 5 edits in trunk

[Bindings] Add @@toStringTag to our iterator prototype object
https://bugs.webkit.org/show_bug.cgi?id=205516

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/WebIDL/ecmascript-binding/default-iterator-object-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/iterator-prototype-object-expected.txt:

Source/WebCore:

Add @@ toStringTag to our iterator prototype object, as per:

No new tests, rebaselined existing tests.

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorTraits>::finishCreation):

4:05 PM Changeset in webkit [253854] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Memory usage statistics should be attainable without WebCore
https://bugs.webkit.org/show_bug.cgi?id=205366

Reviewed by Keith Miller.

  • API/JSBase.cpp:

(JSGetMemoryUsageStatistics):

  • API/JSBasePrivate.h:

Add a private JSC API exposing the same Heap stats as WebCore's PerformanceLogging::memoryUsageStatistics.

3:51 PM Changeset in webkit [253853] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Enable HDR Media Capabilities by default
https://bugs.webkit.org/show_bug.cgi?id=205518
<rdar://problem/57674289>

Reviewed by Eric Carlson.

  • Shared/WebPreferences.yaml:
3:43 PM Changeset in webkit [253852] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

MediaKeySession.load() fails
https://bugs.webkit.org/show_bug.cgi?id=205467

Reviewed by Eric Carlson.

Invert the storageURL condition in load().

Drive-by fix: ask the group for it's sessionID, not the session, if it exists.

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):

3:30 PM Changeset in webkit [253851] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Add some missing skips in LayoutTests/gpu-process/TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=205523

Patch by Peng Liu <Peng Liu> on 2019-12-20
Reviewed by Eric Carlson.

  • gpu-process/TestExpectations:
3:24 PM Changeset in webkit [253850] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Clean up and generalize some interaction additions
https://bugs.webkit.org/show_bug.cgi?id=205430

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):

3:21 PM Changeset in webkit [253849] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit

Expose approximate caret extents for the hit line via InteractionInformationAtPosition
https://bugs.webkit.org/show_bug.cgi?id=205526
<rdar://problem/57983076>

Reviewed by Dean Jackson.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::positionInformation):
Compute and expose the union of first and last caret rects on the line.

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

  • Shared/ios/InteractionInformationRequest.cpp:

(WebKit::InteractionInformationRequest::encode const):
(WebKit::InteractionInformationRequest::decode):
(WebKit::InteractionInformationRequest::isValidForRequest):

  • Shared/ios/InteractionInformationRequest.h:

Also, add a bit so that we can only fetch this data when needed.

3:15 PM Changeset in webkit [253848] by Brent Fulgham
  • 5 edits in trunk

Remove access to 'com.apple.cfprefsd.agent' from the macOS sandbox
https://bugs.webkit.org/show_bug.cgi?id=205478
<rdar://problem/57915066>

Reviewed by Darin Adler.

Source/WebKit:

Telemetry and thorough testing has confirmed that we do not need access to this
mach service, and so should remove it.

Tested by fast/sandboxing/mac

  • WebProcess/com.apple.WebProcess.sb.in:

LayoutTests:

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:
2:59 PM Changeset in webkit [253847] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

sendBeacon on Safari 13 seeing high failure rates
https://bugs.webkit.org/show_bug.cgi?id=204665
<rdar://problem/57522622>

Reviewed by Darin Adler.

Revert r245344 to try and reduce our failure rate for Beacon. This is the only change
to our Beacon implementation that I am aware we made in Safari 13. Using a lower priority
for Beacon makes it more likely that the Beacon load is still pending when the network
process exits, which would interrupt the Beacon.

Since we're trying to convince developers to move away from synchronous XHR and to using
the Beacon API intead, it is important that our Beacon API be as reliable as possible.

  • Modules/beacon/NavigatorBeacon.cpp:

(WebCore::NavigatorBeacon::sendBeacon):

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

2:52 PM Changeset in webkit [253846] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Update TestExpectatipons for media/track/track-in-band-cues-added-once.html
https://bugs.webkit.org/show_bug.cgi?id=142152

The test no longer times out on bots or in local testing. It is still a flaky failure.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:30 PM Changeset in webkit [253845] by Jonathan Bedard
  • 2 edits in trunk/Tools

lldbwebkittester: Strip CLANG_DEBUG_INFORMATION_LEVEL option while building
https://bugs.webkit.org/show_bug.cgi?id=205513

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitdirs.pm:

(buildXCodeProject): Strip CLANG_DEBUG_INFORMATION_LEVEL from lldbWebKitTester.

1:51 PM Changeset in webkit [253844] by Truitt Savell
  • 11 edits in trunk/Source

Unreviewed, rolling out r253820.

Broke Mac testing

Reverted changeset:

"Invalidate only affected elements after media query
evaluation changes"
https://bugs.webkit.org/show_bug.cgi?id=205392
https://trac.webkit.org/changeset/253820

1:44 PM Changeset in webkit [253843] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: fast/shadow-dom/link-element-in-shadow-tree.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=171784

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:40 PM Changeset in webkit [253842] by Alan Coon
  • 1 copy in tags/Safari-609.1.13

Tag Safari-609.1.13.

1:36 PM Changeset in webkit [253841] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Unreviewed, try to fix the non-unified sources build.

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::filterTransports const):
The current chunking of unified source files seems to provide a
'using namespace WebCore' for these references to AuthenticatorTransport.
Add a namespace qualification so that this file compiles by itself.

1:03 PM Changeset in webkit [253840] by Simon Fraser
  • 9 edits in trunk/Tools

Add a Custom User Agent menu to MiniBrowser, and related cleanup
https://bugs.webkit.org/show_bug.cgi?id=205507

Reviewed by Wenson Hsieh.

Add a User Agent" submenu to the Settings menu, and construct it with some built-in
UA strings. When changed, it sets the customUserAgent on the WKWebView/WebView and
triggers a reload.

I also rearranged the menus so that "Settings" and "Debug" are no longer to the right
of the "Help" menu, which means getting the Settings menu from the xib. It was then
easier if SettingsController was no longer a singleton, but owned by AppDelegate.
Added a category on NSApplication to make it easier to get to BrowserAppDelegate
and thence to the SettingsController.

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

(-[NSApplication browserAppDelegate]):
(-[BrowserAppDelegate awakeFromNib]):
(-[BrowserAppDelegate defaultConfiguration]):
(-[BrowserAppDelegate defaultPreferences]):
(-[BrowserAppDelegate createBrowserWindowController:]):
(-[BrowserAppDelegate newWindow:]):
(-[BrowserAppDelegate newPrivateWindow:]):
(-[BrowserAppDelegate applicationDidFinishLaunching:]):
(-[BrowserAppDelegate _updateNewWindowKeyEquivalents]):
(-[BrowserAppDelegate userContentContoller]):
(defaultConfiguration): Deleted.
(defaultPreferences): Deleted.

  • MiniBrowser/mac/ExtensionManagerWindowController.m:

(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController initWithMenu:]):
(-[SettingsController dealloc]):
(-[SettingsController _populateMenu]):
(+[SettingsController userAgentData]):
(-[SettingsController buildUserAgentsMenu:]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController _toggleBooleanDefault:]):
(-[SettingsController toggleExperimentalFeature:]):
(-[SettingsController toggleInternalDebugFeature:]):
(-[SettingsController customUserAgent]):
(-[SettingsController changeCutomUserAgent:]):
(+[SettingsController shared]): Deleted.
(-[SettingsController init]): Deleted.
(-[SettingsController menu]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController awakeFromNib]):
(-[WK1BrowserWindowController userAgentDidChange:]):
(-[WK1BrowserWindowController windowWillClose:]):
(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController initWithConfiguration:]):
(-[WK2BrowserWindowController userAgentDidChange:]):
(-[WK2BrowserWindowController windowWillClose:]):
(-[WK2BrowserWindowController didChangeSettings]):

12:51 PM Changeset in webkit [253839] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Include WKPDFConfiguration, WKFindConfiguration, and WKFindResult in umbrella header
https://bugs.webkit.org/show_bug.cgi?id=205432
<rdar://problem/58067946>

Patch by James Savage <James Savage> on 2019-12-20
Reviewed by Wenson Hsieh.

  • Shared/API/Cocoa/WebKit.h: Include new headers.
12:43 PM Changeset in webkit [253838] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

SWServer can be created without any path to store registrations in non ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=205500

Reviewed by Simon Fraser.

No change of behavior in release.
Remove debug assert and log the case of a non ephemeral session without a path.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::SWServer):

12:42 PM Changeset in webkit [253837] by BJ Burg
  • 29 edits in trunk/Source

Web Inspector: convert some InspectorFrontendHost methods to getters
https://bugs.webkit.org/show_bug.cgi?id=205475

Reviewed by Devin Rousso.

Source/WebCore:

No reason for these to be method calls, so expose as getters / attributes instead.

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

(WebCore::InspectorFrontendHost::isRemote const):
(WebCore::debuggableTypeToString):
(WebCore::InspectorFrontendHost::localizedStringsURL): Deleted.
(WebCore::InspectorFrontendHost::backendCommandsURL): Deleted.
(WebCore::InspectorFrontendHost::debuggableType): Deleted.
(WebCore::InspectorFrontendHost::inspectionLevel): Deleted.
(WebCore::InspectorFrontendHost::platform): Deleted.
(WebCore::InspectorFrontendHost::port): Deleted.

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

Source/WebInspectorUI:

No reason for these to be method calls, so expose as getters / attributes instead.

  • UserInterface/Base/LoadLocalizedStrings.js:
  • UserInterface/Base/Main.js:
  • UserInterface/Base/ObjectStore.js:

(WI.ObjectStore.get _databaseName):

  • UserInterface/Base/Platform.js:
  • UserInterface/Base/Setting.js:

(WI.Setting._localStorageKey):

  • UserInterface/Debug/Bootstrap.js:

(WI.runBootstrapOperations):

  • UserInterface/Protocol/LoadInspectorBackendCommands.js:

Source/WebKit:

No reason for these to be method calls, so expose as getters / attributes instead.

  • WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::localizedStringsURL const):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):
(WebKit::WebInspectorUI::localizedStringsURL): Deleted.
(WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted.

  • WebProcess/WebPage/mac/WebInspectorUIMac.mm:

(WebKit::WebInspectorUI::localizedStringsURL const):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):
(WebKit::WebInspectorUI::localizedStringsURL): Deleted.
(WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted.

  • WebProcess/WebPage/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::localizedStringsURL const):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):
(WebKit::WebInspectorUI::localizedStringsURL): Deleted.
(WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted.

  • WebProcess/WebPage/wpe/WebInspectorUIWPE.cpp:

(WebKit::WebInspectorUI::localizedStringsURL const):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):
(WebKit::WebInspectorUI::localizedStringsURL): Deleted.
(WebKit::RemoteWebInspectorUI::localizedStringsURL): Deleted.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::localizedStringsURL const):
(WebInspectorFrontendClient::localizedStringsURL): Deleted.

Source/WebKitLegacy/mac:

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

(WebInspectorFrontendClient::localizedStringsURL const):
(WebInspectorFrontendClient::localizedStringsURL): Deleted.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorFrontendClient::localizedStringsURL const):
(WebInspectorFrontendClient::localizedStringsURL): Deleted.

  • WebCoreSupport/WebInspectorClient.h:
12:40 PM Changeset in webkit [253836] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Flaky crash in AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC on webaudio/silent-audio-interrupted-in-background.html
https://bugs.webkit.org/show_bug.cgi?id=202064

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:33 PM Changeset in webkit [253835] by Andres Gonzalez
  • 9 edits in trunk/Source/WebCore

IsolatedObject support for multiple parameterized attributes.
https://bugs.webkit.org/show_bug.cgi?id=205508

Reviewed by Chris Fleizach.

  • AXObjectCache now keeps the PageIdentifier so that it is possible to

retrieve it on the secondary thread without querying the Document.

  • isIncrementor is exposed on AXCoreObject for spin button support.
  • Several parameterized attributes implementation related to

TextMarkers are now dispatch to the main thread.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::setIsolatedTreeFocusedObject):
(WebCore::AXObjectCache::isolatedTreeRootObject):
(WebCore::AXObjectCache::remove):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilitySpinButton.h:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::updateBackingStore):
(WebCore::AXIsolatedObject::findTextRanges const):
(WebCore::AXIsolatedObject::performTextOperation):
(WebCore::AXIsolatedObject::axObjectCache const):
(WebCore::AXIsolatedObject::widget const):
(WebCore::AXIsolatedObject::document const):
(WebCore::AXIsolatedObject::documentFrameView const):
(WebCore::AXIsolatedObject::isLoaded const): Implemented in header.
(WebCore::AXIsolatedObject::supportsPath const): Implemented in header.

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

(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

12:27 PM Changeset in webkit [253834] by commit-queue@webkit.org
  • 9 edits
    2 copies
    1 move in trunk/Source

Allow a managed configuration to re-enable TLS 1.0 and 1.1
https://bugs.webkit.org/show_bug.cgi?id=205479
<rdar://problem/54493516>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-20
Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

Manually verified using the managed configuration attached to rdar://problem/56727605

  • PAL.xcodeproj/project.pbxproj:
  • pal/ios/ManagedConfigurationSoftLink.h: Added.
  • pal/ios/ManagedConfigurationSoftLink.mm: Added.
  • pal/spi/ios/ManagedConfigurationSPI.h: Copied from Source/WebKit/Platform/spi/ios/ManagedConfigurationSPI.h.

Source/WebKit:

  • Platform/spi/ios/ManagedConfigurationSPI.h: Removed.
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _defineForWebView:]):

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

11:40 AM Changeset in webkit [253833] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Share code for computing the absolute positioned line boxes for a range
https://bugs.webkit.org/show_bug.cgi?id=205510

Reviewed by Wenson Hsieh.

Implement RenderTextLineBoxes::absoluteRectsForRange() in terms of absoluteQuadsForRange()
to remove almost identical code. This makes absoluteRectsForRange() a tiny bit slower. If
it turns out this slowness isn't so tiny then we should use revert this change and implement
again using templates to avoid duplication.

Also moved absoluteQuadsForRange() to be above absoluteRectsForRange() to group these
related functions closer together.

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const): No change, though I moved it
to be above absoluteRectsForRange().
(WebCore::RenderTextLineBoxes::absoluteRectsForRange const): Implement in terms of absoluteQuadsForRange().

  • rendering/RenderTextLineBoxes.h: Group absolute*ForRange() declarations.
11:18 AM Changeset in webkit [253832] by Truitt Savell
  • 4 edits
    50 adds in trunk/LayoutTests

Unreviewed, rolling out r253831.

Inadvertent rollout of r253829

Reverted changeset:

"Unreviewed, rolling out r253829."
https://bugs.webkit.org/show_bug.cgi?id=205502
https://trac.webkit.org/changeset/253831

11:17 AM Changeset in webkit [253831] by Truitt Savell
  • 4 edits
    1 delete in trunk/LayoutTests

Unreviewed, rolling out r253829.

This is blocking the rollout of r253705

Reverted changeset:

"Import web-platform-tests/subresource-integrity tests from
usptream"
https://bugs.webkit.org/show_bug.cgi?id=205502
https://trac.webkit.org/changeset/253829

11:11 AM Changeset in webkit [253830] by Chris Dumez
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/beacon/beacon-redirect.window.html has been flaky since it was imported in r253760
https://bugs.webkit.org/show_bug.cgi?id=205504
<rdar://problem/58115444>

Unreviewed, mark test as flaky.

11:03 AM Changeset in webkit [253829] by Chris Dumez
  • 4 edits
    50 adds in trunk/LayoutTests

Import web-platform-tests/subresource-integrity tests from usptream
https://bugs.webkit.org/show_bug.cgi?id=205502

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import web-platform-tests/subresource-integrity tests from usptream 5f8d15ebdcf0495c271c.

  • web-platform-tests/subresource-integrity/*: Added.

LayoutTests:

10:13 AM Changeset in webkit [253828] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[iOS Debug] imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=205506

Unreviewed, mark imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html as crashing
on iOS Debug. The test has been crashing on this platform since it was imported in r253791.

  • platform/ios-wk2/TestExpectations:
9:57 AM Changeset in webkit [253827] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove the certificate info checks related to getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=205493

Reviewed by Eric Carlson.

Now that navigator.mediaDevices is SecureContext, we do not need to do the same checks in UserMediaController.
UserMediaController was also checking the certificate info which is not necessary for MediaDevices.
Covered by manual tests.

  • Modules/mediastream/UserMediaController.cpp:

(WebCore::isSecure):
(WebCore::isAllowedByFeaturePolicy): Deleted.
(WebCore::isAllowedToUse): Deleted.
(WebCore::UserMediaController::canCallGetUserMedia const): Deleted.
(WebCore::UserMediaController::logGetUserMediaDenial): Deleted.

9:40 AM Changeset in webkit [253826] by youenn@apple.com
  • 6 edits in trunk/Source/WebKit

Set whether to use mock capture devices at GPUProcess creation time.
https://bugs.webkit.org/show_bug.cgi?id=205492

Reviewed by Eric Carlson.

This ensures UIProcess remains always in sync with GPUProcess.
Covered by fast/mediastream/captureAudioInGPUProcess.html.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):
(WebKit::GPUProcess::setMockCaptureDevicesEnabled):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • GPUProcess/GPUProcessCreationParameters.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::singleton):

9:37 AM Changeset in webkit [253825] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

webrtc/video-autoplay.html is flaky on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=205495

Reviewed by Eric Carlson.

  • webrtc/video-autoplay-expected.txt:
  • webrtc/video-autoplay.html:

Do test one video at a time so that one video does not interrupt the other.

9:34 AM Changeset in webkit [253824] by dino@apple.com
  • 19 edits in trunk/Source

Build ANGLE as a dynamic library
https://bugs.webkit.org/show_bug.cgi?id=204708
Source/ThirdParty/ANGLE:

rdar://57349384

Reviewed by Tim Horton.

Take 2 at attempting this. The first time was rolled out
due to failures in Apple's upstream build system.

Modify ANGLE to build as a dynamic library. My (not thorough) testing suggests
this will reduce the in-flight binary size on Apple's build systems by at least
a factor of 10 (it was over 1G). Building release for x86_64-only:

  • Previously: libANGLE.a -- 306 MB
  • Now: libANGLE-shared.dylib -- 6.7 MB

In order to do this, some symbols needed to be exported from the
"sh" namespace (which are used in ANGLEWebKitBridge, but not when
ANGLE's rendering backend is active).

While here, I turned on some more build options, like ARC.

Lastly, I added a build phase that creates a fake libANGLE.a
because Apple's build system thinks that WebCore still needs it.

  • ANGLE.xcodeproj/project.pbxproj: Link with IOKit and IOSurface frameworks, and

product a dylib product.

  • Configurations/ANGLE.xcconfig: Update the configuration for a dynamic library.
  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • include/GLSLANG/ShaderLang.h: Add ANGLE_EXPORT to some functions to make

sure they will be visible in the exported library.

  • include/GLSLANG/ShaderVars.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Change reinterpret_cast to a normal

C cast so it can be annotated with bridge.
(rx::DisplayCGL::isValidNativeWindow const):

  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Ditto.

(rx::WindowSurfaceCGL::WindowSurfaceCGL):
(rx::WindowSurfaceCGL::~WindowSurfaceCGL):

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: Ditto.
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: Ditto.

Source/WebCore:

Reviewed by Tim Horton.

Weak link against libANGLE-shared.dylib rather than strong link to libANGLE.a.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ANGLEWebKitBridge.cpp:

(WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge):
(WebCore::ANGLEWebKitBridge::cleanupCompilers):
(WebCore::ANGLEWebKitBridge::compileShaderSource):
(WebCore::ANGLEWebKitBridge::angleAvailable):

  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

8:46 AM Changeset in webkit [253823] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/2dcontext/wide-gamut-canvas as flaky.

Those were recently imported from upstream.

8:39 AM Changeset in webkit [253822] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/2dcontext/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html

This test has been timing out since it was imported and slows down our test runs for no reason.

8:34 AM Changeset in webkit [253821] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Re-skip imported/w3c/web-platform-tests/service-workers/service-worker/client-navigate.https.html

I had unskipped this test in r253704 because it no longer appeared to time out on my machine. However,
it sill appears to time out on the bots (at least flakily).

8:34 AM Changeset in webkit [253820] by Antti Koivisto
  • 11 edits in trunk/Source

Invalidate only affected elements after media query evaluation changes
https://bugs.webkit.org/show_bug.cgi?id=205392

Reviewed by Zalan Bujtas.

Source/WebCore:

We currently invalidate style of the whole tree when a media query evaluation changes.
We can do better by constructing an invalidation RuleSet and invalidating only those
elements that are potentially affected.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):
(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

Construct and cache an invalidation RuleSet and associate with a set of media query changes.

(WebCore::Style::RuleSet::MediaQueryCollector::pushAndEvaluate):
(WebCore::Style::RuleSet::MediaQueryCollector::pop):
(WebCore::Style::RuleSet::MediaQueryCollector::addRuleIfNeeded):

Collect RuleFeatures which we later use to build invalidation RuleSet.

(WebCore::Style::RuleSet::MediaQueryCollector::addRulePositionIfNeeded): Deleted.

  • style/RuleSet.h:

(WebCore::Style::DynamicMediaQueryEvaluationChanges::append):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::evaluateDynamicMediaQueries):

  • style/StyleResolver.h:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::evaluateMediaQueries):

Use the invalidation RuleSet for accurate style invalidation.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::evaluteDynamicMediaQueryRules):

Collect invalidation RuleSets for author/user/user agent style.

  • style/StyleScopeRuleSets.h:

Source/WTF:

Fix GCC build error

Error: partial specialization of ‘struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >’

after instantiation of ‘struct WTF::HashTraits<WTF::Vector<WTF::String> >’

  • wtf/HashTraits.h:
  • wtf/VectorHash.h:

Move to HashTraits to HashTraits.h so it gets specialized before any instantiation.

8:31 AM Changeset in webkit [253819] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test-expected.txt:

LayoutTests:

8:29 AM Changeset in webkit [253818] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html on macOS wk1

We do not support the download attribute on this platform.

  • platform/mac-wk1/TestExpectations:
8:10 AM Changeset in webkit [253817] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Wrong visualization of Conic gradients in high resolution displays
https://bugs.webkit.org/show_bug.cgi?id=205444

Reviewed by Carlos Alberto Lopez Perez.

Reduce the size of the separation between sections since a separation of
1 pixel is too wide in high resolution displays.

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::addConicSector):

5:50 AM Changeset in webkit [253816] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Unreviewed, address review comment missed in the initial commit.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineContentOnCurrentLine):
(WebCore::Layout::LineLayoutContext::commitContent):

5:44 AM Changeset in webkit [253815] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Refactor LineLayoutContext class
https://bugs.webkit.org/show_bug.cgi?id=205494
<rdar://problem/58109493>

Reviewed by Antti Koivisto.

This patch is in preparation for being able to pre-scan the inline content for soft wrap opportunities.

Currently processing the inline content means pushing the inline items to an uncommitted queue until after
we find a soft wrap opportunity and then we ask the LineBreaker whether this uncommitted, "continuous content" can be placed
on the current line.
while (has unprocessed inline item) {

get next inline item
if (inline item is at a soft wrap opportunity)

sumbit uncommitted queue to line breaking

else

add to uncommitted queue

}
This patch omits the uncommitted queue by collecting the inline items first. This removes some code complexity and it also
helps to be able to pre-scan the content for soft wrap opportunities.
while (has unprocessed inline item) {

get next continuous content
submit content to line breaking

}

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::ContinousContent::ContinousContent):

  • layout/inlineformatting/InlineLineBreaker.h:

(WebCore::Layout::LineBreaker::Run::Run):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::ContinousContent::hasIntrusiveFloats const):
(WebCore::Layout::ContinousContent::runs const):
(WebCore::Layout::ContinousContent::floats const):
(WebCore::Layout::ContinousContent::endsWithLineBreak const):
(WebCore::Layout::ContinousContent::setEndsWithLineBreak):
(WebCore::Layout::ContinousContent::append):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::nextContinousContentForLine):
(WebCore::Layout::LineLayoutContext::addFloatItems):
(WebCore::Layout::LineLayoutContext::placeInlineContentOnCurrentLine):
(WebCore::Layout::LineLayoutContext::commitContent):
(WebCore::Layout::LineLayoutContext::commitPendingContent): Deleted.
(WebCore::Layout::LineLayoutContext::placeInlineItem): Deleted.
(WebCore::Layout::LineLayoutContext::processUncommittedContent): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::append): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::reset): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::shrink): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:

(WebCore::Layout::LineLayoutContext::formattingContext const):
(WebCore::Layout::LineLayoutContext::root const):
(WebCore::Layout::LineLayoutContext::UncommittedContent::width const): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::size): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::isEmpty): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::runs const): Deleted.

5:35 AM Changeset in webkit [253814] by commit-queue@webkit.org
  • 5 edits in trunk

Fetch: handle emtpy Location value
https://bugs.webkit.org/show_bug.cgi?id=205462

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

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/fetch/api/redirect/redirect-empty-location.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-empty-location.any.worker-expected.txt:

Source/WebCore:

Handle empty Location value on redirect as specified here:
https://fetch.spec.whatwg.org/#concept-http-redirect-fetch step 3

Tests: web-platform-tests/fetch/api/redirect/redirect-empty-location.any.html

web-platform-tests/fetch/api/redirect/redirect-empty-location.any.worker.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

5:15 AM Changeset in webkit [253813] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

DOMPromise::whenPromiseIsSettled is asserting in service worker
https://bugs.webkit.org/show_bug.cgi?id=205440

Reviewed by Chris Dumez.

The promise.get(@then) is sometimes throwing an exception probably due to service worker being stopped.
We need to catch the JS exception and exit early if the getter fails.
Covered by existing service worker tests in debug mode.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenPromiseIsSettled):

3:52 AM Changeset in webkit [253812] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

Make ServiceWorker::postMessage use the exec state from the JS binding layer
https://bugs.webkit.org/show_bug.cgi?id=205395

Reviewed by Chris Dumez.

Instead of using ScriptExecutionContext::execState, we can ask the JS binding layer to pass the exec state and use it.
Since ServiceWorker is an ActiveDOMObject, we use its scriptExecutionContext() to compute the ServiceWorker source identifier.
We do the same for ServiceWorkerClient which is a context destruction observer and which only lives in Service Worker scope so calling ScriptExecutionContext::execState is suboptimal.

No change of behavior.

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClient.idl:
2:31 AM Changeset in webkit [253811] by jiewen_tan@apple.com
  • 19 edits
    3 adds in trunk

[WebAuthn] Implement coders for CTAP ClientPIN requests and responses
https://bugs.webkit.org/show_bug.cgi?id=205376
<rdar://problem/58034395>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch implements coders for authenticatorClientPIN requests and responses
following the spec:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorClientPIN

Specifically, it
i) implements authenticatorClientPIN subCommand: getRetries, getKeyAgreement and getPINToken;
ii) adds pinAuth/pinProtocol to authenticatorMakeCredential/authenticatorGetAssertion.

The authenticatorClientPIN subCommands are based on a Chromium patch:
https://chromium-review.googlesource.com/c/chromium/src/+/1457004 Specifically, it adopts the
interfaces from that patch, but rewrites the BoringSSL-based crypto features using WebCore's
WebCrypto implementation. This allows us to focus on high level crypto interfaces, and lets
WebCrypto handle the underlying crypto library. Also, the original Chromium patch lacks tests.
We introduce a large set of API tests to confirm proper function.

This patch also makes the AES CBC, EDCH, and HMAC platform* implementations public, so that
these implementations can be shared by WebAuthentication and test infrastructure.

Covered by API tests.

  • Modules/webauthn/WebAuthenticationConstants.h:
  • Modules/webauthn/cbor/CBORReader.cpp:

(cbor::CBORReader::readCBORMap):
Let CBORReader recognize negative map keys.

  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::encodeMakeCredenitalRequestAsCBOR):
(fido::encodeGetAssertionRequestAsCBOR):

  • Modules/webauthn/fido/DeviceRequestConverter.h:
  • Modules/webauthn/fido/Pin.cpp: Added.

(fido::pin::hasAtLeastFourCodepoints):
(fido::pin::makePinAuth):
(fido::pin::encodeRawPublicKey):
(fido::pin::validateAndConvertToUTF8):
(fido::pin::encodePinCommand):
(fido::pin::RetriesResponse::parse):
(fido::pin::KeyAgreementResponse::KeyAgreementResponse):
(fido::pin::KeyAgreementResponse::parse):
(fido::pin::KeyAgreementResponse::parseFromCOSE):
(fido::pin::encodeCOSEPublicKey):
(fido::pin::TokenResponse::TokenResponse):
(fido::pin::TokenResponse::parse):
(fido::pin::TokenResponse::pinAuth const):
(fido::pin::TokenResponse::token const):
(fido::pin::encodeAsCBOR):
(fido::pin::TokenRequest::tryCreate):
(fido::pin::TokenRequest::TokenRequest):
(fido::pin::TokenRequest::sharedKey const):

  • Modules/webauthn/fido/Pin.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • crypto/CryptoAlgorithm.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.h:
  • crypto/algorithms/CryptoAlgorithmECDH.h:
  • crypto/algorithms/CryptoAlgorithmHMAC.h:
  • crypto/keys/CryptoKeyAES.cpp:
  • crypto/keys/CryptoKeyAES.h:
  • crypto/keys/CryptoKeyEC.h:
  • crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:

(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::algorithm const):

Tools:

Adds API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:

Dec 19, 2019:

7:32 PM Changeset in webkit [253810] by sbarati@apple.com
  • 7 edits
    2 adds in trunk

Don't cache self customs on dictionaries
https://bugs.webkit.org/show_bug.cgi?id=205466
<rdar://problem/58075545>

Reviewed by Mark Lam.

Source/JavaScriptCore:

We had a bug where we would cache a custom value/accessor on a self property
of a cacheable dictionary object. This turns out to be wrong because the
inline cache won't fail (because we won't transition structures) if that
property is replaced with something else. We would do the right thing when
the custom was on the prototype chain, but when it was a self property, we
didn't. The reason customs are different from values/normal accessors is that
we dynamically load values/getters/setters from the object itself. For
customs, we cache the actual pointer value of the C function. This patch makes
it so we don't cache customs on dictionaries.

  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::prepareChainForCaching):
(JSC::preparePrototypeChainForCaching): Deleted.

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

(JSC::tryCacheGetBy):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setupGetByIdPrototypeCache):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::setObjectToStringValue):

LayoutTests:

  • js/dom/custom-function-should-not-cache-as-dictionary-expected.txt: Added.
  • js/dom/custom-function-should-not-cache-as-dictionary.html: Added.
6:24 PM Changeset in webkit [253809] by rniwa@webkit.org
  • 19 edits in trunk/Source/WebCore

Update TrackBase to store m_mediaElement as a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=205460

Patch by Doug Kelly <Doug Kelly> on 2019-12-19
Reviewed by Eric Carlson.

Store the HTMLMediaElement in TrackBase and related classes as a WeakPtr to give some proper idea of pointer lifetime, since while the
HTMLMediaElement is optional, if set, it should be a valid HTMLMediaElement.

No new tests since no functionality changed.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::videoTracks):
(WebCore::SourceBuffer::audioTracks):
(WebCore::SourceBuffer::textTracks):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::ensureAudioTracks):
(WebCore::HTMLMediaElement::ensureTextTracks):
(WebCore::HTMLMediaElement::ensureVideoTracks):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::willRemove):
(WebCore::AudioTrack::setMediaElement):

  • html/track/AudioTrack.h:
  • html/track/AudioTrackList.cpp:

(WebCore::AudioTrackList::AudioTrackList):

  • html/track/AudioTrackList.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::willRemove):
(WebCore::InbandTextTrack::setMediaElement):

  • html/track/InbandTextTrack.h:
  • html/track/TextTrackList.cpp:

(WebCore::TextTrackList::TextTrackList):

  • html/track/TextTrackList.h:
  • html/track/TrackBase.cpp:

(WebCore::TrackBase::element):
(WebCore::TrackBase::setMediaElement):

  • html/track/TrackBase.h:

(WebCore::TrackBase::mediaElement):

  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::element const):

  • html/track/TrackListBase.h:

(WebCore::TrackListBase::mediaElement const):

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::willRemove):
(WebCore::VideoTrack::setMediaElement):

  • html/track/VideoTrack.h:
  • html/track/VideoTrackList.cpp:

(WebCore::VideoTrackList::VideoTrackList):

  • html/track/VideoTrackList.h:
6:11 PM Changeset in webkit [253808] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Invalid assert with tracks not associated to media element
https://bugs.webkit.org/show_bug.cgi?id=205360

Patch by Doug Kelly <Doug Kelly> on 2019-12-19
Reviewed by Eric Carlson.

Remove asserts around TextTrack when not attached to a media element and instead return a zero index.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::trackIndex):
(WebCore::TextTrack::trackIndexRelativeToRenderedTracks):

6:04 PM Changeset in webkit [253807] by sihui_liu@apple.com
  • 5 edits in trunk

IndexedDB: remove timer for pending operations in IDBTransaction
https://bugs.webkit.org/show_bug.cgi?id=205312

Reviewed by Brady Eidson.

When pendingOperationTimer fired, IDBTransasction would try processing pending operations or commiting
automatically.
pendingOperationTimer was scheduled when some conditions changed and IDBTransaction could start processing
pending operations or start commiting, for example, when new pending operations was created.

For better performance, we may start processing right away after the condition change, without using a Timer.
This patch gives us about 10% speed up on test: PerformanceTests/IndexedDB/basic/objectstore-cursor.html.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::abortInProgressOperations):
(WebCore::IDBTransaction::removeRequest):
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::finishedDispatchEventForRequest):
(WebCore::IDBTransaction::didStart):
(WebCore::IDBTransaction::operationCompletedOnClient):
(WebCore::IDBTransaction::deactivate):
(WebCore::IDBTransaction::connectionClosedFromServer):
(WebCore::IDBTransaction::handlePendingOperations):
(WebCore::IDBTransaction::autoCommit):
(WebCore::IDBTransaction::trySchedulePendingOperationTimer): Deleted.
(WebCore::IDBTransaction::pendingOperationTimerFired): Deleted.

  • Modules/indexeddb/IDBTransaction.h:
6:03 PM Changeset in webkit [253806] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::RenderTreeBuilder::attach
https://bugs.webkit.org/show_bug.cgi?id=205476

Patch by Jack Lee <Jack Lee> on 2019-12-19
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/ruby/crash-insert-duplicate-rt-element.html

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::attach):

LayoutTests:

  • fast/ruby/crash-insert-duplicate-rt-element-expected.txt: Added.
  • fast/ruby/crash-insert-duplicate-rt-element.html: Added.
6:00 PM Changeset in webkit [253805] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::findPlaceForCounter with display: contents parent
https://bugs.webkit.org/show_bug.cgi?id=205290

Patch by Jack Lee <Jack Lee> on 2019-12-19
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/css/counters/findPlaceForCounter-crash.html

  • rendering/RenderCounter.cpp:

(WebCore::parentOrPseudoHostElement):

LayoutTests:

  • fast/css/counters/findPlaceForCounter-crash-expected.txt: Added.
  • fast/css/counters/findPlaceForCounter-crash.html: Added.
5:06 PM Changeset in webkit [253804] by Jonathan Bedard
  • 23 edits in trunk/Tools

Python 3: Add support to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=205291

Reviewed by Stephanie Lewis.

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

(_MessagePool._loop): Move exception inside of loop.
(_Message.repr): Use .format strings.
(_Worker.init): Ditto.

  • Scripts/webkitpy/common/wavediff.py:

(WaveDiff.init): Use Python 3 compatible BytesIO and StringIO.

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

(LayoutTestFinder._read_test_names_from_file): Use .format string.
(LayoutTestFinder.split_into_chunks): Explicitly use integer division.

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

(Manager._get_test_inputs): Use range over xrange.

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

(SingleTestRunner._handle_error): Use .format strings.

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

(JSONLayoutResultsGenerator._insert_failure_summaries): Use Python 3 compatible itervalues.

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

(TestResult.init): Sort type list.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.setUp): Multiple processes are buggy in test-webkitpy.
(RunTest.test_basic): replace buflist with getvalue().
(RunTest.test_child_processes_2): Ditto.
(RunTest.test_child_processes_min): Ditto.
(RunTest.test_keyboard_interrupt): Ditto.
(RunTest.test_missing_and_unexpected_results): Compare dictionaries instead of json strings.
(RunTest.test_crash_with_stderr): Ditto.
(RunTest.test_reftest_should_not_use_naming_convention_if_not_listed_in_reftestlist): Ditto.
(EndToEndTest.test_reftest_with_two_notrefs): Ditto.

  • Scripts/webkitpy/layout_tests/views/metered_stream.py:

(MeteredStream.write): Flush stream after writing.
(MeteredStream._erase_last_partial_line): Ditto.

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer._print_directory_timings): Can't compare string to integer.
(Printer._print_statistics_for_test_timings): Use integer division.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort._merge_crash_logs): Use items over iteritems.

  • Scripts/webkitpy/port/device.py:

(Device.hash): Allow hashing of devices.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort._install): Use range over xrange.
(DevicePort.setup_test_run): Ditto.
(DevicePort.clean_up_test_run): Ditto.

  • Scripts/webkitpy/port/driver.py:

(DriverOutput.init): Text should be decoded, audio encoded.
(Driver.init):
(Driver.run_test):
(Driver._parse_child_processes_output): Output is byte array.
(Driver._check_for_driver_timeout): Ditto.
(Driver._check_for_address_sanitizer_violation): Error lines are byte arrays.
(Driver._check_for_driver_crash_or_unresponsiveness): Ditto.
(Driver._read_optional_image_block): If a block is base64 encoded, we want the decoded
content, otherwise, we want the encoded content.
(Driver._read_header): Lines are byte arrays, decode them before processing.
(Driver._process_stdout_line): Blocks are byte arrays.
(Driver._strip_eof): Lines should be byte arrays, not strings.
(Driver._read_block): Standardize encoding in blocks.
(ContentBlock.init): Content should be a byte array.
(ContentBlock.decode_content): Attempt to decode content.

  • Scripts/webkitpy/port/driver_unittest.py:

(DriverTest.test_read_binary_block): Content should be encoded.
(DriverTest.test_read_base64_block): Ditto.
(DriverTest.test_check_for_driver_crash): ServerProcess output should be a byte array.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer.diff_image): ImageDiff output is in byte arrays.
(ImageDiffer._read): Ditto.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.write): Encode data before writing it.

  • Scripts/webkitpy/port/server_process_mock.py:

(MockServerProcess.init): Convert string mock output to bytes.
(MockServerProcess.read_stdout_line): Stdout lines are byte arrays.
(MockServerProcess.read_stdout): Ditto.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.NonBlockingFileFromSocket.close): Don't double close socket in Python 3.
(SimulatorProcess._start): Stdin should be a binary stream.

  • Scripts/webkitpy/port/test.py:

(unit_test_list): Convert audio streams to byte arrays.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.is_usable): Decode xcrun output.
(SimulatedDevice.install_app): Use xrange over range.

5:02 PM Changeset in webkit [253803] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] http/tests/media/clearkey/collect-webkit-media-session.html is timing out since added in r235429 "WebKitMediaSession should be GC collectable when its document is being stopped"
https://bugs.webkit.org/show_bug.cgi?id=189345

Unreviewed gardening.

  • platform/gtk/TestExpectations: This test is for legacy encrypted media, which we have deprecated, and further uses an EXT-X-KEY URI scheme that will be unsupported by GStreamer (the "clearkey" scheme is not spec'd anywhere I could find).
4:50 PM Changeset in webkit [253802] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Enable p3 color picker by default
https://bugs.webkit.org/show_bug.cgi?id=203931
<rdar://problem/56965236>

Reviewed by Devin Rousso.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/InlineSwatch.js:
4:46 PM Changeset in webkit [253801] by Devin Rousso
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: TypeError: InjectedScriptHost.isPromiseRejectedWithNativeGetterTypeError first argument must be a Promise
https://bugs.webkit.org/show_bug.cgi?id=205439

Reviewed by Brian Burg.

Before r244312, we noticed that when Web Inspector would preview native getters that return
a Promise, Web Inspector would prevent rejectionhandled events from being fired since it
would always add a .catch(() => {} to any Promise that it was about to instrument in the
Console to avoid errors being added to the Console while expanding/collapsing value previews.
In order to prevent this, logic was added so that the .catch(() => {}) was only added if
the Promise was returned from a native getter, such as from a PromiseRejectionEvent.

In r244312, we made it such that this logic _required_ the Promise to already be rejected,
which is unnecessarily restrictive and not always the case nowadays. Instead, just check to
see if the result of the Promise is a native getter type error.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::isPromiseRejectedWithNativeGetterTypeError):

4:32 PM Changeset in webkit [253800] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: the clear console button is hidden at smaller widths
https://bugs.webkit.org/show_bug.cgi?id=205438

Reviewed by Brian Burg.

Ever since r242604, we no longer "need" to show the text filter bar or message type scope
bar since new messages will show a warning banner that there's an active filter. Instead, we
should prefer showing the navigation items that control functionality that cannot be reached
anywhere else (visually), such as clearing the console or evaluating as a user gesture.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):
Make the text find banner and type scope bar both low priority, the preserve log and
evaluate as user gesture toggles normal priority, and the clear log high priority.

4:28 PM Changeset in webkit [253799] by Chris Dumez
  • 12 edits
    3 adds in trunk

REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205164
<rdar://problem/57879042>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline tests that are now passing.

  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-expected.txt:

Source/WebCore:

Submitting a form should cancel any pending navigation scheduled by a previous submission of this form:

No new tests, rebaselined existing tests.

Test: fast/forms/form-double-submission.html

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):

  • html/HTMLFormElement.h:
  • loader/FormSubmission.h:

(WebCore::FormSubmission::cancel):
(WebCore::FormSubmission::wasCancelled const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::submitForm):
Drop previous non-standard compliant logic to avoid double-form submission.

  • loader/NavigationScheduler.cpp:

LayoutTests:

  • fast/forms/form-double-submission-expected.txt: Added.
  • fast/forms/form-double-submission.html: Added.
  • fast/forms/resources/form-double-submission-frame.html: Added.

Add layout test for the regression that was introduced the first time this patch landed.

  • http/tests/misc/multiple-submit-expected.txt:

Rebaseline test due to behavior change. I have verified that our new behavior on this test is
aligned with Firefox 71 and Chrome 79.

  • platform/mac/TestExpectations:

Unskip tests that are no longer flaky.

4:03 PM Changeset in webkit [253798] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit

Log telemetry for IOUserClient lookups
https://bugs.webkit.org/show_bug.cgi?id=205463
<rdar://problem/57987372>

Reviewed by Per Arne Vollan.

This patch adds some telemetry for IOKit classes.

No new tests. No change in behavior.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
3:54 PM Changeset in webkit [253797] by Jonathan Bedard
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

2019-12-19 Jonathan Bedard <Jonathan Bedard>

Resync web-platform-tests/WebIDL tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205418 (Follow-up fix)

Unreviewed follow-up fix.

  • web-platform-tests/interfaces/WebIDL.idl: Added.
3:52 PM Changeset in webkit [253796] by Alan Coon
  • 1 copy in tags/Safari-608.5.6

Tag Safari-608.5.6.

3:51 PM Changeset in webkit [253795] by Chris Dumez
  • 1 edit
    3 adds in trunk/LayoutTests

Unreviewed, land missing iOS baselines from r253791.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt: Added.
3:49 PM Changeset in webkit [253794] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Use a WeakHashSet for WKProcessAssertionBackgroundTaskManager._assertionsNeedingBackgroundTask
https://bugs.webkit.org/show_bug.cgi?id=205471

Reviewed by Ryosuke Niwa.

Use a WeakHashSet for WKProcessAssertionBackgroundTaskManager._assertionsNeedingBackgroundTask, instead
of a HashSet of raw pointers, for extra safety.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]):
(-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):

3:47 PM Changeset in webkit [253793] by Chris Dumez
  • 12 edits in trunk/LayoutTests

Unreviewed, land iOS baselines missing from r253791.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
3:38 PM Changeset in webkit [253792] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unblock iokit-get-property needed for frame buffer initialization
https://bugs.webkit.org/show_bug.cgi?id=205468
<rdar://problem/57897684>

Reviewed by Per Arne Vollan.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:54 PM Changeset in webkit [253791] by Chris Dumez
  • 210 edits
    20 copies
    18 moves
    233 adds
    5 deletes in trunk

Resync web-platform-tests/html tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205424

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Resync web-platform-tests/html tests from upstream b5b7813e9ce247495b0df.

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • tests-options.json:
2:48 PM Changeset in webkit [253790] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Make ShadowRoot.delegateFocus work in iOS
https://bugs.webkit.org/show_bug.cgi?id=202875

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch fixes the bug that a shadow tree doesn't recieve focus delegation even if the shadow host
had delegateFocus flag set unless the shadow host itself is focusable beacuse Frame's
nodeRespondingToClickEvents and friends would return false on the shadow host.

Test: fast/shadow-dom/delegates-focus-by-activation.html

  • page/ios/FrameIOS.mm:

(WebCore::nodeIsMouseFocusable): Added the logic to handle shadow hosts whose shadow root has
delegates focus flag set.
(WebCore::nodeWillRespondToMouseEvents): Extracted out of approximateNodeAtViewportLocationLegacy.
(WebCore::Frame::approximateNodeAtViewportLocationLegacy):
(WebCore::ancestorRespondingToClickEventsNodeQualifier):

LayoutTests:

Added a regression test.

  • fast/shadow-dom/delegates-focus-by-activation-expected.txt: Added.
  • fast/shadow-dom/delegates-focus-by-activation.html: Added.
2:17 PM Changeset in webkit [253789] by Alan Coon
  • 3 edits in branches/safari-609.1.13-branch/Source/WebKit

Cherry-pick r253761. rdar://problem/58080834

Remove syscall filtering from GPU Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=205456
<rdar://problem/58080834>

Reviewed by Tim Horton.

We don't have a fully built-out GPU Process yet. Let's not lock down the syscall filter set until
we know which are actually needed by the process. The current set is just copied over from the
WebContent process, and are not likely to be the correct set.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:

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

2:10 PM Changeset in webkit [253788] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

Activate the SQLite database as an on-by-default feature
https://bugs.webkit.org/show_bug.cgi?id=204774
<rdar://problem/57592141>

Reviewed by Brent Fulgham.

The ITP SQLite database should be on by default.

  • page/RuntimeEnabledFeatures.h:
1:48 PM Changeset in webkit [253787] by Alan Coon
  • 8 edits in tags/Safari-609.1.12.4/Source

Versioning.

1:45 PM Changeset in webkit [253786] by Matt Lewis
  • 2 edits in trunk/Tools

Fixing Host name of gpu process bot
https://bugs.webkit.org/show_bug.cgi?id=205469

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
1:27 PM Changeset in webkit [253785] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Add telemetry to macOS WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=205464
<rdar://problem/58087833>

Reviewed by Per Arne Vollan.

Add telemetry to various mach lookups, like we did for iOS.

No new tests. No change in behavior.

  • WebProcess/com.apple.WebProcess.sb.in:
1:20 PM Changeset in webkit [253784] by pvollan@apple.com
  • 9 edits
    1 delete in trunk/Source

REGRESSION (r253530): Incorrect colors in Dark Mode
https://bugs.webkit.org/show_bug.cgi?id=205457

Unreviewed rollout of r253530.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/CSSValueKey.h: Removed.
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor const):
(WebCore::cssValueIDSelectorList): Deleted.
(WebCore::systemColorFromCSSValueID): Deleted.
(WebCore::globalCSSValueToSystemColorMap): Deleted.
(WebCore::RenderThemeIOS::getOrCreateCSSValueToSystemColorMap): Deleted.
(WebCore::RenderThemeIOS::setCSSValueToSystemColorMap): Deleted.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

1:18 PM Changeset in webkit [253783] by Chris Dumez
  • 12 edits
    2 copies
    136 adds
    2 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/WebIDL tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205418

Reviewed by Frédéric Wang.

Resync web-platform-tests/WebIDL tests from upstream 33de70caf7f076e.

  • web-platform-tests/WebIDL/*: Updated.
12:32 PM Changeset in webkit [253782] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip fast/workers/worker-cloneport.html on iOS.

This test appears to run fine on iOS now.

  • platform/ios-wk2/TestExpectations:
12:23 PM Changeset in webkit [253781] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Deprecate _WKRemoteObjectInterface methods without ofReply:
https://bugs.webkit.org/show_bug.cgi?id=205073

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-19
Reviewed by Timothy Hatcher.

Using them makes it hard to figure out how to add classes allowed for the reply,
and there's a comment saying to deprecate them, so let's do it.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
12:06 PM Changeset in webkit [253780] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html on iOS.

  • platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt:
12:04 PM Changeset in webkit [253779] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

ANGLE: Fix last WebGL conformance regressions
https://bugs.webkit.org/show_bug.cgi?id=205306

Fixes the last few WebGL conformance regressions when enabling ANGLE on AMD GPUs on Mac.
The combination of alpha:false and antialias:true was broken, and validation of
non-ascii characters in comments was broken by a recent change to the test.

Patch by James Darpinian <James Darpinian> on 2019-12-19
Reviewed by Dean Jackson.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::shaderSource):

  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

12:00 PM Changeset in webkit [253778] by Brent Fulgham
  • 8 edits
    3 adds in trunk

WebContent process does not need access to 'com.apple.system.logger'
https://bugs.webkit.org/show_bug.cgi?id=205411
<rdar://problem/56966080>

Reviewed by Per Arne Vollan.

Source/WebKit:

Telemetry and thorough testing has confirmed that we do not need access to this
mach service, and so should remove it.

Tested by fast/sandbox.

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

LayoutTests:

  • TestExpectations:
  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt: Added.
  • fast/sandbox/mac/sandbox-mach-lookup.html: Added.
  • platform/mac-wk2/TestExpectations:
11:48 AM Changeset in webkit [253777] by Brent Fulgham
  • 5 edits in trunk

Deny mach lookup access to "com.apple.TextInput" in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205423
<rdar://problem/56990842>

Reviewed by Per Arne Vollan.

Source/WebKit:

Telemetry and thorough testing has confirmed that we do not need access to this
mach service, and so should remove it.

Tested by fast/sandbox/ios/sandbox-mach-lookup.html.

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
11:33 AM Changeset in webkit [253776] by Alan Coon
  • 1 copy in tags/Safari-609.1.12.4

New tag.

11:29 AM Changeset in webkit [253775] by Antti Koivisto
  • 6 edits
    1 add in trunk

Allow Vectors as hash keys
https://bugs.webkit.org/show_bug.cgi?id=205449

Reviewed by Geoff Garen.

Source/WTF:

Add traits to allow Vectors of hashable types to act as hash keys.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Vector.h:

(WTF::Vector::Vector):
(WTF::Vector::~Vector):
(WTF::Vector::isHashTableDeletedValue const):

Use m_size = numeric_limits::max() as the deleted value.

  • wtf/VectorHash.h: Added.

(WTF::VectorHash::hash):
(WTF::VectorHash::equal):

Add traits. Empty Vector is the empty value.

Tools:

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

11:27 AM Changeset in webkit [253774] by Alan Coon
  • 2 edits in branches/safari-609.1.13-branch/Source/WebKit

Cherry-pick r253696. rdar://problem/58046272

Add syscall to GPU Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=205400
<rdar://problem/58046272>

Reviewed by Simon Fraser.

This patch temporarily adds a syscall to the sandbox to work around a bug in the
system Sandbox framework. We will remove this in Bug 205400 once that issue is
resolved.

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

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

11:27 AM Changeset in webkit [253773] by Alan Coon
  • 9 edits
    1 delete in branches/safari-609.1.13-branch/Source

Revert r253530. rdar://problem/58070303

11:24 AM Changeset in webkit [253772] by Alan Coon
  • 10 edits in branches/safari-609.1.13-branch

Revert "Revert "Revert r253493. rdar://problem/58028534""

This reverts fixes a ChangeLog Unicode issue and re-applies the revert of r253493.

11:23 AM Changeset in webkit [253771] by Alan Coon
  • 10 edits in branches/safari-609.1.13-branch

Revert "Revert r253493. rdar://problem/58028534"

This reverts revision r253726.

11:20 AM Changeset in webkit [253770] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r253711.

Broke two tests on Mac and iOS

Reverted changeset:

"[LFC][IFC] LineLayoutContext::m_uncommittedList is not always
a continuous list of runs"
https://bugs.webkit.org/show_bug.cgi?id=205404
https://trac.webkit.org/changeset/253711

10:51 AM Changeset in webkit [253769] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

AXIsolatedObject::findMatchingObjects implementation.
https://bugs.webkit.org/show_bug.cgi?id=205428

Reviewed by Chris Fleizach.

This method is exercised by several layout tests such as
accessibility/mac/search-predicate.html.

  • Moved the search algorithm in the implementation of

AccessibilityObject::findMatchingObjects to the Accessibility namespace,
so that it can be used in AXIsolatedObject as well.

  • Static helper functions are also moved into the Accessibility

namespace.

  • Changed the signature of containsText to be more appropriate and in

line with other methods.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::containsText const):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::Accessibility::isAccessibilityObjectSearchMatchAtIndex): Moved from AccessibilityObject.
(WebCore::Accessibility::isAccessibilityObjectSearchMatch): Moved from AccessibilityObject.
(WebCore::Accessibility::isAccessibilityTextSearchMatch): Moved from AccessibilityObject.
(WebCore::Accessibility::objectMatchesSearchCriteriaWithResultLimit): Moved from AccessibilityObject.
(WebCore::Accessibility::findMatchingObjects): Search algorithm to be reused by AccessibilityObject and AXIsolatedObject.
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex): Moved.
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch): Moved.
(WebCore::AccessibilityObject::isAccessibilityTextSearchMatch): Moved.
(WebCore::AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit): Moved.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::findMatchingObjects):
(WebCore::AXIsolatedObject::containsText const):

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
10:48 AM Changeset in webkit [253768] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed tests gardening

Mark imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit.html as flaky.

  • platform/mac/TestExpectations:
10:36 AM Changeset in webkit [253767] by youenn@apple.com
  • 4 edits in trunk

CacheStorageEngine should not clear caches memory representation for ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=205332

Reviewed by Chris Dumez.

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::dispose):
We cannot dispose an ephemeral cache memory representation
since it can be reopened by a page with the same session.

LayoutTests:

10:33 AM Changeset in webkit [253766] by Brent Fulgham
  • 5 edits in trunk

Deny mach lookup access to "com.apple.pluginkit.pkd" in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205421
<rdar://problem/56995585>

Reviewed by Per Arne Vollan.

Source/WebKit:

Telemetry and thorough testing has confirmed that we do not need access to this
mach service, and so should remove it.

Tested by fast/sandbox/ios/sandbox-mach-lookup.html.

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:31 AM Changeset in webkit [253765] by Alan Coon
  • 3 edits in tags/Safari-609.1.12.3/Source/WebKit

Cherry-pick r253761. rdar://problem/58080834

Remove syscall filtering from GPU Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=205456
<rdar://problem/58080834>

Reviewed by Tim Horton.

We don't have a fully built-out GPU Process yet. Let's not lock down the syscall filter set until
we know which are actually needed by the process. The current set is just copied over from the
WebContent process, and are not likely to be the correct set.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:

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

10:20 AM Changeset in webkit [253764] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

Safely iterate observers in languageDidChange()
https://bugs.webkit.org/show_bug.cgi?id=205452
<rdar://problem/57937765>

Reviewed by Eric Carlson.

Use the "copyToVector() then verify each item is still in the original
map" pattern to safely iterate over the observerMap().

  • wtf/Language.cpp:

(WTF::languageDidChange):

10:13 AM Changeset in webkit [253763] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, address imported/w3c/web-platform-tests/css/css-properties-values-api/url-resolution.html flakiness

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt:

LayoutTests:

10:04 AM Changeset in webkit [253762] by Wenson Hsieh
  • 6 edits in trunk/Source/WebCore

pal/FileSizeFormatter.h declares fileSizeDescription in the top-level namespace
https://bugs.webkit.org/show_bug.cgi?id=205453

Reviewed by Tim Horton.

Source/WebCore:

Change fileSizeDescription to PAL::fileSizeDescription. No change in behavior.

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::setFile):
(WebCore::HTMLAttachmentElement::updateAttributes):

Source/WebCore/PAL:

Move fileSizeDescription to the PAL namespace.

  • pal/FileSizeFormatter.cpp:

(fileSizeDescription): Deleted.

  • pal/FileSizeFormatter.h:
  • pal/cocoa/FileSizeFormatterCocoa.mm:

(fileSizeDescription): Deleted.

9:59 AM Changeset in webkit [253761] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove syscall filtering from GPU Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=205456
<rdar://problem/58080834>

Reviewed by Tim Horton.

We don't have a fully built-out GPU Process yet. Let's not lock down the syscall filter set until
we know which are actually needed by the process. The current set is just copied over from the
WebContent process, and are not likely to be the correct set.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
9:55 AM Changeset in webkit [253760] by Chris Dumez
  • 16 edits
    1 move
    15 adds
    2 deletes in trunk

Resync web-platform-tests/beacon tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205417

Reviewed by Youenn Fablet.

Resync web-platform-tests/beacon tests from upstream 33de70caf7f076e.

  • web-platform-tests/beacon/*: Updated.
9:48 AM Changeset in webkit [253759] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: exiting edit mode with the same selection as before entering edit mode doesn't reselect
https://bugs.webkit.org/show_bug.cgi?id=205435

Reviewed by Brian Burg.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.initialLayout):
Set allowsRepeatSelection so that selecting the previously selected tree element after
leaving edit mode will actually work.

9:48 AM Changeset in webkit [253758] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: bezier keywords don't show a swatch
https://bugs.webkit.org/show_bug.cgi?id=205436

Reviewed by Brian Burg.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
Check if the current token is a direct match with one of the timing function keywords.

9:33 AM Changeset in webkit [253757] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: importing a result with DOM nodes that don't match the inspected page appear as empty lines
https://bugs.webkit.org/show_bug.cgi?id=205437

Reviewed by Brian Burg.

  • UserInterface/Views/AuditTestCaseContentView.js:

(WI.AuditTestCaseContentView.prototype.layout):
Call refresh on the CodeMirror instance after a timeout to give it a chance to be added
to the DOM tree.

9:15 AM Changeset in webkit [253756] by Chris Dumez
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed, land iOS specific baseline missing from r253738.

  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt: Added.
9:07 AM Changeset in webkit [253755] by Truitt Savell
  • 3 edits in trunk/LayoutTests

Folloup test expectations cleanup for r253594
https://bugs.webkit.org/show_bug.cgi?id=205308

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
8:40 AM Changeset in webkit [253754] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac Debug wk1 ] accessibility/mac/expanded-notification.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205410

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
8:36 AM Changeset in webkit [253753] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mojave Debug wk1 ] webgl/1.0.3/conformance/rendering/many-draw-calls.html is Timing out
https://bugs.webkit.org/show_bug.cgi?id=205412

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
7:59 AM Changeset in webkit [253752] by Chris Dumez
  • 16 edits in trunk

imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=205408

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline test now that it is consistently passing.

  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt:

Source/WebCore:

imported/w3c/web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html has been
flaky since it was imported. We now queue a task on the HTML event loop to resolve the skipWaiting promise
so that its ordering is correct, between the active event being fired and the service worker state becoming
"activated".

No new tests, upskipped existing test.

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::skipWaiting):

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::skipWaiting):

  • workers/service/server/SWServerToContextConnection.h:

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::didFinishSkipWaiting): Deleted.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::skipWaiting):
(WebKit::WebSWContextManagerConnection::didFinishSkipWaiting): Deleted.

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

LayoutTests:

Unskip test.

7:48 AM Changeset in webkit [253751] by Chris Dumez
  • 10 edits in trunk/Source

Stop blocking the worker thread in WorkerMessagePortChannelProvider::postMessageToRemote()
https://bugs.webkit.org/show_bug.cgi?id=205414

Reviewed by Youenn Fablet.

Source/WebCore:

Stop blocking the worker thread in WorkerMessagePortChannelProvider::postMessageToRemote() as it does not appear
to be needed and it badly impacts performance. This basically replaces a callOnMainThreadAndWait
call (which was added in r249378 as part of a refactoring) with a callOnMainThread call.

This makes fast/workers/worker-cloneport.html runs twice as fast on my machine, which is important
because this test is so slow it is timing out in some configurations.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):

  • dom/messageports/MessagePortChannelProvider.h:
  • dom/messageports/MessagePortChannelProviderImpl.cpp:

(WebCore::MessagePortChannelProviderImpl::postMessageToRemote):

  • dom/messageports/MessagePortChannelProviderImpl.h:
  • dom/messageports/WorkerMessagePortChannelProvider.cpp:

(WebCore::WorkerMessagePortChannelProvider::postMessageToRemote):

  • dom/messageports/WorkerMessagePortChannelProvider.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:

(WebKit::WebMessagePortChannelProvider::postMessageToRemote):

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:
7:15 AM Changeset in webkit [253750] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

REGRESSION (r251015): Hitting return before a space deletes text after the insertion position
https://bugs.webkit.org/show_bug.cgi?id=205425
<rdar://problem/57575960>

Reviewed by Tim Horton.

Source/WebCore:

After r251015, we (rightfully) no longer call ensureLineBoxes() when computing upstream or downstream positions.
However, logic in deleteInsignificantTextDownstream (which is invoked after hitting return before a space in a
text node) assumes that line boxes must be generated for the RenderText of the text node containing the
downstream position. The lack of inline text boxes then causes deleteInsignificantText to always remove the
entire text node.

To fix this, have deleteInsignificantText ensure that line boxes exist for the text node's renderer, right
before asking for the renderer's line boxes.

Test: editing/inserting/insert-paragraph-before-space.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::deleteInsignificantText):

LayoutTests:

Add a layout test to exercise this bug, by executing "insertParagraph" in a text node before a space.

  • editing/inserting/insert-paragraph-before-space-expected.txt: Added.
  • editing/inserting/insert-paragraph-before-space.html: Added.
5:54 AM Changeset in webkit [253749] by Carlos Garcia Campos
  • 49 edits
    13 adds
    3 deletes in trunk

[GTK][WPE] Add initial API for input method
https://bugs.webkit.org/show_bug.cgi?id=204679

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/PlatformKeyboardEvent.h: Also define handledByInputMethod() for WPE port.

Source/WebKit:

In the case of GTK port, it allows to use a custom IM instead of GtkIMContext that it's still used by
default. In the case of WPE it brings IM support, but there's no default implementation so applications need to
provide their own.

  • PlatformGTK.cmake: Add new public header WebKitInputMethodContext.h.
  • PlatformWPE.cmake: Ditto.
  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const): Encode caretRectAtStart for WPE too.
(WebKit::EditorState::PostLayoutData::decode): Decode caretRectAtStart for WPE too.
(WebKit::operator<<): Dump caretRectAtStart for WPE too.

  • Shared/EditorState.h: Define caretRectAtStart for WPE too.
  • Shared/NativeWebKeyboardEvent.h:

(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Remove FakedForComposition parameter for GTK and add
HandledByInputMethod to WPE.

  • Shared/WebEvent.h:
  • Shared/WebKeyboardEvent.cpp:

(WebKit::WebKeyboardEvent::WebKeyboardEvent): Add handledByInputMethod parameter for WPE.
(WebKit::WebKeyboardEvent::encode const): Encode m_handledByInputMethod in WPE too.
(WebKit::WebKeyboardEvent::decode): Decode m_handledByInputMethod in WPE too.

  • Shared/gtk/NativeWebKeyboardEventGtk.cpp:

(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Remove FakedForComposition and the redundant members
that are already in the bcase class or no longer needed.

  • Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp:

(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add text and handledByInputMethod parameters

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebKeyboardEvent): Use the given text if not null and pass handledByInputMethod,
to WebKeyboardEvent.

  • Shared/libwpe/WebEventFactory.h:
  • SourcesGTK.txt: Add new files to compilation.
  • SourcesWPE.txt: Ditto.
  • UIProcess/API/glib/InputMethodFilter.cpp: Added.

(WebKit::InputMethodFilter::~InputMethodFilter):
(WebKit::InputMethodFilter::preeditStartedCallback):
(WebKit::InputMethodFilter::preeditChangedCallback):
(WebKit::InputMethodFilter::preeditFinishedCallback):
(WebKit::InputMethodFilter::committedCallback):
(WebKit::InputMethodFilter::setContext):
(WebKit::InputMethodFilter::setEnabled):
(WebKit::InputMethodFilter::filterKeyEvent):
(WebKit::InputMethodFilter::isViewFocused const):
(WebKit::InputMethodFilter::notifyFocusedIn):
(WebKit::InputMethodFilter::notifyFocusedOut):
(WebKit::InputMethodFilter::notifyCursorRect):
(WebKit::InputMethodFilter::preeditStarted):
(WebKit::InputMethodFilter::preeditChanged):
(WebKit::InputMethodFilter::preeditFinished):
(WebKit::InputMethodFilter::committed):
(WebKit::InputMethodFilter::cancelComposition):

  • UIProcess/API/glib/InputMethodFilter.h: Added.

(WebKit::InputMethodFilter::context const):

  • UIProcess/API/glib/WebKitInputMethodContext.cpp: Added.

(webkitInputMethodUnderlineGetCompositionUnderline):
(webkit_input_method_underline_new):
(webkit_input_method_underline_copy):
(webkit_input_method_underline_free):
(webkitInputMethodContextSetWebView):
(webkitInputMethodContextGetWebView):
(webkit_input_method_context_set_enable_preedit):
(webkit_input_method_context_get_preedit):
(webkit_input_method_context_notify_focus_in):
(webkit_input_method_context_notify_focus_out):
(webkit_input_method_context_notify_cursor_area):
(webkit_input_method_context_reset):

  • UIProcess/API/glib/WebKitInputMethodContextPrivate.h: Added.

(_WebKitInputMethodUnderline::_WebKitInputMethodUnderline):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):
(webkitWebViewSynthesizeCompositionKeyPress):
(webkitWebViewSetComposition):
(webkitWebViewConfirmComposition):
(webkitWebViewCancelComposition):
(webkit_web_view_set_input_method_context):
(webkit_web_view_get_input_method_context):

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/InputMethodFilterGtk.cpp: Added.

(WebKit::InputMethodFilter::platformTransformCursorRectToViewCoordinates):
(WebKit::InputMethodFilter::platformEventKeyIsKeyPress const):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithKeyEvent): Remove the early return in case of fake event, composition events
are always handled by the web process.

  • UIProcess/API/gtk/WebKitInputMethodContext.h: Added.
  • UIProcess/API/gtk/WebKitInputMethodContextGtk.cpp: Added.

(webkit_input_method_underline_set_color):
(webkit_input_method_context_filter_key_event):

  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp: Added.

(contextPreeditStartCallback):
(contextPreeditChangedCallback):
(contextPreeditEndCallback):
(contextCommitCallback):
(webkitInputMethodContextImplGtkConstructed):
(webkitInputMethodContextImplGtkSetEnablePreedit):
(webkitInputMethodContextImplGtkGetPreedit):
(webkitInputMethodContextImplGtkFilterKeyEvent):
(webkitInputMethodContextImplGtkNotifyFocusIn):
(webkitInputMethodContextImplGtkNotifyFocusOut):
(webkitInputMethodContextImplGtkNotifyCursorArea):
(webkitInputMethodContextImplGtkReset):
(webkit_input_method_context_impl_gtk_class_init):
(webkitInputMethodContextImplGtkNew):
(webkitInputMethodContextImplGtkSetClientWindow):

  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.h: Added.
  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): If current IM filter is the default one, call webkitInputMethodContextImplGtkSetClientWindow().
(webkitWebViewBaseUnrealize): Ditto.
(webkitWebViewBaseDispose): Set a nullptr context on IM filter.
(webkitWebViewBaseKeyPressEvent): Use the new IM filter that simplifies the code.
(webkitWebViewBaseKeyReleaseEvent): Ditto.
(webkitWebViewBaseHandleMouseEvent): Cancel composition in case of click.
(webkitWebViewBaseCreateWebPage): The new IM filter doesn't need to know the page.
(webkitWebViewBaseUpdateTextInputState): Use new IM filter API.
(webkitWebViewBaseSetInputMethodContext): Set the IM filter context.
(webkitWebViewBaseGetInputMethodContext): Get the IM filter context.
(webkitWebViewBaseSynthesizeCompositionKeyPress): Synthesize a key event for composition.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/InputMethodFilterWPE.cpp: Added.

(WebKit::InputMethodFilter::platformTransformCursorRectToViewCoordinates):
(WebKit::InputMethodFilter::platformEventKeyIsKeyPress const):

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::setInputMethodState):
(WebKit::PageClientImpl::selectionDidChange):

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

(WKWPE::View::setInputMethodContext): Set the IM filter context.
(WKWPE::View::inputMethodContext const): Get the IM filter context.
(WKWPE::View::setInputMethodState): Enable or disable input methods.
(WKWPE::View::selectionDidChange): Notify the IM filter about the cursor position change.
(WKWPE::View::setViewState): Notify the IM filter about the focus change.
(WKWPE::View::handleKeyboardEvent): Allow the IM filter to handle the key event.
(WKWPE::View::synthesizeCompositionKeyPress): Synthesize a key event for composition.

  • UIProcess/API/wpe/WPEView.h:
  • UIProcess/API/wpe/WebKitInputMethodContext.h: Added.
  • UIProcess/API/wpe/WebKitInputMethodContextWPE.cpp: Added.

(webkit_input_method_underline_set_color):
(webkit_input_method_context_filter_key_event):

  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
  • UIProcess/API/wpe/webkit.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/gtk/InputMethodFilter.cpp: Removed.
  • UIProcess/gtk/InputMethodFilter.h: Removed.
  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::updateEditorState): Save the editor state and notify about selection change.
(WebKit::WebPageProxy::setInputMethodState): Notify the page client about the input method state.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::setInputMethodState): Implement this for WPE too.

  • WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:

(WebKit::WebEditorClient::handleInputMethodKeydown): Use handledByInputMethod() now.

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformEditorState const): Save the current caret cursor rectangle in post layout data struct.
(WebKit::WebPage::setInputMethodState): Send SetInputMethodState message to the UI process if state changed.

Tools:

Remove the old unit tests for InputMethodFilter and add new tests using the new API.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKit/gtk/InputMethodFilter.cpp: Removed.
  • TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp: Added.

(webkitInputMethodContextMockFinalize):
(webkitInputMethodContextMockGetPreedit):
(webkitInputMethodContextMockFilterKeyEvent):
(webkitInputMethodContextMockNotifyFocusIn):
(webkitInputMethodContextMockNotifyFocusOut):
(webkitInputMethodContextMockReset):
(webkit_input_method_context_mock_class_init):
(webkit_input_method_context_mock_init):
(testWebKitInputMethodContextSimple):
(testWebKitInputMethodContextSequence):
(testWebKitInputMethodContextInvalidSequence):
(testWebKitInputMethodContextCancelSequence):
(testWebKitInputMethodContextReset):
(beforeAll):
(afterAll):

  • TestWebKitAPI/glib/CMakeLists.txt:
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
  • TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp:

(WebViewTest::clickMouseButton):
(WebViewTest::keyStroke):

5:24 AM Changeset in webkit [253748] by cturner@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][EME] Notify all elements waiting for CDM attachment
https://bugs.webkit.org/show_bug.cgi?id=205382

Reviewed by Xabier Rodriguez-Calvar.

When multiple demuxers are in flight asking for a CDM instance,
only one of them was getting woken up when a CDM was attached,
leaving the other(s) blocking their respective streaming threads
and locking the pipeline. Switch back to a condition variable from
a semaphore to fix this issue.

Covered by existing tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
Initialize the new isPlayerShuttingDown predicate to false.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Set the new predicate for player shutdown at the start of
destruction, so that background threads can known when the should
abort their operations as a result of being unblocked by the
destructor.
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage): Go back
to using condition variables, so we can unblock more than one
waiter.
(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceAttached):
Helper predicate to make clear that the presence of a valid
CDMInstance pointer is a sign that it has been attached.

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

an isPlayerShuttingDown method using an Atomic<bool>. We need this
to avoid racing set_context() on a decryptor element with the
pipeline being set to NULL. Before we were using the notifier as a
proxy for player shutdown, since it is invalidated during player
destruction. This is not a maintainable solution, since other
programmers would feel free to reorder the position at which the
notifier is invalidated, and then introduce a very hard to find
bug. By introducing this flag at the start of destruction, we will
always have a known way to check, after a streaming thread has
woken up again, whether we should call any player methods, or
return early due to shutdown in progress.
(WebCore::MediaPlayerPrivateGStreamer::isPlayerShuttingDown
const): Predicate for player in the process of shutdown. This
should be used by background threads, which upon wakeup, may need
to be aware of whether they will be in a race with the pipeline
going to NULL.
(WebCore::MediaPlayerPrivateGStreamer::isCDMAttached const):

4:54 AM Changeset in webkit [253747] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

REGRESSION(r253683): [GTK][WPE] Lots of offscreen-canvas WPT tests failing

Unreviewed gardening. Skip the tests meanwhile the issue is not fixed.
See webkit.org/b/205445

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:31 AM Changeset in webkit [253746] by graouts@webkit.org
  • 1 add in trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt

Animations stop if new tab opened (and closed)
https://bugs.webkit.org/show_bug.cgi?id=202360
<rdar://problem/55923261>

Unreviewed test gardening. Rolling back this platform-specific expectation which it looks like the bots are unhappy about.

  • platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.
1:53 AM Changeset in webkit [253745] by ChangSeok Oh
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[GTK] Build fix for ANGLE_WEBGL after r253650
https://bugs.webkit.org/show_bug.cgi?id=205426

Reviewed by Carlos Alberto Lopez Perez.

libglesv2_entry_points_headers was removed in r253650 that updated CMake for ANGLE.
GLESv2.cmake seems to be susceptible to ANGLE changes, so it might not be
a good place where any platform specific configuration is located.
Let's move the entry points header set to CMakeLists.txt.

  • CMakeLists.txt:
1:44 AM Changeset in webkit [253744] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[CoordinatedGraphics] ThreadedDisplayRefreshMonitor is never released
https://bugs.webkit.org/show_bug.cgi?id=205387

Reviewed by Žan Doberšek.

Source/WebCore:

The problem is that DisplayRefreshMonitorManager::createMonitorForClient() always creates a new one for
RenderingUpdateScheduler because it's not notified of the window screen change. So,
createDisplayRefreshMonitor() is called every time, which returns a reference of the same object, but it's added
to the monitors vector of DisplayRefreshMonitorManager and never removed from there.

  • page/Chrome.cpp:

(WebCore::Chrome::windowScreenDidChange): Notify the RenderingUpdateScheduler about the screen change.

  • page/RenderingUpdateScheduler.h: Make windowScreenDidChange public.

Source/WebKit:

Update the window screen ID after creating the layer tree host to ensure that the call to
createDisplayRefreshMonitor will create the ThreadedDisplayRefrershMonitor instead of the default one.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Use the dispalyID of the layer tree host.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::LayerTreeHost): Initialize the display ID.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
1:34 AM Changeset in webkit [253743] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

[WPE] Missing UIScriptController implementation
https://bugs.webkit.org/show_bug.cgi?id=200295

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-12-19
Reviewed by Žan Doberšek.

Tools:

Add initial implementation of UIScriptController for WPE.

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:
  • WebKitTestRunner/PlatformWPE.cmake:
  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::addToWindow):
(WTR::PlatformWebView::removeFromWindow):

  • WebKitTestRunner/wpe/UIScriptControllerWPE.cpp: Added.

(WTR::UIScriptController::create):
(WTR::UIScriptControllerWPE::doAsyncTask):
(WTR::UIScriptControllerWPE::setContinuousSpellCheckingEnabled):
(WTR::UIScriptControllerWPE::copyText):
(WTR::UIScriptControllerWPE::dismissMenu):
(WTR::UIScriptControllerWPE::isShowingMenu const):
(WTR::UIScriptControllerWPE::activateAtPoint):
(WTR::UIScriptControllerWPE::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerWPE::removeViewFromWindow):
(WTR::UIScriptControllerWPE::addViewToWindow):

  • WebKitTestRunner/wpe/UIScriptControllerWPE.h: Added.
  • wpe/backends/ViewBackend.h:

LayoutTests:

Remove expectation of a test that is now passing.

  • platform/wpe/TestExpectations:
1:03 AM Changeset in webkit [253742] by youenn@apple.com
  • 6 edits in trunk

Safari resumes autoplay audio elements after getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=197688
<rdar://problem/57674395>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by updated test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaStreamCaptureStarted):
Previously, we were piggybacking on resuming autoplay, which happens after interuption.
This is incorrect as it tries to play paused elements.
Instead we just try to play a media element if it can autoplay without changing the m_autoplaying value.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::mediaStreamCaptureStarted): Deleted.

LayoutTests:

  • webrtc/video-autoplay-expected.txt:
  • webrtc/video-autoplay.html:
12:35 AM Changeset in webkit [253741] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed GTK gardening. Mark /webkit/WebKitWebsiteData/configuration as flaky

  • TestWebKitAPI/glib/TestExpectations.json:

Dec 18, 2019:

11:47 PM Changeset in webkit [253740] by sihui_liu@apple.com
  • 33 edits in trunk/Source

IndexedDB: perform IDBServer work only on background thread
https://bugs.webkit.org/show_bug.cgi?id=203690
<rdar://problem/56908496>

Reviewed by Alex Christensen.

Source/WebCore:

The basic workflow of IDB server side was:

  1. IPC thread dispatches IDB messages to main thread
  2. main thread handles messages and dispatches database tasks to IDB thread
  3. IDB thread finishes work and dispatches task result to main thread
  4. main thread sends IPC messages with task results

For better performance, this patch changes the workflow to:

  1. IPC thread dispatches IDB messages to IDB thread
  2. IDB thread handles messages, perform tasks and sends IPC messages with task results

In this way, we can avoid the cost of thread hopping to main thread.

Previously IDBServer and UniqueIDBDatabase were created on the main thread and may be accessed from IDB
thread, and now they are created on the IDB thread only. Therefore, we don't need all those variables
used to sync the database status between main thread and background thread, and the logic becomes simpler.

This patch also removes timer in UniqueIDBDatabase for better performance.

Covered by existing tests.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::didCloseFromServer): IDBClient no longer needs to confirm connection close initiated by
IDBServer. When IDBServer closes the connection, it would remove the connection from the open connection set
right away.

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::didCloseFromServer):
(WebCore::IDBClient::IDBConnectionProxy::confirmDidCloseFromServer): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::confirmDidCloseFromServer): Deleted.

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::IDBConnectionToClient):

  • Modules/indexeddb/server/IDBConnectionToClient.h:

(WebCore::IDBServer::IDBConnectionToClient::clearDelegate):

  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp: Add threading assertions everywhere for safety. Also, as IDBServer

may be accessed on main thread for process suspension, we need to assert lock of IDBServer is held everywhere.
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::~IDBServer):
(WebCore::IDBServer::IDBServer::registerConnection):
(WebCore::IDBServer::IDBServer::unregisterConnection):
(WebCore::IDBServer::IDBServer::registerTransaction):
(WebCore::IDBServer::IDBServer::unregisterTransaction):
(WebCore::IDBServer::IDBServer::getOrCreateUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::openDatabase):
(WebCore::IDBServer::IDBServer::deleteDatabase):
(WebCore::IDBServer::IDBServer::abortTransaction):
(WebCore::IDBServer::IDBServer::createObjectStore):
(WebCore::IDBServer::IDBServer::deleteObjectStore):
(WebCore::IDBServer::IDBServer::renameObjectStore):
(WebCore::IDBServer::IDBServer::clearObjectStore):
(WebCore::IDBServer::IDBServer::createIndex):
(WebCore::IDBServer::IDBServer::deleteIndex):
(WebCore::IDBServer::IDBServer::renameIndex):
(WebCore::IDBServer::IDBServer::putOrAdd):
(WebCore::IDBServer::IDBServer::getRecord):
(WebCore::IDBServer::IDBServer::getAllRecords):
(WebCore::IDBServer::IDBServer::getCount):
(WebCore::IDBServer::IDBServer::deleteRecord):
(WebCore::IDBServer::IDBServer::openCursor):
(WebCore::IDBServer::IDBServer::iterateCursor):
(WebCore::IDBServer::IDBServer::establishTransaction):
(WebCore::IDBServer::IDBServer::commitTransaction):
(WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBServer::IDBServer::databaseConnectionPendingClose):
(WebCore::IDBServer::IDBServer::databaseConnectionClosed):
(WebCore::IDBServer::IDBServer::abortOpenAndUpgradeNeeded):
(WebCore::IDBServer::IDBServer::didFireVersionChangeEvent):
(WebCore::IDBServer::IDBServer::openDBRequestCancelled):
(WebCore::IDBServer::IDBServer::getAllDatabaseNames):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion):
(WebCore::IDBServer::IDBServer::requestSpace):
(WebCore::IDBServer::IDBServer::stopDatabaseActivitiesOnMainThread):
(WebCore::IDBServer::IDBServer::create): Deleted.
(WebCore::IDBServer::IDBServer::confirmDidCloseFromServer): Deleted.
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames): Deleted.
(WebCore::IDBServer::IDBServer::didGetAllDatabaseNames): Deleted.
(WebCore::IDBServer::IDBServer::postDatabaseTask): Deleted. IDBServer is on the background thread only. This
functionality is moved to its parent (WebIDBServer/InProcessIDBServer).
(WebCore::IDBServer::IDBServer::postDatabaseTaskReply): Deleted.
(WebCore::IDBServer::generateDeleteCallbackID): Deleted.
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince): Deleted. Merged to
closeAndDeleteDatabasesModifiedSince.
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins): Deleted. Merged to
closeAndDeleteDatabasesForOrigins.
(WebCore::IDBServer::IDBServer::didPerformCloseAndDeleteDatabases): Deleted.
(WebCore::IDBServer::IDBServer::tryStop): Deleted.
(WebCore::IDBServer::IDBServer::resume): Deleted.

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::lock):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: Biggest changes are:
  1. merge all perform[Task] and didPerform[Task] functions into [Task] functions.
  2. remove all database members used to track state between main thread and database thread, because the tasks

are executed in order on one background thread.

  1. m_operationAndTransactionTimer is removed. operationAndTransactionTimerFired is replaced by two functions:

handleDatabaseOperations and handleTransactions. And these functions are placed at places where we schedule the
timer.

  1. lock is moved to IDBServer because UniqueIDBDatabase will never be accessed from different threads.

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromServer):
(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::handleTransactions):
(WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
(WebCore::IDBServer::UniqueIDBDatabase::abortActiveTransactions):
(WebCore::IDBServer::UniqueIDBDatabase::close):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableRequest):
(WebCore::IDBServer::UniqueIDBDatabase::hasAnyPendingCallbacks const): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::isVersionChangeInProgress): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performUnconditionalDeleteBackingStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::generateUniqueCallbackIdentifier): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::storeCallbackOrFireError): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performStartVersionChangeTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformStartVersionChangeTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performRenameObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformClearObjectStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateIndex): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteIndex): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performRenameIndex): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameIndex): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformPutOrAdd): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performGetIndexRecord): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformGetRecord): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllRecords): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformGetAllRecords): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performGetCount): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformGetCount): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteRecord): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performOpenCursor): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformOpenCursor): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformIterateCursor): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::prepareToFinishTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::transactionDestroyed): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::confirmDidCloseFromServer): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::isCurrentlyInUse const): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::hasUnfinishedTransactions const): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performActivateTransactionInBackingStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::didPerformActivateTransactionInBackingStore): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::maybeFinishHardClose): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::isDoneWithHardClose): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performErrorCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performKeyDataCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performGetResultCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllResultsCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::performCountCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::forgetErrorCallback): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::abortTransactionOnMainThread): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::commitTransactionOnMainThread): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::suspend): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::resume): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

(WebCore::IDBServer::UniqueIDBDatabase::server):
(WebCore::IDBServer::UniqueIDBDatabase::hardClosedForUserDelete const): Deleted.
(): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp: The callbacks will be called right away, so there

is no need to keep weak pointers.
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::confirmDidCloseFromServer): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::server):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::databaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setMainThreadAbortResult):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::mainThreadAbortResult const):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setState): Deleted.
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::state const): Deleted.
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setResult): Deleted.
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::result const): Deleted.
(): Deleted.

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::nextServerResourceNumber):

  • loader/EmptyClients.cpp:

Source/WebKit:

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::suspend):
(WebKit::WebIDBServer::resume):
(WebKit::WebIDBServer::openDatabase):
(WebKit::WebIDBServer::deleteDatabase):
(WebKit::WebIDBServer::abortTransaction):
(WebKit::WebIDBServer::commitTransaction):
(WebKit::WebIDBServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBServer::createObjectStore):
(WebKit::WebIDBServer::deleteObjectStore):
(WebKit::WebIDBServer::renameObjectStore):
(WebKit::WebIDBServer::clearObjectStore):
(WebKit::WebIDBServer::createIndex):
(WebKit::WebIDBServer::deleteIndex):
(WebKit::WebIDBServer::renameIndex):
(WebKit::WebIDBServer::putOrAdd):
(WebKit::WebIDBServer::getRecord):
(WebKit::WebIDBServer::getAllRecords):
(WebKit::WebIDBServer::getCount):
(WebKit::WebIDBServer::deleteRecord):
(WebKit::WebIDBServer::openCursor):
(WebKit::WebIDBServer::iterateCursor):
(WebKit::WebIDBServer::establishTransaction):
(WebKit::WebIDBServer::databaseConnectionPendingClose):
(WebKit::WebIDBServer::databaseConnectionClosed):
(WebKit::WebIDBServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBServer::didFireVersionChangeEvent):
(WebKit::WebIDBServer::openDBRequestCancelled):
(WebKit::WebIDBServer::getAllDatabaseNames):
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::postTask):
(WebKit::WebIDBServer::dispatchToThread):
(WebKit::WebIDBServer::registerConnection): Deleted.
(WebKit::WebIDBServer::unregisterConnection): Deleted.
(WebKit::WebIDBServer::confirmDidCloseFromServer): Deleted.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::prepareToSuspend):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

Source/WebKitLegacy:

Make class InProcessIDBServer ThreadSafeRefCounted. It now has a background thread which IDBServer runs on.
InProcessIDBServer knows to dispatch tasks to database thread and dispatch task replies to main thread.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::create):
(InProcessIDBServer::~InProcessIDBServer):
(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::deleteDatabase):
(InProcessIDBServer::didDeleteDatabase):
(InProcessIDBServer::openDatabase):
(InProcessIDBServer::didOpenDatabase):
(InProcessIDBServer::didAbortTransaction):
(InProcessIDBServer::didCommitTransaction):
(InProcessIDBServer::didCreateObjectStore):
(InProcessIDBServer::didDeleteObjectStore):
(InProcessIDBServer::didRenameObjectStore):
(InProcessIDBServer::didClearObjectStore):
(InProcessIDBServer::didCreateIndex):
(InProcessIDBServer::didDeleteIndex):
(InProcessIDBServer::didRenameIndex):
(InProcessIDBServer::didPutOrAdd):
(InProcessIDBServer::didGetRecord):
(InProcessIDBServer::didGetAllRecords):
(InProcessIDBServer::didGetCount):
(InProcessIDBServer::didDeleteRecord):
(InProcessIDBServer::didOpenCursor):
(InProcessIDBServer::didIterateCursor):
(InProcessIDBServer::abortTransaction):
(InProcessIDBServer::commitTransaction):
(InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(InProcessIDBServer::createObjectStore):
(InProcessIDBServer::deleteObjectStore):
(InProcessIDBServer::renameObjectStore):
(InProcessIDBServer::clearObjectStore):
(InProcessIDBServer::createIndex):
(InProcessIDBServer::deleteIndex):
(InProcessIDBServer::renameIndex):
(InProcessIDBServer::putOrAdd):
(InProcessIDBServer::getRecord):
(InProcessIDBServer::getAllRecords):
(InProcessIDBServer::getCount):
(InProcessIDBServer::deleteRecord):
(InProcessIDBServer::openCursor):
(InProcessIDBServer::iterateCursor):
(InProcessIDBServer::establishTransaction):
(InProcessIDBServer::fireVersionChangeEvent):
(InProcessIDBServer::didStartTransaction):
(InProcessIDBServer::didCloseFromServer):
(InProcessIDBServer::notifyOpenDBRequestBlocked):
(InProcessIDBServer::databaseConnectionPendingClose):
(InProcessIDBServer::databaseConnectionClosed):
(InProcessIDBServer::abortOpenAndUpgradeNeeded):
(InProcessIDBServer::didFireVersionChangeEvent):
(InProcessIDBServer::openDBRequestCancelled):
(InProcessIDBServer::getAllDatabaseNames):
(InProcessIDBServer::didGetAllDatabaseNames):
(InProcessIDBServer::closeAndDeleteDatabasesModifiedSince):
(InProcessIDBServer::dispatchTask):
(InProcessIDBServer::dispatchTaskReply):
(InProcessIDBServer::confirmDidCloseFromServer): Deleted.

  • Storage/InProcessIDBServer.h:
  • Storage/WebDatabaseProvider.cpp:

(WebDatabaseProvider::deleteAllDatabases):

11:35 PM Changeset in webkit [253739] by Devin Rousso
  • 12 edits in trunk/Source

Web Inspector: Elements: restrict showing paint flashing and compositing borders to the Web Inspector session
https://bugs.webkit.org/show_bug.cgi?id=205201

Reviewed by Timothy Hatcher.

We often get bugs from users who turn on paint flashing or compositing borders, close Web
Inspector, reopen Web Inspector, and are then surprised when the page flashes red or these
borders exist all over the page.

Given that the dark mode and print styles toggles are limited to the Web Inspector session,
we should make these have the same behavior.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Allow Web Inspector to override the showDebugBorders and showRepaintCounter settings via
the inspectorOverride key, rather than setting them manually via a special Page command.

Source/WebCore:

  • page/Settings.yaml:
  • inspector/agents/InspectorPageAgent.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCompositingBordersVisible): Deleted.
(WebCore::InspectorPageAgent::setCompositingBordersVisible): Deleted.
Allow Web Inspector to override the showDebugBorders and showRepaintCounter settings via
the inspectorOverride key, rather than setting them manually via a special Page command.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WI.initializeTarget):

  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/LayerTreeManager.js:

(WI.LayerTreeManager): Added.
(WI.LayerTreeManager.prototype.initializeTarget):
(WI.LayerTreeManager.supportsShowingPaintRects): Added.
(WI.LayerTreeManager.supportsVisibleCompositingBorders): Added.
(WI.LayerTreeManager.prototype.get showPaintRects): Added.
(WI.LayerTreeManager.prototype.set showPaintRects): Added.
(WI.LayerTreeManager.prototype.get compositingBordersVisible): Added.
(WI.LayerTreeManager.prototype.set compositingBordersVisible): Added.
(WI.LayerTreeManager.prototype.updateCompositingBordersVisibleFromPageIfNeeded): Added.
Use WI.LayerTreeManager to control the state of paint flashing and compositing borders, as
they're both related to the concept of layers.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.shown):
(WI.DOMTreeContentView.prototype.closed):
(WI.DOMTreeContentView.prototype.attached): Added.
(WI.DOMTreeContentView.prototype.detached): Added.
(WI.DOMTreeContentView.prototype._handleCompositingBordersVisibleChanged): Added.
(WI.DOMTreeContentView.prototype._handleCompositingBordersButtonClicked): Added.
(WI.DOMTreeContentView.prototype._handleShowPaintRectsChanged): Added.
(WI.DOMTreeContentView.prototype._handlePaingFlashingButtonClicked): Added.
(WI.DOMTreeContentView.prototype._toggleCompositingBorders): Deleted.
(WI.DOMTreeContentView.prototype._togglePaintFlashing): Deleted.
(WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings): Deleted.
(WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged): Deleted.

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype.shown):
(WI.Layers3DContentView.prototype.hidden):
(WI.Layers3DContentView.prototype.attached): Added.
(WI.Layers3DContentView.prototype.detached): Added.
(WI.Layers3DContentView.prototype._handleCompositingBordersVisibleChanged): Added.
(WI.Layers3DContentView.prototype._handleCompositingBordersButtonClicked): Added.
(WI.Layers3DContentView.prototype._handleShowPaintRectsChanged): Added.
(WI.Layers3DContentView.prototype._handlePaingFlashingButtonClicked): Added.
(WI.Layers3DContentView.prototype.closed): Deleted.
(WI.Layers3DContentView.prototype._showPaintRectsSettingChanged): Deleted.
(WI.Layers3DContentView.prototype._togglePaintFlashing): Deleted.
(WI.Layers3DContentView.prototype._updateCompositingBordersButtonState): Deleted.
(WI.Layers3DContentView.prototype._toggleCompositingBorders): Deleted.

10:35 PM Changeset in webkit [253738] by Chris Dumez
  • 12 edits
    1 move
    39 adds
    1 delete in trunk/LayoutTests

Resync web-platform-tests/dom tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205420

Reviewed by Ryosuke Niwa.

Resync web-platform-tests/dom tests from upstream b5b7813e9ce247495b0df.

  • resources/resource-files.json:
  • web-platform-tests/dom/*: Updated.
10:18 PM Changeset in webkit [253737] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 97

Added a tag for Safari Technology Preview release 97.

9:27 PM Changeset in webkit [253736] by commit-queue@webkit.org
  • 6 edits in trunk

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

"We think this may have caused a membuster regression, so
rolling it out." (Requested by nham on #webkit).

Reverted changeset:

"Navigation from empty page doesn't use cached web process"
https://bugs.webkit.org/show_bug.cgi?id=205015
https://trac.webkit.org/changeset/253646

7:16 PM Changeset in webkit [253735] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205364
<rdar://problem/58025862>

Reviewed by Simon Fraser.

Fix the test by waiting for rAF and avoid running checkForScroll more than once.

  • platform/mac-wk2/TestExpectations: Removed the flaky expectation.
  • tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
7:12 PM Changeset in webkit [253734] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205363
<rdar://problem/58025488>

Reviewed by Wenson Hsieh.

Fix the test by waiting for rAF and avoid running checkForScroll more than once.

  • platform/mac-wk2/TestExpectations:
  • tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
6:38 PM Changeset in webkit [253733] by commit-queue@webkit.org
  • 5 edits in trunk

Add SPI WKWebView._updateWebpagePreferences to replace _updateWebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=205427

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-18
Reviewed by Wenson Hsieh.

Source/WebKit:

This blocks the removal of _WKWebsitePolicies.
This change is verified by an API test.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateWebsitePolicies:]):
(-[WKWebView _updateWebpagePreferences:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

6:38 PM Changeset in webkit [253732] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, build fix after r253730
https://bugs.webkit.org/show_bug.cgi?id=204398

Thread::destructTLS is always required in POSIX environments

  • wtf/Threading.h:
6:21 PM Changeset in webkit [253731] by timothy_horton@apple.com
  • 6 edits in trunk/Source

macCatalyst: Cursor should update when the platform deems it necessary
https://bugs.webkit.org/show_bug.cgi?id=205429
<rdar://problem/57983076>

Reviewed by Wenson Hsieh.

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::positionInformation):
Expose the current cursor and caret size on position information so
that macCatalyst UIKit can retrieve it out-of-band (in addition to
setting it when we do a hit-test, like in r253636).

  • page/EventHandler.h:

Expose selectCursor for WebKit's use.

6:01 PM Changeset in webkit [253730] by Fujii Hironori
  • 5 edits in trunk/Source/WTF

[Win] Use thread_local to hold Ref<WTF::Thread> in the thread rather than using FLS
https://bugs.webkit.org/show_bug.cgi?id=204398

Reviewed by Yusuke Suzuki.

Use thread_local which is faster than FLS.

  • wtf/Threading.cpp:

(WTF::initializeThreading):

  • wtf/Threading.h:

(WTF::Thread::current):

  • wtf/ThreadingPrimitives.h: Deleted threadSpecificKeyCreate and

related functions which aren't used now in Windows port. Deleted
THREAD_SPECIFIC_CALL macro which isn't used now.

  • wtf/win/ThreadingWin.cpp: Added a thread_local variable s_threadHolder.

(WTF::Thread::ThreadHolder::~ThreadHolder): Added.
(WTF::Thread::currentMayBeNull):
(WTF::Thread::initializeTLS): Store a reference of Thread into s_threadHolder.
(WTF::Thread::initializeTLSKey): Deleted.
(WTF::Thread::destructTLS): Deleted.

4:35 PM Changeset in webkit [253729] by Jonathan Bedard
  • 2 edits in trunk/Tools

test-lldb-webkit: Run in CI (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=205315

Unreviewed follow-up fix.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunWebKitPyTests.start): Call method of parent class to avoid infinite recursion.

4:30 PM Changeset in webkit [253728] by commit-queue@webkit.org
  • 4 edits
    2 adds
    1 delete in trunk

Animations stop if new tab opened (and closed)
https://bugs.webkit.org/show_bug.cgi?id=202360
<rdar://problem/55923261>

Patch by Antoine Quint <Antoine Quint> on 2019-12-18
Reviewed by Dean Jackson.

Source/WebCore:

In the case where we would have a fill-forwards software animation when an animation that could be
accelerated started, we would fail to start an accelerated animation because we had no composited
renderer. However, we would still advertise a state of "running accelerated" and the DocumentTimeline
would not schedule ticks to run the animation in software.

We now only schedule accelerated animations once their delay phase is over and the animation is in its
"active" phase, which helps to only schedule accelerated animations once they actually have an effect
that is worth accelerating, and reset pending accelerated actions in case we try to start an accelerated
animation but fail to because we don't have a composited renderer.

Test: webanimations/animation-of-accelerated-property-after-non-accelerated-property.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::updateAcceleratedAnimationState):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • animation/KeyframeEffect.h:

LayoutTests:

Add a ref test that checks that an element with a software animation followed by an animation of a property
that can be accelerated yields animations in both cases.

Also, somehow, the WPT test dom/events/Event-dispatch-on-disabled-elements.html seems to now pass an extra
test that would fail on iOS and now behaves like macOS, so we remove that platform-specific expectation.

  • platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt
  • webanimations/animation-of-accelerated-property-after-non-accelerated-property-expected.html: Added.
  • webanimations/animation-of-accelerated-property-after-non-accelerated-property.html: Added.
3:57 PM Changeset in webkit [253727] by Alan Coon
  • 1 edit in branches/safari-608-branch/Source/WebCore/loader/FrameLoader.cpp

Fix merge conflict resolution. rdar://problem/58049166

3:47 PM Changeset in webkit [253726] by Alan Coon
  • 10 edits in branches/safari-609.1.13-branch

Revert r253493. rdar://problem/58028534

3:21 PM Changeset in webkit [253725] by Alan Coon
  • 8 edits in tags/Safari-609.1.12.3/Source

Versioning.

3:17 PM Changeset in webkit [253724] by Alan Coon
  • 1 copy in tags/Safari-609.1.12.3

New tag.

2:52 PM Changeset in webkit [253723] by achristensen@apple.com
  • 8 edits in trunk

Add ObjC version of WKBundleFrameIsMainFrame
https://bugs.webkit.org/show_bug.cgi?id=205415

Reviewed by Brian Weinstein.

Source/WebKit:

I need this for rdar://problem/57132290
Covered by API tests.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame isMainFrame]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:

(-[UserContentWorldRemoteObject didObserveMainFrame]):
(-[UserContentWorldRemoteObject didObserveSubframe]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorldPlugIn.mm:

(-[UserContentWorldPlugIn webProcessPlugInBrowserContextController:globalObjectIsAvailableForFrame:inScriptWorld:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorldProtocol.h:
2:29 PM Changeset in webkit [253722] by eric.carlson@apple.com
  • 11 edits in trunk/Source

Remove more unused MediaPlayer methods
https://bugs.webkit.org/show_bug.cgi?id=205405
<rdar://problem/58049744>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this just removes unused code.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerIsInMediaDocument const): Deleted.

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::inMediaDocument const): Deleted.
(WebCore::MediaPlayer::handlePlaybackCommand): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerPlatformVolumeConfigurationRequired const):
(WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand): Deleted.
(WebCore::MediaPlayerClient::mediaPlayerIsInMediaDocument const): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::requestedRate const): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

(WebCore::MediaPlayerPrivateAVFoundation::metaDataAvailable const):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::platformPlay):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerHandlePlaybackCommand): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsInMediaDocument const): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
2:22 PM Changeset in webkit [253721] by Jonathan Bedard
  • 6 edits
    3 adds in trunk/Tools

results.webkit.org: Serve files in uploaded archive
https://bugs.webkit.org/show_bug.cgi?id=201654

Reviewed by Stephanie Lewis.

  • resultsdbpy/resultsdbpy/controller/configuration.py:

(Configuration.to_query): Conver a configuration object to a query string.

  • resultsdbpy/resultsdbpy/controller/configuration_unittest.py:

(ConfigurationUnittest):
(ConfigurationUnittest.test_to_query):

  • resultsdbpy/resultsdbpy/flask_support/util.py:

(query_as_string): Convert the current query to a string.

  • resultsdbpy/resultsdbpy/model/archive_context.py:

(ArchiveContext._files_for_archive): Python's shutil creates archives which
don't have have a root directory.
(ArchiveContext.file): We need to add query parameters to relative links
In the returned file.

  • resultsdbpy/resultsdbpy/view/archive_view.py: Added.

(ArchiveView):
(ArchiveView.init):
(ArchiveView.list): Return html which lists and links to the provided paths.
(ArchiveView.extract): Endpoint which extracts a file from an archive matching
the provided arguments.

  • resultsdbpy/resultsdbpy/view/archive_view_unittest.py: Added.

(ArchiveViewUnittest):
(ArchiveViewUnittest.register_archive):
(ArchiveViewUnittest.test_directory):
(ArchiveViewUnittest.test_file):

  • resultsdbpy/resultsdbpy/view/templates/archive_list.html: Added.
  • resultsdbpy/resultsdbpy/view/view_routes.py:

(ViewRoutes.init): Add archive endpoints.

2:20 PM Changeset in webkit [253720] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r253654. rdar://problem/58049166

executeIfJavaScriptURL should check requester's security origin
https://bugs.webkit.org/show_bug.cgi?id=205324

Reviewed by Brent Fulgham.

Don't execute the JavaScript in ScriptController::executeIfJavaScriptURL if the security origin
of the current document is no longer accessible from the request originator's security origin.

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeIfJavaScriptURL): Added a check.
  • bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::urlSelected): Pass around the security origin of the requester. (WebCore::FrameLoader::submitForm):

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

2:05 PM Changeset in webkit [253719] by Matt Lewis
  • 2 edits in trunk/Tools

Update WebGL bot hostname
https://bugs.webkit.org/show_bug.cgi?id=205349

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Changed hostname

to bring it in line with non standard testers.

2:05 PM Changeset in webkit [253718] by yurys@chromium.org
  • 7 edits
    3 adds in trunk

Web Inspector: Runtime.enable reports duplicates (non existent) contexts
https://bugs.webkit.org/show_bug.cgi?id=204859

Reviewed by Devin Rousso.

Source/WebCore:

Do not report main world context as non-main world one when Runtime.enable is called.

Test: inspector/runtime/executionContextCreated-onEnable.html

  • inspector/agents/page/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):

Source/WebInspectorUI:

Assert that all contexts added to the list are unique.

  • UserInterface/Models/ExecutionContextList.js:

(WI.ExecutionContextList.prototype.add):

LayoutTests:

Test that only existing contexts are reported.

  • http/tests/inspector/resources/stable-id-map.js: Added.

(TestPage.registerInitializer.window.StableIdMap):
(TestPage.registerInitializer.window.StableIdMap.prototype.get size):
(TestPage.registerInitializer.window.StableIdMap.prototype.get let):
(TestPage.registerInitializer):

  • http/tests/inspector/target/provisional-load-cancels-previous-load.html:
  • inspector/runtime/executionContextCreated-onEnable-expected.txt: Added.
  • inspector/runtime/executionContextCreated-onEnable.html: Added.
2:03 PM Changeset in webkit [253717] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Optimize Style::Invalidator for multiple RuleSet case
https://bugs.webkit.org/show_bug.cgi?id=205406

Reviewed by Zalan Bujtas.

  • style/StyleInvalidator.cpp:

(WebCore::Style::m_dirtiesAllStyle):
(WebCore::Style::Invalidator::Invalidator):
(WebCore::Style::Invalidator::collectRuleInformation):

Collect bunch of bits so we don't need to traverse again.

(WebCore::Style::Invalidator::invalidateIfNeeded):

Bail out when we find a reson to invalidate.

(WebCore::Style::Invalidator::invalidateStyle):
(WebCore::Style::Invalidator::invalidateInShadowTreeIfNeeded):

  • style/StyleInvalidator.h:
1:47 PM Changeset in webkit [253716] by Andres Gonzalez
  • 7 edits in trunk/Source/WebCore

AXIsolatedObject support for spin button increment/decrementButton.
https://bugs.webkit.org/show_bug.cgi?id=205356

Reviewed by Chris Fleizach.

Several LayoutTests exercise this functionality.

  • Exposed increment/decrementButton in AXCoreObject in order to

properly support it in AXIsolatedObject.

  • Used AXCoreObject::increment/decrementButton in the wrapper instead

of downcasting to an implementation class, which does not work for an
isolated object.

  • Implemented AXIsolatedObject::isDetachedFromParent.
  • Fixed initialization of AXIsolatedObject::m_parent and m_id.
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilitySpinButton.h:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::isDetachedFromParent):
(WebCore::AXIsolatedObject::isAccessibilityScrollView const):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

1:44 PM Changeset in webkit [253715] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r253662. rdar://problem/58049156

Limit URL to reasonable size
https://bugs.webkit.org/show_bug.cgi?id=203825
<rdar://problem/56878680>

Reviewed by Ryosuke Niwa.

  • page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::canDisplay const): Place an upper bound on the amount of memory a URL may consume.

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

1:43 PM Changeset in webkit [253714] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r253653. rdar://problem/58049166

Document::setFocusedElement should not set m_focusedElement to an element in another document
https://bugs.webkit.org/show_bug.cgi?id=205325

Reviewed by Wenson Hsieh.

Added an early exit for when the newly focused element had moved
while blurring the previously focused element.

  • dom/Document.cpp: (WebCore::Document::setFocusedElement):

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

1:43 PM Changeset in webkit [253713] by Alan Coon
  • 6 edits
    4 adds in branches/safari-608-branch

Cherry-pick r253563. rdar://problem/58049160

Consider top-level context whose origin is unique as insecure
https://bugs.webkit.org/show_bug.cgi?id=205111
Source/WebCore:

Reviewed by Brent Fulgham.

Tests: http/tests/security/top-level-unique-origin.https.html

http/tests/security/top-level-unique-origin2.https.html

  • dom/Document.cpp: (WebCore::Document::isSecureContext const): There is no guarantee that top level unique origin contexts like data URL are SecureContext. This patch makes them no longer SecureContext. This helps getting closer to https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy which identifies all unique origins as "Not Trustworthy". Child unique origin contexts will stay SecureContext if their parents are.

Tools:

<rdar://problem/57834967>

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm: (TEST): Disable secure context checks so that loading directly about:blank from the API test can call DeviceOrientationEvent.requestPermission() successfully.

LayoutTests:

Reviewed by Brent Fulgham.

  • http/tests/security/top-level-unique-origin.https-expected.txt: Added.
  • http/tests/security/top-level-unique-origin.https.html: Added.
  • http/tests/security/top-level-unique-origin2.https-expected.txt: Added.
  • http/tests/security/top-level-unique-origin2.https.html: Added.
  • platform/win/TestExpectations: Skipping second test as timing out in windows.

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

1:43 PM Changeset in webkit [253712] by Alan Coon
  • 4 edits
    2 adds in branches/safari-608-branch

Cherry-pick r253544. rdar://problem/58049164

SecurityOrigin should be unique for null blob URLs that have been unregistered
https://bugs.webkit.org/show_bug.cgi?id=205169

Reviewed by Darin Adler.

Source/WebCore:

In case we cannot retrieve a cached origin for a null origin, just create a unique one.
This is better than having an origin with an empty host and empty scheme.

Test: http/tests/security/blob-null-url-location-origin.html

  • fileapi/ThreadableBlobRegistry.cpp: (WebCore::ThreadableBlobRegistry::unregisterBlobURL): (WebCore::ThreadableBlobRegistry::getCachedOrigin):

LayoutTests:

  • http/tests/security/blob-null-url-location-origin-expected.txt: Added.
  • http/tests/security/blob-null-url-location-origin.html: Added.
  • platform/win/TestExpectations: Skipping test as timing out in windows.

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

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

[LFC][IFC] LineLayoutContext::m_uncommittedList is not always a continuous list of runs
https://bugs.webkit.org/show_bug.cgi?id=205404
<rdar://problem/58049699>

Reviewed by Antti Koivisto.

Since LineLayoutContext's m_uncommittedList is not necessarily continuous set of runs (continuous in the content of not having a soft wrap opportunity)
we can't use LineBreaker's Content struct anymore to store the uncommitted content.
Let's use a dedicated UncommittedContent struct instead. It also enables us to pass in a const RunList& to the ContinousContent. ContinousContent should never mutate this list.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::shouldKeepEndOfLineWhitespace):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::ContinousContent::ContinousContent):
(WebCore::Layout::LineBreaker::ContinousContent::hasTextContentOnly const):
(WebCore::Layout::LineBreaker::ContinousContent::isVisuallyEmptyWhitespaceContentOnly const):
(WebCore::Layout::LineBreaker::ContinousContent::firstTextRunIndex const):
(WebCore::Layout::LineBreaker::ContinousContent::hasNonContentRunsOnly const):
(WebCore::Layout::LineBreaker::ContinousContent::TrailingCollapsibleContent::reset):
(WebCore::Layout::LineBreaker::Content::append): Deleted.
(WebCore::Layout::LineBreaker::Content::reset): Deleted.
(WebCore::Layout::LineBreaker::Content::shrink): Deleted.
(WebCore::Layout::LineBreaker::Content::hasTextContentOnly const): Deleted.
(WebCore::Layout::LineBreaker::Content::isVisuallyEmptyWhitespaceContentOnly const): Deleted.
(WebCore::Layout::LineBreaker::Content::firstTextRunIndex const): Deleted.
(WebCore::Layout::LineBreaker::Content::hasNonContentRunsOnly const): Deleted.
(WebCore::Layout::LineBreaker::Content::TrailingCollapsibleContent::reset): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:

(WebCore::Layout::LineBreaker::ContinousContent::runs const):
(WebCore::Layout::LineBreaker::ContinousContent::isEmpty const):
(WebCore::Layout::LineBreaker::ContinousContent::size const):
(WebCore::Layout::LineBreaker::Content::runs): Deleted.
(WebCore::Layout::LineBreaker::Content::runs const): Deleted.
(WebCore::Layout::LineBreaker::Content::isEmpty const): Deleted.
(WebCore::Layout::LineBreaker::Content::size const): Deleted.
(WebCore::Layout::LineBreaker::Content::width const): Deleted.
(WebCore::Layout::LineBreaker::Content::nonCollapsibleWidth const): Deleted.
(WebCore::Layout::LineBreaker::Content::hasTrailingCollapsibleContent const): Deleted.
(WebCore::Layout::LineBreaker::Content::isTrailingContentFullyCollapsible const): Deleted.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::processUncommittedContent):
(WebCore::Layout::LineLayoutContext::UncommittedContent::append):
(WebCore::Layout::LineLayoutContext::UncommittedContent::reset):
(WebCore::Layout::LineLayoutContext::UncommittedContent::shrink):

  • layout/inlineformatting/LineLayoutContext.h:

(WebCore::Layout::LineLayoutContext::UncommittedContent::width const):
(WebCore::Layout::LineLayoutContext::UncommittedContent::size):
(WebCore::Layout::LineLayoutContext::UncommittedContent::isEmpty):
(WebCore::Layout::LineLayoutContext::UncommittedContent::runs const):

12:44 PM Changeset in webkit [253710] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Protect ServiceWorker::postMessage from a null execState
https://bugs.webkit.org/show_bug.cgi?id=205394
<rdar://problem/57392221>

Reviewed by Chris Dumez.

Crash logs indicate null pointer crashes.
We should return early in that case.

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

12:32 PM Changeset in webkit [253709] by Jonathan Bedard
  • 3 edits in trunk/Tools

GPU-Process: Bring up automated tester
https://bugs.webkit.org/show_bug.cgi?id=205229

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Add GPU Process tester,

derived from debug testing queue.

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

[LFC][IFC] LineBreaker::lastSoftWrapOpportunity should take a list of runs
https://bugs.webkit.org/show_bug.cgi?id=205402
<rdar://problem/58048310>

Reviewed by Antti Koivisto.

LineBreaker::Content is supposed to hold a continuous set of runs and the input to lastSoftWrapOpportunity is not
necessarily continuous (most of the time it is though).

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::isContentSplitAllowed):
(WebCore::Layout::LineBreaker::wrapTextContent const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::LineBreaker::lastSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::Content::lastSoftWrapOpportunity): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

12:17 PM Changeset in webkit [253707] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

AppCache should request certificate info when loading resources
https://bugs.webkit.org/show_bug.cgi?id=205393

Reviewed by Anders Carlsson.

Covered by existing tests not crashing in Debug with newly added ASSERT.

  • Modules/mediastream/UserMediaController.cpp:

(WebCore::isSecure):
ASSERT that certificate info is there.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):
ASSERT that certificate info is there.

  • loader/appcache/ApplicationCacheResourceLoader.cpp:

(WebCore::ApplicationCacheResourceLoader::create):
Request certificate info for all app cache resources.

12:06 PM Changeset in webkit [253706] by Devin Rousso
  • 7 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Elements: remove the "Show/Hide Shadow DOM" navigation item
https://bugs.webkit.org/show_bug.cgi?id=205199

Reviewed by Timothy Hatcher.

There's really no good reason to hide shadow DOM, especially for non-user-agent shadow trees.
The user has full control over whether to expand/collapse shadow trees (and their hosts), so
having a setting that entirely removes the shadow trees from view throughout Web Inspector
seems overkill.

  • UserInterface/Base/Setting.js:
  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.get nextSibling):
(WI.DOMNode.prototype.get previousSibling):
(WI.DOMNode.prototype.get children):
(WI.DOMNode.prototype.get childNodeCount):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype.closed):
(WI.DOMTreeContentView.prototype._showShadowDOMSettingChanged): Deleted.
(WI.DOMTreeContentView.prototype._toggleShowsShadowDOMSetting): Deleted.

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.close):
(WI.DOMTreeOutline.prototype._revealAndSelectNode):
(WI.DOMTreeOutline.prototype._showShadowDOMSettingChanged): Deleted.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WI.LayerTreeDetailsSidebarPanel.prototype.initialLayout):
(WI.LayerTreeDetailsSidebarPanel.prototype._updateDisplayWithLayers):
(WI.LayerTreeDetailsSidebarPanel.prototype._showShadowDOMSettingChanged): Deleted.

  • UserInterface/Images/ShadowDOM.svg: Removed.
  • Localizations/en.lproj/localizedStrings.js:
11:40 AM Changeset in webkit [253705] by youenn@apple.com
  • 21 edits in trunk

Add support for Audio Capture in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=205056

Reviewed by Eric Carlson.

Source/WebCore:

Export some WebCore headers.
Allow disabling the audio session debug assert in the GPU process.
No change of behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::startUnit):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:

(WebCore::BaseAudioSharedUnit::setDisableAudioSessionCheck):

  • platform/mediastream/mac/MockAudioSharedUnit.h:

Source/WebKit:

Make UserMediaCaptureManager and Proxy able to work with GPU process.
Add support for capturing audio in the GPU process, this is limited to mock audio sources for now
as we do not support AudioSession in the GPU process.
Covered by rebased test.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::setMockCaptureDevicesEnabled):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::UserMediaCaptureManagerProxy):
(WebKit::UserMediaCaptureManagerProxy::~UserMediaCaptureManagerProxy):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::applyConstraints):
(WebKit::UserMediaCaptureManagerProxy::clone):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:

(WebKit::UserMediaCaptureManagerProxy::didReceiveMessageFromGPUProcess):
(WebKit::UserMediaCaptureManagerProxy::didReceiveSyncMessageFromGPUProcess):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveMessage):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::setShouldCaptureInGPUProcess):
(WebKit::UserMediaCaptureManager::Source::shouldCaptureInGPUProcess const):
(WebKit::UserMediaCaptureManager::Source::requestToEnd):
(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::sourceStopped):
(WebKit::UserMediaCaptureManager::captureFailed):
(WebKit::UserMediaCaptureManager::Source::connection):
(WebKit::UserMediaCaptureManager::Source::startProducingData):
(WebKit::UserMediaCaptureManager::Source::stopProducingData):
(WebKit::UserMediaCaptureManager::Source::capabilities):
(WebKit::UserMediaCaptureManager::Source::applyConstraints):
(WebKit::UserMediaCaptureManager::sourceEnded):
(WebKit::UserMediaCaptureManager::Source::hasEnded):
(WebKit::UserMediaCaptureManager::Source::stopBeingObserved):
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

(WebKit::UserMediaCaptureManager::didReceiveMessageFromGPUProcess):

LayoutTests:

  • fast/mediastream/captureAudioInGPUProcess-expected.txt:
11:39 AM Changeset in webkit [253704] by Chris Dumez
  • 17 edits in trunk/LayoutTests

Unreviewed, rebaseline all service workers tests and unskip 2 that no longer time out.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-cache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multipart-image.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/sandboxed-iframe-fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-not-allowed.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-in-sandboxed-iframe-by-csp-fetch-event.https-expected.txt:

LayoutTests:

11:31 AM Changeset in webkit [253703] by Alan Coon
  • 2 edits in tags/Safari-609.1.12.2/Source/WebKit

Cherry-pick r253696. rdar://problem/58046272

Add syscall to GPU Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=205400
<rdar://problem/58046272>

Reviewed by Simon Fraser.

This patch temporarily adds a syscall to the sandbox to work around a bug in the
system Sandbox framework. We will remove this in Bug 205400 once that issue is
resolved.

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

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

11:28 AM Changeset in webkit [253702] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk/Source

Add network loading signposts
https://bugs.webkit.org/show_bug.cgi?id=204822
<rdar://problem/57608824>

Patch by Ben Nham <Ben Nham> on 2019-12-18
Reviewed by Alex Christensen.

This adds os_signposts related to network loads to aid in debugging networking performance
issues. Since URLs are logged in the signposts, this capability is only enabled on Apple
internal builds when an environment variable is set.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cocoa/OSVariantSPI.h: Added.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::signpostLogHandle):
(WebKit::signpostsEnabled):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didSendData):
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
(WebKit::NetworkDataTaskCocoa::didCompleteWithError):
(WebKit::NetworkDataTaskCocoa::didReceiveData):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::cancel):
(WebKit::NetworkDataTaskCocoa::resume):

Source/WTF:

  • wtf/Platform.h:

Add HAVE_OS_SIGNPOST.

11:27 AM Changeset in webkit [253701] by Alan Coon
  • 8 edits in tags/Safari-609.1.12.2/Source

Versioning.

11:25 AM Changeset in webkit [253700] by Alan Coon
  • 1 copy in tags/Safari-609.1.12.2

New tag.

11:23 AM Changeset in webkit [253699] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Refine RTCMonitor logging
https://bugs.webkit.org/show_bug.cgi?id=205384

Reviewed by Eric Carlson.

Catch the case where the rtc thread is blocked in WebProcess and NetworkProcess.
Add logging of 'this' so as to disambiguate the case of several pages doing RTC in parallel.
No change of behavior.

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::stopUpdating):
(WebKit::NetworkRTCMonitor::onNetworksChanged):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::close):
(WebKit::NetworkRTCProvider::createSocket):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::canLog const):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::StartUpdating):
(WebKit::WebRTCMonitor::StopUpdating):
(WebKit::WebRTCMonitor::networksChanged):

11:12 AM Changeset in webkit [253698] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] accessibility/presentation-role-iframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205403

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:02 AM Changeset in webkit [253697] by Kate Cheney
  • 20 edits in trunk

Only report prevalent domains in the ResourceLoadStatistics data summary API
https://bugs.webkit.org/show_bug.cgi?id=205281
<rdar://problem/57975017>

Reviewed by Brent Fulgham.

Source/WebKit:

ResourceLoadStatisticsStore::aggregatedThirdPartyData() should only
return prevalent third party domains.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

Tools:

Update the GetResourceLoadStatisticsDataSummary to set third parties
as prevalent to maintain test functionality.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

LayoutTests:

The tests for the ITP data summary had to be updated to set their
third party domains to be prevalent to maintain test functionality.

All http/tests/resourceLoadStatistics/(dont-)count* tests should
no longer output the ITP data summary because the domains are not
set as prevalent.

  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-database-expected.txt:
  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-database.html:
  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access.html:
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt:
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt:
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt:
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt:
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt:
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database.html:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access.html:
10:54 AM Changeset in webkit [253696] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Add syscall to GPU Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=205400
<rdar://problem/58046272>

Reviewed by Simon Fraser.

This patch temporarily adds a syscall to the sandbox to work around a bug in the
system Sandbox framework. We will remove this in Bug 205400 once that issue is
resolved.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
10:51 AM Changeset in webkit [253695] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

Enable generic cue API
https://bugs.webkit.org/show_bug.cgi?id=205398
<rdar://problem/58044492>

Reviewed by Jon Lee.

No new tests, covered by existing tests.

  • Shared/WebPreferences.yaml:
10:47 AM Changeset in webkit [253694] by Alan Coon
  • 6 edits in branches/safari-609.1.13-branch/Source/JavaScriptCore

Cherry-pick r253608. rdar://problem/57978411

ASSERTION FAILED: length <= maximumLength in js-fixed-array-out-of-memory.js
https://bugs.webkit.org/show_bug.cgi?id=205259
<rdar://problem/57978411>

Reviewed by Mark Lam.

JSImmutableButterfly has moderate size limit on its length, while JSFixedArray does not.
We should check this maximumLength when creating it in Spread. And if it exceeds, we should
throw OOM error.

  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileSpread):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileSpread):
  • runtime/ArrayConventions.h:
  • runtime/IndexingHeader.h:
  • runtime/JSImmutableButterfly.h: (JSC::JSImmutableButterfly::tryCreate): (JSC::JSImmutableButterfly::allocationSize):

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

10:28 AM Changeset in webkit [253693] by eric.carlson@apple.com
  • 22 edits in trunk/Source

Remove unused MediaPlayer methods
https://bugs.webkit.org/show_bug.cgi?id=205341
<rdar://problem/58006776>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this just removes unused code.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaLoadingFailedFatally):
(WebCore::HTMLMediaElement::mediaPlayerSawUnsupportedTracks): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerSetSize): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerIsPaused const): Deleted.

  • html/HTMLMediaElement.h:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::setDisplayMode):

  • html/MediaDocument.cpp:

(WebCore::MediaDocument::MediaDocument):
(WebCore::MediaDocument::~MediaDocument):
(WebCore::MediaDocument::mediaElementSawUnsupportedTracks): Deleted.

  • html/MediaDocument.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::canLoadPoster const): Deleted.
(WebCore::MediaPlayer::setPoster): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerContentsScale const):
(WebCore::MediaPlayerClient::mediaPlayerPlatformVolumeConfigurationRequired const):
(WebCore::MediaPlayerClient::mediaPlayerSawUnsupportedTracks): Deleted.
(WebCore::MediaPlayerClient::mediaPlayerSetSize): Deleted.
(WebCore::MediaPlayerClient::mediaPlayerIsPaused const): Deleted.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setSize):
(WebCore::MediaPlayerPrivateInterface::canLoadPoster const): Deleted.
(WebCore::MediaPlayerPrivateInterface::setPoster): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::setSize): Deleted.
(WebCore::MediaPlayerPrivateAVFoundation::repaint): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setClosedCaptionsVisible): Deleted.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setSize): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerSawUnsupportedTracks): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRepaint): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerAcceleratedCompositingEnabled): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSetSize): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsPaused const): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsLooping const): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::canLoadPoster const): Deleted.
(WebKit::MediaPlayerPrivateRemote::setPoster): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
9:58 AM Changeset in webkit [253692] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Ensure transparency layers are properly ended when only painting root background
https://bugs.webkit.org/show_bug.cgi?id=205285

Patch by Doug Kelly <Doug Kelly> on 2019-12-18
Reviewed by Simon Fraser.

Ensure that if we are in a transparency layer and returning early from paintLayerContents() because of PaintLayerPaintingRootBackgroundOnly, we properly
reset the transparency state before returning.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContextStateStackChecker::~GraphicsContextStateStackChecker):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

9:38 AM Changeset in webkit [253691] by ChangSeok Oh
  • 3 edits in trunk/Source/WebCore

[GTK] WebGL backed by ANGLE flickers when USE_OPENGL_ES is enabled.
https://bugs.webkit.org/show_bug.cgi?id=202508

Reviewed by Žan Doberšek.

The color format and internal one of BitmapTextureGL cannot be matched
where USE_ANGLE_WEBGL and USE_OPENGL_ES are enabled simultaneously.
This causes the flickering issue on WebGL scene since it prevents TextureMapper
from recycling available layer buffers due to mismatched color format.
When ANGLE_WEBGL is enabled, the internal color format is set GL_RGBA8.
However, that is not compatible to GLES textures. To address this,
We always make the color format of BitmapTextureGL GL_RGBA,
and only set its internal color format with a given value.

No new tests since no functionality changed.

  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:

(Nicosia::GC3DLayer::swapBuffersIfNeeded):

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::BitmapTextureGL):

9:22 AM Changeset in webkit [253690] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Style::Invalidator should be able to invalidate using multiple RuleSets in one pass
https://bugs.webkit.org/show_bug.cgi?id=205391

Reviewed by Zalan Bujtas.

It is inefficient to do multiple passes over DOM if there are multiple RuleSets to invalidate with.

  • style/AttributeChangeInvalidation.cpp:

(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

Collect to a HashMap per MatchElement.

(WebCore::Style::AttributeChangeInvalidation::invalidateStyleWithRuleSets):

Call to common invalidation function in Style::Invalidator.

  • style/AttributeChangeInvalidation.h:
  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::ClassChangeInvalidation::computeInvalidation):
(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets):

Same for classes.

  • style/ClassChangeInvalidation.h:
  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::Invalidator):

Take a Vector of RuleSets.

(WebCore::Style::Invalidator::invalidateIfNeeded):

Loop as needed.

(WebCore::Style::Invalidator::invalidateStyle):
(WebCore::Style::Invalidator::invalidateInShadowTreeIfNeeded):
(WebCore::Style::Invalidator::invalidateWithMatchElementRuleSets):

Factor the invalidation loop and HashMap to Invalidator.

  • style/StyleInvalidator.h:
9:01 AM Changeset in webkit [253689] by Simon Fraser
  • 10 edits in trunk/Source

Move m_exposedContentRect into the DelegatedScrollingGeometry optional
https://bugs.webkit.org/show_bug.cgi?id=205377

Reviewed by Tim Horton.
Source/WebCore:

ScrollView's m_exposedContentRect is only set for delegated scrolling, so move it into
DelegatedScrollingGeometry and remove the iOS #ifdefs around it. Move the WAK/NSView-related
code into platformExposedContentRect() for iOS WK1. Stub out exposedContentRect() functions
on TiledCoreAnimationDrawingArea.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::exposedContentRect const):
(WebCore::ScrollView::setExposedContentRect):
(WebCore::ScrollView::platformExposedContentRect const):

  • platform/ScrollView.h:
  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::platformExposedContentRect const):
(WebCore::ScrollView::exposedContentRect const): Deleted.
(WebCore::ScrollView::setExposedContentRect): Deleted.

Source/WebKit:

ScrollView's m_exposedContentRect is only set for delegated scrolling, so move it into
DelegatedScrollingGeometry and remove the iOS #ifdefs around it. Move the WAK/NSView-related
code into platformExposedContentRect() for iOS WK1. Stub out exposedContentRect() functions
on TiledCoreAnimationDrawingArea.

  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):

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

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
(WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::exposedContentRect const):
(WebKit::TiledCoreAnimationDrawingArea::setExposedContentRect):
(WebKit::TiledCoreAnimationDrawingArea::adjustLayerFlushThrottling):

8:46 AM Changeset in webkit [253688] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

REGRESSION: 32 Tests Crashing on Mac Debug wk2 with ASSERTION FAILED: m_pendingActivityForEventDispatch
https://bugs.webkit.org/show_bug.cgi?id=205397
<rdar://problem/58043626>

Unreviewed, fix debug assertion after r253667. The debug assertion is confused because we now use
the HTML5 event loop, which takes care of taking an ActiveDOMObject PendingActivity whenever we
queue an event.

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::getNewestWorker const):
(WebCore::ServiceWorkerRegistration::updateStateFromServer):
(WebCore::ServiceWorkerRegistration::queueTaskToFireUpdateFoundEvent):
(WebCore::ServiceWorkerRegistration::stop):
(WebCore::ServiceWorkerRegistration::hasPendingActivity const):
(WebCore::ServiceWorkerRegistration::getNewestWorker): Deleted.
(WebCore::ServiceWorkerRegistration::updatePendingActivityForEventDispatch): Deleted.

  • workers/service/ServiceWorkerRegistration.h:
8:40 AM Changeset in webkit [253687] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Enable the async clipboard API by default on macOS and iOS
https://bugs.webkit.org/show_bug.cgi?id=205322
<rdar://problem/55861627>

Reviewed by Tim Horton.

Enables the asynchronous clipboard API by default on Cocoa platforms.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
8:23 AM Changeset in webkit [253686] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Reverting libANGLE.a -> libANGLE-shared.dylib.

Follow-up to remove the build phase that was trying
to fool Apple's build system.

  • ANGLE.xcodeproj/project.pbxproj:
8:23 AM Changeset in webkit [253685] by Diego Pino Garcia
  • 8 edits
    2 adds in trunk

[GTK][WPE] Renderization of Conic gradients
https://bugs.webkit.org/show_bug.cgi?id=202739

Reviewed by Carlos Alberto Lopez Perez.

.:

  • Source/cmake/OptionsGTK.cmake: Enable CSS Conic Gradients.

Source/WebCore:

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::Gradient::createPlatformGradient): Add support for conic gradient.
(WebCore::addColorStopRGBA): Refactored code to a function.
(WebCore::createConic): Creates a conic gradient.
(WebCore::addConicSector): Adds a sector to a conic gradient.
(WebCore::setCornerColorRGBA): Sets a RGBA color to mesh patch.
(WebCore::interpolateColorStop): Offset and RGBA color interpolation.

LayoutTests:

  • platform/gtk/fast/gradients/conic-gradient-alpha-expected.html: Added.
8:08 AM Changeset in webkit [253684] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

Layout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=176929

Unreviewed.

Mark it as flaky in all platforms.

7:48 AM Changeset in webkit [253683] by Chris Dumez
  • 29 edits
    1 move
    6 adds
    16 deletes in trunk/LayoutTests

Re-sync web-platform-tests/common from upstream
https://bugs.webkit.org/show_bug.cgi?id=205342

Reviewed by Frédéric Wang.

Re-sync web-platform-tests/common from upstream e9d489f3377139a1d54b.

LayoutTests/imported/w3c:

  • web-platform-tests/common/*: Updated.

LayoutTests:

  • canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt:
  • canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html:
  • canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt:
  • canvas/philip/tests/2d.drawImage.incomplete.nosrc.html:
  • canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt:
  • canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html:
  • canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt:
  • canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html:
  • canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt:
  • canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html:
  • http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing.html:
  • http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html:
7:39 AM Changeset in webkit [253682] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] LineBreaker::isAtSoftWrapOpportunity should return the wrap position
https://bugs.webkit.org/show_bug.cgi?id=205371
<rdar://problem/58029811>

Reviewed by Antti Koivisto.

Rename isAtSoftWrapOpportunity to lastSoftWrapOpportunity to reflect that it returns the last soft wrap
opportunity index.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::Content::lastSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::Content::append):
(WebCore::Layout::LineBreaker::Content::isAtSoftWrapOpportunity): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

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

[LFC][IFC] Add lastInlineItemWithContent to LineBreaker::Content::isAtSoftWrapOpportunity
https://bugs.webkit.org/show_bug.cgi?id=205362
<rdar://problem/58025349>

Reviewed by Antti Koivisto.

This is in preparation for being able to return a previous run index as the soft wrapping opportunity.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::Content::isAtSoftWrapOpportunity):

7:27 AM Changeset in webkit [253680] by dino@apple.com
  • 18 edits in trunk/Source

Reverting libANGLE.a -> libANGLE-shared.dylib.

The internal Apple build systems are still unhappy with
this change, so I'm reverting it until I can be sure
they'll accept it.

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE.xcconfig:
  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • include/CMakeLists.txt:
  • include/GLSLANG/ShaderLang.h:
  • include/GLSLANG/ShaderVars.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm:

(rx::DisplayCGL::isValidNativeWindow const):

  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm:

(rx::WindowSurfaceCGL::WindowSurfaceCGL):
(rx::WindowSurfaceCGL::~WindowSurfaceCGL):

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:

(rx::DisplayEAGL::terminate):
(rx::DisplayEAGL::isValidNativeWindow const):
(rx::WorkerContextEAGL::~WorkerContextEAGL):

  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm:

(rx::WindowSurfaceEAGL::WindowSurfaceEAGL):
(rx::WindowSurfaceEAGL::~WindowSurfaceEAGL):

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • platform/graphics/ANGLEWebKitBridge.cpp:

(WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge):
(WebCore::ANGLEWebKitBridge::cleanupCompilers):
(WebCore::ANGLEWebKitBridge::compileShaderSource):
(WebCore::ANGLEWebKitBridge::angleAvailable): Deleted.

  • platform/graphics/ANGLEWebKitBridge.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

6:57 AM Changeset in webkit [253679] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION: animations/leak-document-with-css-animation.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=205299

While this test has proven to be solid running in isolation, it appears that the difference of live documents
before and after the iframe has been destroyed may be more than one. In fact, in reported failures, there always
seems to be 2 live documents fewer after than before, instead of the expected single document.

Since internals.numberOfLiveDocuments() returns the number of live documents throughout the life of the
Web process, we now force garbage collection every time we query internals.numberOfLiveDocuments(). This
should ensure that documents pending destruction due to garbage collection to be destroyed before we take
a snapshort of the number of live documents.

Patch by Antoine Quint <Antoine Quint> on 2019-12-18
Reviewed by Antti Koivisto.

4:48 AM Changeset in webkit [253678] by Philippe Normand
  • 3 edits in trunk/Source/WebKit

[GTK][WebInspector] Support for saving remote data
https://bugs.webkit.org/show_bug.cgi?id=204618

Reviewed by Carlos Garcia Campos.

Similarly to what landed already in r251069, the Remote
WebInspector GTK client can now save data coming from the
inspector server.

  • UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformSave):

4:07 AM Changeset in webkit [253677] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Missing headers in worker files cause random build failures when adding new files
https://bugs.webkit.org/show_bug.cgi?id=205385

Patch by Chris Lord <Chris Lord> on 2019-12-18
Reviewed by Youenn Fablet.

No new tests, no behavioral changes.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:
  • workers/service/server/SWServerRegistration.cpp:
2:41 AM Changeset in webkit [253676] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[macOS/iOS Debug] Layout Test webanimations/animation-opacity-animation-crash.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=181612

This test is no longer flaky, removing any specific expectations.

Patch by Antoine Quint <Antoine Quint> on 2019-12-18
Reviewed by Dean Jackson.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
1:02 AM Changeset in webkit [253675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] OffscreenCanvas worker tests that call drawImage crash in debug builds
https://bugs.webkit.org/show_bug.cgi?id=205339

Patch by Chris Lord <Chris Lord> on 2019-12-18
Reviewed by Carlos Garcia Campos.

Don't unnecessarily create an Image object in the Cairo graphics
backend when using drawImage/drawPattern. Doing so calls code that
isn't safe to use off-main-thread and causes OffscreenCanvas worker
tests to crash in debug builds.

No new tests, no behavioral changes.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::cairoSurfaceCopy):
(WebCore::cairoSurfaceCoerceToImage):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

12:38 AM Changeset in webkit [253674] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed GTK gardening. Update expectations of unit tests

Add two flaky failures and mark /jsc/vm as slow alos in release builds.

  • TestWebKitAPI/glib/TestExpectations.json:

Dec 17, 2019:

11:00 PM Changeset in webkit [253673] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Remove iOS #ifdefs around unobscuredContentSize
https://bugs.webkit.org/show_bug.cgi?id=205372

Reviewed by Tim Horton.

Long-term, all of the ScrollView geometry data related to delegated scrolling
will move to Optional<DelegatedScrollingGeometry> m_delegatedScrollingGeometry
and not be wrapped in platform #ifdefs.

Take the first step of moving unobscuredContentSize into that struct.

I added platformUnobscuredContentRect() to handle the iOS WK1 case, called
when there is a platform widget.

m_fixedVisibleContentRect is only used by coördinated graphics.

  • page/FrameView.cpp:

(WebCore::FrameView::unobscuredContentSizeChanged):

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::unobscuredContentSize const):
(WebCore::ScrollView::setUnobscuredContentSize):
(WebCore::ScrollView::unobscuredContentRect const):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentSize const):
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea const):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea const):
(WebCore::ScrollView::platformUnobscuredContentRect const):

  • platform/ScrollView.h:

(WebCore::ScrollView::unobscuredContentSize const): Deleted.

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::platformUnobscuredContentRect const):
(WebCore::ScrollView::unobscuredContentRect const): Deleted.
(WebCore::ScrollView::setUnobscuredContentSize): Deleted.

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::platformUnobscuredContentRect const):

9:42 PM Changeset in webkit [253672] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Remove the build warning below since r253452.
warning: unused variable ‘isNewEntry’ [-Wunused-variable]

No new tests, no new behavioral changes.

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-12-17

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::addConnection):

8:16 PM Changeset in webkit [253671] by Fujii Hironori
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed build fix for WinCairo port
https://bugs.webkit.org/show_bug.cgi?id=204914
<rdar://problem/58023118>

  • include/CMakeLists.txt: Replaced '$libangle_includes' with '${libangle_includes}".
7:21 PM Changeset in webkit [253670] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

[iOS] Update to use CTFontCreateForCharactersWithLanguageAndOption()
https://bugs.webkit.org/show_bug.cgi?id=205310

Reviewed by Simon Fraser.

All our bots are on the appropriate OS version.

  • wtf/Platform.h:
6:46 PM Changeset in webkit [253669] by Fujii Hironori
  • 4 edits in trunk/LayoutTests

[iOS] Arabic text on Wikipedia is shown as boxes
https://bugs.webkit.org/show_bug.cgi?id=155129
<rdar://problem/24919902>

Unreviewed typo correction.

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

Renamed arabic-blacklisted-expected.html to arabic-blacklisted.html.

6:35 PM Changeset in webkit [253668] by Chris Dumez
  • 3 edits
    1 add in trunk/LayoutTests/imported/w3c

Re-sync html/the-xhtml-syntax/parsing-xhtml-documents WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205354

Reviewed by Ryosuke Niwa.

Re-sync html/the-xhtml-syntax/parsing-xhtml-documents WPT tests from upstream 33de70caf7f076ebe3aaec.

  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/entities.json: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/w3c-import.log:
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/xhtml-mathml-dtd-entity.htm:
6:34 PM Changeset in webkit [253667] by Chris Dumez
  • 18 edits in trunk

Port service worker code to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=205359

Reviewed by Ryosuke Niwa.

Source/WebCore:

Port service worker code to the HTML5 event loop. We were mixing using the HTML5 event loop and ScriptExecutionContext::postTask().
This would cause test flakiness because tasks posted via thsse 2 mechanisms could get processed out of order, even though the
service worker specification guarantees a specific ordering.

The new pattern is that we only use WorkerRunLoop::postTask() to hop to the worker thread from the main thread, and not for any work
specified in the service workers specification. Whenever the service workers specifications to "queue a task", we now queue a task
on the ScriptExecutionContext's event loop, with the specified TaskSource.

No new tests, updated existing test.

  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • workers/service/SWClientConnection.cpp:

(WebCore::dispatchToContextThreadIfNecessary):
(WebCore::SWClientConnection::postTaskForJob):
(WebCore::SWClientConnection::updateRegistrationState):
(WebCore::SWClientConnection::updateWorkerState):
(WebCore::SWClientConnection::fireUpdateFoundEvent):
(WebCore::SWClientConnection::notifyClientsOfControllerChange):
(WebCore::SWClientConnection::clearPendingJobs):

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::updateState):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::updateRegistrationState):
(WebCore::ServiceWorkerContainer::updateWorkerState):
(WebCore::ServiceWorkerContainer::queueTaskToFireUpdateFoundEvent):
(WebCore::ServiceWorkerContainer::queueTaskToDispatchControllerChangeEvent):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::queueTaskToFireUpdateFoundEvent):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::postMessageToServiceWorker):
(WebCore::SWContextManager::fireInstallEvent):
(WebCore::SWContextManager::fireActivateEvent):

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::queueTaskToFireFetchEvent):
(WebCore::ServiceWorkerThread::queueTaskToPostMessage):
(WebCore::ServiceWorkerThread::queueTaskToFireInstallEvent):
(WebCore::ServiceWorkerThread::queueTaskToFireActivateEvent):

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

(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):
(WebCore::ServiceWorkerThreadProxy::startFetch):

LayoutTests:

  • http/wpt/service-workers/online-worker.js:

Drop process name check as it causes flakiness depending on whether or not the service worker runs in process.

  • http/wpt/service-workers/ready.https.window-expected.txt:
  • http/wpt/service-workers/ready.https.window.js:

Include all subtests from https://github.com/web-platform-tests/wpt/pull/20655 now that they are no longer
flaky.

6:32 PM Changeset in webkit [253666] by Chris Dumez
  • 10 edits in trunk

Unreviewed, revert r253493 because it broke an Apple internal site

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-expected.txt:

Source/WebCore:

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):

  • html/HTMLFormElement.h:
  • loader/FormSubmission.h:

(WebCore::FormSubmission::cancel): Deleted.
(WebCore::FormSubmission::wasCancelled const): Deleted.

  • loader/NavigationScheduler.cpp:

LayoutTests:

  • platform/mac/TestExpectations:
6:21 PM Changeset in webkit [253665] by Chris Dumez
  • 118 edits in trunk/LayoutTests/imported/w3c

Re-sync html/semantics/embedded-content/the-canvas-element from upstream
https://bugs.webkit.org/show_bug.cgi?id=205352

Reviewed by Ryosuke Niwa.

Re-sync html/semantics/embedded-content/the-canvas-element from upstream 33de70caf7f076ebe3aaec.

  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/*: Updated.
6:17 PM Changeset in webkit [253664] by Fujii Hironori
  • 9 edits
    2 adds in trunk

[cairo] text-align:justify wrongly expands CJK ideograph characters
https://bugs.webkit.org/show_bug.cgi?id=205321

Patch by Fujii Hironori <fujii.hironori@gmail.com> on 2019-12-17
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Even though canExpandAroundIdeographsInComplexText of
FontCairoHarfbuzzNG.cpp returns false, ComplexTextController
doesn't take it account. It ends up to expanding all ideographs
with a undesired expansion width.

WidthIterator properly checks canExpandAroundIdeographsInComplexText.
ComplexTextController also should do so.

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Check canExpandAroundIdeographsInComplexText.

  • platform/graphics/FontCascade.h: Friend with ComplexTextController to allow calling canExpandAroundIdeographsInComplexText.

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/text/justify-ideograph-complex-expected.png:
  • platform/gtk/fast/text/justify-ideograph-complex-expected.txt: Added.
  • platform/gtk/fast/text/justify-ideograph-leading-expansion-expected.png:
  • platform/gtk/fast/text/justify-ideograph-simple-expected.png:
  • platform/gtk/fast/text/justify-ideograph-simple-expected.txt: Added.
  • platform/gtk/fast/text/justify-ideograph-vertical-expected.png:
5:54 PM Changeset in webkit [253663] by pvollan@apple.com
  • 2 edits
    2 adds in trunk/Source/WebKit

Unreviewed build fix after r253661.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:
5:36 PM Changeset in webkit [253662] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Limit URL to reasonable size
https://bugs.webkit.org/show_bug.cgi?id=203825
<rdar://problem/56878680>

Reviewed by Ryosuke Niwa.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay const): Place an upper bound on the amount of
memory a URL may consume.

5:32 PM Changeset in webkit [253661] by pvollan@apple.com
  • 16 edits
    2 adds in trunk/Source/WebKit

[iOS] The WebContent process should not use API to get the user interface idiom
https://bugs.webkit.org/show_bug.cgi?id=205236

Reviewed by Brent Fulgham.

This should be done in the UI process, since using the API in the WebContent process will connect to daemons
we intend to block access to. Add a flag to the process creation parameters which indicates whether the user
interface idiom is iPad or not. This flag will be set on the UI process side, and on the WebContent process
side, this flag will be read and cached for later use.

No new tests, covered by existing tests.

  • Platform/spi/ios/UIKitSPI.h:

(currentUserInterfaceIdiomIsPad): Deleted.

  • Shared/UserInterfaceIdiom.h: Added.
  • Shared/UserInterfaceIdiom.mm: Added.

(WebKit::userInterfaceIdiomIsPad):
(WebKit::currentUserInterfaceIdiomIsPad):
(WebKit::setCurrentUserInterfaceIdiomIsPad):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/ios/WebPreferencesDefaultValuesIOS.mm:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/ios/SmartMagnificationController.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession setAccessoryViewCustomButtonTitle:]):
(-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]):
(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView _updateAccessory]):
(shouldShowKeyboardForElement):
(-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
  • UIProcess/ios/WebPageProxyIOS.mm:
  • UIProcess/ios/forms/WKFormColorControl.mm:

(-[WKFormColorControl initWithView:]):

  • UIProcess/ios/forms/WKFormColorPicker.mm:
  • UIProcess/ios/forms/WKFormInputControl.mm:
  • UIProcess/ios/forms/WKFormSelectControl.mm:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

4:47 PM Changeset in webkit [253660] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mojave+ Debug ] fast/mediastream/captureStream/canvas2d-heavy-drawing.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205365

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:24 PM Changeset in webkit [253659] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205364

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations:
4:12 PM Changeset in webkit [253658] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205363

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:02 PM Changeset in webkit [253657] by eric.carlson@apple.com
  • 14 edits in trunk/Source

Add remote media player methods for prepareToPlay, preload, private browsing mode, preserves pitch, and failed to load
https://bugs.webkit.org/show_bug.cgi?id=205351
<rdar://problem/58018451>

Reviewed by Jer Noble.

Source/WebCore:

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::remoteEngineFailedToLoad):

  • platform/graphics/MediaPlayer.h:

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::prepareToPlay):
(WebKit::RemoteMediaPlayerManagerProxy::setPreload):
(WebKit::RemoteMediaPlayerManagerProxy::setPrivateBrowsingMode):
(WebKit::RemoteMediaPlayerManagerProxy::setPreservesPitch):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::prepareToPlay):
(WebKit::RemoteMediaPlayerProxy::setPreload):
(WebKit::RemoteMediaPlayerProxy::setPrivateBrowsingMode):
(WebKit::RemoteMediaPlayerProxy::setPreservesPitch):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareToPlay):
(WebKit::MediaPlayerPrivateRemote::setPreservesPitch):
(WebKit::MediaPlayerPrivateRemote::setPreload):
(WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode):
(WebKit::MediaPlayerPrivateRemote::engineFailedToLoad):
(WebKit::MediaPlayerPrivateRemote::platformErrorCode const): Deleted.
(WebKit::MediaPlayerPrivateRemote::requiresImmediateCompositing const): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::engineFailedToLoad):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
4:00 PM Changeset in webkit [253656] by Truitt Savell
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac Release ] crypto/workers/subtle/aes-indexeddb.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=205361

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
3:40 PM Changeset in webkit [253655] by Kate Cheney
  • 10 edits in trunk/Source

Add run-time flag for in-app browser privacy
https://bugs.webkit.org/show_bug.cgi?id=205288
<rdar://problem/57569206>

Reviewed by John Wilander.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setInAppBrowserPrivacyEnabled):
(WebCore::RuntimeEnabledFeatures::isInAppBrowserPrivacyEnabled const):

  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences isInAppBrowserPrivacyEnabled]):
(-[WebPreferences setInAppBrowserPrivacyEnabled:]):

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

(-[WebView _preferencesChanged:]):

3:35 PM Changeset in webkit [253654] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

executeIfJavaScriptURL should check requester's security origin
https://bugs.webkit.org/show_bug.cgi?id=205324

Reviewed by Brent Fulgham.

Don't execute the JavaScript in ScriptController::executeIfJavaScriptURL if the security origin
of the current document is no longer accessible from the request originator's security origin.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL): Added a check.

  • bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Pass around the security origin of the requester.
(WebCore::FrameLoader::submitForm):

3:30 PM Changeset in webkit [253653] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Document::setFocusedElement should not set m_focusedElement to an element in another document
https://bugs.webkit.org/show_bug.cgi?id=205325

Reviewed by Wenson Hsieh.

Added an early exit for when the newly focused element had moved
while blurring the previously focused element.

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

3:17 PM Changeset in webkit [253652] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix WebGL conformance test build_177_to_178.html with USE_ANGLE
https://bugs.webkit.org/show_bug.cgi?id=204927

Disable ANGLE_texture_rectangle when compiling user shaders.
This mirrors a change I made to Chromium here:
https://chromium-review.googlesource.com/c/chromium/src/+/1842223

Patch by James Darpinian <James Darpinian> on 2019-12-17
Reviewed by Dean Jackson.

  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::compileShader):

3:15 PM Changeset in webkit [253651] by Alan Coon
  • 1 edit in branches/safari-609.1.13-branch/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Unreviewed fix. rdar://problem/57990824

3:02 PM Changeset in webkit [253650] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/ThirdParty/ANGLE

Improve update-angle.sh and add gni-to-cmake.py
https://bugs.webkit.org/show_bug.cgi?id=204914

update-angle.sh now performs a git rebase. This automatically merges
upstream changes with WebKit's local changes where possible and
highlights any conflicts for manual resolution.

Also, it runs a new script gni-to-cmake.py to automatically update the
CMake files with upstream changes to the gni files. Along with the
changes to include/CMakeLists.txt, this should prevent build breaks
like the recently fixed WinCairo one. Additionally, diffing the CMake
files provides a concise list of build changes that can be referenced
when manually updating the XCode project file.

Patch by James Darpinian <James Darpinian> on 2019-12-17
Reviewed by Dean Jackson.

  • CMakeLists.txt:
  • Compiler.cmake:
  • GLESv2.cmake:
  • gni-to-cmake.py: Added.
  • include/CMakeLists.txt:
  • update-angle.sh:
2:26 PM Changeset in webkit [253649] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-javascriptcore-tests: Fix upload details
https://bugs.webkit.org/show_bug.cgi?id=205347

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/run-javascriptcore-tests:

(uploadResults): Make upload details compliant with results database.

2:12 PM Changeset in webkit [253648] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] 8Bit JSRopeString can contain 16Bit string in its rope
https://bugs.webkit.org/show_bug.cgi?id=205323

Reviewed by Mark Lam.

JSTests:

  • stress/8bit-resolve-can-encounter-16bit-string.js: Added.

(foo):

Source/JavaScriptCore:

When resolving JSRopeString, it is possible that 8Bit JSRopeString becomes 16Bit resolved JSString.
This happens when we attempt to resolve it to produce AtomicStringImpl, and 16Bit version of the
resolved content is already in AtomicStringTable. This means that 16Bit flag never changes after resolving
JSString, but that of JSRopeString is some sort of hint, which can be changed.

This means that 8Bit JSRopeString can include 16Bit JSString, since some of children can be changed from
8Bit JSRopeString to resolved 16Bit JSString. Even in that case, we can still ensure that resolved string
can be represented as 8Bit. Let's see the example.

A => B + C, 8Bit Rope
B => D + E, 8Bit Rope
C => 8Bit String

And when we convert B to 16Bit String since content of D + E is already registered as 16Bit String in AtomicStringTable.

A => B + C, 8Bit Rope
B => 16Bit String
C => 8Bit String

When resolving A, creating 8Bit string buffer is totally OK since we know that whole A string can be represented in 8Bit.
When copying the content of B into 8Bit buffer, we should ignore upper 8Bit since they must be zero.

In this patch, we completely share the implementation of resolveRopeInternalNoSubstring and resolveRopeSlowCase in 8Bit and
16Bit case: we take result buffer CharacterType, but the underlying code must check is8Bit() for each fiber.

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure const):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeInternal8 const):
(JSC::JSRopeString::resolveRopeInternal16 const):
(JSC::JSRopeString::resolveRopeInternalNoSubstring const):
(JSC::JSRopeString::resolveRopeWithFunction const):
(JSC::JSRopeString::resolveRopeSlowCase const):
(JSC::JSRopeString::resolveRopeInternal8NoSubstring const): Deleted.
(JSC::JSRopeString::resolveRopeInternal16NoSubstring const): Deleted.
(JSC::JSRopeString::resolveRopeSlowCase8 const): Deleted.

  • runtime/JSString.h:

Source/WTF:

  • wtf/text/StringImpl.h:

(WTF::StringImpl::copyCharacters):

1:47 PM Changeset in webkit [253647] by Simon Fraser
  • 2 edits in trunk/LayoutTests

REGRSSION: [ High Sierra Catalina ] (r253310) compositing/video/video-border-radius-clipping.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205226

Unreviewed test gardening. Mark the test as an image failure on WK1.
The test fails with a few different pixels in the video frames.

  • platform/mac-wk1/TestExpectations:
1:42 PM Changeset in webkit [253646] by commit-queue@webkit.org
  • 6 edits in trunk

Navigation from empty page doesn't use cached web process
https://bugs.webkit.org/show_bug.cgi?id=205015
<rdar://problem/57703742>

Patch by Ben Nham <Ben Nham> on 2019-12-17
Reviewed by Chris Dumez.

When navigating from an empty page to another domain foo.com, we always use the source
WebProcess (which is basically uninitialized) rather than using an already-initialized
cached WebProcess that has navigated to foo.com. The cached WebProcess should probably be
preferred since it has more relevant cached resources available to it (e.g. memory cache, JS
bytecode cache, prewarmed fonts, ...).

Source/WebKit:

Added an API test.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _ensureRunningProcessForTesting]):
Allows tests to force WebProcess to launch to an empty document for testing purposes. This
matches the behavior of how Safari uses WKWebView.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal): Prefer cached web process over
source process if the source process hasn't committed any loads.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

Verify that a load from an empty document uses the process cache. To actually force the
WebProcess to launch with an empty document loaded, we use the private API
_ensureRunningProcessForTesting.

1:36 PM Changeset in webkit [253645] by Alan Coon
  • 8 edits in tags/Safari-609.1.12.1/Source

Versioning.

1:34 PM Changeset in webkit [253644] by Alan Coon
  • 1 copy in tags/Safari-609.1.12.1

New tag.

1:25 PM Changeset in webkit [253643] by ChangSeok Oh
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed build fix for USE_ANGLE_WEBGL after r252994

  • CMakeLists.txt: Add a missing directory separator.
1:22 PM Changeset in webkit [253642] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Drop support for NSURLCache callbacks in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=203344

Patch by Benjamin Nham <Ben Nham> on 2019-12-17
Reviewed by Alex Christensen.

Remove the NSURLSession caching policy callback in NetworkProcess. It's no longer necessary since
we don't use NSURLCache in NetworkProcess (https://bugs.webkit.org/show_bug.cgi?id=185990).

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]): Deleted.

1:07 PM Changeset in webkit [253641] by Megan Gardner
  • 3 edits in trunk/Tools

Update Check webkit style to allow for auto with pairs in c++
https://bugs.webkit.org/show_bug.cgi?id=205320

Reviewed by Jonathan Bedard.

Allow for spaces between auto and brakets when using auto with pairs.

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

(check_spacing):

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

(CppStyleTest):

12:52 PM Changeset in webkit [253640] by ddkilzer@apple.com
  • 1 edit
    2 deletes in trunk/Source/WebKit

Remove SafeBrowsingResult
<https://webkit.org/b/205296>

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Remove.
  • UIProcess/SafeBrowsingResult.h: Remove.
12:34 PM Changeset in webkit [253639] by youenn@apple.com
  • 10 edits in trunk

WebKitTestRunner should report GPU process crashes
https://bugs.webkit.org/show_bug.cgi?id=205338

Reviewed by Tim Horton.

Source/WebKit:

Expose a callback to notify of GPU process crash.
No change of behavior.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::gpuProcessCrashed):

  • UIProcess/WebContextClient.cpp:

(WebKit::WebContextClient::gpuProcessDidCrash):

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

(WebKit::WebProcessPool::gpuProcessCrashed):

  • UIProcess/WebProcessPool.h:

Tools:

Report GPU process crashes.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):
(WTR::TestController::gpuProcessDidCrash):

  • WebKitTestRunner/TestController.h:
12:19 PM Changeset in webkit [253638] by Chris Dumez
  • 814 edits
    3 copies
    117 adds
    2 deletes in trunk/LayoutTests

Re-sync web-platform-tests/2dcontext from upstream
https://bugs.webkit.org/show_bug.cgi?id=205343

Reviewed by Frédéric Wang.

Re-sync web-platform-tests/2dcontext from upstream 33de70caf7f076ebe3aa.

  • web-platform-tests/2dcontext/*: Updated.
12:05 PM Changeset in webkit [253637] by Chris Dumez
  • 60 edits
    1 move
    1 add in trunk/LayoutTests/imported/w3c

Re-sync web-platform-tests/tools from upstream
https://bugs.webkit.org/show_bug.cgi?id=205340

Reviewed by Frédéric Wang.

Re-sync web-platform-tests/tools from upstream 33de70caf7f076ebe3aa.

  • web-platform-tests/tools/*: Updated.
11:57 AM Changeset in webkit [253636] by timothy_horton@apple.com
  • 25 edits
    1 delete in trunk/Source

macCatalyst: Cursor should update on mouse movement and style change
https://bugs.webkit.org/show_bug.cgi?id=205317
<rdar://problem/46793696>

Reviewed by Anders Carlsson.

Source/WebCore:

  • Configurations/WebCore.xcconfig:

Link AppKit for NSCursor.

  • SourcesCocoa.txt:

Remove CursorIOS.cpp.
De-unify CursorMac; because it imports AppKit headers, we have to
take care to make sure it doesn't also get WAK (which it does if you
leave it unified).

  • WebCore.xcodeproj/project.pbxproj:

Remove CursorIOS.cpp and de-unify CursorMac (by adding it to the target)

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::setCursor):
(WebCore::Chrome::setCursorHiddenUntilMouseMoves):
Unifdef many things.

  • page/ChromeClient.h:

(WebCore::ChromeClient::supportsSettingCursor):
Add a ChromeClient bit, supportsSettingCursor, which can be used
to guard work that shouldn't happen if a platform doesn't support
pushing cursor updates out from WebCore. This will be true everywhere
except iOS, and does the work of the old platform ifdefs.

  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::updateCursor):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::scheduleCursorUpdate):

  • page/EventHandler.h:
  • platform/Cursor.cpp:
  • platform/Cursor.h:

Unifdef, and use supportsSettingCursor to avoid some unnecessary work.

  • platform/ios/CursorIOS.cpp: Removed.
  • platform/ios/WidgetIOS.mm:

(WebCore::Widget::setCursor):
Propagate cursor changes upwards.

  • platform/mac/CursorMac.mm:

(WebCore::cursor):
(WebCore::Cursor::ensurePlatformCursor const):
CursorMac is now built in macCatalyst. However, parts that depend
on HIServices or NSImage are #ifdeffed out, and fall back to an arrow.

Source/WebKit:

  • Configurations/WebKit.xcconfig:

Link AppKit for NSCursor.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Cursor>::decode):
Enable Cursor encoders.

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::setCursor):

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

Unifdef various things.
Implement setCursor().

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.h:

Provide a stub implementation of cursor-related ChromeClient methods.

Source/WTF:

  • wtf/FeatureDefines.h:

Make ENABLE_CURSOR_SUPPORT true on iOS, for macCatalyst. This results
in it being true everywhere, so remove it.

Add a new ENABLE_CUSTOM_CURSOR_SUPPORT, indicating whether we support
custom bitmap cursors. It covers the subset of ENABLE_CURSOR_SUPPORT
code that we still don't support in macCatalyst.

  • wtf/Platform.h:

Add HAVE_HISERVICES (true on macOS but not macCatalyst) and
HAVE_NSCURSOR (true on macOS and macCatalyst but not e.g. iOS).

11:50 AM Changeset in webkit [253635] by Chris Dumez
  • 103 edits
    1 move
    8 adds
    11 deletes in trunk/LayoutTests

Re-sync web-platform-tests/interfaces from upstream
https://bugs.webkit.org/show_bug.cgi?id=205344

Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Re-sync web-platform-tests/interfaces from upstream 33de70caf7f076ebe3aaec4.

  • web-platform-tests/css/css-properties-values-api/idlharness-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/domparsing/interfaces.any.worker-expected.txt:
  • web-platform-tests/fetch/api/idl.any-expected.txt:
  • web-platform-tests/fetch/api/idl.any.worker-expected.txt:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt:
  • web-platform-tests/interfaces/*: Updated.
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • web-platform-tests/web-animations/idlharness.window-expected.txt: Added.
  • web-platform-tests/web-animations/idlharness.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/idlharness.window.html.
  • web-platform-tests/web-animations/idlharness.window.js: Added.
  • web-platform-tests/web-animations/interfaces/Animation/idlharness.window-expected.txt: Removed.
  • web-platform-tests/web-animations/interfaces/Animation/idlharness.window.js: Removed.
  • web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.window-expected.txt: Removed.
  • web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.window.html: Removed.
  • web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.window.js: Removed.
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.window-expected.txt: Removed.
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.window.html: Removed.
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.window.js: Removed.
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.window-expected.txt: Removed.
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.window.html: Removed.
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.window.js: Removed.
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
11:25 AM Changeset in webkit [253634] by Simon Fraser
  • 18 edits in trunk/Source

Change 'delegatesPageScaling' from a Setting to a flag on ScrollView
https://bugs.webkit.org/show_bug.cgi?id=205319

Reviewed by Tim Horton.

delegatesPageScaling() is never toggled at runtime (even by tests), and it should
be a flag on FrameView just like delegatesScrolling (maybe in future the flags can merge).

So remove the Setting, and have DrawingArea control whether page scaling is delegated.

In WebKit1, WebFrameLoaderClient::transitionToCommittedForNewPage() turns on delegated
page scaling for iOS.

Source/WebCore:

  • page/Frame.cpp:

(WebCore::Frame::frameScaleFactor const):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRectWithClip):

  • page/FrameView.cpp:

(WebCore::FrameView::visibleContentScaleFactor const):

  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):

  • page/Settings.yaml:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::setDelegatesPageScaling):

  • platform/ScrollView.h:

(WebCore::ScrollView::delegatesPageScaling const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::addToOverlapMap const):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::usesDelegatedPageScaling const):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindIndicatorOverlayClientIOS::drawRect):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

11:19 AM Changeset in webkit [253633] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION: ASSERTION FAILED: FontCache::singleton().generation() == m_generation
https://bugs.webkit.org/show_bug.cgi?id=204933
<rdar://problem/57458432>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/font-cache-invalidation.html

When font cache version number is bumped we need to invalidate matches declarations caches because
they may now contain stale font references. The code to do this failed to look into shadow trees.

  • dom/Document.cpp:

(WebCore::Document::invalidateMatchedPropertiesCacheAndForceStyleRecalc):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::invalidateMatchedDeclarationsCache):

Also invalidate the shadow trees.

  • style/StyleScope.h:

LayoutTests:

  • fast/shadow-dom/font-cache-invalidation-expected.txt: Added.
  • fast/shadow-dom/font-cache-invalidation.html: Added.
10:58 AM Changeset in webkit [253632] by ChangSeok Oh
  • 2 edits in trunk

[GTK] Suppress undefined USE_OPENGL warnings when USE_ANGLE_WEBGL and USE_OPENGL_ES are enabled.
https://bugs.webkit.org/show_bug.cgi?id=204634

Reviewed by Žan Doberšek.

When USE_ANGLE_WEBGL and USE_OPENGL_ES are enabled, many compiler warnings occur.
This is because USE_OPENGL is defined nowhere if they are enabled.
To fix this, USE_OPENGL is explicitly defined when USE_OPENGL_ES is enabled.

  • Source/cmake/OptionsGTK.cmake:
10:31 AM Changeset in webkit [253631] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Painting] Add basic support for z-index based painting
https://bugs.webkit.org/show_bug.cgi?id=205345
<rdar://problem/58010942>

Reviewed by Antti Koivisto.

This is just a very simple z-index based painting to be able to run WPT where
z-index is heavily used to hide/reveal red/green boxes.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::absoluteDisplayBox):
(WebCore::Display::isPaintRootCandidate):
(WebCore::Display::paintSubtree):
(WebCore::Display::collectPaintRootsAndContentRect):
(WebCore::Display::Painter::paint):
(WebCore::Display::paintBoxDecorationAndChildren): Deleted.

8:17 AM Changeset in webkit [253630] by Chris Dumez
  • 326 edits
    11 copies
    4 moves
    128 adds
    15 deletes in trunk/LayoutTests

Re-sync web-platform-tests/resources from upstream
https://bugs.webkit.org/show_bug.cgi?id=205307

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Re-sync web-platform-tests/resources from upstream e9d489f3377139a1d54b436f.
A lot of tests had to be rebased. Some tests also had to be re-sync'd from
upstream to keep them running.

  • web-platform-tests/FileAPI/idlharness-expected.txt:
  • web-platform-tests/FileAPI/idlharness.worker-expected.txt:
  • web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt:
  • web-platform-tests/IndexedDB/bigint_value-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/structured-clone.any-expected.txt:
  • web-platform-tests/IndexedDB/structured-clone.any.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker.js: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js:

(define_tests.):

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.any.js: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.any.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker.js: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.js:

(define_tests.):

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https.html: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https.html: Removed.
  • web-platform-tests/clipboard-apis/async-interfaces.https-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/shared-inheritance-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/shared-script-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.sub-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html:
  • web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window-expected.txt:
  • web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html:
  • web-platform-tests/credential-management/idlharness.https.window-expected.txt:
  • web-platform-tests/css/css-animations/idlharness-expected.txt:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-001-expected.txt:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-001-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-002-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-003-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-004-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-005-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-007-expected.txt:
  • web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014-expected.txt:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-003-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-004-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-005-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-006-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-007-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-009-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-010-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-011-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-auto-repeat-tracks-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-fit-content-argument-001-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:
  • web-platform-tests/css/css-grid/grid-model/grid-box-sizing-001-expected.txt:
  • web-platform-tests/css/css-images/idlharness-expected.txt:
  • web-platform-tests/css/css-logical/logicalprops-block-size-expected.txt:
  • web-platform-tests/css/css-logical/logicalprops-block-size-vlr-expected.txt:
  • web-platform-tests/css/css-logical/logicalprops-inline-size-expected.txt:
  • web-platform-tests/css/css-logical/logicalprops-inline-size-vlr-expected.txt:
  • web-platform-tests/css/css-properties-values-api/idlharness-expected.txt:
  • web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt:
  • web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt:
  • web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html:
  • web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html:
  • web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html:
  • web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html:
  • web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js:

(verifyTextPoints):

  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-018-expected.txt:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html:
  • web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html:
  • web-platform-tests/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt:
  • web-platform-tests/css/css-transitions/idlharness-expected.txt:
  • web-platform-tests/css/cssom-view/interfaces-expected.txt:
  • web-platform-tests/css/cssom/interfaces-expected.txt:
  • web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html:
  • web-platform-tests/domparsing/interfaces.any-expected.txt:
  • web-platform-tests/domparsing/interfaces.any.worker-expected.txt:
  • web-platform-tests/encoding/idlharness-expected.txt:
  • web-platform-tests/fetch/api/idl.any-expected.txt:
  • web-platform-tests/fetch/api/idl.any.worker-expected.txt:
  • web-platform-tests/fetch/api/response/response-stream-with-broken-then.any-expected.txt:
  • web-platform-tests/fetch/content-length/content-length.html:
  • web-platform-tests/fetch/content-length/content-length.html.headers:
  • web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any-expected.txt:
  • web-platform-tests/fetch/cors-rfc1918/idlharness.tentative.any.worker-expected.txt:
  • web-platform-tests/fetch/images/canvas-remote-read-remote-image-redirect.html:
  • web-platform-tests/hr-time/idlharness-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-function-parent.html:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/source/navigate-child-src-about-blank.html:
  • web-platform-tests/html/browsers/origin/origin-of-data-document-expected.txt:
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/window-open-noopener-expected.txt:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint-expected.txt:
  • web-platform-tests/html/interaction/focus/the-autofocus-attribute/not-on-first-task.html:
  • web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/margin-collapsing-quirks/compare-computed-style.js:

(test):

  • web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/dynamic-append.html:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-frame-element/document-getters-return-null-for-cross-origin-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/document-getters-return-null-for-cross-origin-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_01.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_02.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_03.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_04.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox_030-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/avoid-reload-on-resize.html:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/update-src-complete.html:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin-expected.txt:
  • web-platform-tests/html/semantics/forms/autofocus/not-on-first-task.html:
  • web-platform-tests/html/semantics/interfaces-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/084-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/charset-02-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.sharedworker-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
  • web-platform-tests/html/webappapis/timers/negative-setinterval.html:
  • web-platform-tests/html/webappapis/timers/type-long-setinterval.html:
  • web-platform-tests/html/webappapis/timers/type-long-settimeout.html:
  • web-platform-tests/intersection-observer/idlharness.window-expected.txt:
  • web-platform-tests/media-source/interfaces-expected.txt:
  • web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
  • web-platform-tests/mediacapture-streams/idlharness.https.window-expected.txt:
  • web-platform-tests/mst-content-hint/idlharness.window-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_document_open-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_document_replaced-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_navigate_within_document-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_navigation_type_reload-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_redirect_server-expected.txt:
  • web-platform-tests/navigation-timing/nav2_test_redirect_xserver-expected.txt:
  • web-platform-tests/payment-request/idlharness.https.window-expected.txt:
  • web-platform-tests/preload/link-header-preload-imagesrcset.html:
  • web-platform-tests/preload/link-header-preload-nonce-expected.txt:
  • web-platform-tests/preload/link-header-preload.html:
  • web-platform-tests/preload/onload-event.html:
  • web-platform-tests/preload/preload-csp.sub.html:
  • web-platform-tests/preload/preload-default-csp.sub.html:
  • web-platform-tests/preload/preload-with-type.html:
  • web-platform-tests/preload/single-download-late-used-preload.html:
  • web-platform-tests/remote-playback/idlharness.window-expected.txt:
  • web-platform-tests/requestidlecallback/idlharness.window-expected.txt:
  • web-platform-tests/resize-observer/idlharness.window-expected.txt:
  • web-platform-tests/resource-timing/idlharness.any-expected.txt:
  • web-platform-tests/resource-timing/idlharness.any.worker-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_match_origin-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_match_wildcard-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_multi-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_multi_wildcard-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_null-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_origin_uppercase-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_space-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_wildcard-expected.txt:
  • web-platform-tests/resources/META.yml: Added.
  • web-platform-tests/resources/OWNERS: Removed.
  • web-platform-tests/resources/check-layout-th.js:

(window.checkLayout):

  • web-platform-tests/resources/chromium/big_buffer.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(BigBufferSharedMemoryRegion):
(BigBufferSharedMemoryRegion.prototype.initDefaults_):
(BigBufferSharedMemoryRegion.prototype.initFields_):
(BigBufferSharedMemoryRegion.validate):
(BigBufferSharedMemoryRegion.decode):
(BigBufferSharedMemoryRegion.encode):
(BigBuffer):
(BigBuffer.prototype.initDefault_):
(BigBuffer.prototype.initValue_):
(get if):
(BigBuffer.encode):
(BigBuffer.decode):
(BigBuffer.validate):

  • web-platform-tests/resources/chromium/big_buffer.mojom.js.headers: Added.
  • web-platform-tests/resources/chromium/chooser_service.mojom.js: Removed.
  • web-platform-tests/resources/chromium/contacts_manager_mock.js: Added.

(const.WebContactsTest):
(const.WebContactsTest.prototype.formatAddress_):
(const.WebContactsTest.async if):
(const.WebContactsTest.prototype.async select):
(const.WebContactsTest.prototype.setSelectedContacts):
(const.WebContactsTest.prototype.reset):
(const.WebContactsTest.ContactsTestChromium):
(const.WebContactsTest.ContactsTestChromium.prototype.setSelectedContacts):

  • web-platform-tests/resources/chromium/device.mojom.js:

(UsbSynchronizationType.isKnownEnumValue):
(UsbSynchronizationType.validate):
(UsbUsageType.isKnownEnumValue):
(UsbUsageType.validate):
(UsbEndpointInfo.prototype.initDefaults_):
(UsbEndpointInfo.validate):
(UsbEndpointInfo.decode):
(UsbEndpointInfo.encode):
(UsbAlternateInterfaceInfo.prototype.initDefaults_):
(UsbAlternateInterfaceInfo.validate):
(UsbAlternateInterfaceInfo.decode):
(UsbAlternateInterfaceInfo.encode):
(UsbInterfaceInfo.validate):
(UsbConfigurationInfo.prototype.initDefaults_):
(UsbConfigurationInfo.validate):
(UsbConfigurationInfo.decode):
(UsbConfigurationInfo.encode):
(UsbDeviceInfo.prototype.initDefaults_):
(UsbDeviceInfo.validate):
(UsbDeviceInfo.decode):
(UsbDeviceInfo.encode):
(UsbControlTransferParams.validate):
(UsbIsochronousPacket.validate):
(UsbDevice_Open_ResponseParams.validate):
(UsbDevice_ControlTransferIn_Params.validate):
(UsbDevice_ControlTransferIn_ResponseParams.validate):
(UsbDevice_ControlTransferOut_Params.validate):
(UsbDevice_ControlTransferOut_ResponseParams.validate):
(UsbDevice_GenericTransferIn_ResponseParams.validate):
(UsbDevice_GenericTransferOut_Params.validate):
(UsbDevice_GenericTransferOut_ResponseParams.validate):
(UsbDevice_IsochronousTransferIn_Params.validate):
(UsbDevice_IsochronousTransferIn_ResponseParams.validate):
(UsbDevice_IsochronousTransferOut_Params.validate):
(UsbDevice_IsochronousTransferOut_ResponseParams.validate):
(UsbDeviceClient_OnDeviceOpened_Params):
(UsbDeviceClient_OnDeviceOpened_Params.prototype.initDefaults_):
(UsbDeviceClient_OnDeviceOpened_Params.prototype.initFields_):
(UsbDeviceClient_OnDeviceOpened_Params.validate):
(UsbDeviceClient_OnDeviceOpened_Params.decode):
(UsbDeviceClient_OnDeviceOpened_Params.encode):
(UsbDeviceClient_OnDeviceClosed_Params):
(UsbDeviceClient_OnDeviceClosed_Params.prototype.initDefaults_):
(UsbDeviceClient_OnDeviceClosed_Params.prototype.initFields_):
(UsbDeviceClient_OnDeviceClosed_Params.validate):
(UsbDeviceClient_OnDeviceClosed_Params.decode):
(UsbDeviceClient_OnDeviceClosed_Params.encode):
(UsbDeviceProxy.prototype.open):
(UsbDeviceProxy.prototype.close):
(UsbDeviceProxy.prototype.setConfiguration):
(UsbDeviceProxy.prototype.claimInterface):
(UsbDeviceProxy.prototype.releaseInterface):
(UsbDeviceProxy.prototype.setInterfaceAlternateSetting):
(UsbDeviceProxy.prototype.reset):
(UsbDeviceProxy.prototype.clearHalt):
(UsbDeviceProxy.prototype.controlTransferIn):
(UsbDeviceProxy.prototype.controlTransferOut):
(UsbDeviceProxy.prototype.genericTransferIn):
(UsbDeviceProxy.prototype.genericTransferOut):
(UsbDeviceProxy.prototype.isochronousTransferIn):
(UsbDeviceProxy.prototype.isochronousTransferOut):
(UsbDeviceClientPtr):
(UsbDeviceClientAssociatedPtr):
(UsbDeviceClientProxy):
(UsbDeviceClientPtr.prototype.onDeviceOpened):
(UsbDeviceClientProxy.prototype.onDeviceOpened):
(UsbDeviceClientPtr.prototype.onDeviceClosed):
(UsbDeviceClientProxy.prototype.onDeviceClosed):
(UsbDeviceClientStub):
(UsbDeviceClientStub.prototype.onDeviceOpened):
(UsbDeviceClientStub.prototype.onDeviceClosed):
(UsbDeviceClientStub.prototype.accept):
(UsbDeviceClientStub.prototype.acceptWithResponder):
(validateUsbDeviceClientRequest):
(validateUsbDeviceClientResponse):

  • web-platform-tests/resources/chromium/device_enumeration_options.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(UsbDeviceFilter):
(UsbDeviceFilter.prototype.initDefaults_):
(UsbDeviceFilter.prototype.initFields_):
(UsbDeviceFilter.validate):
(UsbDeviceFilter.decode):
(UsbDeviceFilter.encode):
(UsbEnumerationOptions):
(UsbEnumerationOptions.prototype.initDefaults_):
(UsbEnumerationOptions.prototype.initFields_):
(UsbEnumerationOptions.validate):
(UsbEnumerationOptions.decode):
(UsbEnumerationOptions.encode):

  • web-platform-tests/resources/chromium/device_enumeration_options.mojom.js.headers: Added.
  • web-platform-tests/resources/chromium/device_manager.mojom.js: Removed.
  • web-platform-tests/resources/chromium/device_manager_client.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(UsbDeviceManagerClient_OnDeviceAdded_Params):
(UsbDeviceManagerClient_OnDeviceAdded_Params.prototype.initDefaults_):
(UsbDeviceManagerClient_OnDeviceAdded_Params.prototype.initFields_):
(UsbDeviceManagerClient_OnDeviceAdded_Params.validate):
(UsbDeviceManagerClient_OnDeviceAdded_Params.decode):
(UsbDeviceManagerClient_OnDeviceAdded_Params.encode):
(UsbDeviceManagerClient_OnDeviceRemoved_Params):
(UsbDeviceManagerClient_OnDeviceRemoved_Params.prototype.initDefaults_):
(UsbDeviceManagerClient_OnDeviceRemoved_Params.prototype.initFields_):
(UsbDeviceManagerClient_OnDeviceRemoved_Params.validate):
(UsbDeviceManagerClient_OnDeviceRemoved_Params.decode):
(UsbDeviceManagerClient_OnDeviceRemoved_Params.encode):
(UsbDeviceManagerClientPtr):
(UsbDeviceManagerClientAssociatedPtr):
(UsbDeviceManagerClientProxy):
(UsbDeviceManagerClientPtr.prototype.onDeviceAdded):
(UsbDeviceManagerClientProxy.prototype.onDeviceAdded):
(UsbDeviceManagerClientPtr.prototype.onDeviceRemoved):
(UsbDeviceManagerClientProxy.prototype.onDeviceRemoved):
(UsbDeviceManagerClientStub):
(UsbDeviceManagerClientStub.prototype.onDeviceAdded):
(UsbDeviceManagerClientStub.prototype.onDeviceRemoved):
(UsbDeviceManagerClientStub.prototype.accept):
(UsbDeviceManagerClientStub.prototype.acceptWithResponder):
(validateUsbDeviceManagerClientRequest):
(validateUsbDeviceManagerClientResponse):

  • web-platform-tests/resources/chromium/device_manager_client.mojom.js.headers: Added.
  • web-platform-tests/resources/chromium/generic_sensor_mocks.js: Added.

(GenericSensorTest.MockSensor):
(GenericSensorTest.MockSensor.prototype.async getDefaultConfiguration):
(GenericSensorTest.MockSensor.prototype.async addConfiguration):
(GenericSensorTest.MockSensor.prototype.removeConfiguration):
(GenericSensorTest.MockSensor.prototype.reset):
(GenericSensorTest.MockSensor.prototype.async setSensorReading):
(GenericSensorTest.MockSensor.prototype.setStartShouldFail):
(GenericSensorTest.MockSensor.prototype.startReading):
(GenericSensorTest.MockSensor.prototype.stopReading):
(GenericSensorTest.MockSensor.prototype.getSamplingFrequency):
(GenericSensorTest.MockSensorProvider):
(GenericSensorTest.MockSensorProvider.prototype.async getSensor):
(GenericSensorTest.MockSensorProvider.prototype.bindToPipe):
(GenericSensorTest.MockSensorProvider.prototype.reset):
(GenericSensorTest.MockSensorProvider.prototype.setGetSensorShouldFail):
(GenericSensorTest.MockSensorProvider.prototype.setPermissionsDenied):
(GenericSensorTest.MockSensorProvider.prototype.getCreatedSensor):
(GenericSensorTest.MockSensorProvider.prototype.setMaximumSupportedFrequency):
(GenericSensorTest.MockSensorProvider.prototype.setMinimumSupportedFrequency):
(GenericSensorTest.GenericSensorTestChromium):
(GenericSensorTest.GenericSensorTestChromium.prototype.initialize):
(GenericSensorTest.GenericSensorTestChromium.prototype.async reset):
(GenericSensorTest.GenericSensorTestChromium.prototype.getSensorProvider):
(GenericSensorTest):

  • web-platform-tests/resources/chromium/generic_sensor_mocks.js.headers: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers.
  • web-platform-tests/resources/chromium/image_capture-mojom.js.headers: Added.
  • web-platform-tests/resources/chromium/image_capture.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(MeteringMode.isKnownEnumValue):
(MeteringMode.validate):
(RedEyeReduction.isKnownEnumValue):
(RedEyeReduction.validate):
(FillLightMode.isKnownEnumValue):
(FillLightMode.validate):
(Range):
(Range.prototype.initDefaults_):
(Range.prototype.initFields_):
(Range.validate):
(Range.decode):
(Range.encode):
(PhotoState):
(PhotoState.prototype.initDefaults_):
(PhotoState.prototype.initFields_):
(PhotoState.validate):
(PhotoState.decode):
(PhotoState.encode):
(Point2D):
(Point2D.prototype.initDefaults_):
(Point2D.prototype.initFields_):
(Point2D.validate):
(Point2D.decode):
(Point2D.encode):
(PhotoSettings):
(PhotoSettings.prototype.initDefaults_):
(PhotoSettings.prototype.initFields_):
(PhotoSettings.validate):
(PhotoSettings.decode):
(PhotoSettings.encode):
(Blob):
(Blob.prototype.initDefaults_):
(Blob.prototype.initFields_):
(Blob.validate):
(Blob.decode):
(Blob.encode):
(ImageCapture_GetPhotoState_Params):
(ImageCapture_GetPhotoState_Params.prototype.initDefaults_):
(ImageCapture_GetPhotoState_Params.prototype.initFields_):
(ImageCapture_GetPhotoState_Params.validate):
(ImageCapture_GetPhotoState_Params.decode):
(ImageCapture_GetPhotoState_Params.encode):
(ImageCapture_GetPhotoState_ResponseParams):
(ImageCapture_GetPhotoState_ResponseParams.prototype.initDefaults_):
(ImageCapture_GetPhotoState_ResponseParams.prototype.initFields_):
(ImageCapture_GetPhotoState_ResponseParams.validate):
(ImageCapture_GetPhotoState_ResponseParams.decode):
(ImageCapture_GetPhotoState_ResponseParams.encode):
(ImageCapture_SetOptions_Params):
(ImageCapture_SetOptions_Params.prototype.initDefaults_):
(ImageCapture_SetOptions_Params.prototype.initFields_):
(ImageCapture_SetOptions_Params.validate):
(ImageCapture_SetOptions_Params.decode):
(ImageCapture_SetOptions_Params.encode):
(ImageCapture_SetOptions_ResponseParams):
(ImageCapture_SetOptions_ResponseParams.prototype.initDefaults_):
(ImageCapture_SetOptions_ResponseParams.prototype.initFields_):
(ImageCapture_SetOptions_ResponseParams.validate):
(ImageCapture_SetOptions_ResponseParams.decode):
(ImageCapture_SetOptions_ResponseParams.encode):
(ImageCapture_TakePhoto_Params):
(ImageCapture_TakePhoto_Params.prototype.initDefaults_):
(ImageCapture_TakePhoto_Params.prototype.initFields_):
(ImageCapture_TakePhoto_Params.validate):
(ImageCapture_TakePhoto_Params.decode):
(ImageCapture_TakePhoto_Params.encode):
(ImageCapture_TakePhoto_ResponseParams):
(ImageCapture_TakePhoto_ResponseParams.prototype.initDefaults_):
(ImageCapture_TakePhoto_ResponseParams.prototype.initFields_):
(ImageCapture_TakePhoto_ResponseParams.validate):
(ImageCapture_TakePhoto_ResponseParams.decode):
(ImageCapture_TakePhoto_ResponseParams.encode):
(ImageCapturePtr):
(ImageCaptureAssociatedPtr):
(ImageCaptureProxy):
(ImageCapturePtr.prototype.getPhotoState):
(ImageCaptureProxy.prototype.getPhotoState):
(ImageCapturePtr.prototype.setOptions):
(ImageCaptureProxy.prototype.setOptions):
(ImageCapturePtr.prototype.takePhoto):
(ImageCaptureProxy.prototype.takePhoto):
(ImageCaptureStub.prototype.getPhotoState):
(ImageCaptureStub.prototype.setOptions):
(ImageCaptureStub.prototype.takePhoto):
(ImageCaptureStub.prototype.accept):
(ImageCaptureStub.prototype.acceptWithResponder):
(validateImageCaptureRequest):
(validateImageCaptureResponse):

  • web-platform-tests/resources/chromium/mock-barcodedetection.js: Added.

(BarcodeDetectionTest):
(BarcodeDetectionTest.prototype.createBarcodeDetection):
(BarcodeDetectionTest.prototype.enumerateSupportedFormats):
(BarcodeDetectionTest.prototype.getFrameData):
(BarcodeDetectionTest.prototype.getFormats):
(BarcodeDetectionTest.prototype.reset):
(BarcodeDetectionTest.MockBarcodeDetection):
(BarcodeDetectionTest.MockBarcodeDetection.prototype.detect):
(BarcodeDetectionTest.BarcodeDetectionTestChromium):
(BarcodeDetectionTest.BarcodeDetectionTestChromium.prototype.initialize):
(BarcodeDetectionTest.BarcodeDetectionTestChromium.prototype.async reset):
(BarcodeDetectionTest.BarcodeDetectionTestChromium.prototype.MockBarcodeDetectionProvider):

  • web-platform-tests/resources/chromium/mock-barcodedetection.js.headers: Added.
  • web-platform-tests/resources/chromium/mock-facedetection.js: Added.

(FaceDetectionTest):
(FaceDetectionTest.prototype.createFaceDetection):
(FaceDetectionTest.prototype.getFrameData):
(FaceDetectionTest.prototype.getMaxDetectedFaces):
(FaceDetectionTest.prototype.getFastMode):
(FaceDetectionTest.prototype.reset):
(FaceDetectionTest.MockFaceDetection):
(FaceDetectionTest.MockFaceDetection.prototype.detect):
(FaceDetectionTest.FaceDetectionTestChromium):
(FaceDetectionTest.FaceDetectionTestChromium.prototype.initialize):
(FaceDetectionTest.FaceDetectionTestChromium.prototype.async reset):
(FaceDetectionTest.FaceDetectionTestChromium.prototype.MockFaceDetectionProvider):

  • web-platform-tests/resources/chromium/mock-facedetection.js.headers: Added.
  • web-platform-tests/resources/chromium/mock-imagecapture.js: Added.

(ImageCaptureTest):
(ImageCaptureTest.prototype.reset):
(ImageCaptureTest.prototype.getPhotoState):
(ImageCaptureTest.prototype.setOptions):
(ImageCaptureTest.prototype.takePhoto):
(ImageCaptureTest.prototype.state):
(ImageCaptureTest.prototype.options):
(ImageCaptureTest.ImageCaptureTestChromium):
(ImageCaptureTest.ImageCaptureTestChromium.prototype.initialize):
(ImageCaptureTest.ImageCaptureTestChromium.prototype.async reset):
(ImageCaptureTest.ImageCaptureTestChromium.prototype.mockImageCapture):

  • web-platform-tests/resources/chromium/mojo_bindings.js:

(exposeNamespace):
(loadMojomIfNecessary):
(InterfacePtrInfo):
(InterfacePtrInfo.prototype.isValid):
(InterfacePtrInfo.prototype.close):
(AssociatedInterfacePtrInfo):
(AssociatedInterfacePtrInfo.prototype.isValid):
(InterfaceRequest):
(InterfaceRequest.prototype.isValid):
(InterfaceRequest.prototype.close):
(AssociatedInterfaceRequest):
(AssociatedInterfaceRequest.prototype.isValid):
(AssociatedInterfaceRequest.prototype.resetWithReason):
(isMasterInterfaceId):
(isValidInterfaceId):
(hasInterfaceIdNamespaceBitSet):
(Connector.prototype.readMore_):
(validateControlRequestWithResponse):
(validateControlRequestWithoutResponse):
(runOrClosePipe):
(run):
(isInterfaceControlMessage):
(constructRunOrClosePipeMessage):
(validateControlResponse):
(acceptRunResponse):
(sendRunMessage):
(ControlMessageProxy.prototype.queryVersion):
(ControlMessageProxy.prototype.requireVersion):
(PipeControlMessageProxy.prototype.constructPeerEndpointClosedMessage):
(Router.prototype.createLocalEndpointHandle):
(Router.prototype.onPeerAssociatedEndpointClosed):
(decodeUtf8String):
(encodeUtf8String):
(utf8Length):
(RunInput.prototype.initValue_):
(RunInput.encode):
(RunInput.decode):
(RunInput.validate):
(RunOutput.prototype.initValue_):
(RunOutput.encode):
(RunOutput.decode):
(RunOutput.validate):
(RunOrClosePipeInput.prototype.initValue_):
(RunOrClosePipeInput.encode):
(RunOrClosePipeInput.decode):
(RunOrClosePipeInput.validate):
(DisconnectReason.validate):
(PeerAssociatedEndpointClosedEvent.validate):

  • web-platform-tests/resources/chromium/mojo_web_test_helper_test.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(MojoWebTestHelper_Reverse_Params):
(MojoWebTestHelper_Reverse_Params.prototype.initDefaults_):
(MojoWebTestHelper_Reverse_Params.prototype.initFields_):
(MojoWebTestHelper_Reverse_Params.validate):
(MojoWebTestHelper_Reverse_Params.decode):
(MojoWebTestHelper_Reverse_Params.encode):
(MojoWebTestHelper_Reverse_ResponseParams):
(MojoWebTestHelper_Reverse_ResponseParams.prototype.initDefaults_):
(MojoWebTestHelper_Reverse_ResponseParams.prototype.initFields_):
(MojoWebTestHelper_Reverse_ResponseParams.validate):
(MojoWebTestHelper_Reverse_ResponseParams.decode):
(MojoWebTestHelper_Reverse_ResponseParams.encode):
(MojoWebTestHelperPtr):
(MojoWebTestHelperAssociatedPtr):
(MojoWebTestHelperProxy):
(MojoWebTestHelperPtr.prototype.reverse):
(MojoWebTestHelperProxy.prototype.reverse):
(MojoWebTestHelperStub.prototype.reverse):
(MojoWebTestHelperStub.prototype.accept):
(MojoWebTestHelperStub.prototype.acceptWithResponder):
(validateMojoWebTestHelperRequest):
(validateMojoWebTestHelperResponse):

  • web-platform-tests/resources/chromium/mojo_web_test_helper_test.mojom.js.headers: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/device_manager.mojom.js.headers.
  • web-platform-tests/resources/chromium/nfc-mock.js: Added.

(toMojoNDEFPushTarget):
(toMojoNDEFMessage):
(toMojoNDEFRecord):
(toByteArray):
(compareNDEFRecords):
(assertNDEFPushOptionsEqual):
(assertNDEFReaderOptionsEqual):
(matchesWatchOptions):
(createNDEFError):
(WebNFCTest):
(WebNFCTest.prototype.async push):
(WebNFCTest.prototype.async cancelPush):
(WebNFCTest.prototype.setClient):
(WebNFCTest.prototype.async watch):
(WebNFCTest.prototype.async cancelWatch):
(WebNFCTest.prototype.async cancelAllWatches):
(WebNFCTest.prototype.getHWError):
(WebNFCTest.prototype.setHWStatus):
(WebNFCTest.prototype.pushedMessage):
(WebNFCTest.prototype.pushOptions):
(WebNFCTest.prototype.watchOptions):
(WebNFCTest.prototype.setPendingPushCompleted):
(WebNFCTest.prototype.reset):
(WebNFCTest.prototype.cancelPendingPushOperation):
(WebNFCTest.prototype.setReadingMessage):
(WebNFCTest.prototype.suspendNFCOperations):
(WebNFCTest.prototype.resumeNFCOperations):
(WebNFCTest.prototype.setIsNDEFTech):
(WebNFCTest.prototype.setIsFormattedTag):
(WebNFCTest.NFCTestChromium):
(WebNFCTest.NFCTestChromium.prototype.initialize):
(WebNFCTest.NFCTestChromium.prototype.async reset):
(WebNFCTest.NFCTestChromium.prototype.getMockNFC):

  • web-platform-tests/resources/chromium/sensor.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(SensorType.isKnownEnumValue):
(SensorType.validate):
(ReportingMode.isKnownEnumValue):
(ReportingMode.validate):
(SensorConfiguration):
(SensorConfiguration.prototype.initDefaults_):
(SensorConfiguration.prototype.initFields_):
(SensorConfiguration.validate):
(SensorConfiguration.decode):
(SensorConfiguration.encode):
(Sensor_GetDefaultConfiguration_Params):
(Sensor_GetDefaultConfiguration_Params.prototype.initDefaults_):
(Sensor_GetDefaultConfiguration_Params.prototype.initFields_):
(Sensor_GetDefaultConfiguration_Params.validate):
(Sensor_GetDefaultConfiguration_Params.decode):
(Sensor_GetDefaultConfiguration_Params.encode):
(Sensor_GetDefaultConfiguration_ResponseParams):
(Sensor_GetDefaultConfiguration_ResponseParams.prototype.initDefaults_):
(Sensor_GetDefaultConfiguration_ResponseParams.prototype.initFields_):
(Sensor_GetDefaultConfiguration_ResponseParams.validate):
(Sensor_GetDefaultConfiguration_ResponseParams.decode):
(Sensor_GetDefaultConfiguration_ResponseParams.encode):
(Sensor_AddConfiguration_Params):
(Sensor_AddConfiguration_Params.prototype.initDefaults_):
(Sensor_AddConfiguration_Params.prototype.initFields_):
(Sensor_AddConfiguration_Params.validate):
(Sensor_AddConfiguration_Params.decode):
(Sensor_AddConfiguration_Params.encode):
(Sensor_AddConfiguration_ResponseParams):
(Sensor_AddConfiguration_ResponseParams.prototype.initDefaults_):
(Sensor_AddConfiguration_ResponseParams.prototype.initFields_):
(Sensor_AddConfiguration_ResponseParams.validate):
(Sensor_AddConfiguration_ResponseParams.decode):
(Sensor_AddConfiguration_ResponseParams.encode):
(Sensor_RemoveConfiguration_Params):
(Sensor_RemoveConfiguration_Params.prototype.initDefaults_):
(Sensor_RemoveConfiguration_Params.prototype.initFields_):
(Sensor_RemoveConfiguration_Params.validate):
(Sensor_RemoveConfiguration_Params.decode):
(Sensor_RemoveConfiguration_Params.encode):
(Sensor_Suspend_Params):
(Sensor_Suspend_Params.prototype.initDefaults_):
(Sensor_Suspend_Params.prototype.initFields_):
(Sensor_Suspend_Params.validate):
(Sensor_Suspend_Params.decode):
(Sensor_Suspend_Params.encode):
(Sensor_Resume_Params):
(Sensor_Resume_Params.prototype.initDefaults_):
(Sensor_Resume_Params.prototype.initFields_):
(Sensor_Resume_Params.validate):
(Sensor_Resume_Params.decode):
(Sensor_Resume_Params.encode):
(Sensor_ConfigureReadingChangeNotifications_Params):
(Sensor_ConfigureReadingChangeNotifications_Params.prototype.initDefaults_):
(Sensor_ConfigureReadingChangeNotifications_Params.prototype.initFields_):
(Sensor_ConfigureReadingChangeNotifications_Params.validate):
(Sensor_ConfigureReadingChangeNotifications_Params.decode):
(Sensor_ConfigureReadingChangeNotifications_Params.encode):
(SensorClient_RaiseError_Params):
(SensorClient_RaiseError_Params.prototype.initDefaults_):
(SensorClient_RaiseError_Params.prototype.initFields_):
(SensorClient_RaiseError_Params.validate):
(SensorClient_RaiseError_Params.decode):
(SensorClient_RaiseError_Params.encode):
(SensorClient_SensorReadingChanged_Params):
(SensorClient_SensorReadingChanged_Params.prototype.initDefaults_):
(SensorClient_SensorReadingChanged_Params.prototype.initFields_):
(SensorClient_SensorReadingChanged_Params.validate):
(SensorClient_SensorReadingChanged_Params.decode):
(SensorClient_SensorReadingChanged_Params.encode):
(SensorPtr):
(SensorAssociatedPtr):
(SensorProxy):
(SensorPtr.prototype.getDefaultConfiguration):
(SensorProxy.prototype.getDefaultConfiguration):
(SensorPtr.prototype.addConfiguration):
(SensorProxy.prototype.addConfiguration):
(SensorPtr.prototype.removeConfiguration):
(SensorProxy.prototype.removeConfiguration):
(SensorPtr.prototype.suspend):
(SensorProxy.prototype.suspend):
(SensorPtr.prototype.resume):
(SensorProxy.prototype.resume):
(SensorPtr.prototype.configureReadingChangeNotifications):
(SensorProxy.prototype.configureReadingChangeNotifications):
(SensorStub):
(SensorStub.prototype.getDefaultConfiguration):
(SensorStub.prototype.addConfiguration):
(SensorStub.prototype.removeConfiguration):
(SensorStub.prototype.suspend):
(SensorStub.prototype.resume):
(SensorStub.prototype.configureReadingChangeNotifications):
(SensorStub.prototype.accept):
(SensorStub.prototype.acceptWithResponder):
(validateSensorRequest):
(validateSensorResponse):
(SensorClientPtr):
(SensorClientAssociatedPtr):
(SensorClientProxy):
(SensorClientPtr.prototype.raiseError):
(SensorClientProxy.prototype.raiseError):
(SensorClientPtr.prototype.sensorReadingChanged):
(SensorClientProxy.prototype.sensorReadingChanged):
(SensorClientStub):
(SensorClientStub.prototype.raiseError):
(SensorClientStub.prototype.sensorReadingChanged):
(SensorClientStub.prototype.accept):
(SensorClientStub.prototype.acceptWithResponder):
(validateSensorClientRequest):
(validateSensorClientResponse):

  • web-platform-tests/resources/chromium/sensor_provider.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(SensorCreationResult.isKnownEnumValue):
(SensorCreationResult.validate):
(SensorInitParams):
(SensorInitParams.prototype.initDefaults_):
(SensorInitParams.prototype.initFields_):
(SensorInitParams.validate):
(SensorInitParams.decode):
(SensorInitParams.encode):
(SensorProvider_GetSensor_Params):
(SensorProvider_GetSensor_Params.prototype.initDefaults_):
(SensorProvider_GetSensor_Params.prototype.initFields_):
(SensorProvider_GetSensor_Params.validate):
(SensorProvider_GetSensor_Params.decode):
(SensorProvider_GetSensor_Params.encode):
(SensorProvider_GetSensor_ResponseParams):
(SensorProvider_GetSensor_ResponseParams.prototype.initDefaults_):
(SensorProvider_GetSensor_ResponseParams.prototype.initFields_):
(SensorProvider_GetSensor_ResponseParams.validate):
(SensorProvider_GetSensor_ResponseParams.decode):
(SensorProvider_GetSensor_ResponseParams.encode):
(SensorProviderPtr):
(SensorProviderAssociatedPtr):
(SensorProviderProxy):
(SensorProviderPtr.prototype.getSensor):
(SensorProviderProxy.prototype.getSensor):
(SensorProviderStub.prototype.getSensor):
(SensorProviderStub.prototype.accept):
(SensorProviderStub.prototype.acceptWithResponder):
(validateSensorProviderRequest):
(validateSensorProviderResponse):

  • web-platform-tests/resources/chromium/sms_mock.js: Added.

(const.SmsProvider):
(const.SmsProvider.prototype.async receive):
(const.SmsProvider.prototype.async abort):
(const.SmsProvider.prototype.pushReturnValuesForTesting):
(const.SmsProvider.SmsProviderChromium):
(const.SmsProvider.SmsProviderChromium.prototype.pushReturnValuesForTesting):

  • web-platform-tests/resources/chromium/string16.mojom.js:

(String16.validate):
(BigString16):
(BigString16.prototype.initDefaults_):
(BigString16.prototype.initFields_):
(BigString16.validate):
(BigString16.decode):
(BigString16.encode):

  • web-platform-tests/resources/chromium/url.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(Url):
(Url.prototype.initDefaults_):
(Url.prototype.initFields_):
(Url.validate):
(Url.decode):
(Url.encode):

  • web-platform-tests/resources/chromium/w3c-import.log:
  • web-platform-tests/resources/chromium/web-bluetooth-test.js: Added.

(toMojoCentralState):
(canonicalizeAndConvertToMojoUUID):
(convertToMojoMap):
(const.MOJO_CHOOSER_EVENT_TYPE_MAP):
(ArrayToMojoCharacteristicProperties):
(FakeBluetooth):
(FakeBluetooth.prototype.async setLESupported):
(FakeBluetooth.prototype.async simulateCentral):
(FakeBluetooth.prototype.async allResponsesConsumed):
(FakeBluetooth.prototype.async getManualChooser):
(FakeCentral):
(FakeCentral.prototype.async simulatePreconnectedPeripheral):
(FakeCentral.prototype.async simulateAdvertisementReceived):
(FakeCentral.prototype.async setState):
(FakeCentral.prototype.fetchOrCreatePeripheral_):
(FakePeripheral):
(FakePeripheral.prototype.async addFakeService):
(FakePeripheral.prototype.async setNextGATTConnectionResponse):
(FakePeripheral.prototype.async setNextGATTDiscoveryResponse):
(FakePeripheral.prototype.async simulateGATTDisconnection):
(FakePeripheral.prototype.async simulateGATTServicesChanged):
(FakeRemoteGATTService):
(FakeRemoteGATTService.prototype.async addFakeCharacteristic):
(FakeRemoteGATTService.prototype.async remove):
(FakeRemoteGATTCharacteristic):
(FakeRemoteGATTCharacteristic.prototype.async addFakeDescriptor):
(FakeRemoteGATTCharacteristic.prototype.async setNextReadResponse):
(FakeRemoteGATTCharacteristic.prototype.async setNextWriteResponse):
(FakeRemoteGATTCharacteristic.prototype.async setNextSubscribeToNotificationsResponse):
(FakeRemoteGATTCharacteristic.prototype.async setNextUnsubscribeFromNotificationsResponse):
(FakeRemoteGATTCharacteristic.prototype.async isNotifying):
(FakeRemoteGATTCharacteristic.prototype.async getLastWrittenValue):
(FakeRemoteGATTCharacteristic.prototype.async remove):
(FakeRemoteGATTDescriptor):
(FakeRemoteGATTDescriptor.prototype.async setNextReadResponse):
(FakeRemoteGATTDescriptor.prototype.async setNextWriteResponse):
(FakeRemoteGATTDescriptor.prototype.async getLastWrittenValue):
(FakeRemoteGATTDescriptor.prototype.async remove):
(FakeChooser):
(FakeChooser.prototype.async waitForEvents):
(FakeChooser.prototype.async selectPeripheral):
(FakeChooser.prototype.async cancel):
(FakeChooser.prototype.async rescan):
(FakeChooser.prototype.onEvent):

  • web-platform-tests/resources/chromium/web-bluetooth-test.js.headers: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers.
  • web-platform-tests/resources/chromium/web_usb_service.mojom.js: Added.

(mojo.internal.isMojomLoaded):
(WebUsbService_GetDevices_Params):
(WebUsbService_GetDevices_Params.prototype.initDefaults_):
(WebUsbService_GetDevices_Params.prototype.initFields_):
(WebUsbService_GetDevices_Params.validate):
(WebUsbService_GetDevices_Params.decode):
(WebUsbService_GetDevices_Params.encode):
(WebUsbService_GetDevices_ResponseParams):
(WebUsbService_GetDevices_ResponseParams.prototype.initDefaults_):
(WebUsbService_GetDevices_ResponseParams.prototype.initFields_):
(WebUsbService_GetDevices_ResponseParams.validate):
(WebUsbService_GetDevices_ResponseParams.decode):
(WebUsbService_GetDevices_ResponseParams.encode):
(WebUsbService_GetDevice_Params):
(WebUsbService_GetDevice_Params.prototype.initDefaults_):
(WebUsbService_GetDevice_Params.prototype.initFields_):
(WebUsbService_GetDevice_Params.validate):
(WebUsbService_GetDevice_Params.decode):
(WebUsbService_GetDevice_Params.encode):
(WebUsbService_GetPermission_Params):
(WebUsbService_GetPermission_Params.prototype.initDefaults_):
(WebUsbService_GetPermission_Params.prototype.initFields_):
(WebUsbService_GetPermission_Params.validate):
(WebUsbService_GetPermission_Params.decode):
(WebUsbService_GetPermission_Params.encode):
(WebUsbService_GetPermission_ResponseParams):
(WebUsbService_GetPermission_ResponseParams.prototype.initDefaults_):
(WebUsbService_GetPermission_ResponseParams.prototype.initFields_):
(WebUsbService_GetPermission_ResponseParams.validate):
(WebUsbService_GetPermission_ResponseParams.decode):
(WebUsbService_GetPermission_ResponseParams.encode):
(WebUsbService_SetClient_Params):
(WebUsbService_SetClient_Params.prototype.initDefaults_):
(WebUsbService_SetClient_Params.prototype.initFields_):
(WebUsbService_SetClient_Params.validate):
(WebUsbService_SetClient_Params.decode):
(WebUsbService_SetClient_Params.encode):
(WebUsbServicePtr):
(WebUsbServiceAssociatedPtr):
(WebUsbServiceProxy):
(WebUsbServicePtr.prototype.getDevices):
(WebUsbServiceProxy.prototype.getDevices):
(WebUsbServicePtr.prototype.getDevice):
(WebUsbServiceProxy.prototype.getDevice):
(WebUsbServicePtr.prototype.getPermission):
(WebUsbServiceProxy.prototype.getPermission):
(WebUsbServicePtr.prototype.setClient):
(WebUsbServiceProxy.prototype.setClient):
(WebUsbServiceStub):
(WebUsbServiceStub.prototype.getDevices):
(WebUsbServiceStub.prototype.getDevice):
(WebUsbServiceStub.prototype.getPermission):
(WebUsbServiceStub.prototype.setClient):
(WebUsbServiceStub.prototype.accept):
(WebUsbServiceStub.prototype.acceptWithResponder):
(validateWebUsbServiceRequest):
(validateWebUsbServiceResponse):

  • web-platform-tests/resources/chromium/web_usb_service.mojom.js.headers: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers.
  • web-platform-tests/resources/chromium/webusb-child-test.js: Added.

(this.name.string_appeared_here.this.window.top.messageChannel.port1.onmessage.async if):

  • web-platform-tests/resources/chromium/webusb-child-test.js.headers: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers.
  • web-platform-tests/resources/chromium/webusb-test.js:

(getMessagePort):
(fakeDeviceInitToDeviceInfo):
(FakeDevice.prototype.async controlTransferIn):
(FakeDevice.prototype.async controlTransferOut):
(prototype.getDevices):
(prototype.getDevice):
(prototype.getPermission):
(prototype.setClient):
(USBDeviceRequestEvent.prototype.respondWith):
(USBDeviceRequestEvent):
(prototype.disconnect):
(prototype.async initialize):
(prototype.attachToContext):
(prototype.addFakeDevice):
(prototype.reset):

  • web-platform-tests/resources/chromium/webxr-test.js: Added.

(getMatrixFromTransform):
(composeGFXTransform):
(ChromeXRTest):
(ChromeXRTest.prototype.simulateDeviceConnection):
(ChromeXRTest.prototype.disconnectAllDevices):
(ChromeXRTest.prototype.simulateUserActivation):
(MockVRService):
(MockVRService.prototype.addRuntime):
(MockVRService.prototype.removeAllRuntimes):
(MockVRService.prototype.removeRuntime):
(MockVRService.prototype.setClient):
(MockVRService.prototype.requestSession):
(MockVRService.prototype.exitPresent):
(MockVRService.prototype.supportsSession):
(prototype.disconnect):
(prototype.setViews):
(prototype.setViewerOrigin):
(prototype.clearViewerOrigin):
(prototype.simulateVisibilityChange):
(prototype.setBoundsGeometry):
(prototype.setFloorOrigin):
(prototype.clearFloorOrigin):
(prototype.simulateResetPose):
(prototype.simulateInputSourceConnection):
(prototype.getNonImmersiveDisplayInfo):
(prototype.getImmersiveDisplayInfo):
(prototype.getEye.else.toDegrees):
(prototype.getEye):
(prototype.setFeatures.convertFeatureToMojom):
(prototype.setFeatures):
(prototype.addInputSource):
(prototype.removeInputSource):
(prototype.getFrameData):
(prototype.getEnvironmentIntegrationProvider):
(prototype.closeEnvironmentIntegrationProvider):
(prototype.closeDataProvider):
(prototype.updateSessionGeometry):
(prototype.requestRuntimeSession):
(prototype.runtimeSupportsSession):
(prototype.reportFeatureUsed):
(MockXRInputSource):
(MockXRInputSource.prototype.setHandedness):
(MockXRInputSource.prototype.setTargetRayMode):
(MockXRInputSource.prototype.setProfiles):
(MockXRInputSource.prototype.setGripOrigin):
(MockXRInputSource.prototype.clearGripOrigin):
(MockXRInputSource.prototype.setPointerOrigin):
(MockXRInputSource.prototype.disconnect):
(MockXRInputSource.prototype.reconnect):
(MockXRInputSource.prototype.startSelection):
(MockXRInputSource.prototype.endSelection):
(MockXRInputSource.prototype.simulateSelect):
(MockXRInputSource.prototype.setSupportedButtons):
(MockXRInputSource.prototype.updateButtonState):
(MockXRInputSource.prototype.getInputSourceState):
(MockXRInputSource.prototype.getEmptyGamepad):
(MockXRInputSource.prototype.addGamepadButton):
(MockXRInputSource.prototype.getButtonIndex):
(MockXRInputSource.prototype.getAxesStartIndex):
(MockXRPresentationProvider):
(MockXRPresentationProvider.prototype.bindProvider):
(MockXRPresentationProvider.prototype.getClientReceiver):
(MockXRPresentationProvider.prototype.submitFrameMissing):
(MockXRPresentationProvider.prototype.submitFrame):
(MockXRPresentationProvider.prototype.Close):

  • web-platform-tests/resources/chromium/webxr-test.js.headers: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers.
  • web-platform-tests/resources/idlharness.js:

(IdlArray.prototype.add_dependency_idls):
(IdlArray.prototype.test):
(IdlArray.prototype.are_duplicate_members):
(idl_test):
(fetch_spec):

  • web-platform-tests/resources/readme.md:
  • web-platform-tests/resources/sriharness.js:

(set_extra_attributes):
(buildElementFromDestination):
(const.SRIPreloadTest):
(SRIStyleTest.prototype.execute):

  • web-platform-tests/resources/test/README.md:
  • web-platform-tests/resources/test/config.test.json: Removed.
  • web-platform-tests/resources/test/conftest.py:

(pytest_addoption):
(pytest_collect_file):
(pytest_configure):
(resolve_uri):
(HTMLItem.init):
(HTMLItem.reportinfo):
(HTMLItem.runtest):
(HTMLItem):
(HTMLItem._run_unit_test):
(HTMLItem._run_functional_test):
(HTMLItem._run_functional_test_variant):
(HTMLItem._summarize):
(HTMLItem._assert_sequence):
(HTMLItem._scrub_stack):

  • web-platform-tests/resources/test/idl-helper.js: Added.

(interfaceFrom):
(memberFrom):
(typeFrom):

  • web-platform-tests/resources/test/nested-testharness.js: Added.

(makeTest.return.new.Promise):
(makeTest):

  • web-platform-tests/resources/test/tests/functional/add_cleanup.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_async.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_async_bad_return.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_async_rejection.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_async_rejection_after_load.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_async_timeout.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_bad_return.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_count.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_err.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_err_multi.html: Added.
  • web-platform-tests/resources/test/tests/functional/add_cleanup_sync_queue.html: Added.
  • web-platform-tests/resources/test/tests/functional/api-tests-1.html: Added.
  • web-platform-tests/resources/test/tests/functional/api-tests-2.html: Added.
  • web-platform-tests/resources/test/tests/functional/api-tests-3.html: Added.
  • web-platform-tests/resources/test/tests/functional/force_timeout.html: Added.
  • web-platform-tests/resources/test/tests/functional/generate-callback.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/test_partial_interface_of.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlDictionary/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_immutable_prototype.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_interface_mixin.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_partial_interface_of.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_primary_interface_of.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/test_to_json_operation.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlInterface/w3c-import.log: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_attribute.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_operation.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_partial_namespace.html: Added.
  • web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log.
  • web-platform-tests/resources/test/tests/functional/iframe-callback.html: Added.
  • web-platform-tests/resources/test/tests/functional/iframe-consolidate-errors.html: Added.
  • web-platform-tests/resources/test/tests/functional/iframe-consolidate-tests.html: Added.
  • web-platform-tests/resources/test/tests/functional/iframe-msg.html: Added.
  • web-platform-tests/resources/test/tests/functional/log-insertion.html: Added.
  • web-platform-tests/resources/test/tests/functional/order.html: Added.
  • web-platform-tests/resources/test/tests/functional/promise-async.html: Added.
  • web-platform-tests/resources/test/tests/functional/promise-with-sync.html: Added.
  • web-platform-tests/resources/test/tests/functional/promise.html: Added.
  • web-platform-tests/resources/test/tests/functional/queue.html: Added.
  • web-platform-tests/resources/test/tests/functional/single-page-test-fail.html: Added.
  • web-platform-tests/resources/test/tests/functional/single-page-test-no-assertions.html: Added.
  • web-platform-tests/resources/test/tests/functional/single-page-test-no-body.html: Added.
  • web-platform-tests/resources/test/tests/functional/single-page-test-pass.html: Added.
  • web-platform-tests/resources/test/tests/functional/task-scheduling-promise-test.html: Added.
  • web-platform-tests/resources/test/tests/functional/task-scheduling-test.html: Added.
  • web-platform-tests/resources/test/tests/functional/uncaught-exception-handle.html: Added.
  • web-platform-tests/resources/test/tests/functional/uncaught-exception-ignore.html: Added.
  • web-platform-tests/resources/test/tests/functional/w3c-import.log: Added.
  • web-platform-tests/resources/test/tests/functional/worker-dedicated-uncaught-allow.html: Added.
  • web-platform-tests/resources/test/tests/functional/worker-dedicated-uncaught-single.html: Added.
  • web-platform-tests/resources/test/tests/functional/worker-dedicated.sub.html: Added.
  • web-platform-tests/resources/test/tests/functional/worker-error.js: Added.

(test):

  • web-platform-tests/resources/test/tests/functional/worker-service.html: Added.
  • web-platform-tests/resources/test/tests/functional/worker-shared.html: Added.
  • web-platform-tests/resources/test/tests/functional/worker-uncaught-allow.js: Added.

(async_test.onerror):
(async_test):

  • web-platform-tests/resources/test/tests/functional/worker-uncaught-single.js: Added.
  • web-platform-tests/resources/test/tests/functional/worker.js: Added.

(test):
(async_test):

  • web-platform-tests/resources/test/tests/unit/IdlArray/is_json_type.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlArray/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log.
  • web-platform-tests/resources/test/tests/unit/IdlDictionary/get_inheritance_stack.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlDictionary/test_partial_dictionary.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlDictionary/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/constructors.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/default_to_json_operation.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/do_member_unscopable_asserts.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/get_inheritance_stack.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/get_interface_object.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/get_interface_object_owner.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/get_legacy_namespace.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/get_qualified_name.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/has_default_to_json_regular_operation.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/has_to_json_regular_operation.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/test_primary_interface_of_undefined.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/traverse_inherited_and_consequential_interfaces.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterface/w3c-import.log: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterfaceMember/is_to_json_regular_operation.html: Added.
  • web-platform-tests/resources/test/tests/unit/IdlInterfaceMember/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/webidl2/lib/w3c-import.log.
  • web-platform-tests/resources/test/tests/unit/assert_object_equals.html: Added.
  • web-platform-tests/resources/test/tests/unit/basic.html: Added.
  • web-platform-tests/resources/test/tests/unit/exceptional-cases-timeouts.html: Added.
  • web-platform-tests/resources/test/tests/unit/exceptional-cases.html: Added.
  • web-platform-tests/resources/test/tests/unit/format-value.html: Added.
  • web-platform-tests/resources/test/tests/unit/late-test.html: Added.
  • web-platform-tests/resources/test/tests/unit/promise_setup-timeout.html: Added.
  • web-platform-tests/resources/test/tests/unit/promise_setup.html: Added.
  • web-platform-tests/resources/test/tests/unit/single_test.html: Added.
  • web-platform-tests/resources/test/tests/unit/test-return-restrictions.html: Added.
  • web-platform-tests/resources/test/tests/unit/throwing-assertions.html: Added.
  • web-platform-tests/resources/test/tests/unit/unpaired-surrogates.html: Added.
  • web-platform-tests/resources/test/tests/unit/w3c-import.log: Added.
  • web-platform-tests/resources/test/tox.ini:
  • web-platform-tests/resources/test/variants.js: Added.

(variants.string_appeared_here.apply):
(Object.hasOwnProperty.call):
(typeof.test.string_appeared_here.test):
(onReady):

  • web-platform-tests/resources/test/w3c-import.log:
  • web-platform-tests/resources/test/wptserver.py:

(WPTServer):
(WPTServer.init):
(WPTServer.start):
(WPTServer.stop):
(WPTServer.url):

  • web-platform-tests/resources/testdriver-actions.js:

(Actions):
(Actions.prototype.serialize):
(Actions.prototype.pause):
(GeneralSource.prototype.serialize):
(KeySource.prototype.addPause):
(PointerSource.prototype.addPause):

  • web-platform-tests/resources/testdriver-vendor.js:

(dispatchMouseActions):

  • web-platform-tests/resources/testdriver-vendor.js.headers: Copied from LayoutTests/imported/w3c/web-platform-tests/resources/testharnessreport.js.headers.
  • web-platform-tests/resources/testdriver.js:

(window.test_driver.generate_test_report):
(window.test_driver.set_permission):
(window.test_driver.add_virtual_authenticator):
(window.test_driver.remove_virtual_authenticator):
(window.test_driver.add_credential):
(window.test_driver.get_credentials):
(window.test_driver.remove_credential):
(window.test_driver.remove_all_credentials):
(window.test_driver.set_user_verified):
(window.test_driver_internal.generate_test_report):
(window.test_driver_internal.set_permission):
(window.test_driver_internal.add_virtual_authenticator):
(window.test_driver_internal.remove_virtual_authenticator):
(window.test_driver_internal.add_credential):
(window.test_driver_internal.get_credentials):
(window.test_driver_internal.remove_credential):
(window.test_driver_internal.remove_all_credentials):
(window.test_driver_internal.set_user_verified):

  • web-platform-tests/resources/testdriver.js.headers: Renamed from LayoutTests/imported/w3c/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers.
  • web-platform-tests/resources/testharness.css.headers: Removed.
  • web-platform-tests/resources/testharness.js:

(test):
(async_test):
(promise_test):
(promise_rejects_js):
(promise_rejects_dom):
(promise_rejects_exactly):
(promise_setup):
(done):

  • web-platform-tests/resources/testharnessreport.js.headers:
  • web-platform-tests/resources/w3c-import.log:
  • web-platform-tests/resources/webidl2/lib/README.md: Added.
  • web-platform-tests/resources/webidl2/lib/w3c-import.log:
  • web-platform-tests/resources/webidl2/lib/webidl2.js:
  • web-platform-tests/resources/webidl2/lib/writer.js: Removed.
  • web-platform-tests/server-timing/resource_timing_idl.html:
  • web-platform-tests/server-timing/resource_timing_idl.https.html:
  • web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt:
  • web-platform-tests/streams/byte-length-queuing-strategy.sharedworker-expected.txt:
  • web-platform-tests/streams/count-queuing-strategy.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-backward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-forward-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-forward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-backward-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-backward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-forward.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/flow-control.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/general-expected.txt:
  • web-platform-tests/streams/piping/general.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/multiple-propagation.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.sharedworker-expected.txt:
  • web-platform-tests/streams/piping/transform-streams.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/brand-checks.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/detached-buffers.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/properties.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-strategies.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/brand-checks.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/cancel.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/default-reader.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/floating-point-total-queue-size.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/garbage-collection.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/general.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/readable-stream-reader.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/tee.serviceworker.https-expected.txt:
  • web-platform-tests/streams/readable-streams/tee.sharedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/templated.sharedworker-expected.txt:
  • web-platform-tests/svg/animations/scripted/onhover-syncbases-expected.txt:
  • web-platform-tests/svg/idlharness.window-expected.txt:
  • web-platform-tests/user-timing/idlharness-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_clear_marks-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_clear_measures-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_entry_type-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_exists-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_without_parameter-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_exceptions-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_with_name_of_navigation_timing_optional_attribute-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure_exceptions-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure_navigation_timing-expected.txt:
  • web-platform-tests/web-share/idlharness.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-onerror.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt:
  • web-platform-tests/workers/semantics/structured-clone/shared-expected.txt:
  • web-platform-tests/xhr/idlharness.any-expected.txt:
  • web-platform-tests/xhr/idlharness.any.worker-expected.txt:
  • web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt:

LayoutTests:

  • http/wpt/entries-api/interfaces-expected.txt:
  • http/wpt/fetch/csp-reports-bypass-csp-checks.html:
  • http/wpt/mediarecorder/MediaRecorder-onremovetrack.html:
  • http/wpt/webauthn/idl.https-expected.txt:
  • http/wpt/workers/promise-unhandled-rejection.any-expected.txt:
  • http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/clipboard-apis/async-interfaces.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/web-share/idlharness.https-expected.txt:
  • tests-options.json:
7:43 AM Changeset in webkit [253629] by commit-queue@webkit.org
  • 91 edits
    4 deletes in trunk/LayoutTests/imported/w3c

Remove redundant grid.css files and reference all relevant tests to support/grid.css
https://bugs.webkit.org/show_bug.cgi?id=205067

Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2019-12-17
Reviewed by Manuel Rego Casasnovas.

Reference all grid tests to a single grid.css file inside css/support/; remove redundant grid.css files inside css/css-grid/ subfolders.

  • web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html:
  • web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-paint-positioned-children-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001-expected.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-002.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-003.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-004.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-005.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-006.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-007.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-gaps-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-gaps-002-rtl.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-gaps-002.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-gaps-rtl-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-implicit-grid-line-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-padding-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-positioned-items-within-grid-implicit-track-001.html:
  • web-platform-tests/css/css-grid/abspos/grid-sizing-positioned-items-001.html:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-sizing-001-expected.html:
  • web-platform-tests/css/css-grid/abspos/positioned-grid-items-sizing-001.html:
  • web-platform-tests/css/css-grid/abspos/support/grid.css: Removed.
  • web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html:
  • web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html:
  • web-platform-tests/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html:
  • web-platform-tests/css/css-grid/alignment/grid-content-alignment-second-pass-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-content-alignment-second-pass-002.html:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html:
  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-max-size-002.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-max-size-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-min-size-002.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-auto-repeat-tracks.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-percentage-rows-indefinite-height-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-fit-content-001-expected.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-fit-content-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-rows-fit-content-001-expected.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-rows-fit-content-001.html:
  • web-platform-tests/css/css-grid/grid-definition/support/grid.css: Removed.
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-orthogonal-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-orthogonal-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-relative-offsets-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-relative-offsets-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-minimum-size-grid-items-022.html:
  • web-platform-tests/css/css-grid/grid-items/grid-minimum-size-grid-items-023.html:
  • web-platform-tests/css/css-grid/grid-items/grid-minimum-size-grid-items-024.html:
  • web-platform-tests/css/css-grid/grid-items/grid-minimum-size-grid-items-025.html:
  • web-platform-tests/css/css-grid/grid-items/support/grid.css: Removed.
  • web-platform-tests/css/css-grid/grid-model/grid-container-ignores-first-letter-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-container-ignores-first-line-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-item-accepts-first-letter-001.html:
  • web-platform-tests/css/css-grid/grid-model/grid-item-accepts-first-line-001.html:
  • web-platform-tests/css/css-grid/grid-model/support/grid.css: Removed.
  • web-platform-tests/css/support/grid.css:

(.firstRowThirdColumn):
(.firstRowFourthColumn):
(.thirdRowSecondColumn):
(.thirdRowThirdColumn):

7:27 AM Changeset in webkit [253628] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Update session category in MockAudioSharedUnit as done in CoreAudioSharedUnit
https://bugs.webkit.org/show_bug.cgi?id=205328

Reviewed by Eric Carlson.

We were updating the audio session when starting capturing with the CoreAudioSharedUnit
but not with the MockAudioSharedUnit.
Refactor the code to update the audio session in the base class BaseAudioSharedUnit.
Share more code between start and resume case in BaseAudioSharedUnit.

Covered by platform/ios/mediastream/audio-muted-in-background-tab.html in Debug.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::startProducingData):
(WebCore::BaseAudioSharedUnit::startUnit):
(WebCore::BaseAudioSharedUnit::resume):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::startInternal):

  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockAudioSharedUnit::startInternal):

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

Unreviewed GTK gardening. Mark WebKit.FocusedFrameAfterCrash as timeout

  • TestWebKitAPI/glib/TestExpectations.json:
6:28 AM Changeset in webkit [253626] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK][WPE] IndexedDB directory set in WebsiteDataManager is ignored
https://bugs.webkit.org/show_bug.cgi?id=205330

Reviewed by Youenn Fablet.

There are two problems here:

1- WebKitWebsiteDataManager is no longer setting the indexedDB directory to the WebsiteDatastore

configuration. It seems the code was removed by mistake in r249778 when rolling out r249768.

2- The WebProcessPool is not considering the primary WebsiteDataStore for indexedDB configuration.

Fixes: /webkit/WebKitWebsiteData/databases

/webkit/WebKitWebsiteData/configuration

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetDataStore):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

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

Unreviewed GTK gardening. Mark several tests that usually time out in the bots as slow

It seems it depends on the load of the bots. Some of them still time out sometimes even after being marked as
slow, so also mark them all as flaky.

  • TestWebKitAPI/glib/TestExpectations.json:
6:13 AM Changeset in webkit [253624] by Carlos Garcia Campos
  • 2 edits in trunk/Source/JavaScriptCore

[GLIB] jsc_context_evaluate_in_object should take the API lock before calling setGlobalScopeExtension
https://bugs.webkit.org/show_bug.cgi?id=205331

Reviewed by Žan Doberšek.

We are now getting a crash due to an assert because the api lock is not held.

  • API/glib/JSCContext.cpp:

(jsc_context_evaluate_in_object):

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

Unreviewed GTK gardening. Mark /webkit/WebKitWebExtension/form-submission-steps as timeout

  • TestWebKitAPI/glib/TestExpectations.json:
5:59 AM Changeset in webkit [253622] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed GTK gardening. Fix test /webkit/WebKitPrintOperation/close-after-print

Use webkit_web_view_new_with_related_view() instead of webkit_web_view_new_with_context() since it's expected
that web views created in WebKitWebView::create signal callback are related. Also use g_object_unref() instead
of gtk_widget_destroy() to release the created web view since it's never added to a window.

  • TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp:
3:50 AM Changeset in webkit [253621] by youenn@apple.com
  • 8 edits in trunk

Bump the priority of CacheStorageEngine write operations
https://bugs.webkit.org/show_bug.cgi?id=205329

Reviewed by Antti Koivisto.

Source/WebKit:

Introduce an IOChannel extra optional parameter to set the QOS.
Use this parameter for IOChannels created by CacheStorageEngine when writing files to increase the priority to default.
Increase the priority of the CacheStorageEngine background queue to default.
No observable change of behavior except potential speed increase.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::Engine):
(WebKit::CacheStorage::Engine::writeFile):

  • NetworkProcess/cache/NetworkCacheIOChannel.h:

(WebKit::NetworkCache::IOChannel::open):

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::dispatchQueueFromPriority):
(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::open):

  • NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:

(WebKit::NetworkCache::IOChannel::open):

  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::IOChannel::open):

LayoutTests:

  • http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html:

Increase timer.

3:33 AM Changeset in webkit [253620] by youenn@apple.com
  • 10 edits in trunk

WebKitTestRunner should report service worker process crashes
https://bugs.webkit.org/show_bug.cgi?id=205267

Reviewed by Chris Dumez.

Source/WebKit:

Expose a way for WTR to be notified of service worker process crashes.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/WebContextClient.cpp:

(WebKit::WebContextClient::serviceWorkerProcessDidCrash):

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

(WebKit::WebProcessPool::serviceWorkerProcessCrashed):

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

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generatePageConfiguration):
(WTR::TestController::serviceWorkerProcessDidCrash):

  • WebKitTestRunner/TestController.h:
3:20 AM Changeset in webkit [253619] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. WebDriver: set doc_root in WebDriverW3CExecutor server config

It's expected by test imported/w3c/webdriver/tests/navigate_to/navigate.py::test_file_protocol

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:

(WebDriverW3CExecutor.init):

2:17 AM Changeset in webkit [253618] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

check-webkit-style: allow underscores for public symbols in JSC GLIB API
https://bugs.webkit.org/show_bug.cgi?id=205265

Reviewed by Jonathan Bedard.

Add an exception for symbols starting with jsc_ in glib directories.

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

(check_identifier_name_in_declaration):

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

(WebKitStyleTest.test_names):

2:11 AM Changeset in webkit [253617] by commit-queue@webkit.org
  • 6 edits in trunk

[GStreamer][WPE] Fix regressions related to our 'Fix GStreamer capturer mock' patch
https://bugs.webkit.org/show_bug.cgi?id=205270

Source/WebCore:

MockGStreamerAudioCaptureSource rightfully defaults to echoCancellation=True,
see https://bugs.webkit.org/show_bug.cgi?id=205057

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-12-17
Reviewed by Philippe Normand.

This fixes existing tests

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::addHum):

LayoutTests:

Skip GPUProcess related tests

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-12-17
Reviewed by Philippe Normand.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • webrtc/peer-connection-audio-mute.html:
1:51 AM Changeset in webkit [253616] by Antti Koivisto
  • 14 edits
    2 adds in trunk

Resolve dynamic media queries without reconstructing RuleSets
https://bugs.webkit.org/show_bug.cgi?id=205264

Reviewed by Zalan Bujtas.

Source/WebCore:

We currently do a full style resolver reset whenever a media query result changes. This is very inefficient
as we need to reconstuct all RuleSets and optimization structures. We also lose related caches and are forced
to re-resolve full document style. This may happen frequently, for example when resizing window on a responsive
web site.

With this patch we construct RuleDatas also for non-matching dynamic media queries and simply mark them disabled.
We create a data structure that allows enabling and disabling them efficiently as a response to environment changes
(like view resize). This allows us to avoid throwing away anything during common scenarios.

Test: fast/media/media-query-dynamic-with-font-face.html

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evaluate const):

Add a mode where dynamic media queries all evaluate to true and only static properties can cause the query to fail.

  • css/MediaQueryEvaluator.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):

Skip disabled rules during rule collection.

  • style/RuleData.cpp:

(WebCore::Style::RuleData::RuleData):

  • style/RuleData.h:

(WebCore::Style::RuleData::isEnabled const):
(WebCore::Style::RuleData::setEnabled):

Add a bit.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):

Collect positions of rules affected by dynamic media queries.

(WebCore::Style::RuleSet::addPageRule):
(WebCore::Style::RuleSet::addChildRules):
(WebCore::Style::RuleSet::addRulesFromSheet):

First check for a special case where we have style resolver mutating rules (like @font-face) inside a media query.
In this case we fall back to static resolution.

Then collect the rules. Static media queries (print etc) are evaluated right away, dynamic ones are collected by MediaQueryCollector.

(WebCore::Style::RuleSet::addStyleRule):
(WebCore::Style::RuleSet::traverseRuleDatas):
(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

Evaluate media queries for changes and flip the enabled state of the rules if needed.

(WebCore::Style::RuleSet::MediaQueryCollector::pushAndEvaluate):
(WebCore::Style::RuleSet::MediaQueryCollector::pop):
(WebCore::Style::RuleSet::MediaQueryCollector::didMutateResolver):
(WebCore::Style::RuleSet::MediaQueryCollector::addRulePositionIfNeeded):

  • style/RuleSet.h:

(WebCore::Style::RuleSet::hasViewportDependentMediaQueries const):

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::hasViewportDependentMediaQueries const):
(WebCore::Style::Resolver::evaluateDynamicMediaQueries):
(WebCore::Style::Resolver::addMediaQueryDynamicResults): Deleted.
(WebCore::Style::Resolver::hasMediaQueriesAffectedByViewportChange const): Deleted.
(WebCore::Style::Resolver::hasMediaQueriesAffectedByAccessibilitySettingsChange const): Deleted.
(WebCore::Style::Resolver::hasMediaQueriesAffectedByAppearanceChange const): Deleted.

Profiling doesn't show any need to handle the cases separately. Replace with single evaluateDynamicMediaQueries path.
We can bring type specific paths back easily if needed.

  • style/StyleResolver.h:

(WebCore::Style::Resolver::hasViewportDependentMediaQueries const): Deleted.
(WebCore::Style::Resolver::hasAccessibilitySettingsDependentMediaQueries const): Deleted.
(WebCore::Style::Resolver::hasAppearanceDependentMediaQueries const): Deleted.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::evaluateMediaQueriesForViewportChange):
(WebCore::Style::Scope::evaluateMediaQueriesForAccessibilitySettingsChange):
(WebCore::Style::Scope::evaluateMediaQueriesForAppearanceChange):

Call into general evaluateDynamicMediaQueries.

(WebCore::Style::Scope::evaluateMediaQueries):

In normal case we can just invalidate style, not throw everything away.
This can be further improved by adding optimization rule sets.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
(WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets):
(WebCore::Style::makeRuleSet):
(WebCore::Style::ScopeRuleSets::hasViewportDependentMediaQueries const):
(WebCore::Style::ScopeRuleSets::evaluteDynamicMediaQueryRules):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):
(WebCore::Style::ensureInvalidationRuleSets):

  • style/StyleScopeRuleSets.h:

LayoutTests:

Add a test verifying that @font-face inside @media works in dynamic scenarios.

  • fast/media/media-query-dynamic-with-font-face-expected.html: Added.
  • fast/media/media-query-dynamic-with-font-face.html: Added.
1:32 AM Changeset in webkit [253615] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Improve release logging in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=205295

Reviewed by Youenn Fablet.

Improve release logging in NetworkResourceLoader to facilitate debugging of loading-related issues.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::retrieveCacheEntryInternal):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::convertToDownload):
(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didBlockAuthenticationChallenge):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):
(WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
(WebKit::NetworkResourceLoader::restartNetworkLoad):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveMainResourceResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::validateCacheEntry):
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):
(WebKit::NetworkResourceLoader::startWithServiceWorker):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):

1:02 AM Changeset in webkit [253614] by youenn@apple.com
  • 5 edits in trunk

FileList should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=204074

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/idlharness.worker-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:

Source/WebCore:

Covered by rebased test.

  • fileapi/FileList.idl:
12:50 AM Changeset in webkit [253613] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Relanding r253581: Changed jsc shell timeout mechanism to leverage the VMTraps and use CPUTime.
https://bugs.webkit.org/show_bug.cgi?id=205279
<rdar://problem/57971874>

Reviewed by Saam Barati.

This fixes all the timeouts that occur due to CPU time starvation when
running JSC tests on a debug build.

What this means is that the timeout mechanism may trigger asynchronous
OSR exits. If a test requires no OSR exits, that test should
requireOption("--usePollingTraps=true") so that the VMTraps will use its
polling implementation instead.

I've tested this with a full run of the JSC stress tests with a debug
build and saw 0 timeouts. I've also tested it with a contrived tests that
loops forever, and saw the expected timeout crash.

Will look into re-tuning needed timeout value (and other JSC tests timeout
cleanup) in https://bugs.webkit.org/show_bug.cgi?id=205298.

Update: in the previously landed patch, I did a last minute sort of the cases
Int the switch statement in VMTraps::handleTraps() before posting my patch.
This is incorrect to do since one of the cases need to fall through to another
case. This patch undoes the sorting to the order I originally had the cases
in during development and testing.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • interpreter/InterpreterInlines.h:

(JSC::Interpreter::execute):

  • jsc.cpp:

(startTimeoutTimer):
(timeoutCheckCallback):
(initializeTimeoutIfNeeded):
(startTimeoutThreadIfNeeded):
(runJSC):
(jscmain):

  • runtime/JSCConfig.h:
  • runtime/VM.h:

(JSC::VM::notifyNeedShellTimeoutCheck):

  • runtime/VMTraps.cpp:

(JSC::VMTraps::handleTraps):

  • runtime/VMTraps.h:

(JSC::VMTraps::Mask::Mask):
(JSC::VMTraps::Mask::allEventTypes):
(JSC::VMTraps::Mask::init):
(JSC::VMTraps::interruptingTraps):

  • tools/VMInspector.cpp:

(JSC::VMInspector::forEachVM):

  • tools/VMInspector.h:
12:14 AM Changeset in webkit [253612] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warnings below since r253488.
warning: unused parameter ‘foo’ [-Wunused-parameter]

No new tests, no behavioral changes.

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-12-16

  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxMachLookupAccessToXPCServiceName):

Note: See TracTimeline for information about the timeline view.